Category: Non classé

Today I try to explain my vision of the future version of EveHQ. What we have in ‘legacy’ conceptually? A lot of unconnected tools under umbrella of a single application. Yes they are useful but many times a caught myself on repetitive actions and copy-pasting values from one place to another. Many tools I don’t understand how to use. Some of them just could be made better.

The concept

In EVE we play some roles. I can start my game session as a manufacturer: deliver some completed research and manufacturing task, put some other task on. After that I need to bring goods to a trade hub and this time I play a hauler on the same character or another. When I came to the trade hub with my goods I play a role of a trader, again on the same character or another. Trading isn’t so much time consuming. I just need to update order prices from time to time. So I switch to another character. Lets say it is an explorer/hacker in High-Sec. I plan a route and undock it in an Astero. I go system by system and look for Sleepers data-sites and Ghost-sites, hacking them and bring the loot back to home station. Other day I can go to C1-C3 wormholes to do mostly the same. This day I can’t plan my path through the systems but I need some kind of WH mapping tool. I need a tool to judge about price of items I find in data and relic sites because I don’t have so much cargo space in my little Astero and there is no friendly and easy to reach stations in WHs. So I need to know what is valuable and what is not in regards to it’s weight. And I want to keep some kind of statistics about systems I’ve visited, what kind of sites I’ve found there and loot I took from the containers.

I can prolong but I think you grasp the idea: we play some roles in EVE, which we switch from time to time as needed. Not every character can play each role because of skills. Boundaries of roles are not so much outlined. Each role needs some tools but it doesn’t need every tool. Some tools can be useful for a few different roles.

So I want to develop EveHQ NG around the idea of role playing. Character -> roles -> tools. You will be able to add as many characters as you have. You will be able to add roles to each character it can and will play. You will be able to add to each character’s role tools you will need. Of course with some presets for each kind of role.

EveHQ NG should be your ultimate assistant in EVE playing. It should help to plan your activities, track them and your progress, inform you about possibilities and surroundings, help to find co-players and communicate to them, share your data with other players. It should help new players and veterans, single players, fleets and big corporations. It should integrate with the game and other network-based tools as much as possible.

It’s a huge task, a lot of work, but it always better to clearly understand the big picture than to coin and change it in the way. So I don’t plan to release it as a full blowing release, sometime in the future, but feature by feature, role by role in an agile way.

The architecture

‘Legacy’ EveHQ is a Windows application. You can’t run it on Mac OS or Linux. At least without some additional efforts like using virtual machines. There are many tools on the Net represented as WEB-sites. EveHQ in contrast is a standalone application. And it will remain a standalone application. It has some advantages over WEB-application:

You don’t need to be connected to the Net to use it.

Hosting of a WEB-application costs money. This price rising with rising of popularity of the application. It is the reason why useful WEB-applications disappear from time to time. Just remember EVE-Central.

Your data always with you in a safe (until you make backups) and secured (until you care about your security) place. Just remember about fittings lost on Osmium (they backed up data on the same physical drive).

EveHQ NG will support all 3 main operation systems: Windows, Linux and Mac OS. The GUI part will be developed as an Electron application using Angular 5+. The main business-logic will be developed using .NET Core. Those two parts will communicate to each other using REST WEB-service on ASP.NET Core (from GUI to business-logic) and SignalR (from business-logic to GUI).

I want to make it localizable. But I will not localize it by myself. May be only into Russian because I’m a Russian native-speaker. Other translations should be done by community if they needed.

I want to make EveHQ NG modular as much as possible to let people to develop and add modules as needed. For instance I have no glue what a corporation CEO needs. May be some of them will develop a module. There will be a shell that will be used by all modules.

EveHQ NG will use SSO, ESI, SDE and game logs. It will receive some data from clipboard in text and image formats.

The current state of development

I develop an architecture prototype for some time already. The were many new technologies for me: Electron, Angular, TypeScript, .NET Core. I did most of the task I planed for this prototype. After I finish integration with SDE, add localization possibilities and solve some minor problems like icons, I will transfer the development from my private repository to EveHQ team’s repository.

The next task will be development of the shell (remember character -> role -> tools) and some easy feature like the skill planner (a module). I can’t spend more than 2 or 3 hours a day for this project, I have two time consuming projects more (my family and my job). So no any time-lines. Hope you understand.

Namaste, comrades!
My name is Mike Eshva and I am the current maintainer of EveHQ, one of the best tools for EVE Online. It has a long story and helped enormous amount of players in many different ways through this years. I even don’t know when was released the very first version. And today I have two news for you. One bad and one good.

I start with the bad one. I will not update the current ‘legacy’ version you know and, I hope, love.

The good one: I will develop the new version which I call EveHQ Next Generation or for brevity EveHQ NG.

In this post I will explain the reasons behind discontinuing of development the ‘legacy’ version and in the following posts I will explain my vision and the current state of development.

Why I don’t want to develop further this version? For many cumulating reasons.

