Blog | frasergo.orghttps://www.frasergo.org/blog/2007-05-17T12:22:04+00:00BlogPlugging Skype and Pidgin together2007-05-17T12:22:04+00:00david/blog/author/david/https://www.frasergo.org/blog/2007/05/plugging-skype-and-pidgin-together/<p>After thinking about <a href="/blog/de-nuct-ifying-the-world/">de-nuctifying the world</a> I've started to investigate creating a <a href="http://pidgin.im">Pidgin</a> (formerly <a href="http://gaim.sourceforge.net/">Gaim</a>) plugin to control <a href="http://www.skype.com">Skype</a>. 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).</p>
<p>The <a href="https://developer.skype.com/Docs/ApiDoc/src">Skype API docs</a> 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.</p>
<p>There are a few docs on writing libpurple plugins for Pidgin but less comprehensively - the <a href="http://developer.pidgin.im/wiki/siege">author</a> of the Sametime plugin or the guy working on a <a href="http://developer.pidgin.im/wiki/MySpaceIM">MySpaceIM plugin</a> 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 <a href="http://trac.adiumx.com/ticket/247">Adium Skype plugin bug</a> as well.</p>
<p>On the way I read <a href="http://www.secdev.org/conf/skype_BHEU06.handout.pdf">Silver Needle in the Skype</a> 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</p>
<p>Well since it's 8 days till we leave Cape Town and head to Japan I'm not planning to actually <i>do</i> anything about this, but thought I'd write it up so I don't lose the links...</p>
<p><b>Update</b> (<tt>2008-03-06</tt>): There is now an excellent implementation of a <a href="http://myjobspace.co.nz/images/pidgin/">Skype Plugin for Pidgin</a> (Adium and other lib-purple apps too) developed by Eion Robb. Development at<a href="http://code.google.com/p/skype4pidgin/">skype4pidgin</a> on Google code.</p>De-nuct-ifying the world2007-05-14T22:25:54+00:00david/blog/author/david/https://www.frasergo.org/blog/2007/05/de-nuct-ifying-the-world/<p>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.</p>
<p>It started with <a href="http://www.skype.com">Skype</a>. Then <a href="http://www.xanga.com/">xanga</a>. And most recently it's been <a href="http://www.facebook.com/">facebook</a>. 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.</p>
<p>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.</p>
<p>So here's my attempt: A closed network utility under the control of one group that doesn't let you federate is called a <b>nuct</b> (a <b>N</b>etwork <b>U</b>tility <b>C</b>ontrol <b>T</b>rap - 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.</p>
<p>But no-one seems to be doing the work required to break these things open. We need a <i>nuct-cracker suite</i> (drum roll)</p>
<ul>
<li>open APIs to access data locked up in closed networks
<ul>
<li>a suite for different kinds of apps</li>
<li>social networks - same API to different ones</li>
</ul>
</li>
<li>plugins to open source open standards programs to interoperate with those network
<ul>
<li>e.g. plugin to Gaim to control Skype</li>
</ul>
</li>
<li>open source servers with open APIs to replace the closed networks</li>
<li>deploy and let the network effect take place</li>
</ul>
<p>The trouble with tech pseudo-values: they're not the <a href="http://www.desiringgod.org/ResourceLibrary/TopicIndex/10/1217_God_Is_the_Gospel/">gospel</a>. 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...</p>
<p>Is anyone doing something like this?</p>Caolan McNamara vs the Sun Global Special Store2006-10-12T17:11:00+00:00david/blog/author/david/https://www.frasergo.org/blog/2006/10/caolan-mcnamara-vs-the-sun-global-special-store/<a href="http://jroller.com/page/erAck">Eike Rathke</a> points out the new
<a href="http://globalspecials.sun.com/servlet/ControllerServlet?Action=DisplayPage&Locale=en_US&id=ProductDetailsPage&SiteID=sunstor&productID=50984800">Sun Weblog Publisher</a>
you can buy for $9.95 for blogging from within OpenOffice.org Writer
(or StarOffice, not that I know anyone who has that :-)).<br/>
Sounds <a href="http://blogs.linux.ie/caolan/2005/10/06/ooo-blogger/">remarkably</a>
<a href="http://blogs.linux.ie/caolan/2005/10/11/metaweblog-support/">familiar</a>.
I wonder if <a href="http://blogs.linux.ie/caolan/">Caolan</a> has thought of
trying to sell <a href="http://people.redhat.com/caolanm/oooblogger/">oooblogger</a>...Finding projects using Pootle with Google code search2006-10-05T21:58:00+00:00david/blog/author/david/https://www.frasergo.org/blog/2006/10/finding-projects-using-pootle-with-google-code-search/Well seeing as Google has release a <a href="http://www.google.com/codesearch">Code Search</a> on open source code, I
thought I would put it to good use: searching for
<a href="http://www.google.com/codesearch?as_q=pootle&as_filename=.po$">pootle</a>
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 :-)<br/>
Another nice way of showing how <a href="http://pootle.wordforge.org/">Pootle</a> is gaining traction...Pootle and Translate Toolkit Development 2006-06-132006-06-13T09:49:00+00:00david/blog/author/david/https://www.frasergo.org/blog/2006/06/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.<br/>
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:<br/>
<b>Pootle:</b>
Mostly ongoing architecture work, feels like we're heading towards a good
structure...
<ul>
<li>Wrote up discussion on
<a href="http://translate.sourceforge.net/wiki/pootle/metadata">putting metadata into a relational database</a>
</li>
<li>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).</li>
<li>Participated (minimally) in the debian discussions on direction of Pootle
and using databases</li>
<li>Fixing some minor bugs in the webserver etc</li>
</ul><br/>
<b>Translate Toolkit:</b>
Focused on escaping being correct and using the base classes
<ul>
<li>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</li>
<li>Fixed various failing tests for 0.9 (including fixing some modifications we
were doing to the minidom XML library)</li>
<li>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</li>
<li>Making properties to PO conversion use base class API more, sorting out
escaping there</li>
<li>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
<a href="http://bugs.wordforge.org/show_bug.cgi?id==114">bug 114</a></li>
<li>Made dtd classes inherit from base classes - could be made cleaner, but at
least the API is implemented now</li>
</ul>Stardust Nasty Macro Application for OpenOffice.org2006-06-02T09:18:00+00:00david/blog/author/david/https://www.frasergo.org/blog/2006/06/stardust-nasty-macro-application-for-openofficeorg/<a href="http://it.slashdot.org/article.pl?sid=06/06/01/1419216">Slashdot
reported</a> <a href="http://www.viruslist.com/en/weblog?weblogid=187738337">Kaspersky labs discovering</a>
the <a href="http://www.viruslist.com/en/viruses/encyclopedia?virusid=123066">Stardust "nasty macro application"</a>
for StarOffice/OpenOffice.org<br/>
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...<br/>
Not many technical details in the above links, but
<a href="http://stuff.techwhack.com/archives/2006/05/31/stardust/">TechWack</a>
says the following:<br/>
<blockquote>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.</blockquote><br/>
Of course (as paveljanik pointed out I hadn't said in the original version of
this entry), <b>this is all nothing to be afraid of</b>. 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!Data Entry in OpenOffice.org Calc2006-05-23T20:00:00+00:00david/blog/author/david/https://www.frasergo.org/blog/2006/05/data-entry-in-openofficeorg-calc/Pierre-André Galmes has a
<a href="http://devadventure.blogspot.com/2006/05/openofficeorg-calc-tip-typing-data.html">great
tip on typing data</a> in OpenOffice.org calc. Basically select an area and use tab to switch between cells.<br/>
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?<br/>
(I would have left a comment on his blog, but you have to start your own
Blogger blog to do that...)Forwarding a wireless network connection from Windows2006-05-15T14:14:00+00:00david/blog/author/david/https://www.frasergo.org/blog/2006/05/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:<br/>
First, use ssh -D to create a SOCKS proxy. That's fairly easy. Use
<a href="http://tsocks.sourceforge.net/">tsocks</a> 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).<br/>
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:
<a href="http://posadis.sourceforge.net/">Posadis</a>. 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.<br/>
I also tried using <a href="http://dproxy.sourceforge.net/">dproxy</a> which is
much lighter but although it compiles in cygwin fine it produces various
errors (misformed packets sent in response to queries etc).<br/>
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
<a href="http://www.microsoft.com/technet/community/columns/cableguy/cg0903.mspx">this article</a>'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).Partnership?2006-05-11T15:12:00+00:00david/blog/author/david/https://www.frasergo.org/blog/2006/05/partnership/<a href="http://www.apdip.net/news/fossdoc">The Code Breakers</a> looks like
an interesting documentary on open source software around the world...<br/>
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."<br/>
Very kind of them to include us as their partners voluntarily, I must say...Jingle a better VoIP standard than SIP2006-05-10T12:52:00+00:00david/blog/author/david/https://www.frasergo.org/blog/2006/05/jingle-a-better-voip-standard-than-sip/<p><a href="http://www.gerv.net">Gervase Markham</a> has a nice <a href="http://weblogs.mozillazine.org/gerv/archives/2006/05/voip_rant.html">rant</a> on how complicated SIP is.<br> 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).<br> 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.<br> I'm currently recommending <a href="http://talk.google.com/">Google Talk</a> to Windows-using friends in the hope that the best solution will win.<br> There are also a few emerging services for doing Jingle-to-Phone calling: <a href="http://www.gtalk2voip.com/">gtalk2voip</a> seems to work well, I've also seen <a href="http://www.jabphone.com/">jabphone</a>. gtalk2voip apparently now also support <a href="http://www.gtalk2voip.com/gtalk_service_tosip.html">SIP interoperability</a> (which is only described as currently free of charge).<br> And it seems like <a href="http://www.networkingpipeline.com/blog/archives/2006/04/asterisk_server.html">Asterisk Jingle support</a> is on the way too...<br> In terms of open source support, Patches / Branches are available for <a href="http://psi-im.org/wiki/Jingle_branch">Psi</a>, <a href="http://wiki.kde.org/tiki-index.php?page=Kopete+Jabber+Jingle">Kopete</a> and Gaim (although that one's a bit more tricky to get working). See my blog on <a href="/blog/jingle-builds-of-psi-and-kopete-for-fedora-core-4/">building Psi and Kopete on Fedora Core 4</a>. Neither were too complex, and that was a few months ago.<br> 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...)<br> There are a number of proposals out there to do more work as part of <a href="http://code.google.com/soc/">Summer of Code</a>, and I think it would be great if people signed up for these:<br> <a href="http://wiki.jabber.org/index.php/Summer_of_Code_2006#Jingle_Audio">Jingle Audio</a> <a href="http://wiki.jabber.org/index.php/Summer_of_Code_2006#Jingle_Video">Jingle Video</a> <a href="http://wiki.kde.org/tiki-index.php?page=KDE%20Google%20SoC%202006%20ideas#id530479">Kopete Jingle Support</a></p>How to do Credit Card Fraud in South Africa2006-05-09T13:22:00+00:00david/blog/author/david/https://www.frasergo.org/blog/2006/05/how-to-do-credit-card-fraud-in-south-africa/Just phoned <a href="http://www.debonairs.co.za/">Debonairs</a> to order some
Pizza. The conversation went something like this:<br/>
<b>Them:</b> Hi<br />
<b>Me:</b> Hi, I'd like to order some pizza<br />
<b>Them:</b> Hold the line please...<br />
(a 30 second pause)<br />
<b>Them:</b> Sorry about that, what's your phone number?<br />
<b>Me:</b> 000 0000 <i>(Gives phone number)</i><br />
<b>Them:</b>Great, is that David?<br />
<b>Me:</b> Yes<br />
<b>Them:</b> OK, would you like to order?<br />
<b>Me:</b> Three Large Pizzas, one vegetarian, one four seasons, and one sweet
and sour chicken<br />
<b>Them:</b> Great, are you paying by cash or credit card?<br />
<b>Me:</b> Credit Card<br />
<b>Them:</b> Is your credit card number 0000 0000 0000 0000? <i>(Reads out my
real credit card number</i><br />
<b>Me:</b> Yes <i>(pretending not to be surprised)</i><br />
<b>Them:</b> Expiry Date 01/06? <br />
<b>Me:</b> No, it's changed, it's 00/00<br />
<b>Them:</b> CVC number 000? <i>(Gives out my previous CVC number)</i> <br />
<b>Me:</b> No, that's changed too, it's 000<br />
<b>Them:</b> Great, your order will be with you in thirty to forty
minutes<br /><br/>
Hmmmm.....Sourceforge CVS woes and Pootle templatisation2006-04-05T09:34:00+00:00david/blog/author/david/https://www.frasergo.org/blog/2006/04/sourceforge-cvs-woes-and-pootle-templatisation/This latest Sourceforge CVS outage has been most unfortunate.
We tried to do a bug day aroud the one the week before, which was also
unfortunate... Now for almost a week we haven't had any CVS access, and we had
planned a release in that time of Pootle and the translate toolkit.<br/>
Good thing I had a script getting the CVS tarballs as we could set that up as
an alternate (read-only) root. I then set up a different directory I used off
that root and maintained a queue of patches... which I applied this morning as
follows:<br/>
<code>
for f in `ls offline-patches/*.patch -t -r`
do
patch -p0 < $f
echo $f
for g in `lsdiff $f`
do
grep `basename "$g"` `dirname "$g"`/CVS/Entries || cvs add $g
done
cvs-commit `lsdiff $f`
done
</code><br/>
I've now basically completed converting
<a href="http://translate.sourceforge.net/wiki/pootle/">Pootle</a> to work
using <a href="http://kid.lesscode.org/">Kid templates</a> which makes the
code a lot cleaner (was using an old object-based HTML construction set).<br/>
A few things to sort out (spell-checking system), but it mostly works beautifully.
The UI is exactly the same as before, but we should now be able to improve it
without messing around with the Python code.<br/>
This is all on the Pootle-kid-conversion branch, and you'll need at least
version 0.7.6 of <a href="http://jtoolkit.sourceforge.net">jToolkit</a> to run
it. Other requirements have increased -
<a href="http://kid.lesscode.org/">Kid</a> requires
<a href="http://effbot.org/downloads/#elementtree">ElementTree</a> too. This
is now documented in the
<a href="http://translate.sourceforge.net/wiki/pootleadmin">pootleadmin</a>
page on the wiki.<br/>
I've been wanting to get this going for ages, so it's nice to finally have it
done.OpenOffice.org Recovery Dialog in Firefox2006-03-04T17:17:00+00:00david/blog/author/david/https://www.frasergo.org/blog/2006/03/openofficeorg-recovery-dialog-in-firefox/Was amused when I tried to open a Word document from webmail.
It started in a Firefox window with an embedded OpenOffice.org instance
but obviously something went wrong as it showed up a recovery dialog.<br/>
After a few tries it opened a normal OpenOffice.org window that worked fine.
Puzzling...Zimbra Mail Discoveries2006-03-03T23:51:00+00:00david/blog/author/david/https://www.frasergo.org/blog/2006/03/zimbra-mail-discoveries/<a href="http://www.zimbra.com">Zimbra</a> is a fantastic open source mail
server. It basically wraps Postfix, and has a beautiful webmail interface
including a great calendar system. Yes, AJAX, buzzwords, all apply.<br/>
I've been wanting to migrate my mail into an IMAP server with a nice webmail
frontend for a while. The advantages: being able to use mail from more than
one machine, including my laptop when away and disconnected, other members of
the family being able to use mail, etc, etc. Zimbra seemed like the best fit
I'd seen since my last set of investigations (which incorporated dovecot,
Hula, etc, etc).<br/>
At first I thought I'd just try out moving my mail in and see what problems I
hit. By the time I had that done, I thought it would be a waste of time to
retreat so I advanced headlong into the fray... Thus eating up a week of time
or so, in which I was mostly unable to do very much with mail or anything
else. (I should have thought beforehand, "I'm not really a mail admin
person").<br/>
Anyhow, at the end of the process I think its been very successful and am very
happy with Zimbra. This post is basically a summary of what I've learnt in the
hope that other people will try out Zimbra and I will feel relief at the sense
of not having to go through that again...<br/>
I had around 270000 messages in my Mozilla folder hierarchy, some dating back
to around 1996. Total size about 4GB. This meant that the actual process of
copying the mails was fairly cumbersome, especially if I wanted to check that
everything copied OK (don't want to lose mail in the process!)<br/>
I installed Zimbra on Fedora Core 4, on my normal development / server machine.
Don't be too concerned about the admonition to use a separate server, you can
run Zimbra happily alongside existing instances of MySQL, Apache etc (Zimbra
installs its own, hopefully in the future you can integrate it into your
existing apps). I just needed to set Zimbra to only serve https, then I can
access webmail etc on that port and my normal Apache takes care of port 80.<br/>
I then ended up developing some Python code to be able to do the things I
wanted to fix up my mailbox etc. I've called this
<a href="http://davidf.sjsoft.com/pyzimbra/">pyzimbra</a>. These don't really
consist of bindings to Zimbra code yet, but rather code to interact with the
database, the message store, etc.<br/>
Issues encountered included:<br/>
<a href="http://bugzilla.zimbra.com/show_bug.cgi?id=6320">Messages that refused to be copied</a> (like finding a needle in a haystack), - I still have to resolve this one, only a dozen or so.<br/>
Dates on messages that didn't have proper date headers came out as 1st Jan
1970. Dates in the webmail view showed the time the message was copied rather than its original time. To fix these problems I wrote modules to connect to the zimbra database, and find the message file corresponding to each message in the database. I then checked if the message lacked a Date header and gratuitously added one based on other headers like Received (I'm sure this is naughty...). I then update the received date in the database (and alter the content-length if I added a date header). It was quite fun finding my way around the database etc, and the modules for doing this are fairly generic.<br/>
I'd also like to retrieve the Mozilla Flags (replied to etc) but unfortunately
they don't get stored in the headers on the IMAP server after copying so that
would involve finding the original message in the Mozilla mailbox that
corresponds to the one in the Zimbra store.<br/>
Migrating my Mozilla mail filters to Zimbra: Zimbra uses
<a href="http://en.wikipedia.org/wiki/Sieve_%28mail_filtering_language%29">Sieve</a>
for mail filtering. There is a nice utility for converting Mozilla's msgFilterRules.dat
to a Sieve script (Javascript in a web page - use "/" as a separator in the option):
<a href="http://www.folgmann.de/en/webapps/mozilla2sieve.html">mozilla2sieve</a>.
The Sieve script is stored in an LDAP attribute that I couldn't seem to access.
You can access it via the zmprov utility, but there are
<a href="http://bugzilla.zimbra.com/show_bug.cgi?id=2430">caching problems</a>.<br/>
The more serious issues are that Zimbra's Sieve implementation uses regular
expressions, which makes havoc when you try and download a few thousand
messages that have been queuing up and none of them get filtered - it will
only display errors with the script when it actually tries to filter them.
Look out for [ and *!!!
Interestingly the Webmail Filters page basically deals with an XML
representation of the Sieve script that it sends back and forth to the server.<br/>
If you're just running a few accounts through Zimbra and your main domain is hosted elsewhere,
the <a href="http://wiki.zimbra.com/index.php?title=Split_Domain">Split Domain</a>
article on the wiki is really helpful.<br/>
Since I'm on an ADSL connection with a changing IP address, I'm using
fetchmail to retrieve my mail periodically. Refused SPAM messages give a 501 response
to the SMTP instruction.<br/>
Finally I wrote some nice backup scripts and utilities. zimbra/scripts/linkfolders.py
is quite neat - it creates a directory structure on disk like the Folder
structure in Zimbra, and symlinks the messages to their home on the message
store. Nice for working out disk allocation, and as an alternate backup
mechanism.Translate Toolkit 0.8 is out2006-02-20T19:33:00+00:00david/blog/author/david/https://www.frasergo.org/blog/2006/02/translate-toolkit-08-is-out/Something I have been promising for many months has finally happened...
We've been going backwards and forwards with so-called "release candidates"
for 0.8 that were really betas or new versions, I managed eight!<br/>
The combined effect of this and doing the last release candidate when Pavel
was too busy with OOo 2.0.2 is that nobody's complained about the last one.<br/>
But we did have a bug day, add lots of tests and fix lots of bugs. There's a
new branch for the 0.8 series if any bug fixes are needed, so please report if
you find any problems.<br/>
New work on the HEAD branch will focus on the wordforge project.<br/>
This is just a quick announcement for those interested as we've got another
power failure - the Western Cape is having fun with those at the moment :-)A cool machine is a happy machine2006-02-17T15:44:00+00:00david/blog/author/david/https://www.frasergo.org/blog/2006/02/a-cool-machine-is-a-happy-machine/I have been having repeated problems where my desktop just powers off if its
overloaded. Its an Athlon XP 2400 and the CPU temperature was showing 79
degrees C and up (sometimes 129 degrees but I'm sure that was a bad
reading...)<br/>
This usually happened when I was running two openoffice.org builds
simultaneously (HEAD and ooo-2-0-1-branch) - so I would leave them running
overnight, come back and the morning and the machine was off...<br/>
I finally got fed up and decided to investigate properly, and found an immense
amount of dust between the heat sink and the CPU fan. After dusting that off
(couldn't possible have been providing any cooling like that), the average idle temperature has dropped from 63 degrees to around 50 degrees, and the temperature under load to around 55. Much nicer and will save me much frustration :-)A positive dental experience2006-02-14T17:09:00+00:00david/blog/author/david/https://www.frasergo.org/blog/2006/02/a-positive-dental-experience/Danielle and I went to the dentist today for the first time in around 10
years. And it was a positive experience! And I didn't come away feeling
guilty! Yay!A great leap to freedom2006-02-03T09:59:00+00:00david/blog/author/david/https://www.frasergo.org/blog/2006/02/a-great-leap-to-freedom/We had a great <a href="http://translate.sourceforge.net/wiki/toolkit/bugday-0-8">Bug Day</a>
for the <a href="http://translate.sourceforge.net/wiki/toolkit/index">Translate Toolkit</a>.<br/>
I wrote little scripts to track bug and test status on different machines,
giving these results:<br/>
<b>Bug resolution</b>
<pre>
10:20 NEW 23 ASSIGNED 2 RESOLVED 21 VERIFIED 3 TOTAL 50
10:40 NEW 22 ASSIGNED 2 RESOLVED 22 VERIFIED 3 TOTAL 50
11:00 NEW 21 ASSIGNED 2 RESOLVED 23 VERIFIED 3 TOTAL 50
11:20 NEW 19 ASSIGNED 1 RESOLVED 26 VERIFIED 3 TOTAL 50
12:20 NEW 17 ASSIGNED 1 RESOLVED 28 VERIFIED 3 TOTAL 50
14:20 NEW 17 ASSIGNED 1 RESOLVED 27 VERIFIED 3 TOTAL 50
14:40 NEW 15 ASSIGNED 1 RESOLVED 29 VERIFIED 3 TOTAL 50
</pre><br/>
So we basically resolved 14 bugs, nice progress.<br/>
<b>Test status</b>
<pre>
09:20 83 passed, 2 failed
10:00 87 passed, 2 failed
10:20 90 passed, 1 failed
10:40 93 passed
11:00 92 passed, 1 failed
11:20 93 passed
11:40 95 passed
17:20 95 passed
17:32 99 passed, 1 failed
</pre><br/>
So we added 15 new tests, all except one of which pass (Dwayne added it
later), and hopefully we can fix that soon.<br/>
A lot of these problems have been hanging around for ages, and having a bug
day was a nice way to get everyone together and finish them off. Thanks to all
who participated!<br/>
The bug day was called <b>Long Walk to Freedom</b> but I concluded we made a
<b>Great Leap Forward</b> :-). The main point behind all of this is to release
version 0.8 (which we've branched for) as a stable version that everyone's
happy with, and then move on with other plans... In the past we've been doing
too much normal development work in between "release candidates", with the
result that things have been broken, which means this has dribbled on for
months. Unit tests are a nice aid to making sure we don't break things.<br/>
Once the final test is fixed, I'll do a release candidate, make sure
everyone's happy, then release 0.8 (I hope I don't find myself reading this in
a few months time without this done!)<br/>
The new things we're moving on to are encapsulated in the
<a href="http://translate.sourceforge.net/wiki/wordforge/index">WordForge</a>
project, and I'm quite excited about them. It should make a big difference to
open source localisation projects in the future.Zimbra messaging server2006-01-27T09:41:00+00:00david/blog/author/david/https://www.frasergo.org/blog/2006/01/zimbra-messaging-server/I've set up a copy of <a href="http://www.zimbra.com/">Zimbra</a>, an open
source messenging server with a beautiful AJAX
<a href="http://www.zimbra.com/products/hosted_demo.php">webmail and calendar client</a>
on a local machine. Planned a while ago to move my mail to an IMAP server with a nice
webmail frontend so it can be accessed from more than one place, and Zimbra seems
like the best of the bunch.<br/>
The setup at first seems annoying because they expect a standalone server, and have their
own copies of MySQL, Apache, PostFix, you name it ... Then I realised you can run all this
alongside your normal software, as long as you set Apache to run on a different port.
I guess it makes sense for them as a company that's really producing a commercial product
(they sell a Network Edition which includes non-free Outlook connectors etc) and it could
always be repackaged as desired.<br/>
I also found that <a href="http://ejabberd.jabber.ru/">ejabberd</a> supports
multiple distributed servers with failover which is pretty cool, and I might
set that up myself...<br/>
Now it would be really nice if you could have distributed IMAP servers that
automatically connected and synchronized in a similar way, but that's a fairly hard problem.
Basically I'd want to run a local copy of the IMAP server on my laptop, my
local server, and a master copy on the mail server, so that if any of them are
disconnected from each other, mail is still available.
<a href="http://quux.org/devel/offlineimap/">OfflineIMAP</a> might be enough
though (although I can't honestly believe that its actually a Gopher site!).Jingle builds of Psi and Kopete for Fedora Core 42006-01-27T09:06:00+00:00david/blog/author/david/https://www.frasergo.org/blog/2006/01/jingle-builds-of-psi-and-kopete-for-fedora-core-4/Was excited around Christmas to see
<a href="http://www.jabber.org/press/2005-12-15.shtml">the Jingle signalling protocol</a>
for Voice over IP through Jabber, which was jointly authored by Google and JSF
people and is used by <a href="http://talk.google.com/">Google Talk</a>.<br/>
Google also released an open source library for doing Jingle called
<a href="http://googletalk.blogspot.com/2005/12/what-is-libjingle.html">libjingle</a>
This makes it even easier for all the free software instance messaging clients
to get the spec implemented quickly, and they all seem to have started doing
that. Now that Google Talk has also turned on
<a href="http://googletalk.blogspot.com/2006/01/xmpp-federation.html">XMPP Federation</a>,
this looks like a blast for open protocols to win the day...<br/>
But when I looked at the roadmaps of
<a href="http://gaim.sourceforge.net">Gaim</a> and <a href="http://psi-im.org/">Psi</a>,
it became clear that although implementations are there, it'll take a while
for these to reach general release.<br/>
Finally got round to trying to build some for myself, and found that they
actually seem to work quite well (at least on my local network :-)).<br/>
<a href="http://psi-im.org/wiki/Jingle_branch">Psi's jingle branch</a> built
fairly easily once I had the right dependencies etc.<br/>
I couldn't find instructions on building Gaim with Jingle support, it seems
like they are still working on integrating it (in the
<a href="http://gaim-vv.sf.net">Gaim-VV</a> project), and I liked using Gaim
because I can do IRC, Jabber etc all from the same client...<br/>
So I found <a href="http://kopete.kde.org">Kopete</a> which is similarly
functional and has
<a href="http://wiki.kde.org/tiki-index.php?page=Kopete+Jabber+Jingle">Jingle support</a>
in their development branch.<br/>
Building this as an rpm took more work because on Fedora at least, its part of
kdenetwork which is fairly big. Eventually got it working after learning a
fair bit about spec files... (rant: lots of "HOWTO" documentation, not enough
reference documentation...)<br/>
The resulting RPMS, SRPMS and specfiles are all at
<a href="http://davidf.sjsoft.com/files/jingle/">http://davidf.sjsoft.com/files/jingle/</a>
... of course I should create a proper package repository but that can wait
for another day...