Ted Leung on the air
Ted Leung on the air: Open Source, Java, Python, and ...
Fri, 28 Feb 2003
PyBlosxom plugin registry
We've started a registry for PyBlosxom plugins.
[23:10] | [computers/internet/weblogs/pyblosxom] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Thu, 27 Feb 2003
"Strike him down, and your journey to the dark side will be complete"
My copy of VS.NET arrived today. This is an exploratory thing for me, thanks to a friend who works at Microsoft. Since I'm in meetings the rest of the day, and because I've heard horror stories about system crashing installs of VS.NET, it may be a while before I get this installed. Stay tuned for an experience report.
[12:01] | [computers/programming/dotnet] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Sam saw my post on the Chandler release and noted that there's no support for RSS mentioned. I agree that Chandler can become the aggregator to combine email content, instant messaging content, news, blogs, updated product information, etc all in a unified interface that James Snell was talking about.

I know that RSS has come up on the OSAF design mailing list, but I think (rightly) that the OSAF staff is trying to manage expectations about the 0.1 release. I know that as soon as the code comes out, I'm going to be looking at it very carefully. I've wanted to do something like Chandler since the early 90's, and I'm very excited by the possibilities. This is one of the reasons that I got involved with pyblosxom. It see using the Chandler data store as source of blog entries for pyblosxom. We've been doing a major overhaul on the internal architecture of pyblosxom, which will appear in 0.6. The changes that we've made should allow pyblosxom to continue to be blosxom directory compatible, while enabling entries from SQL databases or Chandler stores. We're also going to have the ability to plug in renderers, so that we can do a Cheetah based renderer in the future. If we do it right, our plugins will work regardless of entry or renderer type. The brave can get the latest from CVS, but right now, all the wiring is exposed.

As far as aggregators for Chandler go, either straw or EffNews could be viable starts at Python aggregators. Much as I like and use Aggie, there's the .NET CLR issue at the moment -- unless Joe has got Aggie running on Mono now.

[11:55] | [computers/open_source/osaf/chandler] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Wed, 26 Feb 2003
Chandler plans
The OSAF folks have posted a tentative release plan for a Chandler 0.1 release. This is a step in the right direction, and if we actually see the code in April, it'll be a good thing. Visibility into the project is pretty low right now. There's the Wiki and the mailing lists, but no code visibility. It would be nice to have CVS commit mails available to those who care.
[13:38] | [computers/open_source/osaf/chandler] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Tue, 25 Feb 2003
Linked and Power Laws
I've finally finshed Albert-László Barabási's Linked. I really appreciate the writing style that he uses here. His tracing of the historical origins of various pieces of network theory draws you in to each chapter. This makes for a very enjoyable reading experience on top of the excellent content.

One thing that stands out to me is the discussion of fitness in "The Eighth Link". A lot of blogging that I've seen is referring to winner take all and the power law distribution. But the idea of fitness means that sufficiently fit newcomers do have a chance to become network hubs.

For me, the emergence of the blogosphere has rendered the mainstream computer press (which is all on-line -- the print stuff became useless a long time ago - journals of the ACM, IEEE, and Usenix notwithstanding) almost useless. The blog content is much more technical and full of insight. It also contains a lot more "offbeat" content, which is important to me as a source of new ideas or serendipitous combinations of ideas. I bet that many of the blogs that are dearest to me are not in the Technorati 100. And that is just fine by me, because at least those guys are out there, and those of us in the "tail" can have our conversations, help each other learn, and give each other a whack on the side of the head.

We already have sub networks within the blogsphere, dedicated to topic areas, Java blogs, .Net blogs, etc. It'd be interesting to look at the blogosphere as networks composed of networks. The whole thing certainly behaves according to a power law, but are the little networks that have their own power laws going on inside?

[14:44] | [books] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Mon, 24 Feb 2003
IM, Email, Extensibility and Compound Documents
Hold on folks, this is going to be a long one.

Over the weekend, I finally downloaded a copy of Trillian. I've seen a few friends using it, and Nelson Minar's report on the RSS plugin provided the final kick in the rear to make me go visit the site and have a look. I'm using AOL IM, MSN Messenger, and Yahoo. I like Yahoo's feature set the best, but I use the others because there people that I want to talk to there. So for me, the network is more important than the software -- this is a binary thing -- if you can't talk to the people that you need to, it doesn't matter how good the client feature set is.

