Thursday, July 30, 2009

Hooray, Wes Anderson! Hooray, Roald Dahl!

Roald Dahl + Wes Anderson = The next movie I go to at the cinema. Dig the preview here.

Sunday, July 19, 2009

Angry Drunken Programmers


One aspect of my talk at OSCON next week is showing how to distribute a custom version of an application via Launchpad PPAs. For my demonstration I chose the game "Angry, Drunken Dwarves" and re-skinned it to be "Angry, Drunken Programmers". You can play the following characters:


  • Alan Kay - Description: Alan has been torn to shreds by Lions that were soaked in psychedelic drugs and gasoline. He still stabs them in the head with authority. He is a computer scientist, known for his mustache, his early pioneering work on object-oriented programming and windowing graphical user interface design.
  • Linus Torvalds - Description: Linus is best known for having initiated the development of the Linux kernel. He has done other stuff, but what else do you need to know other than his his wife is a six-time Finnish national karate champion and she will snap your neck like a pencil.
  • Other characters include: Larry Wall, Richard Stallman, Donald Knuth, Martin Fowler.
While I hope this adds a bit of silliness to my talk, I do think it demonstrates a legitimate use for PPAs. Most of the time if you are making improvements to an open source project it is best to push those improvements back to the community, but there are scenarios when your changes are not generally desirable. The debian build system is very robust and supports being able to make changes to upstream projects without affecting the upstream codebase. Ubuntu makes very heavy use of this and so can you. Come hear my talk and let Angry Drunken Programmers teach us about this!

In the meantime if you run Ubuntu and want to play Angry, Drunken Programmers you can install it via my PPA, here (see the instructions link on the page). Or you can get the source here.

Go Native with Launchpad


Next week I am giving a talk on Launchpad's Personal Package Archives (PPA) feature at OSCON. PPAs allow you to upload Ubuntu source packages to be built and published as an apt repository by Launchpad. Publishing your software as a PPA means that your software will be a "native" installation for the millions of Ubuntu users out there. Aside from attracting that large community there are many other reasons why having a simple and reliable install/uninstall/upgrade path for software is important:
  • less support effort.
  • doesn't scare people away.
  • gives confidence in your software.
The challenge with PPAs is creating the initial Ubuntu source package. I will show some of the basics of this in my talk as well as how you can create and distribute custom versions of software with your PPA.

Sunday, July 12, 2009

I should have gone to Art and Code this year.

ART && CODE Symposium: Hackety Hack, why the lucky stiff from STUDIO for Creative Inquiry on Vimeo.

This is a talk by a certain lucky fellow at the CMU Art and Code Jamboree. Looks like fun.

Cleaning up after the great JavaScript Framework Explosion of 2006


For the past 3 years every web application I have worked on has used a JavaScript (JS) framework. Usually it is one of these guys:
All of these guys are really good guys to know; especially if you find yourself in a dark alley being threatened by a mob of project managers wielding GWT manuals. These guys will save your bacon. I would go so far as to say that in this era of Ajaxified interfaces you really can't do without knowing one of these guys. You would be totally lost. Nowhere. If you don't know one of these guys then I pity you just like I pity the descendants of the lost tribe that never discovered fire and thus do all their cooking with friction. Nothing is more pitiful or unappetizing than a hamburger and fries that were cooked by rubbing them against a rock for 8 hours.

These libraries extend the JS language, make data exchange with the server more flexible, give you enhanced widgets and let you create effects on the page. Great! But should we really be doing all these things in JS? It seems like widgets and effects are more in line with what HTML and CSS are responsible for, not JS.

I hadn't really thought about this until today when I was reading about some of the new stuff in CSS3 (my favorites are the new selectors, transitions and animations). This is pretty exciting stuff that will really clean up alot of ugly things you end up doing in your JS code. For example, the Wolfire blog has a great, nontrivial sample of the sort of custom widgets that you can achieve with CSS3 animations and transitions. (see the animated gif, but please, do yourself a favor and go to the wolfire link above so you get the full context). This is a custom widget that is just pure CSS. You only use JS for activating state changes and sending data. You know, JS for behavior, CSS for appearance. Perfect.

It looks like CSS3 is going to put in order all the things that were dislodged by the "Great JavaScript Framework Explosion" of 2006. Of course I still want my JS frameworks, but let them help me with event handling, data transfer and writing concise, testable, maintainable JS code. Leave the appearance of my page for CSS to describe.