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

Search This Blog

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

Mmm

I'll take just the Bailey's and the Kahlua.

Why...

Why Societies Need Dissent

How *much* hippie?

Blaine is 34% hippie, but with pride...

I AM 55% HIPPIE!
55% HIPPIE
I am not a child of the 60’s but my heart is true to the cause, man. I realize that being a hippie is not just bell bottoms and tie-dye. It is also about the drugs and smelling bad, too!

Tuesday, August 10, 2004

Clearcutting in search of the truth

The Guardian...

In an interview with the Associated Press, McCain called the ad "dishonest and dishonorable." Asked if the White House was behind it, McCain said: "I hope not, but I don't know. But I think the Bush campaign should specifically condemn the ad."

White House spokesman Scott McClellan declined to do so and instead criticized the financing of the ad, saying the president "deplores all the unregulated soft-money activity." McClellan said the Bush campaign had nothing to do with the ad or the group behind it. "We have not and we will not question Kerry's service in Vietnam," he said.

Jim Rassmann, an Army veteran who was saved by Kerry, said there were only six crewmates who served with Kerry on his boat. Five support his candidacy and one is deceased.

Eschew Special Case Languages

Another example of languages with special cases causing conflicts.

Another reason "constructors" should just be a regular message sent to a regular object. You already understand the simple, regular rules...

In the Smalltalk language, everything is an object. This includes not only numbers and all data structures, but even classes, methods, pieces of code within a method (blocks or closures), stack frames (contexts), etc. Even if and while structures are implemented as methods sent to particular objects.

Monday, August 09, 2004

YMMV

The Eclipse IDE makes language choice irrelevant?

I'm dubious. I've not used Eclipse in depth, or in a year or so, but I think this may be overstated unless Eclipse is using Java as a target notation for a more expressive source language!

Some kind of a showdown: But what kind?

I am not exactly sure what Jon is asking for in his Showdown at the VM Corral.

What I think we need is a way to connect lightweight processes from multiple runtimes and distributed runtimes as easily (and simultaneously as *robustly*) as lightweight processes can be connected in Erlang.

We need to think less about the VM (and even less than that about the OS) and more about (sometimes distributed) interprocess communication. But we need to do this without the heavy burden of the WS-* ice field.

Sunday, August 08, 2004

Python in even more places...

Bill lists the platforms Python runs on.

But Python is also at least embryonic on the PLT Scheme platform and Peter Deutsch, ACM Fellow and one of the best VM engineers on the planet, is leading the pycore effort to get Python running on VisualWorks Smalltalk and perhaps Squeak.

Apparently pycore has a small number of tests running significantly faster than CPython.

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.