Trillian will probably help with this. Now I can get rid of the 3 clients (and the accompanying resource wastage). Trillian allows me to timestamp and log all message windows (key features of Yahoo). I'm also going to see if it works as a passable IRC client.

The most interesting piece of Trillian is the plugin architecture, which is only available as part of Trillian 1.0. I am happy to see them providing a mechanism for adding functionality to Trillian. I'd be even happier if there was a way to script the behavior. Trillian does expose a set of events that you can use to invoke programs, and this is the start down the road to scripting, if the Trillian developers decide to do so. If they added scripting of the application and support for Jabber, I'd be very happy indeed.

The other piece of instant messaging related news is that Microsoft's threedegrees beta is now available. My summary of three degrees is that it allows you to setup a group of IM users and do group actions -- you can send stuff, share a music playlist, etc. It also provides a nice interface for sharing by making groups things that you can drag and drop onto. However, I question whether they really need a separate product to do this. Why not just extend the existing IM system to do this? I've read the articles on how threedegrees resulted from research into the net generation, and I can sort of see the rationale for a different branding, but really, under the hood, we're talking about basic generalizations of the IM concept. The only reason that we haven't seen this is because the vendor's tight control over IM servers and clients has held back these sorts of innovations. The Jabber folks must be kicking themselves. They could have done all of this stuff a long time ago.

Today there was a big set of posts on e-mail.

Before I go over those, let me just whine. My current e-mail setup is pretty unsatisfactory. I'm using Outlook to handle my primary e-mail account, and it also handles my calendar and addressbook. Because I'm using a PocketPC, I'm locked into Outlook. But Outlook is horribly underpowerd for my needs. I get an enormous amount of e-mail. I get so much that I actually created a second e-mail address which I use for all mailing lists. Otherwise I would never get any work done. Unfortunately, Outlook is horribly slow at retreiving IMAP messages (at least on my setup), so I would love to get off. I'm using Outlook Express to read the mailing list account, because it seems to be able to deal with large amounts of e-mail in a performant manner. I'm using IMAP because there is no way I'm going to allow my e-mail to get locked up in Microsoft proprieary PST file format jail.

Okay, so back to today's email posts. Brad Choate told us that e-mail needs a kick to the head. He then goes on to describe virtual folders and using queries to manage e-mail (by generating virtual folders). This stuff has been around for a while -- The Evolution developers, if no one else, have been talking about virtual folders and creating them from queries on e-mail. I was using Evolution for a while, and I liked vfolders. The problem with vfolders is that there's a large set of vfolders that you'd like generated automatically -- like mailing lists, and vfolders for all e-mail addresses in your address book (actually 2, one for messages from the address and a second for message sent to the address). Where Evolution is falling down on vfolders right now is that it doesn't generate these folders automatically, so there's a lot of manual setting up which should be done automatically. Due to this problem, and the fact that I was VNC'ing to a linux box to do my Evolution reading, I gave up and switched back Outlook Express. Having to do a bunch of travelling with my Windows laptop also played a factor in this.

One of the comments on Brad's post was by Virtuelvis who recommended Opera's new M2 mail reader which is based on access points (kind of like virtual folders), and can generate them automatically for e-mail addresses in the address book. This sounds good and I'm going to have a look, but the thought of one more e-mail client is just giving me a rash.

None of these clients (save Outlook) has the ability to script any part of the client. If Evolution had been scriptable, I probably would have put in the effort to write scripts to generate and maintain the vfolders. But I didn't get that choice.

So basically, e-mail sucks.

By the time I finished with this morning's posts the theme for me was: there's still a lot of work to do on client apps in the networking / communication space. We're facing problems related to scale -- Spam aside, I'm still getting lots of e-mail, and I seem to be adding more an more people to my IM list. Having the basic functionality isn't enough, we need functionality that will help us to manage all this information effectively. One way to do that is to build systems that can be extended and user programmed. For a long time, I read my e-mail using Emacs' VM mode. That stopped when I left grad school and before personal linux boxes were commonplace. Unfortunately, VM is not sufficiently performant for my large email volume today. But it's supremely programmable, due to Emacs' archtectural culture of allowing for hook functions that can provide user defined functionality. This is where all the AOP people's ears should perk up and say "Ooh, interception, we know how to do that.....";.

