"I have a mind like a steel... uh... thingy." Patrick Logan's weblog.

Search This Blog

Friday, August 18, 2006

Great Software

Phil Windley makes his own amendments to a list of great software.

As Phil believes, I also have to include Smalltalk on the list. I don't agree with the original author's rationale re: Java and some others on that list.

Other systems I'd consider for my top ten...

  • Lisp (esp. Lisp 1.5, Common Lisp, and Scheme)
  • Smalltalk
  • Erlang
  • Hypercard
  • Emacs (in various incarnations)
  • The Xerox Alto (incl. BitBlt, Ethernet, laser printing, WYSIWYG, etc.)
  • Englebart's Augment, nee NLS
  • Unix
  • The Web
  • The Orbit compiler for Scheme

Live Motion 3D Video Camera

Via O'Reilly Radar, Live Motion 3D Video Camera

Wednesday, August 16, 2006

pdx.st -- Portland Smalltalk September Meeting

Dane Jensen, et al. have scheduled the second monthly Portland Smalltalk meeting...

The next meeting's lined up, it will be at 7PM on September 12th (second tuesday of the month) at the McMenamins on NE Broadway (1504 NE Broadway, http://www.mcmenamins.com/index.php?loc=32)
The email list is at http://lists.pdx.st/listinfo.cgi/general-pdx.st

Dane also says about an IRC...

I'm setting up #pdx.st on irc.freenode.net for us now, but there's certainly no reason to wait until it's official.

The Twenty

Today is the 20th wedding anniversary for my wife and myself.

I'm just sayin'...

I love my wife very much. And my two boys.

I think that's worth a blog entry, at the very least.

Large Scale Change

Ward Cunningham in a recent interview...

I do have something new that is bugging me. Tom Love told me last week that he has found a free hand in staff change to be a necessity when doing large scale and fast paced agile conversions. This doesn't surprise me even though I remain committed to helping people adapt. The scary part Tom told me though was that the person most likely to go was often the person the team felt was most indispensable. I feigned a knowing smile as I agreed that I understood how that happens. But now I am not at all sure I know how experts fall into this trap of obstructionism. I want to figure it out though. There could be some small changes we could make that would make life much better for experts and the people around them.

Sunday, August 13, 2006

org.tiling.s3map.S3Map implements java.util.Map

Tom White does some tinkering...

It struck me that you could treat S3 as a big hashtable, so I tried writing an implementation of java.util.Map (built on the Amazon S3 Library for REST in Java) that uses S3 as its backing store...

So, what is it useful for? Well, I haven't actually had a use for it yet, but S3Map is really a non-transactional persistent datastore, so it could be used in many scenarios...

Ordinary Teachers

From dailyzen...


It is most urgent that you seek real, true perception,
So you can be free in the world
And not confused by ordinary teachers.

- Linji (d. 867)

JFK

JFK was a troubled man from a shady and troubled family. He had enough strength though to do some good work when it was needed.

Let us never negotiate out of fear. But let us never fear to negotiate.
His nephew, Robert Jr., is doing many good things.

I started an interesting book on vacation this week, "Ultimate Sacrifice: John and Robert Kennedy, the Plan for a Coup in Cuba, and the Murder of JFK". I've not previously read anything about the JFK assassination. This is a recent book that appears to have a great deal of credibility from "insiders", popular (4.5 stars from 95 reviewers on Amazon), and uncovers relatively newly released information on a coup planned for Cuba subsequent to the Bay of Pigs, and which ultimately led to the assassination (by the Mafia) and cover-up.

Moral Clarity Or What?

Harry Shearer observes that the recent arrests in Britain do not jive with the Bush Administration's policies on "enemy combatants" in a "time of war"...

This is a group of people who allegedly conspired, according to British officials like Home Secretary John Reid, to commit acts of mass murder that would have dwarfed 911. If we were at war with them, according to the Administration's own well-documented legal arguments, we would have killed them or detained them and thrown them in Gitmo. Instead, where did we--or our allies in the "war", the Brits--put them? Right where we're told by those same arguments we cannot put enemy combatants--in the criminal justice system.

Saturday, August 12, 2006

Which Quagmire Again?

George Will on ABC TV's "This Week" becomes confused about which quagmire we're currently bogged down in...

Lieberman's model on Vietnam -- I'm sorry, on Iraq, is to some extent...
Could we keep our quagmires straight please?

Java Varargs Puzzle

Richard Bair puzzles over a scenario using Java 5 varargs...

The problem is that (Object)null tells the compiler to include a one element Object array where the first element is null. Instead, what we wanted to do was this (Object[])null! This is why we get the compiler warning, the compiler doesn't know if we want null to be an element in the vararg array or whether we want it to be the vararg array itself.
I would have expected that passing null to be interpreted as passing one Object, which is null. Strange that null has to be cast to Object though.

But then passing an Object array that is null means "don't pass anything"? This is just puzzling. It should be wrong... an artifact of a not-quite-object-oriented language with too much "magic".

To express "don't pass anything" I would expect to invoke the method like this...

elementCount()
...i.e. don't pass anything.

