Our House

Apologies to anyone who saw the mess that was my homepage this morning. I updated the template yesterday to include Blogrolling links in the left hand nav, and found this morning that the page didn’t appear–except for the print friendly links. I looked at it and saw that my HTML syntax for the comments I had put into the template to make it more readable was wrong–as a result, all the page was commented out.

I realized that I’ve written more about my everyday life in Seattle than my everyday life in Boston. As you may have guessed from the copious risotto references, we live in Boston’s traditional Italian neighborhood, the North End. This is our second apartment in the greater Boston area since moving here for MIT Sloan a little over a year ago.

The first apartment we were in was almost palatial–huge two bedroom place with 13-foot ceilings, exposed (painted) brick, full time night watchman, incredible service. But we realized we were paying about $2 a square foot for living in the middle of a construction zone. Fully loaded semi trucks rattled by our bedroom window in the middle of the night. Construction dust sifted through the framing of the modern windows to encrust the sills. And (the capper) there were no decent places to eat within walking distance. “Our house in the middle of our street”, indeed–some nights it felt like our bed was in the middle of the street.

We moved to this place about five months ago. The North End is a cool little neighborhood. Formerly an island and home to such Boston luminaries as Paul Revere, the neighborhood was connected to the main part of the city by landfill and subequently became home to waves of immigration. Today the neighborhood is separated from the rest of the city by the I-93 bridge–a fact which has probably done a lot to preserve the pedestrian friendly streets and “Itanglish” of the inhabitants. You can smell the cooking from early in the morning to late at night. You can walk a route that takes you past three traditional butchers, four bakeries, two pasticcherias, a ravioli maker, three delis, at least four greengrocers, three wine stores, and about a million cafés, trattorias, and restaurants, plus Paul Revere’s house and Old North Church, in about ten minutes.

The irony is that, if the Big Dig ever gets done. the walls of isolation that have protected the neighborhood will come down. Sure, there will probably be green space where the big green overpass sits now, but it’ll be a lot easier to get a car into the neighborhood. Something will change irrevocably. Maybe that’s why the neighborhood fought so vigorously against the Dig (that and the noise of construction that never ceases). The North End has been an island again for many years; for a second time, it’s going to be connected to the mainland. Something will change; we just don’t know what.

Recurring themes

It was a nice weekend. I’m in danger of getting into a risotto rut: I made a kind of unusual one this weekend. Instead of using onion in the base, this one used pancetta, garlic, sage, rosemary, and beef shoulder cut into 1/2 inch dice, with a reduction of Spanna (a Nebbiolo based wine, distantly related to Barolo). It was savory and very very good.

Thank goodness I don’t have food allergies. Somehow after the last fifteen years of being on antihistamines, a lot of my allergies went away, and all I have to worry about is dust. “Esta” wrote one of her funniest pieces last week on the family’s allergy issue.

I really think pieces like that are one of the things that keep the blog community going. When you’re too tired to write something funny, you can just point to a piece like that one. It’s like being part of a perpetual writing workshop where all the participants make all their work available all the time.

Which reminds me: I’m proud to link to a good friend of mine from “Virginia” who maintains the Tin Man blog. I don’t have the obligatory list of fellow bloggers in my page navigation yet, but this guy will be one of the first I include. He writes intelligently, honestly, and personally about things that are going on in his life, and his write-up of events over the past few months has been deeply affecting.

Music for today: “The One Thing,” INXS. Before Michael Hutchence got lobotomized, as Greg used to say (long before MH’s untimely death):

You know your voice is a love song
It’s a catcall from the past
There’s no ice in your lover’s walk
You don’t look twice ’cause you move so fast

I’m thinking about old songs because I’m working on selecting another song to arrange for the “E-52s”. I don’t think Start the Commotion would work too well as a cappella, more’s the pity. “Light it up, baby!”

The dot-com that broke my heart

After all the things I’ve written about using wireless access in public places, I was really sad to see that Mobilestar is in danger of closing.

