Saturday, June 30, 2007

Managing Humans

Interesting sounding book, Managing Humans:
This book isn't just about management, it's about creating places where people can comfortably build stuff. It's about what to do during the first ninety days of your new gig, and explains why you should pick a fight, because bright people often yell at each other.
No kidding. JPL was something of a technically hostile environment. I think because a lot of the people were smart, and those people often tended to be passionate too.

Eighty percent (or less)

The people who work with me get really tired of proposals that we build initial versions of our tools with as few features as possible. My default position is that it is better to ship something that doesn't have all the desired features than to ship a more full featured something later. Or worse, ship nothing at all.

Here's the deal. There is always a reason not to release your product. The worst is the mythical missing features. These are the features that will cause your customers to refuse to use the tool. They can't live without it. They won't use it. You'll be wasting your time releasing it.

Take the new off-line features of Google Reader for example. I looked forward to using it while traveling, but was sure it would be deficient because I knew I wouldn't be able to chase links or see embedded images within the Reader. I gave it a try anyway, and found the ability to plow through several hundred items while at 38,000 feet to be extremely useful.

Prioritize your features carefully. Implement them well. Shut up and ship.


Guy Kawasaki posts a great Q&A with Scott Berkun, author of The Myths of Innovation.
I teach a creative thinking course at the University of Washington, and the foundation is that ideas are combinations of other ideas. People who earn the label “creative” are really just people who come up with more combinations of ideas, find interesting ones faster, and are willing to try them out. The problem is most schools and organizations train us out of the habits.
Not only is this a problem with schools that train us out of these habits, but also Corporate engineering cultures that smother it to death. How many engineering organizations have a procedure for "trying out a new idea" or "doing something innovative"? Is there a form for that?

In a company with a primarily manufacturing focus, innovation is discouraged because change is seen as a threat to the consistency and stability of production. The objective of a manufacturing centric culture is to produce exactly the same thing in exactly the same way, every time. Change is dangerous, and thus only facilitated through bureaucracy that purposefully makes it difficult, and slows down innovation.

In an earlier post, Joel Spolsky pointed out something I found interesting:
Don't be smug because you think that conglomerates went the way of the dodo. "Conglomerate" is just an old word for what you call "Yahoo, Microsoft, and Google."
It's true. Google and Microsoft really are the modern day multinational conglomerate. But what's different about Google that is providing it the opportunity to kick ass right now? It's culture encourages innovation, rather than stifling it.

A manufacturing culture puts up a barrier to getting new products out the door--resistance to change in production. Even a software culture like Microsoft can smother innovation with bureaucratic project initiation and product management practices.

Google takes a shotgun approach to innovation--try everything and see what wins. Whereas a culture like Apples is probably much more selective, yet seems to strike a balance that allows it to innovate on a few products and focus well.

CSI for Geeks

History Detectives is one of my favorite shows. The PBS series examines various antiques and documents the verification of their history. This show ties objects and history to human stories better than anything I've seen. It literally "brings history to life."

I was disappointed when it seemed to disappear from our local PBS station's lineup. Now I see that it's available on iTunes!


It's nice that customer still appreciate quality in the stuff we do. From this NY Times article:
“If Apple made sliced bread, yeah, I’d buy it.” said Andrew Kaputsa, who waited outside the Michigan Avenue Apple store in Chicago. “It’s just good stuff. Everything they touch.”
Apple has established itself as the Porsche of computers. Yet they enjoy the Moore's Law-ish effect of constantly declining costs. It's as if Porsche continued to build top quality luxury sports cars, yet sold them for $30k.

Friday, June 29, 2007

User Friendly

Via Projectionist:
"The user-friendly computer is a red herring. The user-friendliness of a book just makes it easier to turn pages. There’s nothing user-friendly about learning to read."

Alan Kay

Thursday, June 28, 2007

Guy and I

Guy and I are on the same page. Earlier I implied that getting in bed with AT&T is a big risk for Apple in this iPhone adventure. Now Guy Kawasaki dives into more detail.

Personally, I will be reviewing the iPhone when I get my hands on one. By hand I mean a one-fingered touch through the crowd of people huddled around some guy who has the first one that shows up near my work or home.

Monday, June 25, 2007

Rails in Javascript?

I don't even know if the question makes sense. If this report that Google's ported Rails to Javascript is true, this could be very interesting..
In an effort to increase developer productivity at Google, Steve tried to convince the company to adopt Rails (and consequently Ruby) as a programming language. When that fell on deaf ears (Google really does not want to increase the number of languages that must be supported by their infrastructure), Steve decided to do what any other frustrated programmer would do: he ported Rails to JavaScript. Line by line.

