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

Search This Blog

Wednesday, May 31, 2006

For Better or Worse?

A fascinating discussion is taking place over at James Robertson's site on globalization, labor, and progress. Below is a duplication of my most recent comment I added there.

Could things be worse? Heck yes. I agree they have been worse. Can things change for the better? Yes. How? Good question. That requires unselfishness to generally take a higher priority than selfishness.

We are genetically predisposed to selfishness. That's not necessarily a bad thing. It got a lot of us to a pretty good place. What's not clear to me is how well selfishness will get us to the next level.

Have we run out of room for selfishness as the driver for "progress"? Have we run out of room for our current definition of "progress" itself?

Are we at a point where for anyone to survive in the long-term more people have to adapt to "unselfishness" as a driver? Why are so many of our mainstream religions apparently based on unselfishness, and yet we do not seem to be predisposed to unselfishness beyond a relatively small group of people, especially those closely related to our own DNA?

Why is it easy to be "globally" unselfish as a result of relatively minor events like the recent tsunami in the Indian Ocean, and yet significantly more difficult to be unselfish as a result of ongoing major events such as the daily rate of deaths due to hunger, or even aids, or malaria?

There are a lot of fascinating questions about how we got here and how we get to the next step. One could argue we are on a good path. On the other hand one could argue we are not, by and large. It's hard to tell.

Monday, May 29, 2006


From No Fluff Just Stuff 2006 Anthology...

We’re not going back to what we tried once; we’re going back to what others had success with. The industry at large tried to go a different way, and at long last we’ve begun to realize that no matter how many new tools we throw at our problems, software development still isn’t getting any easier. Maybe it’s time to rethink the whole way we’ve been going. The people who really embraced Lisp and Smalltalk early on don’t think those languages failed (except in terms of gaining broad acceptance). On the contrary, most of them that I know are either still finding ways to work with those technologies or else yearning for a return to the good old days.
The industry has been on these merging paths for decades without clearly realizing it. Now it is starting to shed its static appearances as it reaches the tipping point. Soon after reaching that point we will behave as if this is the path we'd bet on long ago.

Saturday, May 27, 2006

Premature Extrapolation

'We should listen to Donald Knuth when he said, "We should forget about small efficiencies, about 97% of the time. Premature optimisation is the root of all evil." This is the most important thing that you'll ever hear as a software developer.'

-Cal Henderson, Building Scalable Web Sites

If it breaks, make it heavier. If it doesn't, make it lighter.

-Paul McCready, Gossamer Condor

A study done by a pair of Canadian psychologists uncovered something fascinating about people at the racetrack: Just after placing a bet, they are much more confident of their horse's chances of winning than they are immediately before laying down that bet...

Like the other weapons of influence, this one lies deep within us... It is quite simply, our nearly obsessive desire to be (and to appear) consistent with what we have already done.

-Robert Cialdini, Influence: The Psychology of Persuasion

Friday, May 26, 2006

Read-Write Web -- Web 0.1?

I vote for Tim Bray's preference for "read-write web". As I understand it that was the original intention of the web, so let's go back to it

Web 0.1?

Feeling Strest?

A blogless(!) friend points me to this item on lowering your strest level...

The vast majority of supposedly 'REST' Web APIs are simply abusing HTTP to carry function calls. I call these APIs 'Service-Trampled REST', or STREST.

Griddle Cakes

OK, I could not come up with a bad title. The best I could do was a really bad title, so to make up for that, here's a recipe for cornmeal griddle cakes. Enjoy.

On to the business at hand...

I'm fairly sure XMPP is to Grid and JINI as HTTP was to WS and CORBA. Give it a few years - instant messaging is where real commodity grid action will take place.

Monday, May 22, 2006


Mike Herrick panics from fuzzy about WS-*...

The truth is there is massive premature standardization occurring.
He's got a lot of good posts, subscribe, read them all.

Big Time

Tim Bray on JavaOne and big, formal conferences generally...

If you’ve been to a camp-style event or unconference, some aspects of the whole sit-and-listen-to-the-guy-on-the-stage thing start to grate.
The best "conference" I attended last year was a Code Camp.