I was talking this morning to some classmates, working on a project that was trying to identify customers’ perceptions of Zipcar. One of the perceptions was essentially “It sounds like a great service, but I’m skeptical.” In trying to articulate what was behind this perception, I said, “The customer doesn’t want his heart broken by another dot-com.” I hadn’t thought of it this way before, but that’s a lot of what I’m seeing in business school now. Lots of cynicism, lots of verbal defensiveness. Wall Street is the same way–there’s no rational reason that Akamai, a great company with a great business plan and great prospects, is trading at $4.26 a share. We loved dot-coms and now so many of them are gone. It’s like a grieving process.

More thoughts shortly on the history of web services. I just need to find a better place to write.


History of Web Services, Part II

This is part two of my informal, inaccurate History of Web Services; part one was posted on Wednesday.

CORBA was probably the first credible enterprise scale mechanism to allow processes (applications) on different computers to talk to each other. Why hasn’t it taken over the world?

Characteristics of CORBA

CORBA, according to its caretakers the Object Management Group, was designed to provide “interoperability between applications on different machines in heterogeneous distributed environments and seamlessly [interconnect] multiple object systems.” The calling system did not have to be aware of the hosted service’s location, operating system, programming language, or anything else about the service except for the interface (in the sense of an API–the defined way to talk to the service).

Sounds great in theory. You could theoretically make just about anything a CORBA-compliant object–legacy databases, Perl scripts, Microsoft Visual Basic applications–and have it all work together.

So what’s wrong in practice? The CORBA spec requires an Object Request Broker (the ORB in CORBA) to reside at a known location that keeps track of where all the services are. And that’s potentially a huge performance bottleneck. CORBA isn’t dead yet, but if you were to write its eulogy performance would be the cause of death.

Microsoft’s first answer: DCOM

Microsoft in the mid-nineties announced that it had a better answer to the distributed computing problem than CORBA. It was based on its existing Component Object Model (COM) that allowed interapplication communication inside a Windows machine, but it now had features in the plumbing to allow COM calls to work across a network. DCOM (Distributed COM) was supposed to make calling remote application services as easy as making OLE calls in Windows.

No, seriously, that’s what they said. The sad reality, at least from the point of view of thisex-Windows programmer of enterprise applications, was that making OLE calls in Windows was never particularly easy–or reliable. Different computers might, or might not, have functional OLE subsystems. The application being called might respond so slowly that the call would time out–even if both were on the same machine. You can only imagine how well distributing that same architecture worked.

Any distributed code you want, as long as it’s Java

The Java community made their own play at a distributed computing paradigm, called Enterprise Java Beans. At least one critic has called EJB the only “detailed, practical” specification of CORBA services. In addition to the core CORBA capabilities, EJB offers security, persistence, concurrency, load sharing, and other “value added” features.

From a programmer’s perspective, EJB sounds like (and is) a great technology. The issues with EJB are more subtle. First, you have to use Java to use EJB. This isn’t necessarily a problem, as Java is a pretty universally available programming language, but it places more constraints on your application than CORBA per se. Second, your application has to be pretty tightly coupled to the particular beans that provide its services. This makes operation in intermittently connected environments dicey at best.

Web Services

So what does the Web Service paradigm offer that CORBA, DCOM, and EJB couldn’t? That, it would appear, is the $64,000,000 question. The new wrinkles are XML, HTTP, and independence from language, platform, and broker.

No Broker: Web services can (and in most cases, do) run without a central broker. This eliminates one perk of CORBA, not having to know where the service is, but I’d argue that’s a questionable benefit compared to the performance hit imposed by going through a broker for all calls.

XML: Web services generally presuppose that the fundamental language of interchange for data is XML. This assumption doesn’t extend across any of the other approaches, where XML support, if it exists at all, exists as a bolt-on.

HTTP: Web services generally use HTTP as the transport protocol. This is important because it enables making web services calls through firewalls. However, as HTTP isn’t a robust transaction protocol, this may impose performance hits.

Platform and language independence: Unlike EJB, you don’t have to write Java to get in the game for web services (at least, most implementations). Unlike DCOM, there’s no platform requirements.

SOAP Family History

I was talking to some folks this weekend about my work experience, and mentioned that my programming experience had been in client server systems. “Client server!” they said–“boy, I haven’t heard that expression in a long time.” Feeling instantly old.

