Pidgin to Replace Skype

A while back I wrote about the need for a Skype-competator. We discussed this at work and decided to try to transition to XMPP and libjingle a.k.a. Google Talk. Many thanks for all commenters leading me this way.

The decision that we decided to go for was Pidgin (largely because some colleagues prefer OS X). On (k)ubuntu, Pidgin works with video + voice out of the box. It even detected the Mac Book Pro web camera right away – very nice! As Pelagcore is an all-geek-company, the internal transition has been smooth.

Basically, what the solution relies on is XMPP and libjingle. Jingle being an extension to XMPP for voice and audio.

So, what do I miss?

  • The ability to fix spelling errors by going back through the chat history
  • The ability to call land lines from within the application

There is also something that I have to look into – I just need to find the time (and colleagues to bother).

  • Is it possible to make group calls (group chat does work, but with voice and (optionally) video?

Apart from this, all that is left is convincing everyone that I interact with to make the transition.

Distributed MythTV Support Script

It has been a long time since I had time to play with my MythTV setup, but now it finally works. It turns out that the biggest hurdle was not to split the functionality, nor to configure the channels (one just has to get one’s head around the way that MythTV looks at receivers, channels and providers…). The big hurdle was that one of my frontends are connected over WiFi.

The issue was that the frontend application was launched before the WiFi connection was established. This resulted in the frontend running some sort of configuration guide each time the system was booted. Having realized the source of the issue, disabled the autostarting of the frontend and added my own autostart script:


#!/bin/bash

TRIES=0

ping 192.168.1.201 -c 1
RES=$?

while [ "$RES" -ne "0" ]
do
sleep 1
ping 192.168.1.201 -c 1
RES=$?

let "TRIES+=1"
if [ "$TRIES" -gt "100" ]
then
exit -1
fi
done

mythfrontend --service

Here, 192.168.1.201 is the IP of the backend. The script ensures that the backend can be pinged before the frontend process is launched. The end result is a stable boot every time.

Skype to Redmond?

Rumors indicate that Skype might be sold to Microsoft. This only raises the urgency to develop a simple free competator. So, a good starting point is to list the very basic requirements:

  • Peer-to-peer sound and video streams
  • Global, distributed contact book
  • Encrypted media-streams
  • Potential support for conference calls (with one peer acting as server?)

So, how does one meet these requirements?

  • GStreamer can solve the peer-to-peer sound and video streams
  • Conference calls are not limited by gstreamer
  • Encryption can be solved by gstreamer (put an encryption / decryption element in the pipe)
  • The global, distributed contact book, is needed but can hopefully be supported by XMPP (Jabber).

The benefit of choosing XMPP is secure and flexible base to build a protocol on. There encryption keys and such can be exchanged, as well as synchronizing the setup and connection of peer streams. Using this protocol we could also support speech.

Another benefit, or risk, depending on how you look at it, is that this solution would be close to Google Talk.

Well, enough talking, I’ll do some prototyping later on and see what I end up with :-)

MythTV getting TV

For the last few months I’ve run a MythTV frontend/backend combination as our upstairs entertainment center. I use it for SVT Play using Tommy Persson’s excellent plugin, but also to play some music and act as a DVD player.

Yesterday a box arrived with my brand new Hauppauge WinTV-NOVA-TD stick (from a sale on netonnet). Last time I fought with receiving TV through a Linux system, it was a proper struggle. This time, it was just a matter of plugging in the stick, setting up the MythTV backend and watch TV (I admit – I did spend a bit of time sorting and filtering channels, but nothing advanced).

Checking the system this morning, it had recorded all three shows I asked it to – on time. Even the ones colliding in time, i.e. requiring the dual tuners to be used. Very nice!

Now, all I have to do is to setup my dedicated backend machine and get the connection between it and the frontend working. If that goes smoothly,  a card reader and soft CAM would be the next step, but boxer is charging 89+21 SEK per month for a twin card, so I guess that would mean setting up a new frontend downstairs…

Spring Cleaning

I did some cleaning, sorting and updating of various computers at home this weekend. In the process, I found a cup heater from Trolltech – great stuff.

Side note – in the picture, Tux the Linux mascot, Trolltech cup heater, Microsoft Natural keyboard, Apple hardware and HTC Android phone. Talk about Qt everywhere :-)

The Sun shines again

As all great projects, this one started with a Dremel and some destruction. The back side of my external SCSI hdd boxes from sun was to receive a make over. One thing can be said about the boxes – they are heavy and now I know why. There was quite a lot of steel to cut through, but the results where nice.

To fit the board in the box, I superglued a set of distances to the chassis. There is about 2-3mm of margin to fit the board in, so it was tight.

Then I fitted a 80W PicoPSU. This allowed me to move the main part of the power supply outside the box, as the PicoPSU is powered by a 12V DC power brick.

To get the power through, I had to make an extra hole in the plates for the motherboard’s connectors. That is how tight the fit was. No additional space on the back side to drill an additional hole.

The system is run from an 8GB CompactFlash card. Most cards can apparently be used as an PATA/IDE drive. As the CF-to-IDE converter had a floppy drive power connector, I had to build a cable for it. Also, notice the tape in the top right corner of the converter – it covers a really bright red LED.

And here is the real LED. It is green and it is original. Connected nicely with the HDD activity pins of the motherboard.

So, here it is again. A sun box has sparked into new life.

Pre-vacation Stress

It has been a long time since I blogged last. Life has been chaotic, and as June closes to an end, it is getting worse. However, I’ve promised myself to clear all current projects during June (apart from some continuously ongoing stuff) to have a fresh start after my summer vacation.

Loads of exciting things are happening this fall. Some highlights are:

  • I will start working full-time at my new employer, Pelagicore.
  • FSCONS will take place, and this year with more technical contents than ever and a specialized embedded track which I’m co-organizing.
  • I will continue with my QtLunch concept. If you are in the vicinity of Gothenburg and want to learn more about Qt and enjoy a good meal with fellow Qt users, drop me a mail!
  • I will blog more frequently… :-)