Initial Impression of iPhoto 8.0

My installation of iLife ’09 went without a hitch. I backed up my library a couple of times and began. I have 30,000 pictures in my library. iPhoto quickly identified 69 locations from my iPhone pictures and is currently scanning my library for people’s faces. Exploring my pictures via Places is a great way to enjoy my pictures. I especially like the way it show pictures of the same place over time.

When I checked the Faces section of my library it told me to come back later. I eventually got a status update that told me there were 4000 minutes remaining. It then began to cycle through my pictures. Instead of showing me the whole picture it showed me a close up of a person’s face even from pictures with many people. The progress bar quickly dropped under 1000 minutes as it ran through my pictures.

After about 3 hours all of my photos had been processed. I began playing with Faces. It was very addictive. The automatic selection of a face works really well if the face is facing the camera. It got confused on people from the same family but overall it did a good job. The pictures are selected with decreasing certainty. Once you start getting a lot of misses, press done and start a new search.

The integration with Facebook is nice. It is based on the email address of the person. In the Faces section click on the “i” to edit the person’s name and email address. When you upload to Facebook the album name is automatically choosen and created on Facebook. Tagging faces is cumbersome. You should be able to tag a face with one click-and-drag. You should also be able to target which album you want your picture to land on Facebook.

How to Set the Default Java Compiler Version in Xcode

I recently had the opportunity to write a quick command line application using Java. Instead of using Eclipse or BBEdit as by editor/IDE, I decided to use Xcode. I chose the Java Tool project template and got to work. In the course of my project, I wanted to spit some text out on the console. The Java language System library has a couple of functions for this purpose, print and println. Another approach is a feature of the C language in the form of a function “printf” that affords some easy formating options. When I tried to use printf I got the error message “cannot find symbol”. This took me aback.

It turns out that printf was not in Java until Java 1.5 or so. You can use the command java -version to see what version you have on your system.

$ java -version
java version "1.5.0_16"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_16-b06-284)
Java HotSpot(TM) Client VM (build 1.5.0_16-133, mixed mode, sharing)

Apple has taken the conservative approach in Xcode and set the default library to Java 2 (1.2). It would be necessary to change my project to use the Java 1.5 library. This is easy. Just location the Build.xml in your project and find the target node (Project > target > javac) of the XML file. I found it about the 29th line.

<javac deprecation="on" srcdir="${src}" destdir="${bin}"
   source="1.3" target="1.2"
   includeAntRuntime="no"
   classpathref="lib.path" debug="${compile.debug}">
</javac>

I edited this file right in Xcode but you can use any text or XML editor. I changed the source and target to version “1.5”.

<javac deprecation="on" srcdir="${src}" destdir="${bin}"
   source="1.5" target="1.5"
   includeAntRuntime="no"
   classpathref="lib.path" debug="${compile.debug}">
</javac>

This worked and I was able to get my project completed. I then needed to work on another project and had to repeat the process above. It occurred to me that there must be some way to fix this in a more permanent manner. As it turns out, Xcode has a very robust templating system. I found the Project Templates folder and the build.xml inside. I was able to make my changes to this file. Now every new project has these default settings.

/Developer/Library/Xcode/Project Templates/Java/Java Tool/build.xml

Safari Protects from Malware

Every once in a while I’m surprised by my Mac. Today it was a Malware warning. I was searching Google for a product manual when I clicked on what looked like a valid .org hit. I was redirected to an IP address and then to a .cn site. Safari automatically put up a warning message and gave me two options: “Ignore Warning” or “Go Back”. The message was nice and clear. The link sent me to Google’s safe browsing site for a further explanation as to why the web site had been blacklisted.

Next

Michael Crichton books all read like screenplays. The bad guy is usually technology and not an individual. Then he finds a group of people and puts them in a situation to confront that technology. Next differs slightly from that formula in that all of the main characters are not brought together all at once at the beginning. Instead the characters have their own story lines that weave in and out of each other as the story goes on. There are a couple of story lines that you expect to cross that do not.

In the end this is a good and thought-provoking story but it does not have the finish of his usual stories. I still expect it to be made into a movie at some point.

Next (2007)

I recently had the opportunity to re-watch the movie Next with Nicolas Cage and Julianne Moore.I saw this movie in the theater. I was exited about the premise. It looked like it would be a cool superhero movie. There was a small trend of anti- superhero movies coming out at the same time. Like the movie Jumper this movie created a cool character and put him in a cool world. It established the rules for this world and set boundaries on that power. And then the movie abruptly ends. It was not satisfying. The same story was told with a better ending in the movie Déjà Vu.

The special effects gave you a good sense of how the Nick Cage character viewed the world. I liked Julianne Moore as the FBI agent — she’s smart and tough. In the end it just felt like they were writing a pilot for a TV series on Sci Fi channel.

