Tuesday, December 15, 2009

What was old is new again: Google Wave and NLS

Finally got a Google Wave account and have been messing with it some...and I was sure that it felt somehow familiar. Then I realized it: Wave is Engelbart's NLS as built by someone who had only heard an oral description of NLS.

Both are structured document/outline editors with realtime updates and generous options to discover the history of the document creation. There are differences: Wave doesn't have the integration with video conferencing (sorta, there is a 3rd party extension to embed video chat), the development and extension environment is not as integrated as NLS, Wave obeys modern editing and UI conventions as opposed to the faster and more difficult to learn NLS conventions, Wave does not have the various view control related commands, and of course Wave is built using distributed web/XMPP technologies instead of being based around a mainframe.

Update: After poking around in my memories some more, it also is very strongly flavoured with elements of IBIS decision and augumentation support systems.

Saturday, April 26, 2008

A Capitalist Pilgrim's Progress

(Heavens, I hadn't realized I had so much to say about this. This is a comment to a comment at: http://secondthoughts.typepad.com/second_thoughts/2008/04/two-religious-d.html . I'm posting it here as I wanted to be able to find it again.)
I'm glad you contributed that post, Croquet. I always marvel that people don't seem to broadly understand these truths. Why do you suppose that is?

I'm really not sure. Despite having made the gradual transition over my life from being a left socialist to a borderline anarcho-capitalist (NOT a Rand-droid) I can't give any definitive answer. Maybe if I write up my path to enlightenment it'll make some sense of the matter.

I started out, as most do, with the beliefs of my parents who are well meaning Canadian social democrats. They were both well educated, and had been born in the 30s. In contrast to this, the surrounding area was much further to the right of center (in Canadian terms) as it was a rural area with an Air Force interceptor airfield. As part of my rebellion phase I became more leftist, seeking to contrast with my environment. The ideals of Communism, particularly the projected end states (the state withering away, everybody living in prosperity) are very attractive.

During the late 70s in order to come to terms with the possibility of being vaporized in 30 minutes I started reading available materials on the USSR, military theory and practice, wargames, and history. Here I started really noticing the gaps between the claims of the collectivists and the various observations of life in a real Communist state. At the time I did accept the arguments claiming that capitalist propaganda and transition stages were the reasons for these differences, but the seeds were planted. A reading of "The First Circle" late in this period didn't help either. Meeting some Vietnamese boat people attending my high school also made me wonder about the claims of the Communists both local and remote.

But some of this got ignored away when I discovered computers in the late 70s and became deeply involved in learning about them. The most relevant aspect to this tale is I started learning about failure and correctness. The computer is the worlds greatest device for showing you how stupid you really are. It does not excuse you for having good intentions. If the program is written incorrectly, the program will not work. Writing a correct program can be difficult and in the process you learn about accepting failure, finding the bad assumptions, then fixing them. To be the best possible developer you can't afford face saving illusions. And for some of us that attitude transitions from computers into the rest of our lives.

After high school, in the mid-80s I was off to University. Here a got a massive exposure to many more viewpoints and I got to compare them in the wild. This would be where the real drift started. I was a computer science major and, as is traditional, the faculty in engineering and sciences was generally more right than the arts faculty. And I got to meet real north american communists, marxists, leninists, maoists, trots, and various others in various combinations. I got to watch their bickering and obscure politicking, looking for all the world like a bunch of religious sects. Then it hit me that that is what they were, with the Gospel of Saint Karl and various apocrypha for holy texts. Now, since at this point I has already become somewhat skeptical of religion, this made me look more closely at the core tenets and implications of Marxism.

I didn't like what I found. Particularly in light of what really happens in systems that claim to be Communist. A key concept in user interface design is that of _affordances_, the set of actions that the design of a system makes easy and logical to do. And the affordances of Marxism are corruption and domination by the strongest wills. For humans, at least, collective ownership doesn't work as if it's owned by everybody it's owned by nobody. Instant tragedy of the commons. Or it'll end up effectively owned by whoever has the strongest will (via preference maximization), but they can hide their actions behind claims of the will of the people. Essentially, Communist principles, when put into practice, lead to totalitarianism. Every time. I guess there is a statistical chance that it won't happen, but I imagine the probability of that to be very very small. It would be like balancing a short piece of wire on end at the tip of a long pole, possible but inherently unstable without a lot of supporting action. And the initial conditions in Russia guaranteed a faster slide than most.

