Monday, January 31, 2005

Steve Jobs demos NeXTSTEP 3.0

...in the early 90's. Check out this video full of goodies:

  • Steve Jobs is dressed in a shirt and tie instead of his regular blue jeans and black turtleneck, but he still has his characteristic hand gestures and catch phrases (e.g., "boom, there we are", "gorgeous", "beautiful", "powerful".)

  • He's pitching to enterprise customers instead of consumers.

  • Lotus Improv, WordPerfect, and OpenDoc make cameos

  • Connects to a Sun workstation, A Mac and a Windows box

  • Steve builds a couple apps, even connecting to a Sybase database showing off NeXT's database kit, one of the first (if not the first) object relational mapping tools.

  • Uses Display Postscript instead of Mac OS X's PDF rendering technology

  • Mail looks a lot like today's mail.app

  • Next's dock is remarkably similar to Mac OS X's dock

  • This is all on a 68040! Steve mentions a port to intel 486. Amazing.

  • Drag and Drop is everywhere. This is one of the things I love about the Mac.

  • He shows frame for page layout and the demo is strikingly similar to Phil Schiller's demo of Apple's new word processing application Pages.


It's simply amazing to me how advanced NeXT was compared to what I was using back then. It really shows Mac OS X's heritage. Heck there are things in that demo that I don't think are even in OS X. Jeez I was doing DOS based Clipper applications and PowerBuilder 1.0 in Windows 3.0 in 1991 and NeXT was completely object oriented. Wow.

Wednesday, January 26, 2005

Ooey Gooey Goodness

I just came across a web site called "GUIdebook: Graphical User Unterface gallery". If you're fascinated by the history and art of the GUI from the Apple Lisa to the latest Mac OS X or Windows XP then you'll find some interesting stuff here. Highly recommended.

Monday, January 24, 2005

Back from Maui

It was only one week but we really enjoyed ourselves. We stayed at the Kaanapali Beach Hotel. It's a bit of an older hotel but the staff are fantastic. If you go with kids, be sure to sign up for the Kid's Aloha passport and do some hotel activities. The people leading the lei making, Hula dancing, etc. are great and give you the flavor of what Hawaii is all about.

Now I have some random thoughts about the trip:

  • We rented a minivan (Chevy Venture) and surprisingly I actually enjoyed it. I understand why people drive these things now. I could put kids in different rows and keep them apart when they were arguing. Visibility is quite good. Folding seats give lots of room when you need it. But there were a couple of cons too. It's pretty big, hard to park and sucks gas. The controls are in odd places and where's the tachometer? I won't be running out to buy a minivan anytime soon but I may rent one again.

  • Haleakala was impressive to see again. I forgot how twisty that drive was and it was colder at the top than I remember.

  • Went to a Mac store while I was there and planned to buy an iPod but they were completely out of them. Good for Apple, bad for me...

  • Went whale watching. The kids loved the free snacks. Oh yeah the whales were cool too. :-)

  • The kukui nut lei departure ceremony by the hotel staff was cool. They sang and we each got a lei that won't immediately wilt when we get back home.

  • Damn Calgary looks bad when the snow melts. No leaves, a bunch of gravel and a slushy mess. I'd prefer to see some snow covering all the brown.

  • Sun is good. Sunscreen is your friend.

  • Boy did I eat a lot and although I thought I was starting to gain too much weight, all I had to do was look at all the other fat tourists and I felt pretty good about myself. Maybe it has to do with the Maui resort location but I remember girls in tiny bikinis on Waikiki. These people weren't anything like that! Maybe America (me included) really are just getting fatter. ;-)

  • I have a new favorite shirt from Crazy Shirts. It's a long sleeve crew neck t-shirt (not on the website) dyed with the same Blue Curacao that tints those fun island cocktails.

  • I think I got some great video of the kids and the island. Looking forward to editing this one.

Tuesday, January 11, 2005

Apple: ALL the rumors were true

Well that's surprising! Apple rolled out everything! There's a new version of Quicktime, version 7, that will ship with Tiger. It supports much larger frame sizes at the same bitrate with the H.263 codec. There's a new version of Final Cut Express that works with HD footage and now includes Soundtrack and LiveType. iLife has new upgrades for iPhoto, iDVD, Garageband and iMovie. iMovie, like it's bigger brother Final Cut Express, also supports HD footage. Then there's the new iWork, which includes a new word processor called Pages (compatible with MS Word BTW) and an update to the presentation application Keynote (compatible with PowerPoint).

Then on the hardware front they pulled out a new low-cost Mac ($499USD) called the Mac Mini and a new Flash based iPod called the iPod Shuffle.

Now if you take into account that they lowered the price of their Cinema Displays, upgraded the Xserve and introduced Xsan last week, I have say they're definitely firing on all cylinders. It makes your head spin. Wow!

Sunday, January 09, 2005

Mono: C# Everywhere...

It's a bit difficult to understand what motivates someone to clone Microsoft technology. Bill Gates' open letter to hobbyists at the Homebrew Computer Club in 1976 clearly demonstrates the mindset of Microsoft. They are a proprietary software company and believe in making a buck off of everything they do. While there's nothing wrong with that, people should not believe that Microsoft's submission of C# to the ECMA as a standard means that they truly want anyone to create new implementations of C#. Microsoft will do what they always do. They'll move the goalposts. They'll break compatibility with every release. You can never expect to gain parity with Microsoft and you'll never be able to run .NET applications on anything but Windows.

