VMWare critical licensing bug

According to Matthew Marlowe’s Blog, VMWare instances running ESX 3.5U2 in enterprise configurations have a license management bug that will prevent them from starting, beginning tomorrow.

The post has turned into a list of pretty helpful tips, including:

While the licensing bug does not appear to be related to security issues, this is a pretty good reminder of how mission critical hypervisor software is. It should be held to the same standards as operating systems.

Upcoming: Business of Software 2008 in Boston

I was about to delete an email from Bob Cramblitt on my old blog, until I actually read it and realized it was relevant to at least some of my readers:

Hi Tim:

Thought you’d like to know that Seth Godin, Joel Spolsky, Jason Fried and others are coming to Boston for the Business of Software 2008 conference.  This is the only conference run by people who actually manage successful software companies.  All substance, no BS and not a Web 2.0 to be found.

Your blog readers can get $100 off registration by entering “MASS” when registering at www.businessofsoftware.org.

So there you go. Never let it be said that reading my blog got you nowhere. (Disclaimer: this was my only contact with Bob Cramblitt and I’m not getting anything for posting this.)

WordPress for iPhone

I’m writing this post with the released WordPress client for the iPhone. It’s simple to use. Enter the URL for your WP blog (self hosted or on wordpress.org), a valid username and password, and the app connects to your blog and configures itself.

As you can see below, not only does the client support categories and tags, but photos as well. You can either incorporate an existing photo from your library or take a photo from within the app.

Concerns:

  • the text editor doesn’t provide any shortcuts for markup, so even creating a simple list is pretty arduous
  • the app only prompts for a password once–convenient, but a security risk. If you lose your iPhone, your blog is compromised.

Overall, though, a killer 1.0 and a good way to really mobilize blogging. I look forward to giving the app a proper shakedown next week at Tanglewood.

Update: Okay, there are a few other bugs to shake out:

  • The UI for actually posting a post is a little non-intuitive. Rather than a big Publish button, you have to change the status of the post to Published, then save the post. This is probably so that you don’t hit the button with your thumb by mistake, but it’s still a little annoying.
  • The publish process seems buggy. My post at first failed to publish–the app crashed–then published, without sending its image. To attach the screen capture, I resorted to emailing the photo to Flickr, then adding the URL to the post. Not trivial, and without copy and paste impossible to tie the photo back to the post without going to the computer.

The photo thing is annoying. The crashes on posting are a big big problem.

Nokia + open source Symbian: too little, too late

TechCrunch: Nokia Acquires Symbian – Goes 3. Hear that sound? That’s the sound of Fake Steve Jobs just itching to skewer somebody, but since he’s on vacation I’ll do it instead.

Make no mistake: this is a defensive move by Nokia in response to the iPhone and Android, not an offensive one. Five years ago, an open source OS for smartphones might really have made the market. Now Nokia’s not even calling the tune any more: with Motorola, Samsung and LG eating them away on the low end, and RIM, the Windows Mobile folks, and Apple eating them away on the high end, pretty soon there’s not going to be much left in the middle.

I enjoyed the Symbian phone that I used from 2003 to 2005, but Symbian didn’t move quickly enough with the OS and it became stale. It doesn’t smell any better now. When you have unnamed senior execs inside Nokia calling Symbian a POS, you’ve got problems.

And what about units? Those 291 million handsets you sold in Q1? They’re legacy products. Apple sold 6 million in the iPhone’s first year as a brand new market entrant even without the benefit of enterprise mail integration or independent developers. Now granted, you can sit fat and happy on your 291 million units shipped, or you can reflect on the fact that you shipped 100 million of them in the last 18 months, and the other 100 million are in all likelihood no longer in use since your European customer base replaces its phones every 12 to 25 months, and the US customer base every 17.6. Is your market really still growing, or did you just sell replacement Symbian handsets to your existing customers?

And I haven’t even talked about Android yet–it’s probably a trainwreck, but it’s from Google so it’s going to exert some market pressure on you too.

