Wednesday, November 29, 2006


It's not a big surprise anymore -- virtualization is coming and it's coming in a big way. What I don't think is nearly as appreciated is quite how fundamental of a shift this is going to become. The separation of resource to application is a huge change in how IT, especially in networking, works.

One of the more interesting elements of virtualization is the notion of a shared processor pool. Rather than having one CPU per application instance or per user, a pool of processors is made available. As a user needs to do something, their virtual machine is instantiated on an available processor. For example, if there is a shared pool of 10 CPUs in a company, a group can use them as necessary so that idle cycles don't go to waste. So if finance only really needs heavy CPUs at the end of the month, they can run their reports, use the CPUs, and then return them to the pool for others to use. Product development can then use these same CPUs during the day for heavy computational use. Since everyone's virtual machine is separated, there is no security concerns of engineers getting into finance servers, etc. If the 10 CPUs starts becoming thin, the pool can be expanded without changing how anyone works.

This concept has been best demonstrated in "lab management" software such as VMware Lab Manager. The traditional problem of machine hoarding so that other user's don't change configurations has been the root cause of significant server farms that largely sit idle because there are only so many testers doing so much at one time. The last time I was involved with creating a lab environment, we had 4-5 servers per-engineer. The heat and power consumption was off the charts and I know for a fact that most of the servers sat idle most of the time. A package like VMware Lab Manager would have reduced the total server count by a factor of 10 without sacrificing any of engineering's ability to work.

Virtualization... big fun on the horizon. :-)

Monday, November 20, 2006

Living in a Bubble

Bill Gates gave a mildly interesting interview over at the Merc yesterday. I say mildly interesting because most of the content is really a rehash of things that he's been talking about for a few years now. The interview Time did when he, Melinda, and Bono were chosen as Persons of the Year was much more interesting and complete.

None the less, it was a good reminder that we live in an incredible bubble of security, comfort, and safety that isn't shared with significant parts of the world. The two most memorable visits to India for me were back in 1986 and 1992 -- during both trips I saw first hand what poverty looked like. The following quote from Gates snapped that memory back:

Do [people] know what visceral leishmaniasis is, that it kills 300,000 people a year? The way (the news media) documents things like plane crashes . . . I don't understand why are they running those articles, because that's not the tragedy that happened that day; it's the ongoing set of diseases, some of which are unique to these tropical countries.

So as we get more awareness of these problems, we can draw on more of the world's IQ, particularly if we can highlight what's missing. If we can get people who understand nanotechnology or software or instrumentation to see these problems that the market alone might not draw them to, because these are not rich consumers, then we just dramatically increase the chance of a breakthrough.


Wednesday, November 15, 2006

Brute force can be better...

You have to understand something about me. I was one of those lucky kids that grew up with technology. I wanted a computer since I was 8. I got my first computer when I was 12. I was hacking assembler by the time I was 13 and C when I was 15. By the time I graduated high school I was fluent in BASIC, C, Pascal (of the Turbo variety), and three different types of assembler (6502, 6809, and 8086). I wrote a program that was part of a commercially sold product when I was 17. Ask my high school teachers -- I was more fluent in C than I was in written English. Technology, as far as I was concerned, was the answer to everything.

The media coverage of the recent election and a question that we needed to deal with at one of my customers made me recall the first time I realized that technology, for all of its wonders, does not always improve our lives.

My first job was doing "tech work" for a small medical billing VAR in Southern California. As a four person shop, "tech work" meant just about anything. There was days when I put together new systems and installed SCO Unix and days when I physically cleaned Wyse terminals. By the time I was 19 I had added custom billing reports (C, AWK, and SQL) as well as database conversions to my resume. Good times.

One of the first tasks that I was put to was database monitoring, the ugly task assigned to newbies. Each month, a few dozen faxes would come in with reports showing how big every table had become. The print outs were 132 column and about 50 tables per page. You had to look at past tables for the same doctor and figure out whether the growth rate of the database meant that a resizing needed to be scheduled. Old school databases -- tables were a fixed size and needed to be manually enlarged. Nothing quite says "Party time!" like calculating growth rates and manually resizing databases.

The task was tedious as hell. I tended to keep the work for Friday afternoons when I was getting antsy for the weekend, support volume was low, and there generally weren't other things that needed to be urgently dealt with. What immediately frustrated me about the whole thing was that I knew it could be automated -- we were looking at three months of historical data and extrapolating a rate of growth. Take the rate, add it to the current month and see if it crossed the 90% threshold for the table capacity. Throw in a few heuristics to deal with things like growth spikes on certain tables. For example, a spike in the billing line items combined with growth in the doctors table meant a new doctor joined the group full time. Translation: drop the three month average and go with the last month only.

The bottom line was that this process could be automated. It should be automated. Damnit, I hated doing this task so I would automate this.

