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

Search This Blog

Monday, June 16, 2008

Erlang Supervisor Hierarchies in Scala

Initial attempts to duplicate Erlang in other languages tend to make a lot of simplifying assumptions, either knowingly or unknowingly. Distribution is a big feature often overlooked initially, and beyond that "supervisor hierarchies" in which various distributed processes are either workers (do the real work) or supervisors (ensure the real work continues in the face of process or node failures).

Jonas has started an implementation of supervisor hierarchies for Scala's agents, as well as a basic "generic server" framework approximating Erlang's gen_server, etc. So far I think it's all running in one JVM, but it's a good start at illustrating all that Erlang does on behalf of a distributed system.

Sunday, June 15, 2008

Above the Fray

Steve Yegge relays a fracas about language interoperability...

He [Chris] asked this really innocent question. He goes, "You know, I don't really know much about this stuff..."

Which is bad, you know. When somebody says that to you at Foo Camp, it means they're settin' you up.

He says, "So how do these languages talk to each other?"

And the room just erupted! It was chaos. All these people are like, "Oh, it's easy!" And the rest of them are like "No, it's hard!" And they're arguing, and arguing, and arguing. They argued for an hour.

And then they stood up, still arguing, and they kept talking about it, heading into the dinner tent. And they sat down, going at it for like three hours.

It was chaos.

Because some people were saying, "Well, you know, if Ruby's gonna call Python, well, uh, you just call, right? You just share the same stack, right?"

And the others are like, "Well, what about different calling conventions? What if they support optional vs. non-optional arguments? What if they support default arguments? What about the threading model? What about the semantics of, you know, the this pointer? What about all this stuff?"

And they're like (waving hands) "Ooooh, we'll gloss over it, gloss over it, smooth it over." And the reply is: "You can't. This is fundamental. These languages work differently!"

And oh my god, it was really interesting. And it was also very clear that it's ten years of research and implementation practice before they get this right. Before you'll be able to have a stack of calls, where you're calling from library to function, library to function in different languages.

So today, VMs are good for interoperability, but you've gotta use a bridge.

I thought this was going to be interesting, then I found the conversation was about language interoperability *within* a VM.

Friday, June 13, 2008

Y2K+8

Douglas Purdy of MSFT...

"One of the reasons this topic comes up in Microsoft circles is the
fact that so few Microsoft desktop applications use the CLR. As you
may be aware, there is a performance cost associated with running code
in the CLR and garbage collection often gets painted as the chief
offender."

http://douglaspurdy.com/2008/06/12/objective-c-20-garbage-collection/

Thursday, June 12, 2008

All of a sudden...

...the evening is perfect, the city is shiny, the Timbers are winning. May has arrived, and it's only June!

Web Too Oh

Douglas Crockford writes...

"In the long term, we need to completely replace JavaScript and the
DOM with something designed to be safe from the ground up."

...noting that Firefox, and any browser generally, is a horrible
platform for applications.

http://blog.360.yahoo.com/blog-TBPekxc1dLNy5DOloPfzVvFIVOWMB0li?p=865

Tuesday, June 10, 2008

I think...

...it's about to snow.

Monday, June 09, 2008

Mornin'

Back in the 70s Jimmy Carter put a solar water heater on the roof of the White House, mostly as a symbol for a new direction of conservation and energy independence. Reagan promptly tore it down as a symbol of, well, he ran on the notion of bringing us "Morning in America", implying we have no reason to feel bad: we should feel "good" again.

We're Americans. We should not have bad news, and we should not "sacrifice" anything, well, at least not any comforts. Besides that the energy industry hated the idea of conservation and energy independence.

Carter also set the objective that America not become more dependent on foreign oil than we were at that time, 30 years ago now. Reagan convinced us we didn't need a pessimist like that.

Mornin'.

gosh, try goosh

(via Stefan Tilkov)

http://goosh.org/

e.g. type "place portland oregon (enter)"

Dumbest Name Ever From Apple

"Mobile Me" --- are you f'ing kidding me???

Bah. http://www.apple.com/mobileme/

You can also get there from http://www.me.com/

Joy. So now I can say to my wife, upload those photos from your camera to "Mobile Me" then bring them down to your "My Documents".

Oh, wait. Could you please bring them down to *my* "My Documents"?

Gawd. "Live Mesh" seems perfectly sexy compared to "Mobile Me".

Sunday, June 08, 2008

Toward a New Fast Squeak VM: Eliot Miranda's Blog

Eliot Miranda is one of those really smart VM implementors. He's been working on Smalltalk VMs for a long time, including one of the best: VisualWorks. After a brief sidetrack with the (fairly uninteresting IMO) Newspeak project, he's now at work on a better VM for Squeak. He's got a blog about that.

Does the history of computing matter?

(via Bill de hÓra)

If I were the author of a significant IDE product I would take a fair bit of time to understand the history of my marketplace. Apparently Dmitry Jemerov does not follow that philosophy. I guess that has not hurt his success any. So I have to wonder how much the history of our field matters to its future.

Consider the following image of a Symbolics hypertext system from the mid-late 1980s. Who noticed at the time? Who would've believed such a thing was possible then or even now using a "dynamic language"? 150 years from now what does anyone need to remember? A couple of blips maybe: Netscape and Excel?

Dmitry writes...

Groovy is interesting, but it's a dynamic language and has all the problems of dynamic languages. It's OK for small pieces of code. But building something the size of IntelliJ IDEA [in a dynamic language] would be a complete nightmare.
So let's consider history's demonstration that this is false. As Patrick Mueller writes...
Since Smalltalk I've generally been using Eclipse for work stuff, but the effort in extending the environment has just been too much work for me to invest in, though I've tried a few times. I settle for writing ant scripts; that's how bad things have gotten - I'm programming in XML.

What's on the horizon? Eclipse has E4. Which seems like it's largely a cleanup/sanitization of Eclipse, vs a complete re-think. I suspect I will write as many extensions for E4 as I have for the previous versions of Eclipse. Perhaps I'll sit that out and wait for Steve Northover's E5. Frankly, I think it's time we started fresh; let's call it F1.

And Joe Gregorio writes...
Poor old disrespected Smalltalk, all those years of work, all that cutting edge research, and nary a bit of credit, which is particularly galling if you think about the fact that, to date, the language that has benefited the most from Smalltalk is Java.

Mike's Gotta Job For You Mebbe

Mike Herrick's posted an opening at CSI doing the open source incl. Rails and JRuby. Good folks to work with.

Saturday, June 07, 2008

June pdxfunc: Functional Programming With Dynamic Languages

Monday's topic for the Portland Functional Programming Study Group (pdxfunc) has been announced. The meeting will take place Monday, June 9, 7pm, at CubeSpace on Grand Avenue.

Please join us at the next meeting of pdxfunc, the Portland Functional Programming Study Group. The group meets monthly for presentations, demos and discussions. We welcome programmers interested in all functional languages, and the meetings feature content for coders of all skill levels. If interested, please subscribe to our mailing list at

http://groups.google.com/group/pdxfunc

PRESENTATION:

Title: Functional programming with dynamic languages

Summary: Dynamic, multi-paradigm languages such as Ruby, Python and Perl allow programmers great flexibility in how they can write their code, although most use an imperative (AKA "procedural") style. However, using a functional style selectively can help provide clearer and shorter code, reduce bugs, and improve performance. This presentation will provide a basic overview of functional programming, sample code demonstrating how to use functional programming features of dynamic languages, compare and contrast code samples of functional and imperative styles, and discuss when each style is appropriate. No previous knowledge of functional programming is necessary.

Bio: Igal Koshevoy is a Business-Technology Consultant with over a decade of experience creating sophisticated, business-critical systems using open source technologies. He is the author of an open source server automation toolkit available at "automateit.org", and supports local community efforts through Calagator, Portland Ruby Brigade, Portland Functional Programming Study Group, Legion of Tech, Ignite Portland, etc.

See you there!

PS: Sorry for the short notice, but Kevin's talk on XML parsing with Haskell had to be delayed. Hopefully he'll be able to present it next month.

Monday, June 02, 2008

Microsoft Wants To Give You A Vulnerable Flash

From Steve Loughran...

SANS is issuing an emergency warning that XP SP3 installs a version of flash with security holes, even over a later version.
And you use Windows, again, why?

Acrobatics

News from Adobe today, heading in the direction they were talking about last year for PDF and Flash. PDF is an open standard. I don't know how that spec-wise matches what it takes for Adobe to incorporate SWFs into Reader, techno-wise, and stuff...

