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

Search This Blog

Friday, August 03, 2007

X

Fri, 5 Feb 88 on NeWS-makers@brillig.umd.edu...

The astonishing baroqueness of X is the greatest threat to the general success of UNIX to have come along since System V hit the streets.

Thursday, August 02, 2007

Speckers

Peter Saint-Andre knows...

Perhaps we should force spec writers to either write code or deploy services.
Oh and Peter also gave a helluva session at OSCON on security and jabber/xmpp.

Wednesday, August 01, 2007

Not To Mention

An underlying, unintentional, yet pervasive message at OSCON this year is this: while the web server is a proven platform for building applications, the web *browser* is a horrible platform for building applications. Browsers have a tough row to hoe to get where they need to be. The huge advantage they have is cultural: programming applications by default are assumed to be best done on a browser, especially "cross browser", no matter what pain is involved.

Please don't hurt the web! Use a productive client.

Two things are going to push browsers (maybe kicking and screaming) into the 21st century web: Flex, (which *is* open and so could show up in Firefox someday) and AtomPub.

The combination of those could be significant.

Coding Faster, Pussycat!

I could not agree more with Dan Creswell when he writes...

Every decent software engineer knows that actually you want less code.
Yet I've seen this get turned into a desire for tools that implement systems "without coding". Unfortunately those tools often ignore the benefits of text-based code such as testability, maintainability, flexible automation for deployment, and so on.

So I definitely want less code, while still wanting "code". :-)

Tuesday, July 31, 2007

Fallout

Joe Gregario on the N = 1 problem...

While not everybody needs BigTable today, more and more people will over time. The sooner we start building a common understanding of how to program against such a model the better off we'll be.
Joe also gave a helluva good presentation on AtomPub at OSCON last week.

Routing

Tim Bray wisely instructs...

Even if you’re living on one computer right now, it might be smart to write your integration pretending that you’re not, so that when the load cranks up, you can scale out.
I saw Atanu Ghosh talk about the XORP router project at OSCON last week. This is exactly the approach they've taken, and have been able to move components out to multiple machines. Not exactly intuitive for a router architecture, but a wise choice generally as Tim says.

AtomPub

Bill de hÓra writes...

Atom Protocol. Is nearly done. Even though I'm a co-editor, and hence have some bias, this one will be fun to watch. AtomPub sits in a very strange place, as it has the potential to disrupt half a dozen or more industry sectors, such as, Enterprise Content Management, Blogging, Digital/Desktop Publishing and Archiving, Mobile Web, EAI/WS-* messaging, Social Networks, Online Productivity tools. As interesting as the adoption rates, will be people and sectors finding reasons not use it to protect distribution channels and data lockins with more complicated solutions. Any kind of data garden is fair game for AtomPub to rationalize.
Congratulations. Way back several years ago as a shooting-from-the-hip off-to-the side observer I thought the Atom effort would just add confusion to the "syndication" domain at a time that RSS, feeds, blogs, etc. were gaining some visibility in the enterprise. This was a great effort, and a great vision, and I think I kind of "get it" now!

Sunday, July 29, 2007

Swing and a Miss

I'm watching the Godfather and just came across a huge blooper. Sonny beats up his sister's husband in response to the husband beating the sister. A few swings into the beating though, Sonny clearly swings and misses but the brother-in-law flings his head as if contact was made.

Wild. I played Tivo back and forth in freeze frame to make sure of what I saw fly by the first time. Sure enough, this is a known blooper.

Now I don't know how I missed that so many times before.

Saturday, July 28, 2007

Erlang Style

Joe Armstrong's Programming Erlang book was featured at the Pragmatic Bookshelf booth at OSCON last week. The banner covering the back of the booth was simply the cover of the book itself. They said the book has been selling very well.

I hosted a BOF on Monday evening. The slot was assigned, and not the best, I thought, since that was the first tutorial night. As it turned out about 20 people showed up, so I wonder how many may have been there on a Tuesday or even better, a Wednesday.

A handful of the attendees had tried Erlang to some extent. Everyone had an inkling of what it is about, and wanted to find out more. So we turned the hour into a quick tour of what I consider the features people should see first if they're coming from the more common languages at OSCON (i.e. the "scripting" languages, Java, C++, C).

I had Emacs up on the screen with "erl", the Erlang expression evaluator, and a few interesting source files. I also had Firefox with some tabs browsing the extensive Erlang/OTP documentation. Here's how it went down:

