Thursday, January 21, 2010

Java Problems

Steve decided to have his own distribution of Java on MacOSX (Hence Sun does not provide any MacOSX specific JVM). It is actually located in /System/Library/Frameworks/JavaVM.framework/Versions/ and most of the files there are just links to the latest JDK. Which is not a big deal. However, with Eclispe and Netbeans I had run into some issues which I couldn't figure out. It would complain about some arb xalan problem when trying to do many things in Eclispe (including saving the workspace on exit). Netbeans was much more sneaky. It simply kept on installling plugins into oblivion. That's right - endless loop!
I got fed up and used Pacifist to extract 1.5 JDK from the archive I downloaded from Apple's site. The bonus is I have 2 versions of SDK now instead of 1. Anyways, by editing Eclipse and Netbeans startup scripts I managed to get them going with 1.5.
Today I tried to install IzPack, which came as a jar file and it kept on giving me java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.setXmlVersion(Ljava/lang/String;)V no matter what I did. I tried manually running it with 1.5 to no avail. Until I discovered a bunch of jars in ~/Library/Java/Extensions/ among which was the infamous xalan.jar dated 2003 for some reason. I zapped those and wow! all is working...

Sunday, January 10, 2010

I have been doing a lot of dev lately and have a few IDEs and such open together with the regular mail and web browsers. I have 2GB of very fast RAM in my notebook and I started experiencing a lot of memory swapping. So I had a look at the process list and noticed (apart from humongous memory consumption by Netbeans and Eclipse) that Chrome was 2nd worst and also KAV was making quite an impression.

Anyways, not much can be done about KAV except disabling it, but I decided to compare Chrome - FF - Safari and Opera in terms of memory usage (nothing else). Well, as you may know Chrome runs each tab as a separate process while others just run them as separate threads. For my tests I launched one browser at a time and opened 3 tabs: www.news24.com, www.google.co.za and www.imdb.com

Below are the results:

Chrome (beta for Mac) 112MB
Firefox (3.0.15 for Mac) 72MB
Firefox (3.5.7 for Mac) 74MB
Minefield (3.7alfa-pre1 64bit for Mac) 87MB
Safari (4 for Mac - 64bit) 83MB
Opera (10.10 for Mac) 72MB

This is only with 3 tabs open. What is Minefield you may ask?

Minefield from Mozilla is an early build of the next version of Firefox with drastically improved Javascript engine under the hood. Some claim it has the fastest javascript engine on the planet, which means it leaves Google Chrome in the dust. You can download the alpha code of the latest nightly build for Mac OS X, Linux, or Windows.

I was also looking for a 64-bit browser, since I'm running my Kernel and the entire OS in 64-bit which means that my whole computing experience should be so much faster (and better), that would replace Safari, because in my tests after I left Safari with those 3 tabs open and left the computer for 5min, the memory footprint increased to 164MB!!! I also had Safari bringing my Macbook to its knees before with some dodgy flash web page.

In terms of browsing experience, I used Chrome for a while and it seemed faster than anything else. Opera was the slowest and Firefox somewhere in between. I disabled all the add-ons and just left a few essential plugins in FF to make tests more fair since Chrome beta for Mac doesn't even support plugins.

Anyways, I was looking for the smallest footprint browser and Opera seems the best by far, but it also "appears" slower than others. It seems the faster the browser, the more memory it uses. I will run Minefield for a while to see if 64-bit code has any benefit even though its a pre-release version.

Oh, and also the benefit of using Mozilla is that it can stream mjpeg natively (which is essential to my CCTV solution at home) while other browsers rely on the java applet to do the same.

Update: as of today there still no 64-bit Adobe Flash player for MacOSX. Apparently there's one for Linux (in Alpha), but not for Windows or Mac, so Minefield 64-bit won't play any Flash content.

Thursday, December 17, 2009

Day 73.999 (Browser Wars)

Safari, Firefox, Opera, Google Chrome...
Firefox, Chrome - multithreaded: each tab is a separate process.
Opera - not sure... Safari - definitely not.
Safari has just embarrassed itself. It didn't crash, but became unusable after some page opened with flash in it. I had some issues with Opera on Ubuntu where the flash plugin would use more than 50% CPU if the tab displaying the page was left open. This was pretty similar, but the OS UI became very sluggish and unresponsive. Some message came up much later saying something about flash crashing.
Chrome is my favourite so far, but it just can't get the downloads right. I get incomplete downloads often and the browser doesn't even tell me about it. Highly annoying.
Safari doesn't bother remembering open tabs and I'm not sure if those favourite sites work properly - is seems to have a mind of its own when it comes to that. Oh, and no native jpeg streaming support like in Mozilla.
I like Opera, especially since it has the mail client built in. The configuration is a bit odd, but you can get it for every single OS which is a huge bonus. Pity on Mac the mail composer gets the key mappings wrong. Home and End keys move from the beginning to the end of the document, rather than the line which is incredibly irritating to say the least. Couldn't be bothered with trying to figure out how to remap the keys.
There's no Safari for Linux which is a huge disadvantage for this browser so I'm just hoping that Chrome will only get better...

