Jeff Duntemann's Contrapositive Diary Rotating Header Image

June, 2011:

Odd Lots

  • Strahinja Markovic, the chap who created the very good Sigil epub editor while he was a CS undergrad, now has a master’s, a good job, and…a life. (How dare he? ) In a recent blog post, he’s asked for prospective maintainers of the code (which is open source) to introduce themselves and make a case to him as to why they should be trusted to carry on the work. He doesn’t know me; I’m just spreading the word, because I use Sigil and I want it to continue to evolve.
  • We have the same problem with the Kompozer WYSIWYG HTML editor; poor Fabien “Kaz” Cazenave has a new job and very little time to devote to the product. I like Kompozer but it has some rough spots, and I hope someone will take over and keep the wheels turning.
  • In the meantime, I’ve installed and am testing BlueGriffon, and so far I like what I see. The editor incorporates the Gecko rendering engine used in Firefox 4, so if it looks good in BlueGriffon it’ll look good in Firefox. It has HTML5 and CSS3 capability, and an interesting business model: The editor is free, and the developer sells various add-ons. That doesn’t bother me at all; the whole suite of 9 add-ons can currently be had for $35 Euros, or about $50US. If BlueGriffon performs well on my existing Web documents, I’d pay that like a shot, even if I don’t use the add-ons.
  • As brilliant as the original Turbo Pascal was, it wasn’t alone. From Andrew Stuart comes a link to the deep history of Nick Gammon’s G-Pascal, an enviable piece of assembly-coding work that put a potent Pascal compiler for the Commodore 64 in…16K. If you used G-Pascal back in the 80s, this is a must-see, especially the links at the end, to the sorts of ads and programming newsletters that were the lifeblood of personal programming in the early 80s.
  • I don’t know if you’ve ever needed an 18″ USB A-B cable, but I did, and after a great deal of looking around, I finally found them at Other World Computing. It’s mostly a Mac shop, but has the short A-B cables for both USB 2 and USB 3. The cable connects the USB hub on my Dell 20″ monitor to the GX620 USFF machine mounted immediately behind it, and keeps cable clutter down behind the monitor.
  • Little things sometimes matter: The Toshiba Thrive has a full-sized SD card slot. Not micro. This means that I can use the SD cards I already have. A mini-USB adapter will also allow me to use my existing thumb drives. Ports and card slots have been the deal-killer so far on tablet after tablet. This one (though it won’t be in stores until July) still has an edge. (Bill Roper reminded me that I needed to post about this.)
  • From Smithsonian comes a long and detailed article on what amounts to beer archaeology. (Thanks to Rich Rostrom for the link.)
  • For those who asked: Simple Simon’s formal name (from my entry for June 26) is Factory Automation Real-Time Supervisor, and yes, the acronym was highly deliberate. His robotic factory is the Automated Reprographic Fabrication Facility, and (as you’ll learn in the novel) the project had always been a dog.
  • WUTZ 4 DINR?

Waiting for Godot…No, Make That

Not much about this to be found online, but for the past couple of days, Facebook has been waiting eternally on one of several servers after displaying the first page of entries. The commonest address it hangs on is:

Any thoughts about this? Chrome does the same thing, suggesting that it’s not a browser issue but a local configuration issue…except that I haven’t done anything to the router configuration or the XP network configuration for a long time.

Javascript is enabled, and unloading NoScript doesn’t help. If this doesn’t get fixed soon I’m going to simply stop reading the damned thing. Software that breaks itself without provocation is not generally welcome around here. Not for long, anyway.

UPDATE: The fix (for me at least) was to enable the MTU setting in my Linksys router and set the MTU value to 1454. That’s a sort of “golden” value that appears to be the optimal packet size on PPPoE connections. I’m still puzzled as to why this would alluvasudden be a problem  (I’ve had the MTU setting disabled and the default value of 1500 in force for years) unless Facebook were doing some tweaking on the server side.  That said, now works as well, and I had pretty much given up on it. If you have problems with Web sites hanging unpredictably, this is an easy fix (assuming your router provides the option) and should be the first thing you try.

