Tuesday, October 25, 2005

Complete Shutdown

I dont know if this is the work of Rahu or Ketu but the last week or so has been a complete shut down in my life.

It started early last week with my Laptop stopping to work completely. Just got it fixed today. There was some issue with the fan on the motherboard. Even without my laptop, I was some what at ease with my desktop and then all of a sudden on Wednessday night both the comcast internet connected and cable TV connection had some issues and gonked out on me. I have been waiting for the service guy to show up and am quiet pissed now at the so called customer service comcast offers. The service guy isnt available till Saturday !!!... thats a whole week and half without any service and they expect me to pay for it ???

Anyways, since I have almost nothing to go back home to, I decided to spend some time in the office and voila... my hard disk crashed today. My admin says he will not be able to get something working on my machine till tommorrow and even then he isnt sure about the data. Damm... feeel completely pissed off right now.

The only bright shining light... got my laptop back from the repair shop. Its working fine :-).

Friday, October 14, 2005

J2ME Wonderland

Been out of the posting loop for quiet a while. Found myself working on J2ME after about 6-7 months of hardcore BREW development last week. The whole time I spent on working in Java for mobile phones made me appreciate BREW even more. Its not the development environment or anything of that sort. Developing in Java is great, its the implementation of the JVM (KVM) on the handsets that sucks. I know the whole security, write once run everywhere routine but I feel Java draws the short straw when it comes down to cell phones.

BREW isn't perfect but it does give a developer a whole bunch of control over the flow of the applet. J2ME is sadly, very implementation dependent. Things that work flawlessly on a Nokia device will crash on Sanyo. Developing a MIDlet that in truly cross platform is an art that you learn from experience.

I learnt something new about the Security Architecture of Java MIDlets this week. On certain implementations the permissions to ask for in the MIDlet-Permissions: attribute of your JAD file are not exactly the same as mentioned in the JSR's.

For Instance, I kept getting a Security Exception while trying to access the camera on the device (JSR 135). I had everything in place. The MIDlet was signed and I was even asking for permission to capture frames from the camera.

javax.microedition.media.control.VideoControl.getSnapshot

I believe the specs on JSR 135 state that this is the permission to ask at install time but they don't mention that on certain implementations you might also want to also add permissions for other classes in a "protected package". This is the part that sucks, the specs on the JSR are too vague and give a lot of freedom to the implementers. This is good in a way cause the implementation of KVM on a device also has to take into consideration the device limitations and the carrier requirements but to a lowly developer like me .. it sucks big time. Had to add these permissions to the Jad file to finally get the MIDlet to run on the device (Thanks to some help from the Carrier support after 2 frustrating days)

javax.microedition.media.Player
javax.microedition.media.Manager


For more info on the security architecture of J2ME : Article in Sun's J2ME section