Delicious Library – promising, but…

Over at present simple, badaunt writes about Delicious Library:

I discovered that Delicious Library is a way to catalogue your books. Just point any FireWire digital video camera, like an Apple iSight®, at the barcode on the back of any book, movie, music, or video game. Delicious Library does the rest. The barcode is scanned and within seconds the item’s cover appears on your digital shelves filled with tons of in-depth information downloaded from one of six different web sources from around the world.

So of course I downloaded it, plugged in my iSight, and started playing.
Basically it works. Wave the bar code on the book at the iSight, getting the angle and lighting right, and the lookup takes a couple of seconds. Great. However, like badaunt, I can’t imagine actually scanning my whole collection. It would take forever, it would require a fair amount of manual intervention (see below), and when I’m done, what use is it?
But I’d love to be able to use it as an adjunct to blogging. For example, I’ve recently been on a Jack McDevitt kick: I picked up Chindi at an airport bookstore, enjoyed it, followed with Omega, and over the next few weeks I worked my way through another four or five of his books.
Now, it would be brilliant if I could have prepared that last paragraph by scanning a few McDevitt books into Delicious Library and clicking a button to generate a chunk of HTML with thumbnail covers, links to Amazon.com, and so forth. (XMLRPC upload to the blog would be nice, but cut-and-paste is adequate.) However right now Delicious Library offers no easy way to work with the data in the library. The Export... option just dumps out a ton of stuff from the Amazon.com page in plain text; Print... just lists thumbnails and titles in a PDF, and Mail... generates an email message per book with the cover and a link.
What I’d like is the ability to define a template, using predefined variables for the various fields of the item record (title, author, publication date, publisher, Amazon cover thumbnail URL, etc.) Then on command the app could simply expand a copy of the template for each selected item in the library, replacing the variables as appropriate, and dump the whole lot onto the clipboard, ready for me to paste into my WordPress composition window.
I mentioned manual intervention earlier, and I have to say that the bar code scan approach is by no means foolproof. For example, I just tried to scan Jack McDevitt’s Infinity Beach. The application read the UPC – 099455007993 – and mapped it into The Lone Ranger Vol. 2 DVD. Eventually I discovered that the way to correct this was to update the “Details” field labelled amazon® # with the ISBN – 0061020052 – and then instruct the app to Reload details from Amazon.com.... In the first dozen books I tested, I ran into this twice, which is somewhat depressing. Oh, well.
The price is OK ($40; the demo version allows up to 25 items), but Delicious Library needs to be a little more open and extensible to meet my needs. Maybe it could be AppleScriptable…?
UPDATE: Mike, the Major Domo at Delicious Monster Software, assures me that they’re working on the features that I suggested. He also provided a workaround for the scan error (look inside the front cover…). I’m impressed, and I’ve volunteered to be a beta tester.

The reinvention of Jini proceeds apace

Rob Gingell once observed that “those who do not use Jini are doomed to reinvent it.” Today Warren brings us up to date on the way this reinvention is happening in the WS-splat world:

How deliciously ironic that the WS architects are (badly) re-inventing executable bytecode (BPEL), types (XSD) and interface centric service development (SCA).

I’ll reserve judgment on his “(badly)” evaluation, and simply note that I can remember a conversation with one of the people involved in SCA in which we were lamenting the fact that software engineers are notoriously ignorant about the history of their discipline….

On the role of a CTO

Part of the recent re-org at Sun was a new role for Greg – or rather, a de jure codification of what should have been the de facto all along. As Jonathan blogged:

Now as you may have heard, I gave Greg a new title recently. In addition to being Sun’s CTO, he’s now Executive Vice President of Research and Development. Why’s that important?
[…]
So as a part of this change, the product group CTO’s, the sentinels supporting the line executives who run our businesses, will also report to Greg. In the world of human resources, that’s known as a “dual hard line” reporting structure.

So what exactly do these “sentinels” do? Or, perhaps more important, what should they do? Here’s what I wrote to a colleague a few months ago:

Back in the mid-90s, Hal Jespersen and I were co-CTOs in the Network Software Group under Terry Keeley and then John McFarlane. We found that the job involved both inward and outward facing activities, as you’d imagine. The outward included:

  • Customer facing work, both tactical and strategic. Familiar stuff.
  • Other business-related stuff: analysts meetings, press, etc.
  • M&A [merger & acquisition] up to the point of acquisition (due diligence, selection, etc.).
  • Strategic partnering (remember the various strategic alignments attempted with XXX,YYY etc.?).

These are fairly straightforward. They are business-critical, usually interrupt-driven, with no obvious tempo. By contrast, there are a number of inward facing activities for which it is important to develop a predictable process, a cadence:

  • Portfolio planning and MRP [Medium Range Planning – Sun’s budget process].
  • Technical reviews of projects – regular, in person, with [at least] the tech leads, every 3-6 months.
  • Business reviews of programs, supplying an independent voice on the state of the technology.
  • M&A from the date of acquisition until effective assimilation
  • Setting technical “big rules” if absolutely necessary
  • Taking care of the engineering community, from a retention, skills inventory, and development perspective
  • Coordination with CTOs in other business units