So what’s the connection between client-server and this XML-RPC/SOAP/scripting/web services thing I keep writing about? Kind of an indirect parentage, actually. It’s useful to go back a few generations to get the background on where web services came from, technologically speaking.

History Lesson

A long time ago, computer programs were monolithic, in the technical sense of that term. They were one big chunk of code that could be accessed only one way and only ran on one machine. This was because the machines were usually so big and expensive that there weren’t many machines around, and thus there was no value in networking them.

Somewhere along the way, things changed. Pretty soon, people were interested in getting systems to talk to each other. And software had started getting more structured in the meantime. On the one hand, you had application programming interfaces, or APIs: formally defined ways to access the functionality offered by a program, whether an application or an operating system. On the other hand, you had object orientation–the concept that a given chunk of software should protect the data that it accessed and offer well defined methods to read and change that data.

Why was this important? APIs gave software developers a clearly defined path to add functionality to applications or to write applications for platforms. (By the way, the Mac was the first mainstream personal OS with a documented, rich API for writing applications.) And object oriented meant that you didn’t have to worry about some other chunk of the application randomly changing your data, making it easier for large numbers of people to work together on a software project. But we’re still talking about monolithic applications running on only one machine. The network, if it’s there, is slow and unreliable for most users, or else only connects largely heterogenous systems inside your own company.

Add Network, Stir Vigorously

Shift gears for a second. It’s the eighties. You have a big transaction clearing system for a bank. You want to set up a network of machines to allow people to withdraw cash from their accounts, at places and times that are convenient for you. But you’ve got a problem. Even if you wire up ATMs in all the states where you have branches, you still haven’t covered the people who travel out of the area where your bank exists. How do you get an information system to allow people to get their money regardless of whose machine they’re using?

What if the software objects could talk to each other over the network? What would need to happen to make that possible? Well, one program would need to know how to talk to another and what to do with what the other said. (Sounds like an API.) And you’d want to make sure that only your bank’s systems actually made changes to the data–other banks could make requests, but not actually directly change the numbers in your customer’s accounts–so you could assure your customers’ security and privacy. (Sounds like object oriented code.)

Expose the API to get to a software object and make it accessible over a network. That’s the story behind CORBA (Common Object Request Broker Architecture). Behind DCOM (Distributed Component Object Model). And, to a very simplified degree, behind web services.

So if we had CORBA fifteen years ago, why web services now? That’s, as they say, a whole ‘nother story–one I’ll try to write about tomorrow.

Quick updates

Too long a day yesterday to do any blogging. I’m catching up a bit now.

Sitting in Sea-Tac, using a paid wireless connection. It’s amazing how quickly that comes to seem acceptable. I used one in Starbucks earlier.

Word of advice–if you are in Seattle, on the way to the airport, and have a choice between paying for access at Starbucks or at the airport, use the airport access instead. It’s 6.95 for a full day, as compared to $2.95 plus 20 cents a minute…

Not a lot going on. Just getting some work done. Trying not to think about the little insanity that happened in the air over Chicago a few days ago. Or about congressmen finding out that security rules apply to them too.

Or people pulling the comic strip Boondocks because the cartoonist is calling the Reagan-Bush Republicans for supporting Bin Laden during the Afganistan conflict with the Soviet Union in the 80s, and then claiming it’s because “it’s more appropriately discussed in news and opinion pages” than in comic strips.

Back in Seattle Again

Sing along with me now: “I’m back in Seattle again”… Blogging in my bathrobe drinking Starbucks. Gotta love civilization, even if you’re scared to death about what’s happening half a world away. There will be some tense shifts in this piece. That’s one drawback about writing offline–it’s less spontaneous and therefore either requires the writer to edit more carefully or the reader to be more forgiving.

I started writing this: sitting in Logan Airport (now there’s a phrase that is scarier than it used to be!), listening to the gate personnel announcing that the flight to Denver is oversold. Listening to all the alarmist talk about heightened security and concerned about mile long lines at check-in and security checkpoints, I got on the subway at 8:30 for an 11:10 a.m. departure. Now, almost two hours later, I’ve been sitting in the gate area long enough to read the Sunday New York Times cover to cover and consume a grandé Americano.

