JS Transformer

- Image via Wikipedia
The official release of one of the most useful (yet hackish, and randomly pieced together from the interweb) code snippets I’ve ever made. I’m calling this useful little piece of code “JS Transformer”, since Transformers are cool again thanks to Shia LaBeouf.
NOTE:
KEEP IN MIND THE SAME-ORIGIN POLICY OF MOST BROWSERS… you’ll probably have to use a server-side proxy to make this more useful (i.e. proxy.php, proxy.jsp, proxy.asp, etc… a topic I’ve covered before)
Video Game XML schema and JSON serialization

In honor of the recent uptake in video games designed on the web completely using open web technologies (i.e. HTML5, CSS3, JavaScript2), I decided it might possibly be useful to someone out there someday if I share a generic XML schema for describing levels, characters and secrets in games. This schema is data-focused, not transaction or interaction-focused; as such you might consider it incomplete, as it is missing the requisite timing information, animations, transitions, object drawings & renderings, etc… all admittedly required to put together a complete game.
That information is what I consider implementation-specific though, as there’s not a single foolproof/clean way to markup interactivity or logic information for a very wide array of games, screens, operating systems and devices. There are a number of initiatives already under way to model some aspects of the interactivity problem though, started by people much brighter than myself. See VRML, WebGL, and SMIL + SVG, Canvas/Javascript or even just plain old Flash/Actionscript for some interesting approaches in this area of interactivity and animation modeling.
What’s wrong with Video Games nowadays?
One of the biggest problems in the Gaming and related industries nowadays is not the lack of hardware or software capabilities, but rather, keeping up with the increasing capabilities in terms of processing power and new technology possibilities. In addition, margins are getting arguably thinner on games, with teams required to be bigger and bigger to ship products out the door on time. The point is though, is that there is always a better way than multiple groups of people separately beating their collective heads against a wall trying to keep up with innovation. The answer lies in open standards.
Who stands to gain from standardization?
Everyone from the consumer down to the MMORPG companies (i.e. Linden with SecondLife, or Blizzard with WoW) to Educators (i.e. Northern Ontario School of Medicine with OpenLabyrinth or the millitary with their infamous adoption of SCORM in desperation to reach a standard for training simulations) to the Game Designers, Creatives & Developers whose jobs would be made easier, to the big-time game production shops (i.e. EA, LucasArts, HB Studios) who could collaborate with their audiences directly to churn out hits at an even faster rate, we’re even talking right down to the console manufacturers themselves (i.e. Sony, Nintendo, Microsoft) would be interested in a standardized solution that enabled them to boast a larger number of titles and higher sales. But the problem is they haven’t the time nor resources to get together and really focus on hashing out the standard (or multiple standards) that would be required to solve the problem(s) they face, and most importantly even agreeing on what their biggest (common) problems are. Hence there remains a lot of waste across each of these industries, and the best we have to look to will continue to be collaborative groups like the W3C, which certainly does have the time to develop interoperable standards to support collaboration. What does this mean?
The platform will eventually be the web, its practically inevitable. This may sound odd at first, but especially when one considers that processing power continues to increase across the board. Heck, I never thought I’d admit it but even Microsoft’s continually improving adherance to such open standards is starting to shine through with their impressive GPU-accelerated HTML5 demos for IE9 Beta.
This should be considered a major win though for the open web in general; what it shows is that the big guys are willing to play with cool new open standards, they just might not necessarily waste all their time and R&D Budget with a risk of winding up on the bleeding edge of a new technology rather than on the “cutting edge”. So its an eternal cat & mouse game, as they try to divide up the larger piece of cheeze amongst themselves and their proprietary consoles. With the right guidance, leadership and grassroots demand they can and will realize the benefits or sharing a lot more of the cheeze in the name of drastically increasing the number of people who incorporate cheeze consuming and making into their daily diets (so much they’d be happy to help bake more, or, at least pay for someone else to make more for them).
A modest proposal
With that lengthy premise out of the way, keep in mind, the following schema is just a first kick at the can for fun, so let’s see what we end up with. What I’d ultimately like it to be is a way of unlocking the complex and seemingly cryptic/exclusive world of game development, for the common man with an idea and some spare time/energy.
This is why I also created a prototype for a new HTML5 online game development studio to go with the new formats.
View an Example XML below:
Read the rest of this entry »
l10n Locales (HTML) select box and data (SQL)

