Ejabberd global roster
June 30, 2011 § 2 Comments
Recently we needed a “global roster” for our ejabberd server. By this I mean that we wanted to be able to see all users currently online and allow other users to initiate a chat with them. This isn’t as easy as it sounds— the way XMPP normally deals with who’s online (i.e., who has announced their presence) is through rosters. If you’re not familiar with Jabber, a roster is simply the contact list in a chat program.
You might quite sensibly think “why not make a user that is friends with everyone?” That way every time a user comes online the special user will be notified and will have a list of all online users. Whilst this idea works, you will quickly discover that XMPP doesn’t deal with large rosters very well and if your user base is large this method will seriously slow down your chat server.
Whats the solution then?
I don’t like the Ruby 1.9 hash syntax
June 20, 2011 § 67 Comments
There, I said it, I don’t like it. And I don’t know why you do either.
I assume you like it anyway, everyone else I talk to seems to. My heart sank over and over again whilst I was at the recent and saw respected rubyist after respected rubyist using the new Ruby 1.9 hash syntax in their presentations.
I just don’t get it.
But I’m not one to just moan. I plan to justify my feelings. Then maybe you can tell me why you do like it?
« Read the rest of this entry »
Powder: making Pow even easier!
May 25, 2011 § 5 Comments
Pow is the hot new zero-config server released by the benevolent guys at 37signals. They created it to make all of our lives easier because you no longer have to think about application servers in development with Pow. Obviously thin, unicorn, passenger or whatever your choice of production server is are still important, but Pow makes your local environment easier to deal with.
But is it really easy enough?