Snow Leopard + IntelliJ issues

Tuesday, September 15, 2009

Since upgrading to Snow Leopard and restoring Apple Java 1.5.1 from backup I've been having tons of stability issues with IntelliJ 8.1.3 and I finally got this resolved today. It seems that there is a reason why Apple chose to remove their 1.5.1 version from Snow Leopard after all. I think there are some compatibility issues with the new OS version.

Since modifying IntelliJ's startup configuration to use Java 1.6 instead of 1.5 and clearing out the old caches, all the stability issues seem to have gone away.

I modified /Applications/IntelliJ IDEA 8.1.app/Contents/Info.plist as follows:


<key>JVMVersion</key>
<string>1.6*</string>
<key>JVMArchs</key>
<string>x86_64</string>

MySQL Replication HOWTO

Monday, September 14, 2009

I've just published a short video showing how to set up MySQL replication between a single master and slave at /mysql-replication-howto. This video also demonstrates transaction loss in the case of a master server failure.

When we built dbShards we needed a reliable replication solution so that we could failover in the case of a single node failing but without losing any transactions, which is why we had to build our own reliable replication technology once we had ruled out other replication solutions (including regular MySQL replication and DRBD).

Snow Leopard ate my Java

Wednesday, September 2, 2009

Like many Mac users, I upgraded to Snow Leopard on Friday and overall it was a good experience. Some aspects of daily use are definitely 'snappier' now and I do seem to have a good deal more disk space available than before. I had to uninstall some HP software to get my printer/scanner working smoothly but that was the only glitch with peripherals.

I was somewhat surprised to find that I could no longer compile some of my Java projects though. It turns out that Snow Leopard includes Java 1.3 and 1.6 but not 1.5. It actually creates symlinks from the 1.5/1.5.0 directories to the 1.6.0 directory. Unfortunately Java 1.6 is not backwardly compatible with 1.5 (well, the language mostly is, but there are significant differences in some APIs).

If you are impacted by this issue then the good news is that it is very simple to resolve. You simply need to restore the 1.5.0 directory from your backup. This was very simple with time machine, and it was good to have a reason to finally try out a time machine restore.