As some people know, and many don’t, I got accepted into Nokia’s N810 device program, which means I get this wonderful piece of technology* for a wonderful price.
* Sentence may be biased, due to cheap-tablet-buyingness.
This means I really, really feel like developing something for the device, and so I present my newest idea: HeThEv.
Short for “HereThereEverywhere” (yes, my naming is as useless as ever), it’s basically a program that exploits the ease with which the devices can now know where you are in space - with the N810’s built-in GPS, or an external receiver with the N800/770.
The idea is to have a geospatial memory environment (woo, buzzwords). Essentially, you can write down notes, and the program will remember where they were written, and at what time. So, if you remember jotting down something in the pub last tuesday, it’s trivial to locate the item.
What about alarms? Set the device to tell you what food you need to buy next time you go past a supermarket, and as you walk past it’ll remind you.
Perhaps the feature I want to implement (and try!) most is the “located music”, where you associate music tracks with locations and times. So, if you’re walking down streets at night, have edgy, scary music; if you’re in a park during the summer, have typical summer music; walk past a football ground and hear their anthem; there’s lots of possibilities, and it will also make real life more like movies, although I have yet to think of how to play ‘danger’ music when a fight breaks out…
So, hopefully that’ll turn up at some point soon, shortly after Nokia actually get around to shipping devices (*cough*).
My headphones broke last Tuesday, and so I naturally went to buy some more. However, my eye caught this post, and since I actually had some spare cash just begging to be used, I decided to go ahead and buy some Jabra BT620s headphones.
They arrived the following day, and so I followed the instructions and got them working under Maemo using Kagu as the blog posting describes. Performance is only OK; there is skipping once or twice, and if you even tempt Kagu’s interface into moving expect lots of blank sound.
This is, I imagine, mostly because Kagu has an effects-heavy PyGame interface. It’s fine when all the music playing is offloaded to the DSP chip, but a2dp requires a daemon so sit and transcode all the data in realtime.
I may attempt to write a more CPU-friendly GUI to the Kagu libraries, like I was planning to convert Spindle into anyway; we’ll see. For the moment, though, I’m quite happy with the playback overall.
The n800 has quite a few media players already, and they all have their good points. None, however, seemed to be very useful, or indeed easy to use, while walking; if you want to change song, they all need you to get the n800 out of your pocket, unlock the screen, tap a button, lock the screen again, and put it back.
Having gotten tired of this, I decided to write a media player that worked for me while walking - and did virtually nothing else. The result is Spindle.
For starters, there’s no fiddling around with playlists; you just select the songs/albums you want, and hit play. If you don’t like the song, you can skip it, but there’s no going back (so make sure you have at least 50% good songs in your selection!). Selection is done via a large, finger-friendly interface, with album covers for instant visual recognition.
The best part (and only other real feature) is the ‘locked mode’. Hit the <- button, and the program locks the touchscreen, but not the hardware buttons. You can still hit Fullscreen to skip songs, and the center of the D-pad to play and pause, and you don’t have to worry about stray clicks on the screen while the device is being jolted around in your bag/pocket/whatever.
I must thank Urho Konttori for some of the inspiration here; the UKMP sourcecode has provided a excellent jumpstart to getting things like GStreamer working from within Python. There’s no verbatim copying, but there are a few areas of similarity (I did think about submitting patches to UKMP, but it’s too away from what I am looking to create).
I’ll be releasing an initial beta version soon, so keep a look out.
Time to announce my latest diversion from real life: RMaze. It’s a puzzle game, involving a maze (yes, really), marbles (good and bad), pits, lasers, mines, and some annoying hills and dimples. It’s based on an old game called MegaMaze that had nearly exactly the same principle, albeit without ‘good’ graphics or expandability (like an open maze file format).
It’s being developed specifically with the (my) Nokia 770 in mind (I need something to do during the more boring lectures). Thus, it runs at 800×480, and is just efficient enough to run smoothly on the 770, with its ~200mhz ARM.
It’s a Python program, and so will run anywhere Python and Pygame will. This includes PCs; I’ll be releasing both versions simultaneously.
Screenshots will follow when I get rid of some of the horrendous temporary artwork.