Roughly 30 minutes on the sequential aspects of Erlang. Really just a few essentials:

  • Some data types: numbers, symbols, strings, lists, and tuples. (Distinguishing the last two had a bump -- I'd not really thought about explaining that!) I did not bother to explain records. Although they're simple in Erlang, they do need a good bit more explanation. (I'd hoped to avoid the point that strings are just lists of characters, but that came up in a question. And I certainly did not mention "binaries".)
  • Variables begin with a capital letter (latin1) and are "single assignment". (That took a few minutes to demo and respond to clarifying questions.)
  • Variables are bound through pattern matching. A simple assignment statement is actually just the simplest form of binding through pattern matching. (Code some examples into the evaluator. Then I made a mistake: I demo'd the evaluator's f() command to forget one or all current bindings -- this has nothing to do with Erlang and so I had to unwind a bit.)
  • Functions are defined by one or more clauses, and pattern matching is used to select a clause when the function is applied to arguments.
  • Recursion (and tail recursion), as there are no mutable variables and so no "loops" per se.
That was it, and my 30 minutes for sequential Erlang were up. I made it clear there's a lot more to sequential Erlang than that. The timing worked out pretty well though. I had not intended on explaining more about sequential Erlang. This was enough to read my code for concurrent Erlang.

The last half of the hour was spent on concurrent processes, message sending, and message receiving (again, via pattern matching clauses). No supervisors, no linking, no nothing but the simplest examples of spawn, send, and receive.

The first concurrent example was an rpc because people know it, and programming it in Erlang is trivial, *but* coding it in Erlang highlights that it *has* to be coded. Erlang messages are asynchronous, fire-and-forget, and the code for rpc makes that explicit.

Finally I demo'd loading updated code into a running process. This is easy to show and I thought people using languages that do not define such a thing or that define such a thing using horribly complex mechanisms would be impressed. Seemed so.

Given the response to the BOF, I suggested on the Erlang list that someone should provide a half-day tutorial next year.

Wiki Style

Ward Cunningham, being interviewed in last last Friday's Oregonian (the daily Portland paper)...

I think the word "wiki" has become a term that describes a style of working, not a particular technology, and I think that's fantastic, because we've been waiting for that style of work for a long time.

Friday, July 20, 2007

Simplicity

Joe Armstrong in a DDJ interview...

Some pretty fast-moving startups in the financial world have latched onto Erlang; for example, the Swedish www.kreditor.se. Erlang gives them a great commercial advantage over their competitors.

Thursday, July 19, 2007

Scalable, fault-tolerant, upgradable: Pick three

Joe Armstrong on scalable, fault-tolerant, and upgradable...

A system that is fault-tolerant can easily be made scalable and easily made so that we can do in-service upgrade.

http://www.random.org/

http://www.random.org/

Wednesday, July 18, 2007

Best Places

Money Magazine has Sherwood, Oregon, in its Top 20 Best Places to Live. Sherwood is a bedroom community about ten miles outside Portland.

Sherwood seems kind of the typical suburb to me. What makes Sherwood nicer than most is being in Oregon and being near Portland. Why not just put Portland on the list? Or if suburbs are their ideal, make Sherwood's #18 slot a list of Portland suburbs.

Oh, Money has the numbers that show how they put Sherwood on their list.

Speaking of numbers, I heard a good one recently, it goes something like this: the average person in Sherwood, Oregon, has one testicle.

Friday, July 13, 2007

Fresh Air

Fuzzy's take on AIR -- see my previous post on collaboration. I think AIR will play a *big* role in this.

Collaborative Systems

Tim O'Reilly re: an upcoming OSCON session...

I've been thinking lately just how much software developers take the existence of version control for granted, and how... web 2.0 applications don't offer much in the way of version control functionality...

The future we face is one of massive collaborative systems. How we design those systems, and how we build critical freedoms into them, shaping their architecture to support either participation or centralized control, is one of the great challenges facing the technology community today.

I worked on conferencing software for a couple two, three years in the early 1990s. There was a lot of expectation then that collaboration would find its way into every "single-user application" on the desktop. Then the web hit the scene and eventually evolved its own ideas about collaboration, or at least participation.

Other than a few notable examples there is still surprisingly little really good collaboration on the web. I'm not even sure what that is. Maybe it does exist and I could collaborate with you to find that out.

Wikis for me remain a great example, but still real collaboration is hard. Wikis have a way of devolving into conversation-like- and ownership-like-models for pages.

I expect by Web 2.5 or Web 3.0 we'll see collaborative systems more like where we were heading in the early 1990s but with a heavy dose of "the web" guiding everything for an even better multiplying effect.

Thursday, July 12, 2007

Wii: At It Again

Nintendo keeps moving forward. No big red buttons. Mario Kart for the Wii will almost certainly be my new favorite.

The Big Bopper

Wednesday, July 11, 2007

Exploratory Coding

In a dynamic language I can modify a small bit of code and run just enough tests to try those changes. Then I can progressively run more tests and fix those that are broken because of my changes.

Is there a way in Haskell, or Scala for that matter, or OCaml, to "suspend" checking on things that are "already typed" in order to do something similar?

Another way of looking at this is it is "exploratory programming" -- I may break all kinds of things I don't care about as long as I can fix them incrementally as my explorations settle out.

i.e. I don't want to tell the type checker something should be typed ∀α.α. I just want the type checker to allow me to work on one small things even though I may have broken type checking for a lot of code I am not worried about at the moment.

Push The Big Red Button. Yes, *That* One.

From the Seattle Post-Intelligencer...

Microsoft Corp. is turning to an oversized red button in its latest bid to broaden the appeal of its Xbox 360 video-game console.

The company announced plans Tuesday to introduce an alternative Xbox 360 controller, featuring a large button in the style of a game-show buzzer, meant to be less intimidating to new gamers...

"It's super-easy to use," said Shane Kim, the corporate vice president in charge of Microsoft Game Studios...

The controller, dubbed the "Big Button Pad," won't be sold on its own initially, and it's not expected to supplant the regular Xbox 360 controller. But Microsoft hopes more game developers will make use of it. The company showed versions with large buttons in different colors, not just red...

"We're certainly not feeling any pressure to react to anything that Sony has done," Kim said.

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.