Another thing that I'd like to see is for contact and calendar (at least) information to be broken out as service that other applications could use. That way there could be competition in e-mail without problems in address books. Of course, lock in by bunding is a popular strategy, so this is unlikely to happen, but it would be the right thing to do.

Let me leave this with some more of today's posts. James Snell referred to one of his old wishes:

Essentially, I want a Web Aggregator, not a Web Browser. I would want that aggregator to combine email content, instant messaging content, news, blogs, updated product information, etc all in a unified interface that I control. Responding to blog entries (e.g. comments, posts on my blog, etc) is done the same way I respond to email. Reading news alerts is done the same way I read blog entries.
James wants customizability in how his information is presented. I was reminded of CyberDog and the promise of systems like OpenDoc, now slaughtered by the web age. But now the overflow of web data is taking us back to a situation where we need significant improvements is client applications and the infrastructure for client applications. Compound document architectures are a good idea for rendering internet data.
[18:01] | [computers/internet] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Floating Area Networks
Ok, so it may not be of that much interest to people in other parts of the world, but today's Seattle Times article about WiFi includes a section on an effort to put WiFi access points on the Washington State Ferries. I'm not commuting on the ferry as much as I once did, but this would be great for the many folks who still are.
[14:55] | [places/us/wa/bainbridge_island] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Sat, 22 Feb 2003
drools, rules, and Java
Ted Neward discovered drools, and asks if this is an appropriate topic for his new book. I'm not sure whether it is or not because I can't tell if the books is about enterprise applications in general, or EJB in specific. If it's the former then I think that aspects of dealing with business logic are definitely a topic that would belong. My friend Steven Lewis gave a presentation on the use of rule based systems for business logic a few years ago at a SeaJUG meeting. It's an idea worth spreading around.

Chiara left a comment asking for a reference or tutorial to rule engines. Ted's post pointed out some of the other Java engines that are available. Chiara, since you've been digging into Czarnecki, you might want to check out Peter Norvig's Paradigms of Artificial Intelligence Programming. It's in Lisp, but Norvig covers the issues that one faces in implementing a rule engine. Paul Graham's downloadable On Lisp has a similar chapter, but probably a bit more Lispy techy.

One other point worth mentioning. These engines are useful in a wide variety of situations, and I think that drools is a great solution. But it's also an argument for what I've been ranting about in previous entries. Java and the object-oriented programming paradigm are not the nirvana of programming. There are other technologies/paradigms out there that are worth knowing about and using.

