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

Search This Blog

Saturday, September 18, 2004

WS-Transfer Comments Elsewhere

Update: Other useful quotes from Tim Bray...

I’m deeply suspicious of “standards” built by committees in advance of industry experience, and I’m deeply suspicious of... multiple layers of abstraction that try to get between me and the messages full of angle-bracketed text that I push around to get work done.
And Sean McGrath writes...
The whole WS standards thing has more moving parts than a 747. Much of it recently invented, untested and unproven in the real world... there are no exceptions to Gall's Law:
"A complex system that works is invariably found to have evolved from a simple system that worked."
Originally I quoted jeff schneider writing...
I am of the opinion that the WS-* spec teams are doing a severe disservice to the community by releasing these specifications without also identifying the best practices. In my opinion, it is no longer acceptable to release paradigm changing specifications without also releasing an implementation or best practice guide to go with it.
I could not agree more. The argument could be made there is a good bit of experience with these particular verbs. I think that argument is implicit (read below). But such an argument would be invalid. By far the majority of experiences with these verbs is unrelated to the kinds of systems this spec is intended for. Clearly this kind of a shift should be accompanied by references, examples, and best practices.
Standardizing verbs is good. I was a bit curious why the group didn't create a 'verb extension' or 'verb introduction' mechanism, but rather just 'hardcoded' a handful of verbs.
I am thankful they did not. Better to get experience with a fixed set and expand on that later if warranted.

Friday, September 17, 2004

WS-Transfer

Web Service Transfer (WS-Transfer)

Sorry. For some reason MSDN decided not to put tags inside the page. If you scroll down a few screensful, you will find the definition in a PDF and this abstract...

WS-Transfer defines how to invoke a simple set of familiar verbs (Get, Post, Put, and Delete) using SOAP. An application protocol may be constructed to perform these operations over resources.
Why, yes, these verbs do seem familiar. This makes them easier to adopt into a brand new spec, I guess. But does that make them the right set of verbs?

These verbs are workable in HTTP. But are they desirable when starting over? Do they facilitate automated coordination of distributed, asynchronous resources as well as any other set of verbs?

This spec looks to me like the easy way out of the job of hypothesizing, discovering, and validating something potentially more useful. Curious HTTP is not listed in the references. Neither are any landmark writings in the history of coordination mechanisms.

Sigh. While this could be seen as a simplified path out of the deep, dark woods of the WS-xxx, instead it is a cheap short cut avoiding or at least lacking much evidence of deep thought. Typical for WS-xxx then.

Wednesday, September 15, 2004

Florida Power & Light and Gemstone

A story from Charles Monteiro about FP&L's use of Smalltalk and Gemstone in their call center and trouble management systems.

I was pleased to know that the call center systems I had helped build were still standing and so was the trouble call management system among others.
Me too, then, I guess, in a smaller way. I wrote the Gem multiplexor that removed the "1 user / 1 OS process" restriction, to scale up the number of client connections to numbers approaching those claimed by the sales people years before. FP&L was one of the first customers to use it. Supposedly there was one situation where the Gemstone system kept running on Unix while IBM had to come in and patch the TCP/IP stack on the mainframe part of the system. Gemstone then cranked back up to full speed.
I am glad that so far those systems have weathered the Java marketing hype hurricane.
Yeah, that's great. Unfortunately Gemstone had barely developed federated Stones, multiplexed Gems, and better DB connections just before putting those efforts on the shelf in favor of the Java grail which not surprisingly never materialized. They continued making money from Smalltalk.

GNU Smalltalk and GTK+

From OS News...

"Hey - did you know that GNU Smalltalk now has GTK+ bindings? This is pretty sweet."

Saturday, September 11, 2004

Wandering About in the Past

I miss the Greater Boston Chapter of the ACM, in particular their in-depth workshops like the one coming up on Parrot.

About twenty years ago, Adele Goldberg was president of the ACM. She gave a talk to the GBC-ACM, and a Saturday before or after someone held one of those all-day Saturday workshops on Smalltalk. That was my first exposure to Smalltalk and circuitously led to the Mainsail programming language being ported to the Data General 32-bit Eclipse CPU.