At the end of the movie, the credits roll backwards. Nice Touch.

How to Read Apple’s Mac OS X Build Numbers

I’m currently running Mac OS 10.5.6. This version is also known as Build 9G55. Let’s take that build number apart and see what it actually means.

Major Version Minor Version Build Update
9 G 55 b

The build refers to the Apple internal build process that does a full compile and packaging of the entire OS. The build masters use this build number to keep everything tagged properly. Version control is your friend.

The G is actually easy to understand. The first version of Mac OS 10.5 was A. So the A means 0 as in 10.5.0. Each minor revision then is the next letter of the alphabet.

A B C D E F G
0 1 2 3 4 5 6

Leopard is actually very tidy. Previous versions of Mac OS X have not been so tidy. Mac OS X 10.4.11 was build 8S2165 and 8S165 where the S and the S2 were used to distinguish between the PowerPC and Intel builds of the 11th revision of Tiger.

Why 9? This is actually the ninth version of Mac OS X. Lets review.

Version Code Name Major Version
Mac OS X 10.9 ??? 13
Mac OS X 10.8 Mountain Lion 12
Mac OS X 10.7 Lion 11
Mac OS X 10.6 Snow Leopard 10
Mac OS X 10.5 Leopard 9
Mac OS X 10.4 Tiger 8
Mac OS X 10.3 Panther 7
Mac OS X 10.2 Jaguar 6
Mac OS X 10.1 Puma 5
Mac OS X 10.0 Cheetah 4
Mac OS X Public Beta Kodiak 3
Mac OS X Server 1.0 Hera 2
Rhapsody Developer Release Grail1Z4 / Titan1U 1

When I started researching this article I expected to find a nice neat progression that would explain why Leopard is the 9th version. I thought I remembered the public beta being version 3. I now cannot find any evidence of that.It may have just been a version number of Project Builder — the predecessor of Xcode. It appears that between the Public Beta and the release of Cheetah Apple internally synchronized their internal build numbers.

The reason I assumed that version 4 made sense for Cheetah is that there were publicly released versions of Mac OS X before the Public Beta and 4 Developer Preview versions released only to developers. The public released versions were called Mac OS X Server 1.0. Released in 1999 it was little more than a port of OPENSTEP/NEXTSTEP to the G3 hardware platform. It had a “Blue Box” feature that allowed it to run Mac OS 8 applications. This Blue Box would make it into Cheetah and was a key reason for the successful transition for the Mac OS.

So to me it made sense that Mac OS X Server 1.0 was version 1. Version 2 would be Mac OS X Server 1.2. Version 3 would be the Public Beta. That gets us to version 4 for Cheetah. Unfortunately its not true. As it stands the public version numbers tell a neater progression of the versions over time than the build numbers.

References

http://en.wikipedia.org/wiki/Mac_OS_X_Public_Beta
http://en.wikipedia.org/wiki/OS_X#Versions

Apple to Drop Mac from OS Name

I recently read that Apple (formerly Apple Computer) has filed for a trademark for OS X along side its current trademark for Mac OS X™. This is just another step in a methodical move away from the computer industry into the main stream of consumer electronics. Apple no longer sees them as a Computer Hardware or computer software company but as a consumer electronics and media company. Apple did the same thing with our beloved iTunes Music Store once it started selling Movies and Applications. Apple has the ability to come out with something completely new and convince you that it is just the evolution of something you already know and love.

Look at the iPod Touch. It has very little in common with its forbearers other than the name iPod and the fact that it has a headphone jack. Apple has keenly put this in the product line so now you have to decide between the $79 iPod and the $399 iPod. They are all iPods, right.

The trademark for OS X would probably be used for the family of products that run the same code base originally known as NeXT. This would mean that Mac OS X would be the version that we run on our desktops. But there may be a different OS X for your AppleTV, your iPod, and for your Apple Netbook.

Eagle Eye

When I first saw the commercials and trailers for Eagle Eye it looked like a remake of Enemy of the State. When the movie came out the reviews were really poor and I opted to skip it at the theater. I know someone who went to see it in the theater despite the bad reviews and my mocking. Their review was that the movie was actually pretty good. The movie has more in common with Terminator than Enemy of the State.

Eagle Eye is now available on DVD and I bought it. I have watched it once and am looking forward to watching it again. The Terminator reference is well founded. The basic premise must have been to imagine how SkyNet could have come in into being in today’s world. Most of the technology is accurate but then it goes off the deep end with a couple of typical Hollywood clichés.

Why do computers have to have moving parts? The only moving part in modern computers today are tape archive robots and even those are becoming increasingly obsolete. Why would a massive computer have a big eye on an arm? I know — because it is important to the plot.

If your looking for a couple of hours of fun, this is a good movie. I’m looking forward to watching the alternative ending to see the version where the robots win.