Mar26
In the third update to my crossword web app tutorial, I discussed CSS Canvas. I mentioned how potentially powerful the canvas can be, especially as an alternative to Flash, but I wasn’t able to provide concrete examples since I hadn’t personally done anything exceptionally extraordinary with it yet.
Well now I have the proof! A couple of weeks ago I was followed on Twitter by @canvasdemos. The Canvas Demos blog dedicates its time to tracking down and showcasing demos and tutorials for the HTML canvas element. Some of the examples they’ve uncovered are truly amazing and include games, 3D tests, music visualizers, etc. If you’re at all intrigued by the power of CSS Canvas, and are wondering how you can use it on your own site (or Web app), don’t hesitate to give their site a look!.
The image above is from Jacob Seidelin’s music visualizer. The demo creates an image of Thom Yorke to the music of Radiohead’s Idioteque. It’s worth checking out.
— Ryan
Mar25
Although it’s easy to get Javascript to read from an XML file, pulling out the appropriate data can sometimes be tricky. Here are some tips to help you tame the XML beast.
Part 6: Taming XML
Let’s look at a typical XMLHttpRequest again.
var url = 'xml/070814.xml';var xmlhttp = new XMLHttpRequest(); if (xmlhttp != null) {xmlhttp.onreadystatechange = stateChange;xmlhttp.open('GET', url, true);xmlhttp.send(null);} else {alert('Your browser does not support XMLHTTP.'); }} function stateChange() {if (xmlhttp.readyState == 4) {if (xmlhttp.status == 200) {/*A status of 200 means that the XML file wasloaded and parsed without error. At this pointyou'll want to sort through all of the data sothat it can be used by your program. I'll giveyou some tips on how to do this in the nextupdate.*/} else {alert('Problem retrieving XML data.');}}}
Figure 1. The basic structure of an XMLHttpRequest
continue reading »
Mar23
Although I’m preparing Part 6 of the crossword web app feature for tomorrow (after an unfortunate two week posting hiatus), I wanted to quickly point out the new “inspirations” module, included in the sidebar.
For years now I’ve admired the works of many of today’s top visual designers. Through regular visits to the Iconfactory, an icon design house, I’ve come to appreciate the illustrative styles of a select group of visual designers. David Lanham is one of these incredible designers. Lanham’s designs are remarkably otherworldy. Though his creations are born from fantasy and bewilderment, his attention to detail is uncompromised. David’s contributions to the Iconfactory can most publicly be seen in icon and title art he created for the Frenzic iPhone/Mac game and the Twitterrific application.
I’ve included one of his vector pieces, Samurai Monkey, above. On his site Lanham writes, “Most of my work is made to be fun and enjoyable, which works out well since I have a really good time creating it.” And that simply is what good design is all about. Making magic and having a fun time doing it!
To view more of David Lanham’s art, visit his Web site at www.dlanham.com. You can also follow him on Twitter at dlanham.
Mar8
When I first started developing this crossword tutorial, I wanted the end game to access USA Today’s crossword XML feed directly and offer a new game each day. Sadly, their feed is secured. Although I can track it down, view its source in a Web browser, save to a local file and upload to my server, I cannot get my code to access the file directly from their server. Keep that in mind when we reach the end of this tutorial. You’ll be able to play one completed game, but don’t get too attached. There’s not much replayability.
Part 5: Importing From XML
Most programs, including games, require data. More often than not this data must be updated regularly so as to sustain the usefulness of the application. This type of data is usually stored externally (out of the application’s main code) since it makes very little sense to require the application’s user to download a new version of the program every day in order to receive the latest and greatest data. Therefore, with respect to our game, it makes a great deal of sense to store the data for each crossword puzzle in an external XML file. This way each puzzle can easily be loaded individually by referencing a different XML file.
continue reading »
Mar7
No, it’s not the latest and greatest place to meet Sailor Moon-costumed babes and stuff bag after Watchmen-themed bag with useless, but free, tchotchkes. Favicons are the neat little Web site icons that appear in the address bar of your browser, and I finally got around to creating one.
Pretty, isn’t it? Did you know that Microsoft pioneered favicons in the release of Internet Explorer 5 as a way to spice up dreary bookmark menus? This was back when Microsoft actually contributed to the forward momentum of positive Internet change instead of holding it back. It wasn’t until later that favicons were incorporated into browsers’ address bars.
Most people know the purpose of a favicon and even understand how to implement one. Still, there are some unique things to keep in mind when generating the image itself.
continue reading »