Aside: Why do they call espresso with hot water an Americano? Because it’s weaker than regular espresso? Because it’s bloated and engorged with water?

Unlike SeaTac, Logan doesn’t have freely accessible wireless networks for passengers’ convenience–in fact, as far as I can tell, Terminal C has no wireless networks at all. So I’m writing this offline–in TextEdit, naturally–waiting for the boarding process to start. I’ll upload it later.

Lisa flies to Italy later today for a week with her Italian project team, working on the contract that she helped the company win. I don’t know how often I’ll get to see her over the next few months–her schedule is totally up in the air.

As for me, I have two days in Seattle ahead of me. Should be a fun time, even the part spent on business. For the plane, I have my laptop, my DVD drive, and copies of O Brother, Where Art Thou and And Now For Something Completely Different. Life is OK.

…At least, that’s what I wrote before I heard from Lisa in Denver that the bombing had started. I’m old enough to remember Desert Storm quite well, and I’m hoping that this one ends more decisively, but I have my doubts.

Printing without wires

So at long last I finally got our laser printer working on our wireless network. It was a little bit of a pain in the butt, so I thought I’d share the process with you.

The architecture of the solution, when all was said and done, was pretty simple. LaserJet with JetDirect card, connected via Ethernet cross-connect cable to Airport base station (dialup only), set up as an Ethernet bridge (thanks to Henry B for pointing this out). But getting there was pretty difficult.

First thing that we had to do was get a print server card for the printer. The LaserJet 2100M/TN doesn’t come with Ethernet connectivity, so connecting it to the wireless network required a JetDirect card. The standard card from HP is called the JetDirect 600N. Unfortunately it comes in about five flavors, depending on the type of networking you need to do. The cheapest model on E-Bay is the 3112. Unless you have some TokenRing needs, make sure you don’t buy this model. The one we finally ended up getting is the 3111a, which has 10Base-T and 10Base-2 support in addition to Appletalk (via the old fashioned serial connection). The card fit in the standard EIO slot in the LaserJet printer.

My initial plan was to connect the card to our AirPort base station using an old Intel 4-port 10BaseT hub we had lying around. Unfortunately, this didn’t work too well–we couldn’t address the card. I printed a test page for the JetDirect card and saw that the IP address and gateway were manually set to an unusual number–no doubt the settings required to run it in its previous home. But I couldn’t correct the settings from Mac OS X. I booted into OS 9 and connect to the JetDirect server using a crossover cable. I was able to reset TCP/IP to automatically get a DHCP address. However, when I reconnected the card through our hub, it didn’t seem to get an address. I then manually set the IP address, but still couldn’t address it.

Finally, I had to move the Airport base station to the other side of the room so that I could connect it using the 10-foot crossover cable directly to the printer. Almost immediately, I found it accessible via AppleTalk–apparently our hub was broken. I was able to set up an LPR printer to it, and we downloaded software from HP onto Lisa’s Windows 95 laptop so that she could connect to it as well.

All in all it only took about six weeks… Boy, I really must be a programmer now. Hardware and networking things used to seem easier.

One last note–I’ll have to get another hub if high speed broadband ever comes to our neighborhood–connecting directly to the base station won’t work too well then.

Food, Music, and Scripting

It’s a beautiful day here in Boston. What a pity that I have to do work.

It’s interesting how people pick up certain habits about writing their blogs. I think Dave sometimes starts with an introductory “Good morning!” and some random thing that’s floating through his mind. For me it’s like a vocal warmup–stretches the writing muscles and gets me thinking.

Last night’s anniversary dinner was really nice. I made a risotto Milanese with pancetta, and a Siena style dish of chicken breast fillets with lemon and parsley. The risotto was fantastic, and I think I might have to add it to my regular repertoire. We decided to make a special night of it because Lisa’s trips to Italy are about to begin, and at this point we don’t know how often she’ll be home. Work is tough…

Speaking of repertoire, I’m in the middle of trying to build one for the E-52s. I’m finding it more challenging than I thought. There are two main challenges: finding good songs for female soloists and finding music that I like and the group likes too. I knew I had weird tastes in music, but there’s nothing like directing an a cappella group and watching their reaction to your musical ideas to really bring that home.

