JS1k 2016: eleMental

2016-02-03

The next JS1k competition has begun! It'll be the sixth edition, not counting that xmas spaz. I'm a little amazed to have held it up so long. And I don't really see it dying any time soon.

In case you don't know, JS1k is a JavaScript minification competition, also called a "code golfing competition". Because you need to reduce the number of bytes as much as possible, like strokes in regular golf. A 1024 bytes may sound like a lot at first. It will look like too little once you get started. But it turns out to be perfectly right for a competition like this when you see what's already been done.

So what's different this year? Nothing much really. I've relaxed the rules a little. A bit more back to the beginning. Additionally I've added a d shortcut to document in the shim. The other thing is when supplying the size of a canvas you can request the aspect ratio to be maintained. These were requested features.

The main let down (hurhur) this time around will be the lack of ES6. But honestly, the support just isn't there yet and I'm not ready to burden myself with supporting half-assed demos for all of eternity, so you'll have to deal with it. I'm expecting ES6 to be possible next year, when browsers fully catch up. And I'll be super interested in this as ES6 allows for many new minification tricks to be applied. But that'll be a good challenge for next year.

As far as the back end is concerned, I've optimized it. Improved the templating engine, restructured the content better, and generally tried to make adding a new year to it easier. Learned that php has anonymous functions now. Learned that php doesn't have closures. Learned that hey, php does have pseudo closures. Learned that arrays are still copied on assignment in php. And moving on. But hey, optimizing is what I tried to do last year so I'll probably still spend a week on it next year. Oh well.

I feel a little bad for slacking off on the whole thing, I didn't really start prepping the competition until like a week before. The reason is simple; there's a two month old and I've been busy maintaining a youtube channel. Combined this competition was too far in the back of my mind, I guess. This is mainly a problem for contacting and getting judges. But I think that turned out fine :) Oh well, and the same for sponsors. But I guess that'll also work out fine too. Right? :)

Anyways. The new competition is themed "eleMental" which is an intentionally wide topic. There are various things related to the theme; elements, both in physics, in basics, as in html elements. Mental, crazy, pshycedelic. Elementary, Holmes, and what of that mysterious letter M? Of course the theme is still fully optional, so if you had this beautiful Japanese sunrise prepped, it's just as welcome.

An additional new ... element to the competition is Reddit. I've opened a "subreddit" for JS1k where I'll post the demos, in addition to regular channels, so people can discuss them and vote on them. I've tried twitter voting before but the metrics just aren't there for it. So instead I'll award a community reward to the demo with the most upvotes. Let's see how that works out :)

I hope to be amazed by many new demos. Good luck to you all. And remember; you don't have to win in order to put down an awesome demo :)