No Macs at Macworld

It’s official. Apple is no longer a “computer company”. Steve Jobs’s big keynote at Macworld 2007 introduced zero new Macs and no new software (OS X, iLife, iWork, etc.), but instead focused on a TV appliance and of course, the “iPhone”. This was underscored by the announcement that “Apple Computer, Inc.” would now be just “Apple, Inc.”.

This comes at a time when I was giving serious consideration to buying my first Mac. I was hoping there would be an announcement of upgraded Mac Minis, with Core 2 Duo CPUs. But no. Only a $300 streaming media box (obviously designed to drive more revenue to the iTunes store) and a $500-$600 cell phone. Ok, cell phone is an understatement, but I have no interest in it at that price (not to mention the monthly bill to go along with it).

Apple is now a consumer electronics company. Apple is the new Sony.

I think I’ll build a new PC to run Vista on instead.

Napkin Look & Feel for Java Prototypes

Java Swing is often criticized for its lack of native widgets. Controls in Swing are rendered by Java code, rather than the underlying OS. This can create problems like having a Java app that doesn’t have the same “look & feel” as applications that run natively on any given OS. Java Swing addresses this issue by supporting pluggable “look & feel” libraries. Basically, for each operating system/windowing system that you want to support with a native look & feel, you have to obtain/write a look & feel library. There are a few that come with the Java runtime, depending on what OS the runtime is for (i.e. the Apple OS X Aqua look & feel only come with Apple’s JRE). Swing has also had a bad reputation for being slow, although in the latest JRE this seems to be a thing of the past.

The “Napkin Look & Feel” project uses Swing’s lack of native widgets to it’s advantage. It’s a Java pluggable look and feel that makes your application’s UI look like it was scrawled on a napkin. Novelty of it aside, this is great for making prototype UIs that really convey the message: “This is a prototype and nowhere near a completed application”. Kathy Sierra wrote a great post about the various reasons you want to send this message.

Anyway, I thought this was a great example of turning a weakness (or perceived weakness) into a strength. Now I wish I could do this in .NET…

Microsoft Access + OleDb ADO.NET provider + LIKE = puzzlement

I haven’t worked with Access much in a while and I ran into something today that drove me nuts for about a half hour. In SQL Server, Oracle, and probably every other major database the wildcard character used with LIKE comparisons is the percent sign (%).-á In Microsoft Access you use asterisks (*).-á UNLESS YOU RUN YOUR QUERY FROM A .NET APPLICATION USING THE OLEDB ADO.NET PROVIDER. Then you use %. Ugh. I thought I was going crazy. I couldn’t figure out why the same query worked from inside Access, but not my .NET code.

It’s actually probably a good thing it works like that. I could see where you might want to support multiple back-end databases without having to change all your SQL. If you were careful to stay away from vendor-specific features, you could (theoretically) just change your connection string…

Windows 2003 Server/IIS6 Kicks Windows 2000 Server/IIS5’s Butt

This is probably old news to many, but believe Microsoft when they say that there are significant performance and scalability improvements in Windows 2003 Server and IIS 6. I’ve been wondering why my “puny” Athlon XP development system at work has seemed so much faster than the “beefy” dual-Xeon production server at work. Besides the hardware differences, the production box runs Windows 2000 Server while the dev box is running Window 2003 Server.

I set up a test environment to compare 2000 vs. 2003 on identical hardware and found that, for my application (.NET smart client that uses a Web Service on the server), that start-up times where 3-4x faster when the server was running Windows 2003. Other operations where at least 2x faster. Needless to say, I’ll be pushing for an OS upgrade…