Category Archives: nerd

Java 1.6 sucks

Today I got to work and discovered that my ant build for our J2ME app is failing randomly. After a long debugging sequence, I discovered that some Java 1.6 update has installed java.exe in c:\windows\system32. This particular version of java.exe is for the JRE and sets java.home to the JRE home directory. Since that path is high in priority in my system path, eclipse took it as its runtime environment, resulting in me having a neutered JRE (no JDK tools). Thus, jar.exe was missing from my java home and nothing would build.

Sun, if you are reading this, please don’t try to succumb to the crappy Windows way of doing things.

BREW Logger on Sprint

So, for a while I have lamented about the lack of a way to read System.out.println() output on Sprint CDMA phones. Today I had a random idea and it turned out to work well. For BREW, Qualcomm has a function called DBGPRINTF that prints stuff out. In the simulator, it just shows up in a little windows. On real phones, you can connect to the phone with a tool called BREW Logger and view the output. Since Sprint CDMA phones are based on BREW under the hood, I decided to give it a try. Samson was having some problems with a hang, so he brough in his KRZR K1m and we hooked it up. It spits out a lot of garbage, but the println() output is indeed there when you use the BREW Logger. So, for all of you Sprint CDMA developers out there, this is an awesome resource. It might not work on all phones, but it does work on the KRZR, and probably related phones like RAZR and SLVR. The only problem is, you need to be an “authenticated” BREW developer to download the tool, which costs quite a bit. Perhaps someone at Sprint can find an arrangement for us to get this tool for free.

Cell phones

This week I went to a secret Sprint developer conference in Florida. Unless you are “in” with Sprint, you probably have never heard of it. Even if you are in, there are a lot of things you will still not be able to do in your programs that run on their phones. In the end, of course, this results in you being unable to provide what you think your customers want to be able to do on their cell phones.

The wireless carrier industry is notorious for this kind of behavior. The CDMA side is particularly bad, it seems. Perhaps they learn this behavior from Qualcomm, the inventors of CDMA. Qualcomm is particularly nasty, having decided to go a step further and invent their own platform (BREW) instead of using the standard J2ME for cell phones.

On my flight back from Florida, I read an article in Wired about the Silicon Valley Homebrew Mobile Phone Club. This is the second time I’ve heard about the group, and I find it really fascinating. Their vision is to create a phone from scratch that is based on an open platform (Linux) that anyone is free to program. This is very similar to the PC in its current incarnation. If you imagine a world in which you have to get approval from Microsoft to write an application for the PC, you have something similar to the wireless industry today. I don’t think we’d be anywhere near where we are if that had happened.

In any case, the idea of creating an open platform GSM phone is cool, but the hardware part seems pretty difficult. If you visit their web site, you can see pictures of the phones they’ve created, and they aren’t too pretty. What I would like to see is something cool that can work in the forseeable future. Then I remembered seeing that someone got Linux to run on the Treo 650. I happen to have one, and it seems like it would be a good platform for the “open phone”. It looks like the Linux project is decently far along. I’d love to try it out and sort of build a platform that is easy for developers to use. I really like the Blackberry model where nearly everything is written in Java. It makes things easier for people to jump in and write programs.

Motorola HT820 review

So, a couple months ago, I decided my headphones at work were too uncomfortable, and I figured I’d venture into some high tech gadgetry. My laptop at work has a built in bluetooth card, so I started looking into bluetooth headphones. The Dell bluetooth stack is horrible and hasn’t been able to do anything I’ve attempted with bluetooth. It couldn’t talk to my Treo 650 to get Internet access, and I easily determined it didn’t support A2DP for headphones. To fix the problem getting to my Treo, I just uninstalled the stack and used the built-in Windows XP one, which worked ok, but it wasn’t going to cut it for A2DP. I then discovered BlueSoleil, which is a third-party stack and supports quite a few profiles. Anyway, I ordered these Motorola HT-820 headphones, and got them working with BlueSoleil. It isn’t perfect, but it works pretty smoothly and the audio quality is great. I think the most significant problems are that it seems to fail to pair automatically if I turn on the headphones after booting the computer, and iTunes won’t play on the headphones if I pair after starting it. Also, the headphones work with the Treo, and can automatically switch between music on the computer and phone calls with the push of a button, which is pretty cool. So, here’s a summary of my pros and cons for the Motorola/BlueSoleil combination…

Pros:

  • Good audio quality
  • Ability to switch between phone/music
  • BlueSoleil supports A2DP + Dialup networking well

Cons:

  • Weird problems pairing
  • BlueSoleil doesn’t seem to support AVRC, so the track switch buttons on the headphones don’t work
  • Headphones are a little uncomfortable with glasses

Overall, I think they were a good purchase. The freedom from wires is cool, and they are no less comfortable than other headphones I’ve had.