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

Search This Blog

Thursday, May 06, 2004

Astrolabe

Interesting distributed systems research at Cornell.

The last point about a project named Astrolabe caught my eye for a nostalgic reason. Seventeen years ago (oh my...) while at Boeing I wrote a small Scheme system that I called Astrolabe.

There was nothing remarkable about the implementation, but I always thought the name was good for surprisingly simple and versataile technology like Scheme, that itself would someday be replaced by far more powerful instruments.

By the way it is pronounced "ass truh labe" rather than "ass troh labe".

On Directories and Databases

A report from Microsoft on Active Directory vs. "Databases" (my quotations).

Kind of shocking that Microsoft claims their database technology is not good for searching or reading data! (Unfortunately this I believe to be generally true about *most* so called "relational" database technology. Most R&D dollars *have* been put into making them writable as opposed to searchable!)

Also pointed out, and I believe true generally, is that database technology is not very good at replication or distribution! (With either loose or strict consistency.)

Aside --- so what does this predict for WinFS? Either WinFS will suck as bad as today's databases or SQL Server will benefit from all the improvements driven by WinFS.

And in a related note from Gregor Holpe on integration styles...

Why did Moore go with a Disney subsidiary?

Hmm. There's no connection between Disney and the subjects of Moore's film, are there? Let's look...

Disney -> Disney World -> Florida -> Jeb Bush -> Saudis

Well, makes sense Disney would refuse to shed a bad light on the governer of Florida. How is it Moore got hooked up with Mirimax, a Disney company?

Wednesday, May 05, 2004

No need for cynicism here

Steele Price writes about the many UI choices we have, including my odds-on favorite for the long-term...

Our User Interfaces need a huge makeover. SVG has finally matured to the point we can start using it in production and it gives us a root standard for Windows, Linux and the Web.

That SOA Religion

Phil Wainewright comes dangerously close to facing reality in this piece on SAP's approach to SOA. The thing is, no one has ever seen, not to mention built, a "pure SOA" enterprise.

One should be as cautious of fanaticism as they are wary of a vendor's intentions.

What makes a good language for embedded systems?

Reasons to scratch your head over embedded Java or C#...

Solving the problems: Increased reliability, low cost, resource constraints. Dynamic software updates in the field. Real-time capabilities. Rapid development cycles. He poses a question: Is embedded Java the solution?

Answer: real-time in java is no solution. They can't get rapid development time with Java. Doesn't support incremental execution. Quote: "I should know, I've been working with it longer than most and made HotSpot". Virtual machine specification is very complicated. Bytecodes are not designed for speed and compactness. Configuratios for embedded systems too big (CLDC, CDC, more..).

The java embedded system is 1 meg rom, 0.5 meg ram. Resilient (Smalltalk) is 128k for both rom and ram usage.

So we can do it better: Use of safe dynamic programming language. Increase productivity is connected to the running embedded device program, provide incremental execution. Provide debugging support in the product with on-the-fly software updates.

In their example they're making speakers that use fire-wire. Here's the catch. Something goes wrong, customer plugs the speaker in to the internet and the company debugs it over the internet, fixing the problem and pushing the answer back in to the speaker straight away.

For mobile phones, you can push out new service applications on to the phones dynamically because the phone is already on a persistent network.

If you don't know Lisp or Smalltalk, learn them now.

Welcome to Iraq, John Negroponte. And welcome back to the public eye!

On our new ambassador in Iraq...

