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

Search This Blog

Wednesday, April 28, 2004

Vacation Ideas for N. California

Jeremy Zawodny is looking for vacation ideas in northern California.

A fascinating stop driving north on 101 is the Solar Living Institute. You can take in a workshop or just do a self tour for an hour or two on your way to somewhere else. 90 some miles north of S.F. The site is also home to the Real Goods store.

If you want to drive a bit further (20 mi. south of the Oregon border), I highly recommend the Smith River and the redwood forests around Jedediah Smith Park.

Some of those forests have the distinction of being the location for filming the Return of the Jedi.

Self 4.2.1 with optimizing compiler for Mac OS 10.3

Sun has released a new version of Self (4.2.1), including a port of the optimizing compiler for Mac OS 10.3 (Panther).

If ever there were a reason to go out and buy a big ass Mac box, this would be it.

A Self tutorial in HTML.

For Camp Smalltalk

In a message to the Camp Smalltalk list I wrote...

I'm interested in learning Seaside. Additionally, I've been wanting to learn Mozilla/XUL, and how it is different from HTML.

Here's a bit more of what's been forming in my mind...

  • I implemented a "Naked Objects" like system in Jython and SWT, late at night, a couple hours at a time. A Naked Objects user interface is non-modal.
  • I'm ultimately interested in something like the "Object Lens" which is kind of an enhanced Naked Objects.
  • Related to this is the Haystack system, which also makes interesting use of continuations for "rich" user interfaces. These kinds of continuations could allow a NakedObjects GUI to be "end user customized" into a more "task-oriented" user interface without much scripting, if any at all.
  • Smalltalk is a good platform for something like the Object Lens.
  • Seaside might be a good platform for something like Haystack's particular use of continuations, which granted is not as intensive as with HTML but at least as interesting.
  • XUL might be a good platform for user interfaces for these kinds of systems because the interaction is "rich" and yet these systems still use a relatively fixed set of interactions. The Javascript could be canned at design time and downloaded from the Smalltalk server.
  • Mozilla does support extensible scripting via XPCOM (Cross-platform Component Object Model). Javascript is the default, but there is a Python binding. Smalltalk could be a good candidate too.
I write hardly any code anymore, hardly any for the last few years. This summer I'll spend a week at Camp Smalltalk, which might be a good chunk of time to march somewhere down this list, whether or not someone wants to join in on my specific agenda. Certainly that'll be more time than I piece-mealed into the Jython code last year.

Bad News for Ruby

In Ruby, it's close. I got a factorial of 1,000 but once I hit 10,000 I got a stack overflow.

Advantage: Lisp

But the general feeling I have is that Scheme's match syntax is like having the power of a regex, but at the markup level, instead of matching on the raw text.

Exactly. Most languages can only dream of this simplicity.

Friday, April 23, 2004

Angels dancing on heads of pins and all that

We used to see all kinds of analysis of what kind of C code is generated from the original CFront pre-compiler for AT&T's C++. The C programmers were obsessed. We still see the same kind of obsessions in the dotnet world for some reason, much more than we saw in the early days of Java.