Sampling Yesterday’s Output: Ten Gentle Opportunities

Getting back from Chicago a few days ago took a fair amount of doing: Our 8:30 PM flight did not take off until 11:45, and when we landed in Denver we called for a shuttle to the hotel. It was 2 AM, and the driver who handled such calls after midnight served a whole list of hotels. Alas, he didn’t know where ours was. He got lost. After half an hour of confused wandering around the wide empty spaces in the vicinity of DIA, a young woman in the first row of the shuttle bus looked up the hotel on her GPS smartphone, touched a button, and held the phone up in the air. The phone then began dictating directions to the hotel right out loud–and the driver, perhaps a little reluctantly, obeyed. Ten minutes later we were at the hotel, though I doubt we were asleep until 3:45 ayem.

It sounds like a story, but no, it really happened. I’ll have to tuck it away for future reference.

In the meantime, I’ll give you a sample of the novel I’m working on, a bit of whimsy involving magic-as-alternate-physics and spells-as-software. It involves a jump between a magical universe and ours. It also involves 2018-era AI, and a robotic copier factory in a town I’ll call Merriam, NY. Here’s a representative 850 words of what came out of the keyboard yesterday:

Simple Simon’s office didn’t look like an office. Simple Simon’s office did not have a desk or a chair. “Simple Simon” had not even been his original name. The space in which he worked was not fully rendered, though there were artifacts here and there, most of them gifts from the painfully earnest Dave Mirecki and the infuriating Dr. Adele Sanderson. Simple Simon removed his five-pointed jester’s cap (which had once had bells, now mercifully deleted) and hung it on the hook beside the door. The lights came up, and Simon was now officially on the job.

To Simon’s perception, his office was a pale blue ellipsoid formed of countless minute polygons, and no matter where he walked within the ellipsoid, he was always at the center of the ellipsoid. Walking was therefore pointless.

So much, so infuriatingly much of the Tooniverse was simply pointless.

Like his costume: a particolored tunic over green tights, and shoes with points that curled up over the toes he didn’t have. They could have dressed him in a business suit like the managers wore, or (better) a polo shirt and khaki slacks like Dave. There had been a time, a comfortable, reasonable time, when he had been an unrendered polygon model like the Kid-until Dr. Sanderson began speaking of “resonances” and “human interface friction.” Dr. Sanderson was not the author of his archetype–that had been Dr. Emil Arenberg, founder of Zircon’s AI division and architect of its AI technology–but rather his Human Interface, what in older times was called his “skin.” She looked at his job, and declared him a jester. It was a metaphor, and wrong, at that. But nobody dared tell her that she was wrong, so they made him look the part.

On the wall hung a framed image containing three words:

Be the metaphor.

It was Dr. Sanderson’s slogan, and (evidently) a direct order. Simon resisted the order with all his might. He was not a jester.

He was a juggler.

“Thirty minutes,” said the Shift Clock. Simon nodded, and took a step backwards. He didn’t move, but the step was significant: All around him on the inner surface of his ellipsoid, Windows appeared and illuminated. Some were Windows to the desks of the humans who supervised the assembly floor, and the engineers who had designed it and were constantly perfecting it. Not all Windows were open. Dr. Sanderson’s was (mercifully) closed, as was Mr. Romero’s. (Ditto.) Dave was there, and waved to him. So did nine or ten others.

Most of the Windows were views of the Floor. 90% of Building 800 was a cavernous hall filled with industrial robots. There were seven-hundred fifty-seven robots in Building 800. Simon knew them all as though they were extensions of his own mind-which they were.

