24 Aug 2009

Migrating from Mac to Linux

I'm configuring an Ubuntu install on my new desktop machine at work, and as I figure out issues that were not easily findable on the web, I'll be posting them here, in hopes that someone else might benefit. Some of it will be most useful to Mac users trying to replicate Mac-ness; others to more general new-to- or returned-to-Linux geeks.

One random little tidbit that took me a while to figure out was how to configure the icons on my Launcher bar (the one that by default runs along the top of the screen but can be put on the side to resemble a Dock)---in particular, how to use my own custom ones. I'd discovered clker.com as a source of icons, and had a nice SVG mailbox that I wanted to use, which I copied to /usr/share/icons/gnome/scalable/, and when I browsed to it from the Launcher Properties dialog, it showed up in the browser, but after I selected it, the image was blank in the Launcher Properties dialog and some default image over in the Launcher. The solution? Make sure it's owned by root. Not sure why this matters, but after I chowned it to root, it worked just fine.

Another item: An awful lot of pages out there claim that there just isn't any good replacement for good old xv; certainly most of the ones that think there is point you either to a program that has no GUI at all, or to one that is a photo manager a la iPhoto, or else perhaps to the GIMP, which is way more power than I'm looking for when I fire up xv. However, one page, the "Grumpy Editor's guide to image viewers", itself already five years old, pointed me at a nice little package called gthumb, which is pretty darn close. There are a few minor issues, but it does: load up individual files (fast!), crop, resize, rotate multiples of 90°, and convert between the major raster formats. It also does some extremely basic color editing. I do wish that it had single-key shortcuts for things like "shrink by half", "grow by 10%", and "quit", but the newfound ability to resize to a precise pixel size, or select a crop on an 800% fatbits view, will make up for this.

And: I very much liked the Mac's screensaver that prowls through a directory of images and does a random pan-and-zoom on them, but I was having a hard time replicating this. First, one of the screensavers (slideshow) doesn't do the pan-and-zoom; but then I looked harder and found GLSlideshow, which does, although super-fast and with the whole image on the screen at once (with black bars alongside). Still couldn't configure it, though. At last I found a helpful blog post that gives the details. First, point it at your directory of pictures by creating a .xscreensaver file in your directory with the line "imageDirectory: /home/dblaheta/screensaver-pix" or whatever your directory is. Then, as root, edit the file /usr/share/applications/screensavers/glslideshow.desktop, modifying the line that says "Exec: glslideshow -root" by appending the additional options " -duration 15 -pan 15 -fade 5 -clip". This makes it more closely match the look of Mac's version (although you can further tweak these options---see the manpage for glslideshow).

To hyperconfigure my computer interactions, I've also discovered gizmod, which captures events (e.g. a keypress or mouse movement) and can translate these into other events; my initial motivation was to replicate the CursorMove functionality of fvwm, which I had been looking forward to in my return to Linux, in compiz which for various reasons I'm using instead. I hope it will also be useful in doing some per-application key remapping. I'm having some trouble configuring it, though....

More later as it develops.

"How about social conservatives make their argument without bringing God into it? By all means, let faith inform one's values, but let reason inform one's public arguments." --Kathleen Parker

Posted by blahedo at 6:56pm | Comments (2)

16 Aug 2009

In for a penny, in for a pound

It might be my motto. Certainly it describes the attitude that has gotten me into some of my more memorable and epic projects. Today, it seems to have gotten me the mother of all bruises. Well, it's not even a bruise yet---it's a massive contusion that will eventually turn into a bruise of biblical proportions.

I should back up. The process of renovating my downstairs bathroom has been proceeding, and today at long last I got to the tiling. Out came the tile saw (and here is where I expected injury to show up), up went the tiles, and everything was going great. I tiled around the windowsill and finished all the regular-shaped pieces. Then I started thinking about the cuts I'd need for the tiles around the sill, and with four of them being more than just straight-line all-across cuts, and two of those being a quite complex curve, I thought, there's no way I'm going to make this look good. What's the right way to solve this?

