17 May 2007 12:22 PM SAST

Plugging Skype and Pidgin together

After thinking about de-nuctifying the world I've started to investigate creating a Pidgin (formerly Gaim) plugin to control Skype. This means you're still using a closed network, but from an open program, which makes migrating easier (and allows people to try multiple networks from the same interface).

The Skype API docs are pretty good and it looks like the API can support at least controlling status, sending and receiving text messages, and making and receiving phone calls. So in principle a Skype plugin for Pidgin is a possibility.

There are a few docs on writing libpurple plugins for Pidgin but less comprehensively - the author of the Sametime plugin or the guy working on a MySpaceIM plugin probably know exactly how it works (the MySpaceIM plugin is a Google Summer of Code project that fits in with my idea very nicely). There is a C Plugin HOWTO in the source code which should get things started. Some ideas in the Adium Skype plugin bug as well.

On the way I read Silver Needle in the Skype which is an article on reverse-engineering Skype and using it - very interesting tech reading... but a shame they haven't made the code available

Well since it's 8 days till we leave Cape Town and head to Japan I'm not planning to actually do anything about this, but thought I'd write it up so I don't lose the links...

PS This blog doesn't currently have a comment mechanism so email comments are welcome to davidf at sjsoft dot com.

Posted by David Fraser | Permanent Link | Categories: tools, development, ideas, opensource

14 May 2007 10:25 PM SAST

De-nuct-ifying the world

I've had a strange experience over the past year, and it's getting more common. As a developer, I used to be the one recommending software/tech things to my friends. Now all my non-technical friends have started recommending things to me that they have discovered on the intar-web. The trouble is, they're almost all closed systems - apparently free, but under the control of one group.

It started with Skype. Then xanga. And most recently it's been facebook. The speed with which facebook has spread amongst various of our friends is impressive. Some things about it are really good too - they're beginning to understand the sorts of things you can do with the Web.

But it's hard to explain that these sorts of things are the point of the Web as a Whole, rather than being a neat idea that can only work on a particular site. No-one understands the negative effects of a closed network. Or even more, the potential positive effects they're missing. Part of the problem is vocabulary - if you don't even have words to encapsulate the concepts to communicate, it's hard to argue for something. Open and closed networks are clear concepts to me but it's nice to embellish them somewhat.

So here's my attempt: A closed network utility under the control of one group that doesn't let you federate is called a nuct (a Network Utility Control Trap - don't let them innuct you into it). If you encounter one, you need a way of interacting with it that doesn't suck you in. The point of closed systems is of course, to prevent this.

But no-one seems to be doing the work required to break these things open We need a nuct-cracker suite (drum roll)

A simple start on easy ways to start breaking things open:

  • open APIs to access data locked up in closed networks
    • a suite for different kinds of apps
    • social networks - same API to different ones
  • plugins to open source open standards programs to interoperate with those networks
    • e.g. plugin to Gaim to control Skype
  • open source servers with open APIs to replace the closed networks
  • deploy and let the network effect take place


The trouble with tech pseudo-values: they're not the gospel. So on the one hand there comes a limit to avoiding things that would help good friendships because I think they could be done better. But more simply, I don't have enough time to actually create the online world the way I want it to be...

Is anyone doing something like this?

Posted by David Fraser | Permanent Link | Categories: ideas, opensource

12 October 2006 5:11 PM SAST

Caolan McNamara vs the Sun Global Special Store

Eike Rathke points out the new Sun Weblog Publisher you can buy for $9.95 for blogging from within OpenOffice.org Writer (or StarOffice, not that I know anyone who has that :-)).

Sounds remarkably familiar. I wonder if Caolan has thought of trying to sell oooblogger...

Posted by David Fraser | Permanent Link | Categories: openoffice, opensource

05 October 2006 9:58 PM SAST

Finding projects using Pootle with Google code search

Well seeing as Google has release a Code Search on open source code, I thought I would put it to good use: searching for pootle in filenames ending with .po helps you to quickly find some projects that are using Pootle to edit their PO files, and you can even see which version :-)

Another nice way of showing how Pootle is gaining traction...

Posted by David Fraser | Permanent Link | Categories: tools, ideas, opensource

13 June 2006 9:49 AM SAST

Pootle and Translate Toolkit Development 2006-06-13

There's been lots of discussion recently about Pootle on the debian lists, the direction it should take, whether to use a database to store translations, etc... It may be a nice idea to add a database as one of the backend options but keeping with handling the complexity of translation files has been important. Seems like a good consensus to this effect is emerging; it's nice to have more interest in the project.

I've tried to keep coding rather than get too drawn into the discussion, and this is what I've been up to the last week:

Pootle: Mostly ongoing architecture work, feels like we're heading towards a good structure...
  • Wrote up discussion on putting metadata into a relational database
  • Base class migration work on the Pootle-locking-branch: made pootleunit and pootlefile encapsulate a pounit and pofile respectively rather than inheriting from them. This will make it possible to use other storage classes (although there is still more cleaning up needed where we use PO-specific methods).
  • Participated (minimally) in the debian discussions on direction of Pootle and using databases
  • Fixing some minor bugs in the webserver etc


