21 June 2012

After the break

As you may clearly see, I haven't been active here for the last 4 months. Well, a lot of things has happened. 

I've started working on a new project at my office. It involves loads of interesting stuff like ZeroMQ messaging and Redis for high-performance storage. What is more I've recently finished writing my master's thesis (a subject for a separate post), which I'd try to defend in few days. There were also some personal and mundane things I had to take care of.
So that's what took all my available time.

Let's look to the future.

Pet projects

I've put an embargo on personal projects during writing of my thesis -- these were really long and often wearisome months. So many fascinating articles appeared on Hacker News, tens of exciting projects on Github... All in all it was a good decision as I'm currently near the very end.

Now, I just want to indulge myself in every thing I have missed. In order to keep me sane I narrowed my plans to two (well three, you'll see) pet projects.

Music player for Maemo platform

I was really excited when Google launched their Music service. It's now called Google Play Music and allows you to upload your favorite songs (up  to 20.000!) and listen to them everywhere in the World -- they're stored in the cloud. There's a web interface based on a flash player and also a native Android application. Too bad there isn't a publicly available API to access your music -- no easy way to listen on  N900's Maemo.
Some time ago I've stumbled onto unofficial Music API library for Python. It's a great piece of work by Simon Weber, Darryl Pogue and many others. This projects emulates some parts of the web player and Android app to give you access to your music. I think all necessary actions are already implemented and stable.

As I am a happy user of Nokia N900, I wish to use this package to create my own Music player for Maemo 5. It'd be designed with Qt4 environment in mind. I've already started some preliminary work (well, project skeleton is ready) and met some challenges. First of all, N900 carries the old Python 2.5 and it's not viable to update the interpreter. This issue cascades -- all project  dependencies have to be Python 2.5 compatible. To this date I've made all necessary fixes for the API library to work properly -- see my repository.

What is more I had to grasp the packaging process for the Nokia's tablet. It seems really simple -- it's just Debian, right? Unfortunately you have to use Maemo's SDK and sandbox (called scratchbox) to keep your hands and device clean. I'm now able to create .debfor all dependencies.

What's next? Time will tell.

Sharing files from mobile device over zeroconf

This project is also related to my usage of Nokia N900. Oftentimes I need to transfer some photo (or recording, a note, etc) to my laptop or desktop computer. Usually I use the USB cable or sftp/scp to manually copy the file from one device to another. This method gives too much friction to such a basic process. Yes, there's a Bluetooth option but it's still not that simple. What is more, there isn't a Bluetooth adapter inside every computer. On the other hand all your devices are probably connected to your home network, with a wire or over the air.

My plan is to make a simple file sharing application (or a common plugin for Maemo infrastructure) that uses zeroconf (Avahi, Bonjour) to match two sides of the transaction. I don't know if that's actually possible -- this will require some further research. I'd use SimpleHTTPServer should that be necessary for file transfer. It would be really nice to make the app just once and run on all devices without designing-in some client/server dichotomy -- peer-to-peer is nice, isn't it?

Raspberry Pi

This week I finally received my Raspberry Pi board.

My Raspberry Pi

After some messing around I got Debian to boot although I didn't have any way to connect the RPi to my monitor (DVI and VGA only). I haven't decided yet what to do with this board. Should I find some free time I'd try to play with GPIO interface through RPi.GPIO or quick2wire Python API.

I guess a physical-world-interacting twitter bot would be a good warm-up project.

No comments:

Post a Comment