Wiki | Explorer | Navigator | Complexes | Build | Item info | Rigs | Cans | Security | Rats | Ore | Changes (Aug 05 '07)

Grismar's EVE Wiki : EveGrismarLocal

WikiHome :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register

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.netleaving this site 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 Delphileaving this site, running the Indy component setleaving this site. 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 PlainOldWebserverleaving this site, 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 AppWebleaving this siteas I was looking for a web server I could integrate into something I was building professionally. When I read the licensing termsleaving this site, 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 Embedthisleaving this site 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 5leaving this site on Windows using only free software (MS Visual Studio Expressleaving this site 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 SQLiteleaving this site 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 accessleaving this site in PHP, since this would allow me to use MySQLleaving this site online (as I have before) and use SQLite locally without changing my code. I want to port the official developer data exportleaving this site 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 MySQLleaving this site 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]

Valid XHTML 1.0 Transitionalleaving this site :: Valid CSSleaving this site :: Powered by Wikka Wakka Wiki 1.1.6.2leaving this site
Page was generated in 0.0346 seconds