Software Delivery

October 11th, 2007

I’m looking at how to deliver software on Linux, Mac OS, and Windows. Delivering software on Linux is a pain if you cannot release the sources. However, Linux is all about open source, so it would not be fair to compare it to what Microsoft or Apple provide.

What is fair, is to compare Microsoft to Apple: take a look at Microsoft’s Windows Installer. Apparently, it reduces the Total Cost of Ownership, and that could be its most important feature. The guide mentions that you need a program called Orca which comes with something called the Windows SDK Components for Windows Installer Developers. The provided link tells you that this is part of Windows SDK which you can download after taking the genuine Microsoft Windows challenge. Unfortunately, Orca is not installed when you install the SDK: the installer for Orca is. So you have to locate the file called Orca.msi and install it.

Now, take a look at Apple’s Software Delivery Guide. Apparently, this is all about packaging and delivering a software product so that it can be installed on a user’s computer. Unlike Microsoft, Apple provides a PDF version of the guide so you can search it, print it, or read it off-line.

Correction: Instance Variables are not Public in Smalltalk

July 11th, 2007

Last week, I said that instance variables are public in Smalltalk. That is not the case. I got confused because we are working on an improved version of Smalltalk and because of representation independent code, instance variables are public until we add a general mechanism for declaring non-public methods.

My point that Squeak (and Smalltalk) are not good examples for API design remains valid, however.

Smalltalk: How to not Design an API

July 5th, 2007

I’m doing a lot of Smalltalk programming these days, and it’s great fun. The language is very powerful and flexible. However, my experience is with a bastard child of Smalltalk: Squeak. This is a complete mess because it seems like every library adds a few methods to core classes like Object and Class. For example, Squeak has a XML (sigh) library named SIXX, and its brilliant developers felt they had to add 18 (eighteen!) methods to Class. Here is the brilliant part: everything is public in Smalltalk, which means that you do not have to add a method to an object to access its instance variables.

Contrary to popular belief, everything is not a lock (in Java java.lang.Object is a lock, making almost everything a lock); keeping the number of methods to a bare minimum in core classes keeps everything simpler and easier to learn. Here is how I believe the core classes should look like:

bare-minimum-object-system.png

So what about all the utility methods you normally find in these classes in both Smalltalk and Java? They belong in utility classes. For example, everything related to regular expressions should live in a separate library. But what about reflection? you ask. You will find the answer in Gilad’s fine paper on mirrors. I believe many of the considerations of the mirror paper apply to software engineering in general.

Fun with Trackpad on Macs

May 30th, 2007

Just found some cool features on my Macbook. The trackpad has a lot of nifty gestures, for example, you can scroll if you use two fingers on the trackpad. An additional cool feature is the zoom function. Hold control down will scrolling and you zoom in on part of the desktop. This is really useful when doing a demo.

To enable this, go to System Preferences and select Keyboard & Mouse. Then select the Trackpad tab.

mac-trackpad-scrolling.png

The zoom feature is also available for desktop Macs (Mac mini, iMac, etc). You can find the preference setting in the Mouse tab. You need a mouse with a scroll wheel or similar.

Outlook Woes

May 22nd, 2007
Today was my second day at Cadence. Besides getting into some good Squeak hacking, I tried reading my corporate email trough Outlook which came preconfigured on my company laptop. I’ll refrain from commenting on this experience and just note that this entry is written from my new Macbook; I simply had to get one. Now, that’s pure sweetness!

Spam Filter Problems

May 19th, 2007
It turns out that some emails to my personal account have been rejected by a too aggressive SPAM filter. That problem is corrected now. If you suspect that I may not have seen your email, please resend.

Moving On

May 18th, 2007
Today is my last day at Sun. It has been a blast. I’m joining Gilad to make a better Smalltalk.

Ruby On Rails Humor

May 16th, 2007
http://railsenvy.com/

What’s in a Name?

May 15th, 2007
Digital-sushi? Most people in the States can’t pronounce my last name and make it sound like a piece of sushi. Thanks to Sarah Gafter and Brian Goetz for coming up with this name.

New Business Card

May 12th, 2007

peter-ahe-bc.gif
Click on the picture for a larger version (and to reveal my e-mail address).

If you want to contact me, send me an email. The address is on the business card