The Alto was based on the DG Nova, and Data General was one of the first licensees of Smalltalk, but I never saw Smalltalk running on any DG hardware. Mainsail (a "managed runtime" in today's dry terminology) almost became the primary application development language for DG's workstations. Unfortunately C and Unix had captured a lot of imagination in the early 1980s and DG followed that road, ultimately to destruction, as HP did to Apollo.

Hmm... Synchronization

Steve Gillmor wites:

Hmmm…synchronization. That rings a bell. Oh yes, the Alchemy stuff that Adam Bosworth was working on at BEA before he left to join Google. The Alchemy framework establishes an intelligent cache layer between the server and the browser client, allowing robust support for transactions and off-line support within standards-based browsers, just what Google needs to extend Gmail and other services to enterprise customers to G-Spot.

And Starring Pancho Villa as Himself

I recently saw "And Starring Pancho Villa as Himself" on DVD. The movie is good, I'd like to read more about Pancho Villa now.

The main disappointment was the DVD's extras. I would have wanted more historical background on Pancho Villa. Larry Gelbart's running commentary is interesting.

Services and Data

A pretty good exposition of services and data within and across service bouindaries from Microsoft. Something is lacking though...

SQL makes a great tool for representing data on the inside of services. These strengths are inextricably linked to the bounded nature in both space and time of SQL, which make it fantastic for representing data on the "inside". Unlike XML, SQL has strong querying capabilities. SQL's makes comparisons between almost anything within the bounds of the database. Because of SQL's bounded nature, however, it is incapable of the strengths of XML in the "outside". SQL does not offer independent definition of schema as it depends heavily on a centralized and tightly coupled DDL.
What's wrong with this? It's out of focus.

At some point though developers will have to address data models as opposed to data notations. What are good models within and across service boundaries, whatever the notations used to representation and query? I have some ideas, but I'd like to see these ideas addressed more broadly and deeply.

Friday, September 03, 2004

Daily Zen:
Over the course of centuries, Zen has branched out into different schools With individual methods, But the purpose is still the same- To point directly to the human mind.

Yuan wu (1063-1135)

How Absurd!

Nelson captures the absurdity...

I give the Bush campaign credit for their evil powers. There's a debate about the war record of Bush and Kerry. Whose service are we questioning? Are we talking about the Texas Air National Guardsman who flitted off to Alabama where no one can tell if he he really showed up for duty and he even lost his pilot qualification before leaving early to go back to school? No, we're debating the record of the the man who went to Vietnam and was awarded many medals for his leadership and service.

To win an election, the first thing you have to do is control the terms of the debate.

Daily Zen:

Let go of all your previous imaginings, opinions, interpretations, worldly knowledge, intellectualism, egotism, and competitiveness; become like a dead tree, like cold ashes. When you reach the point where feelings are ended, views are gone, and your mind is clean and naked, you open up to Zen realization.

After that it is also necessary to develop consistency, keeping the mind pure and free from adulteration at all times. If there is the slightest fluctuation, there is no hope of transcending the world. Cut through resolutely, and then your state will be peaceful. When you cannot be included in any stage, whether of sages or of ordinary people, then you are like a bird freed from its cage.

Yuan wu (1063-1135)

Back to the Future

Ralph Johnson writes:

Do you want to know what software will be like in ten years? In twenty years? Learn Smalltalk.

Wednesday, September 01, 2004

Tuple Spaces Again

Tuple-spaces represent an extreme in loose coupling.

A tuple space is an extremely flexible set of shared data structures (semi-structures?) with a simple pattern-based API for reading and writing that data.

The referenced DDJ article is about tuple spaces and grid computing, which is a match made in heaven.

True Advances?

I pointed out that the single most important productivity tool in modern languages is intellisense... without it, he can't hope to pull the language into the '90s.
Intellisense?

What made me most productive in the 1980's was Lisp and Smalltalk. What made me most productive in the 1990's was Smalltalk. After the Java "revolution" (which made me less productive) what made me somewhat productive was the Internet search engine (Hotbot, then Google, IIRC).

How so? Javadocs. Looking up API information was faster on the net than on my hard drive once the spiders had indexed so many Javadocs.

I've used Intellisense-like features in Lisp environments since 1981. They *are* handy. I don't think I ever used anything like it in a Smalltalk tool. For one thing, Smalltalk uses keyword messages, which are in themselves descriptive. I think this reduces the need for Intellisense.

Frankly though the other aspects of Lisp and Smalltalk environments were more productive than Intellisense per se in a Java-like language. Primarily, the languages themselve are just simpler *and* more expressive. Secondarily, the source to the systems is present at the click of the mouse. (Or Meta-dot key stroke.) Thirdly, all the other sorts of browsers, workspaces, inspectors, debuggers.

Software Engineering vs. Marketing

Miguel de Icaza:

Complexity: The Avalon API has a very large surface area. To get an idea, the Button class is number 11 on the inheritance chain with ButtonBase, ContentControl, Control, FrameworkElement, UIElement, RetainedVisual, Visual, DependencyObject, UIContextObject and Object as its base class.

My prediction is that Avalon v1 will be a throw-away: it is not really the foundation on which you will build applications: V2 will likely not be backwards compatible, they will have to re-architect bits of it: which means that people will end up with two frameworks running side-by-side: Avalon V1 and Avalon V2.

I do not think I could have solved a problem of this magnitude, am sure the complexity is huge and the Microsoft folks are doing their best, but maybe a change in the way that features are interlocked and how those are delivered to users must be rethought.

Monday, August 30, 2004

Shoehorning a Post-modern MSFT

Shoehorn := Longhorn - WinFS

I maintain, with more evidence, that WinFS is a bad idea.

The intention is good. The choice of delivery vehicle (i.e. a "file system") is not so good. Once again, the problem seems to call for a simplification of dynamic, semi-structured, shared databases rather than a shoehorning of these concepts into a future Longhorn file system.

The advantages of the database approach has engineering merit as well as marketing.

Perhaps there was marketing merit in moving O/R mapping and business domain frameworks into WinFS. I didn't see it, and I certainly don't see the engineering merit.

Will we see ObjectSpaces and MBF pulled back out into cross-MS-platform capabilities? Avalon has joined Indigo in this regard. Why not the rest?

MSFT should make WinFS a across-MS-platform-or-wider improvement on *databases* rather than file systems, and all the Longhorn components make engineering sense, probably marketing sense.

And MSFT should make this an opportunity (along with IronPython) to continue down the path of a post-modern approach to systems development.

Sunday, August 29, 2004

Electronic XPlorations

I taught Extreme Programming for the first time in about four years. A couple weeks ago, the class was made up mostly of an intact team, about 15 people in all. The interaction was lively.

Last week there were 32 people mainly from three teams. That's the largest single class I've had. For one reason or another (many of them were embedded systems developers, for example) the first day the whole class participation had some skepticism and generally was just quiet. (The small group break-out discussions were lively.)

I went home concerned that first day. Fortunately the remaining days were primarily full of activities. The whole class discussions were more typically lively in spite of the class size.

And now here's the point of this post. I found an interesting on-line tool, Electronic XPlorations, which turned out to be a great device on the last day of the second class. I wanted the class to talk to each other in review. This tool is a simple Java applet for four teams playing "problem" cards and applying "solution cards" and "value cards" to collect points. (I hoped, intended, and realized the goal of making the awarding of points fun rather than competitive.)

The great aspect of the game is that for a team to win points, they must explain the play they're making to the other teams. The others may challenge the explanation, and eventually accept or deny it.

Try it out.

Thursday, August 12, 2004

Courtesy Implementations

Martin Fowler discusses Courtesy Implementations in Java-like languages. (Oddly he uses Ruby, which is capable of the solution presented in Smalltalk below.) These are more easily done in languages that trust you to extend the "system" classes. Moreover...

What if the Box can contain other kinds of objects that don't inherit from Node?

Object>>elephantCount
    "This is only installed in your boxed elephant application."
    ^0

Elephant>>elephantCount
    ^1

Box>>elephantCount
    ^children inject: 0 into: [ :count :child | count + child elephantCount]

Wednesday, August 11, 2004

May the best VM win?

A good deal more information on pycore, the Python implemented in VisualWorks Smalltalk. The good news is based on a fairly simple implementation, not on the performance-oriented ideas still in design. So is the race on for comparing the performance of pycore and IronPython? IronPython is more complete, but performance-wise, pycore is showing more potential at this point.

Quoting from the pycore item...

The interpreter is currently complete, except for 'exec'; the simple translator is substantially behind; and the optimized translator is only at the design stage. Nevertheless, some Python programs run faster even with the pycore simple translator than with CPython, for example:

  • Recursive fibonacci function, 9x faster
  • Iterating over a large list of integers, 5x faster
  • Creating a list element-by-element, 2x faster
  • Accessing an attribute by calling a method, 2.5x faster

Not "what", "water"

And Bill is an enzyme, while I am water... Water
You are water. You're not really organic; you're
neither acidic nor basic, yet you're an acid
and a base at the same time. You're strong
willed and opinionated, but relaxed and ready
to flow. So while you often seem worthless,
without you, everything would just not work.
People should definitely drink more of you
every day.

Which Biological Molecule Are You?
brought to you by Quizilla

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.