Tim Bray has an entry that is a continuation from Gilad Bracha, and others have continued from there. Dynamic languages, continuations, and the JVM... the thing about continuations is they are not immediately obvious because they are not available in most languages.

Those that have them have found they are not useful for the everyday programmer's applications. But they do provide a fundamental building block that simplify the several of the building blocks that *do* end up in the everyday programmer's applications.

By the way, continuations *are* implemented in the Rhino Javascript system and the SISC Scheme system for the JVM. I believe they are also in the JVM and dotnet backends for the Bigloo Scheme system. They would be more efficient in the JVM per se, but I'm just saying...

You're not going to see an overwhelming number of programmers saying, "we want continuations!" That will not be an effective gauge for determining their value at the VM level.

The Future of (Presentation|All) Software

Jon Udell writes...

...it's democratic, not elitist, to believe that presentations ought to be first-class citizens of the web, viewable by any standards-based browser with full interactive fidelity. If we've failed to fully democratize the necessary authoring software -- as, so far, we have -- then shame on us. There's no longer any good reason why we couldn't make it easy for people to create effective presentations through the web as well as for the web, and there are plenty of good reasons why we could and should.

Sunday, May 21, 2006

A Thousand Points of Light

Steve Dekorte recalls...

Let's see, so far Bush has:
  • started preemptive wars by lying to the public
  • killed tens or hundreds of thousands of civilians in the process
  • created secret prisons that employ torture
  • exposed CIA operatives for political reasons
  • instituted a massive illegal surveliance on millions of Americans
Did I miss anything?
Yeah, well, there's that little incident down in New Orleans. There are the Halliburton-built detention centers. There were the threats made to politicians if they did not vote for the prescription drug plan give-away to the pharmaceutical industry. There's... it's a long list but a short weekend.

Oh, yeah. There was that attempted overthrow of Hugo Chavez in Venezuela. And...

Um. Thinking. There was that one guy... Osama something, that Bush let get away when he was thought to be cornered in Afghanistan. Of course at one point Bush said... "I don't really think about him very much. I'm not that concerned." But then in the 2004 presidential debate he said... "Of course we're worried about Osama bin Laden. We're on the hunt after Osama bin Laden. We're using every asset at our disposal to get Osama bin Laden."

Then there's that fake news reporter in the White House, Jeff Gannon, who also turned out to be a gay porn star with several unexplained visits. But there's the whole anti-gay marriage drama to get Bush re-elected.

And speaking of fake news, there are those news footages which turned out to be supplied by the White House to the media to run as real news. Although Bush acknowledged having them made, he would not agree to discontinue the practice.

And, sigh. Remember we are just stupid, gullible monkeys. And he's the leader of the monkey world. What more can you expect?

Saturday, May 20, 2006

Erlang, Now With SMP

The latest Erlang is out, and now supports SMP with much less effort than before.

SMP is supported by most modern operating systems like Linux, Windows, Mac OSx, Solaris and is becoming more important now when dual processors, hyper-threading technology and multi-core systems are a reality.

With Erlang, most of the problems which occur in multi-threaded programs have been solved once and for all in the Erlang VM and do not have to be handled by the application programmers.

In the SMP version of the Erlang virtual machine, there can be many process schedulers running in separate OS threads. As default there will be as many schedulers as there are processors or processor cores on the system.

The SMP support is totally transparent for the Erlang programs. That is, there is no need to change or recompile existing programs. Programs with built-in assumptions about sequential execution must be rewritten in order to take advantage of the SMP support, however.

In this release, the Erlang VM supports SMP with focus on stability. There will follow a number of subsequent steps with necessary optimizations and support for more platforms.

The Da Vinci Code Movie

I saw The Da Vinci Code last night on a big, big screen. Ebert gave it 3 of 4 stars. I would give it 3.5 or 4 of 4.

I've read some review such as Shawn Levy's review in The Oregonian gave it a B- and he complained the movie did not move quickly enough. I also read that some actors just "mailed in" their performances, but at least not to the extent that I noticed.

I thought the movie moved well. Details were cut from the book, obviously. Some dialog and scenes changed a good bit, especially at the end I think. I read the book over a year ago.

The book really should not have made a good movie, I thought at least when I heard it would be done. The book is too much talking about the past and puzzle solving. As it turned out the director, scenarists, and effects people handled that well, much better than I thought it would be presented.

