Tablet UML News


News and commentary (and whatever else catches my eye)
from Martin L. Shoemaker, author of Tablet UML
and UML and Tablet PC instructor for The Richard Hale Shaw Group

Sunday, April 30, 2006

And the award for most confusing eBay listing goes to...
...this listing for 40 Years Of The Amazing Spider-Man - *NEW for $20.54.

Why did it win the award for most confusing (nominated, selected, and awarded by me, and I'm not interested in doing any actual research to find anything even worse)? Was it because 11 CDs of Spider-Man comics are listed under Books > Nonfiction Books? No, lots of eBay listings are filed under the wrong category.

No, the problem is that the category is right. It's the title that's wrong. Here's the revised description of this book:


Description (revised)

The Spirit of Islamic Law
Item Specifics - Nonfiction Books
Author: Bernard G. Weiss Category: Law & Government
Publisher: Univ of Georgia Pr
ISBN: 0820328278
Format: Softcover Condition: New
Publication Year: 2006
Special Attributes: —


And then there follows a great-big splash page that describes the book in detail; and trust me, Spider-Man is not mentioned anywhere on that splash page.

Look, I know it probably costs, like, a dollar to cancel an eBay listing and create another one. But there's just no reason I can see to leave this listing up under such a misleading title. No one who wants The Spirit of Islamic Law will find the book under that title; and anyone looking for 40 Years Of The Amazing Spider-Man is not going to be happy when they open this listing. Amused, perhaps, but not happy: you see, the asking price for this book is half the original price of 40 Years Of The Amazing Spider-Man; and since the CD set is now out of print (drat!), secondary sellers on Amazon are charging $90 and up. $20.54 is a really exciting bargain... and then you find that you're looking at the wrong book.

P.S. And yes, Epee Bill, they have issued this title as well. And since it's in PDF format, it should work on that niche computer platform you prefer (though there are some user comments that indicate problems on Macs, including possible incompatibilities with Mac's built-in PDF reader).

Friday, April 28, 2006

Cognitive dissonance
I think my head's going to explode. It can't contain this concept. I must still be asleep, because only in dreams does this make any sense. Opinion Journal (editorial arm of the Wall Street Journal) has a guest editorial by... Pamela Anderson.
Posted in Amusement by Martin L. Shoemaker on Friday April 28, 2006 at 7:49am. 0 Comments 0 Trackbacks

Saturday, April 22, 2006

Some follow-up notes
Insufficient system resources exist to complete the API.