In Smalltalk (yeah, I know: it's "nyah! nyah!" time again) all "control flow statements" are done by sending objects messages. This "hard coded" statement...

for (int i = 0; i < foo.Length; i++) {}
becomes this message send (named #to:do: which can be redefined, inherited, etc. as with any message)...
1 to: foo length do: []
...and then we leave it to the compiler to generate efficient code most of the time, and get on with our lives.

If you are worried about the efficiency of a for loop in C#, more than the number of iterations, and more than the efficiency of the body of the loop itself, well, then might I suggest you are either worrying about the wrong thing or you are using the wrong language.

Angels dancing on heads of pins, and all that.

Wednesday, April 21, 2004

More good stuff bouncing around the blogs on distribution models

Bill de Hora leads to the conclusion (IMHO)...

a transactional blackboard... if we were doing Java middleware over tommorrow, Jini/JXTA would be where to start, not J2EE.

Yes, because even more than "service oriented architecture", I believe developers, at least back in my day, understood the concept of distributed coordination via a database.

"If I put something like this there, then something like that happens, and I can look later to find one of those things."

Continuing...

Todd... says objects are not a good model for services.

Agreed. Objects are a code management mechanism. No more, no less. If you need to manage code on both ends of a connection, then "distributed objects" might be a benefit to you. It's still just about code organization, though.

Relax

Reportedly Microsoft (or I assume some contingent within Microsoft) writes their schemas in RELAX NG and then translates them into W3C XML Schema Language. What's that last step for?

More interesting statements from the XML community via that link...

XML syntax may not be right for all applications

XML is like...

XML is like cardboard (huh?) because it is...

Protective - Cardboard protects the contents in the box and what's more it does not matter what the size of the box is, it is the contents that matter! How many times have you been sent a huge box just for that memory SIMM card, hard drive or other piece of electronic equipment? You have always been glad to have a big protective cardboard box. Same with XML. It does not matter that the format for messages can be verbose; it is the contents of the XML that matters and ensuring that it is safely delivered.
I'm sorry. Pause. How is XML protective? What are they drinking up there in Redmond?

When it rains it pours

Turns out Alan Kay also rec'd the Draper Prize, along with Butler Lampson, et al. Words of wisdom from Lampson, via one of their colleagues...

"The design rule for the machine was that it had to be as simple as possible, Butler (Lampson)'s approach to that was to make something that was too simple and make us argue why we couldn't live with that. And he set the bar high before he would add another feature."

Found on Jim's site. His chosen quote is also a gem and a half...

Kay added: "I have said to powerful computer industrialists: By all means use the ideas, but please try to understand and use the entire idea, otherwise what happens are the gross caricatures so often found in commercial vendor software. The evidence indicates that they didn't understand or heed my request."

And now back to our story on how XML is like cardboard. Sigh.

Language as Mechanism

Perhaps we should ask if this the right road to go down - at what point does the kernel become an interpreter? Maybe what we need is not a middleware container, but a middleware interpreter.

Also found in the same post...

I once described Eclipse as a $40M port of Emacs to an IBMer - which [didn't] go down too well.

Love it.

Glad

Yes, but I am *so* glad it's not CORBA! 8^)

That's the main thing.

Tuesday, April 20, 2004

They *Are* Your Airwaves

MIT World on the Emerging Media Landscape. Don't be afraid, be active. Portland has a vibrant community radio station.

In commercial radio, mass consolidation has left small towns without local news. When a South Dakota town had to evacuate for a chemical spill, authorities phoned the only local radio station in town only to find the phone being answered in San Antonio, Texas. "After 20 years of thin gruel...the public distrust us. We give people informational comfort food and they don't believe we provide balanced information."

Reasons to be worried

I would be especially worried if updates to my tools were focussed on crippling my designs to protect you from the classes I give you. (And especially vice versa! 8^)

Over the last 30-40 (thirty to forty!) years how many times were crippling features added to Lisp or Smalltalk, or their toolsets?

g00se egg.

Middleware Dark Matter

Jon Udell on middleware, um, "matter" and "anti-matter"(?)...

Plus the middleware universe is ever-evolving. Decisions I'm facing this week are depending on a cascading set of product version availabilities from generations of middleware on the IT roadmap.

There is not today, and probably never will be, a middleware Utopia. Post-modern middleware is how I would characterize this experience and what I think Jon is getting at.

Get the word out

Reasonable advice on subclasses for languages that basically suck.

Which OS are you, again?

Damn. I'd pay money for that one. Even more for the Lisp Machine OS.

An excellent discussion of the Powell Doctrine and the Rumsfeld Doctrine. One a success and one a failure. It also demonstrates the dysfunctional aspects of this administration, the inability of the State Dept. (Powell) and the Defense Dept. (Rumsfeld) to work together in any sort of collaboration. We see it today, when we are sending Richard Armitage to the Middle East to curry favor with the Arab states, days after Sharon gets the administration's blessing and a Hamas leader is assassinated. Should be a nice mission.
I am neither a registered Republican nor Democrat. I "vote the candidate" not the party. This usually translates into a "lesser of two evils" vote.

This year, it's a no brainer. In fact, that's my greatest fear for my children.

Math Joke

From one of my favorite contributors to Lambda the Ultimate...

Frank Atanassow - Re: Tunneling Variables  
4/20/2004; 11:07:06 AM (reads: 101, responses: 0)

The markup language community is notorious for reinventing and duplicating concepts and terminology, sometimes even their own. Thus they have "minimum literals" rather than "string literals", "parameter entities" rather than "macros", "templates" rather than "procedures" or "functions", "validate" rather "type-check", "data binding" rather than "translation", "unmarshal" rather than "parse" et cetera.

I long ago gave up trying to get them to use conventional terminology; for them to acknowledge prior art would require them to acknowledge some unpleasant facts, like that story about the emperor and his new clothes.

OTOH, there are typically a dozen, largely pointless, technical reasons why one should use more conventional names for most of these things; their semantics differ in some corner case, or has been made more convoluted to handle some special situation which could actually have been handled more cleanly and less artificially by generalizing some other construct. (This is what I discovered when I wrote a paper based on a formal semantics of XML Schema.) Probably tunnel variables differ from implicit parameters/dynamic scoping in such a way.

It's really a big mess. I try to stay out of it. Let them build their sand castles where they like. Next year they will publish another twenty W3C recommendations and ISO standards to address the special cases in the corner cases at the fenceposts anyway.

Note: We're all using the wrong tools for SOA

Note that throughout this WSDL, er, CORBA, SOA, er, Distributed Objects, er, Erlang thingy, note one thing:

All the languages we'll be using in this brave new world, er, suck at it, except for, er, Erlang and Lisp.

Smalltalk is not even set up well for this approach. Lisp is as good as Erlang in this regard because:

  • The syntax is conducive to extending it for anything, especially pattern matching.
  • Classes are not required to define everything.
  • Several Lisp implementations support Erlang-scale processes, or nearly so.
  • The "core" syntax can be redefined *easily* to handle (or disallow) global references, etc. as desired.

Smalltalk would be a reasonable choice, aside from the somewhat awkward syntax for pattern matching because:

  • The syntax is simple.
  • Tools can be defined to easily define classes, including patterns, for you.
  • The "core" mechanisms, even the compiler, can be redefined easily to handle (or disallow) global references, etc. as desired.

Can't do much of this at all in the popular Java-like languages. They lose again.

Could do some of this in Python and Ruby though. The four better dynamic languages: Lisp, Smalltalk, Python, and Ruby.

WSDL and the New Reality

And now for WSDL in that discussion over there and beyond... I don't know whom to point to in this.
Ironically enough, the same problem faces WSDL right now--particularly with all these vendor toolkits running around, claiming to take your existing Java or .NET interface and create a WSDL document out of it, how can you NOT assume that WSDL == IDL == object interface?
In any case, should we admit that the WSDL and SOAP contingent switched horses mid-stream?

I'll admit this was a good switch, but it was a switch nonetheless.

The interesting question is are programming languages adapting to the new reality?

Java is taking on some steps to support isolated virtual processes. But what about others? What about pattern matching?

Kay to receive the Turing Award

If anyone is due, it would be this person. Alan Kay to receive the ACM Turing Award for his innovation of Smalltalk.

The "Oy" comment in the article: Today, the language is credited as the model for C++ and Java.

Oy.

Nevertheless I cannot wait for his Turing Award lecture. This would be worth attending in person. He tends not to hold back.

Another good introduction to Alan Kay.

Monday, April 19, 2004

XUL-balicious

Jon Udell on Mozilla...

Could InfoPath have been built on a Mozilla foundation instead? You bet. And the result wouldn't just be a great Windows application. It would be a great application, period.

Another apt quote of the day

Sometimes the truth hurts...

Let's be honest; anyone who thinks hype isn't of the essence in the software industry is selling something ;-)

SAP

SAP's Shai Agassi. I like what he's doing for SAP, but I'm not sure from this interview how much he really gets it.

A lot of potential.

Thumbs in the Dike

This story about corrupting firewalls might be a good spot to remember that firewalls are just another thumb in the dike, although we've come to think of them as "the way" to insulate us from the evil on the wild, wild Internet. Note that capability-based security would be the real innovation.

Microsoft?

Our Leader in the U.S.

Bush and science, or ignorance, depending on how you look at things.

Comparing Erlang and Smalltalk

Bill de Hora compares Erlang and Smalltalk message passing...
Joe Armstrong describes Erlang as a concurrent pure message passing language. Which might be characterized as Smalltalk on steroids. There's a lot of confusion around what is meant by 'message passing' in Smalltalk. Conceptually I think Smalltalkers are talking about message queue type messaging and in some cases asynchrony, but physically I understand Smalltalk works like Java or C++, i.e. it's jumptables, and pointers all the way down. Hence the confusion, but I trust someone will correct me if I'm wrong about this.
Yes, in Smalltalk a "message pass" is a synchrononous action. The mechanism is more flexible than with Java-like languages... the receiver has the opportunity to intercept the message. But yes, it is a synchronous "request/reply".

I think this is more a result of the original implementations of Smalltalk in the 1970's rather than a specific desire by Kay, et al. My guess is they were more concerned with encapsulation and less concerned or even knowledgable of the asynchrony issues. Although process classes have been around since then, so I should go back and read the paper. From the early history by Kay, emphasis is mine...

Smalltalk's design--and existence--is due to the insight that everything we can describe can be represented by the recursive composition of a single kind of behavioral building block that hides its combination of state and process inside itself and can be dealt with only through the exchange of messages.
Interesting experiments have been done making deliberately asynchronous Smalltalk-like languages, specifically with the Actors languages at MIT, UIUC, Japan, and elsewhere. (Intersting side note is the prevalence of continuations in these designs.)

Yes, programming in Erlang message loops is a lot like designing cooperative "active objects".

Life as we know it

Something memorable...

"People only change when something is dramatically wrong, forcing them to reassess. Otherwise, dysfunctionality is preferrable."

Saturday, April 17, 2004

Erlang as a Paradigm

Patrick Logan implies that the solution to having an SOA model inproc is Erlang.
I am pleased Steve Loughran is taking a look at Erlang. He's a smart guy so I'm interested in his response.

Instead of "solution" though I would say "paradigm".

The origin of the name Erlang is in the history of telephony.

2010

For my money, you either design for inheritance (and this is not an easy task, folks--it requires a tremendous eye for possibility and detail)--or it needs to be prevented.
Again, this is because for all the mechanisms in Java-like languages, they still do not support the reality of software development. Developers get into trouble, and rather than make the developer's life easier, the language designer introduces another kind of straightjacket.

The problem is the straightjacket, not the lack of ten kinds of straighjackets.

Friday, April 16, 2004

Outside, Looking In

The more I see and read from the MBF folks, the more I realize they should be in charge at MSFT. Just hope all the Whidbey/Longhorn nonsense doesn't slow up the good stuff.

MBF, meet MicroWorkflow

Tim Brookins is just the MSFTie who should take Dragos to lunch, based on his critique of BizTalk...
But that doesn't mean that it doesn't need some improvements to meet our future challenges. ?Coordinating XML messages between applications? isn't quite the same thing as ?coordinating work between fine grained services?.

Enough

OK, I got all that out of my system. The rest of my day can be 100 percent cynicism free.

Micro-workflow

OK, if you *are* still interested in SOA tomfoolery, and you've turned on to Erlang, the next thing to consider is Micro-Workflow.

If any Microsoft employees read this cynical blog of mine, please note that Dragos Manolescu is probably up in Redmond today working on some stuff for you. Take him to lunch.

Erlang, please

Part of a winding blog thread on what is a "service" in a "service oriented architecture".

Owing to the fact that I am losing interest in SOA bullshit rapidly, I will make one reference to those that have the answer to all this "in proc" hullaballoo.

Suckage Begets Suckage

Witness the continuing crappage.

What if...

If Sun had gone with Smalltalk rather than Java, where would they be now?

If Microsoft had gone with Smalltalk instead of C#, or way back in the 1990's when they could have forged something with Digitalk instead of their long and winding DCOM fiasco.

If IBM had simply *stuck* with Smalltalk instead of jumping to Java.

The head spins.

What if the Momenta management team had been competent?

Oh Great

You are Apple Dos. Simple and primitive with a good understanding of the common man.  You're still a work in progress, but a good start.
Which OS are You?

Getting more bad WinFS vibes out of my system...

Jeremy clarifies the WinFS plans, sort of.

Getting more bad dotnet vibes out of my system...

Another proposal to take objects out of dotnet.

And we only have to wait until 2010!

Let's try to reconcile this...

I think it's going to take until 2010 until we really see the simplicity of Lisp come back to "commercial" programming systems.
with this...
The whole 'partial' implementation of classes will come as a bit of a shock for most old school OO developers, who would probably cringe at the thought of implementing the class in different locations, using different languages for each implementation -- it seems quite messy and unstructured. But if we step back for a moment and think about the possibilities of using this style of code, we can see that its more than just having classes written in different languages, and in different locations -- it's about splitting the 2 layers, control and presentation.
Seems quite messy and unstructured.

WinFS: You need to think different

I offer another invitation to rethink the WinFS problem before it's too late. For example, what if you were to drop the idea of a schema?

Instead of trying to squeeze a database as you know it into a file system, how could you make a database more dynamic?

Slice the database in a different dimension. Throw it in a linear accelerator, smash the database particles, and see what you get.

Think "outside the box" instead of just trimming one box to fit inside another.

Thursday, April 15, 2004

Ted Neward writes...
Ahh, components. Anybody heard this story before? I remember hearing it with objects, then components, now services.... Look, we've had ways to partition our code up before, and we've failed to take advantage of it. Note that I say that very deliberately: we failed. Not "the industry hype wore off", or "the technology couldn't deliver", but "we failed to use the technology as it was meant to be used". We've had our chances to build apps and systems out of constituent parts. The problem is, we've never done it. Or at least, not on any recognizable scale. What makes you think this time around will be any different, Harry?
Well, this time we have XML. 8^)

Monday, April 12, 2004

Did I call it?

From The Register reporting on a Business Week article...

WinFS appears to be the main casualty, having already been curtailed. A year ago Microsoft confirmed that Longhorn wouldn't, as expected, introduce an entirely new database storage architecture in which file systems NTFS would be a plug-in. Rather, Microsoft would add database like properties to NTFS. Business Week reports that the new features of WinFS will only work on local storage rather than across networks. That's been pushed into Blackcomb, which is way out towards the end of the decade.
Allow me to toot my horn for seeing this one coming over a few items I posted in recent months.

To reiterate I think the problems being addressed by WinFS are far better addressed not as a file system but by rethinking "the database". But then that would even more directly eat into the SQL Server cash cow. Either way, there are some tangly knots along the way that had simply been bypassed in the several WinFS presentations I've seen.

This is a good call, but too bad Microsoft has put countless hours into the WinFS over a decade now, if you count the origins back in Cairo-pre-Win95. If I read the above as WinFS will always be a "local file system" capability, then this is a total loss. Come back when this thing understands multiple users and runs on the network with location independence.

i.e. Come back when it is *really* a database, but not complex and not naive and self-managing... this is not easy.

Reports from Redmond suggest that the Avalon UI archtecture and the "managed code" API are also likely to be trimmed in order to get this most reluctant of steers out of the gate.
Two for two? Can we say goodbye to the waste-of-time XAML yet?

Saturday, April 03, 2004

Of Sun and Java

James Robertson being insightful on Sun and Java...

What truly amazes me about Sun is their business plan - Java loses them money, costs MS little or nothing, and shovels money at IBM. It's an amazing thing to watch, really - business schools will end up writing case studies on it.

Oh, irony.

"Modal" or "Continuation-based"?

I vote for "continuation-based", I hope I'm not too late. You don't know how long I've been waiting for continuations to have their due.

I understand the rationale for "modal". The name just loses some of its sex appeal. Maybe it loses some of its mystery, and maybe that's a good thing.

For the sake of the technique in web server implementation, the value of "modal" is to point out even less expressive languages can be used.

I'd personally rather see those more complex implementations be accompanied by an apology along with a nod to the simpler and more expressive (and longer lived, Smalltalk (early history) and Lisp (Evolution of Lisp, scroll down to the essay)) languages that enabled the discovery in the first place.

More Crap

Unsafe fixed arrays (of values only) in the 2005 release of dotnet?

These arrays are stored inline, and, I believe, only work with value types. Since length information is omitted, no range checking is performed; hence, code that uses this feature must be declared unsafe.
Didn't someone say something once about piling feature on top of feature? Oh, yeah. It's from a well designed language that has lasted more than 25 years and yet is the foundation of some of the most innovative work on the web today.

Friday, April 02, 2004

Air America Radio and Operation Northwoods

I'm loving the new progressive talk station, Air America Radio. Streaming internet, or if you live in a handful of cities (including Portland, Oregon on 620 am) you can listen in your car. You can also stream the Portland station on the Internet if you want the Pacific time shift. Air America itself streams the New York station.

The "morning sedition" program today mentioned Operation Northwoods, but laughed it off as a conspiracy theory.

Nope. See the National Security Archives at George Washington University.

Released through the Freedom of Information Act (which the current administration would like to narrow), documents signed by the Joint Chiefs of Staff in the early 1960s reveal their intent to stage fake "terrorist" acts within American cities and on American troops in order to incite support for an attack on Cuba.

Could that happen again in America, in the 21st century? Why or why not?

How Common Lisp Survives

Via Bill Clementson's blog, an explanation of how Common Lisp survives, i.e. by being what might be called a language and a "meta" language rolled into one. By contrast, we have Java which can be extended, but the implementation of the extension is itself "outside" the language. (Oh, it might be implemented *using* Java, but it is not implemented *within* Java.)

Kenny's Cells is Common Lisp. Uncommon SQL with its embedded SQL reader macros is Common Lisp. The LOOP Macro is Common Lisp. Uncommon Web, with its limitations and limited CPS macros, is Common Lisp. CLOS is Common Lisp. Garnets KR is Common Lisp.

But, for example, AspectJ, is not Java. Java like, Java inspired, sorta looks like Java, Works with Java, but not Java. They could have done Aspect C++, or AspectPython, or AspectIntercal.

Why the distinction? They had to go outside the domain to implement it. If I throw an AspectJ program at a system that 'knows Java', it will go 'WTF? THIS isn't Java.'

You can not extend the Java language.

Of course the same is true of C#. Consider the popular Xen experiment. If C# were Common Lisp, you'd be able to use Xen already.

Smalltalk operates a bit differently than Common Lisp, but again it is the simplicity of the language and the openness of the implementation that keeps Common Lisp and Smalltalk alive after 20-30 years. And why we will wish Java and C# were dead five years from now.

MS/Sun: The Real Story

Jim tells it like it is. Period. End of sentence.

Tuesday, March 30, 2004

Cynical Attack on Free Speech

Do you know the Federal Election Commission is taking comments on a proposal that would greatly reduce your right to free speech, especially where that speech would be in opposition to a holder of political office?

Read more. (pdf)
Search too.

Monday, March 29, 2004

Healthcare in India

Healthcare in India...

India's public health spending is among the lowest in the world - $4 a person per year, less than 1 percent of its gross domestic product, the United Nations Development Program says. The United States spends about $2,000 a person, or almost 6 percent of gross domestic product.

But India's experience also shows that more money alone is not the answer. India sharply increased its health spending in the 1990's, but most went for new hiring and for pay raises to those doctors and nurses who are not showing up for work, according to a World Bank analysis.

Sunday, March 28, 2004

For the record...

This should be the tag line for my whole site...

For the record, this is a "rant", so it is devoid of research or prior preparation. It's not a term paper, an article, or a thesis, it's a weblog entry. (From Michael Earl's blog)

Friday, March 26, 2004

Designing Interactive Systems

The Craft of Text Editing, by Craig Finseth, is on-line. I remember reading Craig's MIT technical memo, which is a progenitor to his book, in the early 1980's.

If you like reading code, you probably also like reading about designs and patterns. This book is not just a description of an Emacs-like editor, and it is not just about text editing in particular.

This book is about software design and patterns that can be implemented in interactive systems in general. If you are designing an interactive system today, you should have this book digested as part of your vocabulary and design pattern library. Period.

Excercise to the reader: if you typically buy a book that explains how to use a specific language, library, or framework, you will additionally benefit from reading older sources like this. Try translating these ideas into your system of choice. This excercise includes low level details like translating from a pull-based command loop to push-based event handlers. So for example what would an event handler system look like to incorporate Emacs-like keymaps? How might this make your design simpler and more flexible for advanced users with modes and sub-editors, etc.?

What is, er, was Hypercard? A rare gem...

From a software architecture point of view, HyperCard had a number of interesting ideas which might bear reexamination. At a time when persistent object stores were still novel, HyperCard was built around one. It's not going too far to say that its user interface was simply a reification of the object database. HyperCard's programming model was object-like, but didn't fall neatly into either the class/instance or delegation styles. Individual visible cards in a stack were created as instances of prototypic backgrounds and could be pre-populated with text fields and action buttons. Default message passing was an odd hybrid of visual containment and fixed object hierarchy. These features, plus a very texty scripting language, seem to have made for a very approachable tool for the nonprofessional coder or database creator. (To my knowledge there was never a study of programming usage and usability of HyperCard. A real gap.)

If you've never created an interactive stack in Hypercard, you've missed one of the rare treats in the history of software development.

I hope some of the lessons you taught are passed on to new projects that allow just plain folks to try out coding and authoring.

Wednesday, March 24, 2004

Peme

Danny Ayers passes on a meme about images googled from your first name. Yeah, but look at Danny's compared to mine...

Works for Danny, I guess. 8^)

Monday, March 22, 2004

More Debunking of the Dynamic Language Myths

From lemonodor...

Lisp is Slow (NOT!) summarizes a comp.lang.lisp thread in which some knucklehead said “lisp is slow”, and furthermore that

The best known non-stupid (real problem, any algorithm) benchmark is probably the Coyote Gulch test. There are many languages that it has been translated into. If you can produce (write or find) and post a Lisp version that is within 10% of C performance, I will admit that #1 [lisp is slow] is incorrect.

Within a few days a collaborative programming and optimization effort paid off with a lisp version of the benchmark that was about 2% faster than the C version.

More on the Rise of the Continuation

News via Ted on a potential Kali-like mechanism for Stackless Python...

One interesting(?) thing I learned is that you'll be able to pickle tasklets, which could be used to simulate continuations (this seems like it would be slow), and could also be used to migrate tasklets to a different machine where they could be unpickled and resumed.

His entire Day 2 report from PyCon 2004 is action packed.

Code Reading

Blaine reads code, especially Smalltalk.

There's such a plethora of code out there in Smalltalk land that is entertaining to see how "they did it". For instance, I was surprised to see how small the continuation class used in Seaside was.

Agreed. (Too much?) time can be (well?) spent clicking around the code browsers.

I think it's a good thing. Also trying to get it to execute to a point you don't completely understand. Put a self halt in there and see what happens. Why didn't it get there? Poke around, oh, I think... cool! Look up the stack.

There's never a question of "Did they compile this with -g?" and "Did they provide the source code?"

Irony Dept.

Listed among the proposals for future Mozilla features...

creating a XUL builder plug-in for the Eclipse platform

Sunday, March 21, 2004

You and Me and the FCC

From Blaine's site... say no to censorship.

Open Source Desktop and Components

Miguel gets all postmodern on us...

I personally think that we should move away from the "Linux Desktop" view of the world, and more into the "Open Source Desktop and Components" (I first heard this idea from Nat a few months ago).

It may sound like a trivial difference, but it is not. As much as I love the Linux desktop, and as much as I love our tools, the most successful desktop components today are OpenOffice and Mozilla because of their cross-platform nature.

Windows NT, XP, MacOS X and Longhorn will be with us for a long time. The best possible outcome of open source will likely be a segmented market like 33/33/33 for the desktop market.

Contrary to his previous statement about the Longhorn API, the quotes here nail the only workable reality head on...

The best bet today is to share as much as possible on your "engine" and redo the OS integration components for each OS you support.

By the way, since this postmodern approach is inevitable, the light cast onto the Longhorn approach (seemingly "all or nothing") appears very dim indeed.

The End of Days: Pisces to Aquarius?

From Miguel, looking through his Mono-cle

In the Longhorn world, APIs are no longer your C/C++ grandmother APIs. Every new API introduced for the operating system is built on top of .NET. If you want to take advantage of it, you must write .NET code.

I'm not sure what to think of this yet.

Consider right now CPython, VisualWorks Smalltalk, Haskell (GHC), PLT Scheme, etc. all access dotnet from the "outside looking in".

Consider also that by the time of Longhorn ships (what? 2007?) that interoperability between processes and nodes will be some N times faster and it is already quite acceptable. Passing messages to Longhorn services will be a common mode of leverage.

I have no doubt that an Internet OS can yet be built in a vendor-neutral, post-modern fashion, of which a Longhorn computer is just one small legacy library. Think about it.

It's all about the wire, right? Isn't Longhorn the last gasp of a PC mindset? (BTW, Longhorn can't suck until it's released... reportedly three years from now. This should be plenty of time to reduce suckage.)

Excercise for the reader: Look through the Longhorn material. Make a note of every feature that appears to be caught in the muck of the 1980's PC, or at best the 1980's high-end workstation.

A post-modern Internet OS lives above that muck, diving down as necessary, threading all the pieces together in new ways.

Roll On Floor, Laugh Out Loud

From Steve Martin's "script notes" on the Passion... hilarious...

Merchandising issue: it seems the Cross image has been done to death and in public domain -- we can't own it. Could the Cruciifixion scene involve something else? A Toyota would be wrong, but maybe there's a shape we can copyright, like a wagon wheel?

Another Human Interest Story

I'm sure glad they caught Martha Stewart lying about, uh, not commiting the crime she was found not guilty of. Meanwhile, Dan reports more of the real sleaze.

It never ends? Not according to ABC's John Stossel. He says markets will always regulate themselves.

Oops. Looks like Stossel himself needs some regulation. Caught in a few "misleading" statements.

Saturday, March 20, 2004

What Phil is up to

Look what Phil is up to... he's got himself involved with a dynamic-oriented company unafraid to think out of the box.

Why American Computer Science seems incurable

Update: Related or coincidence?

Edsger W. Dijkstra with his typical insight and phrasing (he is missed)...

For the sake of the stability of the enterprise, the ideal of its manager is an organization that is as independent as possible of specific abilities of individual employees. The predominance of this ideal is a well-documented, international phenomenon; the ideal itself predates the high-technology industry, in which it could very well be inappropriate, and has discouraged the industrial eployment of scientists, in particular of the brilliant and original ones.

The American situation is aggrevated by a total lack of faith in its educational system and a deep-rooted mistrust of intellectuals...

Accordingly, prevailling industrial attitude exerts a strong pressure on the University not to indulge in such hobbies as scientific education, but to confine itself to vocational training of some sort or another.

Toward a Victory for Linda

Mark and others have more thoughts on which analogous architecture can claim victory by correspondence with the web. I could not assign victory to Linda derived primarily from the use of rd. This is the least unique aspect of Linda, i.e. some form of it exists in every distributed architecture.

That's from the distributed architecture perspective. Now consider the prominent developer perspective. Here the victory belongs to Tuxedo. This view is client-server with transaction management in the middle. The web server is a commodity Tuxedo. This is what Greenspun figured out, but Sun did not.

Linda can claim victory when the prominant developer perspective becomes based more on inp, rdp, and out, and when the developers of the middle are more interested in their peers than their own rear ends.

Scripting, Agile, Dynamic?

Bill documents the growing interest in simpler languages and wonders about the right label for them.

I've always liked the term "dynamic programming language".

Tuesday, March 16, 2004

Memorable Quote

Tim Bray writes...

As Jim Gray has been saying for some time now, "Memory is the new disk. Disks are the new tape." And I think enterprise applications aren't architected taking that fact into mind, and I have definite ideas how they could be.

Lisp and Trees

Gordon writes...

I don't know of a naturally tree-structured language (setting aside XSLT, which isn't a general purpose language), though maybe Prolog would qualify.

