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

Search This Blog

Saturday, July 01, 2006

Minix 3

Chris Double has been working with Minix 3 and a blog with Minix tips. A new release of Minix, it is more of a true microkernel design. Some interesting papers on the web site describe this evolution of Minix.

I was able to install it in short order. It runs all kinds of Unix/Linux/Posix software, including the X Window System.

Underneath the system calls is a small kernel, drivers and servers that run in user space, side-by-side with user application processes, each in their own protected address space. The system calls are implemented using message passing among the processes and the kernel. The driver processes can come and go due to bugs or intentionally, and there is a "reincarnation server" to help with this.

The Principle of Least Authority is followed, to prevent processes from sending messages they should not. This separation also enables experimenting with drivers and servers written in various programming languages.

Of course this is the same design approach that makes systems built with Erlang so reliable. Although Erlang makes the style explicit, while Minix 3 wraps the Unix API around the message-passing implementation. They are complementary systems and each have another quality: Fun.

"Scalable" is the new "Fast"

See this article on Erlang.

It used to be that if your code ran quite quickly, a year later you could run it twice as fast for the same amount of money. These days, you’re much less likely to get a chip that’s twice as fast, but you may get one with twice as many cores. If your code is highly parallel, you can just spread it out a bit more...

Two features of Erlang, both of which are built into the language, make it especially suited to writing scalable applications: process creation and message passing.

(via Mickaël Rémond)

Some years down the road, people will realize *this* model is service-oriented. There will be some kicking and screaming along the way, no doubt.

Web Services in Stockholm

Another one from Panic From Fuzzy...

I saw this a lot with EJB. I was certainly guilty of it. Having achieved some success and decent understanding of EJB, I became an ardent defender of it even though it was terrible technology.

I see this same phenomena today with WS-*.

No kidding. There are very few ways to discuss design decisions rationally with programmers fascinated by sparkling technologies, unproven technologies that promise to be the only way to develop software in the near future.

Eventually these programmers will be older and will no doubt have learned some lessons too. Until then they have to make their own mistakes.

Thursday, June 29, 2006

When the lights go down in the city...

From the SOA Yahoo group...

[In] the grand design of Service Oriented Architecture (of which Web Services may be a means), HTTP plays a very insignificant role.
Sweet irony.

"I shall be telling this with a sigh 
 Somewhere ages and ages hence: 
 Two roads diverged in a wood..."

(Sorry for including Journey and Robert Frost in one post about SOA.)

Wednesday, June 28, 2006

Bound

That rails guy writes...

"Is DHH trying to to tighten the belts on the straight jacket of design once more?"... Why yes, I am.
(via Mark Baker)

And a rich commentary from Jim Greer including this...

To be frank DHH’s combination of “aryan” good looks, personal magnetism, and zeal for an orderly utopian world does lead to some uncomfortable associations.

But DHH doesn’t seem to want to take over the world – he wants to make a better one and let the old world come along when it’s ready.

Tuesday, June 27, 2006

Big

Greg geeks...

Google can store roughly 500k * 8G = 4 petabytes of data in memory on their cluster.

Four petabytes. How much is that?

It is twice the size of the entire Internet Archive, a historical copy of much of the Web. It is the same as the estimated size of all the data Google had in 2003 on disk.

It is a staggering amount of data. And it is all accessible at speeds orders of magnitude faster than those with punier clusters.

Monday, June 26, 2006

Sunday, June 25, 2006

More Beavers! (SFW!)

One more baseball game is left in the College World Series. North Carolina topped the Oregon State Beavers 4-3 yesterday in a great game (except for the hour storm delay late in the game).

The Beavers found themselves down 5-0 today, but found some fireworks in the fourth and sixth innings for an 11-7 win.

The final game is tomorrow night. If you're in Omaha its hard to imagine a better baseball game in a 500 mile radius this summer. Especially when the tickets cost less than $50.00

Lossage

Statistics

Steve Dekorte quotes Milton Friedman on the tremendous prosperity of Hong Kong over Britain in the last several decades...

...the average per capita income in Hong Kong... had risen to 137 percent of that in Britain...

I believe that the only plausible explanation for the different rates of growth is socialism in Britain, free enterprise and free markets in Hong Kong.

I don't believe socialism has been a smashing success in Britain. Certainly Britain has a very old bureaucracy as well. Hong Kong has been a wheeling and a dealing.