Two big announcements today. One, we’re announcing Reader 9 which includes the ability to render SWF content inside of your PDF. That means you can actually put Flash/Flex content directly into created PDFs. That opens up a lot of very, very interesting use cases like exposing form entry applications right inside of the document or starting to use a lot of video content inside of your PDFs. I think this is one of the more interesting things to happen with the Adobe/Macromedia merger. With PDF’s right’s management built in, this also provides you a way to protect your SWF content from being decompiled.

The second announcement, my favorite of the day, is that we’re rolling out Acrobat.com. You’ve seen a lot of the services in different parts of the web, but we’re finally bringing them together under one umbrella brand with one account and a lot of functionality. You get Buzzword, “Share”, and “Brio” all as part of Acrobat.com and the line between the online software and the desktop software is starting to blur. For instance right from the Adobe Reader menus you can create a new Buzzword document or start a collaborative meeting in “Brio” which as been named Connect Now. Your Buzzword documents can now export to PDF and you can use Share to both create PDFs from documents as well as make it easy to send them to friends or embed them on your blog. There’s even an Acrobat.com AIR widget that lets you drag and drop files and create PDFs from them.

I think it's cool. And another set of signs that Adobe "gets" some things competitors either don't get or have not figured out how to execute on successfully. This is all good news for "the office" and multiple offices working together over the internets. Not to mention education, entertainment, and everything else.

Also, via Mike Chambers today, a bunch of useful reference guide stuff from Adobe re: RIA and ActionScript.

I don't know. Maybe I am just an Adobe "fan boy" so to speak. I think they're doing a lot of things well.

Sunday, June 01, 2008

Toward Better UI Programming Models

Every now and then I complain about the browser's programming model. There's just been better models in the past on desktops, and there must be a ways forward that (1) "don't hurt the web" [see below] and (2) provide at least the ease of the popular models of the past. Most of the popular models of the past are based on some variation of Model-View-Controller from Smalltalk-80... frameworks like Swing, MFC, etc.

Those models are still incredibly low level compared to other practical-yet-relatively-unknown models that evolved over the last 30 years or more. Most of these other models that I can recall are all in the ballpark of contraint-based and data-flow-based systems.

Here are some off the top of my head for interested readers, many of whom I suspect may *only* have client-side experience with HTML and AJAX if they are younger than a certain age, maybe 35? I'll fill out links and descriptions as I get time.

  • ThingLab - And subsequent constraint solvers that came out of Alan Borning's groups for Smalltalk, Java, C, etc. (Many developers are familiar with contraints for layout, less familiar with constraints used within domain model and GUI integration. For a recent discussion on contraints in layout see: Michael Lucas-Smith, Vassili Bykov, Andres Valloud)
  • Alternate Reality Kit (ARK) - Smalltalk
  • Morphic - originally influenced by ARK and implemented in Self, then in Squeak Smalltalk, and now Lively Kernel in Javascript.
  • Fabrik
  • Hypercard (on this list for its unique simplicity as opposed to its programming model per se)
  • Garnet - CommonLisp, read the papers and try the system if you can - great stuff.
  • Amulet - Garnet's C++ successor, a bit more clunk but available to more programmers
  • EZDraw - Joel Bartlet's Scheme->C system
  • Figlets - Haskell
  • Functional Reactive Programming (FRP) (data-flow-ish) systems like: FrTime (PLT Scheme), Frappe (Java), Flapjax (Javascript), and various Haskell systems.

Please Don't Hurt The Web

I don't think HTML and AJAX should or could go away any time soon. But I don't think all "clients" have to be entirely (or at all) made of HTML and AJAX. The more RESTful the web becomes the less clients have to consist of HTML and AJAX. That's a big reason I like AIR so much: HTML and AJAX can contain other models like Flex and PDF; and Flex can contain HTML and AJAX; RESTful services can be integrated into any of this; and so on.

Saturday, May 31, 2008

Dan Ingalls Interview

A really great interview with Dan Ingalls from Randal Schwartz and Leo Laporte. This goes into all kinds of Smalltalk and other history from the 70s and 80s and then into more current stuff like Lively Kernel.

At one brief moment, Dan mentions Fabrik, which is a visual data flow programming model he built at Apple in Smalltalk in the 80s.

http://methodsandmessages.vox.com/library/post/dan-ingalls-interviewed-on-floss-weekly.html

Friday, May 30, 2008

XMPP Gears and Damn All We Need Now Is a Better UI Programming Model

Bill de hÓra predicts...

if Gears (or something like it) becomes ubiquitous (and it will), then eventually XMPP will become a protocol option alongside HTTP, allowing data to be pushed down into the client.
I'm for it. Note Adobe's AIR has all of these things, and then some, not to mention an API for either Flash/Flex or HTML/Ajax-based UIs.

I'd love to see more competion to the browser's current UI programming model, which is still what you are left with after adopting Gears. At least AIR gives you a choice, and Flex is open, so conceivably Google, Mozilla, or whoever could build off of Flex.

(I discount Lively Kernel for the time being. It's probably got more promise than I give it credit for. SVG has a lot of interesting capabilities especially for display, but it's still too clunky for the interactive bits. Kind of like NeWS vs. Display Postscript, ironically.)

Even Flex is so 1990s. There have been several significant improvements on that old MVC-ish model from the pre-web client/server days. Most of them in fact *pre-date* the 1990s adoption of Smalltalk's 1970s MVC. Still Flex is way better than HTML/Ajax for developer countenance though.

Thursday, May 29, 2008

An Open Source Twitter Clone

I am not a twitterer, er, one who twits. Well some might argue with
that last bit.

But one thing I've wondered is why the fascination with this service
that as far as I know is run by one outfit, has some "issues" (e.g. I
clicked on Mike Herrick's twitter URL the other day and each time saw
nothing but apologies from twitter for failing to work properly), and
is not federated across multiple providers as with, well, the web.

And I've wondered why people don't just use XMPP which is a federated
messaging platform with pub/sub topics etc. Or why not create a
twitter-ish system that can be federated.

So someone just published the source to an erlang-based twitter clone...

http://twoorl.com/
http://code.google.com/p/twoorl

I don't know if this specific clone is the answer, but it begs the question.

Sunday, May 25, 2008

McCain the Maverick

I'm old enough to remember the savings and loan scandal as an adult. I'm jaded enough to be tired of this "McCain is a straight-talking maverick" hoodwink. Let's not forget he is from an "elite" family, and his questionably unethical interfering on behalf of rich beneficiaries goes back decades and involves activities that has cost us real money, and some worse. From the wikipedia article on the Keating Five, of which McCain is one...

"Gray testified that several U.S. senators had approached him and requested that he ease off on the Lincoln investigation. It came out that these senators had been beneficiaries of $300,000 (collective total) in campaign contributions from Keating. McCain received $112,000 by 1987 from Keating and Keating's relatives and employees to McCain's Senate campaign, more than any of the other Senators. In September 1987 National Thrift News was the first media outlet to break the story. In October 1989 The Arizona Republic reported that in addition to campaign contributions, McCain's wife and her father had invested $359,100 in a Keating shopping center in April 1986, a year before McCain met with the regulators. The paper also reported that the McCains, sometimes accompanied by their daughter and baby-sitter, had made at least nine trips at Keating's expense, sometimes aboard the American Continental Corporation (parent of Lincoln) jet. Three of the trips were made during vacations to Keating's opulent Bahamas retreat at Cat Cay. McCain also did not pay Keating for some of the trips until years after they were taken, after he learned that Keating was in trouble over Lincoln. Lincoln Savings and Loan's collapse is said to have cost taxpayers $3.4 billion."

Animated Graffiti

Via Signal vs. Noise, the following video is incredibly inventive. The theme becomes tedious for me before halfway, but still... I'd like to see more like this with a better story to tell...

Saturday, May 24, 2008

Erlang and the Facebook Chat Architecture

Seen on InfoQ re: the Facebook Chat Architecture...

Another challenge was delivering messages in real time. Facebook choose a technique whereby the client pulls updates from the server, similar to Comet's XHR Long Polling Process...

Facebook choose a combination of C++ and Erlang to implement clustered and partitioned subsystems. The C++ module is used to log chat messages, while Erlang "holds online users' conversations in-memory and serves the long-polled HTTP requests". epoll, a new system call introduced in Linux 2.6, was used to drive the Erlang module. Eugene states why the decision was made to go with Erlang...

because the problem domain fits Erlang like a glove. Erlang is a functional concurrency-oriented language with extremely low-weight user-space "processes", share-nothing message-passing semantics, built-in distribution, and a "crash and recover" philosophy proven by two decades of deployment on large soft-realtime production systems...