I think the movie has more humor than the book, and it works. I think the movie is a bit more conciliatory than the book to traditional Christians and even the Opus Dei nut jobs. Evangelicals generally will not be happy of course. Anyway they're busy drinking really bad punch out of really small glasses and eating really bad cookies, at their church listening to an "expert" arm them with the facts they need to convince their friends that this movie is just fiction.

Well, it's good fiction, better than most stories in "The Bible". I am going to see it again this weekend if possible. The sun is shining more than expected though.

Tuesday, May 16, 2006


How ironic that some believers in a virgin birth and a resurrection from a death (which by the way show up in many stories about various gods) want to ban others from seeing a movie whose plot includes a "heresy" in that it proposes the possibility that two people (who themselves may be fictional for all we know) may have been married two thousand years ago.

Ah. Yeah. Run that by me again?

Marissa Laguardia, chairwoman of the Philippine government's movie-review panel, told the AP... "So are we just out of the Stone Age?"
No, sometimes it seems we are still *in* the Stone Age.

Friday, May 12, 2006

Virtual Machines for Small Form Factors?

Tim O'Reilly writes about the value of small form factor devices connected to Internet data...

It's a sign that special purpose hardware providing access to internet data services may eventually be commonplace.
On the other hand I don't want to carry around five or ten devices. I'd rather have a three form factors and carry around one of them, the one that is most useful for the moment. That may be a wrist watch sized device, a larger cell phone sized device, or a small laptop sized device.

I'd like virtual machines running on each of these with images of the systems I want to use. Most of my systems would run on any of the form factors and use as much of the capabilities of each as possible. Everything would be synched, backed up, and enhanced through the Internet to my big system that stays put at home and/or at some other site.

People with ideas for new capabilities would not design new hardware, just new virtual images for the common hardware. Every year or so I would upgrade one or more of the devices to the newest physical devices available. All the old images would continue to run.

Thursday, May 11, 2006


Update: Don sets me straight, and rightfully so with a good exposition. I did not do my homework.

End Update

Don Box writes about compiling code on the fly in C# 3.0, kind of, I think...

