Snowy morning
Kids at home, wife at work.
Snow

After having seen all these pictures of snow blizzards in the US, it's kind of funny to experience the Belgian snow concept again. Within a few hours, this little white carpet will melt into some brown, wet and generally annoying mudlike substance. This was our yearly snow day. Stay tuned for more, next year :-)
Update: Looks like I was wrong, it started snowing again. Traffic jams upcoming!
Speaking on XML Europe
My presentation for
XML Europe 2003, this time to be held in London on 5-8/May, was accepted. :-) Its title is
"Standards applied: Using Apache Cocoon and Forrest", and here's the abstract as a spoiler:
Cocoon is an XML publishing framework offering novel and sophisticated techniques such as SAX-based streaming pipelines, a complete separation between content, logic and layout, and integration with numerous backend datasources. Forrest is a blueprint Cocoon application, that sits underneath xml.apache.org and numerous other websites using XML and XSLT as their technical underpinnings.
Apache Cocoon is based around the Separation of Concerns principle, making sure each person has exactly those tools and environment, and only those, at their disposal for maintaining the content, logic or style that make up a website, without the possibility to mess up his or her co-workers job. Because of this, making multi-channel or multilingual websites is dead easy with Apache Cocoon.
Apache Forrest is a blueprint application of Apache Cocoon, specifically aimed at technical (software) project websites and documentation: it comes with a set of stylesheets, XML grammars, and validation and rendition tools to easily set up a Cocoon-based website, both statically generated or deployed as a dynamic web application.
This talk, by one of the Cocoon and Forrest committers, will give you a quick intro on the design ideas and internals of these valuable open source projects.
Being a regular attendee of the XML Europe conference, it will be fun to be on the other side. Marc was accepted for hosting a full day XML & Java tutorial, too. Hopefully, my
OSCON tutorial gets accepted, too!
New ApacheBlogger discovered: LSD::Reload
Isn't it fun when you find a new weblogger? Hi,
Leo!
No news today
Bruno is working on adding grouping to
xReporter. It will be news when he is ready to commit. :-)
One of those days
- network connection to the office went down, server unreachable, no one to call on Sunday
- a troll on the list, and no compelling reason to think nor act rational about it (it's hard to be political correct at all times)
- the feeling to be casted in a role which isn't quite me, just because I have not been 100% pol. cor. at all times
- lots of designed reality being pushed toward my perception
- it's raining outside
- ...
Luckily, we went for a little walk with the kids and had a
Chimay. Yummy.
Playing by the rules?

No Rules, Great Scotch:
JBoss Group LLC, provider of the most popular J2EE-based application server, announces a free porting tool enabling rapid migration of applications running on BEA WebLogic to JBoss 3.0. The port allows organizations to obtain equal or better performance, security and developer productivity on the open source JBoss server without the licensing constraints and financial costs inherent to WebLogic.Wow. Even though it's no big deal, the wrapping is combative. I wonder how this one is going to work out.
Hoo hum. My first application.
Admittedly, it's one of those small steps for humanity, and a unproportionally big step for myself, but I somehow released my first application today. Yep. I'm one of these guys who lives in
meta-land, escaping from real work with would-be languages such as XSLT, still being utterly capable of pretending to understand
how stuff works, without participating in the actual masonry. Which makes me the ultimate clueless test user, the ideal cardboard engineer, or the guy you don't want in that requirements gathering meeting, since he will always come up with strange, unthought features which somehow stretch the envisioned architecture of an application until it breaks. That type of guy who knows enough about everything to not know anything in detail. Bah. :-)
That being said, and given my
forced extended leave of absence, and given my recent
enthusiasm and
disappointment with some Python tools, and given the fact I'm surrounded with
many true object believers, I acquired
half a bookshelf of Python books (yep, I'm a bibliophile, too). Of that heap of books, four books look actually useful:
Learn to program using Python,
Python Essential Reference,
Python Cookbook and
Core Python Programming. Programming Python and Python&XML are quite crappy, maybe due to my lack of understanding. Even worse: I now own
two copies of Programming Python, one outdated one, and one who is
updated to reflect the latest foobar, as publishers use to say. Half of that book is about GUI programming with Python, which is
not what I intend, nor am capable of doing. Anyway, I worked my way around the
clueless newbie book, which went quite well, and started browsing happily in the excellent reference. Mind you, I'm seriously drowned in object thinking by my colleagues, so I skipped most of that string handling and program flow stuff, and dove right into modules and classes. And somehow, I must have overheard enough about this wonderful world to actually be able to transpose this vague knowledge about programming into actual understanding (and some yearn to get something done, of course, which is quite important).
This complicated state of mind
biased me for action, and some recent issues with tracking changes on the
Cocoon Wiki I host gave me something to do: sending mails of wikidiffs to the cocoon-docs list. The Cocoon Wiki runs on top of
JSPWiki, and JSPWiki offers an XMLRPC interface. Being the lazy type of guy, XMLRPC is about as far as my comprehension of useful interprocess communication using XML and HTTP goes. And I know enough about ReST and the stuff underneath to not feel ashamed by being utterly unimpressed by this SOAP and WebServices hype anyhow. Hence my genuine interest to participate with that new
Pluto project proposal, but
not the
Charon thing. Python has an
XMLRPC library, I had some motivation, and I managed to wrap the XMLRPC stuff and the JSPWiki XMLRPC API in some useful classes. Next to that, I wrote a small script using my little library which goes off and fetches the list of changed pages, and retrieves the two latest versions of those pages, diffs them and sends the
result to the cocoon-docs list. Mostly thanks to Python, it didn't took me weeks, so I was rewarded quite fast for my new eagerness.
But stuff is getting worse right now. I have some philosophical issues with the interface my own library presents. I want my script to work for different JSPWiki instances at the same time. I want the configuration to be
externalized. I have only been 'programming' for some days and am already longing for refactoring. I want to work on that little thing until I'm not ashamed to post it somewhere. Oh, and I want to actually read (instead of browse) another book about Python, too. Does it get any worse than this? I
assume so. The language is strangely addictive, even for a poor soul like me.
Cocoon for major websites
Buzzard created the new website for
Warner-Bros Switzerland. Cocoon underneath, Tomcat on top. Neat.
Python port of Radio
I've stumbled into
PyCS, a Python port of the back-end machinerie of Radio, and
bzero, a commandline blogging tool being able to post entries to PyCS and
Radio Community Server. I'm perfectly happy using Movable Type, and have no plans to run anything but rusty/trusty Apache and Tomcat on cocoondev.org, but it seems like much cool weblog-related development is happening with Python these days. I'm glad I bought those Python books lately, and I worked through the first one so far. High on my preferred reading list is Python: Essential Reference - it's the book that I have opened the most so far. Also, I'm in
good company when it comes to Python and other 'little languages'.
Apache Cocoon: top-level project!
Be sure to hit refresh when going to
www.apache.org: you'll find out that
Cocoon has become a top-level project. The current list of top-level projects is:
Some other notable additions are Ant and Avalon. Most of the Cocoon committers, myself included, are part of the Cocoon PMC (Project Management Committee), which is responsible for the formal (legal) oversight of the project.
About elections and voting
In his typical style,
Andy has found out about
Martin's unwillingness to vote during the Dutch elections (today). Gee. Hey guys, I live in a country where voting
isn't an institutional
right. Voting is
obligatory in Belgium, at least for all
serious elections. Does that fundamentally change the democratic landscape over here? Are there different parties, different tendencies, different problems in Belgium than in the Netherlands? Nope. I don't think politics are much different from culture. I don't believe in political powers being elected without serious consent from the majority of the population. In general, democratic countries get the gouvernment they deserve. Not that
we have been happy with this. I don't believe Martin's (un)vote is going to change anything. The law of big numbers.
New version of Trang released
All you XML grammar buffs, go and enjoy James Clark's updated multi-schema convertor
Trang. Trang slices and dices DTDs, XSDs and RNGs into each other, with the exception of XSDs being
inputoutput-only - why would that be? ;-)
'first posts' on xreporter
Yum, the first posts are starting to trickle into
xreporter@lists.cocoondev.org. Admittedly, the installation procedure isn't for the faint at heart, but people appreciate the overall configurability. On the website, we have a steady flow of demo users, creating more than 150 reports / day. Which isn't impressive in terms of load, but still it's a good test for the longrunning stability of the application. It barely registers in the server load, and doesn't eat memory as well. Cool. We also had a
second showcase some days ago (the first being on the
Cocoon GetTogether), and all went well.
Quite some folks ask us how we can justify the open source release of several thousands lines of code business-wise. Of course, we hope to find some consulting and customization jigs that way, but other than that, there's just the general emotion:
Is there another way?
Mobile blogging: slightly tweaked perceived reality
While the world was breathlessly awaiting Russell's
moblogger, I was happily email-blogging for weeks using
HEP. Yes, HEP allows you to send mail to its SMTP-daemon, and have that routed through XMLRPC (and a
choice of blogger APIs) to your weblog. I assume this allows you to do so-called
'mobile blogging', if you happen to own a mobile device with a decent MUA.
Python xmlrpclib with proxy woes
So here is me doing my first steps in Python. I've read through my first '
I'm totally clueless so learn me everything' book, and I have some sort of toy project to work on.
JSPWiki offers an XMLRPC interface, which I would like to integrate with for a decent RecentChanges-to-emaillist tool.
HEP,
rss2email and
Hula all seem to do only a (fair) bit of what I want them to do, so if I want all of my itches to be scratched, I better do my own thing. Plus the scope seems small enough to wrap my peanut brain around.
Alas alas, the gods of Python libraries do not seem cooperative today. My not-so-peculiar home office setup requires a HTTP proxy for all outgoing traffic.
xmlrpclib at first doesn't seem to support any proxying. But Google comes to rescue, and I find one
sort-of-helpful post explaining how you can use urllib to create a proxied Transport. Hoo hum, already too much Python for my brains. I upgrade xmlrpclib while I am at it. After a while and lots of 'connection timeout' waits, I discover Komodo has an outdated version of xmlrpclib.py in a directory specific to the IDE. Which means a different version of that library will be used depending on where I run my application: inside Komodo or using the command line. Bah. Hopefully I have better luck tonight. Or maybe
Lazyweb comes to rescue...?
Update (I'm getting good at these): it sure helps if you post to the correct URL and read the documentation! The XMLRPC API of JSPWiki is available at http://host/mount/RPC2/, and all method names should be prepended with wiki. Does anyone know something smaller than a peanut?
Ping Pong
Sam requires no trackback, just a ping. Let's see if MT makes the distinction between both.
Update: no, it doesn't. Mozblog pings, but publishing across XMLRPC will trigger auto-trackback discovery. One starts to wonder why the difference exists...? How can you ping if you don't refer to an entry, a reference which will most likely be a URL in your entry, which means you could as well make it a real trackback?
Happy birthday, Sander!

Sander, my oldest son, is celebrating his 6th birthday today. Funny enough, it is the first kid's birthday which learns me that I'm getting older myself.
Pick your license!
Adding onto
Sam's parody of
Creative Commons:
 | I've read Creative Commons and Sam's website and I don't know what to choose anymore. |
 | I've read Creative Commons and Sam's website and I'm afraid to choose anyone of them. |
Square numbers
Happy birthday, Sylvain!
Making the leap
It looks like
tomK has made the move and is
making himself comfortable. Welcome, Tom!
Patents, Microsoft and W3C
I urge you to read
this lenghty, well-informed mail from David Turner from Microsoft to www-patentpolicy-comment@w3.org. It offers a somehow twisted, but very eloquent overview of the worries that big companies with active patent issueing and licensing policies have. Intertwinglied and coincidently, my synapses fire off related thoughts:
- Before founding Outerthought, I have been working for a company which was very actively pursuing patent creation in its research department.
- Quite some people in these departments were funded with government money, working on EU projects. I assume the same is true for US companies.
- This is basically our taxpayer's money being used by companies to issue patents for that company's sole good.
- Marc attended an open source seminar with Arnoud Engelfriet, working for such a consumer electronics company, precisely the kind of company Turner is referring to.
- This company has recently closed down a business unit in Hasselt (Belgium), resulting in the layoff of more than 1000 employees. The pressrelease has disappeared from their website.
Caveat: not having met Arnoud, this is not a judgement on his person nor his work. I saw the presentation handouts and they seemed well researched.
rss2email woes
When trying to set up
rss2email, I found out that either Mark's
ultraliberal RSS parser or rss2email don't like JSPWiki feeds. JSPWiki RSS feeds are pretty minimal, but they sure
validate against the RSS Validator. Running rssparser standalone brings back a list of items, but for some strange reason, they don't get passed into rss2email.
%rssparser http://outerthought.net/docprjwiki.rss.xml
http://outerthought.net/docprjwiki.rss.xml
{'channel': {'description': 'Schaubroeck Documentation Project Wiki',
'language': 'en-us',
'link': 'http://outerthought.net/docprjwiki/',
'title': 'DocprjWiki'},
'etag': '"156ad2-2e0d-530c9ac0"',
'items': [{'date': '2003-01-16T21:56:28Z',
'description': 'StevenNoels changed this page on Thu Jan 16 22:56:28 CET 2003',
'link': 'http://outerthought.net/docprjwiki/Wiki.jsp?page=LeftMenu',
'title': 'LeftMenu'},
{'date': '2003-01-16T21:53:54Z',
'description': 'StevenNoels created this page on Thu Jan 16 22:53:54 CET 2003',
'link': 'http://outerthought.net/docprjwiki/Wiki.jsp?page=SandBox%2F103-0394_img-cropped.jpg',
'title': 'SandBox/103-0394_img-cropped.jpg'},
...
{'date': '2003-01-16T20:41:25Z',
'description': 'An unknown author created this page on Thu Jan 16 21:41:25 CET 2003',
'link': 'http://outerthought.net/docprjwiki/Wiki.jsp?page=SandBox',
'title': 'SandBox'}],
'modified': (2003, 1, 17, 8, 54, 43, 4, 17, 0)}
Still, when brought into rss2email, it seems like there are no items in that feed. The good news is that this was the opportunity to work with
Komodo's debugger. I bought Komodo on
Sam's advise, and while it was good money, and most IDEs need more screen estate than my measly 1024*768 pixels, I like it so far. But still, I have a lot to learn, apparently.
Wrath of the encoding gods
Ha! It seems like I challenged the gods of encoding. My Euro symbol, which shows beautifully in my MozBlog screen, disappears somewhere along the road to my weblog. It must be the XML-RPC stuff, since it is gone before it reaches MovableType.
So I had to go into MT and fix over there.
RSS2
Modern Times: I added an
RSS2 feed, using the
MovableType template kindly provided by Mark.If you happen to use more sophisticated glyphs than those available in plain English, make sure that your encoding declaration matches the actual encoding of your feed (which happens to be iso-8859-1 in most cases, also if you want the € (Euro) symbol to be correctly encoded). Of course, all three
validate to receive good-blogger-karma. Come to think of it, Mark should
migrate that page to HTML4 Strict, too.
2 (two)
Sylvain posts CVSSource on
cocoondev.org - some glitches, some UNIX talk, some instant messaging, and my circle of trustees has expanded
again. Welcome aboard, Sylvain!
At your, and CVSSource community's service.
My favourite sales guy and almost-father
... has an
RSS feed.
Finally!
Fighting with CVS: the system won
When setting up a CVS repository for a new project on
cocoondev.org, I ended up fighting with permissions, permissions and permissions - having Unix users residing in multiple groups/projects while making sure the correct group is used when creating new directories in a particular CVS repository is fun -
not. Tomorrow, I'll give
spackle a go, and I'll sure discover how much more
Ken knows about CVS than me. But at 1:00AM, I call it quits for today. Mental hygiene!
Mysterious Manero
I was intrigued about the whereabouts of manero.org, since he appeared to be well integrated with the Cocoon community, but still I don't recall anyone posting with such an email address to neither cocoon-dev nor cocoon-users. His RSS/RDF feed doesn't disclose any details neither:
<channel rdf:about="http://manero.org/weblog/">
<title>Cocoon: Internet Glue</title>
<link>http://manero.org/weblog/</link>
<description></description>
<dc:language>en-us</dc:language>
<dc:creator></dc:creator>
<dc:date>2003-01-14T13:32:25-06:00</dc:date>
<admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=2.5" />
Luckily, whois came to the
rescue. Hi,
Tony Collen!
Playing hard to get
Well, my copy of the Cocoon Developer's Handbook finally arrived from Amazon, but the spine was broken! [from Cocoon: Internet Glue: Cocoon Developer's Handbook]
Still, Tony had better luck than me:
Dear Customer,
We are sorry to report that the following item has been delayed.
Sue Spielman "Cocoon Developer's Handbook"
Our current estimate is that it will take an additional 1-2 weeks
to obtain this item for you.
GeoURL and fascist parties
Duh. I just added a new
GeoURL icon and assorted <meta> tags to my blog, and I see
the geographically nearest website to mine is the one of the 'Vlaams Blok Jongeren Gent' (nope, no link, sorry). People who know me, know that I have very severe adverse physical reactions when confronted with people who think people can be considered
different because of skin color or origin. So anybody who lives nearby
lat 51.0749 / long 3.7473 (Ghent, my street, that is), please add a GeoURL button so that I'm not alone here with these awkward people. Thank you.
30 second guy
Found
this in my referrer log. Windows and Linux suck, use Movable Type instead. :-)
Criticism or Disapproval?
In
closing down the interblog unpleasantness, Ken refers to criticism on his recent squabble with Andy. It was only after a couple of days that it came to me he might be referring to
Ken vs Andy. Hm. Perhaps my 'opinion' sounded like a disapproval, which is a nice example of me sounding off different than I intented to. I have a life of apologies behind me :-)
I better pick up the phone and call someone else tomorrow morning. Explain him that it just felt like a good time to relate Alpha Male proudness to the
real truth about electronic communication: while we try to achieve a certain amount of k3wl-ness in what we post, blog or mail, we still are fragile human beings. Most of us live to be loved, to be heard, to be understood. We carefully try to design
the reality others will perceive from us.
Hm. There's a good chance people will get this wrong. If that is the case: here are my apologies upfront. I'd like to call
you in the morning! :-)
Good one, Sam
Since the easiest way to get in touch with Sam is
mentioning him in a blog, and he gave me some
good advice (I'll buy a
copy, thanks), and I still have a
mail waiting in his Inbox queue that I want him and some others to read, here is: hi,
Sam! :-)
Sweet Belgium: job benefits not an extra
Now that
our favourite HP employee is
moving to more
nutricious pastures, I was idleing away at the Google job benefits
listing. Of course, more than half of
our income goes to taxes, and we don't have that many beautiful
landscapes and sights as Ovidiu has been posting recently, but it seems that we don't need that much extras over here:
- A very decent public health coverage plan comes with your (dead-cheap) mutual insurance, which is largely funded by those taxes. Some guy worked hard for this.
- Holidays: at least 20'ish paid days, but 12 extra (paid) days are very common in IT. Also, a lot of employees have an extra paid month at the end of the year, and a holiday bonus too.
- As an employee, your income is largely protected, even during extended absense. There is new legislation offering people the possibility to take some (unpaid) time away from work (or working part time for a period), while their position is being reserved until their return (OK, this can be a nightmare to organize at the workplace, but if enough people do this, a vacancy becomes available automagically).
- Maternity leave is at 15 weeks at 75%, at a minimum. My wife was at home for 8 months, since she combined maternity leave with parental leave, which is another 3 months (with a measly compensation of 536 EUR / month).
- And while employees are working and paying taxes, they are saving money for a pension or retirement benefit. No strings attached, except when Belgium should go broke.
The stupid thing is that all this reserved for
employees, not for
independent workers.
No, that should read as: the stupid thing is that the difference between employees and independent workers still exists. But since employees are really the largest group of workers in Belgium, a good part of our population is very well protected and taken care of.
Ovidiubot
64.68.82.38 - - [14/Jan/2003:03:19:35 +0100] "GET /index.html HTTP/1.0"
304 0 "-" "Ovidiubot/1.0 (+http://www.ovidiubot.com/bot.html)"
One of the reasons why
Ovidiu is changing jobs to Google. Good luck, and
bon appétit!
Python IDEs - which one to choose?
As I'm slowly (very!) trying to absorb some of my
new Python books, I start longing for a decent IDE or editor -of-sorts. Java-developers are spoiled with IntelliJ and Eclipse, whereas Python IDEs have a longer way to go IMO. Or they have a
confusing interface, or an old,
very Motif-like look-and-feel, none of them do syntax completion in the IntelliSense way, and some of them have reported stability problems. There seems to be a
Python plugin for Eclipse, but to be honest, I don't want to follow the Eclipse-hype ATM, nor does the Python plugin seems to be very appealing to me. Of course, ActiveState has a
VS.Net add-on for Python, and the code-completion doesn't seem to suck, but the requirement of VS.Net being installed seems like a bit too much overhead to me. If anyone has any idea re: Python IDEs, just give a yell.
Monkeying Ant
It looks like
Bram Moolenaar, author of the venerable vi-replacement
vim, is
working on a very
Ant-like super-make, called '
A-A-P' (which is Dutch for Monkey, hence the
mascotte). AAP mixes
make syntax with Python.
Sleep well, Thud
A sad story.
Bladvertising
RoUS wondered why so few people use advertising in their blogs. I decided to give it a try, and look what happened:
Traffic Summary 1 January, 2003 - 9 January, 2003
Unique Visitors 22
Clicks 50
Items Ordered 1
Time to get a marketing executive on-board! I'm going to be filthy rich!
Dilbert on eXtreme Programming
Nuf said - go read them while they last: <1> and <2>.
Ken vs Andy
Open Source communities. Love them. Alpha males galore. 2 snippets I could resonate with:
Andy: There is the community-based and open thing and that seems to be generally agreed. Note that the members and board are largely regarded as a star chamber, and I kind of held this view. Now, I still hold this view. (suprised?). Thats my opinion, I think there is a certain closed cliquish thing going on. I will continue to state my disagreement with it. I will continue to state my disagreement with more bureaus and committees popping up all over the place. I'll state it on the lists, and I'll state it here. The fact that *you* don't agree with it and don't want it to color the perceptions of others is *your* problem.
Ken: Perhaps some people read Web logs inside an <imho> container in their heads. I try, but sometimes I can't; it's just impossible to separate what's being said from the attributes of who's saying it.
Oh, and the wise guy decides to keep his mouth shut and refers to prior art. Wise indeed, if you are involuntary dragged into an Alpha Male fight.
My opinion? One of my resolution for 2003 is: don't forget there's a human being behind that MUA, or you'll commit some MUA.
Update: tomK said this before: For the sake of honesty, I have to admit that I have been tempted to do that in the past. That was before I realized that the people writing and reading those mails were real people. They're not part of your PC, you know, they are real living human beings, with good qualities, sensitive points, and everything else that constitutes a human being. If you think about this right before you press ctrl-enter, you won't press it in many cases. ... which brings us back to Stefano, which brings me back to an unfruitful moment of my own Alpha Male-ship, which brings us back to the seminal think-twice-before-hitting-enter mail. Intertwinglyness :-)
xReporter 1.0 release
I just posted the official release announcement of xReporter to some
mailing lists:
Hi all,
yesterday, we've released the 1.0 version of xReporter, our open source
Avalon/Cocoon-based database reporting framework, available from
http://xreporter.cocoondev.org/
xReporter consists of 2 main components:
* an Avalon Phoenix-based query server, which is configured through
XML-based report definitions, and is accessible across an XML/HTTP interface
* a Cocoon front-end generating configurable HTML, PDF, Excel and CSV
renditions of your database reports, thanks to the wonders of FOP, POI
and some custom Cocoon drudgery
Architectural diagram:
> http://xreporter.cocoondev.org/en/my-images/architecture.png <
Most compelling features:
- multiple datasources & report definitions
- user/role-based report authorization, container-based authentication
- column filtering & sorting, query by example
- no programming required to define complex, multistep database reports
- optionally using temporary tables
- expression language & field validation
- possibility to access non-SQL, 'Web Services' datasources
- fully customizable look & feel using CSS and XSLT
- flow control using XML and a ReST HTTP interface
xReporter is released under an Apache-style license, and we welcome
contributions and patches as we try to grow this into a community-owned
project. Currently, there is anonymous read-only cvs access and a
downloadable tarball. There's a limited, live demo available on the
project website, too.
We would like to sincerely thank the Avalon & Cocoon community for the
creation of some wonderful toys to play with, and a great guy (you know
who you are) who made all this possible.
Relief :-)
Tapestry has become an Apache project
Thanks to the helping hands of
Andy and
Sam, Tapestry sources can now
be found in the
Apache
source repository, the one place where the
Apache license legally
reigns. Now that
Struts,
Turbine,
Velocity,
Tapestry and
Cocoon are neighbours,
cross-polination might happen, growing each individual project
individually and making the overall Apache offer irresistible.
Maven vs. Centipede
Let's see how both parties take up the
challenge!
(or maybe it is proved that Ant still does the job pretty well ;-)
How to become an XML expert
Len Bullard prepared us a test:
1. DTD stands for:
a. Document Type Definition
b. Document Type Declaration
c. Deeply Troubled Datatype
d. I don't know. Is it important?
Read further
for more enlightenment.
Woes fixed?
Fixed
now? Thanks for the link, Matthew! And good to have you back on the
blogtrain.
Fr*gging Mozilla
I want to set up multiple mail accounts with Mozilla, each pointing
to their own outgoing SMTP server. Mozilla is one of the rare
applications where perception isn't exactly reality. There's some
little Orc
hiding inside the Mail&News configuration panel, that makes sure
there is absolutely no relationship between what you see in your
panels, and what is stored in prefs.js. Very interesting ... not.
Result of all this is that I had to recreate all my mail accounts,
loosing my set of rules along the way (my own stupidity). My main
problem now is how I can post a
bug explaining they should get rid of that Orc.
Good news
We've got a real
programmer working in our company. Not that we
didn't knew, of course.
Message composition format, HEP and Movable Type
Getting your message format, and line break handling correct for
this combination is kinda tricky. I have mine set as following:
- In MT, I have 'Convert Line Breaks on by
default' switched off.
- In Mozilla, I send my mail2blog mails in 'mixed-mode', i.e. plain
text and HTML, at the cost of a larger message size.
I have to do this on a message-by-message basis, because the
pure-HTML-only mode, which is configurable by default for a specific
domain, did not work out for me (Edit -> Preferences ->
Mail&Newsgroups -> Send Format -> HTML and Plain Text
Domains). Of course, I could have switched my default message sending
format to mixed-mode, but since much of time is spent on mailing lists,
I'm still a plain-text-only mail junkie. Setting such on a
message-by-message basis in Mozilla involves going to the Options menu
and switching on 'Plain and Rich (HTML) Text' in the Format menu.
That's all. Now I have your blogs being fed into my mailclient, and me
blogging from my mailclient. No more anxiously pushing refresh in Aggie
or AmphetaDesk, since HEP fetches RSS feeds hourly, and I check
blog2mail mail every 10 minutes from within Mozilla. Cool stuff.
Configuring HEP for MovableType
Yesterday, I managed to configure HEP for mail2blog operations. While the
user manual concisely lists what needs to be done, I thought adding some remarks to it would cause no harm. I installed MT in a /cgi-bin/ directory on my server, and have a number of blogs running there, all accessible across http://blogs.cocoondev.org/
.
In my HEP configuration panel, I added a new message destination of type 'MetaWeblog API'. Here are my message destination parameters:
- Name: OuterWebThoughtLog - this is a symbolic name, you can pick any name you want here.
- User Name: stevenn - your MT user name
- Password: your MT password
- Blog ID Number: MT assigns a number to each weblog - the easiest way to obtain that number is going into the MT Main Menu (the one which appears after logging into http://host/cgi-bin/mt.cgi), and check the URL of the 'Manage Blog' link of the weblog of your choice: http://host/cgi-bin/mt.cgi?__mode=menu&blog_id=2 in my case. My Blog ID is 2 here.
- URL: the XML-RPC connection point of your MT installation - most likely something like http://host/cgi-bin/mt-xmlrpc.cgi.
OK - that was one part of the setup, the other one requires you to configure your email client. Possible caveats are forgetting to punch holes in your firewall for the unusual ports HEP uses by default, and fighting with your mail client configuration to set your HEP server as your SMTP outgoing host for your mail2blog messages. With Mozilla, you can set up an SMTP server per mail account so that works out well. After having done all of this (which is well explained in the HEP User Manual), you are ready to send mail using that SMTP server. Just make sure your To: address is correct: OuterWebThoughtLog@hep (yes, that symbolic name, and it is case-sensitive apparently). Hope this helped!
Testing HEP coolness
This is a first post straight from Mozilla Mail. Yes, writing this as an
email :-)
HEP is kewl

