Two of My Patents Emerge From the Labyrinth

I have about a zillion patent applications filed with the Patent Office on behalf of my employer, Citrix Systems, where I’m something of a network acceleration guru.

Patents are weird, especially the way other people do it. My goal is always to write up the idea just as clearly and completely as I can, which is the least-weird (weirdless?) way of doing it. An alternate school of thought is that the patent should be lawyered up to increase its protection even at the expense of clarity (or comprehensibility). That’s what happened to these two. Yet a third school is that the patent should be made incomprehensible on purpose, and even given a misleading title, so that only you know what it means. This theoretically gives you advantages in court, but I think it’s too clever by half.

Both patents (patent 1 patent 2 have to do with fancy compression techiques like we use for the Citrix WANScaler network accelerator. Which is very cool stuff if you’re into that sort of thing. I sure am.

Patents are a topsy-turvy world. They don’t give your invention any direct protection — there are no Patent Police — they basically are just a license to sue infringers. Getting a patent is also a strange process, something only the federal government could come up with. It took nearly two years for these applications to thread the maze, and that’s pretty quick! I have some applications that have been in the mill twice as long.

Also, frankly, just because an idea has been patented doesn’t mean it’s any good. Anybody who can cough up the filing fee and a lot of patience can get a worthless invention patented if it’s worthless in the right way. Me, I don’t see the point — in the topsy-turvy world of patents, coming up with a good invention is the easy part — but some people get a kick out of it.

Tech Docs Death March

One of the problems with doing user manuals as part of my day job (the WANScaler group at Citrix Systems) is that the scheduling is always so wacky. You can’t document the product precisely until it stops changing, and it doesn’t do that until the last minute. Then the documentation has to be done in a rush. Good thing I like a challenge! So I’m in a tremendous rush to get everything done for a big software release.

There are some specific techniques for making this work. The most important one is to be a bona fide expert on the product, so you already know what it does, why it does it, and why the customer should care. You can’t succeed at a last-minute rush if you’re faced with big knowledge gaps. You just need to catch up on what the last-minute changes do.

The other technique that works for me is to never write a partial draft of anything. I try to write production-worthy copy in a single pass. By not leaving any gaps or guesses in my work, I don’t have to keep track of them. Learn first, then write.

The beauty of this method is that it dovetails with the last-minute-ness that the schedule demands. I spend the early part of the project learning everything about it, testing it, lobbying for improvements, etc. When it’s time to write up the new features, my research is all done and I can simply emit the text and diagrams. Pretty spiffy.

Also, writing is hard. Getting into the zone is painful. Once you’re there, it’s fun, but you need to stay in the zone. So doing your writing in big chunks is less painful than the alternatives.

Use Randomness Right

When I was working with the game designers at Activision in the Eighties, it was a truism that most players don’t really like randomness. They want games to be predictable. If there has to be some randomness, users want it to behave like a shuffled deck of cards — you don’t know what card will come up next, but you can be sure that you won’t bet dealt the Ace of Spades twice in a row.

True randomness isn’t like that: true randomness is the equivalent of using a zillion decks and shuffling them after every hand. Sometimes you’ll get the Ace of Spades sixteen times in a row. It doesn’t happen very often, but it really gets your attention when it does! And not in a good way. As with poker, you tend to conclude that the dealer is cheating! At Activision, we treated this as a basic fact of human nature.

So I was surprised when, all these years later, both Apple and Pandora have gotten this wrong. For example, I’ve recently started using Pandora (http://pandora.com) as my Internet radio player. It has a spiffy thumbs-up/thumbs-down system, but it has no clue about how to repeat songs properly. It will take a song I like okay and then play it over and over across the next several hours, until I never want to hear it again, while ignoring a long list of other songs that I told it I like. It’s maddening. All they have to do is shuffle the playlist and deal it out one song at a time until they’ve all been played once. Then reshuffle.

This is what people expect, and what they want, across a whole range of options: playlists, meal plans, store specials, gambling — whatever. The concept can even be jiggered so that favorites show up more often in the rotation than non-favorites without straining the analogy. As far as I can tell, the only barrier to doing it right is that people haven’t learned what we all knew at Activision ages ago.

The Extended-Run UPS Trick

For those of you who know how to mess around safely with car batteries and other high-amperage/low-voltage applications, here’s an interesting one (please note the warning below!:

APC makes an extended-run UPS called the Smart-UPS XL, which supports external battery packs. The ones I have (Smart-UPS XL 1000) are a 24V system, which means that the internal batteries and the external battery packs are all 24V. The external battery packs and replacement batteries are expensive.

So when my batteries gave up the ghost, I wondered what would happen if I replaced the 20 amp-hour gel-cell batteries with 100 amp-hour RV batteries, which were cheaper in spite of having five times the capacity.

Using a battery connector from a spare/dead battery pack (you can also scavenge them from most dead APC batteries), I wired up two new RV batteries in series and plugged them into the expansion pack connector. Result? Greatly extended run time, as expected.

The batteries have been in use for five years now and have been slowly losing capacity. It’s about time to replace them. Five years is what I got from the APC batteries when the units were new. (By the way, this really does mean that an APC UPS will last more than ten years if you replace the batteries.)

Now, RV batteries are deep-cycle versions of car batteries, which means that they outgas hydrogen and need topping off, so use them in a well-ventilated area. Also, since they’re full of sulfuric acid, they are a little harsh on the surrounding area, as you know if you’ve ever looked at the area around the battery in an old car. Thirdly, gel cells use a slightly higher charging voltage than flooded-cell batteries, so water evaporates out of the battery faster than it should, and you need to top the cells off several times a year with distilled water.

All of these problems would be solved by using gel-cell batteries instead of the cheaper flooded-cell batteries. Good maintenance-free batteries would help but would not solve the problem.

I have also tried this trick on two Pacific Power Vanguard 1200 UPS systems, systems that I got for almost nothing years ago. Converting these was trickier because I had to open up the units and add external battery cables. The APC Smart-UPS XL is the only line that I know of with a convenient external battery connector. The Vanguard overcharges more than the APC, and was generally much less satisfactory.

I’d stick to Smart-UPS XL units for this trick if I were you, but if you ignore this advice, one thing to look for is a UPS with a cooling fan inside. I think that some of the short-duration UPS systems expect to run out of battery power before they have time to overheat, and thus would be lousy candidates for having their battery life extended.

Tip for anyone who would rather do things more conventionally: replacement batteries are very heavy and expensive to ship. Ask at your local car-supply stores and battery shops if they can get what you want. They get daily delivery by truck anyway, and the shipping should be free (ask). This will save you beaucoup bucks.

Tip #2: The world is full of low-quality gel-cell batteries that are shipped halfway around the world just to fail immediately in your UPS. If you buy them locally, you’ll probably get a warranty that means something. Ask. If you have to ship them back, the shipping alone will kill you. I know that APC batteries are good, and I think that ABC batteries are also good.

Where Does Performance Come From?

On the one hand, I think that most people are way too snobby — they think that most people (except those like themselves) are idiots. (Why, I don’t know. I can’t see it from where I’m standing.)

But there are some cases where the distance between the superstars and everyone else is huge. Night and day. My first job out of college was at Activision, back in its glory days in the Eighties. I learned that there were two kinds of video game designers: the ones who could write games that were fun, and the ones who couldn’t. There was no known technique of turning someone who wrote boring games into one who wrote interesting ones.

For the last twenty years or so, I’ve been in the high-performance business — high-end semiconductors, network accelerators, stuff like that. And the same thing is true: A few people know how to make stuff that’s fast, while everyone else only knows how to make stuff that ought to be fast, but isn’t.

Sure, little changes like using memory with a faster cycle time can give you some incremental changes, but when you look for big improvements, like making it two times or ten times or a hundred times faster, all bets are off. You get multiple bottlenecks. Performance leaks that weren’t worth worrying about before now become must-fix issues. Life becomes strange.

So a performance project lives or dies based on a single factor: whether the project was shaped from start to finish by a performance engineer. Other considerations hardly matter at all.

When I was at WEITEK, we had a particularly sharp engineer named Bob Wallis, who looked at the problem of 3-D shading and recognized that it could be reduced into a series of very simple operations, all alike. The operations were so simple that it was easy to implement them in hardware, so we designed a chip with seven fixed-point adders on it, which pretty much did all the necessary calculations at the full speed of the video memory, which means that we were running as fast as it was possible to go. The chip was so simple that it only took six weeks to design, but it was way faster than anything else ever created. It cost only $22 to manufacture. Retail price: $750. We sold millions of dollars worth of products using that chip.

That’s what performance engineers can do.

We always had competitors, but they never did very well. They needed a group of performance engineers, or maybe just a single performance engineer, but they don’t have any.

Performance engineers are very rare, and most employers don’t even know that performance engineering is a distinct specialty, so they don’t even look for them. Their performance projects are doomed.

Since the hallmark of performance engineers is that they can make things that are impossibly fast, often without increasing their manufacturing cost, such people are a gold mine: well worth prospecting for. Better yet, unlike the knack of designing fun games, performance engineering can be taught. Probably not to just anyone, but the people around performance engineers tend to become performance engineers themselves.

This is a key concept, and it’s going to make someone billions of dollars someday. Many companies become rich and famous through the efforts of a single performance engineer (usually a founder). As the company grows, the founders get sucked out of the lab and become unavailable for new designs. Since no one else knows how to do the performance thing, the product line becomes stale. It runs on autopilot for a while and then crashes.

So there are two opportunities for big money, which can be done together if you want. The first is to have more performance engineers than your competition — two to their one, one to their zero — it doesn’t take many. You have to unleash them to work their magic, though. They have to be more or less in charge. Ordinary levels of management will kill the goose that lays the golden egg. (When I was at WEITEK, many of the best products started as conspiracies. The performance guys would work on an idea on the sly, and when they had it pretty much figured out, they’d demand that management fund it.)

The second opportunity it to train up legions of performance engineers so you can simply overwhelm all possible competition. Half a dozen in a single design group would be enough to make you world-class. That’s about the most I’ve ever seen in one place.