In 1982, Sister Laetitia Bordes met with John Negroponte, then U.S. Ambassador to Honduras. She was on a fact-finding delegation to investigate the 1981 disappearance of 32 Salvadoran "nuns and women of faith," who had fled to Honduras to escape Contra death squads after the assassination of Archbishop Oscar Romero. Bordes, who worked as a nun in El Salvador for nearly ten years, describes the little that was known about their fate: a few months after the women (among them Romero's former secretary) arrived in Honduras, they were "forcibly taken from their living quarters in Tegucigalpa, pushed in to a van and disappeared." Bordes presented this information to Negroponte, but he denied having "any knowledge of the whereabouts of these women. He insisted that the U.S. Embassy did not interfere in the affairs of the Honduran government and it would be to our advantage to discuss the matter with the latter."

Bordes received no answers until 1996, when Negroponte's predecessor to the Honduran ambassadorship, Jack Binns, spoke with the Baltimore Sun. Binns, who had been removed from his post for repeatedly protesting the human rights violations occuring in Honduras, explained "how a group of Salvadorans, among whom were the women [Bordes] had been looking for, were captured on April 22, 1981, and savagely tortured by the DNI, the Honduran Secret Police, before being placed in helicopters of the Salvadoran military. After take off from the airport in Tegucigalpa, the victims were thrown out of the helicopters. They were turned over to the Salvadoran military and their whereabouts are unknown. Binns told the Baltimore Sun that the North American authorities were well aware of what had happened and that it was a grave violation of human rights. But it was seen as part of Ronald Reagan's counterinsurgency policy."

Tuesday, May 04, 2004

Autonomic doesn't mean easy

Autonomic computing, including self-healing systems, won't make the life of IT any easier, at least according to Tom Sheridan, an MIT professor.

I attended a panel yesterday at IBM's TJ Watson Research Center in Yorktown Heights, NY, in which Sheridan joined IBM's Alan Ganek, IBM's vice president of autonomic computing, among others.

During the discussion Sheridan said: "Autonomics makes the human role more difficult."

Sheridan explained that human jobs will be more abstract, and will be conducted on a higher level than they are currently. So they will demand more expertise.

IBM's Ganek agreed that more will be required of IT workers, and added that autonomic computing is designed to increase productivity.

"We're not going to automate everybody out of a job, but we have to pay attention to how we'll transform those jobs," said Paul Maglio, who manages human system research at IBM's Almaden labs.

Arguments for eating organically grown food.

Also organics are labor-intensive, relatively locally grown, and healthier for the labor as well as for the land.

...just being amazed at being able to select a piece of code and run it, without the need for wrapping it within a Main() method in a test app..... anyways. off to hell.

Another from Sean Malloy, learning Smalltalk at home while working with inferior tools.

Love for the Block object.

...the rules engines that James Owen has been writing about, and the FIT framework that Ward Cunningham has created, point toward a radically altered relationship between software makers and software users. It can't happen too soon.

Jon Udell

Putting Methods in System Objects

Creating new methods on Object By Sean Malloy

Being able to define new methods on existing library classes is where Smalltalk gets some of its power (Allowing you to create amazingly expressive code

Here's an example: distance := (100 miles + 224 kilometers) asMillimeters. (Try and do that in C# and have it read like that!).

And remember, the methods you add to Object only have to make sense for your application.

XML not all that it's cracked up to be? (Breaking eggs for omelettes)

The original architectural pillars of Groove were COM, for software extensibility, and XML, for data extensibility. In V3 the internal XML datastore switches over to a binary record-oriented database.

You can't argue with results: after beating his brains out for a couple of years, Jack can finally point to a noticeable speedup in an app that has historically struggled even on modern hardware. The downside? Debugging. It was great to be able to look at an internal Groove transaction and simply be able to read it, Jack says, and now he can't. Hey, you've got to break some eggs to make an omelette.

Maybe COM is to blame or some other implementation flaw. Plenty of binary storage formats are able to be simply inspected. (Jon Udell's interview with the Groove team.)

In the Groove "Files Tool,"... you're shown what looks like a file in a folder, but is actually an encrypted and synchronized Groove object. Double-clicking the file opens it into its default editor, which may (or may not) reveal the fact that the file has been decrypted to your local temporary directory for viewing and editing. Quitting can result in a two-step tango. First the editor asks if you want to save. Then Groove, detecting changes, asks again: "Do you want to save?" It's the classic dilemma of every document manager that hooks File Open and File Save in order to add value... there's just no way to make this seamless.
Hmm. Doesn't editing an Office document in Share Point provide this seamless interface? Does the public Windows API not have these features for any application's Open and Save events? Sigh.

Sunday, May 02, 2004

Two Americas?

Doctors or other health care providers could not be disciplined or sued if they refuse to treat gay patients under legislation passed Wednesday by the Michigan House.

The bill allows health care workers to refuse service to anyone on moral, ethical or religious grounds.

The Republican dominated House passed the measure as dozens of Catholics looked on from the gallery. The Michigan Catholic Conference, which pushed for the bills, hosted a legislative day for Catholics on Wednesday at the state Capitol.

I am seriously beginning to wonder when the violence will break out. I have little doubt it will be from someone claiming to be a Christian.

The Cost/Benefit of Language Features

JavaWorld has a description of upcoming improvements to the Java language.

I can see the benefit. I wonder how much these features cost?

Disk

The problem: how do you backup a 40 Gig disk? My solution, buy an 80 Gig disk and copy to it. Nothing else was quite as easy or cheap.

Saturday, May 01, 2004

Another "Hmm" Moment

Following 'Things that make me say, "Hmm"' a couple days ago, another thought hits me like a ton of bricks...

Why is WinFS part of the file system rather than part of Share Point?

Hmm.

Context, Hierarchy, and Value Chains

Via Phil Windley, a Radiant Logic whitepaper on context and hierarchy ... definitely related to Ralph Kimball's work.

Thursday, April 29, 2004

Why Open Source should not combat Longhorn

Headline: Read all about it. Open Source to Combat Longhorn.

Mozilla and Gnome have gotten together to look at how they can combat Microsoft Longhorn's strategy of merging the web and desktop experience.
What "Open Source" should do instead of combat vaporware is to continue its multi-pronged, evolutionary, march toward providing a solid and secure platform upon which a multitude of innovative ideas can germinate and flourish. The aim should not be "combating Longhorn".

Just focus on providing incremental value to end users and developers of all stripes.

Now you understand why the Pentagon was so upset by the bureaucratic snafu that led to the release of those casket photos. It looks like Messrs. Ledeen ("I think the level of casualties is secondary") and Kristol ("I think the American people are going to have great tolerance ... for more casualties.") may have been a little too optimistic about the public's taste for blood. (American blood, I mean. As in Vietnam, Americans appear perfectly willing to fight to the last Iraqi.)

http://billmon.org/archives/001429.html

How low does the credibility of the U.S. government have to sink before support for the war collapses entirely? After Tet, everyone understood -- even if they rarely admitted it -- that the United States was fighting simply to postpone the political and psychological aftermath of defeat. Have we now reached that point in Iraq? Or are there too many illusions left that still need to be destroyed?

But, gluttons for punishment (other people's punishment) that Americans are, the endgame might not play out so simply. The speed with which public opinion has turned against the war could just be another cultural artifact of our increasingly scatter-brained society -- in which the daily death toll is tucked away somewhere between the next American Idol and the latest pretrial developments in the Michael Jackson case.

Wednesday, April 28, 2004

Things that make me say, "Hmm."

Why is the premier application software of Longhorn, i.e. WinFS, not a service-oriented system based on the premier system software of Longhorn, Indigo?

Hmm.

Here's the scene

Here's the scene, then: A president who pulled family strings to get a berth in the Texas Air National Guard, and then couldn't even show up for that cushy job, sends out a vice president who won multiple draft deferments and candidly admits he had "other priorities" more important than fighting under U.S. colors, to attack the "judgment" of a Democratic candidate who both fought for his country and had the guts to turn against the war when its folly became evident.

The Horror. The Horror.

[A]nytime you need an RSS feed to track new specs, something is, prima facie, horribly, horribly, wrong.

Run away!

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.

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.