The boundaries between his mind and the building were “soft.” Simon leaned his head back slightly, and relaxed. The optical network channels opened to receive him, and he slipped into them, sending his awareness out to control hubs all over the building. At his touch, each robot on the assembly floor came to fluid life, testing the quality of its communication and the limits of its motion, all the while diagnosing its own condition. Each returned a status to Simon, and with each status signal Simon felt himself growing more and more complete.

The welders pivoted their laser heads down toward their testplates, and fired. Sensors measured the strength and purity of their beams, and responded. Parts bins vibrated and checked for the presence of parts in their chutes. Hydraulic drills spun up and down again, indexing forward and back.

He felt them self-test. He felt them reply. He became one with them. Ready. Ready. Ready. Ready…Ready!

Most critical were the Positioners. Nearly half the robots on the Floor did not wield lasers or wrenches or drills. Their job was to move assemblies and ultimately finished copiers around the Floor. At one time this had been done with motorized rollers and belts. No more. The Positioners were arms, with exquisitely controllable wrists and hands. The hands were coated with foam and equipped with hundreds of minute pressure sensors. Some were only inches wide. The largest had grips six feet across, on hydraulic arms as thick as a human’s thigh.

Together, they implemented Transfer Over Separated Spaces. Parts, assemblies, and finished copiers were not rolled around the building. They were thrown, on minutely calculated paths, each path computed and timed so that a part would arrive precisely when needed, with a Positioner’s hand opened to grip it, slow it, and then hand it to whatever device required the part to continue the assembly process. With the Floor running at full speed, as many as five hundred separate objects were in the air at once. Every single one of them was thrown, and tracked, and caught by the GAI Simple Simon, Factory Automation Real-Time Supervisor.

Simon’s smile broadened as the last of the robots responded. Jester, no way. Juggler, yeah.

Odd Lots

  • After being in the water for as many as four years, a broken camera turns up on a California beach with the SD card still in it…and still functional, complete with a hundred-odd photos taken before the camera was lost. I marvel first at the durability of these cards in a corrosive medium–and then at how little circuit board there actually is inside the SD card itself. Wow.
  • There is an ice cream truck that goes down Alles Street here in Des Plaines, playing a midi riff of a familiar old song–and, periodically, a slightly creepy woman’s voice calling, “Hello!” This is evidently pretty common, but judging by some quick online research, the songs are different for almost every ice cream truck out there. (The “Hello” voice appears to be the same.) The truck came by here late yesterday, shortly before the storm rolled in, and I suddenly recognized the song: a bouncy variation on the old Southern hymn “Holy Manna,” often known as “Brethren We Have Come to Worship.”
  • And pertinent to the above: I only recognized the melody because Lorie Line played it in a medley with “The Lord of the Dance” on her Heritage Collection Volume 1 CD. She plays it fast, much faster than I’ve ever heard the majestic old hymn itself played in church. (The song is not credited by name on the CD, but it’s there–and the CD is very much worth having.)
  • Damned if these don’t look like drumlins. On Mars. (The other kind of drumlins–and yes, I am very familiar with them. More on the naming of alien artifacts in an upcoming entry.)
  • I’ll come back to this issue once I’m home and decompressed a little, but Glenn Reynolds posted a case history of a man who had non-alcoholic fatty liver disease (also called NASH in some circles, for Non-Alcoholic Steatohepatitis) eventually ascribed to eating/drinking fructose. Depending on your genetics and how much you consume, fructose can send you all the way to cirrhosis and death. This article (linked to by Reynolds) is a must-read. This one is worthwhile as well. (Thanks to Bruce Baker for alerting me to the post.)
  • And while we’re slogging through the Carb Wars, well, fake fat makes you fat. (More and more research indicates that real fat does not.) And let’s not forget that little issue of “anal leakage,” gurrkh. (Thanks to Pete Albrecht for the link.)
  • Xoom, meet SD slot. SD slot, meet Xoom. You guys have been traveling together for over a year. It’s time to shake hands. In Europe . The problem in the US has to do with the “Google Experience.” Somebody at Google is holding back card slot support, and thus (I’m guessing) a great many sales, including one to me. I smell rentseeking somewhere.
  • On the other hand, if all you want is an Android ebook reader, this might be worth a look. $99? Who cares if it’s only Froyo? (Forgive me if I’m skeptical that it’ll ever see retailer shelves at that price.)
  • The creator of this device calls it “technofetishism,” and it is. That doesn’t keep it from being amazing, and killer cool. (Thanks to Bill WB4WTN for the link.)
  • Finally: How To Make a Mask With Photoshop. I always wondered if that would work.