And of course he right thing would have been to remove the sill and tile behind it, reducing the number of odd cuts and hiding the edges in any case. My sill was already painted, but awaited final coats anyway. So, drumroll please, I started removing it.

The flat board beneath the sill popped right off. The sill itself? Not so much. On one side, I could pull it down a bit and verify that it was not attached to the side trim, but the other side wouldn't go, so off came the facing pieces on the sides of the window (and indeed the right-side piece had a nail connecting it vertically to the sill). Still it wasn't releasing. I could now pull it away from the wall a little and see it was connected to the wall horizontally by one nail on each side; but it was also clear that this was not all. As it turned out, whoever had last assembled this was trying to prevent it ever being disassembled: three nails down into the sill base as well as the two into the wall and one up into the trim. Getting a crowbar between the two remaining pieces was proving nearly impossible, and of course even then I needed to pull it out before up, as well as up before out. Luckily, two of the vertical nails pulled through the wood and I was able to rotate the rest of it without causing much damage.

Note: still no injury. All the most dangerous things I did today passed without a scratch.

At this point the disassembly is done, but there remain two finishing nails in the sill base. One pulls out with some difficulty with the claw of a hammer. The other is more recalcitrant, and finally as I leaned a lot of weight into it, there is a sudden POP and my arm smears past the left framing piece, which though it isn't sharp, is square, and so it skinned the arm. Looking back to the nail, it seems the head has come off. I knock it around a bit more and manage to break off what's left of the nail.

I glance briefly at my arm, which by the way still doesn't hurt, and see that it isn't actually skinned, but contused and with a rapidly growing reddish-purple lump. At which point I drop everything and run to the sink to get it under cold water, which is when it starts hurting, and a few moments after that under ice. Which is where it has been for the last hour or so, except for a brief moment to take a picture of it; and by the way, typing one handed is A) faster than I would have thought, and B) still really annoying.

So, my trophy of the afternoon:

[my bruised arm]

(ok, so not quite biblical proportions. But it's big and impressive. Swelling's gone mostly down now and it's starting to turn purple.)

'If you carefully read its literature and analyse what its devotees actually do, you will discover that software engineering has accepted as its charter "How to program if you cannot.".' --Edsger Dijkstra

Posted by blahedo at 8:00pm | Comments (2)

10 Aug 2009

Aesthetic crisis averted

[the old sink]

One of the, um, features of my downstairs bathroom was always that the sink, because of its width and because of where the door swung, was not nicely lined up with the mirror. I hated this. (The mirror was also too high, but that was a separate issue, since fixed in the renovation.) One of the earliest design criteria when selecting a sink ("lavatory") for the bathroom was that it had to be narrow enough that it could align with the mirror and still not block the door. Not negotiable.

[the new pipes—askew]

When the plumber came to rough in the new pipes, this was more or less explained to him, and I carefully pointed out the marks to line up with so everything would look good. So you can imagine my consternation when I poked my head in to find that, although the drain was lined up, the supply wasn't. Specifically, the hot water pipe, on the left, was closer in than the cold water pipe. Since the sink is a pedestal, already purchased, this would be visible. Since the toilet is aimed straight at the sink, you would be staring right at the skewed pipes. I don't even know that anyone else would notice or care, but I would. I stared at this for a few moments, trying to decide how I felt about this, but I knew that every single time I looked at it, it would annoy me. It was at least worth bringing up to the plumber.

Who, happily, had not yet connected them belowdecks, which was going to make a fix that much easier. As he finished off sweating the drain pipe together, I brought up the issue and asked him about it. He said something about the pipes needing room, and that they always make sure to leave room so you can get at the trap. This... puzzled me, and he came up to look at it with me, dutifully pointing out how the P-trap would have to go in between them. Which was fine, of course, and I was just wondering if both of them could be moved over, like, an inch. What followed was an incredibly bizarre bit of talking past each other; I think maybe he thought I wanted to only move the cold water pipe to be closer to the other (despite my repeatedly and specifically saying this was not what I wanted). I knew they had to be a certain distance apart. I didn't even mind if they were a little further apart (and said so). A few times he told me that pedestals made it really hard to hide the pipes. Which was fine, that's the point, if the pipes are visible they should look good!

[the new pipes—fixed!]

Finally, something I said must have clicked, because about the third time I suggested moving just the hot water pipe, he said something like, "oh, so maybe just widen the gap between them?" Making it even easier to access everything, yes. Exactly. Now, the plumber was obviously not stupid, and this was definitely a communication problem rather than anything else; once he got what I wanted here, he was able to set it up just dandy, taking a snips to the support he'd run the pipes through (which I regret a tiny bit, because that thing was solid and those pipes weren't going anywhere) and readjusting, using steel tape to anchor it to the wall (the lath of the kitchen wall, which I fear he slightly went through, but I'll live). So now I have my nice symmetric piping. I am so glad I spoke up; for the cost of at most a half-hour's worth of work, I got something fixed that would nag at me for years and be fundamentally unfixable.

'If we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent": the current conventional wisdom is so foolish as to book that count on the wrong side of the ledger.' --Edsger Dijkstra

Posted by blahedo at 11:58pm | Comments (0)

5 Aug 2009


So I've been busy, although not that busy; I don't really have any good excuse as to why I haven't posted here in five months. I have a partial explanation: early in the summer I started actively using Facebook's status update as sort of a microblog (e.g. during my France trip). But, and this is both pro and con, those posts are both more ephemeral and more lightweight. Also, being geared to be written in the third person, there is a very different feel over there, and also a tendency to try to write a bit more cryptically. For instance, when my sister got the teaching job, I wrote

Don Blaheta would like to congratulate the newest member of the Barrington HS math faculty.
So that's fun and all, and I'll probably keep it up, but it really isn't amenable to more long-form stuff. But of course I'd already fallen out of the habit of posting regularly; in part because I'd delay posting until I could do a proper job of it, and then eventually I wouldn't want my first post after a long hiatus to be inane. With the inane stuff going to facebook, maybe I'll be able to pick it up again. :)

Since last I posted, I went to Chattanooga for SIGCSE in March, Cincinnati for the AP reading in June, and Paris for ITiCSE in July. Also, I taught two classes, one of which was as a substitute for David (who was on junior leave)—our class in operating systems, networks, and C, which was simply a blast, and at 9 people a lot larger than expected. Maybe we've got a good-size batch of majors this year.

What I haven't done is make much progress on my bathroom, at least until fairly recently. Way back in October, I finished the ceiling, and then got going with scraping the stupid glue off the walls, which was dreadful so I kept putting it off. I did lower the hole for the medicine cabinet, and I got the initial coat of paint on the tub, but other than that and the glue scraping, the first real progress was at the end of June, when I installed the moisture-resistant wallboard in the places with bad plaster, and painted the upper walls. The current work is actually getting the plumbing roughed in, which is partly done (tub done, toiled done except for pouring lead to seat the collar, sink remains but the pipes are cut and just need to be installed). From there I just need to cover the wall cavity where the sink work is being done, and then I can get on with the tiling. With a little luck, I'll be done by the end of the month (which would be a huge relief).

And the last piece of news of interest is that I'm still in limbo on tenure. The usual timeline is that I submit materials in December (which I did), and then a department committee, the faculty personnel committee, the dean, an outside examiner, and the president all think about it and make their recommendations, which the president aggregates into a final decision by late May, which he gives to the board of trustees to ratify at their June meeting. Apparently, though, the outside examiner flaked out, and so I didn't get tenure in June like the other professors up this year—but I also wasn't denied it, I just have to wait. They asked for an extension of the 1 July deadline to 1 September, which I granted (how could I not?), so now it's more waiting. We'll see.

Meanwhile, back to work. I'm teaching FP again this fall and I need to decide whether I can work The God Delusion into the schedule.

"Do the universities provide for society the intellectual leadership it needs or only the training it asks for?" --Edsger Dijkstra

Posted by blahedo at 2:59pm | Comments (0)