Over the weekend, I did the first PHP programming I've done this year, on a whim project to write a Amazon S3 storage manager for KnowledgeTree.
In KnowledgeTree, a storage manager describes where to and how to store and otherwise manage the files attached to documents in KT. S3 is a remote storage web service from Amazon, allowing reliable, scalable, and net-speed-quick storage for data. Most of the code ended up being around configuration - particularly in terms of making it easy to check whether the S3 storage manager is properly configured.
This starts with a status dashlet (a dashboard "portlet" - a little bundle of information on the "front page"), which makes it hard to miss if you haven't configured things yet:

(It also tells you if you haven't told KnowledgeTree to use the S3 storage manager.)
The S3 Storage adds an administration page, allowing through-the-web configuration of the plugin. One of the things I'm sorry I never got around to was getting configuration in KT pushed more into the database - the constant push for "cool" features meant the basics that affect actual users never got any time. Before configuration, the page looks like this:

The "No" next to testing reminds administrators whether they've done a test of the settings they've entered. The "Test now" makes it easy to see if the settings are correct without trying to add a document.
The Amazon Web Services settings are quite boring, since they can't be detected. But, for the S3 configuration, we can query the available storage buckets and present the information to the user:

Once you've set it up, it's actually quite sad how it "just works". There's no difference in terms of using KnowledgeTree to add, bulk add, or delete documents (except that it's a bit slower for those poor South Africans with not-so-wonderful connectivity). Downloading is fast, since the files are cached locally.
The entire storage manager is only 250 lines of code, most of which is caused by the immaturity in the storage manager framework, because pretty much the only non-standard storage manager that we wrote was a in-database storage manager (which was quite slow, and thus was forgotten). The admin page, status dashlet, and so forth come to 500 lines of code. You can download the plugin in ZIP and tar.gz formats.
KnowledgeTree moving on up
14 Feb
It seems KT's doing well - they were invited to attend the Olliance Group's Open Source Think Tank event later this year. (Nice venue! The Californian winelands have long been the #1 location I'd love to visit in the US, even before becoming even more enamoured after watching Sideways)
And (belatedly), they seem to be looking for developers again - if you can stand programming in PHP and want to be paid to work on an open source project in beautiful Cape Town, why not apply?
RSS in KnowledgeTree
24 Jan
My friends over at KnowledgeTree are making a good start to the year by adding RSS support in KnowledgeTree. They've got last transactions on subscribed documents available as RSS, and will be adding support for arbitrary documents via RSS using the saved search system. This was one of those items that kept on cropping up in our want-to-do lists, but always too low on them.
Of course, the other side of the RSS support can be quite weird. Reading your news on a KnowledgeTree dashlet? Oh well, at least it makes a good screenshot! And, who knows, maybe you want some information from something like SugarCRM on your dashboard.
It looks like my baby is doing well - it's also recently been listed in the Optaros Open Source Catalog, which hopefully will bring about a number of good enquiries.
And also in KT-land, the irrepressible Anna seems to be having a ball with her new baby - a much-deserved VM server for testing KT in the many combinations it is tested before she stops beating the developers with a stick and let them release their software.
Another into the fold...
17 Nov
Soon-to-be end of era
16 Nov
In late-mid-December, I'll be leaving Jam Warehouse and my position as lead developer of KnowledgeTree. Mostly (and especially earlier) it's been a fun ride - great people (Brad being the only one of whom I know with an active personal web log), interesting challenges, and gaining ever more perspective on how to and not to do software development, open source community management, marketing, and management, especially around the start-up stage of a product and group of people.
In January, I'll be starting at CareerJunction (you may recall me posting about them looking for developers). I'm incredibly excited at the idea of writing Python full-time, and working in a larger team, and not being the sole "the buck stops here" person.
And it seems it should be an easier-than-usual move, since my current KT colleague Bryn also applied for a job there, and we'll be starting there at the same day.
My current employers, Jam Warehouse, are looking for more developers to work on KnowledgeTree, the open source document management system that Brad, Bryn (Mr. No Web Page), and I have built over the past year or so (and with me alone for another year).
There are two positions - a more senior developer who would take over much of what I've been doing previously, and a less senior developer who would be the lackey and make coffee and tea for the rest of the team. Both are preferably based in Cape Town, but for the right person, there may be options there.
The more senior developer needs to have about 4 years of experience in a modern programming language in a commercial environment - having worked on teams, preferably having some leadership experience, and so forth. The less senior develoer needs to have about 2 years in a commercial environment. (Note - commercial, not necessarily proprietary).
Both would benefit from having used PHP most of that time, from having a great understanding and passion for open source, a technical degree, having speaking/presentation experience, experience in other languages (Python, C#, Java) and so forth.
You can read the more formal job spec on Daniel's web log.
Send me an email (it's on the right-hand-side of my web page) if you think you're suitable.
KnowledgeTree web logs
07 Aug