Thursday, January 10, 2013

New Year 2013: New goals & technologies

Brave new year 2013 and new goals for technology learnings:

Last year's focus for my self-learning was web development and my choice was Python & Django.
Django will definitely stay in my toolbox as a good framework.

This year I continue the web development learning but try to focus more on Javascript. This includes Node.js related technologies and learning the full-stack Javascript development & debugging.

Monday, December 10, 2012

Karaoke Fun: PyKaraoke & Raspberry Pi

What to do when you have Raspberry Pi, only one memory card & too much ideas?

Get another memory card! So I bought another memory card to not mess with RaspBMC set up.
Last Sunday karaoke machine workaround went like this:

1. If you don't Raspbian image on the memory card already, do so.
2. Install PyKaraoke from Raspbian repos
    sudo apt-get install pykaraoke
3. Configure PyKaraoke to search songs from your karaoke song folder. PyKaraoke supports wide variety of different formats [1].
4. Configure PyKaraoke to start automatically on the startup:
    sudo nano /etc/xdg/lxsession/LXDE/autostart
    Add @pykaraoke_mini to the end of autostart program list.
5. Boot the Pi to test the setup and have Karaoke fun :)

PyKaraoke Mini is a simple frontend that has only a list of all karaoke songs, so it is simple and easy to use after the configuration is done. The full frontend has all features where it is easier to configure playlists etc. but it doesn't suit as well to easy karaoke fun usage.

P1: The Pi
P2: PyKaraoke Mini main view, the song list
P3: Playing the karaoke
[1] PyKaraoke, http://www.kibosh.org/pykaraoke/

Tuesday, October 9, 2012

From Raspidy to RaspBMC

Work is work but spare time goes to Raspberry Pi hacking :)

I found out RaspBMC more interesting piece of software, mainly because greater community support and libspotify appeared to be a showstopper without support for hard float point. However nowadays it's ridiculously easy for a customer to change music service subscription, if someone else gives better support, thanks to a good competitor Grooveshark. After a short testing with Grooveshark Anywhere in mobile and RaspBMC, I decided to go with that at least for while until Spotify reacts in Idea Exchange, the place where they pointed us desperate Raspberry Pi hobbyists to go yelling ;) Grooveshark has some serious problems with the user interface and especially the search, it seems that their song data is more loosely categorized than in Spotify which makes the search more inefficient than in Spotify. Anyway the web client approach that they have is very interesting and really worth for testing as a web developer.

RaspBMC worked for my surprise very nicely out of the box and installation with python script installer couldn't been easier. I decided use RaspBMC mainly as a web service/stream box.

  • For photos I have Picasa addon to enjoy photos on a TV screen. Some stability issues in the plugin though, maybe memory usage, because didn't happen in Ubuntu XBMC installation on laptop.
  • For music I use now Grooveshark with own playlists and Listenlive.eu for internet radio. Both work very well. 
  • For video services I have Youtube, 1Channel and Project Free TV addons. Buffering is a bit annoying issue with some videos in 1Channel and Project Free TV because of video services they use and also connection and speed may be issue here. Mostly works nicely though :) 
I find that those currently cover quite nicely what a home media box should: Photos, Music, Videos.
Talking about the Pi setup, I have the Pi in ModMyPi black box. Cable connections needed are HDMI to TV for UI and audio, power adapter. Then for two USB inputs I have WiFi nano dongle and wireless desktop receiver for keyboard/mouse.

As for the price, I am pretty sure there are not this cheap solutions on the market if one wants a home media center. For future improvements some ideas:

  • Attaching storage for TV recordings and enabling TV recording with PVR addons.
  • Remote controlling, server style usage without need for screen for music playing
  • Learn to write XBMC addons, for example Picasa/Google Photos would need improving.
  • Making the box more portable and wireless for possible party use elsewhere :)
The evolution of home media center's.
The one above is for sale, nice AMD humming for your living room :)

Sunday, September 23, 2012

Raspidy - Music server project

I found a more interesting idea for RPi project which complements with my music hobby. I have now done a small background research for the project.
The project core components are:
  • Mopidy [1][4]
  • webserver(Apache, nginx, monkey)
  • Python, Django, django-mpd-client [2]
Raspidy will be a small portable Spotify music server that needs only speakers from audio output & power supply. For network connection I will first use a small WiFi dongle at first phase. For even more portability a small 3G modem would be a nice try later. Raspidy name comes from mixing Raspberry Pi and Mopidy.