Firstly the upcoming discontinuing of maintains for XML and CREST APIs by CCP as well as API keys we used to use. It should happen in May of 2018. Just in 3 month. And the ‘legacy’ version heavily relies on both of them. Some change already happened when CCP added types of clones, Alpha and Omega. Account-based APIs are broken. You can notice it in the skill planner when your account in the alpha state. There is no legitimate way to judge about your account status, only some workarounds. ESI API uses SSO-authentication with character-based authentication and authorization you starting to see more and more in other EVE-related tools. It isn’t just a minor change. It is a completely different approach. So you can ask: “What’s the problem Mike? Just change the code, use the new ESI API and SSO.” And here we come to the second reason.

The code base is pure in many different ways. I want you understand, the developers of ‘legacy’ EveHQ can be proud about their results. They released a useful product, the working soft. But the code base is almost unmaintainable.

It’s written mostly in VB.NET. Some developers tried to port it into C# but no one had enough time and power to finish it. I can program in VB.NET with the help of Google but I prefer C# like most of .NET developers. With many good reasons.

It written using Windows Forms as the main UI-framework. WinForms is a very old framework. You can find a very good job in terms of salary if you are ready to maintain such a project. But this way you will bury your future as a developer.

The ‘legacy’ EveHQ uses a commercial UI-components library. Uses it in every screen, tab and window. And I couldn’t come to an agreement with the developers of this library. They want money and only money. They don’t care that EveHQ is an open-source and free application. And it’s impossible to change UI in Visual Studio without an installed extensions of this library. As a Russian and an experienced Windows-developer I’ve found a way how to trick this soft but you should understand that anytime the owners of this library can complain to GitHub and the GitHub staff can close access to the project.

‘Spaghetti’ code developed in RAD-approach (RAD = rapid application development). This approach is very good for studding software engineering but horrible for big applications and long terms maintaining. Almost everything put into UI-forms files in event-handlers: UI-logic, business-logic, calls to remote APIs and so on and so forth. The authors of this code had not heard about GoF patterns, SOLID, maintainability and things like that. Every time I start to change the code I want to refactor it. And it costs me enormous amount of struggling to concentrate on the actual task and don’t squander the time on refactoring. It can eat a few month of my time to refactor the code in a good way.

The ‘legacy’ EveHQ is a Windows-only application. I don’t have the statistics how many players use Linux and MacOS as the primary OS but my fillings tell me: at least 20-30%. It’s a lot. In theory it’s possible to port a WinForms application to Mono but I don’t want to do it. There are better ways to develop multi-platform applications and again, I don’t want to spend my time on a legacy framework nobody needs anymore – WinForms.

The conception of the application. What is EveHQ currently? It is a swiss knife, a toolbox of unconnected utilities. Some tools I don’t understand how to use. Especially in Prism. Some of them not needed to anybody, some requires to be re-envisioned. I have a vision of a better solution and will explain it in the following posts.

I will not close the access to the repository or delete the source code of the ‘legacy’ EveHQ. You can always look into the code, fork it and even post a pull request if you are sure you want and can improve the application. I can share the knowledge about the commercial UI-components, how to deal to them in your local environment. But before that try to make you familiar with the code.

I hope I have reasoned the discontinuing of maintaining the ‘legacy’ EveHQ well enough. I’ve started already an architecture prototype of EveHQ NG. It still work in progress and not finished. From time to time I break something but most of the time it’s workable at least in Windows. You can find it in my personal space on GitHub if you wish. But I prefer you wait until the next post where I will explain my vision of EveHQ NG.

Me and Slivo will keep everything up like forum, website and the public on Facebook. Possibly the ‘legacy’ version will receive some minor bug fixes and updates for the fitter… but it’s not for sure.

As always you can write us your ideas and questions. Probably I want to start a discussion with you about what you want to see in the new version. Our efforts for you comrades!

[Market Prices] Market Tab not working I’ve added a market provider for the official CCP’s ESI market prices and orders endpoint! At the first sight it works but could be buggy. Please give me your feedback in the issue tracker on GitHub. This market provider will be selected by default. You can change it back to Fuzzwork one in settings.

As you may know Eve Central is down. It should already have been back online and nobody now when it will be back.
As Nooban suggested on our forums, Mike worked on a new market price provider.

The next release will allow you to select the fuzzwork market price provider as an alternative to Eve Central.
As Mike is kinda busy (But still find some time to implement this provider, thanks !), expect it to be released before the end of October.

Thanks for your bug reports, suggestions and contributions.
Thanks to Steve for the fuzzwork tools.

EVE Central is down… for some time I hope. We use it in EveHQ and this downtime disclosed some problems in our code base. I’ve fixed them but as always with this spaghetti code I can’t be sure it works well in every place. Anyway meet the 2.31.8 release.

One more bug fixing release. The most important addition is player owned structure names in asset viewer. It should work but this feature relays on crowd created service https://stop.hammerti.me.uk/api/ That means we can only see names of structures added to this service by players. You can help to extend this list by participating in The Great Structure Hunt. Structure names should appear in other relevant parts of EveHQ but… eh this code base is so weird that I never can predict the results.

Release 2.31.4 contains mostly bug fixes for the Fitter. I try to make some improvements to Prism but found a problem. I can’t edit WinForms forms in the visual editor. To be able do that I need a setup package of DotNetBar for WinForms at least version 11.8. We use this component set for UI. So I would like to ask you some help. If anybody has this component set with all necessary license keys please send a mail on reg@eshva.ru. The version 14 is the best as I can use it in VS 2017.