Nokia 770 - iPhone without the Phone

The Nokia 770 is on sale today only on woot for 129. Not a phone (like the iPhone), but a small, portable web browsing device none the less. This is a significant percentage of the price of a *real* phone in the iPhone (assuming it's phone service works--we've never actually *seen* anybody use it to make a call). Worth the price? Doubtful in this changing age.

Sunday, June 24, 2007


This is amazing. We've come a long way from the day a start-up would have to spend millions to get this kind of infrastructure. The big J2EE vendors should go look for another business.
WhatSize will summarize your disk usage on your (Machintosh) disk in such a way you can quickly zoom in on the biggest offenders and get rid of that stuff you don't really need that's taking up all your disk space. This is very useful if (for example) you've had your new MBP for a few months now, and are finally starting to get low on disk space.

WhatSize is marvelous. In my case, I was able to quickly identify the source of many GB of disk usage on my disk--my trash folder. (Not to self, remember to empty the trash every once in a while).


I have a pretty good recipe for BBQ tri-tip. The trick is in the marinade, combined with the technique that combines grilling and roasting (in foil).

Any healthy human male should have the following basic materials available before attempting to BBQ anything:
  • A BBQ. A charcoal BBQ is preferred. If you'd like to take the easy way out, I guess a gas grill will do as well.
  • A grilling glove. I use an old leather glove with a duct taped thumb. For many many years I suffered without the glove. I would try to quickly turn and position things on the grill before my knuckles received second degree burns. Now I can take my time and position stuff with the care it deserves.
  • A chimney starter. The most "high tech" weapon in my BBQ arsenal and definitely worth the money. No more false starts. Always a good start every time. Most important I can work backwards from the time I'd like to serve and know exactly when I need to start.
  • Medium length BBQ tongs. Too long is hard to manage, too short and one risks burning oneself. Use the glove. ;-)
To prepare the tri-tip, you'll need the following:
  • One medium sized tri-tip roast. Untrimmed.
  • Pappy's BBQ rub seasoning. Or the rub of your choice.
  • Bottle red wine. The darker the better. I like an el-cheapo Merlot or Cabernet Sauvignon.
  • Bottle worchestershire sauce
  • 2 Bottles (or cans) el-cheapo beer
  • Large zip-loc freezer bag
  • Aluminum foil.
Poor about 1/2 cup beer and 1/2 cup wine into freezer bag. Poor in about 1/4 cup worchestershire sauce. Mix in 2 tablespoons Pappy's rub. If you're not using a rub, use liberal amounts of salt, black pepper, a clove of crushed garlic and a chopped onion. Drop in the roast. Squeeze out the air and seal the bag. Drink the other beer. Let marinade for anywhere from 2 hours (unrefrigerated) to 5 days (refrigerated). Pat dry before BBQ.


Bring the BBQ to a scorching 450 degrees. Apply the tri-tip directly over the heart of the coals. Burn it fat side first. Cover and let it rip until it catches fire or 10 minutes--whichever comes first. Don't worry about burning the fat--it's going to be trimmed off before serving anyway. Turn and grill the other side for another 10 minutes. Move the meat a couple of times for approriate grill marks if you'd like. But err on the side of leaving the meat alone, covered, rather than messing with it every few minutes.

At this point the meat is receiving most of the "BBQ" flavor it will have. If you'd like a smokey, BBQ char, go ahead and move the meat off the center of the heat and let it cook for another ten minutes or more. The trade off here is going to be tenderness and juiciness. The more you grill the meat naked rather than roasting it in the foil, the more it'll dry out. If you wrap it up too early, you're going to get a pale roast (and you might as well be using an oven).

When ready, prepare three or four extra long sheets of aluminum foil next to the grill. Take off the tri-tip and position at one end of the foil. Sprinkle another tablespoon or so of Pappy's on the top of the tri-tip and some on the foil. Wrap the tri-tip tightly in the foil. Ideally, you will end up with a water tight seal around the meat. Use lots of foil. Replace the tri-tip on the grill well to the side of the heat.

Continue to roast the tri tip for another 15-20 minutes per side. This is usually when I grill whatever vegetables my wife insists on, or grill additional meat such as chicken or sausages. Of course, the trick to good grilling is to leave the lid closed as much as possible. I fret most over the positioning of things in relation to the heat such that I can leave the lid close as long as possible without (say) a chicken leg catching fire.