The secret for going from zero to seventy million users overnight is to avoid doing it all in one fell swoop. We chose to simulate the impact of many real users hitting many machines by means of a "dark launch" period in which Facebook pages would make connections to the chat servers, query for presence information and simulate message sends without a single UI element drawn on the page.

I am kind of amazed to see the attention Erlang has been given over the last couple two three years. OSCON in July here in Portland will have at least a three Erlang related sessions: a couple of tutorials and a presentation.

Mike Herrick on CSI and on InfoQ

InfoQ interviews Mike Herrick re: using Rails and JRuby for the CSI. Mike also blog'd about his project recently...

When deployed, UT-NEDSS project will directly contribute to the prevention of sickness and death by effectively collecting, identifying, tracking and trending information gathered about infectious diseases and bioterrorism attacks. Additionally, this unique partnership is providing lessons for public health informatics

Steve Vinoski on RPC and Messaging

There's been a stream of messages on the erlang list about RPC. Steve Vinoski's put an explanation of RPC and his position on his blog. Now he's followed up on the email list with a position on integration generally, and pub/sub messaging in particular...

One of the most effective forms of enterprise integration I've seen over the years is publish/subscribe messaging. I worked many years for CORBA vendors, and we'd often lose potential deals to messaging systems. Message queuing systems work well because (in no particular order):
  • they don't pretend to be programming language procedure or method calls, so they avoid the associated impedance mismatch problems
  • they don't try to hide distributed systems issues
  • coupling is low -- drop a message into a queue here, pick up a message from a queue there
  • queues can be persistent, or more generally, delivery guarantees can be varied as needed
  • asynchrony
  • payloads need not conform to some made-up IDL type system
  • getting two different messaging systems to interoperate is easier than getting two different RPC or distributed object systems to interoperate
The problem with messaging systems, though, is that traditionally they've been quite expensive. Thankfully, I believe AMQP (http://amqp.org/) solves that issue nicely, and of course Erlang is the perfect way to implement it, which Alexis, Tony, and the rest of the RabbitMQ guys have already done (http://www.rabbitmq.com/).
I agree with Steve's take. The best pub/sub mechanism I have experience with has been Tibco's rv. All the Tibco layers above it have been enterprisey bits to make a sale. The basic rv bus is super-easy to just use from C, Python, Java, anything. Horribly expensive back in the day, and I assume it still is.

AMQP should have helped address this. But I've not seen much on the internets about AMQP over the last many months. I wonder if this is going to go anywhere? Or am I just missing the traffic?

I'm not sure XMPP pub/sub in the enterprise is going anywhere too quickly either, but that's another candidate for getting beyond vendor lock-in for enterprise messaging.

Why on earth Cisco is defining a new RPC protocol is beyond me.

And to any AMQP folks: the redirect from http://amqp.org/ seems broken.

Enterprises should be moving toward HTTP first and foremost, figuring out what's happening with XMPP for various other kinds of messaging, and/or AMQP in situations where HTTP and XMPP don't seem to cut it.

Friday, May 23, 2008

Matthias Felleisen speaking at Portland State University on June 2

Just rec'd the following announcement on the pdxfunc email list...


Matthias Felleisen is speaking at PSU a week from Monday (June 2). The
talk is open to the public.

"The First Year in Computer Science"
Matthias Felleisen
Northeastern University
2nd June, 16:40–18:00
Location: Hoffman Hall Rm 109, Portland State University
Abstract

My team and I have developed an alternative approach to the first-year courses on programming and computing. Unlike conventional approaches, ours focuses on designing programs in a systematic manner. The syntax of the chosen programming languages (both Java and Scheme) is only discussed as needed to support design principles.

Field tests with over 500 high schools and a dozen colleges have shown that the approach produces better students than conventional approaches that use a single language.

In several controlled studies, we could also show that students find our curriculum more appealing than the AP curriculum.

In my talk, I will provide an overview of the project, especially its intellectual premises and principles. My goal is to encourage you to think about the first year in a different way. The old ones are of questionable value. If we want our beautiful discipline to survive, we must find a good way of teaching it."

http://web.cecs.pdx.edu/~colloq/felleisen-firstYear.html for more information.

Sunday, May 18, 2008

More Ted

This is part two of my response to Ted Neward's latest misunderstanding of Erlang. Ted wrote to Steve Vinoski...

Sorry, Steve-O, but I think you're out in left field on this one. I'm happy to argue it further with you over beer, but if you want the last word, have at it, and we'll compare scores when we run into each other at the next conference.
Everything I've read of Steve's tells me he's well informed by actual experience. Ted's writing exhibits the most basic misunderstandings. I wonder why Ted didn't spend a little beer time with some experts before attempting to write with supposed authority.

More from Ted...