But perhaps a more disturbing fact is that Friedman seems all-consumed with "average per capita income". What about income disparity?

Hong Kong seems to be well down at the bottom in terms of income gap between rich and poor.

Socialism isn't needed to make improvements there. (And isn't Hong Kong governed by the Chinese now? Hey, China's way down there too. So much for socialism.)

So much for Friedman.

Thursday, June 22, 2006

Taxes and Subsidies (aka "Welfare")

Steve Dekorte conveys an item about "The Irish Economic Miracle" being attributed to low corporate taxation.

That may be. But looking from another angle, the high tech industry in Ireland is also taking advantage of the long tail of government (mostly not the Irish) investment (subsidy) in high tech in the 50's, 60's, and 70's.

The reason high tech corporations in Ireland can get away with low taxes, it seems, is because others, around the world, in past decades, *have* already been taxed.

Where would microelectronics be without the investment U.S. tax dollars made in defense and aerospace over those decades?

We may also thank those programs eventually when we as a society decide finally to decentralize electricity production through photovoltaics (among other mechanisms). Before we invest in that though, I am sure we're going to have to wrestle control away from the nuclear power lobby.

Much more investment will have to be made in the name of democracy and making each of us net producers of electricity, rather than subsidize the enrichment of the centralized few. (Running on a subsidized significant security threat (the grid) our politicians are ignoring at *our* own peril, by the way.)

Where would nuclear power have been developed without subsidies? Those corporations could not even afford insurance on the open market!

If corporations are going to benefit from the services of the commons, government subsidies (should we call it "welfare"? Horrors!), and if corporations are going to have the rights of "persons", shouldn't corporations also pay something back to the commons? "Low corporate taxes" is no more (or less) a cure-all than "high corporate taxes".

Reality is somewhere in the mix and will vary by region and industry.

Beavers!

The best thing to happen in Oregon sports in a long time... Oregon State is the only school to return from last year to the College World Series. They got pounded 11-1 in their first game against Miami. They fought their way out of the loser's elimination bracket over the last four games, beating Georgia 5-3, Miami (revenge!) 8-1, Rice 5-0 last night, and Rice again tonight 2-0.

Back-to-back shutouts against the team ranked #1 going into the series, using a pitcher with one previous start this year (in April) and tonight a pitcher on 2 days rest. When Nickerson the starter went out after 7 2/3 innings tonight, the entire stadium provided a standing ovation.

