Configuring Bitlbee with everything

This is a guide how to setup irssi and Bitlbee with support for Skype, Google IM, Facebook, Twitter, Jabber, and SMS for Android-based mobile phones.

It has been few days since I actually did this so I might not remember everything right. Feel free to comment if something is out of order.

Compiling Bitlbee

To make things simpler I compiled and installed Bitlbee on my own shell account. That way I’ll get all bleeding-edge features. It’s also quite likely that Bitlbee has to be upgraded in case if the service APIs are changed (like Twitter or Facebook).

Download bitlbee-3.0.5.tar.gz or newer:


…then unpack it:

zcat bitlbee-3.0.5.tar.gz|tar xf -

…and compile it:

cd bitlbee-3.0.5
./configure –prefix=$HOME/opt/bitlbee –skype=1 –ssl=gnutls
make install

You should also install default configurations on the first time with this command (Note! It will install over any changes you might have made under opt/bitlbee!):

make install-etc

Finally you might need to add $HOME/opt/bitlbee/bin and $HOME/opt/bitlbee/sbin in your path to make bitlbee and skyped commands working.

For Bash you can do it by adding these lines to .bashrc:

export PATH=”$PATH:$HOME/opt/bitlbee/sbin:$HOME/opt/bitlbee/bin”

Configuring Bitlbee

Bitlbee has to be configured before first start.

First I will make my own configuration directory for Bitlbee:

mkdir etc/bitlbee
cd etc/bitlbee

Next copy the default configuration file from opt for bitlbee:

cp $HOME/opt/bitlbee/etc/bitlbee/bitlbee.conf .
chmod 600 bitlbee.conf

Modify from the configuration AuthMode as Registered unless you want to setup a public Bitlbee. You should also change AuthPassword and OperPassword.

Next create a text file named with these lines:

#!/bin/sh -x
bitlbee -n -v -P $HOME/opt/bitlbee/var/run/ \
-c $HOME/etc/bitlbee/bitlbee.conf \
-d $HOME/opt/bitlbee/var/bitlbee

..and change permissions:

chmod 700

Please note: you should configure Skype before starting Bitlbee first time.

When ready you can start bitlbee by running it in screen:

screen -S bitlbee ./

I am running bitlbee in screen since it’s easier to read debug messages and I did read about some Skype related bugs that didn’t exist by running it that way — but I’m not sure if those are already fixed.

Setting up Google IM

I followed these instructions when configuring my Google Apps accounts to Bitlbee. However I couldn’t make it work precisely as advised there. I used oauth instead and it’s much more secure anyway.

account add jabber
account jabber set tag g
account g set oauth on
account g set ssl true
account g set server
account g set port 5223
account g on

Setting up Skype

Skype is the most tricky to get working with Bitlbee — mostly because you actually need to run Skype as GUI application (on shell server!). For that you will need a VNC server. I am using tightvncserver since it doesn’t have much dependencies and was easy to install on my shell server.

Good news is that skype-plugin has been in Bitlbee since version 3.0.4.

First I installed Skype for Linux from That was quite easy to do on my own shell server but required root access.

Then I followed these instructions to configure it.

Update: If you need to receive files, please note that Skype API doesn’t support accepting them. However you can enable auto-accept feature in Skype GUI.

Setting up Twitter

For Twitter I followed HowtoTwitter at However you don’t need to use your password since Twitter supports oauth, too.

Just configure it by this command:

account add twitter yourusername

..and follow the link to authorize your access.

Setting up Facebook

Facebook’s jabber support isn’t very good. Unlike with Twitter you cannot see anything else but private messages so it’s not as useful as Twitter. As usual I followed
HowtoFacebook at Bitlbee wiki.


GTalkSMS is an Android app that allows you to send/receive SMS and control your Android smartphone using Gtalk/XMPP. Since Bitlbee supports XMPP it also means you can control your smartphone with irssi!

Guides to setup GTalkSMS are available at GtalkSMS’s wiki on pages Setup and HowToSetUp.

Setting it up was quite easy but there seems to be some kind of bug when configuring settings for GTalk. First it didn’t work even when I had all settings right but then it started working after I cleared data for GTalkSMS and configured it again. For the second time I didn’t change anything except what needed. For example, I didn’t write “@” characters again since I suspected there might be some kind of character set problem.

Fork me on GitHub
Posted in Other things, Software | Tagged , , , , , , , , | Leave a comment

Setting up Google Apps for domain -account on Bitlbee 3.0.5

I configured today Bitlbee to use Skype, Facebook, Twitter and Google Apps.

Skype may have been the most laborious of these — it has to be ran using VNC server when on a remote server — but Google Apps took more time for me since I didn’t find updated documentation for it.

It’s configured like this on Bitlbee 3.0.5:

account add jabber
account jabber set tag g
account g set oauth on
account g set ssl true
account g set server
account g set port 5223
account g on

After this you just need to follow the link Bitlbee will provide for you to authenticate using oauth.

Posted in Programming | Leave a comment

Blogging about Freeciv and longturn games

This week I started blogging about Freeciv and longturn games at

It’s actually a blog for my work-in-progress book about Freeciv. If it will be successful, I might really write a book about Freeciv. Until then I’ll write articles one at the time and publish them there.

Posted in Games | Leave a comment

Post NKO Greetings

Last weekend I was part of Node Knockout for the first time. We were three man team and I couldn’t have done it without @jkjuopperi and @paveq2. It was fun to work together!

Also great thanks to Kapsi Internet-käyttäjät Ry for letting us to work from their HQ.

Our entry was a hosted web shell service which can be used for IRC — and other things in the future. The source code will be published is published as MIT-licensed at GitHub soon. We plan to continue the development there, too.

For now, you can review and vote our deployed entry at Update: Only custom guide works; we were banned from Freenode #Node.js and cannot change the code.