I might do a little Applescript work this morning, now that the fuss has pretty much died down over my first attempt. We’ll see how things go. I had one great plan dashed because the application I wanted to use wasn’t scriptable. It’s interesting. My initial thoughts about using script as a glue to tie website access to my desktop was that once I had the plumbing and the website API, I would be all set. Now I’m discovering the downside of relying on scripting: all the applications I use need to participate, or it won’t work. I already had to move from BBEdit Lite to TextEdit for updating my blog–I could write against the full version of BBEdit, but I’m a student and spending money for another software license when I have a passable text editor is hard to justify.

It’s a Big Scripting Party

Yesterday’s piece on using AppleScript to update a Manila blog interested a lot of people, thanks largely to Dave‘s link to my page. A typical story on my site might accrue 10 hits the first day it’s posted. This one garnered 559. Which leaves open the question: by writing that little script and telling Dave about it, was I just shamelessly whoring for hits? Hopefully a few people downloaded the script and found it worthwhile.

I’d like to issue a public invitation to all the people who are interested in using Apple’s new RPC capabilities with Manila. Let’s have a discussion about what would be the most valuable scripts to write and what would add the most value. I’ll kick it off: I think that (a) automatic spellchecking prior to posting and (b) ability to post image files directly from the Finder to my blog would be great things to have. What do you think?

I’d also like to point out that there are people doing similar things for Blogger. Following my referer links, I just came across this script at Web Entourage. It’s smarter than my script–it uses the selected text from any application. This is cool. I’m learning more about Applescript (I’ll be the first to admit I’m pretty illiterate in it) and about the other people out there who are doing this stuff.

I like the WebEntourage web page better than the page that shows off my script, since he links clearly to the API and to Blogger. I wonder if there could be some way to pull out the links from a Manila message automatically and format them for display somehow, like what Slashdot does.


In non-scripting news…

Today is the fourth anniversary of my wedding to Lisa. We got a lovely e-card yesterday from our dear friend Larry Mueller. I sang with Larry in college and he read at our wedding.

Getting the email from him, I realized it’s been far too long since I spoke with a few of my friends like Larry. Distance is pretty hard to conquer when you’re a student. I think it’s ironic that as my ability to write for my blog has improved, my letter writing skills have diminished.

A long day today. Lots of coursework. I have to keep reminding myself that corporate finance is worth all the trouble.

Blogging in New Places

I write this blog from an unaccustomed place: Apple’s TextEdit application. That I’m doing it from a text processor isn’t in and of itself unusual; normally I write my blog in BBEdit before uploading it to the web. The unusual part is that this blog will be published to the web without my opening a web browser.

This is what I started writing about in July when Apple quietly announced that they would make support for web services–web applications that can be addressed using either XML-RPC or SOAP–available in the operating system and accessible via AppleScript in Mac OS X 10.1. Yesterday I wrote a short AppleScript (available for download) that uses SOAP to call web services belonging to Manila, the publishing system that hosts this blog. The script takes the content of the topmost TextEdit window and makes it a story on my website.

Apple’s made web services pretty darn easy to use. You specify the URL you’re going to and the location of the command you want to use, and the parameters that it takes. You execute the SOAP call. You can call out elements of the resulting XML result by name as though they were normal AppleScript properties (enabling me to get the message number that results when the story is posted).


Le Bien, Le Mal

What’s not to like? Well, sometimes if the script you’re writing doesn’t work, it’s hard to figure out whether you’ve made an error, whether something has gone wrong on the other end, or something else entirely. Case in point: I was getting error messages yesterday from Manila complaining I hadn’t supplied enough parameters to create a message. Had I missed something? Had Dave added something? Then I looked at the XML output (using a great tool from one of Apple’s scripting guys) and realized that the password element had been dropped out. On a little digging, the same Apple guy tipped me off that “password” has a special meaning in AppleScript and I had to treat that property differently (see the script source).

Okay, not perfect, but still having fun. What’s next? How about tying a spellchecker into the workflow? Ease of use capabilities like saving username and blog address, and keychain support, and other applications, and…

I better not get ahead of myself.


Note

