Ted Leung on the air
Ted Leung on the air: Open Source, Java, Python, and ...
Wed, 30 Apr 2003
Python metaclass help
Yesterday I posted on Ruby's ability to execute code at class define time. This week's Python-URL! has a comp.lang.python thread on the use of Python metaclasses that shows some basic uses of metaclasses as well as some pedantry on the finer points of the Python metaclass system.
[12:12] | [computers/programming/python] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Tue, 29 Apr 2003
RSS Bandit News
Torsten has RSS Bandit 1.1 Beta 4 ready. More important that that, he says that some of what Don Park has been talking about is on his TODO list for RSS Bandit. Torsten, it'd be great to see what else was on that list...
[13:09] | [computers/internet/weblogs] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Linearity, Code generation and object failure
A raft of language postings today: Carlos weighs in with pointers to the "Objects have Failed" debate held at OOPSLA 2002, where the opposing positions were represented by Guy Steele and Dick Gabriel. The two essays are "the glass is half empty" and "the glass is half full". Instead of looking a whether objects have succeeded or failed I think we need to look at what is still unfinished.  Regarding this, Steele said
Now, objects don't solve all the problems of programming. For example, they don't provide polymorphic type abstraction (that is, generic types). They don't provide syntactic abstraction (that is, macros). Procedural programming still has its place in the coding of methods. But to say that objects have failed because they don't solve all possible problems is like saying carbohydrates have failed because you can't live on pure sugar.
As I read Gabriel's essay, it seems that you could boil a lot of his argument down to more simplicity and more dynamism, particularly in the types domain.  There were one or two other interesting points that were made:
Powerful concepts like encapsulation were supposed to save people from themselves while developing software, but encapsulation fails for global properties or when software evolution and wholesale changes are needed. Open Source handles this better. It’s likely that modularity—keeping things local so people can understand them—is what’s really important about encapsulation.
I think that this an interesting observation as to where language constructs facilitate objectives vs when process facilitates those objectives.
Objects require programming by creating communicating entities, which means that programming is accomplished by building structures rather than by linguistic expression and description through form, and this often leads to a mismatch of language to problem domain.
This sounds to me like a call for additional support for metalinguistic abstraction, which is what macros are all about.

In the vein of what's left to do, as I was looking through Gabriel's notes I saw many quotes from William Cook, who preceded me both at Brown and at Newton, so I did a little googling and found his home page.  And lo and behold, there's a presentation with his ideas on what's left to do.  The things from his list that resonate with me:

  • Postmodernism - a collage of paradigms (particularly things like persistence and XML).  There was a paper from Erik Meijer and Wolfram Schute on this blog today.
  • Descriptive Language - I see better support for metalinguistic abstraction as a key here.
  • Linearity - "A change in requirements is proportional to the change in implementation". Will claims this is more important than encapsulation, modularity, and reuse. I'd say that linearity is what those things are trying to enable.  It doesn't hurt that he got this idea from Sussman.
  • Domain-Specific modeling - macros is normally what I think of here. It was interesting to see his adidtions of generative programming, meta-programming, and staged-computation

