Jeff Duntemann's Contrapositive Diary Rotating Header Image

linux

Odd Lots

  • On Monday I returned the last third-pass page proofs (of a very gnarly part of the book, the partial instruction reference) and if the publisher’s schedule is to be believed, Assembly Language Step By Step, Third Edition goes on press tomorrow. Real books should be out of the bindery and in the warehouse by September 22.
  • We came within a few hours of having a sunspot-free calendar month in August, but then very late Monday night, a barely visible sunspeck showed up, ruined the run, and then immediately started to vanish. The sunspot minimum appears to be heading for a double bottom, and there are people at NASA suggesting that deeper mechanisms are changing within the sun, and we may be a long time before seeing anything like a proper sunspot peak. So much for DXCC on 10M.
  • Cory Doctorow speaks up on cloud computing, the goal of which, he says, is to allow companies to make money in a mature computing market by charging you month by month for computional facilities that you already have at home. So tell me: How many people actually collaborate in the Cloud, as a percentage of people who actually compute? I think it’s in low single digits–which suggests that the Cloud as an idea is something like 95% scam.
  • If you’re following Michael Arrington’s CrunchPad project, the CrunchPadFans blog is worth a visit every week or so. It’s a little sparse, but there hasn’t been much news generally on the long-awaited gadget in recent weeks. I intuit that it would make a jack-fine ebook reader, if software to handle the major formats is included or installable.
  • And speaking of ebook formats, Sony has announced that it will be supporting the EPUB format in its new reader products, days after Google’s announcement that it will be doing the same within its Google Books system. EPUB is a reflowable open standard not controlled by any particular firm, and if I had to finger a winner in the ebook standards wars (at least for primarily textual works) this would be it.
  • Further relevant to ebooks is a reader app I’ve been fooling with on Ubuntu: Okular, which is nominally a PDF viewer but can open and display lots of other formats, including DjVu, CHM help files, Epub, Plucker, MobiPocket, and a few others. Although it’s a KDE 4 app, I’ve had no difficulty making Okular run under GNOME. Okular on a suitable handheld Linux-enabled device could make a helluvan ebook reader.
  • And Okular led me to the KDE on Windows project, which aims to create native-code ports of KDE apps to Windows, with an installer to make it easy for non-techies. It’s early and the product doesn’t look as easy as it should be, but then again…it’s early.
  • I’ve discovered a much higher-resolution photo of the old Turtle Wax building at the Ashland/Ogden/Madison intersection in Chicago here. We would pass that building on the way to my grandfather’s house Back of the Yards back in the late 1950s, and my mother would always point out the 25-foot tall turtle on the top of it. Cool building, too, turtle or not. Gone now, alas–the turtle and the building both.

Odd Lots

  • Have been reading copyedits and catching up on any number of things after five weeks away from home. We’re going to have real books out of the bindery on or about October 1. For the time being, I’ll be glad to just Not Be Doing Book anymore. (And that should be on or about June 30.)
  • Some twit (maybe twits) wrote Twitter apps that store unique tweet ID numbers in signed 32-bit integers. The tweet count since startup is approaching the magic number 2,147,483,647. After that, tweet IDs become negative, and hilarity reliably ensues. Should be tomorrow; let’s watch.
  • In other recent software fails, Ubuntu 9.04 broke Skype out here, and made sound support work a little weirdly generally. The Mute button gets checked all by itself for no apparent reason. This is evidently not a problem I’m having all by my lonesome, but time to fix it has been scarce.
  • A 14-year-old boy got hit by a meteorite, albeit a smallish one. He got a 3-inch scar on the back of his hand, which (once the bandanges come off) will be the most interesting conversation piece he is ever likely to own, since he evidently had to give up the meteorite itself.
  • Building this must have been a picnic. (But I’ll bet the view’s to die for.) It’s a tourist thing, like the tchochke shop atop Pike’s Peak, but way cooler. And yet another reason I have to get back to France someday.
  • If everything goes well and the IC-729 still works, I may be out in the (pacified) woods somewhere working Field Day on June 27-28. (I hate to haul my IC-736 into the wilds, but I will if I have to.) I have an RV with a generator, an AH-3 antenna tuner, and an obscene amount of wire. I know I can’t use an RV park’s electricity, but can I use their water pipes for an RF ground?

Jaunty Jackalope in Only 2:45

I finished and packed off the introduction to the book today, which doesn’t leave a great deal more to do. I’m still “discussing” how to handle my two ASCII charts, which I laid out in InDesign and exported as PDFs. It boggles to imagine that nobody there knows how to insert a PDF into a print image, but that’s the impression I’m getting. Now and then I think publishing was better off when we strung books together with X-Acto knives and waxers.

Let it go, I keep telling myself. Nobody’s going to hang me if I don’t include a concise representation of the IBM-850 code page, as useful as it might sometimes be.

And my do-it list is calling to me. I knocked off an item today that’s worth relating: I upgraded the Ubuntu 8.10 instance on this machine to 9.04. I let the updater do it, just to see how automatically and how accurately it would happen. I’ve got a lot of software installed there (including several Windows apps under Crossover) and lots of configuration tweaks.

It happened completely automatically. I was asked twice if I wanted to keep the existing menu.lst file, which I didn’t recognize and didn’t run downstairs to look up. Alas, I told it to keep the existing one, which it obediently did–and thus didn’t update the menu display for Grub. I can fix that, but I’m annoyed at myself for being too lazy to look first.

Beyond that, as best I can tell, nothing was corrupted or left out or changed in any significant way. It took two hours and forty-five minutes, most of which was spent downloading 1,413 files from the repositories. It didn’t demand to reboot until the end of the process, which is a trick Microsoft should learn.

I admit, I was a little disappointed that there’s no funny animal in the default wallpaper. I liked the Hardy Heron art a lot; and Intrepid Ibex wasn’t bad once I got used to it, as much as it resembled a soda glass ring on a leather couch. Jackalopes don’t exist except in our imaginations (though there was one on the wall of the Pie Pan restaurant in Sauganash where we lunched with my grandmother in the early 1960s) so perhaps omitting it makes a rough kind of sense. Come October we’ll see what a Karmic Koala looks like. Maybe.

Anyway. It went great. Completely trouble-free so far. Highly recommended.

INC Whew

Well. A few minutes ago I found myself staring at the last line of the last page of the last chapter of Assembly Language Step By Step, Third Edition. I’m sure it’s a feeling a little like that described by some of my friends who took their time getting through college, and one morning at the end of a term found themselves thinking, “Hey! I have enough credit hours now! I can graduate!”

It took so long that I wasn’t quite ready when I realized that it was finally over.

I celebrated by playing the MP3 of David Buskin‘s “Flying Child” and singing along. Loudly. That felt so good that I played Dean Friedman‘s “Ariel” and sang along louder still. Rather than make myself a little too nuts by singing Danny Hutton‘s manic cover of “Funny How Love Can Be” I poured myself a Diet Green River and ate too many Cape Cod Robust Russet potato chips before collapsing in my comfy chair.

Ten minutes later, Carol got back from Crystal Lake after a two-day sojourn wrapping up our trip and (not coincidentally) leaving me free to work here in Des Plaines. That was a piece of timing, but Carol’s good like that. We understand one another in a quantum-entanglement sort of way that is the very best part of loving a woman for forty years.

In truth, I’m not quite finished. Chapter 12 is still first draft and needs a polish pass. I have to write a new introduction and bibliography, and add two pages to the instruction reference. After that, of course, comes proofs and so on, but it’s starting to look like I’ll have real books sometime this fall, probably by November and perhaps as early as October. It ran a little long (187,000 words instead of 175,000) but not long enough to fuss about. It soaked up almost all of my creative time and energy since last December. I learned a lot doing it, and as often as I found myself feeling ragged and annoyed at the scale or the pace of the project, I’m still glad I did it. The book has been in print now for 21 years across three editions (the first from a now-defunct publisher under another title) and could well be in print for another ten or fifteen. It paid off my mortgage. In fact, it’s made me more money than all my other paid writing projects put together, in all of the 35 years that I’ve been writing for money. It’s gotten to be kind of an institution around here, and I’ll rewrite it again if I have to.

But not this week. Please.

Marvell’s SheevaPlug

Two years ago, I discovered PowerLine networking and have used it ever since, first to cover a CAT5E “dead spot” in my Colorado house, and more recently to finesse Wi-Fi outages at Carol’s sister’s house. The Linksys PLE200 Ethernet bridges work fantastically well within our house, and have sufficient bandwidth to stream HD video. With one unit near my router downstairs, I can take the other unit and plug in to the Internet anywhere in the house where there’s a power outlet, and there are power outlets every six or eight feet on every wall in the place. So whereas it’s not quite Internet Anywhere, it’s pretty damned close.

I remember thinking with a smirk back when I first got the units that it wouldn’t be too long before somebody made Linux run on it. And suppose somebody did? What would be the use of that?

Well, a use occurred to me a few months later, though it wasn’t anything I felt like discussing at the time. But this morning I saw something on Slashdot that made me change my mind. It’s the Marvell SheevaPlug. It’s an 1.2 GHz ARM-based Linux box in a wall wart, and bears a striking resemblance to the various PowerLine brick bridges that I’ve seen in the last few years. It’s got a gigabit Ethernet port and a USB 2.0 connector, but no other interfaces. You talk to it through the Ethernet port, and can use the USB port for external mass storage or whatever. It takes its power from the wall outlet it’s plugged into. It’s only missing one (obvious) thing: PowerLine connectivity.

One of these plugged into a wall is cute, but not a major win. Equipping them with jelly-bean PowerLine logic changes everything: One plugged into a wall downstairs with a terabyte hard drive on the USB port, and three or four plugged into the wall upstairs acting as USB peripherals to computers, and you’ve got a media distribution system for cheap, with no dependence on CAT5 or even Wi-Fi. You can do that now via Wi-Fi, piecing together a system from components. Products based on the SheevaPlug (which is actually an OEM-able hardware platform) already allow this, with more or less kafeuthering, usually more. (See HipServ and PogoPlug.) My take is that if the idea is in fact to make a cheap and simple media distribution component for home use, PowerLine is a no-brainer.

The SheevaPlug does not have PowerLine connectivity, but someday it or something like it will. And a cheap (in my view, ~$80) implementation could turn an entire hotel into a LAN party–a LAN party where nobody knows precisely who or where anybody else is.

I’m not sure if that’s important to gamers or not. I’m not a gamer and have never been to a LAN party. I have read online, however, that there are LAN parties at which the games are almost a secondary attraction, behind the unusual ability to share files at high speeds with few (if some) concerns about Big Media’s enforcers. At public LAN parties, it’s always possible that the MPAA could plant a mole at the party. But if everybody’s sitting quietly in their hotel rooms either gaming or sharing files (or both) any moles tuning in with their own Sheevas would have a hard time knowing whom to call the cops on. Unlike Wi-Fi, it’s hard to get a directional fix on a PowerLine node, and without routable IP addresses, there’s no way to connect a node to a particular person.

This may or may not be technically feasible; it’s an SF concept for me, and I have a couple of story ideas that follow from it or at least make use of it. Much depends on how hotels are actually wired–and if something like this catches on, I’m guessing that they’ll begin soldering a low-pass filter on the 110v feed to every room.

But in the meantime, it’s cool to see my long-time prediction that computers will eventually become bulges between peripherals moving toward actualization. (I did not guess that computers would become their own wall-warts.) And there’s much more to say about what I call “backnets,” which are networks that happen in unexpected ways, often parasitically on other connections. Backnets may be the third coming of pirate radio, in which tweaking the Man is often more important than accomplishing anything useful. (Is there any fiction about pirate radio out there that you know of? Drop titles in the comments if you’ve got any. Thanks!)

Cranky Insight

I haven’t posted for eight days, and people are starting to send me notes asking if I’m all right. I am, though I’m not sleeping well and don’t have my usual energy. Whatever time and oomph I haven’t had to devote to family issues here I’ve been pouring into the book. I’m now 161,000 words in, of about 180,000 total, so the end really is in sight–but seeing the end isn’t enough. I still have to grind through the material.

I will take an opportunity to gripe a little, this time about the Insight GUI shipped for and with the gdb debugger. Insight isn’t perfect, and parts of it are excellent–especially compared to the molasses marathon of using naked gdb in a console, God help us–but a good deal of it is simply awful. I chose Insight as the example debugging tool for my third edition, in part because it’s technically a component of gdb and not an add-on. However, it comes closer to the truth to say that after I interviewed Linux debuggers for use with C-free assembly code, Insight was the last man standing. Most debuggers assume that they’ll be dealing with clib and C source code, and don’t know how to load a C-free executable, even if contains valid STABS or DWARF debug info. At least Insight allows assembly language source debugging in a window.

As grateful as I am for it, certain things about Insight make me nuts. Good example: The Memory view. This is an ordinary hexdump-style memory display, with only two means of navigation. You can scroll the dump up or down for 16 bytes by clicking the arrows, or you can type in a new address in an entry field. And I mean type–the GUI does not recognize paste from the clipboard. If you want to fill the field with a new address, the keyboard is all you get. Worse, moving up- or down-memory by clicking the arrow buttons takes one to three seconds to refresh the window. (This is not an exaggeration. I timed it.) An operation like that, on a 2.8 GHz machine, should be instantaneous. How about buttons to take us to the address currently in ESP or EIP? Or sheesh, maybe implement paste from the clipboard to the address entry field!

I’m tempted to blame it on the fact that Insight is written in Tcl/Tk, but I’ve actually used Tcl/Tk and I don’t think it’s inherently that slow. The only guess I would hazard is that because working in naked gdb is horrendously ponderous but still nearly universal in the Linux world, the guys who wrote Insight didn’t know any better, and thought that their results were transcendently wonderful. Not true. One click is often (if not always) worth twenty or more frantic keystrokes. To me, that’s a win. You command-line people should get out more.

Odd Lots

  • The dairy that delivered milk to our house when I was a kid was indeed Hawthorn Mellody Farms (as verified by the Sister of Eidetic Recall) which was unusual in several ways: They had an amusement park in Libertyville, Illinois, complete with a miniature train ride, a petting zoo, Western town, and pony rides, that was a famous destination in the 50s for suburban moms with station wagons full of Boomer kids. They were the first dairy to put pictures of missing children on milk cartons. And before they went bankrupt in 1992, they were one of the largest Black-owned businesses in the country.
  • Also relevant to my entry of Febraury 24, 2009: Dunteman’s Dairy evidently existed before 1939. A page out of the 1937 Arlington Heights phone book from Digital Past shows an entry for Dunteman’s Dairy at 830 N. Dunton Avenue in Arlington Heights. The 1936 phone book shows a listing at the same address for “L. Dunteman,” so Lenard may have begun operating the dairy from his back yard (not an uncommon thing to do back then!) in that year. Prior to 1936 his listing shows yet a different address. I’ll have to see what’s at that address today the next time I’m in the area.
  • Digital Past is a very good source if you’re doing genealogy research on Chicago’s northwest suburbs; awhile back I found the location and a photo of the headstone of Laura Brommelkamp Dunteman there, after looking in vain for some years. (She was the second wife of Henry Dunteman, founder of R. W. Dunteman Construction, which is still in operation in Chicago’s western burbs.)
  • Well, grub is still plug-ugly, but it’s no longer difficult to configure. I’ve been using KGrubEditor for over a month now, and it makes the job a breeze. Highly recommended.
  • Where’s my flying car? Well, it may be here: Yet another Skycar concept, but this time it’s more Mad Max than Flash Gordon. Put a big fan on the back of a go-kart, get up some speed, and then release the parawing. Off you go!
  • Philip Jose Farmer has left us. Along with Heinlein, Clarke, and Keith Laumer, Farmer was one of the SF writers who inspired me to keep going and make something of myself in fiction. I still consider the Riverworld concept one of the most compelling ideas ever to surface in SF, even though the series wandered toward the end and would have been much better had it been three books (on the outside, four) instead of five.
  • I was going to do a whole entry on this, but Cory Doctorow said everything I intended to say about whackjob Roy Blount Jr and the knucklehead Authors’ Guild, who want money from anyone who does text-to-speech. There’s nothing I can add, and as a longtime author who still makes money writing, I think I have a right to strong opinions about this. Let me quote Cory here, and cheer:
  • Time and again, the Author’s Guild has shown itself to be the epitome of a venal special interest group, the kind of grasping, foolish posturers that make the public cynically assume that the profession it represents is a racket, not a trade. This is, after all, the same gang of weirdos who opposed the used book trade going online.

    Debuggery

    In parallel with editing and (increasingly) writing chapters, I’ve been interviewing tools to feature in later parts of the third edition of Assembly Language Step By Step. Kate has the gig for editor, but the debugger slot has been annoyingly open for a long time. Since the beginning of the year I’ve been interviewing debuggers and GUI debugger front-ends for gdb, which is more an engine than a debugger and may well be the single most painful piece of software I’ve ever had to use. (Don’t get me started on that. Whoops. Too late.)

    It’s been frustration cubed. Here are some notes on the fray thus far:

    • Nemiver does not work correctly with assembly language executables.
    • Insight would be a good choice, but it is one of the ugliest things I’ve ever seen running on Linux, and I mean ugly in the sense of, well, ugly: Badly rendered Motif/Lesstif screens that seem scruffier than they should be, with hard-to-read tiny fonts. I know why they used that widget set (it’s very lightweight) but I also think that’s no longer anything like an issue in the Linux world.
    • DDD is uglier than Insight, and doesn’t work as well.
    • KDbg was my favorite for a long time, because it’s not ugly and fairly straightforward to use, but its help system is broke and I never figured out how to dump memory or display named data items from assembly. Like Nemiver, it was really created with C and C++ in mind. Like people tell me endlessly (and shut up, already!) “Nobody uses assembly anymore.” Heh.

    As I race past 65,000 words and close in on the end of Chapter 6, I was forced yesterday to make an executive decision and call Insight the winner. Insight is interesting in a number of ways: It’s not a GUI front-end for gdb; it is gdb, and has knowledge of gdb’s deep internals in a way that a separate app simply can’t match. The GUI was written in Tcl/Tk, a language I learned and enjoyed almost fifteen years ago when I got Ousterhout’s book in for review at PC Techniques. One would think it would be no big deal to rewrite Insight for Gtk or Qt, but I don’t see the dust from any stampede.

    So I got me an ugly debugger. That is (given my deadlines and the significant amount of money riding on the project) better than no debugger at all.

    KDE Follies

    I’ve been busy. And I’ve had headaches. This is mostly why you haven’t heard from me in a few days. I wondered for awhile if I was getting headaches because I was busy, but I’m coming around to a different point of view: I’m having headaches because I’ve been fooling with KDE.

    I used to like KDE, until KDE 4 happened. Kubuntu 8.04 would not install correctly on two of the three machines I tried it on, and on the third it malfunctioned weirdly after a couple of days of very light use. I had almost no trouble with Kubuntu 7.10, apart from its failing to set up a network printer. That was KDE 3.5, which I liked. The press on KDE 4 was not good, and I figured I would let Kubuntu rest for a couple of cycles to see if the KDE 4 codebase would shake out a little.

    I might have waited for 9.04 except that I couldn’t get the KDbg documentation to run under GNOME. I like KDbg a lot; it’s a beginner-friendly front end to the highly human-hostile gdb debugger engine. I’d like to cite it in my book, but there are a couple of things about it that I just can’t figure. Press F1, right? Well, when I do that, I get a mysterious error dialog:

    Could not launch the KDE Help Center:

    Could not find service ‘khelpcenter’.

    I assumed at first that this is what happens when you have a KDE app running under GNOME, but the kate editor is also a KDE app, and its help document comes up without any trouble. The khelpcenter4 package is installed on the system. The obvious thing to try is to run KDbg under KDE, and see if things work any better.

    Of course, to do that you have to have a running install of KDE.

    I downloaded the latest Kubuntu ISO (in 13 minutes on BT!!), burned it to CD, and booted the live install on my SX270, the same machine on which Ubuntu 8.10 installed without a glitch. Kubuntu detected the monitor resolution, but…the display blacks out every six seconds for about three-fourths of a second. Otherwise (heh) it runs perfectly. The blackout is not a fade; the screen just turns black instantly. It made me a little nuts, but I suffered through this game of desktop peek-a-boo long enough to install KDbg. I pressed F1. Same dialog. KDE can’t seem to make its own help system work.

    So KDE is on that certain list of mine right now. Even though it displays the assembly source for single-stepping, KDbg won’t display named initialized data in NASM executables, and the Memory window refuses to display anything, initialized or otherwise. Being able to inspect data in memory is mighty damned useful, and I’m starting to think that KDbg isn’t really set up to debug assembly language. Like almost everything else in the Linux world, it’s a C thing. Maybe there’s a magic command-line option that allows it to interpret stabs format debug data for assembly language, but there’s nothing much about it online. Clues welcome.

    And Kate? The only thing it lacks is a shortcut for running make or launching a debugger, but that’s easy enough to do in the terminal window. It’s graspable enough for beginners, and that’s what I’m striving for here. Newcomers should not have to learn EMACS or gdb to make “Hello world” happen in assembly.

    I don’t want to have to use gdb Insight (if there’s an uglier widget set than Lesstif’s I’ve yet to see it) but if I can’t get KDbg to browse data in memory, I may have to. And the decision has to be made soon. (I feel another headache coming on…)

    The Yard’s All Out of 3 X 4s…

    I’ve gotten far enough into the revision of Assembly language Step By Step that I need to have a Linux machine running up here in my office all the time. I often spend hours in Ubuntu on this dual-boot machine, but there are still some things I need to do in Windows, and booting in and out to bounce from one to the other is time wasted, and pointless when I have old PCs stacked like cordwood in the basement.

    SX270AndBracketOnDesk2.jpg

    I have one of the very cool SX270 stainless-steel all-in-one brackets that combines a 10cm VESA monitor mount with a couple of tangs to hold an SX270 mini-PC behind the monitor. It makes for a very compact system, and in fact it was the integration of the SX270 and the monitor on the bracket that first brought the SX270 to my attention some years back, when I saw a couple of them at our optometrist’s office. So I took my spare SX270, parked it on the bracket, dug a Dell keyboard and a mouse out of the odd lots box, and realized that I did not have a VESA monitor to hang on it. So off we went to Best Buy, where I learned from the earnest young woman in the computer department that they had not sold 4:3 monitors for almost a year now. Every single one in the long line on display was 16:9.

    I know why this is the case (home theater) and whereas it wouldn’t be my first choice, I’m willing to use that form factor, and really needed a monitor. I was apprehensive for a simple reason: The SX270 was made in 2003, and I don’t recall the machine supporting the 1600 X 900 resolution of the smaller 16:9 LCDs. I took a chance, figuring (or at least hoping) that I could rummage around online and come up with a newer driver for the Intel 82865G graphics chipset.

    What I bought was a Samsung SyncMaster 2033SW. It’s VESA-compliant, and I bolted it to the stainless steel bracket without difficulty. It was on sale for $179. The machine itself cost me less than that; I think $150 on eBay some time last summer. 2.8 GHz, 1 GB RAM, with XP Pro–used and used hard, and ugly up close, but completely functional. I went up to Dell’s site to see if newer video drivers were available, but what they had was what I had. The closest that Windows could come to 1600 X 900 was 1280 X 768. The monitor centered the smaller raster in the middle of its screen, with the surrounding pixels dark. There was a “stretch” option that spread the raster out to the full extent of the screen, but it looked hideous.

    Fortunately, Windows wasn’t the goal here. I booted the Ubuntu Intrepid installer CD in LiveCD mode to see what the OS would detect and how it would respond, considering that the machine dates back to 2003. Without a grunt of complaint, it detected the graphics hardware and loaded a 1600 X 900 driver. I tried a few things, pronounced it good, and told the OS to go install itself in earnest. Twenty minutes later, I was downloading NASM, Kdbg, the Bless Hex Editor, Nemiver, ddd, and a few other things through the Synaptic Package Manager. Not once did I have to face a command line. Everything Just Worked. The age of the machine (apparent from its collection of dents and inventory-tag stickum) didn’t seem to matter at all.

    The display is gorgeous; it’s easily the brightest LCD I’ve ever seen. The whole gadget takes up about as little space as anything with a 20″ monitor possibly could. And after spending an afternoon with it, I realize that a long horizontal aspect can be handy: Editor on the right, Kdbg on the left, and just enough of a terminal peeking out under the editor to run make as needed.

    I’ve been fooling with Linux intermittently for well over ten years, and the craziness of today’s events still boggles me: It installed much faster and way more easily than Windows generally does, and on old hardware to boot. This was not the case in 1999, let me tell you. If MS isn’t in trouble by now, it’s nobody’s fault but our own.