Why I wrote simplyxiangqi.com

A long time ago, my Dad got me the game ‘Battlechess 2’. Much time my surprise, it was some strange variant called ‘Chinese Chess’, and I enjoyed it (even though I’m not much good). It doesn’t have the whole ‘pawn-shuffling’ start or drawn out end games, so it appealed.

A lot of time passed, and I became a developer. One day I was looking at an online chess site and I just thought ‘I could build this’. I had recently started learning about JSP and Servlets to work towards Java Web Developer certification. So, I sat down, worked out the logic, learnt about ‘bit boards’, and build the engine for working out valid moves, given a position. And I wrote it all in Java.

After that, all I had to do was build the website to support that engine, and at this point I stalled. Building websites out of Java was excessively hard – security filters for login, carefully planned data structures, lots of JDBC to connect to the database. To be honest, the hard problem cracked, I lost interest.

Time passed. I started to read about this new thing ‘Ruby on Rails’, and so I thought I should take a look. I went through a couple of tutorials and I was impressed. In minutes I could make a (very basic) site that dealt with security, database interaction, etc., pretty much for me. I just thought “Now this is a simple way of building that site”. So, I did.

I ported my code from Java into Ruby in about 4 hours – most of which was getting to grips with the Ruby language itself. I built a database schema, and based the site around that structure.

And that’s pretty much where simplyxiangqi came from.

Why I wrote simplyxiangqi.com

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s