Uncle Jeff Tricks

Katie-Julie-06-13-2011.jpgTricks? Oh…one of them is that I just disappeared for a week, but I’m now back, having spent five days tending small girls while their parents took a much-needed jaunt to Las Vegas for the wedding of a close friend. Carol and I kept Katie and Julie fed and entertained and (mostly) happy, which is no small feat. We have never had children. We don’t have any real kid experience, especially with girls. We spent plenty of time with our nephews at the same age 20-odd years ago, but boys are…different.

We did our best. A lot of it comes down to devising Uncle Jeff Tricks that interest them for more than a few minutes. I had some success there. Trick #1: The three of us sat on a blanket on the grass in the backyard for some time, eating pretzels. Julie evidently feared that I would starve, for each time I crunched down a pretzel she kept handing me another. Never willing to let a learning opportunity pass by, I began biting portions off the pretzels and making them into letters.

“What’s this say?” I asked Julie, holding up a suitably mutilated pretzel. (Katie is now four and a half, and has her letters down cold.)

“R!” shouted Julie, obviously delighted. I put the pretzel down. She handed me another. I nibbled off a different set of bits, and held it up.


“O!” she shouted, giggling. And so it went. Soon I had spelled their last name out in multilated pretzels. (See above.) That “E” was a bitch. I ended up eating ten or twelve before I got one that E-ified without crumbling into loose punctuation.

JulieAndPullup300Wide.jpgTrick #2: I tried to use the large population of balls in the backyard to model the Solar System. The colors were wrong, but I got the sizes in the ballpark–right down to a slightly greenish tennis-ball Moon for the Earth. Alas, before the lecture began Julie decided she wanted to play planet-soccer, and whap! Uranus got kicked down the gravity well into the bushes. To celebrate, our junior niece ran into the house and came out a minute later with a (clean, whew!) pullup on her head. This was not an Uncle Jeff trick. Really.

Trick #3 worked out a little better, especially for Katie. I poked around the edges of the yard until I found a reasonably intact maple seed from last year’s crop, and tossed it into the air. The girls had doubtless seen them spiraling down from the trees the previous fall, but hadn’t yet hit upon relaunching them. I explained that to work the seeds must be intact and complete (the squirrels eat the seeds and leave empty wings that don’t fly well) and challenged them to dig around the yard to find a special seed that flew better than all the others.

Julie was stumped, so I handed her the one I had picked up and launched several times. Katie, however, ran and got a Jewel grocery bag and spent the better part of half an hour walking around the yard, singing a song to herself while picking up any flyable maple seeds she could find and stuffing them in the bag. I’m not sure many seeds got launched, but trust me, there won’t be any new maple seedlings in the yard this year.

Katie did pick a favorite, and she’s holding it in the photo above.

Trick #4 fell flat: I tried to teach them to make grass whistles. This was a stretch, and they don’t (yet) have the manual dexterity to hold a blade of wide grass between their thumbs in such a way as to make the monumentally irritating sound that grass makes when blown on just so. Katie, frustrated, decided to simply imitate the whistles I was making with a blade of grass, and Julie soon joined in. They are excellent mimics. The two of them sat screeching along with Uncle Jeff’s blade of grass until the blade disintegrated and the two of them got bored. I imagine the neighbors were grateful that grass is as flimsy as it is.

Herding girls is hard work, and it took a day or so for the two of us to fully recuperate. I expect to be back at full vigor tomorrow, and need to be flailing at Ten Gentle Opportunities in a very big way. I’ll let you know how it goes.

A Compact Steampunk Computer Table


Here’s a recent project of mine that isn’t quite finished yet, but it’s a beautiful illustration of why I love pipe fittings. I’m attending Walter Jon Williams’ Taos Toolbox writers’ workshop in July, and I needed a compact computer and a small table to set it on. The computer is hiding behind the 20″ LCD: It’s a Dell Optiplex GX620 USFF (below), stuffed to the gills and tricked out right.

GX620USFF.jpgThe table is entirely my own design. I had the Unfinished Furniture Warehouse here in Colorado Springs make me an oak tabletop 20″ X 28″, stained to match the woodwork in my office. Back in 2006 they built my primary computer table, and did a wonderful job of it. Ditto this project. The legs are all standard pipe fittings and standard lengths of 1/2″ pipe, as many in brass as I could find. I’m short one brass tee (and some of the fittings still have label cruft on them) but that’s an hour’s work to fix.

Why bother? I’m very particular about the height of my keyboard relative to my chair. I like to be slightly above and look slightly down at my monitor. Having to look up even a little kinks my neck and gives me splitting headaches. Experimentation years ago showed 26″ to be an almost ideal surface height, at least when using one of my treasured Northgate keyboards, and that’s what I did here. The four brass unions in the legs add 2″ to the table height, which would otherwise be 24″ and a hair low. The unions also allow the legs to be easily removed from the tabletop for transport in the back of the 4Runner, as they will next month.

I couldn’t find copper or brass threaded pipe in sections longer than 6″, so there will be some galvanized iron in the final product. I may buy a buffing wheel and shine the hell out of the zinc, and in the end it’ll definitely be a striking piece. Best of all, it didn’t take a huge amount of time to do, compared to some of the boggling steampunk craft creations you see online. I’m trying to see if I can finish a novel a year for the next several years, and that will require not spending a huge amount of time on unnecessary refinement. Pipe fittings are steampunk Tinkertoys, and I was good at Tinkertoys. I’m also good at pipe fittings, and it was a fine thing to find myself elbow-deep in them again.

Odd Lots

  • Here’s another take on the EasyBits GO debacle, from a guy who used to work at Easybits. Even if it’s not a trojan, it’s still crapware, and careless crapware at that. The Microsoft connection is intriguing: MS will soon be reviewing the entire Skype ecosystem, and may decide to do some decontamination. I don’t think it will go well for EasyBits.
  • Down in the trenches in the Carb Wars, people who yell, “A calorie is a calorie! It’s just the laws of thermodynamics!” don’t understand thermodynamics. I’ve known this for years. Here’s a good explanation. (Thanks to David Stafford for the link.)
  • Mike Reith saw a pure white squirrel awhile back, up near Denver. I had never heard of non-albino white squirrels before, but they exist, and appear to be spreading due to evolutionary selection–by humans.
  • Maybe it wasn’t us who extinctified the Pleistocene megafauna. (Or at least our paleolithic ancestors.) Maybe it was the Sun. Scary business. (Thanks to Jim Strickland for the link.)
  • From the Words-I-Didn’t-Know-Until-Last-Week Department: prosopagnosia, the inability to recognizes faces or familiar objects. (Thanks to Bruce Baker for calling it to my attention.)
  • From Pete Albrecht comes a link to a video of a train wreck caused by a tornado–with the wrinkle that the wreck is filmed from a security cam on one of the freight cars. Toward the end we see a derailed tanker striking sparks as it’s dragged against the rails. Made me wonder what would have happened had it been full of LP gas…
  • Forgive the vulgarity and the pervasive comics/movies influence, but this is a point that needs to be made, and textual fiction is no exception. (Thanks to Frank Glover for the link.)
  • I like sprouts. I haven’t eaten them for ten years. Here’s why. Alas, being organic doesn’t help. (Thanks once again to Pete.)
  • Here’s a cogent (and funny) illustration of a great deal of what’s wrong with science these days. Hint: It’s not science. Most of the problem is the butthead festival we call the media. (The rest is the grant system.)

Sampling Today’s Output: Ten Gentle Opportunities

Having gotten stuck on The Everything Machine a couple of days ago, I went back to my whimsical novel of magic-as-alternate physics (and spells-as-software), Ten Gentle Opportunities. Sales of my 99c ebook fantasy novelette “Whale Meat” (epub) have been unexpectedly good. You guys want magic? I give you magic: object-oriented magic. Oh, and zombies. Gotta have zombies these days. Here’s a snippet from this morning’s work, which comes immediately after the short piece I posted last Halloween:

Styppkk’s snerf-sense brought him fresh indication that Jrikkjroggmugg was hard at work on something on the other side of the wall. The angry Adamant had his number by now, and would not use any cheap stock spell that could be subverted by a mere Hkkrr.

Quickly, then! Using his left pinkie as a lamp, Styppkk dumped both the material and immaterial contents of one of his many pants pockets on the ground. A zombie activator: basically a quarter of a prtynytty, ground fine and mixed with some blood, bile, and toad stool, all rolled into the payload of a small black-powder bottle rocket. A packet of obedience dust clipped to a packet of etheric intelligence booster might also be useful, assuming the trigger spell wasn’t broken. (Always a risk when you bought cheap magic at Shazam’s Club.) A reputedly unreliable can of generic zombie repellant rounded out the kit; next time he would pay another bkk to get real Zom-B-Gone, and worry less.

Styppkk stuck the little rocket’s bamboo tail into the eyesocket of a nearby skull and struck a match. After a moment for the very short fuse to sizzle, the activator rode a little arc of fire four or five cubits into the noisome air. With a quick pop! it burst, scattering its foul-smelling dust in every direction. Styppkk ran out toward the center of the lychfield, rubbing his hands in anticipation.

Through the twin daggers in the visor of his iron helmet he watched the process begin: little glowing wisps twisting and darting in short motions synchronized to the unheard but deeply felt double beat of the World Heart. Twist-twist and pause, dart-dart and pause, descending and flowing into the stiff bodies lying everywhere around him.

He watched them shudder and stretch, gathering limbs beneath them and shoving away from the ground. The odor in the air changed from the dull, dank smell of stagnation to the sharp reek of rot. In waves radiating out from the center of the lychfield they stood, staggered, and scratched their heads. Those that still had noses raised them, turning to follow the strong scent of magic that surrounded Styppkk. Step by shambling step, they lurched toward him.

Styppkk gave himself a few quick schpritzes with the bargain-bin zombie repellent–head, crotch, and armpits–in case things got a little too cozy. He then picked up a sit-by-nellie spell from the pile of oddments at his feet.

“You guys need something to do,” he said aloud. The spell seemed reasonably well-made and certainly strong enough, somewhere past yellow if not quite green. Styppkk cranked the range up as high as it would go, poked the repeat-until-break spot to set it, and then hit the trigger.

Tapping his teeth together to keep the beat, Styppkk began a hoary old folk dance he’d learned at his cousin’s wedding years ago: Hands out, hands flipped, hands on hips, hands behind head, wiggle butt, jump and turn 90 degrees. All around him the newly animated zombies imitated his every move. He went through it a second time (more slowly, to go easier on decomposing limbs) and then, spinning his middle finger for emphasis, poked the segno.

The auto-arrange property of the spell worked beautifully: In perhaps a score of beats the zombies had spaced themselves equally into a perfectly rectangular constellation of wiggling, writhing doom.

Styppkk had the cover he needed. It was now Jrikkjroggmugg’s move.