Saturday, December 5, 2009

Day Random.nextInt(5)

HOME and END keys... What a pain!!! Keyboard mappings in MacOSX are much to be desired. Luckily there's a program called DoubleCommand. It allows some degree of remapping.

Anyways, so far white cat has been very stable. Sometime it slows down, but its because I have so much stuff open and I think it starts swapping to disk. I think 2GB may not be enough. Who would have thought that a couple of years ago? I doubt I will be able to find DDR3, let alone notebook DDR3 any time soon.

I figured with the disappearing icons, I need to unplug the external monitor first and then put the laptop to sleep to take home. This way it rearranges the desktop well and icons don't disappear anymore.

Oh, the HFS+ by default is journaled, but not case sensitive. This is annoying to say the least. Very confusing for a *nix person anyways. There seems to be a conversion program that some poor dude wrote called HFSConverter. It needs Xcode to compile, but its linked against an old SDK that was dropped in Snow Leopard. The location it references is /Developer/SDKs/MacOSX10.4u.sdk. Just link to another one, like MacOSX10.6.sdk and off you go. It will compile perfectly.

When I'm feeling brave, I will run it and see if it converts the existing filesystem correctly.

Thursday, December 3, 2009

Day 3.09 (Regression)

Damn these apples. Macbook 1,1 with its "lid flaw" had some pretty potent hardware for its size. Tiger wasn't really anything special, Ubuntu 8.10 seemed like a logical choice at the time. Pity about those freezes and standby issues. Mind you, standby wasn't really an issue since the battery broke after about 3 years and it was mostly used with the power supply. But those freezes I could never figure out. Eventually with the upgrade to Karmic Koala and Canonical idea of ditching Madwifi in favour of ath5k I managed to pinpoint the problem. Then ath5k introduced another bug. Every time that silly Network Manager was scanning for new networks, it would somehow temporarily suspend the current Wi-Fi connection. Bummer! On one hand we have a surprise lockup with Madwifi, on the other annoying 10sec. pauses in connectivity every 2min. Which is worse? I suppose using a cable wouldn't be such a bad idea, but what about public areas like airports, hotels, etc.?

I guess Snow Leopard for MacBook 5,1 looked like a good candidate, especially since someone reported fan control problems under Karmic Koala as well as some battery longevity issues. Hmmm... Leopard it is then.

Firstly, Sun's VirtualBox is compiled for MacOSX. Yay! I can run a bear on top of a cat... Secondly, most of the tools I need for my work seem to have a MacOSX equivalent. And who can resist the Time Machine? So off we go...

Netbeans, Eclipse with MTJ, Opera, Firefox, Skype, VirtualBox (my favourite), Neooffice/Openoffice, Google Earth, Picasa, Gimp (with a little help of X11), Handbrake, Thunderbird, Sun J2me SDK. 

Ok, these are the main ones. Openoffice seem to have gone native so there's not much need for Neooffice anymore? Neooffice is based on the Openoffice anyways. Eclipse works well, but MTJ doesn't play nice with Sun J2me SDK 3.0. So switch to Netbeans where mobile development seems more solid. Install MacPorts so can get some open source on Darwin. Thought needed VPNC, but Snow Leopard seems to have Cisco IPSEC built into its network management. Even PPTP is there. Nice. All my VPN connections work. Even SonyEricsson phones connect well. Sort of... Only managed 3G over buetooth. USB says connection failed. Bummer...

Wednesday, December 2, 2009

Day 1.01

Snow Leopard on a MacBook Pro. Ubuntu is a pain on these Apple laptops. Takes a lot of patience to have it up and running and even then some things just won't work like the external display detection, etc.

Had very annoying issues with MacBook1,1 and 8.10. Madwifi would cause a proper freeze at least once a day. The notebook won't come out of sleep. Decided this time around to keep MacOSX since its *nix based and works well with the hardware it was designed for. Need to port all applications and development tools to it.