any time we incorporate something directly as part of the language, there's all kinds of versioning and revision issues that come with it. This, to my mind, is one of Scala's (and F#'s and Lisp's and Clojure's and Scheme's and other composite languages') greatest strengths, the ability to create constructs that look like they're part of the language, but in fact come from libraries.
Most of Erlang's power comes from libraries, but Ted wouldn't know that. Erlang the language is very small and expressive, but Ted wouldn't know that. Erlang's not really suffered from revision issues over the nine years I've been following the language, but Ted wouldn't know that. And Ted apparently didn't bother to ask anyone or read anything that might inform himself.

I agree with Ted's observation that extensible language syntax is desirable. Erlang's extensibility is cumbersome and not-too-beautiful. That's not the goal of Erlang though.

So you have to decide whether the benefits of Erlang outweigh issues like this. By the way, Gambit Scheme has Erlang-like concurrency performance, although shared-everything. But since Scheme can be used to define new languages such as Termite, it can be used to create syntactically-extensible Erlang-ish systems.

If you decide to go with Erlang the decision should be based on what Erlang is now, and not expect Erlang to change much. It's been largely stable as a language for years, as opposed to the arms race in Java and Java-like worlds. Language extensibility should not be as important to you as the simple Erlang programming model. This is a reasonable approach to take. Erlang is a known quantity, well proven. Not every language has to be as extensible as Lisp, in fact most are not.

Beware of languages like Scala and Clojure that intend to be safer concurrently than Java - they still run on the JVM and integration with Java code. So by definition their safety only can go so far.

I do criticize Erlang for having its own VM (though I think it's not a VM, it's an interpreter, which is a far cry from an actual VM)
Maybe we should criticize Java for having its own JVM? Why doesn't it use Smalltalk's or Erlang's which pre-date the JVM? (Trick question. The JVM, and Hot Spot in particular, is based on ideas developed in Smalltalk, etc. Essentially the JVM is a dynamic language VM plus layers of cruft.)

Not much digging would have told Ted that Erlang compiles to native code or to an intermediate compiled code. Ted's misleading claims are heading into the dangerously ignorant. Why should I believe anything Ted writes about any topic? When Ted writes "I think that..." I think that we should read it as, "I'm guessing that..."

The JVM and the CLR have (literally) thousands of man-months sunk into them to reach high levels in all those areas. Can Erlang claim the same?
Well, yeah. I don't know how many "man months" it stacks up to be, but Erlang has been around for decades in some very demanding situations. Did Ted bother to look into any of these VM questions?
Best part is, the IT department doesn't have to do anything different to their existing Java-based network topology to start taking advantage of this. Can you say the same for Erlang?
If the architecture is going to change from "big, honkin' J2ee behemoths" to highly concurrent, lightweight interaction, then the topology should change. This is true whether moving from J2EE to Erlang or J2EE to JRuby/Rails or J2EE to Project Zero or J2EE to anything reasonably resembling modern best practices.

Moving to Erlang can take advantage of existing Java bits using the various network protocol standards or CORBA or SOAP or the JInterface class library which makes a Java application act like an Erlang node.

Frankly, whether the application you're monitoring hooks into the monitoring infrastructure is not really part of the argument, since Erlang doesn't offer that, either. I'm more concerned with whether the infrastructure is monitoring-friendly... if Erlang ties into SNMP out of the box with no work required by the programmer, please tell me where that's doc'ed and how it works!
Apparently Ted's world of monitoring begins and ends with Java and dotnet's JMX and WMI. How would you monitor both Java and dotnet? SNMP likely. Both JMX and WMI can be hooked into SNMP. SNMP is the internet standard, more mature, and extends beyond Java and dotnet.

I've never used it, but just doing a quick check shows that Erlang has a pretty extensive SNMP api and Reference Manual, and User Guide. Hmm. Did Ted even bother to look?

Yes, the JVM could easily adopt the multi-process model if it chose to. (Said work is being done via the Java Isolates JSR.) The CLR already does (via AppDomains).
I addressed Erlang vs. AppDomains in my previous post. These are clearly two different mechanisms with two different intents: AppDomains provide application isolation; Erlang processes provide finer-grained isolation of concurrent activities ("actor"-like) within an application.

Within an application neither the JVM nor the JVM-ish CLR provide Erlang-like processes. Scala and Clojure go a good bit of the way, but the advantage of Erlang is in its simplicity and combination of concurrency programming _and_ management. This goes well beyond a little bit of syntax around Java threads within a single JVM.

Barry Kelly has a really good blog post explaining more about these various VMs and Scala's Lift framework and implementation of Actors.

Toward Finer Tuning of Definitions of Processes and Languages, Reliably

Here's an attempt to define terms more finely (finally?) after reading the latest (final?) response from Ted Neward to Steve Vinoski's attempts at helping Ted to clarify differences between Erlang and other languages and run-times, esp. those based on Java/JVM-ish. At a superficial level of understanding what Ted writes has some meaning. Just enough to be troublesome. So here's my pass at making clarifications.

The first terms to narrow in on are "process" and "thread" as they are used in various languages and operating systems. There are similarities for sure, but the subtle differences are the important aspects when making comparisons. Ted writes a few things using these terms...

Processes in *nix are just as vulnerable to bad coding practices as are processes in Windows or Mac OS X
Aside: Mac OS X _is_ Unix. But that's for a different debate on the merits of Windows per se.

Anyway. I don't expect anyone to argue with Ted on this point, so let's dig deeper into "bad coding practices" and processes. Erlang is a "mostly-functional" language and there is very little shared memory in its concurrency model. This removes many opportunities for bad coding. So can we say that programming an operating system process in Erlang is less vulnerable than programming an operating system process using most popular languages? I would say yes, generally.

the robustness and reliability of a system is entirely held hostage to the skill and care of the worst programmer on the system
The emphasis is Ted's, not mine. There are many fine points to be made about this claim. One is the term "entirely" and another is the term "system". But first is the observation that this claim is about development practices more than anything else. To argue about language and mechanism shouldn't we assume that the teams are skilled at least in their own languages and mechanisms?

Let's say no and look deeper. You won't read much Erlang literature before you come across terms like robustness and reliability, and explanation of language constructs and framework mechanisms that support these traits.

On the other hand one can program in Java and similar languages for years before realizing that attention to robustness and reliability are even the developer's concern.

Back to "system" and "entirely" being at the mercy of the worst programmer. Perhaps the most important point made by the Erlang experts is to expect the worst and to design your system to recover from that. The Erlang culture does its best to help you isolate bad parts and the Erlang mechanisms make that isolation and recovery easier than with most other systems.

Erlang's model is similar to the CLR's AppDomain construct, which has been around since .NET 1.0, and Java's proposed "Isolate" feature which has yet to be implemented.
I'm not going to presume to know anything more about AppDomains than Ted know's about about Erlang, but this comparison seems true only barely. Here's some information I found about AppDomains...
The main purpose of an Application Domain is to isolate our applications from other applications. Application domains run on a single Win32 process... Objects in the same Application Domain communicate directly while Objects that exists in different Application Domains interact with each other by transporting copies of objects to each other or by using proxies for message exchange (by reference).
Any somewhat-skilled programmer familiar in the least with Erlang should be able to tell you significant differences between the AppDomain described above and Erlang's process model. I'm bothered that Ted Neward has such a large stage for making superficial statements that these mechanisms are in any way meaningfully the same. This is a significant disservice to programmers following his writing, trying to learn useful information. If Ted does not have (apparently) even a few days worth of reasonable Erlang experience or even reading, why should he presume to make such significant and horribly misleading statements to his large audience?

Here are the significant differences between these two mechanisms (Erlang processes and dotnet AppDomains)...

  • AppDomains appear to be used to put distinct applications inside the same Windows OS process.
  • Erlang processes are used to decompose a single application into many, small, independent, shared nothing processes.
  • Objects in different AppDomains are considered separate and rarely-interacting.
  • Processes in Erlang are roughly the same "size" as an instance of a major role-playing object in a single application. They collaborate with other processes frequently and are highly interactive.
  • Objects in an AppDomain are "shared-everything", running concurrent, shared-everything threads.
  • Erlang processes (the equivalent of objects in dotnet) in an application are "shared-nothing".
  • AppDomains pass copies of values or references to objects (as far as I can tell from this one article).
  • Erlang processes always pass copies of values. Erlang and its frameworks per se do not provide references, and so it's "shared-nothing" all the way down. The equivalent of "reference to an object" in Erlang is "identifier of a process".
  • AppDomains appear to be a large-grain, compile-time, declarative mechanism. Any Windows OS process would have just a few AppDomains. I would suppose these number in the dozens per OS process.
  • Erlang processes are a fine-grain, run-time, dynamic mechanism. An Erlang node (essentially an OS process) would have many hundreds of processes or more.
Ted continues...
if the argument here is that Erlang's reliability comes from its lack of shared state between threads, hell, man, that's hardly a difficult architecture to cook up. Most transactional systems get there pretty easily, including EJB, though then programmers then go through dozens of hoops to try and break it.
Ted does a pretty good job of hinting that EJB is a broken model. EJB isolation is more like an AppDomain. EJB separates one application from another, with fairly laborious mechanisms required to get them to communicate with each other.

Within an EJB application there is supposed to be no concurrency at all. And so again this is the opposite of Erlang. Erlang encourages high concurrency and ease of interaction. But these points are apparently lost on Ted. Usually one cannot read a single page of Erlang literature without having this made absolutely obvious.

The next post will get into Ted's arguments about language and common run-times.

Thursday, May 15, 2008

April 2008 Game Console Sales

Wii ------------ 714,200 units
Xbox 360 --- 188,000 units
PS3 ---------- 187,100 units

(NPD Group)

http://blog.seattlepi.nwsource.com/microsoft/archives/138983.asp?source=rss

Tuesday, May 13, 2008

A Little Knowledge

Steve Vinoski is in a bit of back and forth with another blogger about
Erlang vs. other languages, and how easily one could adopt the best
bits of the other. Steve implies, correctly, IMO, that to perform this
kind of assessment requires a fairly good understanding, or at least a
fair bit of research, into the various candidates.

http://steve.vinoski.net/blog/2008/05/09/thinking-in-language-but-not-clearly/

I've seen several attempts to build "erlang in x" where x = common
lisp, python, java, dotnet, etc. To the extent I've followed them they
implement a fraction of the message passing and then don't go much
further. Scala, etc. on the jvm and those on other conventional
runtimes have a problem. Integration with Java instances within those
runtimes is not shared-nothing. You have to remain aware of what is
and what is not following the actor paradigm.

Erlang's JInterface is probably a better integration mechanism in the
long-run than running in the same shared-memory OS process.

As for monitoring, certainly a quick glance would have shown Ted there
is SNMP, as Steve points out. But also isn't the entire
process-linking and supervisor hierarchy an important kind of
"monitoring", i.e. "monitoring for availability"? This is something
all these other platforms lack.

So the more I think about it, the less suited these other platforms
are for messaging amongst themselves *or* for monitoring!

Then I came across Avi Bryant's post on Strongtalk, a high-performance
implementation of Smalltalk, correcting an apparently common
misunderstanding that the speed has something to do with the optional
type checker...

"Why do people make this stuff up? ... Strongtalk was that much faster
whether you used the optional static type system or not. Strongtalk's
optimizing compiler completely ignored the types, and it [types -ed.]
made your program run not one iota faster to add them."

http://www.avibryant.com/2008/05/those-who-misre.html

Your Architecture's Agenda

Phil Windley writes...

"Designs are full of defaults--some explicit and most of the implicit.
Programmers don't pay enough attention to defaults. Rail's "convention
over configuration" is a great example of a system that carefully
thought through defaults. 37 Signals calls this concept opinionated
software."

http://www.windley.com/archives/2008/05/whats_your_architectures_agenda.shtml

Friday, May 09, 2008

Isn't That What The Internets Are For?

Joe Wilcox watches Microsoft and wonders...

"Mesh is the only thing that really makes sense out of a Yahoo
acquisition to me. Yahoo has rich content services—and they're
everywhere. If Microsoft could plug Mesh into that infrastructure,
fast, and flip the switch "Wow!" Imagine, for example, Mesh making
Flickr photos instantly available to all your PCs, cell phones and
TVs. Software plus hardware plus services."

But isn't that what the internets are for?

http://www.microsoft-watch.com/content/web_services_browser/yahoo_between_a_rock_and_a_hard_place.html?kc=MWRSS02129TX1K0000535

Wednesday, May 07, 2008

Another Cool Smalltalk Tool

In addition to being such a simple and expressive language, Smalltalk should be known for its great collection of tools. Here's another one that was recently developed at UIUC, a Smalltalk Mecca...

Algernon was developed by Erik Hinterbichler and Joey Hagedorn with their CS598 classmates, working with Professor Ralph Johnson of the Software Architecture Group at UIUC. The developers say that Algernon provides lightning quick access to categories, classes, morphs, and global variables in your image, and is inspired by tools such as Quicksilver and LaunchBar for Mac OS X. Like Quicksilver, it learns from your behaviours, and will prioritise options that you use most often.

Good Bits, Bad Bits

Michael Nygard posted about SAP's SOA capabilities. I wasn't sure if he'd appreciated their complexity, but he does emphasize that in a comment on this post here.

We're talking really complicated, WS-*-ish bits. My advice from hands-on experience two years ago would be: stop; walk back slowly, slowly; now turn and run; faster.

Not the kind of good system attributes I think of when reading Michael's book.

The Second Right Answer

Roger von Oech via Gary King...

My mantra is “Look for the Second Right Answer.” This has been my guiding principle for over thirty years. Much of our educational system tries to teach us to look for the “one right answer.”

I find that looking for the second right answer is an incredibly easy way to open my mind. For example, when I’m looking for information, this mantra tells me to go beyond the right answers that have worked in the past and look for others. When I’m trying to be creative, it playfully advises me to put my ideas in unusual contexts to give them new meanings.

Monday, May 05, 2008

Between a Rock and a Hard Place

Update: Keith Gaughan in the comments points out Yahoo is a FreeBSD shop primarily. I stand corrected. However I assume any "cloud" OS services would provide Linux as their primary platform. End.

The downside of MSFT dropping the bid is we don't get to see what their strategy would have been. Would they have attempted to migrate everyone over to the Windows platform? Really?

Would they have dropped the reported Yahoo move into providing cloud computing services? (I assume these would/will be based on Linux and open source generally. Who would do or could afford otherwise?)

How could MSFT purchase on open-source Linux based company without migrating to Windows or altogether dropping the open source Linux bits? I suppose they could move all the Linux bits to Novell / Suse. But that's still an endorsement of Linux generally, which in spite of the Novell arrangement MSFT still detests.

Do they just pull a 180 and hope to become a true Internet / Linux / OSS company over night? That would be *something*.

Sit back and think about it. Wow. Is Microsoft stuck in a bad place with the Internets or what?

"There won't be much differentiation between consumer and enterprise architectures"

From Dan Farber on CNet News: Google CEO Eric Schmidt and IBM CEO Sam Palmisano getting all, well, Googly-eyed with each other...

IBM is taking some of the learnings from the project and plans to operate a cloud that will allow partners to house their Web-based applications and sell them to customers, Palmisano said. "It is the first time we have taken something from the consumer arena and applied it to the enterprise," he said.

Schmidt said that over time there won't be much differentiation between consumer and enterprise architectures. The major difference is that enterprise customers will pay for software and services, with required security and other features, and consumers won't...

Google's YouTube captures 10 hours of video every 60 seconds, and IBM might like that business if it could figure out how to make money at it. But eventually, IBM, Microsoft, Sun, Google, and other big players will look more similar in their technical architectures and business models...

Currently, Salesforce.com is selling Google Apps as an integrated part of its platform. It's not far-fetched to think that Google would seek out IBM's help with its business partners to spread the Google word in the enterprise.

Thursday, May 01, 2008

"Pull the other one. It’s got bells on."

Gary King on the horribly underreported conflicts of interest with former military leaders simultaneoulsy taking positions as Big Media war analysts and going on the take as contractors and investors in the military-industrial complex. Does anyone care that the Pentagon's coaching these slimy bastards went up to at least Rumsfeld (at the time) and porbably well into the Whitehouse itself?

Billions of USD are being wasted (and in fact borrowed from China, et al.) EACH MONTH lining the pockets of the people who go on TV and play up the war in order to attract advertisers and instill fear in the general population. Meanwhile baby-faced young men and women are losing limbs, their brains are shelled into jelly, and losing their lives.

I'll vote for any presidential candidate who promises to reinstitute the draft, without exceptions. That is the only action I can see ending this boondoggle in the next year or so. That is the only thing I can see getting enough people's attention to really care about the endless death and destruction and blatant robbery and profiteering. As long as the vast majority of our children are safe, we seem unable to care about those who chose to protect our _constitution_ and have wound up losing their lives and limbs doing anything but.

Why we've not gone up to the door of the Whitehouse and dragged the bastards directly into the courts ourselves is beyond me. Now excuse me, American Idol is on.

Oh and remember: the next president will likely nominate three supreme court justices. And you want McBush, er, McCain, to be the one for that? As long as you like the concept of the "unitary executive". W's men are already on the court putting this theory into practice.

Objectively

"Rubinius switched from C to C++ to implement it's core VM"

For the life of me I cannot understand why projects use C++ rather than Objective-C. Hmm.

Catching up on comments to this post...

Yeah, I can be too brief sometimes. Here's the essence of what I like about ObjC vs. C++. ObjC attempts to keep the Obj and the C distinct, while C++ attempts to combine them. As a result the Obj in ObjC is very much like the Obj in Smalltalk. And the C on Obj C is very much like the C in ANSI C.

The Obj in C++ is significantly more complicated than the Obj in Smalltalk or in ObjC. The C in C++ is also significantly more complicated, to the point where I don't think it can be called "C". People will talk about the expressiveness of C++ and how much it has evolved over the years. I still very much prefer the simplicity of ObjC.

I am also surprised the ObjC has portability issues. With the GNU implementation?

And I am surprised about the Ruby kernel issue as well. I also thought this would be so small to warrant just C or even better, a subset of Ruby that compiles easily into C. This is what Squeak uses for its kernel. Gambit Scheme does something along the same lines, allowing a very C-ish dialect of Scheme that translates directly.

The Manchurian Minister

In reference to James Snell's recent post and subsequent comments
about Obama and Jeremiah Wright. This is a Big Media misdirection.

What about McCain's follies, e.g. singing "Bomb, bomb, bom, bomb. bomb
Iran" to the tune of the Beach Boy's "Barbara Ann"??? Do you want this
person to lead the free world???

What about McCain refusing to stand down from John Hagee's
endorsement??? Hagee being the self-proclaimed "Christian" who to this
day believes the flooding of New Orleans after Hurricane Katrina is
due to homosexuality.

Politics. I'm not crazy about Obama or any candidate, but I'll take
anyone who's a bit more on stable ground than McCain. Holy cow.

In a comment on James' post, about Obama, the comment claims that…
"Every day a new skeleton comes out."

Do we have a list of these skeletons somewhere? Every day since when?
How many skeletons are there?

Does Obama have a track record in government of legislating along the
lines of what this supposed Manchurian Minister would dictate?

Is the Big Media doing a service or disservice on this topic? It seems
not to be digging deep about anything, certainly not about Obama's
actual track record and certainly not anything about the untouchable
McBush, I mean, McCain. The Big Media does seem determined to keep the
wound open and never find a way to close it one way or another.

People get the government and the media they deserve, to borrow a
phrase from Phil Windley.

Update:

I'll tell you what, looking at the comments over on James' post, it's *rul* scary how different people's opinions are from mine. There is a *huge* divide in our thinking. I don't know if I'm right or not, but I have my guesses.

Huh?: "The fact that it runs on its own interpreter, bad."

What is this obsession with some virtual machine being the one, true byte code? The Java Virtual Machine, the CLR, Parrot, whatever. Give it up.

I agree with Steve Vinoski...

The fact that it runs on its own interpreter, good; otherwise, the reliability wouldn’t be there.
We need to get over our thinking about "One VM to bring them all and in the darkness bind them". Instead we should be focused on improving interprocess communication among various languages. This can be done with HTTP and XMPP. And we should expecially be focused on reliability, deployment, starting and stopping locally or remotely, etc. XMPP's "presence" provides Erlang-process-like linking of a sort as well.

With Erlang's JInterface for Java then a Java process can look like an Erlang process (distributed or remote). Two or more Java processes can use JInterface to communicate and "link" reliably and Erlang virtual machines and libraries, save this one single .jar, do not have to be anywhere in sight.

To obsess about a single VM is to remain stuck at about 1980 and UCSD Pascal's p-code. It just should not matter today, and certainly not tomorrow. The forest is now much more important than any given tree.

Pay attention to the new JVM from IBM in support of their lightweight, fast-start, single-purpose process philosophy embodied in Project Zero. It's not intended to be a big honkin' run everything forever virtual machine. It will support JVM languages and the more the merrier in the sense that such a JVM will enable lightweight pieces to be stiched together dynamically. However the intention is to perform some interprocess communication and then get out of the way. Exactly the right approach for any virtual machine.

Jini clearly is *the* most important thing about Java, ever. But it's lost. Gone. Buh-bye. Pity.

Flash Now Even Openier

Adobe continues to open up more in the world of Flash. Sure, if you like the browser as an application platform, go for it.

This one's better and doesn't hurt the web any more than anything else unless you, the developer, choose to. You can hurt the web just as badly in the browser without hardly trying.

Update for Ed:

Monday, April 28, 2008

Wallhoo or Yahmart?

I stand by my very brief post a few weeks ago: yahoo and wallmart should merge. Yahoo has the internet savvy and infrastructure. Wallmart has the sales and distribution. Yahoo needs to get out from under search and ads as their model. Wallmart needs to get on the web better to compete with Amazon, Apple's itunes, etc.

Who else is going to compete with Amazon? I wonder if a Google / Wallmart merger would go through? Not as likely as Yahoo, and Google does not (yet?) feel the need like Yahoo should.

Friday, April 25, 2008

Brevity

I am sure I give plenty of people good reasons not to read this blog. One positive attribute I generally try to hold to is brevity. (Let me know if I don't meet that criteria in your book.)

And so I agree with Steve Dekorte's assessment of bloggers that write entries that are just too long for my patience. Steve names one blogger in particular who I unsubscribed a good while ago after a brief trial period. There are a couple others I could name.

I'm not saying they have nothing worthwhile to write about. The people who come to mind for myself do tend to write interesting entries, do tend to have those entries much more widely quoted than anything I've ever written.

All I am saying, before this gets too long, is that I cannot take the time to read long entries that stay on target, let alone long entries that take too long to reach a point or even a subject. And if I don't stop now...

Thursday, April 24, 2008

Video: Introduction to Erlang

Bob Ippolito at the C4[1] conference a while back, introducing Erlang and how his company is using it...

Simple is as simple does or some such.

Open Is As Open Does Or Some Such

At ONLamp, Todd Ogasawara points out some potentially harsh consequences associated with, if not attributable to, Sun's $$$ purchase of MySQL...

If the model of selling services does not justify something like a billion dollar price tag, what then? For MySQL and Sun, the answer is to provide more value-added features for a price and closing the source.

Am I happy about this? Not hardly! But, I saw this coming and have been preparing for it. I’ve been looking at PostgreSQL since the day Sun announced buying MySQL. And, recently, it was pointed out to me that Ingres (which I used back in the 1980s) is now an Open Source product. I’m not going to suddenly stop using MySQL or recommend that people switch away from it. But, I think it is prudent to take a look at alternatives.

Simple Works Best

Dustin Puryear on memcached at ONLamp...

memcached was written to serve one basic role: cache database request. It wasn’t written to provide a massively redundant service. Or to distribute load across memcached nodes. Or to provide a secure proxy to a database service. It just takes a query and returns whatever is in the cache. And this is done using a simple hash, meaning that at its core memcached uses a set of algorithms that you’ll find on every second year Computer Science exam in college.

Wednesday, April 23, 2008

Microsoft's Mess

Readers of this blog could have predicted my title, I'm sure. But I have support from Joe Wilcox...

Live Mesh is so messy to explain, I can't cover everything in this post...

It's the most anti-Web 2.0 technology yet released by any company. Microsoft is building a services-based operating system that transcends and extends Windows and also the function of Web browsers. It's bold, brilliant and downright scary.

Actually, it's typical and to be expected. Microsoft regularly comes out with huge proposals to own everything, world wide.

Meanwhile Google, Amazon, and others nibble off bits and pieces of the world-wide web without altogether hurting the web. That is, they *get* the web, and they *get* how to contribute to and profit from the web. They continuously and incrementally add more to the web. Microsoft periodically says, "Here, swallow this huge horse tranquilizer and you'll be all right."

Ozzie apparently sees the web as a "given", but not something to embrace. Rather he apparently sees the web as an inhibiter to the success of Groove. And so his grand design seems to be to wrap the web inside of Groove. Consider Ozzie's own terminology: the web to him is "a hub".

Good luck with that.

Or go back to implementing WinFS, that should keep you busy while the internets slip further from your grasp.

Read BobWarfield in-depth analysis at SmoothSpan. Especially if you are from Microsoft. Especially if you are Ray Ozzie...

There are 100 engineers at work on Live Mesh already, and lots of key functionality (like version control) nowhere in sight. Aside from the Tactics of Monopoly, the other Fail mode is creating a giant monolith of software. Vista is a painful example of how far things can go wrong. Mesh is, at its core, another attempt to rework the document and folder file system. Microsoft promised this in Longhorn for years but never delivered.

Tuesday, April 22, 2008

My clojure talk at pdxfunc

Amy Farrell wrote up some impressive notes from a talk last week that Adam Jones and I gave on the clojure programming language to the pdxfunc functional programming interest group in Portland. My part of this was presented as a long-time Lisper but new to Clojure. I'm not sold on Clojure yet - I like the idea of a mostly functional, concurrent Lisp, and I like the idea of Lisp for the JVM. But is it a better choice than JScheme or SISC or the other more (IEEE and ANSI) standard Lisps? Maybe for those reasons above, but it also seems gratuitously unlike the standard Lisps.

(Update: Rich Hickey (Clojure's author and impressive dynamic force when you consider what he creates per unit of time) responds in the comments here to some of my observations in my talk. I should also say when you consider a new Lisp for the 21st century, Clojure is probably the better fit than Arc. Probably a better fit than Scheme or CL per se. Although Gambit Scheme and an evolution of Termite would be up on my list.)

This talk was patterned after the BOF on Erlang I held at last year's OSCON -- I like talking through things while evaluating them "live". At OSCON I typed everything live and that went fine. Last week I had a new laptop, and even though I like the keyboard very much (MacBook), I thought I might fumble-finger too much. So I set up all the expressions in a file beforehand and using emacs all I did was talk and type c-x-c-e to evaluate each expression in the clojure sub-process.

Not sure what's in store for the May meeting but in June pdxfunc may have a good discussion on a new set of open source web libraries for Haskell from Galois. Several Haskell enthusiasts (or more) attend pdxfunc, so maybe I'll get back into that whole typing, lazy functional thing, and learn from experts at some point.

Decentralization at a Cross Roads

Linux Journal has a great interview by Doc Searls with Bob Frankston in the May edition. From Searls' introduction...

"Telecom and the internet have always been strange bedfellows... we have an industry that's been around for 171 years... and... we have... an "end-to-end" model that doesn't require telecom... carriers only want us to think only in terms of familiar and expensive services such as television."

On a seemingly unrelated note, NPR had a radio piece this morning on solar power. A couple large companies are trying to build giant plants in the desert to boil water, to turn large turbines, to sell the electricity over the grid. Another tendency of large corporations wanting us to think only in familiar, hugely expensive terms. At least they're not trying to sell the idea of splitting atoms to boil the water.

Not to mention we're running out of water, another problem that can only be solved on a massively small scale. Certainly boiling water in the desert in huge quantities is not inline with our water future.

If any one thing will save civilization that thing will be drastically decentralized. I'm not convinced we have good odds to pull that off. I think our psychology and sociology is not adapted to the level of our IQ.

Watch out for big. We are at an interesting cross roads, and the big organizations are not going to make the right decisions. They are not designed to. It's not their fault, they're just dinosaurs.

Saturday, April 19, 2008

Smalltalk and Seaside at FISL 9.0

Randal Schwartz is in Brazil at FISL 9.0. He gave a Seaside talk...

...the biggest news is that based on the preliminary interest in Seaside because of my talk, the FISL conference organizers offered an entire room for next years conference (the full three days with 12 hours per day), as well as four or five main-track hour talks, if I could help organize the subconference details! This is quite a gift, because it will mean that we can expose the 7000 conference attendees to a variety of Smalltalk programs, without paying for rooms or badging or promotion. The conference asked if I could get some corporate sponsors on board, and I immediately fired off email to James at Cincom and Monty at GemStone, and thank goodness they read email on Saturday, because they offered their support quickly. Of course, we have many details to work out, but everyone agrees that we will move forward!
Brazil has been fairly active with Smalltalk over the years. And Randal is a great evangelist for Smalltalk and Seaside. Having talked with him a couple of times recently at Portland-area groups for Smalltalk and open source development, he comes across as an intelligent, enthusiastic evangelist for whatever he's interested in.

He's going to do wonders for Smalltalk and Seaside, just watch.

Thursday, April 17, 2008

Covers

Peter Saint-Andre writes about some favorite cover songs. Here are some of mine that come to mind:

And my list goes on, but I'll end it for now with some cover albums (as opposed to album covers)... And the list could go on further. Of course I'd include every cover the Beatles made of Chuck Berry, Buddy Holly, Carl Perkins.

Most covered song on my ipod: "Sweet Jane" at seven different artists. I have almost as many covers (6) of "Within You Without You".

Clueless in Seattle

Ray Ozzie speaks, and he speaks about Open Source Software. I don't even know what to quote from his statement. They're just not in the right ballpark. The only thing Ozzie communicates here is that he just does not understand the open source community, which _is_ the community for building out the internets.

This comes from the guy who built Groove out of proprietary Microsoft bits and proprietary bits from his developers. By the time they were shipping Groove, those bits had rotted. COM this and that, custom proprietary object database foo.

Had the protocols and the bits within Groove been even somewhat open, they might have grown a community around it, and kept it alive. Maybe some of those bits are living inside some Microsoft product. Running COM this and that???

Microsoft's "groove" looks more like a rut and face it, they've flipped the bozo bit. What a long, slow, excrutiating slide into oblivion they're on unless they can figure out what's really happening on the internets these days.

Update: This is an example of what BobWarfield at SmoothSpan calls: "Microsoft's Expensive Rift with the Web."

Another update: James Robertson ties this into the Smalltalk community. Seaside seems to be taking Smalltalk to another level. Smalltalk is an interesting community re: open source. As with the Lisp community there's always been a significant "openness" to Smalltalk, predating the actual open source licensing of various implementations. However there's no way the various vendor's Smalltalk GUI's could ever have been unified into an open implementation, but Seaside is on its way toward that end.

Wednesday, April 16, 2008

Intuit's Flex-able Cloud

Catchy title, eh?

Bob Warfield has some interesting "pre-news" about a new cloud
computing platform...

http://smoothspan.wordpress.com/2008/04/16/intuits-radical-new-flex-quickbase-cloud-platform/

"Someone mentioned that the standard for Cloud Platforms was to bring
up an app that everyone in the audience can log into within 5 minutes
or less. No problems here. We had the good old "Hello, World" up and
running very quickly."

But he wonders about Microsoft's cloudiness (cloudlessness?)...

""
Doesn't the Big M have SQL Server Data Services:
http://www.microsoft.com/sql/dataservices/default.mspx

Please to be wanting Vista now!

OMFG

Tuesday, April 15, 2008

Vista: "Career Ending"

Joe Wilcox of Microsoft Watch notes...

"Poole's departure pretty much marks the end of an era. Nearly every
Microsoft executive associated with the Windows Vista launch has left
the company. Vista has proven to be a career-ending enterprise, in
stark contrast to bygone days when big promotions followed the release
of a new Windows version.

I wonder: Would Poole have stayed, if not for those e-mails released
as part of the Windows Vista Capable lawsuit? Vistagate isn't over
yet. "

http://www.microsoft-watch.com/content/corporate/poole_realizes_his_unlimited_potential_elsewhere.html?kc=MWRSS02129TX1K0000535

Friday, April 11, 2008

The Airlines and the News Channels

Why is the FAA all of a sudden so concerned about the spacing between plastic clasps on wiring in all of these airplanes? Why are they shutting so many planes down this week, when the immediate danger is almost nothing? Why was the FAA unconcerned at best, deliberately harmful at worst, only a few weeks ago?

Well. Why is this headline from the AP getting so little coverage? "Cheney, Others OK'd Harsh Interrogations" (where "Harsh Interrogations" really means "Torture").

Diversion. Every politician uses diversionary tactics, e.g. releasing bad press late on a Friday. In this case maybe the administration thought they needed to truly clog up the news channels with something benign but something that dramatically affects thousands of citizens. It's not unimaginable.

Any congressman or woman who does not support immediate criminal investigations of the adminstration at the cabinet level should not be re-elected.

I truly get the impression that the current action by the FAA has nothing to do with the FAA or the safety of air travel. This may be an irrational theory, but are there any _rational_ theories for the current FAA fiasco?

Who should buy Yahoo?

WalMart.

Thursday, April 10, 2008

IBM's New Reality Runtime

Jerry Cuomo writes about IBM's "New Reality Runtime" - a JVM implementation, etc. designed for lightweight, RESTful web services, developed using simple, dynamic languages.

We Lose A Little On Every Loan But Make It Up In Volume

(via Steve Dekorte) a slide show explaining how "Collateralized Debt Obligations" full of bad loans became AAA rated. Sad, but true, and further essential reading for all citizens and investors.

If you've ever wondered how and why corporations can carry potential debt "off balance sheet", this explains it using stick figures. Even politicians could understand it. Share with your congressmen and women.

"But crap is crap, isn't it? I don't get it.

Economic Crisis Backstory

Mark Watson points to a Fresh Air episode that is essential listening for all citizens of the U.S.A. and anyone following the current crunching sound you hear in the financial markets.

Crunch

From the Washington Post on the continuing crunch for credit...

"This is the equivalent of a hurricane coming, and staging food and water at the site," Education Secretary Margaret Spellings said in an interview. "Our responsibility is to be prepared for every eventuality."

Some colleges are already saying that their students' expected financial needs for the fall semester are outstripping what lenders are willing to provide...

The tumult is likely to push hundreds, if not thousands, of firms out of the student lending business, said Mark Kantrowitz, publisher of FinAid, a Web site that provides financial advice for students. Of particular concern is the number of firms leaving the business of making federally guaranteed loans, which, besides parents, are the primary source of financing for students' higher education.

Ripple, quake, crunch, and shake... there's a point in the movie "Titanic" where passengers are playing with the broken ice on the deck after the collision. Not long afterward, reality sets in: the ship is sinking.

Large institutions today cannot tell you whether they've just grazed the iceberg, or whether it's ripped through their hulls. In the case of higher education for next year, it looks like a big gaping hole and there's not enough life boats.

Airplanes

In a matter of weeks we (the usa at least) go from senior FAA politicos ordering whistle blowers to stand down, to the airlines shutting down nearly entire fleets. Umk.

I have reservations to make. Which airlines?

Tuesday, April 08, 2008

Platform Wars

Here's what I like about this new era of cloud computing: rather than the useless language wars of the old era (i.e. sun/java vs. msft/java-ish), we are now heading toward platform wars. Amazon will add some of the "full stackness" of Google's, and Google will expand as well. And these battles are aimed at adding real value.

Microsoft, Yahoo, whoever else, will have to off similar capabilities, and new advantages. And they all have to appeal to several "stacks". Dotnet won't do it, at least not solely. Java won't either.

The stack starts lower than the virtual machine, just like in the old days. Only funner.

Monday, April 07, 2008

Portland's West-side Open Technology Center

From Steve Morris at the OTBC:
=========================================================

WOTC is a facility at the OTBC in Beaverton (http://www.opentechcenter.com/)
for open source and open technology developers to use without charge
(i.e., not for proprietary development).
We can use it as a quiet work environment or as a meeting place. The OTBC
presentation room is also available when it's not scheduled for other uses.


We are having an organizing meeting for WOTC on Tuesday, April 8, 2008,
at 6:00pm at OTBC. Pizza and soft drinks will be served.
Please RSVP so that we will have plenty of that available.
~~~~~~~~~~~

See http://www.opentechcenter.com/drupal/?q=contact for directions to OTBC.


Topics for discussion include but are not limited to:

- name
- attracting interest/users
- measuring success
- usage guidelines
- access/hours/security
- what do we need in the lab
- TBD/other


Mass transit to OTBC/WOTC:

Trimet bus 67 travels from Merlo MAX Station to PCC-Rock Creek (by Cornell
Oaks business park). Walk from the corner of 158th Ave./Greenbrier Parkway
to OTBC (0.1 mile).


We have a very beginning wiki at http://wiki.cs.pdx.edu/ootc/ . The
account creation password (just to inhibit spammers) is portlandia.
The mailing list is at http://wiki.cs.pdx.edu/mailman/listinfo/ootc .


Thanks. Hope to see lots of you there.
Bart Massey, Randy Dunlap, Steve Morris

Saturday, April 05, 2008

John McCarthy

Paul Graham describes John McCarthy as one of his heroes. Hopefully computer science will remember certain people like McCarthy the same way we remember the significant contributions of scientists from other disciplines.

John McCarthy

John McCarthy invented Lisp, the field of (or at least the term) artificial intelligence, and was an early member of both of the top two computer science departments, MIT and Stanford. No one would dispute that he's one of the greats, but he's an especial hero to me because of Lisp.

It's hard for us now to understand what a conceptual leap that was at the time. Paradoxically, one of the reasons his achievement is hard to appreciate is that it was so successful. Practically every programming language invented in the last 20 years includes ideas from Lisp, and each year the median language gets more Lisplike.

In 1958 these ideas were anything but obvious. In 1958 there seem to have been two ways of thinking about programming. Some people thought of it as math, and proved things about Turing Machines. Others thought of it as a way to get things done, and designed languages all too influenced by the technology of the day. McCarthy alone bridged the gap. He designed a language that was math. But designed is not really the word; discovered is more like it.

Several other of Graham's hero biographies are worth reading too.

Thursday, April 03, 2008

Standards: Take Your Pick

I don't know much about this process or its result. I've seen bad
standards for no good reason. This sounds like enough money may have
been scattered around to "buy" a standard.

I don't really care too much. Even as standards, the days of MS-Office
formats are numbered, even of those numbers can seem large.

John Dowdell (of Adobe, to be sure) writes: "One of the most shameful
things I've ever seen in technology."

http://weblogs.macromedia.com/jd/archives/2008/04/a_perversion_of.cfm

Wednesday, April 02, 2008

Modular Data Centers

James Hamilton of Microsoft Research writes...
====
Over the last couple of years, the modular datacenter approach has
gained momentum. Now nearly all data center equipment providers have
started offering container based solutions

* IBM Scalable modular data center
* Rackable ICE Cube™ Modular Data Center
* Sun Modular Datacenter S20 (project Blackbox)
* Dell Insight
* Verari Forest Container Solution
====
Link: http://perspectives.mvdirona.com/2008/04/02/FirstContainerizedDataCenterAnnouncement.aspx

Tuesday, April 01, 2008

AIR Linux

From Adobe regarding AIR for Linux...

We have posted the first publicly available alpha build of the Adobe AIR runtime installer and SDK for Linux. In addition, we are linking to several sample applications that currently run on AIR. You should consider these builds only alpha quality and not yet feature complete...

It is our intention to release future versions of Adobe AIR simultaneously on Linux, Mac and Windows

As chromatic pointed out in a comment to a previous blog post, this is not completely open, and the term "linux" will probably continue to mean x86, 32-bit, and certain distributions of Linux selected for testing. But we'll see. Maybe that should be submitted as a bug?

But there's more to read about, e.g. this from Artima...

Adobe also announced today that it is joining the Linux Foundation with the aim to make rich user experiences easier to develop and deploy on Linux desktops. Among the initial platforms that will see the benefit of Adobe's contributions in this area is Ubuntu, already among the most UI-rich and user-friendly Linux distros.
Artima referred to the release notes which in turn refers to a discussion forum for AIR for Linux.

I'll tuck this tidbit down here at the bottom of the post: Wrox has some AIR books coming out. The Beginner AIR book is already shipping from Amazon.

Monday, March 31, 2008

The 60's

Following snow at the _beach_ this weekend, and more snow at home this morning, temperatures are getting back into the 60's this week. No fooling.

My last weather report for a while, we hope.

Malaysia's Web Lesson

An AP report (link TBD) quotes the Malaysian PM... "a serious misjudgement" to rely on government-controlled press in recent elections. Opponents used open blogs, texting, etc.

Let's hope the National Front has decided to be open, and that they've decided not to attempt shutting down the internets.

Sunday, March 30, 2008

Made to Stick

I've been making it stick all these years, and now I find it's already been Made to Stick!

Friday, March 28, 2008

Microsoft: "Patents are for intimidation, silly."

From Todd Bishop's Seattle PI Microsoft Blog... Microsoft's lawyer on why they will not disclose which patents they believe Linux violates...

That is not something that any other company in our industry does today. And yet, we do find ourselves as a company repeatedly getting requests from other companies to license their patents, to pay them royalties. We believe that, especially as long as there are other companies in our industry that come to us, asking us to take a license and pay a royalty, that it is important for us to work on a reciprocal basis -- and that means providing information on our patents in a forum where they are providing information to us on their patents. We're not comfortable being the only company in our industry, certainly, to take a unilateral step, especially when that step could change the dynamic, subsequently, for discussions with other companies.
Software patent portfolios are for intimidation, silly. The murkier the better.

Smalltalk -> Seaside -> Startup -> Cash

James Robertson points to another startup success using Smalltalk and Seaside.

Holy Cr... It's Snowing Again?

A lot of snow again this morning, and it is sticking at 500 ft. above sea level.

The gods must be crazy. Don't they know April 1st isn't until Tuesday??

Thursday, March 27, 2008

Snow

In the midwest this week I gave folks a hard time because it was cold
and sleeting for a bit. Back in Oregon this morning I brought a curse
or two with me: huge snow flakes. On March 28? Are you kidding me? I
know.

Sunday, March 23, 2008

Gilad Bracha, Anti-Monkeypatcher

Gilad Bracha writes...

So far, I have no firm conclusions about how to best address the problems monkey patching is trying to solve. I don’t deny that it is expedient and tempting. Much of the appeal of dynamic languages is of course the freedom to do such things...

Regardless, given my flattering portrayals of primate practices, you may deduce that my main comment on monkey patching is “just say no”. The problems it induces far outweigh its benefits. If you feel tempted, think hard about design alternatives. One can do better.

Gilad captures the essence of truly dynamic languages: freedom. Get out my way with your type theories. I am squarely in this camp for the time being.

I've not run into all the problems Gilad apparently attributes to dynamic languages. (And I assert your language is *not* dynamic if it does not allow these kinds of extensions.) I will welcome Gilad's solution as long as it preserves all the value. Generally though we should favor fewer language mechanisms, embrace those simple mechanism that work, and rely on good programming practices.

His Newspeak could be the rare exception, but I've not seen many whole language advances that really improve things as much as programmers can improve their own practices. I wonder if Gilad is expecting his Newspeak to appeal to the developers he refers to as "baboons"? It seems that distrust of developers is alive and well.

Saturday, March 22, 2008

Swarming and Agile Comics

OK, I have about five sessions from Agile Open Northwest that should be in my Top Three. One of those is the "Swarming" session, where we discussed "agile" as a system and self-organizing teams.

I wish I could have attended the "Produce a Comic About the Conference" session, but I was doing some official organization stuff and then I joined the Toyota Way session which was close by.

AONW 2008 Pix 8/8

This is Jon Marshall's "Lightning Sessions" session (but that's not Jon -- we all got up to talk many times). One of my top three favorites. This is in the Olympic room, which does not appear too intimate when it is empty, but people in each of the sessions carved out their space. Focusing was not difficult at all, and the acoustics were good.
Posted by Picasa

AONW 2008 Pix 7/8

Jeff Morrow led a great discussion on "Agile and the Toyota Way," i.e. a "lean" and "Toyota culture" angle on agile development.

Maybe we should video sessions (optionally?) next time? This would be one worth having on video. Dagnabbit - I should have brought my Flip video camera.

Posted by Picasa

AONW 2008 Pix 6/8

Rebecca hosting her valuable "Acceptance Criteria" session. This one was in my top three along with "Working Tiny" and "Lightning Sessions".
Posted by Picasa

AONW 2008 Pix 5/8

And here's Arlo hosting his "Working Tiny" session. This diagram is a tool for evaluating story value vs. cost. The Alki room was noisy for multiple sessions, but this corner was fairly isolated. On the plus side the room has a lot of windows and the weather was nice most of the two days.
Posted by Picasa

AONW 2008 Pix 4/8

Participants in the "Working Tiny" session, hosted by Arlo Belshee.
Posted by Picasa

AONW 2008 Pix 3/8

Monica Yap in front of the "marketplace" of sessions that had just been announced, then scheduled by conference participants. People are seeing the two-day schedule for the first time (many of them just created it over the previous minutes). Monica is a co-organizer, and is from Solutions IQ, a key sponsor of the conference and they put on the Tuesday evening party.

The schedule we made, and some notes and pictures, are on the conference wiki.

Posted by Picasa

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.