Archive for the ‘Technology’ Category

LlamaWorld

Although there are no llamas in LlamaWorld, there is plenty of JavaScript.  In fact, almost the entire world is JavaScript.

At the moment, most of LlamaWorld’s code is directly taken from an example on the Mozilla Developer Center.

If you beat the first (and currently the only) level, please take the survey when you are asked.  I’ll be posting the results on my blog later as soon as there are enough to be worthwhile…

Ubiquity

What if I could tell Firefox to map what my Google calendar says I’m doing today, rasterize the image, and email it to my family.

What if it actually could understand me?

I’m so excited about this new Mozilla labs application that I’ve already created some commands for it.  They are an upgraded version of the check-calendar command (it replaces the default one), and a command to un-pack code from Dean Edwards’ packer.

You can get the commands by installing Ubiquity and going to my blog homepage… Visit the blog to read more of Ubiquity

VKitty cats vectorized

VKitty’s architecture was wonderful, with all the security on the server side and the user interface on the client side.  There was only one big problem with the architecture: the cats were static images.

Now, I’ve redesigned the entire system, with the same cats still existing, but with better graphics, and more places to add on in the future.  Here’s a visual example: The images are scaled up to show more detail

Before

After

As you can clearly see, the before picture is very pixelated, not antialiased, and is not able to be changed by the server as easily.

On the after picture, it is not pixelated at all, it is antialiased, and best of all, it’s… Visit the blog to read more of VKitty cats vectorized

VKitty

An online friend of mine has tried to make a virtual cat game several times and gave up each time.  But this time is different.  This time, she has the support of a programmer, and I won’t let her give up.

Sir Soybean… VKitty?

The new VKitty is all ajaxified, so there is only one full pageload for each time you visit your virtual cat, and everything else is handled by XMLHttpRequests.  Being admin on VKitty does have its advantages, as I am allowed to do things nobody else can do—adopt a llama and have over nine million cat cash, for example.

There are currently five different adoptable cat

Unpacking /packer/

Ever since I started working on the mostly Ajax app “VKitty“, I’ve been looking into JavaScript compression, and trying to figure out how it works.  Most compressors have very simple ways to compress JavaScript, by simply removing whitespace, but Dean Edwards’s /packer/ defies the simplicity of most compressors by making an unreadable function that acts the same as the JavaScript you feed it, also known as obfusication.

I’ve decided to find out how it works, and I’m starting with something very simple.  “alert(’STUFF GOES HERE’)”.

First, I packed it in /packer/.  I got back the code “eval(function(p,a,c,k,e,r){e=String;if(!”.replace(/^/,String)){while(c–)r[c]=k[c]||c;k=[function(e){return r[e]}];e=function(){return’\\w+’};c=1};while(c–)if(k[c])p=p.replace(new RegExp(’\\b’+e(c)+’\\b’,'g’),k[c]);return p}(’0(\’1 2 3\’)',4,4,’alert|STUFF|GOES|HERE’.split(’|'),0,{}))”, which is really unreadable.

Let’s unpack the /packer/.

I did a bit of formatting on the function returned by /packer/: (it’s an image because I couldn’t get syntax highlighting to… Visit the blog to read more of Unpacking /packer/