Recent updates in 'Geek'

Lightroom 1.4 Update Released

From Inside Lightroom came news last night of an update to Adobe Lightroom to version 1.4. Hopefully improved printing under Leopard as this was seriously hurting me on my Epson R1800 (though it did get better with improved drivers from Epson). Won’t be able to check it out fully for a few days…

Note: the update was removed from Adobe’s site the next day due to quality issues… The download link now goes to the previous version…

(Via O’Reilly’s Inside Lightroom.)

Languages I have Known…

I was thinking about iPhone SDK, the JDK and how freaking old experienced I apparently have become, got me thinking about the different programming languages I have used over the years. Not an impressive list by any means, and the older generation could probably add several on top of mine (uh, Cobol, Fortran, etc)…

So here they are (in order of appearance):

  • Timex-Sinclair BASIC (played around a lot with this, wrote a little helicopter flying game, then didn’t touch programming again for more than 10 years)
  • Visual Basic (didn’t do much, early Win 3.1 stuff, periodically forced to revisit over the years to fix other peoples code)
  • Livescript (became Javascript, now ECMAscript, used this several times and embedded it one large app)
  • Java (played around, wrote an applet, got bored, keep meaning to check it out again)
  • Delphi/Object Pascal (done several large applications, dozens of smaller ones)
  • C++ (a couple of large applications, dozens of smaller ones)
  • PHP (one application, still playing with it now)
  • Objective-C (played around)
  • Python (played)
  • C# (used in several small apps)

I’m probably leaving some out. So which did/do I like the most? Gotta be Delphi, C++ and Javascript. Hopefully will add Objective-C to the favorites list in the future when I write the next great iPhone app. And the one’s I’ve disliked the most – VB and C#. Not sure why, they just don’t fit my brain as well. Unfortunately, C# is the language of choice in many companies (mine included) right now. Microsoft is good at marketing it and it’s a reasonably powerful language with a nice class library (designed by the same guy that designed the Delphi language and class library).

The iPhone SDK…

Nice post by Brett Peters on this week’s iPhone SDK (that’s Software Development Kit, for you less geeky folks) release at It’s the Software, Stupid (Nobody Wants A Styl.us)

“Instead of selling you a specific model and forcing you to purchase a new device to get additional features, Apple has taken the route of selling the platform that can be easily extended. Users can buy those features they want. The iPhone becomes both a video player, enterprise communicator, gaming console, and social network hub — all on the same device.”

I, like thousands of other geeks out there, can’t wait to get my hands on this and add my own features to this platform. But alas, I will most definitely need a new Mac to do it – the development tools require an Intel-based Mac and won’t run on my ancient 12″ Powerbook… Definitely time for a new Mac.

Also like thousands of others, I have been itching to develop software for the iPhone and have a half dozen project ideas in my head. Of course the first will be a full, native iPhone version of this. I also suspect it will be a test of the willingness of Apple to host this kind of app on the iPhone app store. Mr. Jobs has said no porn, which it’s not but…

After pausing and thinking more about this, I really began to wonder why I am so freaking excited by this SDK. I honestly haven’t been so excited by something like this since the alpha Java developers kit came out (freaking 13 years ago, crap I’m old). But it’s simple – this is a device that lives within my reach all day (and sadly all night). I use it constantly. I use it as an alarm clock, a timer, a map, a web browser and of course, as a phone. Now I can make it do more things… And others can make it do even more. I can’t freaking wait to see what appears.

(Brett Peters link via the excellent Shawn Blanc.)

“The End of the Vista Experiment”

Came across this post from Thinking in C++ and Thinking in Java author Bruce Eckel on his experiences with Windows Vista. Of particular interest as a former BeOS-geek was this excerpt:

“What’s amazing is that the only really innovative operating system that has appeared in at least 25 years was crushed, probably with a lot of help from Microsoft while at the same time they were claiming to be innovative. This was BeOS, and life would have been much better right about now if Microsoft had bought them instead…”

Instead Palm bought Be’s technology and the OS faded away (though it’s open source successor, Haiku, is starting to look pretty interesting). For another interesting read on the old BeOS in comparison to Windows and MacOS (of the time) see author Neal Stephenson’s essay “In the Beginning was the Command Line”.

Back to Vista… I too have this sinking feeling that trying to do serious work on this OS is a bad move. In my usual cavalier fashion, I initially leaped whole hog into it and upgraded my entire development system. The target OS for my latest project is Vista, so this made a lot of sense. You have to live in an environment for a while before you really get the feel for it. After 3 months, I’d had enough and had the IS folks set me up with a dual boot XP/Vista system so I could go back and forth. Now I’m wondering whether I will use the Vista install for any of this project’s coding or will only use it to test on…

Projects

