Category Archives: General

[ Update 18 Nov 2009 ]

This article is rather old now – the jParser code has been released

Despite the glorious sunshine this week, my week off, I managed to put some time into my pet project of developing a full JavaScript parser written in 100% native PHP. Actually, I’ve been developing a generic parser suite for some time, and using it to build a full JavaScript parser was my ultimate goal to be satisfied that it all works and is powerful enough to be useful. I’ve written a bunch of blogs about developing a parser generator in PHP, (click “parsing” to do a tag search).

Before I start wittering on,
Click here to play with the online example of JParser

Continue reading…

The mini project I picked as my first dip into AS3 was a short example that I had been planning for this blog, so here it is in AS3, instead of AS2 as I had originally planned.

The South Park Chin balls Flash app required that the user drag and zoom a loaded photo. Anyone who’s ever done this will know that you can’t just scale the picture around it’s registration point when you zoom. Why? because the centre point changes as you pan the image around. So the requirement in a nutshell is – to be able to scale a MovieClip around an arbitrary centre.

Sure, you could take the Russian doll approach with multiple clips inside clips, but that just ain’t cool! I thought I’d share the way I did it as it’s pretty concise. Continue reading…

Much later than planned I finally got around to checking out AS3.

I was quick to upgrade to AS2 when it came out in Flash MX 2004, and never looked back, so why so late? Well, as usual, because I’m busy. Busy on a PHP project at that, so I haven’t really had the chance. Plus, if I do have to write some AS on the job it’s too big a risk to start learning something new. Pressures demand that I get on with it as I know how. That’s why this Facebook application has it’s main Flash app (Chin Balls) written in AS2. Also, I view the upgrading of a programming language as a one-way process. I didn’t upgrade to PHP5 until I was confident I would never have to write PHP4 again. And with AS3 this is an even bigger deal. Continue reading…

The designer/developer boundary has always been a little blurry when it comes to Flash. Flash has been celebrated for this since 1999, and  has established a pretty unique position. But with each release of Flash those who sit on the fence feel an increasing pressure to choose a camp and stay in it. Some do, some don’t and some just carry on doing things as they always did, but one thing’s for sure; that the drive toward Flash being a more robust, more powerful, more serious platform is not showing any signs of slowing down. AS3 is another leap forward. In fact a much bigger leap than AS2 was. Continue reading…

I can’t quite believe how long I’ve lived without the Eclipse IDE. I’ve always been quite proud to walk into an agency with my copy of Homesite 5, it shows I’m old school – I don’t need no fancy code hinting, it’s all in the old noggin!

Anyhow, I downloaded Eclipse about a year ago and installed PHPElcipse. I was put off immediately by the shear size of the application, and decided that if it ain’t broke don’t fix it. So it sat silently amongst my Program Files for a good year or so until I was inspired last week by a colleague to give it another go. Continue reading…

JSON Parser

If you haven’t read Part 1, or Part 2 they are there for the reading.

I’m going to demo a JSON parser in this post. It’s 100% native PHP code, and is based on the work I’ve done toward my ultimate goal of a full JavaScript parser.

Click here to play with the interactive JSONParser demo

I thought I’d get this example online now as my ultimate goal is taking longer than I had hoped. I shan’t go into the details, suffice to say that the JSON grammar below is a very tiny subset of the full JavaScript grammar and doesn’t really have any complex rules.

Continue reading…

At what point did the entire English speaking world start using the word ‘Meh‘? I say ‘word’ – more of a noise really, and one invariably accompanied by a physical gesture. I wonder what great historical events rang out with this cry.

Perhaps we need an emoticon for this? Suggestions please! Unless of course you’re too indifferent to bother.

In part 1 I introduced and demonstrated the parsing concept using a very simple date parser. In this part I am going to talk about the important role of tokenizing. If you haven’t read part 1 this may not make much sense, so read it now if you haven’t already.

Syntactical vs Lexical

Looking again at the simple grammar of part 1. You may notice that the rule: <D_DIGIT> ::= "0" | "1" ... "9" is a bit different to all the others. It does not really contribute to the syntax of our language, it merely describes the legal characters that make up a single digit. It is convenient to view this aspect of the language as a subset of the grammar; one that is concerned only with what input ‘looks like’ rather than where it appears. This can be called the lexical grammar. The rest of the language which is concerned with syntax can be called the syntactical grammar. Continue reading…

I just became aware of an apparently legitimate US-based company who I shall not provide a link to;
[whois guard] [dot] [com] – operated by [name cheap] [dot] [com].

Their opening gambit “We hate spam like you do” is somewhat ironic when you consider that their services are of enormous help to cyber criminals such as phishing gangs. These ‘people’ need to operate domain names, but they must remain untraceable. Protecting their whois data is an obvious step towards concealing their identity. I am not suggesting that companies offering such services are corrupt, rather that it highlights the dichotomy of the internet privacy problem. Continue reading…