I did all my initial development a couple of weeks ago, then got heavily involved in a project at my real job that prevented me from touching Chess Juice since. So far I have the basic board rendering at any resolution up to 800x800, which should be plenty big for computers and tablets. I've got the PGN engine done that can parse and replay a PGN game on the board as well. The server side will be storing all the games as just vanilla PGN files with ancillary data (like timestamp of last move) in a database. Next up for the board code is to allow making/validating the next move.
I'm still working out how I want the communication with the server to work. I'll likely just send up the PGN text - that's the easy part. How to send a move back to the server is the part I'm wrestling with. Sending the move in straight PGN/algebraic notation is obvious enough, but should I protect this with some sort of encrypted data to keep anyone from trying to hack a game? Seems like a reasonable thing to do.
Here is a screenshot of the board pre-loaded with a sample PGN file (don't pay much attention to the look of this page yet, just the board):
Tuesday, January 24, 2012
HTML5 + CSS3 + jQuery = Yummy Developer Goodness
I've been doing web development for way longer than I care to admit, and in the olden days HTML was quite the mess. It seemed like more things worked differently on the browsers of that era than worked the same, and I absolutely loathed that crap. If it weren't for the overwhelming allure of getting stuff out there on the web, I wouldn't have stuck with it this long. :)
HTML5 has been a long time coming, that's for sure. Now things are so much more standardized, and work mostly the same on FireFox/Chrome/Safari, although you have to ignore Internet Explorer - and believe me, that is something I try to do every day. HTML5 and CSS3 have all kinds of goodies that I'll be using on Chess Juice, cool stuff like Web Workers (threads in Javascript at last!), better page layout abilities (Flex Box!), and of course enough css/javascript effects to choke an elephant.
One feature I won't be using is Canvas. It's really tempting, but just seems like overkill for this app. It is so easy to use jQuery to manipulate the DOM in a very efficient manner that I just can't see the benefit in investing my time to learn the Canvas API on top of everything else I have to do for Chess Juice.
If you're a developer and you're on the fence on HTML5, jump over that fence and romp though the lush fields of HTML5 today! It is clearly the future of the web, so don't get left behind.
HTML5 has been a long time coming, that's for sure. Now things are so much more standardized, and work mostly the same on FireFox/Chrome/Safari, although you have to ignore Internet Explorer - and believe me, that is something I try to do every day. HTML5 and CSS3 have all kinds of goodies that I'll be using on Chess Juice, cool stuff like Web Workers (threads in Javascript at last!), better page layout abilities (Flex Box!), and of course enough css/javascript effects to choke an elephant.
One feature I won't be using is Canvas. It's really tempting, but just seems like overkill for this app. It is so easy to use jQuery to manipulate the DOM in a very efficient manner that I just can't see the benefit in investing my time to learn the Canvas API on top of everything else I have to do for Chess Juice.
If you're a developer and you're on the fence on HTML5, jump over that fence and romp though the lush fields of HTML5 today! It is clearly the future of the web, so don't get left behind.
ChessJuice.com started!
Welcome to the ChessJuice.com developer blog! You can follow my progress here to know exactly when the app is available, and if you're a fellow developer I'll also be posting any tips and tricks I learn along the way.
First, what is this app? Check http://www.ChessJuice.com for details, but basically it's an HTML5 webapp for playing chess online, but not "live". It's like the old-school correspondance chess - you make a move when it is convenient for you, and your opponent will do the same. Moves do have timeouts, with the default being 2 days.
With that out of the way, why on Earth am I doing this? I started as a user of the Android app Chess Buddies, and you can find me there as twinfeats. Man, does that app have a lot of bugs, and the server side has a lot of performance issues. So there's your answer - I want to build a better mousetrap. :)
Subscribe to:
Posts (Atom)