Well here it is at last. The start of the giant software development project to end all projects. Ok, maybe not that grande, but definitely one I’ve been fighting for years to get.

This project is essentially two large projects in one (with several smaller sub-projects). Each of these two large projects is actually version 4.0 of the software. I was the project lead on the version 3.0′s back in 2002-2004. So, at a macro level, here’s what’s going to be different this time around (without disclosing too much):

Then (02-04) Now (08-09)
Target OS Windows XP Windows Vista
Target device 1995 model 2005 model
Compiler Delphi 7 Delphi 2007
My Management US-based Europe-based
Customer US-run Europe/US-run
Customer team Experienced Mostly New

Now the big task is starting. Here there is always a tendency (that I think is common among many programmers) to just start diving in to the code. That’s the fun stuff. Unfortunately, this is generally frowned on in my industry. This is because the end-product requires regulatory approval, and as part of that approval we have to show a proper design and development process was used in creating the product.

Now a process of this type generally dictates that we start with a project plan and set of requirements and other docs ad nauseam until at last we are officially ready to code. I still desperately want to dive in, but first I must produce a project plan (which, at this stage, is mostly bullcrap) and then we start risk analysis, use cases and detailed specs, detailed designs, etc… And on the side, of course, I start diving in…

OOP Ouch

Take a look at Paul Graham’s “Why Arc Isn’t Especially Object-Oriented” for a nice refreshing take on object-oriented programming. From his list of 5 reasons why OOP is popular, here’s number 3:

“Object-oriented programming generates a lot of what looks like work. Back in the days of fanfold, there was a type of programmer who would only put five or ten lines of code on a page, preceded by twenty lines of elaborately formatted comments. Object-oriented programming is like crack for these people: it lets you incorporate all this scaffolding right into your source code.”

Arc is a LISP “dialect” being championed by Mr. Graham and Robert Morris. You can find more about is at the Arc Forum site. Personally, I have little but academic interest in Arc, but find Mr. Graham’s critique of OOP to be biting and on target. I’ve seen the behaviors he’s talking about in my own corporate world more than once.

Basecamp is cool

Basecamp from 37signals is a really interesting (and potentially excellent), full-fledged web application for project management and collaboration. It looks like it would work well with a looming large project of mine, with a lot of potential communication pitfalls. The Project (with a capital “P”) involves sales, product management, HW and SW engineers and at least 4 or 5 different companies as consultants, contractors and/or clients.  Basecamp appeals for a variety of reasons.  Here’s some:

  • It has a simple, easy and quick user interface (this increases the chance of the product managers and salespeople actually using it)
  • It integrates with Beanstalk’s hosted Subversion source control service which I’m also considering using (need to share the source among at least 3 of the companies)
  • It has a nice-looking time-tracking feature which could also be useful for keeping track of some of the hours that need to be billed back


Bug Labs

Ok, so this is pretty much the epitome of geekiness, but I so want one. The BUGbase ‘Hiro P’ Edition for $299. It’s a modular open source computer/gadget system with a Java-based development kit. The base unit specs look like this:

ARM1136JF-S-based microprocessor
1 USB 2.0 HS host interface/4 hub port connections
1 USB OTG HS interface
4 UART serial links
4 channel SPI interface
I2C (400 kbits) interface/4 channels
I2S interface/2 channels
Smart LCD interface
Camera sensor interface
Micro memory card interface
MPEG4 hardware encoding/decoding
Hardware graphic acceleration
10/100 Ethernet MAC
and more...

No wireless, but coming and at cost when released to early adopters. The first four modules (due Q1/2008 are a GPS, a 2MP camera, a motion detection/accelerometor unit and a 320×240 touch sensitive color LCD display.

Much more including more specs, pictures and screenshots of the dev kit at Bug Labs. Their Bug Blogger entries also have a lot of information on what they’ve got going on and some of the thinking behind things.

Link sent from my even geekier brother E.

One million new Delphi users?!

Codegear just got a 1 million seat site license deal with the Russion Federal Agency of Education for Codegear RAD Studio (Delphi, Delphi.net and C++).  Nice.  Now if only they could break into the US market that big…  Read more at InfoWorld.

5 Attributes

From Ben Watson’s great essay, “Top 5 Attributes of Highly Effective Programmers”: 

There’s a world of difference between someone who just programs and someone who loves to program. Someone who just programs will probably not be familiar with the latest tools, practices, techniques, or technologies making their way down the pipeline. They won’t think about programming outside of business hours. On the weekends, they do their best to forget about computers. They have no personal projects, no favorite technologies, no blogs they like to read, and no drive to excel. They have a hard time learning new things and can be a large burden on an effective development team.  

This describes so many of the programmers I’ve been subjected to over the years. Read more at the Philosophical Geek.