20 minutes to set up: Python 2, Twixted and HEP. Added a sample feed. Can browse them on my server (nope, I didn't install it locally, but went the hard way immediately). Can fetch them from a POP box. This stuff rocks. Yes, installation isn't for the aspiring clueless Windoze newbie, but if I can do it, you can do it too.
Abe Fettig is 'vettig' (Dutch, as in 'keinijg'). That means kewl. And he reads weblogs :-)
Do we need bodies in our feed after all?
Ugo picks up on my question on XML-encoding (or not) blog bodies in feeds:
I'd say neither. Putting HTML content in an RSS description is a bad practice that was spawned when someone decided that RSS would be used not just for summaries (as in Rich Site Summary) but for syndicating the whole content of weblogs.
Yep. Technically, Ugo is right. Building an aggregator which works across all cases must be hell. Practice demands this though: I had my new blog (and feed) up for only some hours, and three people came and asked for blog content in my feed except of excerpt. And since I discovered Aggie, I feel like having found a decent aggregator, and I prefer having blog content in-place rather than having to traverse a link.
XML encoding of RSS feeds
Thanks to Ovidiu, I fixed my RSS and RSS/RDF feeds, and made sure they validate. One question to all, though. In Sam's feeds, I see all description elements contain 'escaped' (X)HTML:
<item> <title>Fans</title>
<link>http://www.intertwingly.net/blog/1080.html</link> <description>&
lt;p><a href="http://radio.weblogs.com/0106046/2003/01/02.html#a204">Gordon
Weakliem</a>: <em>These days, intertwingly.net is beating Yahoo!
hands down.</em> Why, thank you Gordon.</p>
<p>Apparently Jenny
<a href="http://www.j-mo.com/archives/000543.php">enjoyed reading</a> my site too.
I found <a href="http://www.j-mo.com/">her
site</a> very pleasing to the eye too.</p></description>
</item>
whereas in mine and Ovidiu's, we chose to wrap this is in a CDATA section:
<item> <title>American Deserts</title>
<description><![CDATA[<a class="image" href="/ovidiu/gallery/places/IMG_2158" title="Devil's Golf Course -
Death Valley,
California"><img src="/ovidiu/gallery/albums/places/IMG_2158.thumb.jpg" width="150" height="113"
border="0" /></a>
<p>I just came back from a short trip to Southern California and Nevada. I noticed I visited Death Valley
<a href="http://www.x180.net/Blog/2002/Dec/29#Social/Travel/PanamintDeathValley">in the same day</a> as
<a href="http://www.x180.net/Blog">James Duncan Davidson</a>, although he was four hours earlier than me.
It turns out this was perhaps better for me, we had a gorgeous day, very sunny and warm.</p>
<p>Other places I visited were the <a href="http://www.huntington.org/">Huntington Library, Art Collections
and Botanical Gardens</a>. The gardens feature an incredible collection of <a
href="http://www.huntington.org/BotanicalDiv/DesertGard.html">cacti</a> (plural form of cactus), with over
5000 species from all over the world.</p>
<p>We also hiked at Calico Tanks in <a href="http://www.americansouthwest.net/nevada/red_rock_canyon/nca.html">Red
Rocks State Park in Nevada</a>, just 10 miles west of Las Vegas. My son, who's only 3 1/2 years old, did an
incredible job
hiking this not-so-easy trail.</p>
...]]></description>
<link>http://www.webweavertech.com/ovidiu/weblog/archives/000130.html</link>
</item>
Now, what should be the good practice?
Oh BTW, blame MozBlog on the lost blog entry. Apparently, it overwrote the previous one instead of creating a new one. Bummer.
Manufactured Serendipity
Tom enquires about e-mailed RSS. James is looking for the ideal news aggregator. And he finds HEP.
Sam thinks this is cool. And MozBlog messes up this blog. Duh.
Maven and Centipede compared
Berin Loritsch has posted an extensive and well-crafted
comparison between
Maven and
Centipede. Great mail, even if you are not on
avalon-dev. A required read if you are on the lookout for a build environment for your Java project. His conclusion:
Neither build system is perfect. After my excersize, I have come
to the conclusion that Maven is the more mature of the two build
systems--but Centipede is catching up fast. In fact, if the current
pace of development for the two projects continue, Centipede may
very well overtake Maven in features and ease of use.
I think Maven has a lower barrier of entry to the user, but
Centipede is becoming easier to use and more developer friendly.
I am a fan of black box tools like Maven, but if I need to do
something a little out of the ordinary, I like the flexibility
of Centipede.
Cool are the many positive references to
Forrest. Me thinks the
shbat distribution of Forrest was a killer feature addition. Kudos to
Marc and
Jeff for that (IIRC).
Debugging my new weblog
Tom found out all about my spiffy new weblog, but has some comments - here are my answers:
- He apparently already discovered my way to disambiguate the 'old' Radio log and the new MT one, i.e. the former being called Outer Log Thought Web, the latter Outer Web Thought Log. And it looks like Sam, who was one of the first to update his blogroll, did a correct update.
- Thanks to the power of MT, I now offer a variety of syndication formats, unfortunately not all of them being linked. Still, there is RSS, RDF/RSS, and RSS2 upcoming.
- About the lack of permalinks: look harder :-) (hint: time)
Don't worry
... if you are afraid not appearing on my blogroll anymore. I'll try and get such a thing back up and running sooner rather than later.
New blogging tools
After making the switch away from Radio, the first thing one starts to miss is the news aggregator. So I installed the .Net framework and then Aggie. Aggie looks quite nice and even works with Mozilla.
The only remaining thing now is a blog client. Since MozBlog has been proving to be less than rock-solid, I'll wait until a new upgrade comes out. I hope it gets better, since I like MozBlog very much.
My darling wife went out working today for the first time since 8 months: pregnancy and maternity leave. I suppose this marks the end of a period in our life: no more little babies anymore, no more extended leaves for Mie, and kids growing up instead of being born. Saar now has 7 months, she starts crawling, she is almost always extremely happy, and life goes on. Snif.
Escapism: migrating Radio to Movable Type
I'm trying to escape from the strangulation (and instability) of Radio Userland and move to Movable Type. Even better yet, I plan on migrating the content, too. My new installation of MT is already awaiting content at its new and cool URL, but unfortunately, most of the migration scripts and tools I found so far aren't really working - in particular with titles, which I have painstakenly added to most, if not all of my Radio blogs. Does anyone know of a script that preserves titles while migrating? Or does know a bit more about Python than me?
Update: I was looking in the wrong place - this did the trick :-)
Perception is reality, a visual proof
Look at this picture from Stefano's image gallery. Thanks for bringing this to my attention, Andy!

Lounging on 1/Jan 2003
A lazy day. The boys are exploring the excellent Boowa & Kwala site, babydaughter is fast asleep upstairs, and we are trying to recover from our light hangover - too much wine yesterday evening...
Happy New Year!

TagSoup and the Academic Free License
John Cowan posted the first public release of TagSoup, a SAX HTML parser which corrects messy markup along the way. Apart from the actual implementation (I might as well use Andy's NekoHTML instead), John went at much length to pick a license for his open source project. He is using the Academic Free License, which has some special patent-aware clause in it:
Mutual Termination for Patent Action. This License shall terminate automatically and You may no longer exercise any of the rights granted to You by this License if You file a lawsuit in any court alleging that any OSI Certified open source software that is licensed under any license containing this "Mutual Termination for Patent Action" clause infringes any patent claims that are essential to use that software.
Now that's a mean, but fine thing to add to a license - I assume this is an example of
patent pooling.
POI year in review
A nice read by ACO liver - it's good to see he's actually making some money on POI. We are using it in xReporter.