Main | Astronomy »

Fri, May 02, 2008

finally { apple.releases( java6ForMacOSX ); }

Only one and a half years after Sun released Java SE 6 for Windows, Linux and Solaris, Apple released the Mac OS X version (called Java for Mac OS X 10.5 Update 1) this Tuesday. Phew. Thanks to the engineers for their effort to get this release out finally, no thanks at all to Apple's management for delaying the release. Anyway, you'll find the release notes here.

And regarding this blog post's title: There is no catch? Unfortunately, there is... There are some exceptions (and you shouldn't throw exceptions within the finally block, right?).
First, Apple's Java 6 implementation requires Mac OS X 10.5.2 or newer, but this was to be expected. Second (and more important), the release is for 64-bit Intel Macs only (i.e. Core2Duo or newer). No Java 6 for PPC Macs or even 32-bit Intel Macs (CoreDuo). Bummer.

If you've installed a developer preview version of Java SE 6, the Java update probably won't show up in your Software Updates. Deleting the preview installation should fix this:


  sudo rm /System/Library/Frameworks/JavaVM.framework/Versions/1.6
  sudo rm -R /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0

If you want to change the system's default Java version, do not mess with certain symlinks in the system's directories but use /Applications/Utilities/Java/Java Preferences instead (you have been warned).

And if your Mac or your operating system does not meet the requirements, there's always the possibility to use the Open Source Java 6 implementation called "SoyLatte".

Posted by Thomas Much at 19:51
Edited on: Sun, May 04, 2008 11:04
Categories: Apple & Mac OS X, Java

Sat, Mar 08, 2008

Java on the iPhone

With Apple showing no interest in keeping Mac OS X 10.5 up to date with current Java versions (they are 14 months behind the final release of Java SE 6 for other systems now, despite some beta versions for certain Mac OS X versions and Intel chip sets) or in providing Java on the iPhone at all, it seems it's up to Sun or the Open Source community now.

And it actually seems Apple has become irrelevant for the future of Java on Mac OS X systems (including the iPhone) by now! While a port of Java SE 6 for Mac OS X 10.4 and 10.5, called SoyLatte, has been around for some time now, Sun announced yesterday that they intend to put Java on the iPhone!

They'll start with Java ME (a reasonable decision for a mobile phone platform), though it won't be released before middle of this year. Java SE and JavaFX might be following later on.

So, let's wish them good luck and let's hope Apple won't put too many obstacles in their way...

Posted by Thomas Much at 21:49
Categories: Apple & Mac OS X, Java

Mon, Nov 19, 2007

Lots of Things To Do

While attending CETiK 2007 last weekend I met two guys from Cultured Code (you might know them for their gorgeous CSS editor/viewer Xyle scope).

They showed a preview of their upcoming To Do management software Things. Despite still in alpha stage (they promised to release a beta version soon) it's already fun to work with this small, yet powerful application.

Things is an easy to use manager of your personal and professional tasks. You can view them as a simple list for today's or upcoming tasks, organized by projects or areas of interest, tagged by whatever categories you like (even hierarchical ones). In fact, while you can use Things perfectly at home for your daily tasks, if you use all of its features it's more like an issue tracking software for small teams with collaboration via e-mail or Bonjour. And this is really cool. If you don't need the overkill of a big issue tracking software (which is the case for many smaller projects), Things might easily be offering exactly what you need.

As far as I can say after their short demo and my two days of testing, Things will become my preferred task management software. The software just works the way you'd expect it to (even if there are lots of tasks in lots of projects). Compared to simple HTML web pages and modern Web 2.0 web applications, I'd say Things is To Do Management 2.0. I wish the folks at Cultured Code good luck for finishing Things in time, and I'm eager to buy a license as soon as possible.

Tue, Nov 13, 2007

13949712720901ForOSX

As posted before, there's no Java SE 6 runtime environment included in Mac OS X 10.5 (Leopard). There is a quite nice Java 5.0 implementation, however, and you can even tune its GUIs better than before for special Mac OS X integration - which is really cool! But this doesn't help you much if you have to develop applications using the latest Java APIs.