Mopidy is an MPD music server  that includes Spotify support with pyspotify/libspotify. As Mopidy is an MPD server, I need a client to use it. Django-mpd-client is designed to work with mobile browsers. Therefore it's perfect solution to command a music server. I have not yet decided webserver. Apache would be default choice but I would like to research also web servers more suitable for RPi such as nginx or monkey [3].

Raspidy project aims for easy Spotify music remote control with django-mpd-client.

[1] Mopidy, http://www.mopidy.com/
[2] django-mpd-client, https://github.com/mklauber/django-mpd-client
[3] Monkey vs Nginx http://monkey-project.com/benchmarks/raspberry_pi_monkey_nginx
[4] MopidyonRaspberryPi, https://github.com/mopidy/mopidy/wiki/MopidyOnRaspberryPi

Wednesday, July 18, 2012

Rooting Samsung Galaxy S2 i9100 with Android 4.0.3

For every web developer it comes handy to modify hosts-file for testing/demoing purposes. I wanted to test my Django project also on my Android phone to verify the mobile usage. For modifying the system files you however need the root privileges on Android and for that you need rooted kernel.

The rooting itself is just flashing the kernel on the phone, quite easy and quick operation but took time to find the right kernel and a tool for a Linux machine. Most of the info you find by searching is for Odin on Windows. For Linux machines you can't use Odin but there is Heimdall, cmd-line tool for that.
Ready for rooting?

Steps:

1. Check your kernel version from Settings, Phone info, Kernel version. In my case this is 3.0.15-I9100XWLP7-xxxx.. IMPORTANT: This instructions is only for Android 4.0.3 with kernel 3.0.15-I9100XWLP7-xxxx..
2. Download the root kernel from the download link [2] and extract the zip and then the tar until you have 'zImage'
3. Download and install Heimdall from github [1]. Select the right package for your operating system. On Ubuntu/Debian select the newest deb-package. Note! Heimdall is cross-platform, for Win, Mac & Linux.
4. Connect your phone with USB to the PC and follow the rooting instructions with Heimdall by MrZammler(Winterland) [3]. Remember to verify that the device is detected before flashing.

Congratulations, your phone is rooted! For me searching this info was the biggest task, rooting itself was quite fast & easy operation. I hope this collected info helps someone :)

Tuesday, November 29, 2011

Autumn update

First, I am sorry to have this kind of "autumn update" title. I have to sum up some events in a one blog post to save time writing endless jargon, hehe. So, let's get to business or the idea of blog post. Previous posting I wrote from the bus on the way to the Metawatch meetup to Helsinki. Well, to skip the explaining the event shortly, I have awesome link to another blog http://meegobunny.blogspot.com/2011/11/metawatch-meetup-recap.html I think it kind of summarizes well what we did in the middle of the week in Helsinki. Read it you will be wiser.

Second topic, FreeRider individual private company that I launched in the July is looking for challenges! Contact via email at first if you have proposal to a project or a part of the project. For a more detailed discussion we could then have a real life meeting or a phone discussion.
FreeRider has released one promotion product, MPoker, in Android Market and in Nokia Store, to show off abilities to create clean, beautiful mobile software.

Third, as said before, MPoker has been released for Android. From now on, if I continue MPoker development, I update the Android version. Meego version is free in Nokia Store, but won't get any new updates. If you have an Android phone, buy MPoker to encourage and fund me to develop it further and add new features. Multiplayer bluetooth poker is only one of the ideas bubbling in my head.

I think this is enough for night writing. Coming as soon as possible, a blog writing about Android development with some comparison to previous mobile Qt development and "Haskell - why?" blog that I happened to promise in Google+ discussion. It will be just summary of different opinions, why people buzz about Haskell and just because I am curious person.

Night everyone.

Wednesday, November 16, 2011

Metawatch meetup

A lot has happened when I last wrote. Our Finnish Meego network has recently been renamed Tampere Mobile Ninja Techies, TMNT. Legally our group is under Devaamo association, which is the legal entity to gather developer communities in Tampere.

Today is the first meetup under the name TMNT. Devaamo is arranging the event. Hermia and Protomo sponsor our bus trip Helsinki, where the meetup takes place. Bill Geiser from Metawatch is coming to present his company. I expect interesting meetup and hacking with metawatches :)