Expression<Func<int, int>> expr = a => a + 3;
Console.WriteLine(expr); // prints "a => Add(a, 3)"
Func<int, int> func = expr.Compile(); // LCG's an MSIL method from the expr
Console.WriteLine(func(4)); // prints "7"
He equates (incorrectly from what I can tell) the above C# 3.0 with the following Scheme from 25 years ago...
(define expr '(lambda (a) (+ a 3)))
(display expr)
(define func (eval expr (scheme-report-environment 5)))
(display (func 4))
I think the comparison has some flaws. Maybe I just don't know enough about C# 3.0 (until just now I knew nothing about it).

First of all the expression (quote (lambda (a) (+ a 3))) is *data*, in particular a list of atoms and nested lists of atoms. That list is bound to a variable called expr, whose name is conveying that the data *may* be evaluated as a lambda expression. But it is not a lambda expression, it is a list. The C# code appears to require something to be declared as an Expression. Is such a class something that can be built programmatically? Or does it have to be declared and constructed intact?

Plus if it is already an expression, why would it need to be compiled? In the Scheme example, the list has to be evaluated to get a lambda, i.e. the function that the original list of atoms resembles. If you start with an expression, you should not have to do an eval or compile to get an evaluatable thing. That's just wrong. You'd just do this...

(define func (lambda (a) (+ a 3)))  ; No QUOTE form. It's already a function.
(display (func 4))                  ; Just apply it.

Or even more simply...

(display ((lambda (a) (+ a 3)) 4))  ; No QUOTE form. Just apply it.

One more thing: where is the QUOTE form in the C# code? The quote mark in Scheme is short hand for wrapping a special form (QUOTE ...) around something that you consider "data". i.e. QUOTE prevents evaluation. Does the Expression class automatically get recognized by the C# evaluator to prevent the RHS from being evaluated? Come on, either the RHS is data or the RHS is an expression. Or can the compiler only work with a special kind of data that happens to be called an Expression. Weird any way you slice it from what I can make of it.

I don't get it, and maybe there is a more complete and logical explanation. Maybe the answer is "Pat, you're confused because you already know a simpler language like Scheme." Yeah, so why not use C++?

As it stands it looks like there is a bit of confusion and complication that separates C# 3.0 from simpler, more agile languages like Scheme, Python, and Ruby.

Just use those languages, folks. Don't get strung out on these incremental "improvements" to a language that was too complex to begin with.

Sunday, May 07, 2006

Tell All The People - Follow Me Down

A musical tribute to Stephen Colbert...

There's no denying the huge supporting role Jon Stewart played in this victory. Both Stewart and Colbert had to use their people-skills over a long period of time to gain access to their marks. Jon Stewart loaded the bases and Colbert hit it over the fence. It reminds me a bit of the tactics of the "Yes Men".

Friday, May 05, 2006

What's On Your Hard Disk

Found on ACM Queue's "What's on your hard disk" results...

Who: S... R.......
What industry: Technology vendor (software, hardware, etc.)
Job title: Programmer/Analyst
Flavor: Develops on Windows for all platforms (JVM)
Tool I love!
Squeak. I am forced to use Java at work to build enterprise applications, but at home I play with and enjoy Squeak. After eight hours of working in a traditional IDE, coming home to Squeak is pure joy. Its system browser and method finder are excellent programmer resources.
Tool I hate!
Eclipse. This IDE suffers from a misleading and often incorrect debugger. Furthermore, it can’t refactor multiple files correctly and has a buggy interface. But it is free and nicely configurable. I love it and hate it.


Follow this link because Bill de hÓra has some good links to follow.

Thursday, May 04, 2006

Not Yet In A Groove

Kris Tuttle of Research 2.0 on Microsoft's future...

Ray Ozzie seems to be the face of future innovation at Microsoft these days. So far we are pretty unimpressed. We have used Lotus Notes and Groove. Both definitely had visionary elements in their functionality but operationally left a good bit to be desired. In fact Groove reminded us of Outlook in terms of the vast resources it consumed relative the functions delivered. (We don't use any bloated products anymore in this shop...) Ray has been a trooper and introduced concepts like the Live Clipboard that some like, we think it treats the symptom and not the disease.
Maybe give him some time. I was kind of shocked years ago when I read about the technology developed for Groove.

Kris in a subsequent post writes about expanding her use of Google ads to incude Microsoft's ad machine...

So wanting to be fair I went to MSN AdCenter today to set it up in a similar fashion to how our company uses Google AdWords. Unfortunately I didn't get to square one because they don't support FireFox.
I wonder if Groove had leveraged open source components in a platform-independent way if it would have been a bigger success and still evolving. Microsoft has a great big wall around their universe, nevertheless it is still a wall and they continue to imprison themselves.

Agile Languages and SAP

Piers Harding announces...

I'm proud to announce the latest updates of the SAP RFC integration packages for Perl, Python and Ruby.

Wednesday, May 03, 2006

Dup or Ref?

Bill de hÓra writes...

Both JRuby and Jython have experienced stop start development.
And then goes into several interesting directions. (BTW, the original Erlang book is good, but not essential for adopting Erlang. Instead start with Erlang in Real Time which is online and more in-depth. Everything else you need is on the erlang site, including the mail lists.)

Anyway my thought is that running multiple languages on the JVM or CLR is beneficial simply because there are no *really* good inter-language communication mechanisms. Being in the same OS process is useful but certainly there are times when that is undesirable for security and reliability reasons.

Given the oncoming multi-core low end systems, the oncoming many-core high end systems, and the realization that "SOA" in its best possible interpretation is just "reality" for tomorrow's programmers (cf. "Notes on Postmodern Programming") we need to get over this "use my OS/VM/language" / "no, use *my* OS/VM/language" parade asap.

Erlang may never be popular regardless of the books available or not. (Then again with ejabberd, Erlang *may*... er, forget it. Jabber will more likely be the inter-language communication mechanism I claim we're missing.) But just as Lisp got data right, and Smalltalk got objects right, Erlang got processes right.

Sooner or later your language and runtime will too. And the sooner the better because I cannot count on anyone porting my language to your runtime, and I sure don't have any incentive to do so myself.

Meanwhile rather than try to program all of the latest Ruby or Python in the JVM or in the CLR, I am wondering whether we need to expose Java and C# libraries via their own processes connected to a simple communication mechanism with a simple, reflection-based interpreter on the receiving end.

Hey, JVM, just sit there and do what I tell you. I don't need that to be more than the current implementation of Jython or (the upcoming 1.0 release of) IronPython. Or take your pick, maybe Javascript is the lingua franca via Rhino and... er, dotnet does have a Javascript interpreter, right?

If I ship my application to you as a, say, a VMWare player and image running the OS of my choice, pared down to what my application needs, plus a few OS processes running on that image, each implemented in the language of choice for that process, plus some inter-communication between them, and all of them going out to the real world as desired, then... would I be happy with that kind of Gordian Knot post-modernism?

Just a Little is Enough

Steve Loughran writes...

As an aside, ...it's clear that Tomcat is all that most server-side [Java] installations need.

More Colbert Gushing

Steven Hart writes that Colbert's performance is like Swift delivering A Modest Proposal in the king's court. Of course this is still America and critics are deflecting a lot of heat by writing about how great America is that Colbert has the right to do such a thing. But Hart responds to those statements correctly...

Colbert is as much a target for big media now as Howard Dean was in 2004 once he announced on NBC's Meet the Press that he'd be in favor of disallowing General Electric from owning NBC. He will have more than a little trouble getting the White House Correspondents' forum back again for similar comments. Making this into a triumph for "free speech" is missing the point by as wide a margin as the adminstration missed so many calculations about the Iraq invasion.

It's one thing to march into the lion's den and yank a fistful of hairs from his mane. It's quite another to march into a den full of people who think they're lions and rub their noses in the fact that they're nothing more than fat, spayed tabby cats who are less interested in exposing the powerful than they are in curling up by their feet.

That's what Stephen Colbert did at the White House Correspondents Dinner, and for his perfidy he will now be subject to their endless mewling and kitty-kat clawing. Even if he loses his nerve and backtracks with an apology — something I don't think for a second he would actually do — he will always be their target. After all, the eunuchs of the court were often the most devious and vengeful of the players surrounding the king...

Colbert's performance was a display of wit at its most lethally cutting. He went into a room with the most powerful man in the world and his courtiers, and he excluded them from the land of the free and the home of the brave.

If the White House courtiers had an ounce of self-respect, they'd all book a flight to Alaska, find a good-sized ice floe and shove themselves out into the ocean. Instead, they'll just go about their routines. They may walk funny for a little while, after the way they've been used, but after six years of covering the Bush administration, they're probably accustomed to that kind of thing.

Daily Zen

Daily Zen...

"You’re traveling beyond hope of return"

- Hsieh Ling-yun (385-433 C.E.)

I Have A Brief Statement...

The Daily Show and the Colbert Report are two of the three television programs that I know of where real news is reported. Democracy Now is the third, and ranks above the comedy shows. TDS and TCR though are simultaneously the two comedies worth watching. (If Amy Goodman could even just learn to crack a smile once and again...)

Colbert has balls, so view the videos and thank him for what he did to Washington and the press. Some people are arguing that it was uneven or did not have a comedy crescendo. I thought it was hilarious in places but to be appreciated overall just as a supreme "fuck you" to the establishment in Washington.

Even by TDS and TCR standards, he blew past them in an opportunity that he may never have received again to spell it out plainly right to the president's and the press' faces... the establishment is circling the drain in credibility, so stop with the games.

"It’s not just that Colbert’s jokes were hitting their mark. We already know that there were no weapons of mass destruction in Iraq, that the generals hate Rumsfeld, or that Fox News lists to the right. Those cracks are old and boring. What Colbert did was expose the whole official, patriotic, right-wing, press-bashing discourse as a sham, as more ‘truthiness’ than truth."

-Michael Scherer, Salon Magazine

From Colbert's "audition tape" for the White House Press Secretary's job...

"I have a brief statement. The press is destroying America."

Tuesday, May 02, 2006

Losing the War (No, not *that* war)

If Microsoft looks at Ruby as competion then Microsoft has already lost the war, let alone the battle. Whatever happened to that IronPython thingy? I thought that was supposed to make any agile language first-classable on the CLR.

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.