I would expect a null cast as an Object array to mean the same thing as a null cast to an Object. An Object array should be an Object, in an object-oriented language. No matter how you cast a null argument, it should be interpreted as one argument passed to the method. Instead the meaning changes on how the null is cast, or whether it is cast at all.

Unfortunately as well, invoking the method with no args means an implicit new of an empty Object array, as opposed to a null cast as an Object array. I guess I need to fire up the computer that has Java 5 on it and see it for myself.

Confusing. These idiosyncracies will cause someone, somewhere, a sleepless night every now and then.

People Who Don't Matter, Who Actually Might Matter

CNN has a list of 10 tech people who don't matter. I don't even know most of the people on the list.

I wonder about two people on the list though. One is Linus Torvalds. The CNN argument is that most Linux innovations come from large organizations rather than Linus. Maybe one could argue that CNN doesn't understand the way open source works, or the place of Torvalds and Linux within OSS. Unix was without a center for decades. Torvalds still appears to be the center of Linux. Without him I wonder if those contributing large organizations and individuals would go spinning off, out of the coherent Linux system, the way it used to be.

The other questionable choice for me would be Sun's Jonathan Schwartz. The point James Robertson continues to make is Schwartz' contribution to the enterprise blogging and transparency movement. As a software developer, the future of Java and the JVM matters to me, and Sun's attitude toward OSS. Also Sun appears to be innovating in the H/W market again, e.g. Thumper.

Thursday, August 10, 2006

Implementing Dynamic Languages

Steve Dekorte questions some of the conventional wisdom of implementing dynamic languages on Java/C# platforms. Ironically the implementations of Java and C# are essentially based on approaches from the dynamic language community. They have static-ness added on top (e.g. statically-oriented object models and class loaders) and/or into the mix (e.g. statically-oriented instructions).

Maybe a more interesting question is why aren't Java and C# implementations more thoughtfully layered on top of especially efficient implementations of dynamic languages? This has been done before, e.g. implementations of C, Fortran, Ada, et al. on Symbolics and other Lisp Machines. That ordering makes more sense in terms of complexxity.

Current implementations could provide a foundation for such a thing, e.g. the implementation Gambit Scheme would be a particularly good candidate. One problem: the implementation, like most long-lived, highly-tuned software designs, is fairly obscure and familiar to few people.

Depending on Gambit Scheme is riskier than depending on GCC, the JVM, or dotnet. On the other hand the benefits of putting multiple languages on the implementation would likely lead to a larger community of knowledgable systems developers.

The Circle of Artificial Life

Nat on the O'Reilly Radar writes...

Technologists very rarely create something new. C was inspired by BCPL, Unix was inspired by MULTICS, Linux by MINIX, XML by SGML, web services by traditional binary APIs, .... This is the problem with patents: the magic that gets patented often ends up being something as questionably worthy as "the right ingredients that we already had" or "this old solution applied to this new problem".

Ruby and Python Are Slow, Aren't They?

A comment on James Robertson's blog points out...

The Ruby "VM" is implemented in the slowest way imaginable.
There is always the question of "fast enough"... Python, even Ruby have been around a many years. They are obviously meeting enough needs to keep going.

That's not to say better implementations could not expand their range. Certainly they would, all else being equal. But there are many factors and many answers to what is "fast enough".

Thursday, August 03, 2006

Wikipedia bans Stephen Colbert

Explain this to me again...

According to Newsvine, a Wikipedia editor locked the entries Colbert had exhorted his viewers to edit and banned the account "Stephencolbert."
Truthiness is stranger than fiction?

Erlang and Scheme Workshops

Marc Feeley, via Bill Clementson...

This year's Erlang Workshop and Scheme Workshop will be held in Portland, Oregon, on September 16 and 17 respectively. Of special note this year is a 90 minute tutorial on "Large Scale Software Engineering with Erlang: Using Advanced Erlang/OTP".
Bill notes a presentation on Termite Scheme, an implementation that aims to do for Scheme what Erlang did for, um, Erlang...
The Termite presentation is titled "Concurrency Oriented Programming in Termite Scheme"

Sun Digging Deep for Dynamic Language Support

From JavaWorld...

Moreover, Bracha, who joked that "it is good to be behind former enemy lines," noted that among the benefits of enhancing Sun's support for dynamic languages is simplifying implementers' lives.

He also said better support for dynamic languages also would likely yield more good implementations for programmers to use, and provide potential for "awesome performance over time."

Wednesday, August 02, 2006

Ruby Glues Day (sorry)

John Lam (RubyCLR) shows how to use Ruby rather than XAML as a declarative GUI design language for Avalon. Nicely done.

Although I could not attend OSCON last week, I met after hours with Paul Hammant over a coffee while he was working on support for JRuby as configuration glue for NanoContainer.

As Blaine Buxton might say, dynamic languages rock.

Weird Brain Activity

My brain feels funny watching videos for DabbleDB and Microsoft Simple List Extensions back-to-back. Draw your own conclusions.

Blog Archive

About Me

Portland, Oregon, United States
I'm usually writing from my favorite location on the planet, the pacific northwest of the u.s. I write for myself only and unless otherwise specified my posts here should not be taken as representing an official position of my employer. Contact me at my gee mail account, username patrickdlogan.