And your developers are talking crap about the OS, too. And I can’t blame them. Which would you rather write apps for: an OS that’s forked three ways, requires you to use a crippled version of C++ with weird string handling practices and proprietary error handling, and needs a downlevel version of Visual Studio, all of a sudden the iPhone’s development frameworks and XCode look like nirvana.

So, guys: if your competition is a competitor who’s locked up the enterprise and a user centric market innovator, I’m afraid that open sourcing the OS (the POS OS) is not going to save the company. Maybe if there were already a bunch of really talented individual developers working on creating a great mobile experience, but guess what? They’re on Apple’s platform now, not yours.

Greatest hits, revisited: Whither SOAP?

I’ve been doing a bit of clean up on some of the early days of my site. Back then, I used Manila’s “story” feature (akin to WordPress pages), and a bit of code that allowed you to edit the front page of the site every day, flipping the old version back into the archives automatically when the new version was published. Over time I transitioned to using the “news items” feature of Manila extensively (what WordPress and just about every other blogging platform calls “posts”). When we did the WordPress conversion, some of my stories were translated into posts and others into pages. So I’ve been going through and changing a few over to posts and backdating them so that you can navigate the site with the calendar. The work isn’t done, but you can go back and read Esta’s protoblog now, and the Mothman’s trail report (or you will be able to as soon as I fix a bug with the path names).

Along the way I turned up some of my early “greatest hits,” those things I wrote that got a lot of people reading the blog and pointing to me, and that encouraged me to keep going. The earliest greatest hit was a piece unfortunately titled Apple: How to bury an important announcement, in which I critiqued Steve Jobs’ July 2001 MacWorld keynote address for talking about new iMacs rather than talking about the upcoming Mac OS X 10.1’s support for the low level protocols (SOAP and XML-RPC) that enable web services.

At the time I said that the unheralded announcement was significant because web services represented a significant evolution of the Internet, as significant as HTML; I said “XML-RPC describes how to allow different computer programs to talk to each other across the Internet.” I said that Microsoft with .NET (and Hailstorm! Remember Hailstorm?) was making a bet that web services were where applications were going, and that Steve was coming on board with that shared vision.

Was I right? From almost seven years later, I’d say it’s a mixed bag. The vision for web services was kind of originally the “cloud computing” vision–you’d have a rich client on your desktop that hooked up to complex software on the Internet using web services. What’s interesting is that while that has certainly happened — look at MarsEdit or other desktop blog editors, or the rich client that I helped ship while at iET Solutions — the real value proposition for web services has been in two areas: integration and mashups. Kind of two sides of the same coin but with very different audiences.

Integration is the business face of getting two computer systems to talk to each other. Think hooking SalesForce into your financial system, or into your ticketing system. Then imagine doing it if you had to consume a SalesForce COM object. Not gonna happen, right? The use of web service APIs to allow hooking systems like SalesForce together with other corporate systems has weakened the case that you used to hear, that your software must be sufficient unto itself because the cost of building and maintaining integrations was so high. It’s also, in an interesting way, increased the adoption of SOA and applications that live off premise. I don’t think you’d see such a high adoption of SalesForce if it couldn’t integrate quickly and easily.

Mashups is the name you use when you’re trying to be cute about doing integration with “consumer” data, or the stuff that you and I use every day. The interesting thing about mashups is that they enable easy connections between web applications–cloud-to-cloud connections, in the earlier analogies. So del.icio.us can automatically post things to my blog; everyone and his brother can get images from Flickr; and your latest Ajaxy website can go from start to finish without requiring you to do a single HTTP refresh.

Of course, mashups vs integrations is an artificial distinction. There’s no technical difference (aside from a bunch of WS* crap in the headers) between the SOAP spoken by WordPress and by SalesForce. It’s just angle brackets. People spend a lot of time positioning mashups as “situational applications” to be done by the unwashed masses, but I think the biggest difference between mashups and “integrations” is intended audience and permanence, nothing more.

With that in mind, we should be at the beginning of what can be done with web services. And that SOAP and XML-RPC layer in the Mac OS should be getting a real workout.

Integrating Rally with Trac

