The birth of eve.grismar.local
In which our website grows up, gets into your base, touching your mems and starts kicking serious ass. About the process, why it took so long and what cool, open and free stuff went into it.
How it came to be
I've been putting off updating the eve.grismar.net
pages and tools for a long time. Partly because other activities were taking up my time, but also because I really wanted to make some serious improvements instead of just keeping it afloat. The main issue with the old version was speed. Loading a page could take seconds and for someone checking dozens of queries or planning an exit in the heat of combat, seconds just isn't good enough. You want a virtually immediate response.
I knew I wasn't going to get that speed on any hosting provider I could afford and I didn't want to be dependent on some benefactor like for a reliable and fast server. However, I did want it to be web-based for a number of reasons. For one, it would allow me to still have a working version online for those that were unable to run anything locally, perhaps because their system admin wouldn't allow it. Secondly, I wanted the pages to be available in-game, even for those that require the game to be running full screen. And finally, I wanted to release it under an open license and preferably written in a open language many EVE players would actually understand.
So, I decided the next iteration of the eve.grismar.net tools had to integrate a local program (that is, running on your computer) with a website. Running a light web server locally would get me the speed I needed, while I could still integrate the wiki, news and other live content from the website. I started out with a hand-rolled web server written in Delphi
, running the Indy component set
. But that ran into all sorts of trouble and I figured I should look for something sufficiently open and already in existence. I looked at PlainOldWebserver
and once in PHP or Python.
After about four months of indecision (time flies when you're procrastinating, as I'm sure many of you are aware), I bumped into AppWeb
as I was looking for a web server I could integrate into something I was building professionally. When I read the licensing terms
, it occurred to me that it fit the profile for my eve.grismar.local server perfectly. It is available under GPL, the binaries provided by Embedthis
are free to use as-is and it runs PHP without a hitch. As a bonus, it has a light memory footprint and it's fast as well as easily configurable.
was only the beginning though. In the weeks afterward, I figured out how to rebuild PHP 5
on Windows using only free software (MS Visual Studio Express
and several GPL-ed libraries). This got me a lean and mean PHP that only had the features I needed, keeping it as small and fast as possible. Having settled on a coding platform, I still needed a solution for the database.
Need .. more .. input!
I picked SQLite
as the local database platform, since it allows for a single file database and requires no configuration or services, keeping installation simple and making it easier for me to provide database updates in the future. I switched to using PDO for data access
in PHP, since this would allow me to use MySQL
online (as I have before) and use SQLite locally without changing my code. I want to port the official developer data export
to both MySQL
and SQLite by converting the SQL dump from Microsoft SQL Server Express and tweaking some of the SQL with a couple of scripts.
I had tried converting earlier versions (Revelations) of the EVE database to SQLite2
, but I decided on going with SQLite3
for eve.grismar.local for the extra speedup. Luckily, before starting the new conversion, I Googled around and found that the conversion to SQLite and MySQL
was already available.
It ain't over 'till the fat lady sings
So, that's where I'm at now. The database ported to MySQL
, on a platform that will run my code both online and locally and with a working knowledge of what I want the new versions of my tools to do. As soon as I get one of them working properly, I will start switching out the old ones and putting up a decent release with an installer for eve.grismar.local...
First up will be the EveNavigatorLocal
. Mainly because it is a relatively simple application in terms of database access and I don't need to rewrite my datagrid component for it to show itself. Also, it is one of the applications that needs the speed advantage the most, since it provides data that might be critical in a combat situation.