The subtitle is taken from Guru’s jazz/hip-hop album, Jazzmatazz. It’s a duet with MC Solaar, French hip-hop artist, in which Solaar basically shows Guru up as a rapper of inferior skills. But I don’t think he knew that when he recorded it. 🙂


Others are Doing It Too

Larry responded to my piece to point out that he’s done this between TextEdit and Blogger. There are probably other people out there doing this too. Let’s have a scripting-our-blog party!

A Long Awaited Upgrade

The title of this piece comes from “A Long Awaited Party,” the first chapter of The Fellowship of the Ring by J.R.R. Tolkien. I’ve been re-reading it lately. It has some interesting things to say today about the value of innocence and protecting it: it’s better if the innocents stay safe even if they are ignorant about the dangers around them. For me, that puts all the ranting I used to do about the uninformed American public in an entirely new light.

So, Mac OS X 10.1. As someone pointed out on Slashdot, a pleonasm of a version number. But a heck of a good operating system.

Where do I begin? The trip to Northshore for the disc was pretty humorous. Lisa had something else to see in the mall and left me alone at the front door of the Apple Store. Words don’t do the place justice. How about ten-foot glass panes suspended on wires from the ceiling and floor displaying the Aqua interface? Shelves and shelves of software? All the current hardware on display, plus “digital hub” accessories? Heck of a retail experience.

I asked the floor guy where I found the upgrade, and he said, “Oh, that’s back at the Genius Bar. I’ll walk you back there.” He went back and told one of the Mac Geniuses (yes, that’s a job title) that I needed the upgrade. The Genius said “Stand back a little.” Wondering, I did, and he tossed the package to me like a frisbee. “There you go,” he said.

The actual install wasn’t nearly as fun, but it also wasn’t onerous. I left it alone for about half an hour (I think I accidentally had it include resources for a bunch of other languages, or it probably would have been faster). On boot, the login screen defaulted to listing all the users in the system with pictures next to them. Pick a login name, then type in a password. Great for home users. I promptly changed the setting back to force people to type in a username. I take my laptop everywhere and it makes me feel better that if my laptop walks off the person will have to know my login name before he can do anything with it.

So, logging in: the login window shows a spinning progress bar now and stays open until a few seconds before the Dock appears. The Dock is now hidden by default. The battery, clock, volume, and Airport indicators are now in the menu bar and their Dockling counterparts are gone. I mean gone–not on my hard drive any more. A little disconcerting, but I can get over it. I open an application and am knocked back in my seat, it’s that fast. And they’re all fast. And that’s really cool. Mozilla is more stable now when compared with the same build running under 10.0.4.

What about that whole SOAP/XML-RPC thing? I go to Apple’s scripting site for OS X and download the Script Menu. Drag it to the menu bar to install it. Pull it down–there’s a few Internet services already there. Select “Temperature by Zip Code.” Type in my zip. Within about a second (over a dialup line) it tells me what the temperature is outside. Not a gee whiz demonstration, but it did it all using a Web service and SOAP. No browser had to be open.

Apple released the manual for programming this interface yesterday. I might have something to say about how it all works later this week. Right now I have to go watch a DVD. Which, by the way, I no longer have to reboot to do.

 

On a completely different note, mahna mahna! Also, Esta has some hilarious things to say about pickled squirrels today…

Getaway in Maine

Sorry about the cryptic message that was on the site over the weekend. I was trying to demonstrate the workings of this website to classmates of mine and I inadvertently flipped the homepage. I figured that, rather than leave it blank, I would put something up temporary and change it later. Shortly afterwards I hopped in a car and we drove to Maine. 🙂

Lisa and I were in Bar Harbor over the weekend. It’s a gorgeous little village on a small island off the mid-coast of Maine. We got there about 9:30 pm on Friday and all was dark, cold and windy. A pint of porter from the local brewery took some of the cold away and we enjoyed some excellent mussels and clam chowder.

In the morning, I was astonished to see how close the water was all around us. A quick breakfast followed by some driving and we were at the top of Cadillac Mountain, a huge outcropping of pink granite rock at the center of Acadia National Park in the center of the island. We walked around the top of the mountain and continued on the park loop road to the Sand Beach.

