Latest Publications

Tobias Markmann: Finally a Library Which Takes Extensibility in XMPP for Real

I’m working on a new monitor for XMPP networks, in which I most likely take Jabbermonitor down. The upcoming monitor, called xmppmon, is distributed and flexible.

The whole thing is written in C++ using gloox, the 1.0-alpha. This new version introduces gloox::StanzaExtension which makes extending XMPP with your own custom protocols a job of some minutes.

You are just creating a class which you can use on both sides, for receiving and sending the new protocol. Only three tiny steps need to be done if you have the protocol already in mind.

This is our intended protocol for sending and receiving account infos:

  1. <iq from='romeo@montague.net/orchard' to='juliet@capulet.com' type='set' id='last1'>
  2. <list xmlns='http://ayena.de/protocol/xmppmon#serverlistupdate'>
  3. <server username='bla' hostname='bla.be' password='dassad' />
  4. <server username='bla' hostname='bla.com' password='asdas' />
  5. <server username='bla' hostname='bla.de' password='asdasd' />
  6. </list>
  7. </iq>

You just need to create some function which converts such data into your internal data structure and vice versa and the XPath string that detects such stanza, in this case: /iq/list[@xmlns='http://ayena.de/protocol/xmppmon#serverlistupdate'].

Since gloox now knows about the XPath string it can automatically detect new incoming stanzas which match the new protocol.You can read about the exact mechanics in the gloox documentation.

While most APIs for C++ make you use some complex code the way gloox does this really elegant.

I’m using this a lot in the new xmppmon which I hopefully get finished during the next days.

Cheers
Tobias

Tobias Markmann: Enable Form Command

The EnableFormCommand is finally finished and you can publish previously uploaded data forms to users. You can specify a timeframe where the form being published or may just decide to publish it until you disable the form. Upload of forms is done using gloox with its SOCKS5Bytestream class and my own thread class. The following two screenshots show you how the EnableFormCommand looks like. The next step I’m going to code is the thread which manages the different timeframes of your forms so the forms are published and hidden in time.

Choose Command: This is the window which pops up in psi where you have to chose what command you want to execute.

Enable Form Command: The EnableFormCommand executed in Psi.

Jack Moffitt: Get Twisted On XMPP – The Future Of Twisted Words

One of the best libraries for writing XMPP clients and components is getting a lot better. The team behind Twisted Python is gearing up to do some major improvements on twisted.words.jabber, which Tofu and I use heavily at Chesspark.

Twisted Today

The XMPP facilities offered by Twisted are already excellent. It supports client and component connections, XPath stanza matching, and, of course, the asynchronous design that powers all of Twisted.

Why aren’t more people using Twisted for XMPP? One of the reasons is that Twisted’s documentation is not the most complete, and Twisted Words is one of the less complete areas. In order to get something up and running, it’s almost a requirement to read the code and do a lot of trial and error.

Turns Out There Are More Users Than You Think

Duncan announced the plan to improve Twisted’s XMPP support in an email to the Twisted Jabber list. Take a look at the name dropping of the people interested in Twisted XMPP (I’ve emphasized the company names).

This interest was spearheaded by Jack
Moffitt of Chesspark and given additional momentum by Dhris DiBona of Google. Furthermore, we’ve received vocal support for XMPP
improvements from Hydra Labs, Lucasfilm, Security Metrics, and individual sponsors.

In addition to these, we’ve seen some interesting names turn up on the mailing lists. There was a recent one from id Software.

There’s no doubt XMPP is getting hot, and companies are diving in.

Twisted Tomorrow

The email outlines the basic roadmap, and it’s pretty good, even if I did participate in its creation.

First, Duncan and others are planning to start writing tutorials and documentation for Twisted Words. This is great news for everyone, as this is probably the library’s biggest hurdle to adoption. It is also great timing as last week I spent some time preparing a few tutorials myself for this blog. I’ll be posting them soon.

Next, the Twisted team is very excited about putting a basic server into the code base so that a developer writing an XMPP client or component can test locally with minimal fuss.

There was also talk of moving the Palaver project into Twisted Words which would give Twisted’s XMPP server group chat support.

It’s exciting!

Learn More

We had a great discussion yesterday on IRC to kick off the effort, and you can read the transcripts. Duncan took some notes on XMPP server design which make for a good introduction to the area.

If you already use Twisted XMPP, let us know! We’d love the feedback and suggestions.

Trying Eclipse

When I first started trying out Java coding, I found it rather annoying.  I was using vi and command line builds.  I find that java takes a long time to compile compared to C and such, and hence it was a tedious and time consuming endeavour.  Later, Matt Tucker introduced me to IntelliJ’s IDEA (lots of people refer to it as IDEA, I refer to it as IntelliJ).  At first I found it a beast and was resistent to it (being that my only IDE experience had been Visual Studio), but soon I began to adore it.  I love the autocompletion, I like the automatic catching of compile bugs and such before even going to compile, and overall it made Java fun for me.  In fact it make me actually wish I had a good IDE for Python at the time (I was working on PyAIMt and PyICQt at the time).

 