Why not Lisp as a "naturally tree-structured language"?

Lists are constructed and destructured really as trees, less frequently as flat, single level lists. From list pattern matching down to the traditional list primitives (car, cdr, caar, cadr, ..., cdddar, cddddr), Lisp and lists have been manipulating trees.

Linda and the web: victory?

Linda - or something very Linda-like - did change the world; the World Wide Web.

This is an interesting statement from Mark, but I would not count this as a victory for Linda. Yet, anyway.

By and large, developers to date have not really used the web for automated coordination across sites.

Kali Scheme, continuations, and distributed programming

Another thought on web continuations and congruence with other applications of continuations: Kali Scheme.

The work with Kali at NEC demonstrated how to simply implement a number of common (and uncommon) distributed programming patterns (Postscript) using serialized continuations.

Continuation Congruence and Irony

The congruence is thrilling. The irony is equally (but oppositely), er, non-congruent, that this obscure concept (definition, rationale, and history) of a continuation, hanging around, awaiting its time in the spotlight.

The neat thing is these web continuations (and these) are very much like Haystack's closures/continuations and they are also like Waterken's capabilities.

These guys are really on to something. "Hijacking" a session is essentially giving someone the capability to do some work. You have the ability to pass these capabilities on to others, or not.

The ability to add "meaningful path segments" to a continuation-based URL is kind of like giving it a Pet Name.