(A quick word about the history of the park: Bar Harbor used to be a home for the rich and famous. To prevent overdevelopment of the island, the residents, including some Rockefellers, donated the bulk of the eastern half of the island to the US government to create a national park. The park is encircled by a loop road, reminiscent of the Dingle Peninsula in Ireland.)

From Sand Beach we hiked about 1.5 mi south to Otter Point and were treated along the way to spectacular views of the water and the rocks. Returning to Sand Beach, we climbed more or less straight up a rock face to the headland protecting the beach. More spectacular views, some aching muscles. We headed back for dinner and some sleep in town. Sunday we had an excellent breakfast on the (somewhat heated) front porch of the 2 Cats restaurant and inn (featuring a note from Martha Stewart by the cash register!), and began the long drive back.

We made only one stop on the way home–the Apple Store in the Northshore Mall in Peabody, Massachusetts, where I picked up my copy of Mac OS X 10.1. I’m using it now and it’s spectacular. All the rock solid performance of the original version (maybe more so), great DVD playback, and fast. I’ll write some more notes about the new OS tomorrow. For now, I’ll just say: drive to your closest Apple Store or CompUSA or order your copy on the online store. You’ll thank yourself for doing it.

Some smiles

Thank God the Onion is back. I’ve missed them the last two weeks. Highly recommended: U.S. Vows to Defeat Whoever It Is We’re At War With: “‘The United States is preparing to strike, directly and decisively, against you, whoever you are, just as soon as we have a rough idea of your identity and a reasonably decent estimate as to where your base is located.’ Added Bush: ‘That is, assuming you have a base.'”

Funky Mouse Jive


Another thing making me smile: my browser. For the last five months, my browser of choice has been Mozilla, the open source descendant of Netscape. There are lots of good reasons to use it: better standards support than Internet Explorer, never any threat of smart tags, open bug reporting, daily improvements. On my Mac OS X laptop it’s much faster than Internet Explorer too. But today it’s giving me two pretty revolutionary user interface functions: a tabbed browser window, allowing me to switch back and forth between multiple browser sessions in the same window, and mouse gesture navigation. Gesture navigation uses easily remembered mouse gestures to perform browser navigation, like drag left to go back in the history, drag up then down to reload the page, mouse up and then right to maximize the window… Less overall mouse movement than going to the toolbar. Pretty darn cool.

Where Everyone (Wants to) Know Your Name

A few months ago, I wrote about single sign-in and why AOL and Microsoft are both trying to be the Internet’s major providers of it. Yesterday, Sun announced they were jumping on the bandwagon with digital identity services. It’s surprising that it took Sun as long as it did to come to the party, given their ambitions as an Internet platform company. Why did they wait so long? What’s so important about single sign-on?

When I was a programmer, I used to hate one thing about debugging my application: Every time I wanted to run it to test my code fixes, I had to type in my user name and password. We couldn’t do anything nifty at that point like tying it to some automated central login — the military still didn’t fully trust NT security, and half our user base was running on Windows 95 or 98, which weren’t designed to be bulletproof when it came to authenticating users.

So I did what any self respecting developer would do when he got a loud complaint from his user (me): I hacked my local code base so that it automatically supplied my username and password when I ran. Single sign-in, for sure–I was the only one who could sign-in.

There’s definitely a user benefit to only having to log on once to access information, even when you’re talking about logging into your computer and only one other system. But what about the web? Every merchant, chat room, vendor site, newspaper, whatever site in existence wants you to sign in somewhere. I calculated the other day that it takes visits to four web sites to pay our monthly bills on line. One of those sites, our bank, consolidates information from at least ten other billing agents behind its “single sign-in.” By doing that consolidation, our bank has reduced the number of user name and passwords that I have to remember from fourteen to four. Do they have my business for a long time? You bet.

Microsoft has announced part of its business strategy behind the .NET initiative. While it will be working with service providers across the Internet to deliver tons of value to the end customer, it will be the customer, as value recipient, who will pay for the service. This is probably good, since it avoids all the known bad business models (advertising supported services, VC funded free software, etc.) that have caused so many dot-coms to implode. But how does Microsoft convince customers that paying for these services is worth it? I think single sign-in is one of the benefits they’re betting that customers will pay for. And I think Sun just woke up and realized that a business shift is occurring, and they are about to miss it.