Winding up todays PL entry is a posting from John Lam which referred to the Code Generation Network and a really good interview with Dave Thomas.  I'm really going to need to go read the Pragmatic Programmer, because the more I read of Thomas, the more I like what I read.  I like the way that he separates code generation as a smell versus code generation as a way of implementing "Don't Repeat Yourself" (DRY).  Seems to me that DRY is also a way of getting Linearity.  The other thing that was interesting was his example code generator in Ruby, in which he uses active code and Ruby's ability to run code a class definition time (sounds like macros/MOP to me).  I need to go find out how to do this in Python -- the metaclass documentation leaves a bit to be desired.  I'm probably going to need to go take a serious look at Ruby, just so that I can be informed.
[13:04] | [computers/programming] | # | TB | F | G | 1 Comments | Other blogs commenting on this post
Hydra envy
Robert Kaye had some interesting observations about Hydra at work. Things like Hydra do create iBook envy, but cool as Hydra is, being locked on the Mac isn't going to help me (or any other Intel hardware based person) any. Seems to me that the jEdit hackers could sit down with a copy of Strangeberry's JRendezvous, and produce a Hydralike system that would work across OS's. The keystroke notification code is already there if jEdit can do split pane editing on the same file. There will be some concurrency issues to manage but it seems doable to me...
[01:22] | [] | # | TB | F | G | 1 Comments | Other blogs commenting on this post
Java on CLR?
Jeroen Frijters, Mr. IKVM, reports on an interesting development:
Saturday I joined the DotGNU IRC meeting to discuss their Java support. We decided to make sure that our efforts will be interoperable. They are working on a Java source to IL compiler and this complements IKVM's byte code to IL compiler nicely. We'll be working together to create a standard format for remapping Java classes to .NET classes and define custom attributes to express Java semantics that don't map directly onto the .NET standard attributes.
My understanding is that IKVM can already run Eclipse -- a Java to IL compiler, well, let's just say that's very interesting...
[01:14] | [computers/programming/java] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Mon, 28 Apr 2003
A whole keyboard?
I just got off the phone with IBM Thinkpad support. Turns out I have to replace the entire keyboard. For around 50 dollars. That's a lot for a single keycap. Anybody know an online thinkpad junkyard? (Yes, I've checked eBay.) All I need is a keycap.
[13:36] | [computers/hardware] | # | TB | F | G | 2 Comments | Other blogs commenting on this post
Are Dynamic Languages Going to Replace Static Languages?
For many years I read Bob Martin's postings in comp.object, and learned a lot from them. I've read his book Designing Object Oriented C++ Applications Using The Booch Method where he described many if his ideas on dependency management. I got a chance to meeting him a few years ago at Software Development West when I sat in on his Extreme Programming tutorial. I had read some stuff on XP, but I didn't really understand the Test Driven Development side of it until I watched Bob's tutorial. The goal of the tutorial was to design a program to score bowling. First Bob did it the "heavy process" way, asking for possible objects and all of that. Then he asked us to set that aside and walk through it with him as he did it the TDD way. I was very impressed with the result. The code was tighter, cleaner, and smaller than the code for the "fully object-oriented" version could have been.

So read with interest his new blog entry, Are Dynamic Languages Going to Replace Static Languages?. He did an experiment and here are some of his finding:

I thought an experiment was in order. So I tried writing some applications in Python, and then Ruby (well known dynamically typed languages). I was not entirely surprised when I found that type issues simply never arose. My unit tests kept my code on the straight and narrow. I simply didn't need the static type checking that I had depended upon for so many years. I also realized that the flexibility of dynamically typed langauges makes writing code significantly easier. Modules are easier to write, and easier to change. There are no build time issues at all. Life in a dynamically typed world is fundamentally simpler.
Very interesting... more and more smart, respected people are coming to the conclusion that we can do better than Java/C#, etc. The only thing I can fault in the article is the omission of Lisp in his list of dynamic languages.

If this is going to come true, then the Lisp language community needs to get its act together and deal with the balkanization and fragmentation of Lisp like languages. I was hoping that Paul Graham's Arc would be such a language, but Paul seems to have gone dark on Arc while he's eradicating spam. Before Arc, there was Dylan, and maybe that still has a chance to rise from its ashes.