I’d heard of Eclipse, but I had not really used it before.  I tried it once and couldn’t figure out how to open a project and in general nothing about it made sense to me.  I decided “why waste my time on this”.  Then came Flex Builder.  As you may or may not now, Eclipse based.  It’s kind of like Eclipse with a lot of the cooler options in Eclipse stripped out.  Generally I feel like it keeps getting in my way.  Lots of keystrokes don’t do what I want them to, in fact I can’t -find- keystrokes to do what I want in a lot of cases.  It seemed like autocompletion was a little “off”.  It wasn’t as awesome as IntelliJs.  It didn’t always seem to work at all.  Often I’d hit ., wait for a completion to come up, nothing, delete, try again, repeat until it really worked.  Now, with so many people enjoying Eclipse, I began to wonder why.  First off, IntelliJ ain’t free, but it is for open source projects.  It’s also waaaaay bigger in terms of resource usage.  So that might be one reason, IntelliJ is not easily accessible to everyone.  But I figured, maybe Flex Builder is giving me a warped perception of it.  I’d gotten some friends from work to walk me through some simple things like “opening an existing project” and such, so I know what to do at this point.  =)

 

So at this point, I figured I want to give Eclipse a real try.  I know it’s less resource intensive.  I decided I’d like to write down what I “require” my IDE to do at this point for me to like it and after I play with it some, see if it measures up to my pickiness:

  • autocompletion of methods on classes, with it displaying args for the methods in the drop down box
  • hungry backspace (if I hit delete I like it to wipe all of the whitespace in my way and get me back to something that’s real content)
  • instant evaluation of errors without having to compile first, ideally including warnings for things that “could be better” and “you realize you didn’t set this variable to anything, right?”
  • subversion integration, display of updated files compared to latest SVN checkout, easy commit of SVN files from IDE including picking and choosing what gets committed

Is that asking too much?  Maybe.  LOL  I’m spoiled by IntelliJ.  But I’m optimistic to give Eclipse a try and see how it feels, and if there are plugins to get what I want out of it.  Would I switch to it as my primary IDE?  Well who knows actually.  This isn’t necessarily an experiment to switch, but an experiment to see if I can learn to appreciate.  =)

Trying Eclipse

When I first started trying out Java coding, I found it rather annoying. I was using vi and command line builds. I find that java takes a long time to compile compared to C and such, and hence it was a tedious and time consuming endeavour. Later, Matt Tucker introduced me to IntelliJ’s IDEA (lots of people refer to it as IDEA, I refer to it as IntelliJ). At first I found it a beast and was resistent to it (being that my only IDE experience had been Visual Studio), but soon I began to adore it. I love the autocompletion, I like the automatic catching of compile bugs and such before even going to compile, and overall it made Java fun for me. In fact it make me actually wish I had a good IDE for Python at the time (I was working on PyAIMt and PyICQt at the time).

I’d heard of Eclipse, but I had not really used it before. I tried it once and couldn’t figure out how to open a project and in general nothing about it made sense to me. I decided “why waste my time on this”. Then came Flex Builder. As you may or may not now, Eclipse based. It’s kind of like Eclipse with a lot of the cooler options in Eclipse stripped out. Generally I feel like it keeps getting in my way. Lots of keystrokes don’t do what I want them to, in fact I can’t -find- keystrokes to do what I want in a lot of cases. It seemed like autocompletion was a little “off”. It wasn’t as awesome as IntelliJs. It didn’t always seem to work at all. Often I’d hit ., wait for a completion to come up, nothing, delete, try again, repeat until it really worked. Now, with so many people enjoying Eclipse, I began to wonder why. First off, IntelliJ ain’t free, but it is for open source projects. It’s also waaaaay bigger in terms of resource usage. So that might be one reason, IntelliJ is not easily accessible to everyone. But I figured, maybe Flex Builder is giving me a warped perception of it. I’d gotten some friends from work to walk me through some simple things like “opening an existing project” and such, so I know what to do at this point. =)

So at this point, I figured I want to give Eclipse a real try. I know it’s less resource intensive. I decided I’d like to write down what I “require” my IDE to do at this point for me to like it and after I play with it some, see if it measures up to my pickiness:

  • autocompletion of methods on classes, with it displaying args for the methods in the drop down box
  • hungry backspace (if I hit delete I like it to wipe all of the whitespace in my way and get me back to something that’s real content)
  • instant evaluation of errors without having to compile first, ideally including warnings for things that “could be better” and “you realize you didn’t set this variable to anything, right?”
  • subversion integration, display of updated files compared to latest SVN checkout, easy commit of SVN files from IDE including picking and choosing what gets committed

