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

Search This Blog

Saturday, April 19, 2003

Neo-Cons Have Long Had Damascus In Their Sights

As speculation about a U.S. invasion of Syria reaches a boil, it is helpful to look for hard clues. Many of the same neo-conservative hawks who campaigned for war against Iraq have signed reports in recent years that call for confrontation -- not mere engagement -- with Syria...

A 1996 report, titled "A Clean Break: A New Strategy for Securing the Realm," prepared for Israel's Likud Party leader (Binyamin Netanyahu) by Richard Perle, Feith, Wuermser and others urges focusing not only on removing Iraqi President Saddam Hussein from power, but doing so in the context of a larger strategy against Syria.

Wednesday, April 16, 2003

Whose Needs?

This article on xml.com states...

The discussion... will help readers recognize the need to coordinate a sequence of SOAP requests and responses, so that the total process looks like a business transaction.

(My underlining of the word "need".)

So whose needs are being represented here? Who actually needs this capability?

A bad habit we have is to avoid questioning the underlying assumptions that we build our concepts on. Distributed transaction protocols are not a "need". They are a means to an end. Why are we trying to recreate them in SOAP?

An alternative is compensating transactions which are also part of a proposed SOAP extension. This is a more practical alternative.

The question then becomes why do compensating transactions need to be part of a wire protocol? Whose design will fit my needs? How do you know?

Separation of concerns should be a key architectural principle. Can we keep the eager standards committees at bay long enough for clear evaluations?

Blackboard vs. Pipes and Filters

Abstracts from the book Pattern Oriented Software Architecture shed light on the difference between a "service oriented architecture" and a "space based architecture".

The Pipes and Filters pattern provides a structure for systems that process a stream of data. Each processing step is encapsulated in a filter component. Data is passed through pipes between adjacent filters. Recombining filters allows you to build families of related systems.

The Blackboard pattern is useful for problems for which no deterministic solution strategies are known. In Blackboard several specialized subsystems assemble their knowledge to build a possibly partial or approximate solution.

Blackboard operations are axiomatic in the sense that they can be used to compose a Pipes and Filters architecture and a wide variety of others. For example, how would you implement editing a set of shared documents using SOAP, including features like notifications when changes are made, a history of changes made, concurrent translation of the text components into multiple languages, and any arbitrary set of other operations?

I see two general choices for doing this in SOAP:

  • Create a new WSDL description and SOAP interface for each operation.
  • Create a generic WSDL description and SOAP interface once, whose arguments denote the operation and whose values expand as operations are added.

    You also have to specify how coordination works to prevent processes from stomping all over each other's work. And of course you need to decide how to structure the shared documents to facilitate the desired mode of sharing.

    However using a generic document space (a Blackboard) with an axiomatic set of operations for access and coordination, the problem is reduced to that last step in the pure SOAP approach, i.e. you simply decide how to structure the shared documents to facilitate the desired mode of sharing.

  • Tuesday, April 15, 2003

    Lambda the Ultimate Label

    Here's the PDF if you want it.

    The Principle of Most Astonishment

    What does the EJB specification have to do with the WS-xxx specifications?

    Alan Knight offers several reasons against using Entity Beans, and anything but the simplest form of Session Beans, if you have to use EJB at all.

    The root of the problem is the EJB standard was developed primarily in a paper specification (and I use that term loosely, having reviewed several drafts of the initial EJB spec). Had the standard been developed based on real experience with prototypes, I wonder if the result would have been as cumbersome?

    How many prototypes are the WS-xxx specifications based on?

    War, Rhetoric, Politics, Religion

    Philip Greenspun:

    If a president is in the middle of a war it is difficult to mount political opposition to that president without appearing disloyal and unpatriotic. Focusing media attention on a war prevents reporters from asking questions such as "How come William T. Esrey and Ronald LeMay, the two top executives at Sprint, deserved to get paid $311 million for their services to shareholders when the company's business and stock are in tatters? And then why is it fair that Joe Sixpack has to pay income tax but Esrey and LeMay didn't have to pay tax on their $311 million income? Would it have been fairer to divide the $311 million--equal to half of Sprint's 2002 profit--among the 13,000 workers that these guys laid off--$24,000 per worker--or possibly to the shareholders(!)?"...

    Why have the Jews through the centuries made such good all-purpose targets for hatred? It is difficult to understand how Jew-hatred started so let's focus on the factors that have made it endure: (1) concentration in residence, (2) concentration in occupation, (3) smallness in number, (4) military weakness.

    That only about half of Americans hold some of the same beliefs about Jews espoused by the Nazi party is comforting until one one reflects that Hitler was able to hold power in Germany with only 33 percent of the vote in 1932 and 44 percent in 1933.

    ...The United States Department of State estimates that "by the year 2010, America's Muslim population is expected to surpass the Jewish population, making Islam the country's second-largest faith after Christianity".

    Aspect Oriented Programming

    Jorg Kienzle and Rachid Guerraoui report on an attempt to build a transaction- processing system with AspectJ, where the key requirement is that transactions be executed completely or not at all (so that the system cannot debit one account without crediting another). They found it difficult to cleanly isolate this property as an aspect.

    Aspect Oriented Programming is offered as a successor to Object Oriented Programming. The quote above illustrates that we have not found all the principles for when and how to apply AOP.

    AOP is not addressing the right problem:

    • The source notations, e.g. Java, even with some "aspects" of a program separated into distinct units, are still overly complex for most problems.
    • The "computational units" like SOAP calls and SQL transactions, no matter what notation, are also overly complex and inappropriate for most problems.

    Hypercard simplified the computational model for GUI applications with simple single-user databases.

    Ward Cunningham's WikiWikiWeb simplified the computational model for Web applications with simple multi-user text databases.

    What is the Hypercard or the WikiWiki equivalent for Web Services?

    I have some ideas but I wonder what you think. Edit your thoughts into the page at WikiWikiWebServices.

    OOP is *not* about classification

    Look at this picture.

    This is not what object-oriented programming is about. OOP is not about some kind of universal classification mechanism.

    The Circle-Elipse discussion pops up on OOP lists more than once a year. The problem is that OOP is not supposed to resolve all knowledge representation issues. There is no OOP notation that can be used to represent all relationships I can imagine.

    OOP is about computation, and so a Rectangle class in Smalltalk is not a "Rectangle" by the mathematical definition. The class Rectangle is a solution to a problem that is narrower than the mathematical definition.

    OOP is a tool for solving computational problems, and so in any given system it may serve my purposes to have more than one kind of Rectangle class (in Smalltalk, I'd use namespaces to refer to specific classes). I would implement each class to solve a specific problem.

    Whether or not I make some class named Circle be a subclass of some class named Elipse should be a decision made within the context of a specific computational problem.

    So we should put this discussion to rest and deal with the real problem of OOP: even as a computational notation, modern OOPs are by and large too complex. They make us say more than is necessary to solve most problems they're applied to. Forget the Elipse-Circle discussion. There are real problems to deal with.

    Jabber and Liberty

    News on the Jabber front from Phil Windley.

    A question: if you have Jabber, do you need SOAP?

    Please add your comments on this JabberAndSoap Wiki page.

    North Face Learning

    Phil Windley refers to North Face Learning as a pioneer in accelerated computer science education.

    The kind of acceleration described by Philip Greenspun is desirable.

    My concern about what little information is available at the North Face Learning web site is whether the curriculum is computer science in general or simply training on today's popular hardware and software technologies. The industry needs more people who can deeply think and create to lift us out of this technological lull and into a real Cambrian Explosion that puts previous (and not really technological) Dot Bomb Era to shame.

    If North Face Learning can pull that off I will be impressed.

    Saturday, April 12, 2003

    Networks of Incremental Computing for On-going Results

    In Sjoerd Visscher's blog response to The Hundred Year Language, he writes...

    Historically programs are written to execute with existing data as input. But to be competitive on the internet, results need to be continuously updated while new input comes in. For example, you can sum live data by summing your input every time it changes. But this pseudo code would be much faster:

    initial:      sum = 0
    on add(v):    sum += v
    on remove(v): sum -= v
    
    I'm not even sure if i'd prefer to program this way, or if I'd just program summation for a collection, and let the compiler figure out the above code.

    I can tie these thoughts in with some other sources that seem more or less related to me.

    These all represent to varying degrees the future of computing systems:

    • assembled incrementally
    • various participants
    • somewhat ad hoc
    • the whole emerging from the sum of its parts

    And what they have most in common is there is no single "result". Instead the value of the system is the on-going re-evaluation of the previous results.

    The Hundred Year Discussion on Language

    The periodic static/dynamic discussion has reared its head in a more interesting way than usual on Lambda the Ultimate. My latest prgnostication goes as follows, but there are more interesting contributions than mine in this discussion.

    First Alex Peake writes...

    BTW, Smalltalk was conspicuously absent - a wonderfully productive dynamically typed, reflective,... development environment!

    Nay, I say, the future is LISP (well Scheme maybe) and Smalltalk (if only someone could afford to Market either).

    Python probably belongs in this category too, although it has way more cruft than Smalltalk or modern Lisps.

    Very interesting thread here. One hundred years is a long time. I predict the next ten years will be more dynamic along these lines.

    Perhaps after that better type checkers (but they'll just be called theorem provers), model checkers, etc. will provide more verification as systems begin to program themselves and each other with less manual input.

    Friday, April 11, 2003

    Subtle humor from a Lisp programmer

    From Paul Graham's The Hundred Year Language...

    If SETI@home works, for example, we'll need libraries for communicating with aliens. Unless of course they are sufficiently advanced that they already communicate in XML.

    GNU Smalltalk 2.1

    A major new releaseof GNU Smalltalk is available.

    People Making a Difference: The Lives of Good Public School teachers

    I made a couple of cynical comments in response to Philip Greenspun's attitude toward public schools and a friend of his who seemed to be shrinking away from minor hardships, while others are overcoming more significant ones every day. Another participant asked me to clarify my position. I did so constructively rather than cynically, and copy my response here.

    What's the problem?

    This story is unmotivating.

    There are a lot of problems with public schools. The best people, including teachers, are trying to fix them, and are having success here and there.

    My wife works in the public schools, and will be receiving her masters degree in education in a couple of weeks. She's worked in ESL (English as a Second Language) and still chooses to work in Title I schools (generally not well off, a lot of parents have many problems of their own).

    Does she get frustrated? She doesn't show it much. The stories she tells are about the kids and the conditions under which they struggle to learn: the worst are dirty, undernourished, unaccepted by their peers, unsupported by their parents.

    Most of the stories she tells are about how well *every* *single* *one* of them responds to the creative ways she and others reach out to them. Poetry lessons that get kids who can hardly write creating the most amazing pieces of work. (I've read many... you wouldn't believe them.) Science lessons with worms that spark their imaginations. School nurses who creative games with soap, deoderants, etc. to get kids to clean themselves up without embarrassing them or lecturing them or their parents. Teachers who supply parties for the birthdays of kids whose parents can't afford it... but they don't let on to anyone that the parents did not do so themselves. Teachers who also show up at the doors of these kids to bring them birthday presents (because they really know they could use a new shirt!)

    I know I don't have the skills to do what my wife does, and other people like her. She should be making three times my salary.

    You get the idea. Public schools don't need people like Philip's friend, and middle class students certainly don't need to "learn how to obey" so called privileged "leaders" like Philip Greenspun.

    Do you think that there are people worse off than this writer and nobody should be allowed to complain if there are people worse off than them?

    I hardly see anything unsurmountable in Philip's post. She has the right to complain, but there are far worse problems that better teachers are overcoming every day. Let's write about those people and learn from them.

    Do you think that these are actually quite good conditions for someone to work under. So, once again, no right to complain?

    Like I wrote above, I've heard far worse that were made better. It does no good to complain to Philip Greenspun. I call that whining. I'd rather hear how she made a difference, but I see no evidence she has the skills for that. Maybe she can teach math to bright kids. Who couldn't?

    Do you hate the public school system so much that you rejoice in it's falling apart? And try to denigrate anyone who complains about it's state?

    No. Instead I celebrate those who overcome obstacles and make *big* differences in the individual lives of less fortunate kids.

    I am in awe of the people who can and do accomplish meaningful things in the public schools. I couldn't. But I can't indulge whining like what we've seen here.

    Thursday, April 10, 2003

    Are you FIT?

    Just rec'd the latest ONJava newsletter where the editor mentions FIT. Highly recommended for feature acceptance tests and as a replacement for JUnit-like unit test frameworks. FIT is implemented for several programming languages.

    Welcome to the latest Java newsletter. Your editor attended a talk just last night on Ward Cunningham's FIT--if you've struggled with automated customer tests, you owe it to yourself to look at this framework. I hope we can find some articles on the subject soon.

    Deprivation

    Ben Brewer makes a point in his comment on Philip Greenspun's retreat from society. I agree from where I sit. Sometimes we just don't get it, being so privileged, we're blind and we don't even know it.

    "Relative deprivation in the U.S. is sometimes not having the nicest SUV on the block."

    (Also discovered his blog on fatherhood.)

    Fall back men. There's people here who *yell*!

    My wife works in the public school system. There're much worse stories than this, and sadly, they even involve kids, health, and well-being, which the following story does not really.

    I am sorry. I cannot feel much sympathy for Philip Greenspun's tale of retreat to private schools. Better to have this kind of thinking isolated in the in-bred society anyway I guess. Make room for people who have the right attitude and can actually make a difference rather than just be a difference.

    I too easily slip into cynism, and this is what I wrote on Philip's comment page...

    Poor little thing. She even cried?

    Must be rough. Retreat to the private school. Fall back, men.

    Note to self: gotta close on the house in the gated community.

    Hurry, men. There's people here who *yell*!

    Wednesday, April 09, 2003

    A Mighty Wind is Blowin'

    Yes, if you liked Spinal Tap, try the Folksmen too.

    Coming soon, I hope, to a theatre near, well... me. Meanwhile.

    The Hundred Year Language

    The latest from Paul Graham.

    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.