[00:51] | [] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Sun, 27 Apr 2003
Busted keycaps
Anyone out there know the best way to deal with broken keycaps on a Thinkpad? A book fell on my X20 today and broke off the ~/` keycap. I hope I don't have to replace the entire keyboard....
[14:31] | [computers/hardware] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
People that make me happy
From the new Python Owns us:
Two guru-class Python programmers have started weblogging, namely Jeremy Hylton and Barry Warsaw. (Barry's weblog is named aptly "Blogsturbation".) They are both members of the so called PythonLabs at Zope Corporation. PythonLabs is the people working for the core Python at Zope. I think they mostly spend their time on Zope's own projects, but the other significant part of their job is to improve Python, one of the not-so-secret-weapons of Zope. PythonLabs itself is of course another weapon of the Zope Corporation.

I like James:

On the Unix Hater's Handbook:

Heh. Some of us suspect the same thing happens with programming languages in our more cynical moments....
A programming language is a wheel...

On Wiki's:

I think the population of willing posters to a hypothetical gorgeous Wiki would still be small. It's not the presentation that's the issue here. There's something simpler afoot here, and it's something that plagues web software in general. People like rich client software. People tend to not like basic editing tools - which is what Wikis use. Combine a Wiki with decent posting tools, and I bet you would see more collaboration. Combine it with more pleasant layouts, and I bet nothing much would change
I think that this is an important recognition. I think that we are going to see more and more applications that rely on internet connectivity in order to be able to do something useful. Regardless of what you believe about "social software", I think that social software is going to need rich client side apps. Because of this, we need ways to build rich cross platform internet enabled apps. Either that or we need to vastly improve the browser UI experience via things like Lazlo. As far as I can tell, Lazlo uses Flash + ECMAScript to implement rich client side GUI's and uses Flash's XML capabilities to talk to a server. I've done a bit of this (ad hoc) and it has some nice possibilities. The place where it runs into trouble is that it can't talk to the host operating system or applications very well. The Flash apps are still in the jail of the browser window. This will certainly be a huge step up for web only apps, but it's not going to make it possible to do integration with Windows/MacOS/Linux apps, and that's what I'm more interested in.
[14:15] | [computers/internet/weblogs] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Sat, 26 Apr 2003
William Gibson is ending his weblog
Karlin Lillington tells us that William Gibson is ending his blog. While I agree that this is a loss, it's not an earth shattering loss to me. I'm a Gibson fan, and I'll be able to read what he writes -- I might not get all the background that could be picked up from the blog, but I'll get something. I got into blogs because I found that the technical bloggers were producing a lot of interesting and worthwhile stuff. So while I'm sad to see Gibson go, I'd be alot sadder to see Carlos, Rickard, Jon Tirsen, Jon Udell, Sam Ruby, or any of a number of other folks end their blogs.

I got on Usenet back in 1984, before it became a cesspool, and I learned a lot from reading posts in the technical newsgroups. Today's technical blogosphere has the same feel to it for me. I always find at least one interesting thing to consider or learn.

[22:21] | [computers/internet/weblogs] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Unix-Haters Handbook available as free PDF
You won't get the UNIX Barf Bag (I've got mine) but if you missed the era of operating systems before Windows and Unix/Linux, then The Unix Hater's Handbook would be a good introduction to some of what used to be available before the "Worse is Better" operating systems took over the world. I like Linux, only because it's preferable to the alternatives, but not because it's the best that we could be doing.

In my more cynical/despairing moments, I like to tell people that computer scientists regularly reinvent the wheel, doing it a little bit worse each time around.

[22:07] | [computers/operating_systems] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Aggregator GZIP
Here's the latest update, including new visitors to my server logs and e-mails/comments from aggregator developers.
[14:20] | [computers/internet/weblogs] | # | TB | F | G | 7 Comments | Other blogs commenting on this post
Fri, 25 Apr 2003
Alan Kay and Squeak
Cory Doctorow's notes on ETCon seem to be the most complete of those that I've seen. His notes on Alan Kay's presentation were particularly interesting. I don't know if 20 years is exactly the window that I would pick, but I definitely feel that PC's and computing in general has become quite boring. There's much less of an exploratory spirit than when I got involved in the business. It's been my hope that open source would help revive a spirit of innovation by relieving people from having to rewrite massive pieces of software in order to tinker with them, but that doesn't really seem to be happening.

Squeak has been jumping on and off my radar for a few years now. It has a number of desirable qualities: small, totally portable, open-source. From the demos that Cory describes, it seems like there's a lot of functionality. James Robertson from Cincom has been gently persistent at trying to get folks to pay attention to Smalltalk again. My big beef has been the lack of an open source Smalltalk -- but Squeak persistently slipped my mind. Perhaps it's time to go have a look at Squeak...

[12:19] | [computers/programming] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Don Park's Newspaper aggregator
Before he went off to "dodge SARS virus all weekend", Don Park posted some screen shots and ideas for his RSS aggregator. He's really going all out for the newspaper UI, which is not quite the direction that I was thinking of.
[12:07] | [computers/internet/weblogs] | # | TB | F | G | 1 Comments | Other blogs commenting on this post
CIO Magazine: Build it Free
CIO Magazine has an article that's a good read for, well, CIO's, about benefits and drawbacks of open source software. A useful article to have in the stable.
[12:04] | [computers/open_source] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Thu, 24 Apr 2003
James Strachan replied to my post about the AOP JSR.
Though Ted misunderstands the JCP process a little. The JCP process is just that, a process. It can define an API that can be used on any JDK version it wishes. A JSR does not have to tie itself or integrate itself into any of the big API bundles (JDK or J2EE). Also there is no fixed time schedule, so there's no need to rush things to force a standard.

Actually I do understand the JCP process. More than I want to. I've been directly involved in discussions with Sun regarding the ASF and issues that have come up in the JCP. I have lived through multiple versions of the JCP as an IBM employee, as a member of the ASF, and as an individual. In theory, what you say about the JCP is true. In practice, most JSR's end up being bundled into J2{M,S,E}E. Once that happens it makes things much harder to change.

I'm glad to hear that the StAX JSR is making great progress. I'd feel better about the progress if I could see the discussions going on and participate. But I can't. I'd be very disappointed if Rickard, Cedric, Jon, Gregor, and all the othe r AOP folks had to do their work in secret under the JCP or W3C style processes.

Perhaps you're right that standardizing something around interceptors makes sense. I feel that there is a tendency to run to the JCP to get things blessed when it is unnecessary to do so. I don't necesarily believe that things need to be standardized. I do believe that they need to be developed in an open and collaborative process. I think that is what is happening with AOP right now. I'd rather not have it all sucked under the JCP secrecy veil.

[12:40] | [computers/programming/java] | # | TB | F | G | 1 Comments | Other blogs commenting on this post
Visual programming?
Carlos and Anthony are discussing the merits of visual programming. Looks like Andy Oliver is in on it too. I have mixed feelings about visual programming -- I've used (briefly) tools like ProGraph, and did some reading on visual programming languages when I was a grad student (the advantage of being an OODB geek was that you legitimately needed to be a programming language, database, and (kind of) operating systems geek). It's a paradigm which has never lived up to its promise (at least in my eyes).

Thinking about this did revive a memory about some work being done by folks at the University of St. Andrews on what they call hyperprogramming. It's not visual programming exactly, but i leverages visualization in pursuit of more leverage at the language level. I haven't kept up with what they've been doing, so my memory is a bit rusty on the details, but it was very interesting stuff when my mind was fresh on it.

[12:24] | [computers/programming] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Other aggregator news
Don Park is going to build a .NET prototype of a newspaper-like aggregator UI. This is really exciting!

The 'Early Adopter' guys are pointing people to the ZaoBao Aggregator in Chandler. I think that we need a version of what Don is going to do as a viewer parcel in Chandler, integrated with the Chandler address book and related to all the other personal information you might have stored in Chandler. Chandler could be a very nice substrate for an RSS aggregator / Blog client. My involvement with pyblosxom has been practice for working on something like this. Until the storage model for Chandler settles down, this is still a gedanken experiment.

[12:06] | [computers/internet/weblogs] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
Fixing aggregators
A few folks e-mailed/commented to get the ball rolling on this:

Jason Brume wrote to say that nntp//rss 0.3+ supports gzip compression. My logs confirm this.

Joseph Ottinger, one of the authors of RSSLibJ wrote to say that RSSLibJ uses a stream that someone else passes to process RSS, so that its the callers problem. That's probably true. It would be good if the FAQ told people that they should support GZip and ETags and so forth. Most of the problems that Bill and I (and others I'm sure) are interested in are going to be upstream from RSSLibJ

So here's the current score on RSS Aggregators and GZip:

  • 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 - no plans to implement GZip support
  • NetNewsWire - added to feature request list
  • Newsgator - support in an unspecified future version
  • nntp//rss - supported in 0.3
  • ping.blog.gs - awaiting a reply
  • Radio Userland - awaiting a reply - Help Dave!
  • RSS Bandit - needs support
  • SharpReader - needs support
  • Straw - supported
  • Syndirella - support planned for 0.92 but no longer being maintained
  • Wildgrape NewsDesk - support in an unspecified future release
[11:55] | [computers/internet/weblogs] | # | TB | F | G | 2 Comments | Other blogs commenting on this post
Wham, bam, thank you Sam!
There's nothing like blogging a request before bed, and waking up to find it answered:
Ted Leung: Esther Dyson has a blog. Cool. It would be good if one of the bloggerati would help her with an RSS feed, too.

I'm sitting next to Esther. ;-)

Done. Here's the RSS feed. And I'm now subscribed.

Now Sam, if you could get Keith Ballinger similarly arranged, that'd be awesome.

I've never used Blogger, but it seems to me that I've seen (and skipped) a number of blogs without RSS feeds, and many of them were running on Blogger. It seems odd to me that Blogger doesn't set up an RSS feed by default.

[11:16] | [computers/internet/weblogs] | # | TB | F | G | 2 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

< April 2003 >
   1 2 3 4 5
6 7 8 9101112


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