Making Things Last

I have an oil painting hanging in my home—a landscape of a lake reflecting the sunset that burns beyond a far-off mountain. I know enough about art to know that it is mediocre in terms of execution, style and composition. However I love the painting dearly because whenever I see it I am reminded of my grandmother who painted it.

Oil Painting by Jean Dowdeswell
Oil Painting by Jean Dowdeswell

I reflect on this and wonder what my children will have to remember me by. I dabble in music, poetry, writing, photography, illustration and artwork. I’ve produced a lot of things professionally over the years in both graphic design and programming. Yet a large percentage of my stuff is in digital form, and this worries me a bit. I see these problems:

  1. Storage media becomes obsolete and incompatible much too rapidly, and it deteriorates over time.
  2. File formats, especially interactive media, also become obsolete very rapidly.
  3. Online storage services aren’t bulletproof and access can be lost due to human error.
  4. If I die, who will be willing and able to track down all of this stuff I’ve stored in various places?

Right now, my solution to the above problems is eclectic. I try to keep most stuff on my one computer and to keep a reliable hard drive backup. Right after I’m done this article, I intend to review whatever instructions are left for accessing this and my other things which are stored online. Just like I told myself last year. And every year before.

What about code?

I will admit that when I write code, my primary goal is for it to be useful right now for the task at hand. I can’t help but wonder however whether my code will be useful many year from now.

If you follow me on Twitter for any length of time you will soon learn that I am an advocate of the Haxe language. It has been around for ten years now, and although it isn’t extremely popular, it is extremely versatile and can be compiled not only for multiple platforms but also multiple other languages.

In a nutshell, I see that code written in Haxe is going to have a very strong likelihood of being useful many years from now, no matter what other technologies come along.

But let’s gain a larger perspective on these issues:

Does any of this matter, and will anyone care?

I went to a presentation by Stefan Sagmeister a few months ago, and he talked a lot about happiness. He had some good insights about how to be happy, but it left me wondering: is that what life is about? Does it do any good to pursue happiness during this lifetime when it is just a speck on the timeline of eternity? His show was preceded by a presentation by the wonderfully talented Brian Kachur who made the point that creative people need to spend less time worrying or grumping, and more time making “cool shit”. That resonated with me a bit more than Stefan’s presentation, and it got me reflecting more on the meaning of it all.

Why is stuff cool? It seems to me that it’s about the audience and not yourself. I’ve joked before that I can be cool all by myself at home, but I don’t really believe it. Something is cool because it is judged to be so by others. We have a relationship with and obligation to the audience of whatever we make. I also believe that when we are focused on serving others, we are more likely to forget our own problems and therefore more likely to be happy. But happiness must not be the end goal.

Because it can entertain and inspire, communication design is an opportunity to do good. It is being good that will make people remember you and love you. That’s why I love my grandmother’s painting—it is because I loved her and it helps me remember her.

I want to take this idea yet another step further. I mentioned about our audience judging our works to be cool or good. Will we have the same audience many generations from now? I think about how much I know about my great-great-grandparents and I have to answer no. There is only one judge left after that amount of time, and I know my works will be remembered and written in his book forever. With no data loss.

Mac users: make your own launcher app for command-line utilities via AppleScript

I’ve been using HIDE lately for Haxe development. It installs and runs from the command line normally, and I quickly get tired of having to summon the Terminal in order to launch it. Here’s what I did to make it launch from my Dock:

  1. Open up AppleScript Editor (it’s in your Applications/Utilities folder, or find it using Spotlight).
  2. Create a new script.
  3. Paste the following line into the editor:
    do shell script “haxelib run HIDE”
  4. If you click the Run button at this point, it should launch HIDE for you.
  5. Select File>Save and choose “Application” as the file format. Save it in your Applications folder.
  6. Find the application now and drag it to your Dock for quick access.

This technique works for any Terminal command of course. Enjoy!

Adobe: Why no AS3/HTML5 solution for Flash?

Every time Adobe does an article about the Flash IDE’s ability to do HTML5, I am very interested and I check it out. I am always disappointed when they get back to the fact that you have to use JavaScript.

I really cannot understand why Adobe has not endorsed or offered a method to compile Actionscript (or a better language) to JavaScript from within the Flash IDE. Actionscript 3 is clearly superior to JavaScript. Why should we have to re-write everything when we’re in the same IDE? Why are they taking a step backwards?

I would consider Haxe to be the ultimate solution, but Adobe could even use Jangaroo or similar technology to target HTML5—maybe even bundle Google Swiffy. If they did, I’m sure developers would be happy to be able to create both Adobe AIR apps and HTML5 apps from the same code base without needing to install other tools. Those of us using Haxe are already basking in the glory of that.

Perhaps Adobe thinks such a move would eat away at their AIR platform’s popularity. I just don’t know why they bother with JavaScript tools within Flash, when better tools exist. As it stands, I expect that more developers will be doing like I did and begin switching to Haxe with OpenFL, which is a more advanced language than AS3 and can compile to SWF/AIR, HTML5, and a host of other desktop, console and mobile platforms.