Translate Toolkit: Focused on escaping being correct and using the base classes
  • Sorted out escaping in dtds - it doesn't exist. So we will no longer support \' or \n having a special meaning in dtd files, being translated to \n in a PO file etc
  • Fixed various failing tests for 0.9 (including fixing some modifications we were doing to the minidom XML library)
  • Added some tests for dtd quoting to HEAD - currently we allow opening a quote again after it is shut (<!ENTITY name "first part""second part">) which is invalid according to the spec - just for correctness, haven't hit any errors here
  • Making properties to PO conversion use base class API more, sorting out escaping there
  • Discussion with Axel from Mozilla - for 0.9 the Mozilla .properties files will be output in proper UTF-8, not with \uNNNN escaping (although that will still be understood as input. See bug 114
  • Made dtd classes inherit from base classes - could be made cleaner, but at least the API is implemented now

Posted by David Fraser | Permanent Link | Categories: tools, development

02 June 2006 9:18 AM SAST

Stardust Nasty Macro Application for OpenOffice.org

Slashdot reported Kaspersky labs discovering the Stardust "nasty macro application" for StarOffice/OpenOffice.org

This is not really a virus, it is a nasty macro application. If you are foolish enough to agree to run it without checking what it does, you will suffer the consequences...

Not many technical details in the above links, but TechWack says the following:

Antivirus firm Kaspersky is calling the virus "Stardust". This virus is basically contained in a StarOffice document that uses macros and then infects a global template, which is used by the application to generate new documents. If a victim opens the file carrying this virus, Stardust copies it into the global template and all contained in a StarOffice document that uses macros and then infects a global template gets infected by it used by that copy of the software.


Of course (as paveljanik pointed out I hadn't said in the original version of this entry), this is all nothing to be afraid of. I only linked the above information because there are no actual details about this perceived problem, but I'm not saying it's actually a serious problem!

Posted by David Fraser | Permanent Link | Categories: openoffice

23 May 2006 8:00 PM SAST

Data Entry in OpenOffice.org Calc

Pierre-André Galmes has a great tip on typing data in OpenOffice.org calc. Basically select an area and use tab to switch between cells.

The only problem - I can't see how to get it to work nicely with the AutoComplete that happens when you start typing the same text as an entry above. Pressing Enter or arrow key all lose the selection, and pressing Tab gives a beep. Any ideas?

(I would have left a comment on his blog, but you have to start your own Blogger blog to do that...)

Posted by David Fraser | Permanent Link | Categories: openoffice

15 May 2006 2:14 PM SAST

Forwarding a wireless network connection from Windows

Trying to proxy network traffic through my wireless network on my laptop which is unfortunately running Windows... (oh, the irony)... these are handy hinters:

First, use ssh -D to create a SOCKS proxy. That's fairly easy. Use tsocks to make any application use the proxy. (Or, try and battle with why GAIM isn't listening to the Gnome network preferences, then get fed up and run it through tsocksify).

Next, its helpful to have a caching DNS server. I finally found a good one for Windows that actually works natively (via cygwin) and doesn't crash: Posadis. Simply start it up and it functions as a DNS cache. They also include some basic DNS querying tools that are missing from the Windows command line.

I also tried using dproxy which is much lighter but although it compiles in cygwin fine it produces various errors (misformed packets sent in response to queries etc).

Finally you need to let the Windows machine know to use the wireless network as its default route rather than the LAN. To do this follow this article's recommendations to adjust the Automatic metric under Advanced TCP/IP settings for each network connection (lower is higher priority) otherwise Windows XP will always select the LAN as the default network. (You can check which is default by saying 'route print' and seeing what the default gateway is).

Posted by David Fraser | Permanent Link | Categories: tools

11 May 2006 3:12 PM SAST

Partnership?

The Code Breakers looks like an interesting documentary on open source software around the world...

But the description contains an hilarious quote: According to Jonathan Murray of Microsoft "The Open Source community stimulates innovation in software, it's something that frankly we feel very good about and it's something that we absolutely see as being a partnership with Microsoft."

Very kind of them to include us as their partners voluntarily, I must say...

Posted by David Fraser | Permanent Link | Categories: opensource

10 May 2006 12:52 PM SAST

Jingle a better VoIP standard than SIP

Gervase Markham has a nice rant on how complicated SIP is.

Jingle on Jabber is a much nicer solution if you're not a telecommunications person yourself. It's an open standard that's much simpler than SIP which makes it easier to implement, and there are open source libraries available that provide support, and it is Jabberish which is sensible and makes all the confederation work nicely. It addresses some of the technical issues that make people seem to like Skype (getting through firewalls etc) without having some of its headaches (proxying other people's phone calls through your computer, a totally mad idea).

The main issue is that the only current final-release program available with support is Google Talk; it's not open source and its only available on Windows.

I'm currently recommending Google Talk to Windows-using friends in the hope that the best solution will win.

There are also a few emerging services for doing Jingle-to-Phone calling: gtalk2voip seems to work well, I've also seen jabphone. gtalk2voip apparently now also support SIP interoperability (which is only described as currently free of charge).

And it seems like Asterisk Jingle support is on the way too...

In terms of open source support, Patches / Branches are available for Psi, Kopete and Gaim (although that one's a bit more tricky to get working). See my blog on building Psi and Kopete on Fedora Core 4. Neither were too complex, and that was a few months ago.

Unfortunately all of these patches/branches are languishing in we'll-finish-that-at-an-undetermined-date mode, as the projects are busy doing other things and so on. Yet they all seemed to work reasonably well, a lot of the remaining work is cleanup and merging to the main branch etc. (The one most likely to emerge in the official version is Kopete as its in 0.12, which is in Beta. But I'm not sure whether it'll be included in official builds on various distros...)

There are a number of proposals out there to do more work as part of Summer of Code, and I think it would be great if people signed up for these:

Jingle Audio Jingle Video Kopete Jingle Support

Posted by David Fraser | Permanent Link | Categories: opensource