There was only three other teams from Finland. Please review them too!

If our doesn’t work try refreshing the browser or change API key to something wrong (it will then automatically create a new one). Please wait at least 15 seconds for the red balloon to change green — that means the browser has working connection to the shell server.

We open sourced it:

Our database should be cleaned now. If you had problems to make it working please try again now. If something doesn’t seem to work (you see only your lines for example), just refresh once more.

It’s not working now because we were banned from Freenode #node.js. We are working to make it work somewhere else but it’s hard since we cannot change the code.

We are now using Kapsi’s IRC server at and #node.js there. We were able to change to point there from /etc/hosts.

Posted in Programming | Leave a comment

Resources for upcoming Node Knockout

Our team has gathered some useful links and notes for upcoming Node Knockout contest. These might be useful for others, too.

Node Knockout in general:

Online resources (Books etc):

Useful Node.js libraries and tools:

  • Cradle — A high-level, caching, CouchDB client for Node.js. It has very nice and simple asynchronous interface.
  • NowJS — Easy to use browser vs server integration
  • — Sockets between client and server (and other servers with additional modules)
  • JADE template engine — A template engine. Not sure if this is the best choice, thought. It’s slow (for human) to transform HTML to JADE.
  • Express JS — A web framework
  • Forever — Keep node process running forever
  • underscore — General operations. Good thing: doesn’t modify global objects.
  • backbone — Lightweight MVC abstraction
  • node-init — Turn node.js into LSB-compatible init script
  • everyauth — Authentication module
  • BlueprintCSS — CSS Framework
  • lesscss — The dynamic stylesheet language

JavaScript IDEs:

If you know something else useful please tweet me or write a comment below!

Posted in Programming | 1 Comment

Join my team at Node Knockout

I am setting up a team for Node Knockout. It is a contest where teams are creating a web application with Node.js in 48 hours starting August 27. For us this will be a hobby project: having fun and learning will be the main purpose here.

At the moment I am looking for people with programming or graphical skills to join my team. I would prefer if you are near Oulu, Finland or can travel here. We could then work in the same location. Finnish language skills would be nice but not required — English is the language of programmers anyway.

Please note: I don’t believe you need to be a Node.js guru to join my team. There isn’t many in Finland anyway. I think myself as a JavaScript, Node and Google v8 guru. I can help with possible issues.

I am also seeking sponsors. Talks have already started with some but please contact us if you think you can offer something! We will mostly need a place to work but food and drinks might be nice, too.

The concept of our app is not settled yet. I personally would like to use our old concept AGE – Ajax Game Engine. It’s over four years old but we never did more than concept work and it was all that summer four year ago. I have done nothing for AGE after that time.

Posted in Game design, Other things, Programming, Software, Web development & design | 1 Comment

One small step for a programmer, one giant leap for the lifetime

It has been over two weeks since I published my first NPM module. Also a month since I started using GitHub. I am posting about this because this is the biggest change in my life as a programmer since I got my own computer and access to the Internet.

I am not saying that systems like these are something new. These were not new to me. I wasn’t just using them before. I am a bit agnostic and it takes time for me to move from something old to new.

I have been programming same things over and over again most of my life — sometimes it’s called NIH. Usually that’s because one of these bad reasons:

  • I don’t remember or know where the old code is or even that it exists
  • I don’t know how to use it anymore and writing new is easier
  • I made the first code for a company I don’t work anymore

There’s a lot more reasons to do NIH (both good and bad) but these are the reasons I hopefully don’t need to use anymore because of open source NPM and GitHub.

Now I have 15 repos in GitHub and five public NPM modules. GitHub provides me and my projects version control system, bug-/issuetracker, social tracking of programmers and projects, wikis, websites, easy way to write documentation, and much much more. I could do these myself but it wouldn’t be that easy. Also it’s likely that nobody would find their way to my website either.

Before this I was using SVN and my own websites to share my code. I’ve now started to move all my SVN projects to GitHub. I’m also publishing my old JavaScript stuff as NPM modules, too. Most of them are for my old OpenJS project but I am porting them to Node.js anytime I need them.

One of the biggest things using GitHub and public NPM is how easy it is to share your code. It’s not just easy to share it to other people but to yourself, too.

This week I made yet another Session library. I don’t know how many Session implementations I have done or with how many programming languages. At least five times for JavaScript, that’s for sure. Now it’s in my GitHub and I am never ever going to do a new Session module because of these bad reasons. There’s even a documentation now — if you can call it that. It’s still better than no docs at all!

Posted in Programming, Software | Leave a comment

Blue Ocean Strategy as a PDF

Today I was searching Blue Ocean Strategy as a legit download to be used with my Kindle. It turns out that it indeed exists for Amazon Kindle Store but sadly that’s yet another ebook not sale for Finnish customers.

It seems that the only way to buy it digitally here in Finland is from Harvard Business Preview as PDF chapters $6,95/chapter totalling $69,50 for full 10 chapters.

Here is a link list to these chapters:

PS: Also thanks for Samuel at Harvard Business Preview customer service for helping me to solve my problems.

Posted in Business, Electronic books, Marketing | Leave a comment

Here comes the election day, every useless vote counts!

I am just on my way to vote in the Finland’s Parliamentary elections.

There is probably two realistic outcomes:

I vote for a candidate that does not get to the Parliament…

  • …but someone from his party I don’t like does
  • …and nobody from his party does

You might ask, “why do I vote?” Simply because I hope I am wrong. So, please vote! Any useless vote counts!

Posted in Other things | Leave a comment

I joined Twitter

You can now follow me on Twitter, @jheusala. Too bad my full name was too long. I had to cut hyphen from it. :-)

Posted in Programming, Software, Web development & design | Leave a comment