Saturday, March 13, 2004

Leveling the Playing Fields: More for All

And most of all, Cook wants to fix health care. ?When you move the work to India and China you get an immediate $6,000 savings right there,? he says. ?It?s huge.?

Who pays for this savings? Healthcare in these countries is horrible, especially for the millions of poor people who don't work for the elite corporations. The infrastructure, aside from what the elite corporations are building for themselves, is equally horrible,

How can a country, such as the US, that has taken such advantages as to provide at least a reasonable amount of healthcare for most people, as well as sanitation, transportation, and many other services for all, compete with a workforce not based in an equivalent healthy society?

I think there are two imperatives:

  • One, corporations moving operations to poorer societies should share half of their savings with those societies at large. This would be an "international tax" for the benefit of lifting up the imbalanced, poorer societies those corporations are *taking advantage* of.
  • Two, the governments of the more privileged societies should legislate incentives and investments toward "sustainable" technologies and behaviors. We obviously need to do more with less in privileged societies that currently use more than our fare share of resources that make us "privileged" in the first place, and we need to set the course for those societies that will follow in our path.
These are two ways to "grow the pie" for all of us, to address imbalances that have been falling out of balance for decades with too little leadership. Discuss these ideas and others.

Thursday, March 11, 2004

Politics are *about* flip-flops