At this point I started back into reading about the USSR, this time reading for consistency of claims, especially with respect to my new understandings. John Barron's books, while probably written as a CIA funded propaganda exercise, managed to be much better on consistency with other reliable sources than the odd emanations from behind the Iron Curtain. And I started seeing the heroism of the common people of the USSR trying to "build socialism", a doomed effort that could never succeed. I learned about the nomenklatura, the feudal masters of the USSR. I learned about the KGB and Iron Felix. I read the Gulag Archipelago. Further back in time there were the peasants under the Tsar, the Muscovy Princes, and Mongol tax practices and the court at Sarai. And I learned how Russia in many ways hasn't changed since the Mongols left. The leadership owns everything, the people own nothing, not even their lives. And somewhere in there I failed out of school.

And then the USSR fell over and we got to look at the records and archives and talk with the people. And lo, while both sides were guilty of spouting propaganda, it seems that the lies were strongly one sided.

Possibly the most interesting revelations were the ones on "active measures" or dezinformatsiya. And I'm thinking this is where our current problem starts. The "long march through the institutions" was very successful and has left massive ideological residue in western society to this day. Victim-ism, moral and cultural relativism, political correctness, and transnational progressivism all stem from or were amplified by the deliberate Gramscian subversion guided by Directorate A of the KGB. This occasionally backfired on them, for instance some of the various unilateral disarmament groups they started eventually went out of their control and became supportive of bilateral disarmament. On the whole though it was very effective as it gave the collectivists control of many institutions. And the people we argue against went to these institutions and received instruction from these collectivists.

The other interesting note to me was looking at the lists of agents of influence and realizing that, while his methods were disgusting and contrary to liberty, Joseph McCarthy was substantially correct about the identities of communist agents. Not something I expected to see.

In the mid 90s, I started working with a number of Russian immigrants. I asked them about the situation in Russia during the Communist era. And was only mildly surprised to find that in many cases the awfulness of the situation in the USSR was understated in the books I had read. Probably the most delightful discovery though was that Viktor Belenko's reaction to the north american supermarket wasn't unique or a propaganda lie. I also acquired a taste for Pertsovka and probably took a few years off my liver.

I think what finally clinched it for me was economics. In the late 90s I ran into Austrian school economics and their insistence on strict logical argument from a priori assertions and observed facts. The basic Austrian school praxeological arguments in favor of the subjective theory of value are as iron clad as I can imagine. And you really can't argue with their minimalist assertions on human behavior and action. If you did, you'd find yourself biting your own tail quite quickly. There are gaps in praxeology: there still is no theory of conflict and the excursions into game theory are quite limited. I think if I were to be suddenly 20 years younger I would go into those areas of research as there are lots of places open to make a name for yourself and it looks fascinating.

The other aspect of Austrian school economics that struck me was "the calculation problem". You can view the price system as a signaling device that lets us know how others value things. We then run our own calculations internally as to what things are worth trading according to our personal valuations. It is a distributed calculation, carried out in parallel by all of us and over time it converges towards efficient pricing and resource allocation. A socialist or communist government cannot do the same thing in a centralized fashion because 1) it would require too much computational capacity and 2) you can't determine the personal valuation calculations of all of the individuals involved (and these calculations vary over time). These two things taken together guarantee that the economy in a centralized system will constantly misallocate resources. The various shortages in the USSR were a beautiful illustration of this.

I can still think like a socialist when I have to and this has been invaluable in the various arguments I get into from time to time on the topic. If there were a real life permanent report card mine would read "Does not suffer fools gladly." I tend to get into these arguments more than most. This is also why I enjoy reading your arguments with the foolish. I often don't agree with your solutions but I usually agree with your statement of the problems.

So, looking at my life, I have to note some key attitudes of mine that don't always mesh with the rest of the world's:
* Don't assume that if a package says cigarettes on the label that it actually contains cigarettes. Because someone claims to be doing good things doesn't mean they are.
* Good intentions mean next to nothing. Action, and doing right action, is key.
* Facts are our only signposts into an uncertain future. Get the facts.
* Sometimes the extremes are correct. Most people assume that in some situation where two sides are contending on a social issue that the "truth lies somewhere in the middle". It is this assumption that makes the Big Lie technique work so well.
* Individual liberty is *important*. The ability to self own and self direct is what it's all about. If a society or government denies this then it's morally invalid.
* Don't assume that "when the revolution comes" that you will be on top. If more people believed this then transnational progressivism would be dead.
* Life owes you nothing. It may so happen that you live in a society wealthy enough to give you things, but that is merely an accident of history.
* The government big enough to give you all you want is also big enough to take away everything you have.
* Poverty and oppression do not make people noble and good. They may provide an opportunity for these characteristics to show if they are already present, but the also provide lots of opportunity to show the darker side of human nature. For every hero, there are a couple of stukachi waiting in the wings.