My company uses Trac as a ticketing engine and wiki and Rally for requirements management. We’ve been investigating ways to combine the two. (Of course, Rally has its own defect tracking system, but Trac is pretty well entrenched and integrates with our source repository.)

Rally provides a pretty well defined REST-based API, and much of their integrations are built using the RallyRESTAPI Ruby gem. So I went hunting for something comparable for the Trac side. It looks like Rtrac might be the way to go. One challenge is that the Rtrac documentation is scanty and it’s not clear how one might do an arbitrary ticket query (say, all tickets saved since a certain date). But we should be able to use some of the existing Rally integration examples to proceed.

Program to live vs. live to program: early hacker critique

Happy Good Friday! In honor of the day when history turned upside down, here’s a keen little insight from the late Joseph Weizenbaum (via helmintholog, via Scott Rosenberg): some programmers are compulsive programmers who, in taking a purely software-centric approach to solving problems, set themselves up for failure and take the organizations in which they work hostage. Weizenbaum cites some nifty examples of this, such as the programmer who can’t be bothered to write documentation for his mission critical hacks.

Weizenbaum goes on to cast this critique of hacker culture—the concept that everything can be explained by the computer, and that no external skills are needed—in the context of scientism, the belief that science alone, without external belief systems or other human considerations, is sufficient to explain everything about the world around us.

I may have to go and dig up a copy of the book. It sounds like a thought provoking read along the lines of Winner’s The Whale and the Reactor.

XSLT resources, take 2

Following up on my earlier post about XSLT: I am drawing near the end of the first stage of my project and wanted to update my notes.

One thing I learned is that XSLT is far from dead. There was a 2.0 version of the standard released a while back that fleshed out some of the capabilities of the language, and much of the contents of XSLT have sunk seamlessly into other frameworks. The nice thing about XSLT is that it is a very compact yet flexible technology that is easy to learn the fundamentals; the reason that so many of the resources about it are older is that there simply aren’t that many lingering questions in working with XSLT that are generating ongoing discussions. It just works.

The two best resources for this project were a pair of O’Reilly books, Learning XSLT and the XSLT 1.0 Pocket Reference. I read the former over a couple of plane trips on Friday, and by Saturday night I was happily hacking away at the task that I was trying to do.

I had a couple of learning experiences with XSLT along the way, and learned two techniques that I think are worth sharing and were not documented in the O’Reilly books (though they may be elsewhere).

The first was in reordering nodes in the XML document. I had a few nested (level two) elements in my document for which I needed to take their contents (level three elements) and move them up a level in the document. But I couldn’t figure out how to do it without breaking the DTD. I finally realized that I could process any node and place it anywhere in the target set by being specific in my call to <xsl:apply-templates> and always using a select, rather than simply letting the stylesheet process the nodes in the order that they occur in the parent document. I will try to hack up a sample transform to illustrate what I’m talking about.

The second dealt with batch processing at the command line. Microsoft’s msxsl.exe is a nice, lightweight, fast transformation engine that can be called from a DOS prompt. Unfortunately, it does not accept wild cards for input, so you have to call it explicitly with each file to be transformed. A useful sample solution I found for XSLT batch processing using msxsl uses a VBScript in the Windows Scripting Host to enumerate the files in a source directory and calls msxsl in a loop to process them. The only problem is that the method used opens and closes a command window for each file being transformed, which is distracting and may hurt performance. I will continue to look for better methods, but for my project today this VBscript did the trick.

Certification for Product Managers?

I suppose it’s indicative of my circuitous route to product management (through software development, consulting, and business development) that I was unaware that there is a professional certification for product managers through the Product Development and Management Association. If any of my product manager friends are reading this, I’m curious about the value of the certification. When I was doing my job search, I don’t remember anyone ever asking about NPDP.

Products: what’s in a name?

Great post on the Product Marketing Blog at Pragmatic Marketing about product naming. (Aside: Steve Johnson surely practices what he preaches: a good solid descriptive blog name for the B2B audience. But is it memorable?) As a company whose name violates the “letter name” rule, I’ll add another caution to the letter name issue: not only are there memorability issues, but phrases like “intelligent enterprise technology” don’t work that well in acronyms because they put two vowels next to each other. I can’t count the number of times that I’ve heard someone call us “IT Solutions” because they don’t hear the E.