Is that asking too much? Maybe. LOL I’m spoiled by IntelliJ. But I’m optimistic to give Eclipse a try and see how it feels, and if there are plugins to get what I want out of it. Would I switch to it as my primary IDE? Well who knows actually. This isn’t necessarily an experiment to switch, but an experiment to see if I can learn to appreciate. =)

ejabberd 2.0.2 – Second bugfix release

There is a new bugfix release in the 2.0.x line: ejabberd 2.0.2.

In the last three months several bugs were found and fixed. As mentioned in the release notes, the main changes are:

  • Anti-abuse feature: client blacklist support by IP.
  • Guide: new section Securing ejabberd; improved usability.
  • LDAP filter optimisation: ability to filter user in ejabberd and not LDAP.
  • MUC improvements: room options to restrict visitors; broadcast reasons.

read more

UK Internet speeds versus Romania

Just returned from Romania.

In Bucharest 10mbit symmetrical connections!

What about Virgin Media? The UK fibre optic mother of all broadband?

Almost 20 mbit down, but not hardly half a mbit up? Since when is fibre optic asymmetrical?!

Finally, what’s the speed in the Regus serviced office from where I work?

Embarrassing! :(

Checkout the European internet speed statistics. Can’t find UK in the top EU countries by download speed, can you?

Cancelling my Three contract

3 Fair usage

So 18 months of my Three contract is almost up. In order to cancel, I must call exactly 1 month before the contract expires(10/11/2008), else it automatically renews(!). Reasons why:

  • The 3 Loyalty team just called me, to extend my contract with a tantalising “upgrade offer”. No thanks, I don’t want the new phone you’re offering.
  • The aforementioned cancellation policy is ridiculous. What happens if I need to be out of the country on the 10th of October? A one day window for a customer to cancel an 18 month contract without incurring fees should be against the law.
  • If I kept my old phone, I could get my “all you can eat” plan down from 35GBP to 28GBP a month…
  • I would have to sign up for at least another 18 12 months. No I want a rolling contract.
  • I could not get my phone unlocked. My phone must be unlocked as I am not going to use my (UK) 3 SIM in foreign countries like Israel.
  • Three’s customer service is abysmal. The loyalty team who just rang me is based in the UK. I wonder why…

So on the 10th of October I must ring up and ensure I get the:

  • PAC code so I can keep my number
  • Ask them to unlock my E65 so I can use it on other networks

So far the most attractive offer for a ‘SIM only’ rolling contract (one month cancellation) is from Vodafone. Some minutes&texts with 1G fair usage data for 22.50GBP a month. I must double check that. Anyway there is still a bit of time between now and November. I hope my Nokia E65 will last that long. I want to ideally buy an unlocked Android phone and failing that… an Iphone 3G. Nooo… I’d rather keep using my Symbian Nokia E65 out of principle!

I could get an EEEPC & a HSPDA dongle and use that. It’s basically that open platform everyone wants, except Skype (can it do SMS?) is proprietary & it doesn’t fit in your pocket. =)

British banking – the poor customer service industry

In the UK, people believe they have a thriving banking service industry. The British banking system is largely free of cost (except if you’re a business), however when you want to transfer money prepare to wait three working days. That’s archaic.



In the business I direct I typically have to do business all over the world. To do transfers in the EU or the USA, prepare to wait at least 5 working days, fill in forms physically at your bank and pay at least 20GBP. Call that service?

I decided to write to my Members of the European Parliament last March. Only one MEP, Caroline Lucas put forth my complaint to a member of the European Commission.

Five months later, I received a response from Charlie McCreevy, saying:

  1. Acknowledges UK cross border charges are “very high”. Though UK banks are free to charge whatever they like.
  2. I should “convince my bank” that I do not need to appear in person to make a international transfer.
  3. An EU directive 2007/64/EC should force UK banks to take at most two working days to complete an EU transfer by 2012.

So:

  1. 20GBP charge is not going away
  2. Hopefully UK banking Web applications will improve to add a cross-border transfer form. Though judging by the history of how awful British Web banking applications are… I am not hopeful. I also suspect stupid “anti-terrorism” laws have also made this process, extremely painful in the UK.
  3. Down from 5 days to 2 days by 2012… so carry on waiting

The British banking service industry needs to better serve its small Internet business banking customers. AFAIK Google checkout only operates in the US & UK. I would move my business bank account overnight to Europe if Google checkout operated in another EU country. I think we’re still very far from Economic Union. :/

ejabberd 2.0.2-beta1 – source code package for beta testing

Announcement of ejabberd 2.0.2-beta1

After several months of fixing bugs in ejabberd 2.0.x, a new maintenance release is planned for the end of this month.

Until then, we still have time to beta test the ejabberd source code. For this purpose ejabberd 2.0.2-beta1 is released.

Notice that this beta is only released as source code package, no binary installers are published now.

The download is: http://download.process-one.net/ejabberd/ejabberd-2.0.2-beta1.tar.gz

Finally, here are the release notes:

read more