L10N is an acronym that stands for Localization (coming from the 10 letters in between “L” and “N” in the word Localization). L10N is a combination of software and language targeted to a specific region’s (or more specifically – locale’s) dialect and/or socio-cultural, politically correct, visually appealing representation. The standards and specifications most commonly used to implement or develop support for L10N is ISO 3166.
While a complete list of locales is available on the ISO’s ISO-3166 website, there are no particularly easy-to-use versions of the data except for a zipped XML file. For convenience’s sake, we’re offering an L10N SQL script in an easy-to-use 2-column format, and an HTML select drop-down version below:
L10N code:
A quick XSLT tutorial

This post is meant to be a brief XSLT refresher, since I tend to need to rely on several web resources as references to remember the obscure functions and element names available in various versions of the XSL specification, as well as to remind me of the various patterns, tricks and workarounds.
There are three key technologies at play in an XSL Transformation:
- XML – the original document holding the data to be parsed/processed/rendered
- XSL – the definition of a transformation and any additional styles to apply
- HTML – the human-readable rendering of the original XML data, which gets displayed to the end-user
As you can see in the diagram on the right, XSLT follows a clear processing path, starting with an XML document and the corresponding XSL document designed to parse it provided to an XSLT Processor, which acts as an intermediary in applying the desired styles and structure to the particular data being parsed out of the XML. The resulting document could technically be any number of formats, including another XML document with a different format, Plaintext, CSV, HTML, xHTML, RDFa, JSON, HTML with microformats, CSS, Javacript or even Java, PHP or another server-side language’s class files to be compiled or interpreted later.
Typically though, HTML will be the format displayed by a rendering, and officially only XML and HTML output formats are supported by the specification, although even in the browser, it is possible to render other formats to be displayed by not specifying the output type.
Read the rest of this entry »
RSS Reader in jQuery .vs. JavaScript (AJAX)

Parsing RSS is a task that many developers have been faced with. jQuery makes this significantly easier on the client-side, but the good ol’ AJAX is not that bad either if you set things up functionally to minimize on-page code. Two versions of the same RSS Reader with parsing handled with and without the “write less, do more” JavaScript library follow.
DISCLAIMER:
I know I haven’t really captured the spirit of jQuery by using identical functions to straight JavaScript, however, I mainly wanted to show the similarities and differences between using one parser .vs. another.
FOREWARNING:
Thus, I fully accept that a jQuery whiz, which I am not yet, could clearly use the library to write a few lines of a jQuery RSS parser that would easily blow this one away in terms of efficiency and robustness, thus highlighting the advantages over using old-fashioned JavaScript.
JUSTIFICATION:
That’s just not the point of this article, which is merely a quick look at making an AJAX request and parsing XML in jQuery .vs. JavaScript.
Here’s a very basic RSS Reader in jQuery:
Read the rest of this entry »
BC$ = Behavior, Content, Money

The goal of the BC$ project is to raise awareness and make changes with respect to the three pillars of information freedom - Behavior (pursuit of interests and passions), Content (sharing/exchanging ideas in various formats), Money (fairness and accessibility) - bringing to light the fact that:
1. We regularly hand over our browser histories, search histories and daily online activities to companies that want our money, or, to benefit from our use of their services with lucrative ad deals or sales of personal information.
2. We create and/or consume interesting content on their services, but we aren't adequately rewarded for our creative efforts or loyalty.
3. We pay money to be connected online (and possibly also over mobile), yet we lose both time and money by allowing companies to market to us with unsolicited advertisements, irrelevant product offers and unfairly structured service pricing plans.