To request an important enhancement like this, there is an official way: File a bug report (I did so, my report got number #5575846). This won't help a lot, either, because bug reports requesting Java 6 will be marked as duplicate... and then Apple falls silent again :-(

So, to draw some attention to this problem, someone suggested that all bloggers should use a common marker as a "public request" to Apple, and here it is:

13949712720901ForOSX

Now, the management at Apple can simply google for this string and see how many bloggers (let alone the non-blogging people) are waiting for Java 6 on Mac OS X 10.5 (or at least a statement about the future of Java on OS X).

In the meantime, someone else has ported the FreeBSD JDK 1.6 to Mac OS X (10.4 and 10.5). The port still has some problems and currently relies on X11, but this is a cool project for sure. Nonetheless, I'd still like Apple to officially release their port of Java SE 6 with proper GUI integration, as this would be the best statement about the Mac as a serious platform for Java development.

Posted by Thomas Much at 20:04
Categories: Apple & Mac OS X, Java

Tue, Oct 30, 2007

Does Apple hate Java?

So, Leopard (Mac OS X 10.5) is there and Java SE 6 for the Mac is not. Which is a pity, because the latest Java version (available for many other platforms for over 10 months now) offers massive improvements concerning desktop integration and performance.

While there always has been a delay between Sun's Java releases and Apple's own implementations, leaving this gap open for too long time can urge developers - such as James Gosling, inventor of the Java technology - to abandon the Mac platform. Of cause you can use Parallels/VMWare/BootCamp and run Windows/Linux/Solaris for Java 6 development. But why would you want to buy a Mac then?

Does Apple hate Java? It almost seems so. At least Java obviously isn't a priority at Apple. Or maybe it's just that Apple found a bug in their Java 6 implementation that prevented the release with Max OS X 10.5.0? We don't know for sure.

And this actually is the biggest problem: Apple's silence. There's still some hope, yet, and if you read between the lines (there had been a developer preview of Java 6 for Mac OS X 10.4), I expect the release of Java 6 for Mac OS X within the next few days or weeks.

But if you run a company and do serious software development, you need a reliable roadmap for your platform of choice. And if that isn't available for whatever reason, you need at least some kind of commitment to release certain products within a certain time frame. Omitting both means "we don't care about your needs". Which might easily lead to developers ignoring the platform. Which would really be a pity, because the Mac not only deserves great Cocoa applications, but great Java applications as well.

So, come on Apple, even if you cannot release Java 6 right now, at least let us know your commitment to still provide the best Java experience with the latest Java version - and when to expect the release eventually.

Posted by Thomas Much at 17:46
Edited on: Wed, Oct 31, 2007 12:00
Categories: Apple & Mac OS X, Java

Fri, Jun 29, 2007

Hello (Again and Again)

Friday 6 p.m. local time.

There have been other computers before the Macintosh ...

There have been other MP3 players before the iPod ...

There have been other mobile phones before the iPhone ...

The secret is software.

Hello iPhone, and good luck in changing the way we are used to using technical devices again!

But: Despite the hype that surrounds this new product, over here in good old Europe we're given the chance to wait for General Availability. That is, a second generation iPhone with UMTS support (3G) and - most important - the freedom of choice for the carrier I want. However cool the iPhone might be, I'm definitely not going to switch my carrier just because a phone manufacturer wants me to. That would be like having to use a certain internet provider with my iMac: Not acceptable.

Posted by Thomas Much at 18:00
Categories: Apple & Mac OS X

Mon, Jun 25, 2007

iCards Gone? Not Yet.

Of course there are thousands of e-mail postcard services around the web. But I only used one or two of them, actually. And now my favourite e-card service seems to be gone... (Here's a link to the other one.)

Well, not quite, luckily. Apple obviously removed all iCards links from its homepage, but the free service still exists. Just click here and send your iCards :-)

Posted by Thomas Much at 9:14
Categories: Apple & Mac OS X

Mon, Jun 04, 2007

Setting JAVA_HOME on Mac OS X

Once in a while the question arises how to set environment variables on Mac OS X in a way that GUI processes can access them, too. In particular, some Java applications require a properly configured JAVA_HOME value.

Answer, part one: Download the preference pane RCEnvironment, install it with a double click and set your variables (they're available after your next login). Yes, it's that easy:

Answer, part two: Use a correct value for JAVA_HOME, which is usually

/Library/Java/Home

This alias (link) defaults to the Java version Apple wants most users to use (currently Java 5.0). Only if you have good reason to do so (for example, if you are a developer), you can set this variable to point at a specific version, e.g.

  • /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home
    (latest Java 6 release) or
  • /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
    (only Java 6.0, no later 6.x release)
Posted by Thomas Much at 13:27
Categories: Apple & Mac OS X, Java

Fri, May 11, 2007

Built-in UPS Support in Mac OS X

My more than a decade old UPS died a few days ago, so I bought an up-to-date replacement. When I attached the new UPS via USB to my Mac, I discovered that there's no need to install the vendor's own software (which is buggy according to some internet sources anyway). Instead, Mac OS X has built-in UPS support since 10.3.3 (I used 10.4.9 for screenshots and tests).

If an UPS is attached an active, you'll find new settings options for "UPS" ("USV" in German) in the Energy Saver preference panel:

You can shut down your computer after a certain time on battery power or if the battery has only a certain time (in minutes) or amout (in percent) of its power left. Furthermore, a new icon is shown in the menu status bar (left to the iChat icon), similar to the battery icon on mobile Macs:

Whenever the UPS runs on battery power for some seconds Mac OS X shows an alert box now (that disappears automatically if the UPS runs on line for some seconds again). This also works if no user is logged in:

Posted by Thomas Much at 13:02
Categories: Apple & Mac OS X

Fri, Feb 02, 2007

Leopard Tech Talk

On Wednesday I attended Apple's Leopard Tech Talk in Hamburg. Of course, the event was strictly under NDA, so I'm not allowed to talk about any technical details (some of which are already known, anyway).

But the speakers explicitely mentioned that their performance was not nda'ed, so: Good show! I especially liked the topics that delved deeper into technical details (like Objective-C 2.0 and development for 64-bit). And the catering was superb! *mjam*

Looking forward to the next tech talk! Or maybe another Java kitchen? :-) I couldn't attend the last one...

Posted by Thomas Much at 14:58
Categories: Apple & Mac OS X

Mon, Jun 19, 2006

Use the Right Tool to Upgrade Your MacBook RAM

As others have mentioned, access to a MacBook's RAM modules is easy, as is getting the old modules out. But getting the new modules into place can be a pain really. You'll need *lots* of pressure. Do yourself a favour and do not use your fingers or thumbs to push the new modules into place. Use a suitable tool. I found an old knife with a flat end on the hilt that worked perfectly. And btw, in contrast to what the manual says there is no "click" when a module is seated correctly.

Otherwise this is a really cool machine. Did I mention that it's fast? The screen is brilliant, the keyboard is a good one (especially for Apple), and the MacBook makes barely any noise. It doesn't get too hot (at least no more than I expected, though I think it's a portable computer rather than a laptop), and the fan comes in from time to time only (and blows constantly in this case). Let's hope the book makes a similarly good impression when used on my business trips *knock on wood*

Oh, and Parallels Desktop is so cool (and fast)! I can dump my PC notebook finally :-)

Fri, Mar 17, 2006

Network Access is a Security Risk

After I applied Apples' latest Security Update 2006-002 everything went smooth - until this morning. My iMac crashed with a kernel panic before the login screen appeared, so I rebooted my machine and was able to login again. But now the date/time display in the upper right corner of the screen had disappeared, as had all the System's icons in the menu bar (AirPort etc.). Only the application icons (like my RSS reader) were still there. And - worst of all - I had no network access any more.

So I went to the System Preferences to enable the System's menu icons and to set up network access again. But the settings were either disabled (greyed out) or checking the boxes had no effect - they were unchecked again each time you opened the preference pane. Others have the same problem with this security update.

Fixing this was easy, at least for me: After I repaired permissions (once again...) all the icons suddenly reappeared, and the System Preferences were usable again. But, Apple, why did this happen at all? A user-friendly Unix-based operating system in its fifth generation should not have problems with file permissions any more.

[Update] Apple has released version 1.1 of the Security Update 2006-002, so maybe these problems are fixed by now. Any volunteers?

Posted by Thomas Much at 10:21
Categories: Apple & Mac OS X

Thu, Feb 16, 2006

A Question of Time

Hi, it's me again and my freakish iMac... This time I updated to Mac OS X 10.4.5, and my startup volume was corrupted few hours later. Coincidence?

I repaired permissions, checked the volume, made a complete backup on an external FireWire harddisk (thanks to CCC!), updated, rebootet, repaired permissions and checked the volume again. Everything was ok, so I worked for a few hours on my machine. Then the iTunes 6.0.3 update was released, and - as always prior to installing larger software - I repaired permissons again. Shouldn't have done that, because just before finishing, the repair slowed down, hanged - and finally finished.

Alarmed, I checked the volume again. This time it showed an error in the node structure, a bad sign I'd seen before... So I saved the work from the last few hours, rebootet on a differend volume and tried to repair the damaged volume - but unfortunately Hard Disk Utility was not able to do that. Since I had a backup, I simply erased the other volume, restored the backup and the saved work. Everything works again now, but I fear it's just a question of time to see this happen again...

Why did this happen to my iMac twice? I'd like to think this is a hardware problem, but the iMac (including its harddisk) seems to be ok. Is it a software bug in repairing permissions? Is it a bug in Spotlight (which definitely was indexing when I repaired permissions, as it was when the first crash happened)? Or a bug in the journaled file system, maybe it cannot cope with so many files (half a million)? Hard to believe. The more I think about it, Spotlight might be the cause or at least be involved in the crash. I'll have a look on that.

(BTW: In the meantime, I found other reports on hard disk problems with the iMac G5 rev. B)

Don't get me wrong, I like to work with Apple's computers and Mac OS X, but with every severe crash I'm losing more and more faith in their reliability... So, why am I writing this? Well, actually I hope that someone reads this and says "oh, that's a known problem and easy to work around...". If you are the one, please let me know.

And just in case you want to see what you never ever want to see in your Hard Disk Utility (it's in German but I think you get the idea that the words in red mean something really uncool):

Posted by Thomas Much at 15:13
Categories: Apple & Mac OS X

Sun, Jan 29, 2006

Phantoms & Ghosts on my LCD

With recent events concerning the stability of my hardware I'm a little careful now whenever I see something strange or unusual... A few days ago I had a déjà vu on the LCD screen of my 20" iMac G5 (rev. B "ALS"). I looked at a browser window that displayed a dotted yellow line - and when I looked a little to the right, I saw a line of faint dots, too:

When I place a window with a dotted line like above on certain areas of the screen, these shadows or phantom images are absolutely reproducable. This seems to be a problem of the screen itself, not one of the graphics card or the video ram - because the phantom dots do not appear on screen shots (I had to take a photo to depict the shadow line).

Now, is this a common effect of LCDs? Or is this something to be afraid of, a first sign of a decaying screen? Well, we'll see, maybe time (or Google) will tell. But fortunately, this time I've got AppleCare.

Mon, Jan 23, 2006

JavaApplicationStub

Java applications can be launched like native Mac OS X applications if their bytecode (usually a JAR archive) is packaged as a Mac OS X application bundle. The actual launch code is a native executable, usually called JavaApplicationStub, that's placed in Your.app/Contents/MacOS/ (if you want to use a different name for the stub file, you'll have to change the value of the CFBundleExecutable key in Info.plist, too).

The stub file changed from Java release to Java release, and unfortunately some stub versions have been more capable of launching Java applications on various system versions than others. Just recently, after updating to QuickTime 7.0.4 on Mac OS X 10.3.9, certain old stub files refused to launch Java applications any more (the fix is easy: just copy a current stub file from /System/Library/Frameworks/JavaVM.framework/Resources/MacOS/ to your affected application bundles).

These problems led to a discussion on Apple's Java developer mailing list on how to ensure that always the latest stub version is used. We came up with the following solution: Don't use a copy of the stub file in your application bundle, but a symlink (not a Finder alias!) to the system's current stub instead:

ln -s /System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub PathToYour.app/Contents/MacOS/JavaApplicationStub

The solution has a little drawback: You cannot use a different name than JavaApplicationStub, which makes it hard to tell different Java processes apart in a Unix shell (the Finder uses the bundle name from Info.plist, which can still be whatever you want, so this seems acceptable in most cases). And of course, the symlink will break if Apple decides to change the framework structure some time. But until now, the framework structure has proven to be more stable than a copy of the stub file itself, so the symlink is likely the most elegant solution to always use the latest stub in your Java application bundles.

[Update] There have been reports that this approach does not work as expected - you cannot use more than one Java application that uses the linked stub at the same time... So it seems we'll have to wait for Apple to provide a reliable solution.

Posted by Thomas Much at 24:09
Edited on: Sun, May 21, 2006 21:14
Categories: Apple & Mac OS X, Java

Wed, Dec 21, 2005

IE:mac gone for good

Microsoft announced that support for InternetExplorer:mac will end on 2005-12-31, and one month later the download link will disappear from their web site. This step was foreseeable as Microsoft canceled further development of IE:mac back in June 2003 after Apple released their Safari browser.

Actually, this is good news! The latest IE:mac version 5.2.3 is several years old and not up to date with current standards by far. Web designers who had to "tune" their pages with special hacks for the old and buggy IE:mac can now ignore this dead browser dinosaur and can rely on better alternatives.

And good alternatives for Mac OS X there are many: Safari, Firefox, Opera, OmniWeb and - of course - iCab (the latter being one of the very few browsers still developed not only for Mac OS X, but for Mac OS Classic, too).

Posted by Thomas Much at 13:00
Categories: Apple & Mac OS X, Browsers

Wed, Nov 30, 2005

... and my PowerBook killed itself :-(

Well, well, well... Not so well, actually. Last week my 12" PowerBook G4 (1st gen. 867 Mhz) died. It started with freezes that went away after some seconds, went on with scrambled graphics and crashes (no kernel panics; complete freezes that required a forced reboot) and a black display after wake from sleep. Then there was a final crash with scrambled graphics during checking mail (which corrupted my e-mail database), and I have not been able to boot into Mac OS X since. I can reach target disk mode, but the display shows (usually) vertical lines that change their position and colour whenever the firewire symbol moves across the screen:

This looks pretty much like the problems that led to the iBook Logic Board Repair Extension Program - and the serial number of my book falls within the range of eligible machines (UV321...), only it's a PowerBook G4 and not an iBook G3... Apple Hardware Test reports the following video ram error: "2NVD/1/4: 0x8". The book is out of warranty, but I phoned Apple support nonetheless to ask if there's a repair program for PowerBooks. There is no such program (yet?) and they had not heard of any PowerBooks or iBooks with such failures (which is hard to believe). They said they were really sorry but such a failure can happen to a graphic card after 2.5 years, and they wished me a nice day. Thank you.

Sure, this can happen to one or the other PowerBook and maybe I just had bad luck (and maybe today's hardware is not built to last that long any more). But if you read current reports, these failures seem to be quite common, at least for iBook G4s. As the 12" PowerBook shares many components with the iBook G4, this may be a general design flaw which Apple should take care of (regardless of expired warranties, just like they did with the iBook G3).

This is not a matter of warranty anyway, but a matter of consumer satisfaction and trust in the brand. Getting the book repaired is not an option, as a new iBook (with twice the speed) costs only a little more. But why should I buy a new iBook now if current books still have these problems and if I cannot be sure that Apple will show accomodating behaviour when such hardware failures happen again?

There used to be a time when Apple's quality (both software and hardware) was so excellent (and worth the extra price) that you could actually rely on your Mac. But times, they are a-changin' (Mr Jobs, you know this song?). It feels strange if out of three computers at your office, your two Macs are dead (see my previous posting) and only the cheap Windows PC is working...

Posted by Thomas Much at 11:31
Categories: Apple & Mac OS X

Xcode 2.2 killed my system ...

Just a little warning if you intend to update your Xcode 2.1 to version 2.2. On my iMac G5 (rev. B) it killed my startup volume...

I had Mac OS X 10.4.3 running on that machine, all software updates applied, the startup volume was verified successfully and the permissions had been repaired. I did a complete Xcode install (all options selected) over a complete installation. All was working well until the installer reached the Java documentation postflight script... I got a lot of "mismatch in rm pattern" messages (unfortunately, I did not save the install log), and after a very long time the installer finished.

Now the kernel_task (pid 0) was hogging memory... When it reached 1.5 GB (out of 2 GB physical memory), I tried to shutdown the system (did not work, I had to do a forced shutdown). Afterwards, I could not boot any more into Mac OS X... Which was quite understandable, since half of my System folder was deleted, and many bundles in the Applications directory had some of their resources deleted, too. Unfortunately, I could not reinstall Mac OS X with "Archive & Install", as my startup volume was corrupted now and could not be repaired. I suspected some hardware error, but Apple Hardware Test reports everthing as ok (knock on wood... I do not need two dead Macs, see my next posting...).

So, take this as a warning to make backups on a regular basis (I'm glad I did). And before installing Xcode 2.2, you might want to uninstall the previous version first. As my iMac hardware works ok, I still suspect a software bug in the Java documentation postflight script - even after a completely new reinstall of Mac OS X 10.4.3 and Xcode 2.2 I get some strange errors from the script (yes, this time I saved it ;-):

run postflight script for Java 1.4 Reference Documentation
postflight[641]: /bin/mkdir -p "//System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Resources/Documentation/Reference"
postflight[641]:
postflight[641]: rmdir: //Developer/ADC Reference Library/documentation/Java/Reference/1.4.2: Directory not empty
postflight[641]:
postflight[641]: PSSniffer error: Not a directory
postflight[641]:
postflight[641]: ***** Errors found during indexing. *****
postflight[641]: Rerun pbhelpindexer with the '-d' debug switch for a complete transcript of the errors and associated files.
postflight[641]:
postflight[641]:
run postflight script for Developer Documentation
postflight[670]: mv: rename //Developer/ADC Reference Library/documentation/Java/Reference/1.4.2/appledoc/api/dummy.html to //Developer/ADC Reference Library/documentation/Java/Reference/1.4.2/appledoc/api/index.html: No such file or directory
postflight[670]:

Posted by Thomas Much at 10:47
Categories: Apple & Mac OS X

Tue, Nov 01, 2005

Mac OS X 10.4.3 and the System keychain

When I updated my iMac G5 to Mac OS X 10.4.3 this morning (using the "Combo" update), I was prompted for the "System" keychain's password after every reboot:

System keychain

Obviously, the system tried to read the Airport password from the keychain - which was absolutely not necessary, as access to Airport was working flawlessly even if you pressed Esc or clicked "Abbrechen" ("Cancel"). And the correct password was hard to guess, since the System keychain's password is usually generated automatically (random).

There is a simple solution to this problem: Just move the file System.keychain from the folder /Library/Keychains to the trash (and drag it from the trash to a safe place, e.g. the desktop, afterwards - just in case). Reboot, enter the correct Airport password in the Network preferences and switch Airport off and on once. There haven't been any annoying alerts since, and removing the keychain doesn't seem to have any negative side effects.

Posted by Thomas Much at 19:09
Edited on: Tue, Nov 01, 2005 19:25
Categories: Apple & Mac OS X