A list of Bush flip-flops to counter their list of Kerry flip-flops.

Is Oblivity a Word?

Well, at least we don't treat electronic voting any differently than we treat other critical computing activities.

David Hart, chairman of Texas-based Hart InterCivic, which manufactured Orange County's voting system, said it would be impossible to identify which voters cast ballots in the wrong precincts because of steps the company had taken to ensure voter secrecy. For this reason, an exact account of miscast ballots is impossible.

Wednesday, March 10, 2004

More on Smalltalk's Image

Ian points out...

The image isn't strictly required -- I believe GNU Smalltalk has no image, or at least got along without one at one time, and the Smalltalk-ish Objective C has no image.

And instead of a single-process image, Gemstone Smalltalk uses a multiple-process, optionally distributed obect-oriented database.

The Public Good

Chomsky... claims that in the last 30 years, the economy is working well because of public spending on such technologies as computers, satellites, the Internet and lasers that has fed the economy. And the wealth derived from these technologies has gone primarily into the hands of corporate masters, who represent a fraction of the American people.

I believe we need a public investment in photovoltaics comparable to the investment the US government made in integrated circuits in the 50's, 60's, and 70's. Goals for distributed, local-scale, electricity generation would be far more beneficial for the US and for democracy and freedom than a trip to the moon.

Tuesday, March 09, 2004

Smalltalk is *too* good for its own good

Begin Update:
Ian continues...

Smalltalk code feels organic and extensible, but it's not well congealed into something as distinct as a "program". The current computing world is a world of programs, not objects. Maybe we'll get to that world of objects, but there needs to be a path leading there that starts here.

So maybe my new conclusion is that Smalltalk is uncompromising in its vision, but the world is not ready for that vision.

Smalltalk is *too* good? I would agree that Smalltalk still (after thirty plus years) seems ahead of its time. But I've seen large programs in C++ and Java become far more unwieldy mostly because they lack the *tools* that make exploration possible.
End Update

There are too many places to begin refuting this critique of Smalltalk, but let's start here as a place holder...

You can't easily map C or other libraries into Smalltalk.