Except for one silly problem.

There was no reliable way to transfer the table size report from the doctor's machines to me without a human faxing it. Many doctors hadn't moved to electronic billing yet and thus had no modem. We didn't have HIPAA at the time, but we were sensitive enough to appreciate that you were very careful with who saw what. Auto-dialing another computer and sending database reports was dangerous.

The conclusion I came to was that each computer would run the program and then tell the office manager when to call us. In a fit of excitement, I told the owner of the VAR. "Roxanne, I can automate the database table checking. Think of the time we'll save!" Roxanne thought about this for a minute and then insisted on asking questions. Questions like...

"How do you plan on getting these programs on everyone's computer?"
"How do you plan to test this?"
"How do you plan on sending updates when new versions of the software change the database?"
"How do you plan to support multiple versions of software that have different databases?"
"Who does the office manager call if there is a problem with the program?"
"How are you documenting this so other people in this office can answer questions?"
"Finally, how long is all of this going to take versus just getting the faxes once a month?"

Pesky... pesky... questions.

I went back to think about the answers. Each answer made me increasingly depressed and the final answer was the topper. There was no practical way that I could beat spending an hour or two a month to just brute force the solution. Even if we grew significantly and I got to do more interesting things, it was more likely that we'd just hire another lackey to do it.

I didn't appreciate the business lesson in there at the time, but I certainly appreciated the lesson in brute force. There are times when it's just faster, easier, and/or more reliable to do it by hand. Technology, it turned out, wasn't the answer to everything.

Wednesday, November 08, 2006

Yahoo Widgets

One of the fun things about getting a new computer is finding out what new features have been added into my staple tools. There have been a few little gems that have emerged from the usual suspects, but one of the more surprising has been Yahoo Widgets.

I was originally using Yahoo Widgets because it offered the least intrusive picture frame software that I could get on my desktop. This let me do the ObDad act of having a picture of the family on my desktop, without having to set the picture as my background. This is great as I find busy backgrounds to be tiresome on the eyes. Chalk it up to my time with monochrome screens in the 80s and my minimalist phase during college with FVWM. The Widgets based picture frame was perfect.

Now that I don't have Exchange to use, I've turned back to a lot of the Yahoo desktop tools for things like calendars, etc. Courtesy of Y! Widgets, there are some nice tools for making those apps visible on my desktop without having to keep a browser open all the time. One widget tells me when I have email, another gives me a dictionary, and a third displays my To Do list and calendar. Unfortunately, what was missing was something that would tell me whether I had new emails on my main mail server.

A quick poke around to see if something could pull up email counts over POP-SSL showed no hits. What I did stumble on was the developers guide. With small software on the mind, I started digging around -- anything interesting here that could be helpful with another challenge I was facing?

Turns out the answer is no on the challenge. However, Y! Widgets is remarkably simple to use. The whole thing is basically JavaScript, some XML for describing the UI, and an impressive list of events that can trigger actions. About 15 minutes of turning the first sample in the documentation into what I needed and I got my tool -- a widget that tells me how many unread emails are on my server. (Well, that and two minutes to get the server side piece. Details, details...)


Classic business tells us that we shouldn't find problems to match technology. Rather, we should let the problems define what the technology needs to be. But there's a small catch to that. Many times problems don't surface because we think that the solution's cost/benefit ratio is too far out of whack to justify the work. Keeping up with possible solutions to arbitrary problems is a great way to circle back and challenge the way you've looked at past solutions.

Anyone that has worked with enough customers has seen this. The customer rattles off their pain points, but they don't tell you everything because they think you can't solve certain problems. It takes a discussion about the solution and the possibilities before you can draw out really interesting opportunities. There's nothing quite like a discussion that starts with, "Wait... you can do that?"

Time to revisit some discussions... :-)

Sunday, November 05, 2006

Good Times, Come to Me Now...

The opening hook to "Reaper Repo" by 808 State ( is a great little sample... Good times come to me now... Good times come to me now... Throw that into a loop and use it to lead into "Everybody's Free" by Rozalla ( That's about where my head is now.

Well, that and thinking about COBRA payments.

Friday was my last day as a Citrix employee. It was a great three years that started as with NetScaler as a $10M company, grew to a $40M business, led to a $320M acquisition, and ended with having product line management ownership of all network security products. Not a bad run. During my time there I made a great number of friends that I hope to be able to work with again in the future. However, the time had come to take a stab at something new...

As of Monday, I have a few consulting gigs that I'm starting up. The work is a bit of a switch as the focus will be more around content creation for product marketing than product strategy. I'll be working on this approach for now as it affords me the luxury of trying out new things in well defined projects to start with. It also lets me spend some of my time looking into other opportunities outside of the immediate work. I expect the whole process to be quite a bit of fun. :-)

For more information about me as a consultant, take a look at my new billboard on the Internet: