Jeff Duntemann's Contrapositive Diary Rotating Header Image

Remembering the Known Unknown

Now, this is a weird one: Yesterday, while talking to Carol about how monasticism amplifies the dangers of dualism, I tried to remember the name of the poet who wrote “Wherever the Catholic Sun Doth Shine.” Failed. This annoyed me; the poem is a very big favorite of mine, and someday I’ll have it printed on a poster and framed. I punted and went on with the conversation, but the memory failure rankled me.

Ok, sixties moment and all that. Happens to the best of us. The weirdness started when it suddenly occurred to me that the last name of the poet was the same as the last name of Indiana Jones’s archaeologist rival in Raiders of the Lost Ark. I was absolutely certain that it was the same name…but I still couldn’t remember the name itself.

Sheesh. I could see a picture of the poet. He looked a little like H. P. Lovecraft with a squarer face, and I knew that the two were contemporaries. I could see the archeologist in the movie. I could even hear his voice. The name, nowhere to be found.

It hit me sometime later: Hilaire Belloc, of course. And the fictional archaeologist, Rene Belloq. (I don’t consider the difference in spelling significant.) I think most of us have the experience of remembering facts about a person while failing to remember the name. I distinctly recall asking Carol: “Who was the woman in Albuquerque who showed a bichon named after G.W. Bush?” I could see the woman in my mind. I could see the bichon. I knew where they lived. Carol had to remind me of the woman’s name.

I don’t think I’ve ever before had the insight that two people had the same name, without being able to remember the name itself. I’ve read a number of arguments that the invention of language made our brains explode and allowed us to make the final leap to true intelligence. I’ve heard counter arguments too, and I think the counters have it: We could think long before we could speak, and when we evolved machinery for managing language, it ended up somewhere else in the gray matter. (Odds are that Michael Covington knows a little about this. Or maybe a lot.) I’m guessing that we store facts about stuff in one place, and we store names in another place. We store relationships in with the facts (I think) and we can recall and understand facts and relationships without necessarily having a name tag tied to any of it. I had a little plastic drawer devoted to spade bolts long before I knew the term “spade bolt.” Not knowing what they were called only became a problem when I tried to go buy more. (Like a lot of things in my junkbox, I have no idea where the ones in the drawer originally came from.)

I don’t bring this up because it’s surprising; in fact, it makes perfect sense. I’ve just never had my nose rubbed in it so vividly. We once lived in a world where everything was a game of charades, 24/7. Language was a damned useful invention. I’m a little surprised that it took us as long as it did.

Odd Lots

End of the Road for CS-in-a-Box

Big news today: Adobe’s CS6 product is the last one that you’ll be able to install “out of the box” from a retail copy. Much fuss is being made about a move that was lead-pipe predictable after Creative Cloud went live last year. Some of today’s new stories give you the impression that there’s some dazzling new browser-based whatchamacallit technology behind CC, but after reading the Creative Cloud FAQ I’m not sure there’s any radical re-engineering going on at alll. Creative Cloud is not a browser-based technology. It’s just a new release of a digitally delivered client-side app suite, with a difference: You have to connect to the Internet at least once every thirty days to authenticate it.

So calm down. It’s just stronger DRM, and a leakproof end-run around the First Sale Doctrine.

The DRM, like all DRM, is probably crackable. Having to re-crack it every thirty days will slow the pirates down a little, but I wouldn’t bet on it being impossible. DRM is less significant than then other half: You can’t resell bits the way you can resell discs. There’s a pathway to de- and re-registering an Adobe boxed product, but it’s a nuisance and I’m sure Adobe has wanted to eliminate the whole process for a long time. This’ll do it.

Going to a subscription model means that people will no longer be able to buy a box for $500 and then use it forever. Big shops may be able to justify the cost. Smaller shops may stick with old versions. Doesn’t matter. Adobe obviously wants to eliminate the perpetual-license home market, which has always cost more in support than it generates in revenue. Going to subscriptions means a predictable and mostly reliable revenue stream. Losing individual users and very small shops isn’t much of a loss, money-wise. I also wonder if this may be the end of the road for Adobe Resellers. CC may do for boxed software what self-published ebooks are doing for books: eliminating the middleman.

Now, one final point I haven’t seen others make so far: Without a boxed product for pirates to steal, Adobe will lose a certain number of sales from people who tried it illicitly, liked it, and then bought it. (Most people credit this model with giving Microsoft a lock on the office suite market back in the 90s.) This makes me wonder if the otherwise-puzzling release of non-authenticating copies of all CS2 apps back in January was intended to keep the piracy-driven sales channel alive. In a sense, Adobe provided a pre-stolen copy of CS for people to install and fool with, no risky cracking required. A certain number of those people will like it enough to sign up for CC for better apps and sync services. Also, don’t underestimate the value of skills developed in using a product line. Unlearning a product and learning a different product is a pain in the butt. (This is why student versions at breathtaking discounts make sense in the long run.)

And for all the talk about CC being the future of software, c’mon. There are maybe four software companies in the universe that can pull this off. The future for $20-$50 apps like Atlantis is bright, and open source software has never been better. Adobe has kicked itself upstairs. That leaves a whale of a lot more room for everybody else down here.

Odd Lots

The Pibow Case and Vesa Mount for Raspberry Pi

Last week I bought a Toshiba 23L1350U 1080p TV set as a display for the Raspberry Pi. It’s a terrific TV set, as TV sets go, and a reasonable monitor. I had to do some hunting around the configuration menus with the remote to get it out of TV mode and into PC mode, and then reduced the brightness until it didn’t make my eyes want to fall out and roll under my desk.

With that accomplished, boy, it’s a sweet display for the Raspberry Pi. The effective resolution is 1920 X 1080, which is a lot of pixels to push around for something not quite the size of a business card and running at a bare 700 MHz. It runs Scribus, Lazarus, and AbiWord tolerably well. In fact, the MagPi magazine is laid out with Scribus on an RPi, which makes this old magazine geek boggle.

Like a lot of people, I just let the RPi board lie in the thick of its nest of cables for awhile. I then cobbled a mount out of scrap aluminum for an old SX270 all-in-one stand, and that works pretty well on the matching 2004-era Dell 17″ 4:3 monitor. That’s now my spare RPi system. I bought a second board for the Toshiba and wanted a case to put it in, to get it off the desk and out of the way.

Pi in PiBow Case 1-500 wide.jpg

The Toshiba provides an ideal place to put the case: on the 100mm VESA mount at the back of the TV. The Pibow people sell these slick transparent cases consisting of seven layers of CNC-cut plexi, stacked, with vent-perfed front and back panels. The board fits snugly in the void left in the slabs by cutting. The plexi layers are not glued or fastened to one another in any way, which makes assembly tricky. Four long nylon bolts hold the assembly together. Tip: Don’t get the layers out of order, as they are not numbered.

Pibow on Vesa 1-500 wide.jpg

Pibow sells a VESA mount as a separate item. It’s simply a different rear panel, with four ears drilled for both 75mm and 100mm VESA templates. Bolted to the VESA inserts, it’s up and out of the way and reduces cable clutter radically. I’m wondering how warm the board will get inside the case, but as I’m not overclocking the board (yet) I suspect it’ll be fine.

I’m going to use Adafruit’s nano-Wi-Fi adapter for networking on this unit. It hasn’t come yet, and I’ll report on how easily it goes in and how it works in future entries.

Where’s the rest of SQLite?

Wait. Oh. That’s all there is.

Really.

I had this problem once before, with the Atlantis word processor. It’s 5MB installed. 5. The first time I installed it I suspected I had downloaded a corrupt file, but no: However they did it, the wizards over at Atlantis implemented a damned fine Word 2000 clone in 5MB. It doesn’t have the collaboration features, but for solo work it’s a very big win, and exports extremely clean epubs as a side benefit.

For a fair number of years now, my non-Delphi database work has all been in MySQL. (With Delphi I use a VCL product called DBISAM, which is linked into the compiled .exe and doesn’t have to be installed separately.) Because SQLite is available for the Raspbian OS and MySQL isn’t (as best I know; Percona runs on Arch Linux) I’m going to be using SQLite as a database teaching tool. So when I installed it the other day, I stared at the 600K .dll and wondered, Is that all there is?

Yes, that’s all there is, my friend–so let’s keep dancing. Let’s break out the tools and have a ball. ‘Cause that’s all there is!

Wow. I verified it by searching for the sqlite3.dll file on my system. The Calibre ebook manager uses an older version (as do a few other things) and the file was not only that same unbelievable size, but smaller. Can you implement a relational database engine in only 372K? I guess you can.

One reason SQLite’s .dll is so small is that it contains no UI at all. There’s a bare-bones command-line management utility available as a separate download. As some of you may know (or suspect) I dislike command lines intensely. So it wasn’t long before I had two free GUI management apps for SQLite databases. One was recommended by Chris Newman’s book on SQLite, SQLite Database Browser, and the other is SQLiteMan. Both are free and installed without drama. So far I prefer SQLiteMan, but it’s really too early to tell. SQLiteMan is supposedly compilable on the RPi. I intend to try that. I’ll let you know how it goes.

One other reason may be that SQLite is “typeless,” which means that the engine does not do type-checking on reads and writes. You can put anything you want in any field (apart from key fields, which are treated specially) and if it makes no sense, it’s your screwup on your conscience. I’m a strongly typed guy and this would rankle, if it didn’t allow a database engine to come in at half a megabyte.

There are wrappers for most common languages, including Lua and Lazarus/FreePascal, both of which I have here and have been fooling with in recent months. I’ve been very spoiled by DBISAM, and I’m interested to see how well SQLite works in non-server applications. More as it happens.

Odd Lots

Goof-Proof Meets Green Giant

Goof-Proof Flying-350 Wide.jpg

Well, the punk felt lucky today, so after Carol and I got back from some shopping midafternoon, we threw Dash and QBit in the back of the 4Runner and went down the hill to the park to fly a couple of kites.

But not just any kites. In the past few months I managed to score a Hi-Flier Goof-Proof Kite and a classic RB Toys Green Giant kite. Both are collectible, but like I said, it was a beautiful day and I was feeling lucky. I was lucky, actually, since I got both of them back to the house without damage or drama.

The Goof-Proof Kite is rare but not legendary, and most people have never even heard of it. It’s listed in the 1977 Hi-Flier trade catalog but not in the 1987 catalog. It’s a 36″ plastic bow kite with a twist: There’s no bow. The cross stick is in two pieces, and the pieces attach to the vertical stick with an injection-molded plastic connector that provides about 15% dihedral and a single mount point for the string. The dihedral makes a bow unnecessary, and the single mount point makes a bridle unnecessary. You tie your string to the plastic loop at the center of the connector (which pokes through the plastic sail at the kite’s center of balance) and that’s it. Done. Goof-Proof.

Goof Proof Connector 500Wide.jpg

I don’t have a lot of experience with single-point kites, and what I’ve had has been marginal. The problem is that the bridle and the bow are the only real adjustments you have on a two-stick kite. You’re at the mercy of the wind and the kite’s designers. In this case, the kite did fairly well in the very light and intermittent wind we had in our late afternoon. It was unstable without a tail, but 4′ of tail did the trick and didn’t weigh it down very much. (Kite tails are about wind resistance, not weight.)

I paid $25 for it, and I’ve told people for years not to fly classic kites. But having done that, I went back to the car and did something even nuttier: I flew an original 1972 RB Toys Green Giant promo kite. I don’t have to describe the kite in detail. If you want to know more, read the larger article on them, linked above. It was the first time I’d flown a kite like that since 1987. I hadn’t imagined it: They fly better than almost anything else I’ve ever had. But having paid $50 for it (and considered it a steal at that price) actually tossing it into the air was crazy. 41 years is a long time, and I don’t know how well the plastic center connector keeps on a decadal scale. (RB Toys didn’t expect they’d be flying forty years after manufacture!)

1972 Kite With Jeff-500 Wide.jpg

I had another insight while the Green Giant was in the air: That little camera we found in the bushes a few months back might be just the thing for kite aerial photography. I’d have to make a mount for it, and I would need a bigger and ruggeder kite than I have right now. But remote control really isn’t necessary if all you want to do is take video. Start the camera, launch the kite, and let it run as long as the kite’s in the air. I’ll read up on it, and when time allows I think I’ll try it.

When time allows. Aye, there’s the rub.

Odd Lots

Novel Compression Schemes

I’ve been selling my writing professionally since I was an undergrad, now literally forty years ago. I’ve had to do remarkably little selling. My first story and first article both sold to the first places I sent them. I’ve never had a publisher turn down a computer book proposal. (Granted that selling books to a publisher you co-own is rarely a challenge.) My fiction has been a mixed bag, but in general a story either sells quickly or not at all.

All changed. This is the toughest market for novel-length SFF since, well, forever. I’ve just spent two years writing Ten Gentle Opportunities, and now the selling begins. This is a new thing for me. I’ve historically considered tireless self-promoters to be tiresome self-promoters, and now I are one. I hate to go that way, and if there were another way I’d already be taking it.

It begins this weekend, when I have a chance to pitch to a major SF publisher at the Pikes Peak Writers Conference. The pitch happens in a time slot literally eight minutes long. I have eight minutes to make a bleary editor hungry to read my book. No pressure.

The primary challenge is to summarize the novel in synopses of various sizes, from 5,000 words down to…140 characters. Various markets and agents prefer synopses of various sizes, so they’d all better be right there on the shelf, ready to go at a moment’s notice.

This is harder than it looks; nay, it’s diabolical. The story itself is insanely complicated to begin with: One of my beta testers described it as “a Marx Brothers movie with twice as many Marx Brothers.” That’s just how I write, as anyone who’s read The Cunning Blood will understand. I have a mortal fear of not giving my readers their money’s worth, and a venial fear of being boring.

The way to write synopses of five different lengths is to start with the longest one, and write each one from scratch. In other words, don’t write the longest one and then try to cut it down to the next smaller size. This is like trying to turn hexacontane into propane by pulling carbon atoms randomly out of the middle; sooner or later the molecule has too many holes and falls apart.

It’s work, but it works. I finished the 300-word synopsis earlier this morning, and then set my hand to the gnarliest task of all: the “elevator pitch,” AKA logline. I get to summarize a manic 94,200 word story into 140 characters. I’ve actually been trying and failing to nail this for literally six months, since I finished the first draft. I first thought it would be easy, as I used to write cover copy for early Coriolis books. Heh.

The solution, as I said, is to start from the beginning. Each time I wrote a synopsis from scratch, I was forced to take two more steps up the ladder, and look down at the story from a little more height. You literally tell it again, each time with half the words you had last time. In the process, you get a clearer sense for what the story is about, and what the major themes are. Finally you end up with something you can say in an elevator between two adjacent floors:

A spellbender flees to our world with ten stolen nuggets of magic, and a crew of AIs helps him battle a repo spirit sent to retrieve him.

Will this work? Dunno. I guess I’ll find out this weekend.