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.
Going local
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
, but the all-
JavaScript solution would be clunky in part and I wouldn't be able to run the
JavaScript server-side on grismar.net; so I would be condemned to writing all server-side code twice: once in
JavaScript 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.
Finding
AppWeb 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 and
SQLite3, 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...
The tools
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.
There are 2 comments on this page. [Display comments]