Last week, I got fed up with using my machine as a backpack heater, and I got fed up with waiting through power down and power up. So I did a quick Internet search, and I found this Microsoft Knowledge Base article. It explains that this error happens in Microsoft Windows XP SP 2, because of a flaw in the hibernation engine. (And before anyone asks why I used Hibernate rather than the much faster Standby mode: I am using Standby; but I have a battery-saving power mode enabled that switches to Hibernate if it's inactive for half an hour. Or it would if it could; but instead, this error happened. And when it did, the message box would appear, and the error chime would sound. See, it all starts to come together now, eh?)

And the nature of the error has to do with what Hibernate does: it captures the state of your machine, and saves that to your hard drive, and then powers down; but when your machine powers back up, it sees that hibernation state file, and it recreates that state as if your machine had never been sut off. So that means it has to make an exact image of your entire RAM, so that it can reload that exact image when it starts up again. But here's the flaw: sometimes it couldn't get the resources (file handles or something, I don't think I've ever found out) to create the RAM copy; and so rather than lose the contents of your RAM, it would simply refuse to hibernate.

And here's the real kicker: the more memory you had, and the more you used it and fragmented it into a lot of smaller chunks, the more likely it was that the hibernate engine would run out of resources. So if you're somebody like, say, a programmer, who puts a machine through a lot of memory churn... And if you decided when buying a new machine that the best way to deal with memory limits was to just buy lots and lots of memory... Then you were more likely to have this problem!

And as the KB article explains, Microsoft does have a fix. Unfortunately, this problem was found after XP Service Pack 2. And short of utter calamity, Microsoft has no plans for another Service Pack for Windows prior to Vista. And as many of you have probably heard, Vista has been pushed back to the first quarter of next year. So there's no official path to obtain the fix for this problem.

Except for one path: a hotfix. As the KB article explains, Microsoft does offer a hotfix for this problem.


I installed the hotfix on April 6. Sixteen days later, I'm having no problems at all. And it is such a relief to be able to just close the lid and go, knowing my power management will work the way it's supposed to, and I'll have neither heat nor battery problems.

Food? Or biological warfare?


So my sister likes to shop at Horrock's Market, a local gourmet food/nursery store. Yes, that's an odd combination, but it works for them. And no, I can't provide a link and generate some free publicity for them, because they don't seem to have a Web site. Their loss.


My sister informs me that while the Horrocks chain does not have a Web site, the local store does.

And yes, I finally finished the wasabi peanuts.

And no, I didn't pick up any more.

Of course, Horrocks is on the way home tonight...

Welcome to Server Intellect!


Visitors to TabletUML.com shouldn't notice any difference (I hope); but as I predicted, I have abandoned my former Web host, Webstrike Solutions, in favor of Server Intellect. SI had loads of favorable feedback, particularly from fellow Microsoft MVPs in the ASP.NET group. Those are the people I would turn to with a really hard ASP.NET problem, and many of them just love SI.


Since switching to Server Intellect, everything has been hunky dory. They even managed to "fix" a problem that wasn't the fault of my old host. Because I can't get Charter to provide service to my house, the current most convenient option I have is to go to the nearest McDonald's and use their high speed connection (available in many locations as a subscription through AT&T WiFi service). Now this has been a useful service, except for one problem. They have a problem — and I'm convinced it's their problem, though they're still investigating — reaching certain parts of the Internet. Some sites just plain won't open up there, even though those same sites will open up just fine if I connect through other services. As one example, there's Opinion Journal. Now it's no big deal if I can't read the Journal while enjoying the wonderful new Asian Chicken Salad; but until very recently, there were two other sites that I couldn't reach there, and that made my life just a bit difficult: TabletUML.com and MartinLShoemaker.com. And it wasn't just my sites I couldn't reach: I also couldn't reach my email servers; and of course, I couldn't reach my Web mail, either. So the number one most common use I have for the Internet just wasn't working there. It made the service just about useless to me; and I told them so. So why did I sign up anyway? Well, this is where it gets interesting: when I first signed up, I could reach all of my sites and all of my email. Something changed in mid-February, and the service became much less useful to me.

But once I switched hosts, the McDonald's/ATT WiFi servers can find my sites and my email now. Hurray!

Hamburger WHAT?


The best possible answer that I found came from all the way down on the third page of the Google search. It led me to an entry on Cooks.com. Now the entry had moved over time; but a search on Cooks.com led to these entries for "Michigan Sauce". They all seem to be recipes for what sound like sloppy-joe-like sauces of tomato paste and crumbled hamburger, to be served on hamburgers or hotdogs. (Meat sauce on meat. Go figure...)

I also found a comment thread somewhere (but now I can't find it again, naturally) where people discussed Michigan Sauce and traded recipes on it. No one there seemed to know why it might be called that.

So I'm at a loss. Is this what they mean by Hamburger Michigan? I guess I'll have to go back to Montreal to find out. Why have I lived 43 years in Michigan and never even heard of it before now? And why is it called that? That may be one of those rare answers that just isn't to be found on the Web.


We hear of bear, coyote, and even bobcat sightings in the state; but still no sign of the elusive Hamburger Michigan...

Birthday after-action report


Bonus birthday quiz: over two decades ago, I read a trilogy of books that left a really strong impression on me. I reread them multiple times, and still reread them now and then. I thought they would make great movies; and in fact, they made it to TV at one point. Two questions: how old was I when the first book finally became a major motion picture? And how many books were in the trilogy?


No takers on this? I know I don't have that many readers, but I thought sure at least Epee Bill would take a stab at it (so to speak).
Posted in Personal by Martin L. Shoemaker on Saturday April 22, 2006 at 4:55pm. 0 Comments 0 Trackbacks
Sometimes, the commercial hooks you...
...even when you know the show has to be a turkey.

Now the Sci-Fi Channel does some quality shows; but they also make more than their share of turkeys. Their stock in trade seems to be low-budget monster films; and you can usually tell it's a turkey when the name of the film is just the name of the monster. That's almost a sure-fire indicator. Case in point: they're promoting a film called Rottweiler, complete with a dog with metal teeth. It smells like Thanksgiving dinner to me!

So you have to know that their big premier tonight, Mammoth, just has to be a turkey.

But then I keep seeing the ad, which opens with one very serious character saying, "We have an alien-posssessed mammoth on the loose, and if we don't stop it, the government will kill all of us."

And just when you're thinking how this is classically bad, cliched turkey dialog... the other character looks at him, and just bursts out laughing.

It may be a turkey, but at least it knows it's a turkey, and isn't afraid to laugh at itself. That sounds like a lot more fun than, say, Rottweiler.

Friday, April 21, 2006

Sorry, Mr. Henninger, you just don't get it
Daniel Henninger, a man whose writing I usually enjoy and respect, demonstrates today that some in the old media still don't get it.

His basic point is this:


In our time, it has generally been thought bad and unhealthy to "repress" inhibitions. Spend a few days inside the new world of personal blogs, however, and one might want to revisit the repression issue.

The human species has spent several hundred thousand years sorting through which emotions and marginal neuroses to keep under control and which to release. Now, with a keyboard, people overnight are "free" to unburden and unhinge themselves continuously and exponentially. One researcher quotes the entry-page of a teenage girl's blog: "You are now entering my world. My pain. My mind. My thoughts. My emotions. Enter with caution and an open mind."

The power of the Web is obvious and undeniable. We diminish it at our peril. But what if the most potent social effect to spread outward from the Internet turns out to be disinhibition, the breaking down of personal restraints and the endless elevation of oneself? It may be already.

Disinhibited vocabulary is now the normal way people talk on cable TV, such as on "The Sopranos" or in stand-up comedy. On the Web and on the street, more people than not talk like this now. What once was isolated is covering everything. No wonder the major non-cable networks are suing to overturn the FCC's decency rulings; they, too, want the full benefits of normalized disinhibition. Hip-hop, currently our most popular music form, is a well-defined world of disinhibition.


In other words, people expressing personal opinions on blogs are somehow dangerous to the public character, but people expressing personal opinions in a media outlet (such as Mr. Henninger does for the Wall Street Journal) are providing a valuable service.

No, Mr. Henninger, we're all providing the same service. Some do it well, and some do it poorly. Some do it with polished prose, and some do it with profanity. Some do it for a paycheck, and some do it for the most common reason writers have written since the invention of cuneiform: they can't help themselves. The need to put thoughts in writing and share them with the world has been around for a long time. Blogs are just the latest medium for that.

Let me dissect Mr. Henninger's essay in more detail.


I don't think the blogosphere is breeding cannibals. But it looks to me as if the world of blogs may be filling up with people who for the previous 200 millennia of human existence kept their weird thoughts more or less to themselves. Now, they don't have to. They've got the Web. Now they can share.


In other words, once upon a time, they didn't have the opportunity to share very far, because a handful of gatekeepers controlled who got to share their thoughts. Those gatekeepers — book editors, newspaper editors (such as yourself), television producers, college administrators, librarians and others — weren't in any sense evil. They had an important job to do: when space is limited, it's a disservice to everyone to waste it on poorly formulated, poorly spelled, or simply uninteresting thoughts. Gatekeepers provided a service to consumers, saying, "If you trust our opinions — and we'll try to earn that trust — we'll deliver high quality content to you." And if your work didn't meet the standards of the gatekeepers, you could search for other gates and other keepers, since there were plenty of them out there. And if you just couldn't find an open gate, then your thoughts were restricted to just the circle of friends and family that you could reach directly. But even as the gatekeepers were providing a necessary service, they were also restricting your choices.

But today, anyone can create his own gate, and be his own keeper. Space is effectively unlimited, so there's room for all the gates we want. And if a blogger can draw enough attention, anyone anywhere in the world can see what he puts up inside his gate. So that gives the consumer lots more choices.

I've got news for you, Mr. Henninger, though I'm sorry to learn that you see it as news: those people with their weird thoughts didn't keep them more or less to themselves. They shared. They spoke or wrote to friends. I know of one gentleman whom I've never met, but whom many of my friends have; and for twenty years, he has been writing a vaguely monthly opinion journal that he copies off and hand-mails to everyone he knows. A crank? Maybe, but an entertaining crank. They all look forward to his monthly mailings.

Even people not so dedicated have written to friends, spoken out at meetings, or climbed on soap boxes in the city square. All that blogs do is present another venue for them. And while technically they are sharing with the world, most of them are really only reaching an audience of friends and family members. In other words, just like in the golden days you miss, they effectively keep to themselves. The difference is that, if they should prove entertaining or informative enough, they may gather a larger audience — something which previously would've only happened through the beneficence of a gatekeeper.

Now there's space, and there's space. Some space has enough reputation and value to still need traditional gatekeepers. No one expects you to turn the Wall Street Journal into a wide open forum. You provide a service to customers and advertisers; and part of that service is a level of fact-checking, editing, and filtering that guarantees a minimum quality of content and presentation. Premium space still needs gatekeepers.


But in a "Blogs Trend Survey" released last September, America Online reported that only 8% blog to "expose political information." Instead, 50% of bloggers consider what they are doing to be therapy.


I'm going to repeat myself here: many people write because they can't help themselves. That's not a phenomenon new to the Web. Look at Mr. King, whom I've now cited twice. Look at Mr. Poe, or H.P. Lovecraft, or Phillip Roth. Reading their books is like looking right into their psychoses. I can cite lots of other examples, as can pretty much any reader in any genre. Writing as therapy is a lot older than modern therapy itself.


A libertarian would say, quite correctly, that most of this is their problem, so who cares? But there is one more personality trait common to the blogosphere that, like crabgrass, may be spreading to touch and cover everything. It's called disinhibition. Briefly, disinhibition is what the world would look like if everyone behaved like Jerry Lewis or Paris Hilton or we all lived in South Park.

Example: The Web site currently famous for enabling and aggregating millions of personal blogs is called MySpace.com. If you opened its "blogs" page this week, the first thing you saw was a blogger's video of a guy swilling beer and sticking his middle finger through a car window. Right below that were two blogs by women in their underwear.


And none of this would go on without blogging? Please...


In our time, it has generally been thought bad and unhealthy to "repress" inhibitions. Spend a few days inside the new world of personal blogs, however, and one might want to revisit the repression issue.

The human species has spent several hundred thousand years sorting through which emotions and marginal neuroses to keep under control and which to release. Now, with a keyboard, people overnight are "free" to unburden and unhinge themselves continuously and exponentially. One researcher quotes the entry-page of a teenage girl's blog: "You are now entering my world. My pain. My mind. My thoughts. My emotions. Enter with caution and an open mind."


Maybe, to carry your therapy metaphor forward, this is a good thing. Maybe giving people a chance to express their inner selves on the page gives them more control of their outer lives.


Disinhibited vocabulary is now the normal way people talk on cable TV, such as on "The Sopranos" or in stand-up comedy. On the Web and on the street, more people than not talk like this now. What once was isolated is covering everything. No wonder the major non-cable networks are suing to overturn the FCC's decency rulings; they, too, want the full benefits of normalized disinhibition. Hip-hop, currently our most popular music form, is a well-defined world of disinhibition.


This disinhibition phenomenon long predates blogs. Language and violence and nudity standards in entertainment have been sliding throughout my lifetime. I don't see blogs as any more than another example.


At the risk of enabling, does the Internet mean that all the rest of us are being made unwitting participants in the personal and political life of, um, crazy people?


No. If you don't like a site, don't go there. If you want profanty or nudity or partisan bile, the blogosphere has places for them all. But if you want refined discourse, high culture, and efforts at cooperation and compromise, the blogosphere has places for those, too. It has places for everything. Your blog-reading experience is largely a self-selected experience, because if you don't like what you're reading, there are plenty of other choices.


But researchers note that the isolation of Web life results in many missed social cues. It is similar to the experience of riding an indoor roller coaster, what is known in that industry as a "dark ride." This dark ride could be a very long one.


So as not to further coarsen the discourse and make you feel justified in your wrong-headed opinion, I'll refrain from responding with the expletive that immediately comes to mind. Instead, I'll just say that the whole "missed social cues" argument, which again predates the blogosphere (it first gained prominence in regards to email, and led to the most foul "innovation" of the Internet: smileys), is completely unfounded. Is it harder to pick up social cues in written discourse? Initially, yes; but anything is hard when you start doing it. But with practice, you get better at it. Blogs are a great place to practice being a better writer, especially if you draw the sort of commenters who will jump on every little misstep and point it out to you. And the result? There are a number of bloggers and blog commenters who I feel I know as well as some friends I've known for years. I wouldn't know these people by their "social cues" if I bumped into them on the street; but I know them by their words and thoughts and expressions and tastes. I know them by their minds. To return to Mr. King, in his book On Writing, he has a chapter titled "What Writing Is". And the answer is the very first sentence of the chapter: "Telepathy." When people write well and often, the reader learns their minds, which is the most important part to know.

And this problem of "missed social cues" long predates email. It has been a "problem" with written discourse throughout history; and people have learned to communicate tone and intent more clearly in their words. There was a time when people "of letters" (as the phrase used to go) communicated with each other through letters across countries and continents, carrying on discussions and debates and relationships without ever meeting face to face. That skill has atrophied in recent years; and honestly, I hope that we'll see that email and blogging are helping people to get better at it.

I'm sorry, Mr. Henninger. I really do look forward to everything you write. But this time, you demonstrated just how hard it is to shake off the preconceptions of the gatekeeper and see the world through the eyes of just another participant in a great big global conversation.


Posted in Opinion by Martin L. Shoemaker on Friday April 21, 2006 at 4:02pm. 1 Comments 0 Trackbacks

Saturday, April 15, 2006

Another tech support management tip
Once before, I wrote here about how you should stubbornly refuse to turn off your firewall when your hotel or other WiFi hotspot support tech tells you that will solve all of your problems. To summarize: most of these first-line tech support people don't know much except how to follow a script; and when you explain to them that the firewall was working with the network just fine yesterday, it's meaningless to them. They know that the magic script says turning off the firewall will fix things, so that's what they believe. And when you refuse, they'll be forced to escalate the problem to someone with a clue.

Well, I have a new tech support management tip for you. This time, I'm not going to tell you to be rude to them. No, I want you to lie to them: when they tell you just delete all your cookies and it will fix everything, I want you to do nothing except silently count to ten, and then say, "OK, I deleted all the cookies, and I've still got the problem."

(Before I go any further, I have to warn you: any comments about how cookies are evil and awful and will let Big Brother know what color socks you're wearing will be deleted.)

I won't say I have never seen a problem that could be fixed by deleting cookies. You could certainly design a Web site so poorly that once a cookie had the user's answer to some question, the user could never change his mind; and the only way to get around that would be to give the Web site amnesia by wipining out the cookies.

But today, there are a lot of sites out there with log-in processes; and once you log in, some of them will remember who you are via a cookie. That's good, because I have dozens of different work-related sites where I have to log in, and I can't remember them all. The cookies remember for me. Even some of my banking sites rely on cookies for the less secure information retrieval chores.

So today, I was having trouble viewing some content on a site. One control simply would not display its contents. So I clicked the link for live chat support; and when the support tech got on, practically her first question was, "Have you cleared your cache and deleted your cookies?"

Again, this is not their fault. Many of them are at a fairly entry level of knowledge, where computers work by making the right incantations while waving a chicken in the air. Only their incantations and chickens have been replaced by folklore, and by The Script.

So I foolishly tried to do the polite thing. I tried to explain why I didn't want to delete cookies. I tried to explain how much work this would make in upcoming days as I went through the chore of retrieving my passwords or creating new ones. I asked how a cookie could be causing this problem. All to no avail. She just said, "You have to delete the cookies if you want to fix this problem."

So I did. And guess what? It didn't fix the problem! Imagine that... And when I refreshed the page to see if there were any helpful diagnostics, I found a line that read, "If you're having trouble viewing this control, click here for an alternate view." So they know some people may have a problem, so they ought to be able to explain why. At a minimum, they ought to train their techs to read the bloody page before waving the bloody chicken.

And of course now, half my regular sites don't recognize me any more, and I have to retrieve or recreate passwords.

What I should have done was to lie: "OK, I deleted all the cookies, and I've still got the problem." It would have ended up with the same resolution (or lack thereof), without interfering with other sites. I don't normally endorse lying; but it's a good lie, because if you try to explain to them why they're wrong, it only makes them stubborn: "You must delete the cookies!" So tell them you did, and they can move on to the next line in their script (which in this case was, "Please fill out this form to report the problem to our system techs").
Posted in Opinion by Martin L. Shoemaker on Saturday April 15, 2006 at 9:16pm. 0 Comments 0 Trackbacks

Wednesday, April 12, 2006

Vox: A text-to-speech application for keyboard and pen
It looks like I'll be speaking at the Day of .NET in Ann Arbor, MI. And in preparation for that event, the Ann Arbor Computer Society is having a night of Grok Talks on .NET topics, and I was asked to participate. For those who haven't seen them before, a Grok Talk is a quick (ten minutes or less) talk on a small topic, with a focus on demonstrating just a little bit of code or a little technique people can use in their projects. Now normally, I have a bit of Ent in me: ten minutes is scarcely enough time to say good morning. But when I needed to come up with a topic for my Grok Talk and I hadn't enough time to think through it, I said, "Text to speech." And then afterwards, I thought about it, and realized: with Microsoft Speech API (SAPI) 5.1, text-to-speech takes three lines of code. Literally:


ISpVoice mVoice = new SpVoiceClass();
uint uiStream;
mVoice.Speak("Hello, world!", 1, out uiStream);


And one of those lines is a variable declaration! So this topic would take me less than a minute to cover. Whatever would I do with the remaining nine minutes?

So being the Tablet PC guy that I am, I decided to mix in some Ink capabilities as well. So I had a vision of an application that would speak whatever the user writes.

And thus, with some additional thought and design and coding, was born Vox: A text-to-speech application for keyboard and pen; and once I wrote it, I decided to use it as a springboard for discussing Ink and Speech programming under .NET.

Vox is available free to anyone who's interested. I haven't tested it on a non-Tablet PC yet; but it's supposed to work just as well there, because I detect at run time whether the computer has the Tablet PC OS or not, and fall back to non-Tablet mode if not. You can type any message (or write it on a Tablet PC), and Vox will speak the message. It will also remember every message, so that you can repeat a message easily. And it has a user-editable list of Quick Words at the bottom of the form, so that you can tap a word or phrase to say it without writing or typing.

If you like Vox, let me know; and if you would like to learn about the code...


Tuesday, April 11, 2006

Can you say "frustrating"?
So there's this cable and internet provider, Charter Communications. They're about average for cable companies, from what I hear: OK service, OK price, etc. Nothing especially bad I've ever heard about them, and nothing especially good. They're just The Cable Company in certain areas, that's all.

Except for one little thing: As of a year or two ago, they serve the Village of Hopkins, zip code 49328. Yes, if you live in the Village of Hopkins, you can be a Charter customer.

Now as it happens, our zip code is 49328. Now you might think that puts us in the Village of Hopkins; but in fact, all of Hopkins Township has the zip code 49328. That's a six mile by six mile area, while the Village of Hopkins is scarcely a half mile square. So even though we're in 49328, Charter doesn't offer service to our house.

But now here's the thing: cable and internet companies don't run a line from their office to each individual home. Instead, they run big trunk lines out; and then they branch local service lines off from those; and then they branch individual service lines off from those. It's vaguely like the circulatory system, with major arteries feeding minor arteries which feed capillaries.

For a lot of reasons, it's convenient for the companies to run their trunk lines along highway right-of-ways. After all, the highway is already going from one major population center to another, just like they want to route their service.

Now as it happens, we live just over a mile from the nearest highway. That puts us on the main road from the highway to the Village of Hopkins.

And that means that the local service line for Hopkins runs right through our front yard (I actually traced it back to the trunk line to confirm); but no matter how hard I try, no one at Charter can offer us cable or Internet service.

Right. Through. Our. Front. Yard.

If you go to Charter's online site, they ask for your address. I put it in, and get the answer: no service in your area. But the line goes Right. Through. Our. Front. Yard.

If you call their very helpful and friendly support line, they'll go a lot farther than the Web site does. I give them great points for really researching to see if they could sell us service. But in the final analysis, they can't offer us service. But the line goes Right. Through. Our. Front. Yard.

Now I can think of some plausible reasons:


  • Maybe tapping into the local service line this far up from the Village of Hopkins would degrade service in the Village of Hopkins itself. It's not smart to degrade service for 500 potential customers for the sake of maybe 40 potential houses between the Village of Hopkins and the highway. (Honestly, I doubt there are 40 houses, but I haven't bothered to count.)

  • Maybe tapping into the local service line has to be cost-justified by a certain population density in the vicinity. The Village of Hopkins has a population density of roughly 1,000 people per mile. Out here away from the village, our population density is probably less than 50 people per mile.

  • Our ever-eager government regulators sell territories to these companies, allowing them to offer service to within a territory. Maybe the government hasn't offered our area in a territory.

  • Or maybe the government offered our area as a territory, but not at a price Charter was willing to pay for around 10 houses per mile.



I don't know either the law or the technology, but any of these explanations would be convincing to me.

But still... Right. Through. Our. Front. Yard.


Monday, April 10, 2006

It must be spring in Michigan...
...I just saw my first mosquito.

Sunday, April 9, 2006

Insufficient system resources exist to complete the API.
Ever since I got my wonderful Gateway CX200X — and even before, with my less-than-wonderful Toshiba M200 (which I'm managing to put to productive use, but cautiously) — I've had this annoying problem. When I would shut the lid, with every expectation that that would suspend the machine, I would be deceived. I would put the machine in my backpack, and head off for the road or the plane or wherever, expecting that my machine was obediently sleeping, preserving battery power; and instead, it was still running along, drinking down that battery juice. Yumm! And even worse, it was locked away in my backpack, a confined and somewhat insulated place, where the machine served as a most effective heating system, thoroughly roasting any heat-sensitive system inside — such as, say, itself. And when I would open the backpack, I would pull out a horribly overheated machine with half its battery power gone. And the first thing I would see would be a message box: "Insufficient system resources exist to complete the API." No explanation of which resources were lacking — and trust me, my Gateway's a powerhouse, packed with all the RAM and CPU and disk it could possibly hold, and even the Toshiba has lots of RAM (keep that in mind) — nor which API (Application Programming Interface, or operation for you non-geeks) was failing, nor which program was having the problem. And often the box appeared multiple times. And once I finally closed them all, I could use the half-depleted, overheated machine.

There was one other symptom, which I was sure was related but couldn't prove: if I closed the machine's lid, and then happened to be near it maybe thirty minutes or so later, I would sometimes hear the standard Windows error chime that means "Hey, something just failed." My assumption (true enough, as it happens) was that that error chime corresponded to the message box appearing.

Now since the problem was common to both machines, I naturally assumed that it was due to something I had installed on the Toshiba, and then later moved to the Gateway. But despite some experimentation, I didn't figure out what it might be. I resigned myself to doing a full power down whenever possible. It's a lot slower, but it's safer. But I was still puzzled at what application might be preventing the machine from sleeping.

Little did I suspect that it was the operating system.

Last week, I got fed up with using my machine as a backpack heater, and I got fed up with waiting through power down and power up. So I did a quick Internet search, and I found this Microsoft Knowledge Base article. It explains that this error happens in Microsoft Windows XP SP 2, because of a flaw in the hibernation engine. (And before anyone asks why I used Hibernate rather than the much faster Standby mode: I am using Standby; but I have a battery-saving power mode enabled that switches to Hibernate if it's inactive for half an hour. Or it would if it could; but instead, this error happened. And when it did, the message box would appear, and the error chime would sound. See, it all starts to come together now, eh?)

And the nature of the error has to do with what Hibernate does: it captures the state of your machine, and saves that to your hard drive, and then powers down; but when your machine powers back up, it sees that hibernation state file, and it recreates that state as if your machine had never been sut off. So that means it has to make an exact image of your entire RAM, so that it can reload that exact image when it starts up again. But here's the flaw: sometimes it couldn't get the resources (file handles or something, I don't think I've ever found out) to create the RAM copy; and so rather than lose the contents of your RAM, it would simply refuse to hibernate.

And here's the real kicker: the more memory you had, and the more you used it and fragmented it into a lot of smaller chunks, the more likely it was that the hibernate engine would run out of resources. So if you're somebody like, say, a programmer, who puts a machine through a lot of memory churn... And if you decided when buying a new machine that the best way to deal with memory limits was to just buy lots and lots of memory... Then you were more likely to have this problem!

And as the KB article explains, Microsoft does have a fix. Unfortunately, this problem was found after XP Service Pack 2. And short of utter calamity, Microsoft has no plans for another Service Pack for Windows prior to Vista. And as many of you have probably heard, Vista has been pushed back to the first quarter of next year. So there's no official path to obtain the fix for this problem.

Except for one path: a hotfix. As the KB article explains, Microsoft does offer a hotfix for this problem. For those who haven't run into one before, a hotfix means:


  1. Microsoft hasn't had a chance to test this on nearly as many machines and configurations as they would like.

  2. In particular, Microsoft hasn't had a chance to regression test this. Regression testing is a way of testing that no old bugs have somehow been reintroduced in the process of fixing a new bug.

  3. It may take a little more expertise to install than does a usual set up program.

  4. Microsoft has to be sure that you get the version of the hotfix that's right for your operating system. (XP isn't the only OS where they found this problem.)

  5. Microsoft can't support the hotfix. If you must have it, they strongly encourage you to do a thorough backup before installing it.

  6. Microsoft strongly discourages you from installing the hotfix unless you're actually suffering from the problem it was designed to fix. For instance, most people never hibernate desktops, and not all laptops or Tablets are experiencing this problem, so don't apply the hotfix to those!



In the case of this hotfix, they're extremely cautious to be sure that only people who really need the fix get it, and that they get the right version: they don't offer it as a download, but rather require you to call them on the telephone (how quaint), give them the Knowledge Base article number (that's 909095, for those of you who need it), and request that they email you a URL for the hotfix. And when they send you the URL, it includes a password that expires in a week. They really don't want you to install this unless you absolutely need it.

But I have to tell ya, I installed it Thursday, and already I'm thrilled. Suspend-to-Hibernate transition just works. I know that's no big deal to some of you, but it's a huge deal for me. No more roasted machine!

Now I don't fault Microsoft for having the bug. All code has bugs. I don't fault Microsoft for not releasing another Service Pack with this fix, because I understand that release schedules on a major product like an operating system are very difficult to manage. I won't go into all the reasons, but I'm very sympathetic to how difficult this schedule must be for them. And I'm not even upset about the multiple-step hotfix approach, nor about their caution in releasing it and their reluctance to support it. I think I understand all of their reasoning for these decisions.

But I'm a little annoyed at Microsoft for not publicizing this problem and the hotfix for it more. I have been at two major Tablet PC promotional/educational events at Redmond in the past half year, plus the MVP Summit. Power management came up as an issue at all of them. And the roasting-computer-in-the-backpack problem came up at every one of them. And Microsoft people promised that this was a driving force for some of the advanced power management features coming up in Vista.

But not once did anyone mention that I could have a fix for my immediate problem immediately.

I'm going to assume that the problem is so obscure that most Microsoft people don't even know about it. But at a Tablet PC talk specifically about power management? Where they cite roasting computers as a problem that people are complaining about? I have trouble believing that no one there knew about this problem and the hotfix.

There may be some acceptable explanation for not telling us about this. I'm willing to listen. But there's no reason I can see not to tell the world as loudly as my little blog can. So I'm going to join the chorus of many, many bloggers and others telling the world: "If you're getting to message 'Insufficient system resources exist to complete the API,' read KB article 909095." I can't recommend that you install the hotfix, because only you know how willing you are to risk having to rebuild your machine if something goes wrong; but I can make you aware of the hotfix, and I can let you know that it works on my machine.
Posted in News, Opinion by Martin L. Shoemaker on Sunday April 9, 2006 at 8:49pm. 0 Comments 0 Trackbacks

Wednesday, April 5, 2006

Food? Or biological warfare?
So my sister likes to shop at Horrock's Market, a local gourmet food/nursery store. Yes, that's an odd combination, but it works for them. And no, I can't provide a link and generate some free publicity for them, because they don't seem to have a Web site. Their loss.

And being a good gourmet food store, they have some pretty unusual items. And knowing my tastes for the unusual, she sometimes picks up odd stuff to see if I'll like it. This time, however, she may have gone too far.

I like sushi, and I like hot food. So naturally, I like wasabi; but I also know that the best way to indulge in wasabi is to just lightly touch a piece of sushi to the dab of wasabi, so that there's just a slightly green residue on the sushi. More than that is a hazard. (Epee Bill told me of his first encounter with wasabi. He mistook it for guacamole. Epee Bill loves guacamole, so he took a really big scoop. I have trouble comprehending how he survived...)

And I've had wasabi nuts before at a bar in Boston. They might have been wasabi peanuts, or maybe wasabi soy nuts, I forget. But they were quite tasty, in moderation.

But the wasabi peanuts from Horrock's Market may just qualify as biological warfare.

The wasabi nuts in Boston had a light wasabi coating around them. These wasabi peanuts from Horrock's are a style sometimes called crunch-wrapped: the peanuts are wrapped in a corn-and-rice-cracker shell. So all the elements in place are great. I like peanuts, I like crunch-wrapped nuts, I like corn and rice.

And I like wasabi. Which is liberally dusted onto the outside of the crunch wrap.

In a powdery form.

When they do that to anthrax, they call it weaponized. Why? Because the powder becomes easily airborne and thus can reach more places and be more of a threat.

Well, trust me, the powdered wasabi on Horrock's wasabi peanuts is weaponized.

When you bite into one of these nuts, there's a good chance that you'll release the powdered wasabi. The crunch effect releases a lot of energy, and that can propel the powder out into the air spaces of your mouth.

If you're particularly unlucky, your breath will catch the weaponized wasabi and propel it into your sinus cavities, where there's just nothing you can do but wait for the pain to subside.

If you're a little more fortunate, all that will happen is the weaponized wasabi will disperse across your entire mouth, spreading the heat everywhere. Somehow there seems to be plenty of heat to go around. And of course, that makes your mouth water, so the saliva gets infested with wasabi.

And woe to the person whose mouth is too hot, and who decides to quench it with a drink. The weaponized wasabi mixes quite well with whatever liquid you might choose, and forms a very efficient slurry that burns all the way down your throat.

And the worst part is: the things are so darn tasty! So although I have to eat them carefully, I can't stop eating them. I started with three pounds a week ago. (Actually two weeks ago, but I was away in Boston for a week.) Slowly I have whittled them down to about a pound. But this is the first time I've ever encountered a food where you have to acquire a skill to eat it safely.

And I'm very careful to brush or lick the wasabi powder off my fingers. I live in fear of touching my eyes with weaponized wasabi. (Go ahead and laugh. I once had a toothpaste cap flip shut and flip some toothpaste right into my eye. It was one of the most painful experiences of my life.) Who needs pepper spray? Give me weaponized wasabi!
Posted in Dining by Martin L. Shoemaker on Wednesday April 5, 2006 at 12:58pm. 1 Comments 0 Trackbacks

Tuesday, April 4, 2006

And-every-single-one-of-them-is-right!
So one time, I showed a friend a Web site for a project I was working on. And he asked an interesting question:


Well, you're design guy right? Shouldn't you be writing a design document?


And what I suddenly realized was unclear was that the Web site was a design document. It was just a design document of a very different sort. It was basically a step one design document, serving as a way to put the ideas in a concrete form for discussion. The team kinda knew what the product should do, but not every last detail yet. Some team members were ready to jump in and start coding right away, and just call it Agile Development if we needed to justify the work. Instead we said, "Wait a minute. We have a vision, but no details. If we don't explore what some of the users will demand from the system, we won't design the architecture to accommodate them properly. So before we can write a line of code, we need to explore what a range of users need. Then we can design an extensible architecture that should support most of those needs. And then we can jump in and start coding." So the Web site was, in part, a format for exploring what different sorts of users would want, by telling stories of how they would use the system. And since the system was intended to be marketed to users who could use those same stories as a way to envision using the system themselves, it made sense to document those stories in a marketing-oriented Web site. But marketing-oriented or not, the Web site still served a purpose as a design document.

Now my friend would never be so rigid and unimaginative as to say that the Web site wasn't a design document; but I have met people who are so wedded to hidebound procedures that they would have argued exactly that, just because it didn't conform to some formally defined design document template or fit into some formally defined design methodology. And that reminded me of Kipling:


"There are nine and sixty ways of constructing tribal lays,
"And-every-single-one-of-them-is-right!"


Design is a heuristic problem, meaning that there are techniques that can lead to a solution, but no single guaranteed and inviolable path to a solution. Quoting from Wikipedia:


In computer science, a heuristic is a technique designed to solve a problem that ignores whether the solution can be proven to be correct, but which usually produces a good solution or solves a simpler problem that contains or intersects with the solution of the more complex problem.


Note the word "usually" in that description. Some heuristics are better than others, but none can be proven to be right, especially not in the general case.

There are many ways to design, because design is really just a means of communicating and refining your ideas. Different people communicate better in different fashions. Some people are more visual, and some or more verbal. Some are more instinctive, and some are more methodical. Some are more detailed, and some have a broader view. And so there's no one right way to communicate a design to other team members and stakeholders. The only "right" approach is multiple approaches, to ensure that you cover the same material in different ways to gain different perspectives.

As an example, some people love written design docs, and just can't see any benefit in design diagrams. Others believe in making excruciatingly detailed UML diagrams, and sometimes see those as "complete" designs. Now I'm pretty fanatical about using UML for my designs; but when I teach UML, I always point out that neither text nor pictures is sufficient. You need both. Different people and different teams will emphasize one over the other, but you need both.

That doesn't mean that there aren't better ways and worse ways to design. I would never consider a marketing-oriented Web site to be a complete design, just a step in building the design. But when we built that Web site, we were definitely participating in a design effort. Because...


"There are nine and sixty ways of constructing tribal lays,
"And-every-single-one-of-them-is-right!"