Wrong. It's been a while since I've had to map C to Smalltalk, but even eight years ago it was so easy I was calling SAP R/3 functions from Smalltalk with just a few lines of code, and just an hour or so effort (for the first time I called SAP R/3 from *anything* and SAP R/3 is about the strangest thing I've ever had to call from any language).

It doesn't help either that Smalltalk's OO nature encourages everything to be a framework, instead of building mere libraries, but that's a topic for a different day...

Let's hope Ian gets to this someday. I have no idea where he's going with this.

I think it's wrong to underestimate the problems with Smalltalk's system image...

Maybe listing *one* thing wrong with the image would be a start. One can criticize anything, but an image file is just a convenience that other programmers struggle to emulate more or less in other language systems.

Sorry, I don't see much in Ian's critique to sympathize with. Least of all the "it looks strange" argument. Sorry, get over that one already, or ignore Smalltalk altogether. It's that simple.

Monday, March 08, 2004

Ramkumar Kothandaraman writes about some of the business-level complexities I mentioned a few weeks ago. I wrote...

Although the infrastructure is still immature, the real problems for the enterprise are at the boundary where the services architecture meets the business architecture. The real problems of heading toward a world of rich services is how to get them to play at the business level. How do you keep them agreeing on a correct chart of values, a correctpart and product hierarchy, roles and responsibilities, up-to-date with engineering change notices, etc.

As Rumkumar points out from his experience...

[It] is very easy draw service boundaries that may create data related problems later on...

things started falling apart the moment we started integrating different services. The main problem we faced was that the 'Customer' entity is required by all the systems...

So, we went down the path of building a common module (system of record) for common entities. Things worked for a while, before we got into implementing a scenario that actually required a cross-join between product entity and a related entity owned by order management service...

So, what is the solution? Here is a practical one. "Try to share the database between related services.“...

For example, think of your favorite ERP system (SAP, Peoplesoft etc) as a business service that exposes one more services - one for HR management, one for Inventory, one for Order management, one for Accounting etc. But, they all share single logical data model. Ever wondered, why big ERP systems such as SAP have a single database that contains the tables required by all the modules? I tend to think this is the reason why they did it.

This problem is not insurmountable, but neither is it easily solved. Note this problem has nothing to do with your business and my business agreeing on a common Internet data model. This problem exists solely within the intranet of your business. This is just the tip of the iceberg toward a complete "service oriented architecture".

Note also I suspect vendor consolidation will accompany the move to SOA...

These are not insurmountable. To reiterate I believe the movement toward an SOA will be preceeded by a movement to realign IT for the enterprise architecture and go hand in hand with vendor and product consolidation, and less custom development.

In part this could support "service" vendors to actually gravitate around *databases* as a coordination mechanism rather than pure services, with some services privileged to create and update certain domains of data. Realizing this from experience through vendor agreement and implementation may take some time however.

Saturday, March 06, 2004

Does Ted Rall exist? Scary

The New York Times website has pulled the cartoons of award-winning cartoonist and author Ted Rall, because the cartoons offended some of the website’s more conservative readers.

Now, newspapers and websites shuffle their cartoonists and columnists all the time, but what’s really troubling about what the Times has done is that they have taken Rall out of their archives. It’s as if he never existed!

The fear that newspapers would edit the past was one of the big concerns voiced in the 1990s when newspapers started going online. Many editors said that this sort of thing would never happen --- that they would never stand for it. And yet now, at the publication that sees itself as the leading news outlet of the free world, it’s already started to happen.

"In any other situation, it would be unthinkable to withhold investigative material"

The Bush White House has ignored all but one or two of the joint inquiry's 19 urgent recommendations to make the nation safer against the next attempted terrorist attack.

The F.A.A. and NORAD had at least 42 minutes to decide what to do about Flight 93. What really happened?

[C]ommissioners were unaware of the crucial information given in an even more revealing phone call, made by another heroic flight attendant on the same plane, Madeline (Amy) Sweeney. They were unaware because their chief of staff, Philip Zelikow, chooses which evidence and witnesses to bring to their attention. Mr. Zelikow, as a former adviser to the pre-9/11 Bush administration, has a blatant conflict.

The Bush administration controls who sees what on the 9/11 investigation committee. How many Americans are aware of that?

How many Americans are aware the committee could collapse because of the administration's non-cooperation?

How many Americans are aware of the significant questions remaining unanswered about the airlines, NORAD, the FAA, the FBI, and the administration itself?

"We know what [Sweeney, American Flight 11] said from notes, and the government has them," said Mary Schiavo, the formidable former Inspector General of the Department of Transportation, whose nickname among aviation officials was "Scary Mary." Ms. Schiavo sat in on the commission's hearing on aviation security on 9/11 and was disgusted by what it left out. "In any other situation, it would be unthinkable to withhold investigative material from an independent commission," she told this writer. "There are usually grave consequences. But the commission is clearly not talking to everybody or not telling us everything."...

Asked when NORAD gave an order for fighter planes to scramble in response to United's Flight 93, the air-defense agency notes only that F-16's were already airborne from Langley Air Force Base in Virginia to intercept American's Flight 77. The latter jet heaved into the Pentagon at either 9:40 a.m. (according to the F.A.A.) or at 9:38 a.m. (according to NORAD). Although the F-16's weren't in the skies over Washington until 9:49, the question is: Did they continue flying north in an attempt to deter the last of the four hijacked jets? The distance was only 129 miles...

The independent commission is in a position to demand such answers, and many more. Have any weapons been recovered from any of the four downed planes? If not, why should the panel assume they were "less-than-four-inch knives," the description repeatedly used in the commission's hearing on aviation security? Remember the airlines' first reports, that the whole job was pulled off with box cutters? In fact, investigators for the commission found that box cutters were reported on only one plane. In any case, box cutters were considered straight razors and were always illegal. Thus the airlines switched their story and produced a snap-open knife of less than four inches at the hearing. This weapon falls conveniently within the aviation-security guidelines pre-9/11.

"It is incomprehensible why this administration has refused to aggressively pursue the leads that our inquiry developed," fumes Senator Bob Graham, the former co-chairman of the inquiry, which ended in 2003. The Bush White House has ignored all but one or two of the joint inquiry's 19 urgent recommendations to make the nation safer against the next attempted terrorist attack. The White House also allowed large portions of the inquiry's final report to be censored (redacted), claiming national security, so that even some members of the current 9/11 commission, whose mandate was to build on the work of the congressional panel, cannot read the evidence.

Senator Graham snorted, "It's absurd."

WWSD?

What Would Smalltalk Do (WWSD)?

An interesting thing about Smalltalk is that although it does not have "type" declarations, the compiler does require "typeless" variable declarations. So both examples in the previous article would be caught by the compiler.

No only would the problems be caught, but the rich, integrated Smalltalk toolset would ask you to correct the spelling or automatically place the new variables in the declaration list.

Also, part of the rich Smalltalk toolset is "Small Lint" which is like pychecker, only funner.

pychecker does strictness checking

Jon writes about dynamic languages and static checking (which rightly should be optional IMHO)...

Are there reasons why Python can't, or shouldn't, support something like "use strict"?

The answer in this case is pychecker. I don't know how pychecker's features line up with perl's strict.

Running Jon's example through pychecker like this... pychecker loose.py results in the following:

    File "loose.py", line 2
      print '[' + aNyme + ']';
  NameError: name 'aNyme' is not defined

pychecker does not catch the contributed example to Jon's article. For example running pychecker other-example.py where the contents are...

sysmsg = 'foo&bar'
sysmgs = sysmsg.replace('&',' ')
print sysmsg

This results in no warnings, although I would expect at least a warning that the variable sysmsgs is unused.

Ted mentions Starkiller, which hopefully will be given ongoing support in the Python community.

Thursday, March 04, 2004

"Hey, if we're going to exploit the dead, let's make sure it's the right dead."

The Guardian exposes more "backtracking"...

The campaign had said it would not use Sept. 11, 2001, for political reasons, yet footage from the aftermath of the terrorists attacks is shown in the ads.

While the Bush administration continues to discourage journalists from paying attention to dead Americans coming home from Iraq, the administration apparently has no qualms about exploiting dead Americans from September 11, 2001 in their political ads.

Oh, yeah, they also continue to obstruct the investigation of the terrorist attacks of September 11, 2001, an investigation that could prevent further deaths.

Base library extensions in Smalltalk

A big ol' list of features the WithStyle team has added to the *base* libraries from Cincom.

Java? C#? Nope. Can't do that.

Tuesday, March 02, 2004

A Gospel of Love and Hope: How to Respond to Mel Gibson's "Passion"

Got this in the mail from a friend...

A Gospel of Love and Hope: How to Respond to Mel Gibson's "Passion"

By Rabbi Michael Lerner Editor, Tikkun Magazine

Mel Gibson unlocked the secret of why Americans have never confronted anti-Semitism in the way that we did with the other great systems of hatred (racism, sexism, homophobia) when he told a national t.v. audience on February 16 that "the Jews' real complaint isn't with my film (The Passion) but with the Gospels." Few Christians today know the history of anti-Semitism and the way that the Passion stories were central to rekindling hatred of Jews from generation to generation. Many are embracing Gibson's movie and not understanding why Jews seem to be so threatened. Gibson knows that for many Americans it is simply unimaginable to question the Gospels.

Those who wanted to purge hatred of Jews from the collective unconscious of Western societies after the defeat of Nazism in 1945 faced an impossible dilemma. The dominant religious tradition of the West was based on a set of four accounts of Jesus, each of which to some extent is riddled with anger at or even hatred of the Jews. The Gospels were written, many historians tell us, some fifty years after Jesus' death at a time when early Christians (most of whom considered themselves still Jewish) were engaged in a fierce competition with a newly emerging rabbinic Judaism to win the hearts and minds of their fellow Jews (some of whom were becoming Jewish Christians, retaining their Jewish practice but adding to it a belief in Jesus as messiah) and the minds of the disaffected masses of the Roman empire (some Christians already having given up on converting Jews and beginning to think that the real audience for their outreach should be the wider world of the Roman Empire).

The Gospels sought to play down the antagonism that Jews of Jesus' time felt toward Rome, so they displaced the anger at his crucifixion instead onto those Jews who remembered Jesus as an inspiring and revolutionary teacher but not much more (not a messiah, not God). The result: an account that portrays Jews as willfully calling on the Romans to kill Jesus, rejecting the supposed compassion of the Romans, and thereby earning the hatred of humanity for the Jews' supposed collective responsibility for this act of deicide. Conversely, Jesus' Judaism, his viewing the world through the frame of his Jewish spiritual practice and Torah-based thinking, is played-down or at times completely obscured, so that the message of these professional "convert the non-Jews" thinkers would not be undermined by a covert message (still advocated by some of the Jewish Christians at the time of the writing of the Gospel) that to be a Christian one should also become a Jew.

When Christianity gained state power in Rome in the 4th century of the common era, it quickly began to pass legislation restricting Jewish rights. And as Christianity conquered Europe in the ensuing centuries, spreading its story that the Jews were responsible for killing Jesus, the Jews became the primary demeaned other of Europe for the next 1700 years. Jews came to fear Easter-because the retelling of the Crucifixion story often led to moob attacks on defenseless Jews who were blamed for having caused the suffering of Jesus.

In the aftermath of WWII, many principled Christians recognized that the Holocaust was possible in part because Hitler was able to draw upon the cultural legacy of hatred toward Jews nurtured by this kind of Christian teaching. The Catholic Church and some Protestant denominations have sought to distance themselves from this long history of demeaning the Jews. But although anti-Semitism became unfashionable, only a few Christians were willing to take responsibility for the devastating impact of the hateful representations of Jews that suffused the Gospels and culminated in its historically doubtful account of the Roman imperialists, who ruled with an iron fist and crucified thousands of Jews, bowing to the will of a hateful Jewish mob determined to kill Jesus.

Even when the Catholic Church officially banned teaching hatred of Jews, it never ordered its dioceses to teach about the role the church itself had played in creating and sustaining those negative stereotypes.

Liberals and progressives in the late 20th century did an impressive job of confronting and educating the public about the literary, intellectual, and cultural sources of racism, sexism and homophobia. But they tended to shy away from anti-Semitism, both because of the mistaken assumption that it was no longer a real problem (after all, Jews were economically and politically flourishing in post-WWII America) and because such a confrontation would have forced a challenge to the dominant Western religion at the core of its most dramatic story: the crucifixion.

Nevertheless, ever since the 1960s there have been thousands of sensitive Christians, who, to their credit, have created a Christian spiritual renewal movement which rejects the teaching of hatred in the Gospel by allegorizing the story and giving greater focus to the Resurrection than to the Crucifixion. Returning to Jesus' Jewish roots, and refocusing attention on the bulk of the Gospel, with its stories portraying a Jewish Jesus who builds on and elaborates the ancient Torah commandments to "love your neighbor as yourself" and "love the stranger," the Christian renewalists tended to see the two-thousand-year history of Christian anti-Semitism as a distortion of the deeper truth of the Gospel. Easter became a holiday to celebrate the rebirth of an ancient Jewish hope-that the forces of hatred and cruelty manifessted in the Crucifixion could be overcome by a triumph of the forces of love, generosity and kindness whose Resurrection and ultimate victory were celebrated at Easter.

Yet that renewal movement is now being effectively challenged by a Christian fundamentalist movement with deep ties to right-wing politics. In post 9/11 America, many people have given up on the hopeful vision of social change movements. They have turned to a deep pessimism in which the idea of a world based on love, cooperation and generosity to the Other is alternately ridiculed and disdained as unrealistic and dangerous. A cynical realism holds sway in the media and mainstream American culture and political institutions, placing American progressive and visionary thinkers on the defensive. No wonder, then, that many Christians are attracted to interpretations of their religious tradition which emphasize the danger and cruelty in the world while sidelining aspects of the Gospel which teach compassion and solidarity with the oppressed.

I've written about this struggle in another context (see my book Jewish Renewal: A Path to Healing and Transformation). Inside the Jewish tradition there has always been a struggle between those who have heard God's voice as the voice of accumulated pain and cruelty of the universe passed on from generation to generation, and those who have heard God's voice as a voice of love, compassion, generosity and transcendence. Even in our Torah there are moments when the people hearing God's voice are hearing it through the frame of their own accumulated pain and hence hear a voice that talks a language of power, domination and cruelty, and other moments when the people hearing God's voice are hearing it through the frame of their own capacity to respond to God's revelation of love and generosity. And so it is through history that we find in virtually every religious tradition the people who distort the message of love of their own traditions and instead portray God as the voice legitimating domination, power over others, cruelty and violence. The George W's, the Osama Bin Ladins, the Ariel Sharons are found in every tradition. And they don't even need the frame of religion (some people like to blame these distortions-but the truth is that the Nazis, Stanlinistss, and Vietnam-war mongers of the US did not need religion to act out the legacy of pain and cruelty in the world). There is no religious tradition, no ideology of liberation (including Marxism, psychoanalysis, feminism, etc.) that cannot be appropriated by a distorted consciousness and transformed into its opposite, that is, into a mechanism or a justificatory ideology to dominate and act out of cruelty.

So let's understand that the attempt to revive Christian enthusiasm around the part of the story that is focused on cruelty and pain is not only (or even primarily) a threat to the Jews, but rather a threat to all those decent, loving, and generous Christians who have found in the Jesus story a foundation for their most humane and caring instincts. It is these Christians who are under assault by Mel Gibson's movie, and by the particular form of Christian evangelicalism that it is meant to stimulate. Yet, in a deeper way, the Gibson movie is likely to stimulate a broader assault on all of us who seek to build a world based on caring and love, cooperation and generosity, by giving strength to the part within each of us that despairs, the voice within each of us that tells us that cruelty is what is "really how the other is, really how the world is," the voice inside each of us that feels that there is no point in struggling to transform the world because it is too hopeless and too dominated by craziness (and that is the point of the Jews in the Gospel calling for Jesus to be killed, because it is saying "even the Jews, his own people" do this, because evil is dominant in the world and always will be, and the only way out is to believe in Jesus and find salvation in another world, and despair of changing this one). So, part of the struggle is to reclaim and reaffirm the Jewish Jesus, the Jesus who retains hope for building love right here, the Jesus who unabashedly proclaims that the Kingdom of Heaven has arrived (which is to say, that it is here on earth, that the world right now can be based on love and kindness, and that we don't have to wait for some future time or "the end of days" as described by Isaiah, because it is here now, we can make it happen right away by the way that we live our lives). And it is this voice of Jesus that The Passion movie seeks to marginalize or make invisible.

I hope Christians will take the lead in organizing people of all faiths to leaflet every public showing of Gibson's film with a message that runs counter to the anger at Jews that this film is likely to produce in at least some viewers. I hope that every morally sensitive Christian minister and priest will use the weeks ahead to preach about the history of Christian anti-Semitism until most parishioners can understand why Jews would feel worried about the popularizing of the Gospel story. But I hope also that the discussion isn't reduced to that-that Christians take on the underlying chaallenge and affirm their commitment to the Jewish Jesus, the Jesus that preaches that a world of love is possible right now, right here, through our actions.

The best hope to avoid a new surge of anti-Semitism will not come only from de-coding the anti-Semitic themes in Mel Gibson's film, or the Gospel on which it was based, but rather by re-crediting the ancient Jewish vision of Jesus-that in place of the Old Bottom Line of money and power, a New Bottom Line of Love and Generosity is possible. People of all faiths need to shape a political and social movement that reaffirms the most generous, peace-oriented, social justice-committed, and loving truths of the spiritual heritage of the human race. It is only this resurrection of hope that can save us from a new wave of global hatred.

Please take this message and ask your local newspaper to publish it. Send it to your friends and anyone on your email lists.

Rabbi Michael Lerner

Monday, March 01, 2004

OSPIRG Blog

Feed for the Oregon State Public Interest Research Group (OSPIRG) blog.

Is this your government?

Les AuCoin (Oregon's 1st District in Congress for 18 years)...

If this isn't Eden, Eden is just around the corner.

The area is special enough that even Oregon's fractious congressional delegation decided it required protection...

Sadly, this story is part of a broader pattern in which the Bush administration isn't just contracting out sensitive environmental work to dubious corporations. It is also stocking the leadership of federal regulatory agencies with corporate figures who previously made a living doing combat with those same agencies.

Thus, Mark Rey, the former chief lobbyist of the American Forest and Paper Association, supervises the Forest Service.

The spokesman for the Department of Agriculture on mad cow disease was hired from the National Cattlemen's Association, and the chief legal adviser for the administration's salmon recovery plan in the Northwest is Mark Rutzick, a man who built his career fighting for the timber industry against the endangered Northwest spotted owl.

But they say this is your government.

America's Democracy Atrophied

Yoshi Tsurumi (Professor of International Business, Baruch College, the City University of New York, former Harvard professor of student George W. Bush)...

[The present adminstration's] was the same kind of income distribution that the U.S. built during the McKinley-Gilded Age. There was no Securitiesy Exchange Commission to check "creative accounting" and Enron-WorldCom like malfeasance of corporations. America had poor public schools and medical care. There was no minimum wage or labor standard. Both federal and state governments and courts were hostile to labor unions and civic groups protesting the "injustices" of the society. The natural environment was ravaged by railroads, mining, lumbering, and newly emerging oil and gas firms. Abortion was illegal. Women did not even have the vote. In the South, Christian fundamentalists were pressuring public schools to stop teaching Charles Darwin's evolution theories. During the McKinley-Gilded Age, America's democracy atrophied. And America embarked on her imperialistic expansions of colonising Cuba, Panama, and the Philippines.

Official criticisms of Microsoft

What's the state of publishing criticisms of Microsoft in industry publications? Is there any concern that Microsoft's continuing dominance has an influence over the objectivity and depth a critic would be allowed by a publisher?

Does anyone even dare broach the subject anymore?

Dynamic languages on dotnet

Jon Udell writes about dynamic languages (or the lack thereof) on dotnet.

The shocking part is what's missing. Where is the word from Microsoft? At OSCON 2003 last July, there were BOFs and discussions about this topic, with MSFT representatives claiming efforts toward this goal.

So?

Although Jon claims "Despite lots of second-guessing, there?s no consensus that the CLR is inherently unfriendly to dynamic languages," there is more evidence than not that dynamic languages are more difficult to implement on dotnet than the JVM.

The grade on this for dotnet should be failing. Consider the JVM was never intended for dynamic languages, yet dotnet was deliberately designed for all kinds of languages (Java-like, functional, scripting, and dynamic OOP, at least). Consider the knowledge as well as source to JVM languages have been available for years.

MSFT deliberately de-emphasized dynamic languages approaching the first release of dotnet. But did they go so far as to paint themselves into some kind of a corner, maybe with an over-restrictive programming model?

Maybe there is no consensus, but *something* is wrong.

Eclipse or Mozilla?

Which platform would be better for general purpose applications, Eclipse or Mozilla? Why do you say that?

Gandhi or Gibson?

Which movie might be more inspiring for the world today, Gandhi or Gibson?

I think the fate of the world rests in which choice we make.

How individual ownership of code could harm the design.

Java and XUL

A recommendation to combine Java with XUL.

Saturday, February 28, 2004

Remix: The Defense of Whitey

Update: Jon Stewart on the Daily Show made a similar statement (almost word for word) about the definition of an activist court. He apparently said it first in New York, but I didn't get the show until an hour+ later on the west coast. I was hoping his staff reads my blog. Obviously a vain idea, considering the timing factor. 8^)

BTW couldn't the claim realistically be made that the most "activist" decision any US court has made in recent memory is the Supreme Court decision to declare Bush the winner in 2000? Water under the bridge, right? But I don't recall this decision ever given countenance by consitutional scholars.

From one book on the matter: "Digging deeply into their earlier writings and rulings, Dershowitz proves beyond a reasonable doubt that the justices who gave George W. Bush the presidency contradicted their previous positions to do so."

Reinforcing the point. "Activism" is clearly in the eye of the beholder.

The Defense of Whitey...

Simply brilliant.

By the way, an "activist" court is one that makes decisions *you* don't like. And a "state's right" is a decision that you *do* like. (For any definition of "you", left or right.)

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.