"You just saw one of the guttiest performances by any person I've ever seen in the sport of baseball," [Beaver's Coach Pat] Casey said.
*Two* gutsy career-highlight pitching performances over the last two days. This has been the most fun watching baseball has been in a long time.

The final three-game series starts Saturday against North Carolina. Go Beavs!

The games have been on ESPN2, and I assume will remain there.

Tomorrow's Edges for the Black-Diamond Runs

James Robertson explains the edge that Smalltalk's more pure objects have over languages with special "constructors". I'm thinking back to a really nice analogy Ward Cunningham made, oh dear, over a *decade* ago...

Everything I Really Need to Know About Object-Oriented Design I Could Learn on a Black-Diamond Run

I have been wondering if we aren't making this all more complicated than it need be. I wondered if designing isn't a lot like skiing, that is, easier to do than to explain or prescribe. Then I realized: everything I really need to know about object-oriented design I could have learned last weekend skiing Utah's black-diamond runs...

Now, to make these turns, I have to use my edges. I can't twist and turn my body to turn the skis; I must let the ski's edge do the work. So, let me ask you, what's the object designer's edge?

(silence)

Polymorphic message sends! That's what we use to turn a design around a bump. We plan and balance our designs just so we can apply that edge when we need it, which in practice is most of the time...

And just so, tomorrow's edges will be distributed, asynchronous message sends. Not those clumsy things you see in the SOAP catalogs. But those neat edges in the Erlang catalog. We'll need edges like those!

Oregon's Own

Oregon lost another handful of young men in Iraq this week. I think we're totaling in the 50+ range now. Conveyed by Portland's own Tim Riley on his City Desk blog...

Another young man is slaughtered in a war where there's nothing to be won thanks to gutless politicians who can't admit they were wrong, and a uninformed public duped by meaningless, dated, and obsolete patriotic propaganda.
Shame on us. But hopefully we won't be able to burn the flag soon, and that should help.

Wednesday, June 21, 2006

*Advanced* Message Queue Protocol

Not just any message queue protocol, Panic From Fuzzy points to a new *Advanced* Message Queue Protocol. The spec seems incomplete at a glance (e.g. multiple mentions of several kinds of "transactions" but I could not tell that they were fully specified).

According to InfoQ...

RedHat is currently working on an implementation that will be built into the operating system, making AMQ as free and available as SendMail, and accessible from any technology API such as JMS.
I saw no mention of WS-* although AMQP appears to have the support of vendors with products in the WS-* market.

Also no mention of XMPP, or any significant mention of HTTP. Again from InfoQ the isolationist approach to the AMQP spec is acknowledged as work that...

has been done in secret.
Mighty open of you, AMQP.

If not GData, why not WSAP-DAV?

About Microsoft's Web Services Application Protocol, Mark Nottingham suggests...

There will undoubtedly be debate on whether it’s necessary to fuse REST and WS-* together in this manner (especially in the face of things like APP and GData)
The WSAP spec says...
The WSAP operations have been designed to be a superset of the methods provided by HTTP/1.1. In particular, WSAP provides support for structured data manipulation and event notification as an integral part of the service model. Because HTTP and WSAP inherently have different protocol characteristics, WSAP is complementary to HTTP and not intended as a replacement. Rather, the close relationship between WSAP and HTTP allows WSAP services to be accessed either as regular HTTP resources or as WSAP services providing additional support for structured data manipulation and event notification.
But I don't see a rationale about why they chose to extend HTTP using SOAP. If they did not want to stay within HTTP/1.1 as did APP/GData then another option would have been to follow WebDAV/CalDAV and extend HTTP/1.1 with the new methods that appear in WSAP as SOAP methods. The WSAP choice introduces two different programming models, HTTP and SOAP. At least the xDAV approach retains one programming model.

The WSAP approach seems arbitrarily complex. There appear to be at least *two* simpler extension mechanisms. Not to mention the question of the explosion of methods being worthwhile.

Is WSAP also an implicit commentary on WS-Event/Notification/whatever being too complex to easily implement? Why would Microsoft invent a new SOAP event/notification mechanism unless it was too difficult to follow the emerging spec I assume they'd otherwise want to promote?

Fire Fighting

Mark Baker in the Yahoo SOA group, on running WS-* over HTTP...

It's as if you were trying to rub two matches together to start a fire.

Tuesday, June 20, 2006

Sign of CORBA

The essence of CORBA wonderfully captured by Steve Loughran...

Gnome is built on Corba. You can tell that by changing your hostname and noting how you can't start any apps by double clicking on the icons. That is an ORB at work, if ever I saw one.
Steve goes on to wonder... "I wonder what Gnome-on-ICE would be like?" (where ICE is somebody's new and improved distributed object system).

While Miguel de Icaza has already started thinking about just using HTTP...

I have been considering the implementation of a system that would replace D-BUS and CORBA with a simple HTTP framework.

What If Unix

Via O'Reilly Radar, the original UNIX Time-Sharing System paper.

For most users, communication with the system is carried on with the aid of a program called the shell. The shell is a command-line interpreter: it reads lines typed by the user and interprets them as requests to execute other programs.
Something I've wondered fruitlessly about in the past: what if the first shell language had been a simle lisp interpreter, along the lines of elisp. I mean, shell programming is obscure and arguably limited, yet thousands upon thousands of people have written thousands upon thousands of lines of shell scripts.

If one of the developers had been at MIT before Bell Labs and had taken a simple interpreter along, then people would have grown up around Unix thinking Lisp was easy and useful. Those many thousands of people would just think Lisp is they way to do scripting and not give it a second thought.

Friday, June 16, 2006

Exact Math

The binary search controversy has improperly gone from the definition of numbers in poorly designed languages to the "static vs. dynamic" debate, which has no bearing on this topic. Then the question came up about floating point and why even Smalltalk accepts that 1e16 + 1 is equal to 1e16 when using a floating point (i.e. inexact) representation of integers.

The numerical tower in Scheme explicitly defines what number representations and procedures deal with exact or with inexact math. You get to choose, for instance based on whether you need speed or accuracy.

> (+ 2/3 1/3)
1
> exact->inexact
#inexact>
> (exact->inexact 1/3)
.3333333333333333
> (= (+ 1 10000000000000000) (+ 1 (exact->inexact 10000000000000000)))
#f
> (= 1e16 (exact->inexact 10000000000000000))
#t

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.