<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rdf:RDF
[
<!ENTITY % HTMLlat1 PUBLIC
 "-//W3C//ENTITIES Latin 1 for XHTML//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">
]>
<rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:admin="http://webns.net/mvcb/">
<channel rdf:about="http://www.translate.org.za/blogs/david">
<title>ideas</title>
<link>http://www.translate.org.za/blogs/david/archives/cat_5/index.html</link>
<description>David Fraser</description>
<dc:language>en-za</dc:language>
<dc:creator>David Fraser</dc:creator>
<dc:date>2007-05-17T18:00:28+02:00</dc:date>
<admin:generatorAgent rdf:resource="http://nanoblogger.sourceforge.net" />
<items>
<rdf:Seq>
<rdf:li rdf:resource="http://www.translate.org.za/blogs/david/archives/2007/05/17/T12_22_04/index.html" />
<rdf:li rdf:resource="http://www.translate.org.za/blogs/david/archives/2007/05/14/T22_25_24/index.html" />
<rdf:li rdf:resource="http://www.translate.org.za/blogs/david/archives/2006/10/05/T21_58_13/index.html" />
<rdf:li rdf:resource="http://www.translate.org.za/blogs/david/archives/2006/03/03/T23_51_45/index.html" />
<rdf:li rdf:resource="http://www.translate.org.za/blogs/david/archives/2005/12/08/T11_42_37/index.html" />
<rdf:li rdf:resource="http://www.translate.org.za/blogs/david/archives/2005/11/29/T10_31_13/index.html" />
<rdf:li rdf:resource="http://www.translate.org.za/blogs/david/archives/2004/07/06/T16_55_01/index.html" />
<rdf:li rdf:resource="http://www.translate.org.za/blogs/david/archives/2004/07/06/T12_26_42/index.html" />
</rdf:Seq>
</items>
</channel>
<item rdf:about="http://www.translate.org.za/blogs/david/archives/2007/05/17/T12_22_04/index.html">
<link>http://www.translate.org.za/blogs/david/archives/2007/05/17/T12_22_04/index.html</link>
<title>Plugging Skype and Pidgin together</title>
<dc:date>2007-05-17T12:22:04+02:00</dc:date>
<dc:creator>David Fraser</dc:creator>
<dc:subject>tools, development, ideas, opensource</dc:subject>
<description>
<![CDATA[After thinking about <a href="http://www.translate.org.za/blogs/david/archives/2007/05/14/T22_25_24/index.html">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).
<br /><br />
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.
<br /><br />
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.
<br /><br />
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
<br /><br />
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...
<br /><br />
PS This blog doesn't currently have a comment mechanism so email comments are
welcome to davidf <i>at</i> sjsoft <i>dot</i> com.]]>
</description>
</item>
<item rdf:about="http://www.translate.org.za/blogs/david/archives/2007/05/14/T22_25_24/index.html">
<link>http://www.translate.org.za/blogs/david/archives/2007/05/14/T22_25_24/index.html</link>
<title>De-nuct-ifying the world</title>
<dc:date>2007-05-14T22:25:24+02:00</dc:date>
<dc:creator>David Fraser</dc:creator>
<dc:subject>ideas, opensource</dc:subject>
<description>
<![CDATA[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.
<br /><br />
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.
<br /><br />
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.
<br /><br />
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.
<br /><br />
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)
<br /><br />
A simple start on easy ways to start breaking things open:
<br /><br />
<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
networks
    <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>
<br /><br />
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...
<br /><br />
Is anyone doing something like this?]]>
</description>
</item>
<item rdf:about="http://www.translate.org.za/blogs/david/archives/2006/10/05/T21_58_13/index.html">
<link>http://www.translate.org.za/blogs/david/archives/2006/10/05/T21_58_13/index.html</link>
<title>Finding projects using Pootle with Google code search</title>
<dc:date>2006-10-05T21:58:13+02:00</dc:date>
<dc:creator>David Fraser</dc:creator>
<dc:subject>tools, ideas, opensource</dc:subject>
<description>
<![CDATA[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  <img src="http://www.translate.org.za/blogs/david/moods/smilies/smiley.gif" alt=":-)" />
<br /><br />
Another nice way of showing how <a href="http://pootle.wordforge.org/">Pootle</a> is gaining traction...]]>
</description>
</item>
<item rdf:about="http://www.translate.org.za/blogs/david/archives/2006/03/03/T23_51_45/index.html">
<link>http://www.translate.org.za/blogs/david/archives/2006/03/03/T23_51_45/index.html</link>
<title>Zimbra Mail Discoveries</title>
<dc:date>2006-03-03T23:51:45+02:00</dc:date>
<dc:creator>David Fraser</dc:creator>
<dc:subject>ideas, opensource</dc:subject>
<description>
<![CDATA[<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 /><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 /><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 /><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 /><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 /><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 /><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 /><br />
Issues encountered included:
<br /><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 /><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 /><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 /><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 /><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 /><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 /><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 /><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.]]>
</description>
</item>
<item rdf:about="http://www.translate.org.za/blogs/david/archives/2005/12/08/T11_42_37/index.html">
<link>http://www.translate.org.za/blogs/david/archives/2005/12/08/T11_42_37/index.html</link>
<title>Where's the beautiful Nivo from Ndiyo?</title>
<dc:date>2005-12-08T11:42:37+02:00</dc:date>
<dc:creator>David Fraser</dc:creator>
<dc:subject>ideas</dc:subject>
<description>
<![CDATA[In about May I read about <a href="http://www.ndiyo.org">Ndiyo</a>, a
non-profit that's making ultra-thin clients called <a
href="http://www.ndiyo.org/intro/how">Nivo</a> (Network-In, Video-Out).
They're basically designing an FPGA that can support VNC or RDP and so creates
a tiny little box that has a network connection, keyboard and mouse
connectors, and a VGA out. Some of the team are the original VNC developers,
which must help.
<br /><br />
Absolutely brilliant idea. But the news since then has been silent. They're
supposed to be working on a new version offering <a
href="http://www.ndiyo.org/systems">local USB ports</a> etc, which would be an
added bonus. Quentin Stafford-Fraser, one of the founders,
<a href="http://www.statusq.org/archives/2005/11/18/842/">blogged about it recently</a>,
but that's all. <a
href="http://www.newnhamresearch.com/news/index.htm">Newnham Research</a>, the
company they work with, is intentionally keeping a low profile...
<br /><br />
I think it would be great if they made this available in its current form
(costing less than 100 GBP to assemble at low volume!) or at least posted
more news rather than disappearing into a developing hole.
<br /><br />
Update (2006-02-17): more news has indeed emerged, though its not yet commercially
available they're having trials (including in South Africa!) and seem to be
doing cool stuff...]]>
</description>
</item>
<item rdf:about="http://www.translate.org.za/blogs/david/archives/2005/11/29/T10_31_13/index.html">
<link>http://www.translate.org.za/blogs/david/archives/2005/11/29/T10_31_13/index.html</link>
<title>Interesting articles...</title>
<dc:date>2005-11-29T10:31:13+02:00</dc:date>
<dc:creator>David Fraser</dc:creator>
<dc:subject>openoffice, language, tools, ideas</dc:subject>
<description>
<![CDATA[Some interesting articles to read when I came back from holiday. It seems Swahili free software stuff is moving forward in lots of fronts. Tomorrow I'm going up to Pretoria to train some of the <a href="http://www.kilinux.org/">KiLinux</a> team  on using <a href="http://www.go-oo.org">ooo-build</a> for building localized <a href="http://www.openoffice.org/">OpenOffice.org</a>.
<br /><br />
<a href="http://www.courant.com/hc-swahili.artnov20,0,3635313.story?track=mostemailedlink">Kamusi Project Internet Living Swahili Dictionary</a> is a good read, this is a great project.
<br /><br />
<a href="http://www.tectonic.co.za/view.php?id=716&s=news">Tanzanian government uses OSS for localisation</a> shows how the government is realising the importance of free software.
<br /><br />
Also found this article on the Guardian on <a href="http://www.guardian.co.uk/comment/story/0,3604,1646125,00.html">Owning ideas</a> a good read - not neccessarily technically right in everything, but has some good insight and is accessible to people unfamiliar with the debates... e.g. <i>Patenting ideas rewards failure and makes success more difficult.</i> ... <i>This is madness. Ideas aren't things. They're much more valuable than that</i>
<br /><br />
Looks like Firefox 1.5 is going to be released shortly, thus making this a fun week  <img src="http://www.translate.org.za/blogs/david/moods/smilies/smiley.gif" alt=":-)" />  Most of the issues in the translate toolkit for Firefox 1.5 have been resolved, there are still some that I'm working on but people seem able to produce their translations OK using it.]]>
</description>
</item>
<item rdf:about="http://www.translate.org.za/blogs/david/archives/2004/07/06/T16_55_01/index.html">
<link>http://www.translate.org.za/blogs/david/archives/2004/07/06/T16_55_01/index.html</link>
<title>Wireless Hotspots on Lamp Posts</title>
<dc:date>2004-07-06T16:55:01+02:00</dc:date>
<dc:creator>David Fraser</dc:creator>
<dc:subject>ideas</dc:subject>
<description>
<![CDATA[An idea I mentioned to <a href="http://www.translate.org.za/blogs/dwayne/">Dwayne</a> a while ago - why not <a href="http://www.forbes.com/personaltech/2004/06/14/cx_ah_0614tentech.html">use lamp posts to hold WiFi HotSpots</a> - and start a mesh that edges from highways into suburbs...]]>
</description>
</item>
<item rdf:about="http://www.translate.org.za/blogs/david/archives/2004/07/06/T12_26_42/index.html">
<link>http://www.translate.org.za/blogs/david/archives/2004/07/06/T12_26_42/index.html</link>
<title>Metadata for the desktop</title>
<dc:date>2004-07-06T12:26:42+02:00</dc:date>
<dc:creator>David Fraser</dc:creator>
<dc:subject>ideas</dc:subject>
<description>
<![CDATA[An idea I've been thinking about for a while, so was nice to read <a href="http://usefulinc.com/articles/2004/desktop-metadata">Metadata for the desktop</a> by Edd Dumbill.
<br /><br />
I've really been enjoying using <a href="http://ktown.kde.org/kimdaba/">KImDaBa</a> to manage my photos. But it doesn't make it easy to share the photos in a categorized way with those not using Linux, or over the web... I wrote a little <a href="http://www.wxpython.org">wxpython</a> app that can read the database. But then I thought, actually a lot of the stuff in KImDaBa would be really useful for indexing other kinds of files (e.g. documents, music, sermon recordings)... but it would really need to be stored as metadata associated with each file.
<br /><br />
And then I started reading on the <a href="http://www.semanticweb.org">semantic web</a> and thought, this is really how it ought to be done, rather than the ad-hoc xml style of KImDaBa. In fact the article by Edd contains a good description of RDF and how applicable it could be on the desktop.
<br /><br />
The real advantage would come if someone like <a href="http://www.freedesktop.org">FreeDesktop.org</a> helped to define a standard way of attaching metadata to files (on a filesystem like Reiser, this can be done in the filesystem, but to work more broadly it would have to be in separate files), and perhaps even standard ways to index this metadata. Then KDE, GNOME, and even Windows tools could all work on top of this unified system. This should be done now, rather than waiting for new filesystems like WinFS which might simplify the process in the future. And an open source standard/architecture would gain a lot of traction...]]>
</description>
</item>
</rdf:RDF>