So if you accept that fact then what are you left with? Well C#, like it's main inspiration Java, is still a very nice language. The threading model, exception-handling, and memory management all help make this a very usable object-oriented language. So if you take your sights off the idea of trying to run Windows apps on Linux and insted focus on bringing a very good set of development tools to Linux then you can understand what the Mono project is about. Novell is interested in bringing the advantages of a Java-like language to Linux software development without having to deal with Sun or Microsoft.

Now you might ask, why would a Mac-toting Java developer like me be interested in learning anything about a Microsoft technology. Well, like I've said before, I'm trying to be a pragmatist about learning computer languages. I realize that for the kind of enterprise development that I do, there are two camps: J2EE and .NET. At the very least I hope that learning something about C# may improve my overall development skills. Heck if I can look at Objective-C and Ruby and learn an appreciation for dynamic languages then why not try and pick something up from C#. And who knows, as a contractor maybe some really interesting C# work may come my way sometime and it'd be a shame to turn it down because I didn't even look over at the "other guys".

So I got a C# book from the library and I installed Mono on Mac OS X. Time to get cracking...

Thursday, January 06, 2005

Firery little Mac apps

I use a Windows PC most days at work and use a Mac at home and I have really come to appreciate some of the Mac software that I use day in and day out. So here's a list of some of my favourite downloadable apps (in no particular order):

Fire

A multi-protocol chat client. I have Yahoo, MSN, and ICQ accounts and people that I work with use all three. It's nice to have just one chat application running at once. I like Apple's iChat (even though I haven't even tried its video features) but it only talks to other iChat clients and AOL clients, neither of which I use.

NewsFire

A kick ass RSS reader. It's real pretty and cool to use. Way better than any Windows client I've come across.

VLC

A great open source media player. I haven't tried it on any other platform, but for my purposes it's pretty damn good. MPlayerOSXis good too and supports some audio codecs that VLC doesn't, but doesn't quite have the fit and finish of VLC.

Firefox

Unless you've been under a rock, I'm sure you've heard of this snappy little cross platform browser. My default browser is still Apple's Safari because it's faster and a better Mac application, but Firefox is a solid contender and is nice for validating my HTML work. Internet Explorer on Mac was pretty abysmal before Safari rained on Microsoft's parade so let's just bury it and forget it was even inflicted on the Mac community.

Fink

A fantastic way of getting thousands of ported open source software on your Mac. Think Subversion, MySQL, PostgreSQL, Ruby, KDE etc. If you want a graphical front end use Fink Commander.

Eclipse

If you do any Java development at all, definitely go download Eclipse. It rocks! Refactoring support is fantastic and its CVS integration is second to none. Also don't be afraid to pick up some plugins along the way.


And don't forget those sweet little bundled Mac OS X apps and features like Mail, Exposé, X11, and the iLife suite which containes apps like iTunes, iPhoto, iMovie, GarageBand and iDVD.

Wednesday, January 05, 2005

World Junior Hockey Champs

In the wake of Canada's Olympic and World Cup triumphs, the Canadian junior team won gold over the Russians! They were billed as the best Canadian junior team ever and last night proved that they deserve such accolades. Canadian hockey has never looked better and today I'm one proud Canuck. Congratulations to the team.

Monday, January 03, 2005

Unicode Localizations

Most Struts/JSTL developers know that in order to localize a web application for different regions and languages you must first extract the locale-sensitive messages (e.g., field labels, warning messages, etc) from your JSP and Java code and place them in an application resource .properties file. Then you create various versions of this file where the name's suffix reflects the locale and language (e.g., _fr_ca for French Canada) and the values in the file contain locale-specific messages. At runtime the application framework will use the messages from the appropriate resource file to serve messages based on the user's locale.

I had always assumed that a UTF-8 encoded properties file would allow me to use accented characters for words like français. But today I discovered that while I can encode my files in UTF-8, the Struts framework uses the java.util.Properties class which quite inconveniently doesn't understand unicode characters. From the Javadocs:

When saving properties to a stream or loading them from a stream, the ISO 8859-1 character encoding is used.

So you must use a goofy little utility that ships with the JDK called native2ascii which will convert a UTF-8 encoded properties file into an ASCII file which contains unicode escape codes to represent those characters. You then use this generated file in your Struts application. Fortunately Ant comes with an optional task to run this utility.

To me this all seems rather silly especially when you consider Java has built in support for unicode. Begs the question: Why is the Properties class built like this?

The Amazing Paper Trail

Letter is 216 × 279 mm
A4 is 210 × 297 mm

A4 is an ISO Standard Paper Size that is designed with the height-to-width ratio of the square root of two, a rather nice mathematical expression with some obvious advantages. You can read all about it here . It's also quite interesting to know that we Canadians simply adopted the rather obscure American paper sizes by rounding them to the nearest half centimeter (pretty lame) and that North Americans, in general, are the only ones not using the ISO paper sizes.

BTW: ISO A6 is toilet paper size in Europe. Imagine a world without standards.