[13:46] | [computers/programming/java] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Fri, 21 Feb 2003
Hey, that's me....
I know these articles have made it around the block already, but I identified quite a bit with both of them. So if you interested in understanding me, here they are (in case somehow you haven't read them already).

Caring for your Introvert

Why Nerds are Unpopular

Maybe this kind of stuff could be a Blogchalk or a geek code.

[16:48] | [society] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Dynamic websites in Lisp
Chris Beggy describes how to setup mod_lisp, CMU CL, and Apache to do dynamic web sites in Lisp. Note that you have complete access to the Lisp listener while the site is running. In Java, the closest you have to this is servlet reloading (if you turn it on) and hot-swap debugging if you are using JDK 1.4. Sadly, Python CGI doesn't have this capability, nor does mod_python from what I can tell.
[16:32] | [computers/programming] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Thu, 20 Feb 2003
JBoss and AOP
The Men (and women) from JBoss are at it again. Not only have they issued a new 3.2 Release Candidate, and a nice IDE plugin for Eclipse, but now they've posted their plan for to JBoss 4 to use AOP to allow plain old java objects (POJO)'s to use J2EE services.
[14:32] | [computers/programming/java] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Wing IDE
Archaeopteryx Software has a Python IDE called Wing IDE. They allow developers working on open source Python projects, such as pyblosxom to use Wing IDE for free. For Python web apps like pyblosxom, this is a total blessing because there isn't a good way to trackdown problems other than the cgi traceback functions, which is basically print debugging. Wing IDE allows you to attach the debugger to a CGI script and debugging as it goes along. I just got this working last night, and its going to save an enormous amount of time. You can bet I'll be buying a copy for any commercial Python work that I do.
[14:18] | [computers/programming/python] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Wed, 19 Feb 2003
More on the .NET patent
Microsoft's Jim Miller says:
The ECMA process requires that all patents held by member companies that are essential for implementing its standards are available under "reasonable and non-discriminatory (RAND) terms" for the purpose of implementing those Standards. This is the normal condition used in all International Standards organizations, including both ECMA and ISO.

But Microsoft (and our co-sponsors, Intel and Hewlett-Packard) went further and have agreed that our patents essential to implementing C# and CLI will be available on a "royalty-free" and otherwise RAND" basis for this purpose.

This quote seemed to mollify some of the concerns of people on the mailing list. Nothing against Jim Miller, but I'd feel better if there were an official web page that confirmed that the C# and CLI patents will be available on a "royalty-free and othewise RAND" basis.

Of course, this doesn't help with things like ASP.NET and ADO.NET, but I bet that open source alternatives could turn out to be as good as or better than these two, with the benefit of running both on a Windows CLR and a ECMA/Mono CLR. For proof of this, look at Java projects such as Velocity, Struts, WebWork, Hibernate and others. If you look at the rate at which open source Java stuff is getting ported to C#, I think that the .NET community recognizes this. Key insight: The good stuff doesn't have to (or even isn't likely to be) the stuff blessed by the platform vendor. If it's good enough people will still use it.

[13:52] | [computers/programming] | # | TB | F | G | 1 Comments | Other blogs commenting on this post
More sophisticated blog data mining
An article at NewScientist.com describes Jon Kleinberg's work on the rate of change in word usage in documents. One proposed application is to use this on weblogs to detect trends. This could be an automated way to generate those "Wired" and "Tired" lists that appear in Wired. I've just started Albert-László Barabási's Linked, which is really excellently done by the way, so this topic is at the front of my mind anyway.

One of the reasons that I got involved with pyblosxom development was that I wanted to have a blogging platform that could be used to play with these kinds of ideas.

[13:26] | [computers/internet/weblogs] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Tue, 18 Feb 2003
JBoss/XDoclet Eclipse plugin
JBoss-IDE 1.0.1 is out. It integrates nicely with Eclipse 2.1M5 and no longer uses an installer -- it uses the regular Eclipse Update manager. JBoss-IDE provides XDoclet support and support for managing (starting/stopping/debugging) JBoss servers.
[14:06] | [computers/programming/java/eclipse] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Aggregator gzip status:
Here's the latest on gzip encoding support in RSS news aggregators:
  • Aggie 1.0 RC5 - supported
  • AmphetaDesk - no support planned until after 1.0
  • Bottom Feeder - supported
  • Channel Buddy - couldn't find a web site for these guys
  • effnews - supported
  • Hep - supported in 0.4
  • java.blogs aggregator - awaiting a reply
  • NetNewsWire - added to feature request list
  • Newsgator - support in an unspecified future version
  • nntp//rss - awaiting a reply
  • ping.blog.gs - awaiting a reply
  • Radio Userland - awaiting a reply
  • Syndirella - support planned for 0.92
  • Wildgrape NewsDesk - support in an unspecified future release
[14:01] | [computers/internet/www] | # | TB | F | G | 1 Comments | Other blogs commenting on this post
Mon, 17 Feb 2003
Paul Graham on School
Paul Graham's latest essay, "Why Nerds are Unpopular" is really about the effects of institutional schooling. His critique is very similar (and shorter) to John Taylor Gatto's The Underground History of American Education which I've recently finished reading. Another book that is related is Alfie Kohn's Punished by Rewards. More on this one in another entry when I get some time.
[14:03] | [society] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
RSS Aggregators and gzip encoding
Last night I e-mailed a bunch of RSS aggregator authors regarding their support of HTTP gzip encoding. Here's the status as of this afternoon::
  • AmphetaDesk
  • No support planned until after 1.0
  • Bottom Feeder
  • The Bottom Feeder guys fixed this while I slept
  • Syndirella
  • Support planned in version 0.92
  • Wildgrape/NewsDesk
  • Support in an unspecified future release
Aggregators that showed up since yesterday:
  • AmphetaDesk
  • Channel Buddy
  • java.blogs aggregator
  • NetNewsWire
  • nntp/rss
  • ping.blo.gs
[13:53] | [computers/internet/www] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Sun, 16 Feb 2003
Graph filesystems
Don Park describes a "Web of Files" I really like this idea -- For a long time I've wanted a filesystem and UI where files could live in multiple directories (categories) at the same time. This basically turns the filesystem into a graph instead of a tree.. Yes, I know this is possible in Unix / Linux, but the user interface for this is too inconvenient. Actually, a good UI forthis would be a great feature for Nautilus, along with the "related" and website functionality in his example. One thing that I've found is that its impossible to remember where documents come from. In MacOS 8 (the last time I used it regularly), some programs would put the source URL into the Get Info comments. Alas, no such function in Windows or Linux.
[23:49] | [computers/operating_systems] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Today I installed mod_gzip on the web server in hopes of reducing the bandwidth consumption. I spent quite a bit of time trying to get my blog pages to compress. I'm using mod_rewrite to hide all the Python CGI's, and there was some kind of weird interaction. Here was the fix if you care:
mod_gzip_item_include uri ^/blog.*$

Looking at the mod_gzip'ified logs reveals that many aggregators are not dealing with gzip compression. Gzip encoding isn't being done because the client (aggregator) is not sending an HTTP Accept-Encoding header that includes gzip. After a few hours, here's a list of the offenders:

  • Bottom Feeder
  • Hep/0.3
  • Radio Userland/8.0.7
  • Syndirella/0.91pre
  • Syndirella/0.9b
  • Some unknown Java client from
I'm going to let this go for a little longer before I start e-mailing the authors of the various aggregators.
[16:03] | [computers/internet/www] | # | TB | F | G | 0 Comments | Other blogs commenting on this post

twl JPG


Ted Leung FOAF Explorer

I work at the Open Source Applications Foundation (OSAF).
The opinions expressed here are entirely my own, not those of my employer.

Creative Commons License
This work is licensed under a Creative Commons License.

Now available!
Professional XML Development with Apache Tools : Xerces, Xalan, FOP, Cocoon, Axis, Xindice
Technorati Profile
PGP Key Fingerprint
My del.icio.us Bookmarks
My Flickr Photos

RSS 2.0 xml GIF
Comments (RSS 2.0) xml GIF
Atom 0.3 feed
Feedburner'ed RSS feed

< February 2003 >
2 3 4 5 6 7 8


Macintosh Tips and Tricks

Blogs nearby
geourl PNG

/ (1567)
  books/ (33)
  computers/ (62)
    hardware/ (15)
    internet/ (58)
      mail/ (11)
      microcontent/ (58)
      weblogs/ (174)
        pyblosxom/ (36)
      www/ (25)
    open_source/ (145)
      asf/ (53)
      osaf/ (32)
        chandler/ (35)
        cosmo/ (1)
    operating_systems/ (16)
      linux/ (9)
        debian/ (15)
        ubuntu/ (2)
      macosx/ (101)
        tips/ (25)
      windows_xp/ (4)
    programming/ (156)
      clr/ (1)
      dotnet/ (13)
      java/ (71)
        eclipse/ (22)
      lisp/ (34)
      python/ (86)
      smalltalk/ (4)
      xml/ (18)
    research/ (1)
    security/ (4)
    wireless/ (1)
  culture/ (10)
    film/ (8)
    music/ (6)
  education/ (13)
  family/ (17)
  gadgets/ (24)
  misc/ (47)
  people/ (18)
  photography/ (25)
    pictures/ (12)
  places/ (3)
    us/ (0)
      wa/ (2)
        bainbridge_island/ (17)
        seattle/ (13)
  skating/ (6)
  society/ (20)

[Valid RSS]

del.icio.us linkblog



Listed on BlogShares

Locations of visitors to this page
Where are visitors to this page?

pyblosxom GIF