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

Search This Blog

Friday, May 12, 2006

Virtual Machines for Small Form Factors?

Tim O'Reilly writes about the value of small form factor devices connected to Internet data...

It's a sign that special purpose hardware providing access to internet data services may eventually be commonplace.
On the other hand I don't want to carry around five or ten devices. I'd rather have a three form factors and carry around one of them, the one that is most useful for the moment. That may be a wrist watch sized device, a larger cell phone sized device, or a small laptop sized device.

I'd like virtual machines running on each of these with images of the systems I want to use. Most of my systems would run on any of the form factors and use as much of the capabilities of each as possible. Everything would be synched, backed up, and enhanced through the Internet to my big system that stays put at home and/or at some other site.

People with ideas for new capabilities would not design new hardware, just new virtual images for the common hardware. Every year or so I would upgrade one or more of the devices to the newest physical devices available. All the old images would continue to run.

Thursday, May 11, 2006

Expressionism

Update: Don sets me straight, and rightfully so with a good exposition. I did not do my homework.

End Update

Don Box writes about compiling code on the fly in C# 3.0, kind of, I think...

Expression<Func<int, int>> expr = a => a + 3;
Console.WriteLine(expr); // prints "a => Add(a, 3)"
Func<int, int> func = expr.Compile(); // LCG's an MSIL method from the expr
Console.WriteLine(func(4)); // prints "7"
He equates (incorrectly from what I can tell) the above C# 3.0 with the following Scheme from 25 years ago...
(define expr '(lambda (a) (+ a 3)))
(display expr)
(define func (eval expr (scheme-report-environment 5)))
(display (func 4))
I think the comparison has some flaws. Maybe I just don't know enough about C# 3.0 (until just now I knew nothing about it).

First of all the expression (quote (lambda (a) (+ a 3))) is *data*, in particular a list of atoms and nested lists of atoms. That list is bound to a variable called expr, whose name is conveying that the data *may* be evaluated as a lambda expression. But it is not a lambda expression, it is a list. The C# code appears to require something to be declared as an Expression. Is such a class something that can be built programmatically? Or does it have to be declared and constructed intact?

Plus if it is already an expression, why would it need to be compiled? In the Scheme example, the list has to be evaluated to get a lambda, i.e. the function that the original list of atoms resembles. If you start with an expression, you should not have to do an eval or compile to get an evaluatable thing. That's just wrong. You'd just do this...

(define func (lambda (a) (+ a 3)))  ; No QUOTE form. It's already a function.
(display (func 4))                  ; Just apply it.

Or even more simply...

(display ((lambda (a) (+ a 3)) 4))  ; No QUOTE form. Just apply it.

One more thing: where is the QUOTE form in the C# code? The quote mark in Scheme is short hand for wrapping a special form (QUOTE ...) around something that you consider "data". i.e. QUOTE prevents evaluation. Does the Expression class automatically get recognized by the C# evaluator to prevent the RHS from being evaluated? Come on, either the RHS is data or the RHS is an expression. Or can the compiler only work with a special kind of data that happens to be called an Expression. Weird any way you slice it from what I can make of it.

I don't get it, and maybe there is a more complete and logical explanation. Maybe the answer is "Pat, you're confused because you already know a simpler language like Scheme." Yeah, so why not use C++?

As it stands it looks like there is a bit of confusion and complication that separates C# 3.0 from simpler, more agile languages like Scheme, Python, and Ruby.

Just use those languages, folks. Don't get strung out on these incremental "improvements" to a language that was too complex to begin with.

Wednesday, May 10, 2006

Sunday, May 07, 2006

Tell All The People - Follow Me Down

A musical tribute to Stephen Colbert...

There's no denying the huge supporting role Jon Stewart played in this victory. Both Stewart and Colbert had to use their people-skills over a long period of time to gain access to their marks. Jon Stewart loaded the bases and Colbert hit it over the fence. It reminds me a bit of the tactics of the "Yes Men".

Friday, May 05, 2006

What's On Your Hard Disk

Found on ACM Queue's "What's on your hard disk" results...

Who: S... R.......
What industry: Technology vendor (software, hardware, etc.)
Job title: Programmer/Analyst
Flavor: Develops on Windows for all platforms (JVM)
Tool I love!
Squeak. I am forced to use Java at work to build enterprise applications, but at home I play with and enjoy Squeak. After eight hours of working in a traditional IDE, coming home to Squeak is pure joy. Its system browser and method finder are excellent programmer resources.
Tool I hate!
Eclipse. This IDE suffers from a misleading and often incorrect debugger. Furthermore, it can’t refactor multiple files correctly and has a buggy interface. But it is free and nicely configurable. I love it and hate it.

Links

Follow this link because Bill de hÓra has some good links to follow.

Thursday, May 04, 2006

Not Yet In A Groove

Kris Tuttle of Research 2.0 on Microsoft's future...

Ray Ozzie seems to be the face of future innovation at Microsoft these days. So far we are pretty unimpressed. We have used Lotus Notes and Groove. Both definitely had visionary elements in their functionality but operationally left a good bit to be desired. In fact Groove reminded us of Outlook in terms of the vast resources it consumed relative the functions delivered. (We don't use any bloated products anymore in this shop...) Ray has been a trooper and introduced concepts like the Live Clipboard that some like, we think it treats the symptom and not the disease.
Maybe give him some time. I was kind of shocked years ago when I read about the technology developed for Groove.

Kris in a subsequent post writes about expanding her use of Google ads to incude Microsoft's ad machine...

So wanting to be fair I went to MSN AdCenter today to set it up in a similar fashion to how our company uses Google AdWords. Unfortunately I didn't get to square one because they don't support FireFox.
I wonder if Groove had leveraged open source components in a platform-independent way if it would have been a bigger success and still evolving. Microsoft has a great big wall around their universe, nevertheless it is still a wall and they continue to imprison themselves.

Agile Languages and SAP

Piers Harding announces...

I'm proud to announce the latest updates of the SAP RFC integration packages for Perl, Python and Ruby.

Wednesday, May 03, 2006

Dup or Ref?

Bill de hÓra writes...

Both JRuby and Jython have experienced stop start development.
And then goes into several interesting directions. (BTW, the original Erlang book is good, but not essential for adopting Erlang. Instead start with Erlang in Real Time which is online and more in-depth. Everything else you need is on the erlang site, including the mail lists.)

Anyway my thought is that running multiple languages on the JVM or CLR is beneficial simply because there are no *really* good inter-language communication mechanisms. Being in the same OS process is useful but certainly there are times when that is undesirable for security and reliability reasons.

Given the oncoming multi-core low end systems, the oncoming many-core high end systems, and the realization that "SOA" in its best possible interpretation is just "reality" for tomorrow's programmers (cf. "Notes on Postmodern Programming") we need to get over this "use my OS/VM/language" / "no, use *my* OS/VM/language" parade asap.

Erlang may never be popular regardless of the books available or not. (Then again with ejabberd, Erlang *may*... er, forget it. Jabber will more likely be the inter-language communication mechanism I claim we're missing.) But just as Lisp got data right, and Smalltalk got objects right, Erlang got processes right.

Sooner or later your language and runtime will too. And the sooner the better because I cannot count on anyone porting my language to your runtime, and I sure don't have any incentive to do so myself.

Meanwhile rather than try to program all of the latest Ruby or Python in the JVM or in the CLR, I am wondering whether we need to expose Java and C# libraries via their own processes connected to a simple communication mechanism with a simple, reflection-based interpreter on the receiving end.

Hey, JVM, just sit there and do what I tell you. I don't need that to be more than the current implementation of Jython or (the upcoming 1.0 release of) IronPython. Or take your pick, maybe Javascript is the lingua franca via Rhino and... er, dotnet does have a Javascript interpreter, right?

If I ship my application to you as a, say, a VMWare player and image running the OS of my choice, pared down to what my application needs, plus a few OS processes running on that image, each implemented in the language of choice for that process, plus some inter-communication between them, and all of them going out to the real world as desired, then... would I be happy with that kind of Gordian Knot post-modernism?

Just a Little is Enough

Steve Loughran writes...

As an aside, ...it's clear that Tomcat is all that most server-side [Java] installations need.

More Colbert Gushing

Steven Hart writes that Colbert's performance is like Swift delivering A Modest Proposal in the king's court. Of course this is still America and critics are deflecting a lot of heat by writing about how great America is that Colbert has the right to do such a thing. But Hart responds to those statements correctly...

Colbert is as much a target for big media now as Howard Dean was in 2004 once he announced on NBC's Meet the Press that he'd be in favor of disallowing General Electric from owning NBC. He will have more than a little trouble getting the White House Correspondents' forum back again for similar comments. Making this into a triumph for "free speech" is missing the point by as wide a margin as the adminstration missed so many calculations about the Iraq invasion.

It's one thing to march into the lion's den and yank a fistful of hairs from his mane. It's quite another to march into a den full of people who think they're lions and rub their noses in the fact that they're nothing more than fat, spayed tabby cats who are less interested in exposing the powerful than they are in curling up by their feet.

That's what Stephen Colbert did at the White House Correspondents Dinner, and for his perfidy he will now be subject to their endless mewling and kitty-kat clawing. Even if he loses his nerve and backtracks with an apology — something I don't think for a second he would actually do — he will always be their target. After all, the eunuchs of the court were often the most devious and vengeful of the players surrounding the king...

Colbert's performance was a display of wit at its most lethally cutting. He went into a room with the most powerful man in the world and his courtiers, and he excluded them from the land of the free and the home of the brave.

If the White House courtiers had an ounce of self-respect, they'd all book a flight to Alaska, find a good-sized ice floe and shove themselves out into the ocean. Instead, they'll just go about their routines. They may walk funny for a little while, after the way they've been used, but after six years of covering the Bush administration, they're probably accustomed to that kind of thing.

Daily Zen

Daily Zen...

"You’re traveling beyond hope of return"

- Hsieh Ling-yun (385-433 C.E.)

I Have A Brief Statement...

The Daily Show and the Colbert Report are two of the three television programs that I know of where real news is reported. Democracy Now is the third, and ranks above the comedy shows. TDS and TCR though are simultaneously the two comedies worth watching. (If Amy Goodman could even just learn to crack a smile once and again...)

Colbert has balls, so view the videos and thank him for what he did to Washington and the press. Some people are arguing that it was uneven or did not have a comedy crescendo. I thought it was hilarious in places but to be appreciated overall just as a supreme "fuck you" to the establishment in Washington.

Even by TDS and TCR standards, he blew past them in an opportunity that he may never have received again to spell it out plainly right to the president's and the press' faces... the establishment is circling the drain in credibility, so stop with the games.

"It’s not just that Colbert’s jokes were hitting their mark. We already know that there were no weapons of mass destruction in Iraq, that the generals hate Rumsfeld, or that Fox News lists to the right. Those cracks are old and boring. What Colbert did was expose the whole official, patriotic, right-wing, press-bashing discourse as a sham, as more ‘truthiness’ than truth."

-Michael Scherer, Salon Magazine

From Colbert's "audition tape" for the White House Press Secretary's job...

"I have a brief statement. The press is destroying America."

Tuesday, May 02, 2006

Losing the War (No, not *that* war)

If Microsoft looks at Ruby as competion then Microsoft has already lost the war, let alone the battle. Whatever happened to that IronPython thingy? I thought that was supposed to make any agile language first-classable on the CLR.

Wednesday, April 26, 2006

Jabber

"Like email, but really fast"

-Peter Saint-Andre (Jingle.pdf)

Wednesday, April 19, 2006

Heresy

I enjoyed so much reading the abstract from Avi Bryant's upcoming OSCON 2006 talk about Seaside, I decided to replicate the whole thing here...

Over the last few years, some best practices have come to be widely accepted in the web development world. Share as little state as possible. Use clean, carefully chosen, and meaningful URLs. Use templates to separate your model from your presentation.

Seaside is a web application framework for Smalltalk that breaks all of these rules and then some. Think of it as an experiment in tradeoffs: if you reject the conventional wisdoms of web development, what benefits can you get in return? Quite a lot, it turns out, and this "experiment" has gained a large open source following, seen years of production use, and been heralded by some as the future of web applications.

In this talk, you'll learn in-depth about Seaside's heretical design choices, and how it benefits from them. In particular, you'll see how closures and shared state let you ignore the details of URLs and query fields; how the right HTML generation API makes you less tied to your presentation layer, not more; how continuations free you from ever thinking about workflow as a state machine again; and how all of this combines to enable modularity and reuse like you've never seen before.

No prior Smalltalk experience necessary; open mind recommended.

Monday, April 17, 2006

Waiting for WS-Success

Dan Creswell writes about the search for real, rich SOAP-based systems...

Real-world examples are what I measure on, rightly or wrongly.
Maybe they could be captured on the WS-Success wiki when they are found.

Friday, April 14, 2006

WS-Misunderstood

Eric Newcomer writes in the SOA yahoo group...

Web services specifications are misunderstood and not implemented correctly. JAX-RPC is the kind of "poster child" for this.

Steve Burbeck and Multicellular Computing

Jon Udell has an interesting session with Steve Burbeck (who's only apparent career blemish appears to be the design of UDDI 8^).

[Update: Steve explains his role with UDDI in a comment on this post.]

Burbeck's history goes back to that Tektronix Smalltalk community here in Portland that spawned Ward Cunningham, Kent Beck, Rebecca Wirfs-Brock, Gemstone Smalltalk, Digitalk Smalltalk, etc. The work Cunningham, Burbeck, and others did at Wyatt with a Smalltalk-based trading system is a gold mine of ideas barely tapped, yet more relevant than most enterprisey systems built since.

Someone could write a book on Tek Labs and the direct and indirect influence it had not just in popularizing Smalltalk, but design patterns, agile programming, etc. It's reach is far and wide and largely unrecognized.

Back to Burbeck... the current references are to his work on multi-cellular computing. Apoptosis is an increasingly recorgnized pattern, e.g. from the Erlang community the idea that small components should give up quickly and allow a higher-order component handle the fault.

Stigmergy is interesting... it's not really found in Erlang, except I guess it is in a sense what the Mnesia distributed database is for. It's also a key aspect of the Linda tuple spaces / Javaspaces model, and the idea of "blackboards" in artificial intelligence.

Thursday, April 13, 2006

Linux Fest Northwest incl. Tim Bray

Linux Fest Northwest is on April 29 in Bellingham, WA. That's a beautiful part of the state in the north Cascades not too far from Vancouver, BC. Admission is free.

I hope I can make it up there. Tim Bray is scheduled to talk on things non-enterprisey...

"XML, Open Source, Complexity, Simplicity"
There are a number of other interesting presentations scheduled.

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.