Speaking of our company, I”d be curious to get people’s impressions of our new corporate website.

Choices reduce satisfaction…

screenshot of windows vista showing all the shutdown options, courtesy joel on software

Joel Spolsky writes an interesting perspective about how introducing choices in a software interface can make the UI worse. He uses the example of the new Shutdown UI in Windows Vista, and points out that there are seven states of Shutdown (Switch User, Log Off, Lock, Restart, Sleep, Hibernate, and Shut Down) that are exposed to the user, together with two shortcut icons, at least one of which has indeterminate meaning.

The scary part is that I have been doing software engineering for so long that I would be among the chorus of voices asking for separate Sleep and Hibernate options. The issue of choice vs. simplification is not a trivial distinction. Every engineer and product manager thinks giving more choice to the user is great, and every one of them is saying under his breath, “Because it means I don’t have to guess what the user is really going to do, and therefore I can pass the complexity on to the user.” This is busted behavior.

In defense of the Vista team, and I do (I hope) still have friends there, the implementation pictured here is better than the current implementation in XP, where to Restart, Lock, or Sleep you first press a button on the Start menu labeled Shut Down. But Joel’s point remains: unless you fix the underlying confusion in the user interaction model, cleaning up the menus is like rearranging deck chairs on the Titanic.

This is one area where the Mac doesn’t do a better job, by the way, but at least all the menu options are easily accessible, and the default sleep/wake behavior is much more intelligently implemented than on a PC. (My MacBook Pro can sleep overnight without a problem, while my Dell will drain its battery if I put it to sleep with a full charge.)

Thanks to the Product Marketing blog for the link.

Tis a gift to be simple, tis a gift to … write code?

Hooblogger Luke Melia shared this Shaker proverb that has applicability to software:

If it is not useful or necessary, free yourself from imagining that you need to make it.

If it is useful and necessary, free yourself from imagining that you need to enhance it by adding what is not an integral part of its usefulness or necessity.

If it is both useful and necessary and you can recognize and eliminate what is not essential, then go ahead and make it as beautifully as you can.

— Shaker saying (Shaker Built: The Form and Function of Shaker Architecture (This origin is dubious)

I’d love to get the actual origin of this, but it’s starting to get some circulation in the software community.

Will there be karaoke?

One of the fun things about working in the software industry is that occasionally you run across some really creative marketing approaches. One company in our space is Pink Elephant, an IT consultancy based in Canada that has really helped to educate the IT market in North America about the importance of process-driven IT management and about the ITIL standard in particular. Their name is great: memorable, with a faintly boozy overtone… just like their conferences.

Which is why I was amused to get a flier for their annual IT Service Management Conference and Exhibition, occurring next February in Las Vegas. The theme? (Leadership, Optimization, Validation, and Excitement). As if that weren’t enough, all the tracks have Beatles song titles in the name (e.g. “You Never Give Me Your Money: ROI and the Financial Realities of ITIL”).

Which brings up two questions:

  1. How long before Apple Corps (or the current Lennon/McCartney song catalog owner) sues Pink for unauthorized use of their copyrighted materials?
  2. Will there be karaoke? Cause I sing a mean “Got to Get You Into My Life.”

XPM?

Interesting article over at Pragmatic Marketing on Extreme Product Management. The question that I’ve heard from some people, including former product managers, is how relevant product management is in an “agile” environment where people’s tastes (and the competitive landscape) appear to be changing daily. This article outlines some points of conflict between product management and agile development organizations that I’ve experienced.

A particularly painful challenge is this one: “My developers want me available every minute of the day to answer their questions. I have no time to visit customers.” The product manager’s role is to be in the middle of a bunch of different constituencies, but sales and engineering are the two primary ones for most product managers and it can be too easy to get into a situation where the product manager, in trying to expend effort for both constituencies, ends up satisfying neither. The paper’s concrete recommendation for this challenge, to provide market context through documentation and/or presentations to the team, is an interesting one; the rest of the recommendations are also interesting and worth exploring.