2009-08-11

Windows7 highlingts

This is a list of awesome features I found in windows7:

The "Characters" wallpaper slideshow. This is just SO awesome - every page is bizarre, stylized and whenever the wallpaper changed I spent a couple of minutes just gazing at the detail. Microsoft, I might not like what you're doing with your POSIX compliance (read: nothing), but the wallpapers are awesome.

Aero "halfimize" - drag your window to the left or right edge of the screen and the window will cover the vertical left or right half of the screen. Very, very useful. I'm expecting kde4's kwin to copy this with a plugin very soon, or hope it does. I miss it.

I might expand on this list some more in the future. I also refrained from stating any negative stuff, because this post is a list of awesome features.

Starting java development on N97

Setting: A desk, a new notebook with windows7 (rc) and archlinux, and a Nokia N97.

Job: make an app.

I first tried to get the environment working on archlinux with pulsar, the (supposedly) awesome eclipse-based ide for phone-based development, but I couldn't get all the components necessary (that being an emulator and sdk - the whole of the problem lies with Nokia, as sun provides its wireless toolkit for linux).

So, the job moved over to windows 7. Pulse installed without trouble, and I got a ready-made MIDIlet project (RSSReader) off of sourceforge to try and compile just for kicks.

The RSSReader binaries installed perfectly on the N97, I just copied the jar over and installed it via the phone's application management features. It ran.

I used the nokia instructions page to guide my way of installing all the software, but pulse had its own mind sometimes and fetched and installed the S60 SDK itself.

For reference, I got pulsar 20090619-0625, the 1.1 Nokia SDK and Sun wireless toolkit 2.5.2.

Just clicking around and randomly installing software yielded me a useless system. Whenever I tried to compile and run a MIDIlet, a "JAD file could not be initialised" error popped up and that led me to actually go read the installation notes document.

Highlights:
  • You need at least perl 5.6 (Strawberry perl shipped with 5.10 at the time, so no sweat there)
  • You need an ARM compiler (though not for Java), but the ARM toolchain is installed by the SDK installer if you want (it asks).
  • Installation path must not contain whitespace (so no "Program Files (x86)")
After that it's click-next-until-your-fingers-hurt. When finished, it's pretty important to verify your installation. Open the prompt and type "devices", If it shows you your phone, you're on the right track.

I couldn't compile the c++ app because of the "nothing to do" error, but hey - at least the emulator ran (command "epoc"). I'm not going to be developing c++ apps yet anyway.

I then used the nokia wiki page to set up a project.

Since I failed at compiling an existing app, I thought I'd try a hello world project. It ran further than the RSSReader project, but it still stopped when the emulator gateway wasn't running. The gist was in getting it to use the emulator:
Go to Project->Properties->Java ME. Select S60Device from the menu and click Edit. (if you don't have anything in the menu, add the device from C:\S60\... ...\Devices\Nokia N97 something). In the next window, under Device, select S60Emulator.

After lots of useless clicking doing pretty much nothing, it started working on the n'th try. After that, it even wanted to connect to the emulator, which spawned about 5 dialogs with the windows firewall blocking local connections. Just click through.

It also seems to work better if you run it as debug, not run on the 1st try.

It also times out if you don't click through the connection -> winsock thing on the emulator. Otherwise, the hello world app works marvelously. In fact, it compiles and runs and promptly exits, but it runs.

Well, I'm off to developing the app now. Took me only two days. :)