(In addition, the CTO *may* be responsible for AD [Advanced Development] within the BU [Business Unit], in order to shield the budget for this from being traded off at the project level. Where AD belongs – within each program, at BU CTO level, or in the Labs – is something that needs to be worked out carefully.)
All of these roles are vital, of course. 🙂 The one that should not be skimped on is the regular technical project reviews. VPs and directors in charge of programs will routinely fudge (lie about) the technical state of their projects; that’s just the way things are, no big deal. The CTO has to understand the technical status of the programs, has to be in a position to identify gaps, overlaps, and duplications across the portfolio.

Obviously one person can’t do all of this: you need a strong, outgoing leader with a small staff of experienced engineers and process people. (The “co-CTO” approach that Hal and I used in NSG was a good “in the small” example of this.) Above all, you need someone who is respected and trusted by the BU EVP but relatively independent of him or her. That’s the value of the dual reporting relationship that Jonathan described.
Of course this only works if all of the BUs have CTOs….

SGI, chapter 11

From Reuters:

Computer maker Silicon Graphics Inc filed for Chapter 11 bankruptcy protection after a round of restructuring measures failed, according to court papers filed on Monday.

Of course this comes as no surprise; indeed, my initial reaction was, FINALLY!! And about time too!” But the stated reason is odd. Among the possible interpretations:

  • Restructuring measures were implemented, but failed to yield the intended results.
  • Restructuring measures were proposed, but failed to win the support of, e.g., the existing creditors.
  • Restructuring was started, but could not be completed – “we tried to lay off the marketing department, but they wouldn’t leave”.

Ah, well. A salutary lesson for those who believe that “if you build it, they will come” despite all evidence to the contrary. And as for Itanium… well, at least Intel won’t have to worry about the special version of Montecito to work with SGI’s NUMA.
(And yes, I realize that “Chapter 11” is not the same as “defunct”. But in this case….)

Great Hackers

Check out this essay by Paul Graham. Sample:

It’s pretty easy to say what kinds of problems are not interesting: those where instead of solving a few big, clear, problems, you have to solve a lot of nasty little ones. One of the worst kinds of projects is writing an interface to a piece of software that’s full of bugs. Another is when you have to customize something for an individual client’s complex and ill-defined needs. To hackers these kinds of projects are the death of a thousand cuts.
The distinguishing feature of nasty little problems is that you don’t learn anything from them. Writing a compiler is interesting because it teaches you what a compiler is. But writing an interface to a buggy piece of software doesn’t teach you anything, because the bugs are random. So it’s not just fastidiousness that makes good hackers avoid nasty little problems. It’s more a question of self-preservation. Working on nasty little problems makes you stupid. Good hackers avoid it for the same reason models avoid cheeseburgers.

Another argument for open source

This is strangely reminiscent of the arguments about Microsoft’s EULA, isn’t it?

Britain threatened the United States yesterday that it will cancel its £12 billion order for the new Joint Strike Fighter unless America agrees to give the Armed Forces full access to the warplane’s critical computer codes.
[…]
Without full access to computer software, the next-generation aircraft would effectively remain under the control of the Americans and could be “switched off” without warning.

AppleCare comes through

One nice thing about AppleCare is that you can track the the whole process on the web. My PowerBook with the broken latch was shipped to Texas (why Texas?) on Thursday night, repaired late Friday evening, and shipped back to Chestnut Hill, MA on Saturday. As soon as DHL reported that it had been delivered, I headed over to the Apple store to pick it up. “Did we call you?” the “Genius” asked? “No, DHL IM’d me,” I replied, confusing him mightily.
From the paperwork, it seems that Apple replaced the latch, the bottom casing, and the speakers. And from running last I could see that the technician booted it up at around 11pm on Friday night, logged in to the test account that I’d created, and logged out 3 minutes later.

Computer museum pics

This lunchtime I visited the Computer History Museum in Mountain View. It’s the first time I’ve visited it since it opened here. The Computer Museum started out in “The Mill” at Digital, then moved to Museum Wharf in Boston, next to the Children’s Museum. Eventually it was absorbed by the Museum of Science in Boston, and most of the significant artifacts were transferred to the Computer History Museum. However I still think of it all as “Computer Museum 1.0” and “Computer Museum 2.0”, and I’m sure I’m not alone.
I’ve posted a set of pictures that I took, mostly of stuff that has some relevance to my 38-odd years in the business.

On our inability to use Java to separate the sheep from the goats

Kate just drew my attention to a wonderful rant over at Joel on Software

When I started interviewing programmers in 1991, I would generally let them use any language they wanted to solve the coding problems I gave them. 99% of the time, they chose C.

And the problem with this is…?

[W]hat I’d like to claim is that Java is not, generally, a hard enough programming language that it can be used to discriminate between great programmers and mediocre programmers. It may be a fine language to work in, but that’s not today’s topic.

Essential reading, complete with Monty Python references and a picture of a card punch.