Pull the meat off and let it rest for 15-20 minutes before cutting it. Our last BBQ featured the tri-tip, sausages, grilled corn, baked potato, and fried zucchini all followed by homemade ice cream. It was a feast.

Friday, June 22, 2007


You have no idea how many times I've considered this subject. Just about every time I'm in a grocery store. As a good computer science student, I've known since I was a beer swilling 20-something that a single queue and multiple processors was the optimum configuration for any service.

I've noticed over the last 20 years that banks have got the message. But grocery stores haven't. I've assumed the accountants in the back of the GroceryMarts have considered the possibility, studied it carefully, then concluded that the grocery cart is too cumbersome to navigate through a single queue that snakes through the front of the store to a battery of checkout stands to service them. These wise characters then went back to counting their money--resting assured that the current one-queue-to-one-checker is the optimal arrangement.

I guess I've been right, and they've been wrong all along. Damned I'm pissed.


I have a soft spot in my heart for enterprise messaging middleware. The concept has held so much potential for so many years--and never gained the commodity traction it deserves.

AMQP sounds like it shows promise in this ACM Queue article. To cut straight to the chase, go to page 3, "implementations" and see the reference implementation and other pointers.

iPhone? No pressure

AT&T adds 2,000 staff for iPhone launch. Apple Newton? Fogitaboutit! Risky new interface with glass face? No worries! $500 price point? Who cares? Getting in bed with a company like AT&T to dilute the customer experience? It'll work! They're going to fly off the shelves (we hope).

Thursday, June 21, 2007

How to draw Dilbert?

...the way you'd expect, directly on your computer. Scott Adams has a pictorial diary of how he goes about his daily work.

Big Ass Table

Wednesday, June 20, 2007


Something to keep one's eye on is Mingle, which I suspect will attempt to aggregate aspects of Agile/Lean methods into a dashboard/project management tool.

The way people work

I saw this bit in an article recently:
Agile is all about People over Process and you need tools which fit the way people want to work.
I'd like to think this is a good general principle for Engineering, not just Agile. That being said, I think there's a balance to be struck between policy/process, and chaos. The goal is to find a good functional model that fits the way people work, then canonize a process, and evolve it over time as situations change. In that context, Agility comes from a willingness to change.

Sunday, June 17, 2007

IBM to acquire Telelogic

I've used Telelogic's stuff and it sucks. With the exception of Doors, the products in Telelogic's suite are awful. Possibly IBM is buying Telelogic exclusively for Doors and will junk the rest.

Saturday, June 16, 2007


The boys and I went to the mountains today and had a great time. I had a chance to use 4WD Low, and put some new "pin striping" on the side of the truck. We achieved our objective of finding a couple of new camping spots off the beaten path. The boys found a ladybug colony and wading around the creek looking for newts.

Wednesday, June 13, 2007

Windows on the Mac

awk 'sub("$", "\r")' < readme > readme.txt

This is the old "Windows text file on a Unix box" trick. Which ironically, uses awk (which predates Windows) to convert a text file with Unix line feeds to something friendlier for Windows. (Note that the inverse is tr -d '\15\32' which is what I am most accustomed to from decades of unix, but alas tr doesn't go both ways)

All this comes to mind because I recently captured some output from MySQL via my OSX terminal, and prepared a text file to send to somebody. The recipient was one of the unwashed Windows masses, who complained about the linefeeds ("It doesn't look right" he whines).

I have Parallels, so I drag and drop the text file into a Parallels shared folder I have set up between Parallels and OSX. In one (Terminal) window I fix the file, in the other (Parallels) window I double click on the file to make sure it renders correctly in the Windows world. I feel very elegant and regal doing this--even though I'm actually using Windows--which is something I'm trying to swear off, but feel somewhat justified about because it's happening in a virtual machine. Kind of like how I enjoy the sharp blues of 3270--but only in an emulator.

As an aside, I finally found something that doesn't run on Parallels. Some of our own (from a third party vendor) applications crash when attempting to run within the VM (I suspect they'd fail in any VM context). They're probably making assumptions about video drivers or using some long deprecated Win32 calls? Even the equivalent "Web Client" fails because it's really just a thin wrapper for a big fat CAB file that uses the same poorly behaved code (He says while shaking his fist in the general direction of Redmond).

Growl Gmail Notifications

So I'm using Google Notifier and am annoyed at the way its pop up works. Basically, new email notifications appear in the popup, then linger for way too long. More than once I've found myself sitting there waiting for the notifier pop-up to go away so I could continue working with something immediately under the notification!