Wednesday, September 05, 2007

The Transactional Silver Bullet?

Over at his blog, Patrick Logan asks why people find transactional memory to be shiny? I think it's the usual reason: it looks to them like a silver bullet.

I know Patrick worked at GemStone with their transactional products, and I spent a number of years writing an app dev system on top of the GemStone transactional object database as well as writing a custom transaction manager for a port of the app dev system to Java. So we're both aware of the problems with transactional memory and the complexity it can entail.

But if you haven't been there and done that transactional memory is seductive; it promises that you won't have to change much to enjoy the benefits of multi-CPU systems. And like the SOAP stack, it initially seems to deliver on the promises. But as the number of processes accessing the data increases, as transactions get longer, and as the amount of data inside the transactions increases they'll find that the the costs in quickly outweigh the benefits.

I'm expecting that the industry will detour into the transactional memory dead end for awhile, just like they did with the SOAP stack and by the time they come back they'll be ready to make the harder changes necessary to do it with an Actors/Erlang type approach.

Saturday, March 18, 2006

Wash away the SOAP scum...

Web Things, by Mark Baker:

Mark Baker said:

I'm calling bullshit on WS-Transfer. Please join me.

Sure thing.

Technorati Tags:

Friday, March 10, 2006

Tim, lets's make a deal...

Tim Bray writes:
I heard this over and over again at ETech, and it sticks in my craw like a sour lump of food gone bad: “User generated content”. Feh. I am not a user, I’m a person. And you know, I don’t put in all this time and work and obsession to be a cog in anyone’s business model. Just saying.
And I'm with him on that as long as we also get to go after my pet peeve: consumer. Everywhere I turn, I'm called a ^%&**&^*&^ consumer. Like my sole function was to suck up all of the products. I'm especially angry at this when it's used by politicians. I'm a citizen and I don't want them to forget it. Depending on the context I can be a voter, customer, individual or person. Maybe I'm a purchaser or a creator today. Tomorrow I'll be a stakeholder or a client. Just stop using that overused meaningless word: consumer.

Friday, January 06, 2006

Calendars are not Schedules

Ummmmm...what's "calendaring"? Danny Ayers (among others) uses the word like an english speaker would use the word "scheduling". Asking Google gives definitions involving papermaking.

Seriously, this is one of those IT stupidities that should, but probably won't, stop. We seem to be forever coining new words and concepts that are just like the old ones, only painted blue, but because we give it a different name we think it's different and special. Thus the five year dead end into SOAP because somehow it is different from all of the other RPC protocol attempts in the past, just because it is serialized with XML.

Thursday, December 15, 2005

Origins of Civilization

Fred Reed, long time curmudgeon and columnist, has a web site where he posts his periodic rantings. Recently he went all down on civilization, opining that we should never have given up the hunter-gatherer lifestyle.
While I have some sympathy with the point, I realized there was something important he'd missed, so I shipped a letter off to him:

The advantage to agriculture, and what I think is the reason that the hunter gatherers settled down, was that you get to make beer. Beer needs an abundance of grain, which you're not going to get bashing about the countryside. Then you have to hang around while it is fermenting, which means you start building more permanent structures. You need proper containers for the fermenting and storage, so you have to go invent clay pots and glass containers. Most beer is better cooled...so you need to develop deep cellars or refridgeration. This leads naturally to pubs and bars, and all of their support structure. A few more iterations, and voila, civilization.

It's all about the beer

This got the one line reply:

Damn. You have destroyed my entire argument....

That made my day. :-)

Friday, October 28, 2005

Air-drop Programming

Back in 1992 or so, in a desperate effort to convey to prospective employers just what it is I do well, I came up with the term "Air-drop Programming". The idea is you get parachuted into the middle of a code base, then fight your way out until the problems are fixed. It implies a total effort at dealing with the unfamiliar, without timidity. It really describes much of the maintenance programming experience, just not as boring.

I haven't been shy about using the term, but it never really caught on. I used it recently at OOPSLA and it looks like it was noticed! And some othe bloggers have picked it up as well Cool!

Thursday, August 18, 2005

Estimating passengers

Via Danny Ayers and David Weinberger , Julian Bond asks how many people are flying on airplanes at any point in time. He figures a million, a commenter gets 750,000, Danny figures 50,000 +/- an order of magnitude. Nobody shows their reasoning, making it impossible to converge on a decent answer as nobody can check each others work. So here is my answer out in the open.

Let's just consider 747 passengers. There are roughly 1,000 passenger 747s, with an average passenger capacity of 500 passengers each. That's 500,000 right there. Most of them are flying at any given point in time as the economics of airlines doesn't permit them to keep their valuable resources sitting on the ground. Subtract some percentage for flights not being full (International fill rate averages 71%, see below) and call it 25% on the ground. This gives 266,250 passengers in the air on 747s at a time. Multiply by an off the top of my head estimate of 3 (all other airplane types) to gives total filled airplane seats of around 800,000.

Looking at it another way with the FAA stats (US domestic for May 2005), there were 56e6 passengers on US airlines domestic flights only in May. Divide by 31 to give us 1.8e6 passengers/day. Assuming the number of US flights matches the rest of the world, that's 3.6e6 passengers/day. (This is probably low as China has lots of flights these days.) I can't seem to find flight duration information, so lets assume an average of 3 hours. That gives us 450,000 as the average instantaneous value.

Unfortunately IATA sells it's statistics, so we can't get much from them (unless someone wants to give me USD 800), but it appears the load factor in international flights is about 71%.

So it looks like 500,000 +/- an order of magnitude. (50 thousand to 5 million) But if I'm wrong we'll all know where I miscalculated.

Technorati Tags:

Saturday, September 13, 2003

Song of the Day, September 13, 2003

Well I tried to make it Sunday, but I got so damn depressed

That I set my sights on Monday and I got myself undressed

I ain't ready for the altar but I do agree there's times

When a woman sure can be a friend of mine

Well, I keep on thinkin' 'bout you, Sister Golden Hair surprise

And I just can't live without you; can't you see it in my eyes?

I been one poor correspondent, and I been too, too hard to find

But it doesn't mean you ain't been on my mind

Will you meet me in the middle, will you meet me in the air?

Will you love me just a little, just enough to show you care?

Well I tried to fake it, I don't mind sayin', I just can't make it

Well, I keep on thinkin' 'bout you, Sister Golden Hair surprise

And I just can't live without you; can't you see it in my eyes?

Now I been one poor correspondent, and I been too, too hard to find

But it doesn't mean you ain't been on my mind

Will you meet me in the middle, will you meet me in the air?

Will you love me just a little, just enough to show you care?

Well I tried to fake it, I don't mind sayin', I just can't make it

Doo wop doo wop ...

- America "Sister Golden Hair" Hearts

Friday, August 15, 2003

And they called me Mad!

This is what I was worried about on January 1st, 2000. An unknown single point failure leading to a massive cascading blackout. The good news is that the system upgrades put in place for Y2K seem to have worked and protected the system from eating itself.

Den Beste has a good article on the restart problems. The only thing I'd have to add to it is that there is also a problem with unexpected current flows. I spen a bunch of time in the early nineties working with the provincial power utility (B. C. Hydro) doing a system to manage maintenance issues. One of the things I learned about the power transmission system is that the current doesn't necessarily flow down the transmission lines that you would expect. It follows the path of least resistance (sort of, AC current is more complex than that) and in a sufficiently complex transmission grid you don't know where that is. You can however figure it out using a computer and lots of linear equations.

In the old pre-computer days the grid was designed simply and inefficiently so you did know what would happen, but with modern computer control systems, competitive power sales, and long distance power wheeling they've let it become complex enough to give them suprises. Suprises like all the current going from B.C. to California routing through 1 set of wires, instead of the several sets that do exist, resulting in the protection system taking all of the wires offline in a cascading failure.

As long as the control computers are online it won't matter much in this case, but it's just one more thing you have to pay attention to when doing a grid restart.

Another item of interest is that apparantly several nuc plants tripped offline. I'm not sure how far offline that is, but in the worst case it can take weeks to restart them, operating by the book.

Sunday, March 30, 2003

Is this thing on?

check check check check

check this out / here we are here we are (on a world tour!)

watching the world turn / feeling our ears burn / check this out

we'll buckle your seats / slam you to the concert chair

we'll hand out 3-D glasses / and all the aspirins we can spare

you better check your exits clear / check

no compromise no deal

you better bet / what you hear is what you hear / check check

check check check / check this out

- Max Webster "Check" Univeral Juveniles