I just recently dialed in Growl (for other apps--like IM) notifications to be small and short. So naturally I wondered why Google Notifier doesn't use Growl. Turns out that it used to in an earlier version (Gmail Notifier), but for some reason that support was dropped.

Well, third party, plug-in architecture to the rescue. Gmail+Growl for Google Notifier is an application extension that fixes up Google Notifier to use Growl for notifications. Very painless to install, and it "does the right thing."

Tuesday, June 12, 2007

Local junk to play around with

Monday, June 11, 2007

Why can't I haggle with Amazon?

It just dawned on me today that Amazon would get more of my business if I could haggle with the system.

The capability would be simple enough to implement. Amazon knows how much it paid for something, and should be able to have a good understanding of the going price for the same item at other on-line retailers. Amazon should know what a good price is for a given item, what's currently selling well (which doesn't require cost reduction), and how low it can go on a given item and still preserve a target profit margin.

No doubt Amazon considers factors like these in setting their prices.

But Amazon is also careful to keep track of your browsing habits on its site. So, before you browse away from an item you've been researching, shouldn't the system be smart enough to calculate the probability that they're about to lose this sale, and ask "how much would you pay for this item to purchase it today?" (to borrow a phrase from the car salesman's trade).

Of course, Amazon doesn't have to accept my offer. But once I'm engaged in the conversation, I'm less likely to walk away from it--and Amazon enjoys the benefit of exploiting my emotions while it remains cold and objective during the negotiations.

I'd also like to be able to suggest that I'd buy a certain item if they'd wave shipping or otherwise reduce the price to nullify the shipping cost. I often shop for heavy tools on Amazon. Often I'm encouraged to buy through them because they sometimes offer free shipping. If the cost is similar to that at Home Depot, and I don't have to pay shipping, I'll usually purchase through Amazon.

Sunday, June 10, 2007

Ben's Recital

Ben makes his world premier this afternoon. :)

"It kind of itches.."

These are great:

Remote Buddy

Kind of cool for you Mac heads that also do presentations. Remote Buddy lets you control lots of different apps and even use the remote as a sort of laser pointer for your mac.

Saturday, June 09, 2007

Kind of like DTrace for Ruby


Note to self, get somebody at work to do a Friday tech talk on video compression and codecs.

Thursday, June 07, 2007

Google Visa

One of my best guys, Angadpreet, may have trouble with his visa status due to the limits set forth on immigration by our country. It drives me nuts.

Here's Googles take on the situation.

Team Problem Solving

James links to a great article on problem solving within a team.

In my bag of management Jedi mind tricks, I refer to reason #1 as "ownership." There's a bunch of ways to get people on board with an approach--most of which involve getting them to take ownership of the idea. In some cases one takes one's own idea X and says "we need to do X" or "we're responsible for X, let's do it." We is the key word here, and for this statement to impart any sense of ownership the leader must already have established oneself as a member of the team rather than as an outsider manipulating the team. This implies ownership by the team, but is still open for debate as to weather it's the best thing to do at the time.

Another approach is to solicit discussion and attempt to guide the group into idea X via suggestion. You state the problem, then listen to ideas, then say "what if we did X?" This is a much stronger technique than simply stating that X is a good approach because the team has a chance to participate in the problem solving process.

The strongest approach, as per this article, is to let the group solve the problem themselves. In which case ownership is a given.

Getting people enrolled in an idea is important. When a team doesn't have a sense of ownership over their work they're resentful, unmotivated, and perform poorly.

Saturday, June 02, 2007

Google AI

Not so much the topic of Google AI that's interesting to me, but rather I got a good chuckle out of the quote:
There has been some talk about whether Google has a top-secret project aimed at building a thinking machine. Well, I’ll tell you what happened. Larry Page came to me and said “Peter, I’ve been hearing a lot about this Strong AI stuff. Shouldn’t we be doing something in that direction?” So I said, okay. I went back to my desk and logged into our project management software. I had to write some scripts to modify it because it didn’t go far enough into the future. But I modified it so that I could put, “Human-level intelligence” on the row of the planning spreadsheet corresponding to the year 2030. And, that wasn’t up there an hour before someone else added another item to the spreadsheet, time-stamped 90 days after that: “Human-level intelligence: Macintosh port”
I also infer that Google uses a simple yet useful home grown tool for project management. I can imagine that "somebody" being subscribed to an RSS feed for new projects. This reminds me of the simple yet increasingly useful tool that Emil's thrown together for project management here at Pelco.