# Jacked up

The problem with home projects is how they grow. Today, though, I managed to avoid a lot a yak shaving through the deliberate misuse of a tool.

We’re going to recarpet our second floor. My wife is in charge of picking the color; I’m in charge of getting the rooms ready. Two of the rooms need their baseboards painted before the new carpet arrives, so I started priming and painting on Sunday. This involves, of course, moving everything away from the walls: bookshelves, cabinets, lamps, and—most significantly for our story tonight—beds.

One of the rooms has a queen-sized bed with a wooden frame. As I walked it out toward the center of the room, I noticed that the connections between the headboard and siderails were in terrible shape. The connection on each side consists of a cast brass plate with slotted holes screwed into the upright of the headboard and another cast brass plate with hooks screwed into the end of the side rail. The hooks go into the slots and everything should be hunky-dory.

Unfortunately, the hooked plates are screwed into the end grain of the siderails, which isn’t the best way to make a connection. Because the legs don’t have casters, every time the bed is moved, the legs of the headboard slide across the carpet and wiggle the connections. When I pulled the bed to the center of the room to paint, I saw that a few of the screws had stripped out and both connections to the headboard were about to fail. I couldn’t leave it that way.

Now, the right way to fix this would be to take the mattress and box spring off the frame so I could detach the headboard from the siderails and reset the stripped screws. But the room was already in an uproar and there was nowhere to put them without first rearranging another room. I could see the logistics of this turning into an evening-long project of it own. So…

Yes, that’s the jack from my car with a 1×4 on top to protect the siderail—my very own There I Fixed It entry. I jacked up one side of the bed, slipped a stack of 4×4s and 2×4s under it to hold it up, then jacked up the other side. With the head of the bed up in the air, the headboard was easy to detach, so I could get at the stripped holes in the siderails. I filled the holes with slivers of hardwood cut to fit,1 screwed the plates back in place, reattached the headboard, and lowered the bed back down to the floor. Easy.

One interesting thing about the operation: Although I brought along the jack handle (you can see it in the photo), it wasn’t necessary. The jack’s leverage, meant to lift a car, was so great I could lift the bed by turning the screw with my fingers.

1. Yes, I know that’s not the greatest fix in the world, but the original connection, crappy as it was, lasted over 25 years. My fix should last at least 15.

# Macbooks and iPads

Everyone’s talking about using iPads as their main or only computer. I think Harry McCracken led the way, followed by Federico Viticci, who went so far as to adopt the iPad mini (the original, not the new one) as his main computer. Since the new crop of iPads was introduced earlier this month, we’ve been hearing more about this: Fraser Speirs records and edits his podcast on an iPad; Jason Snell has speculated on making the move, as has Dan Benjamin. Only John Siracusa and Marco Arment are holding out, making the argument that the iPad—although they both enjoy using it—forces too many compromises to get their work done comfortably. All of these people are right, as the experience in my household over the past couple of years attests.

When I was in need of a new computer three years ago, I thought long and hard about the iPad. I wouldn’t be without a Mac, as I had an iMac at the office, but I did consider whether the iPad would meet my needs at home. It reminded me of the early Macintosh: very good at what it did but limited by lack of software in the number of things it could do. That changed quickly for the Mac, and I had a feeling it would change quickly for the iPad, too.

Ultimately, though, when the newly redesigned MacBook Air was announced, I knew that was the machine I was looking for—nearly as portable as that first-generation iPad, but so much more capable right from the start. I haven’t regretted that decision for a second, and I suspect my next computer will be another MacBook Air. Yes, the iPad has become much more powerful, but the improvements in battery life have made the Air much more portable.

My wife is a different story. She was never comfortable with computers, and I knew from the moment the iPad was announced that it would be right for her. She resisted, seeing it as another computer she’d have to learn rather than a device that would free her from that learning. “Don’t buy me an iPad,” she kept saying, and I obeyed.

But things change. Two years ago she was diagnosed with breast cancer and had a mastectomy and followup chemotherapy. I knew she’d be spending a lot of time in bed recovering and that she’d want to stay in touch with her friends and the rest of the world. It was time for me to disobey. I bought an iPad 2 and put it in her hands. It was a success from the beginning and has been her main computer ever since.

It works for my wife for the same reason it works for Ben Thompson’s mom and tens of millions of others—it removes many of the computery aspects of using a computer. I’m willing to put up with the computery stuff because I already know it and I’m not willing to give up the power and control I get from it. My wife has no need for that power and control and shouldn’t be forced to confront it whenever she wants to send an email or read an article on the web.

Thus, a MacBook Air for me and an iPad for her. The best fit for each of us.

# Two simple things

There’s a time for powerful, complex programs and there’s a time for simple little utilities. I had two reminders this week that speedy little programs have a power of their own.

I was on the phone with a client on Tuesday, discussing the failure of a piece of equipment back in 2011. We had a set of records about the failure, some of which included unambiguous dates, like April 27, and others that referred to events by the day of week. My first instinct to reconcile the two was to bring up Fantastical and flip back to get a calendar for April 2011. That certainly would have worked, but there would have been a lot of clicking or arrow key pushing to get back that far. And, of course, Fantastical fades away when you click on any other window and will force you to scroll back in time again if you need to have another look.1

The obvious choice—which was obvious only because my mouse passed over an open Terminal window as it made its up to the Fantastical icon in the menubar—was cal, the venerable Unix utility2 that does nothing more than display calendars. I tapped on the Terminal window to bring it forward and typed

cal 4 2011


The immediate response was

     April 2011
Su Mo Tu We Th Fr Sa
1  2
3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30


and I was able to resolve the two types of dates without any interruption of the phone call. My client probably thought I was prepared.

This morning I was going through the data files of a set of tests run by someone else at my company. The files had a few columns of data that I had no use for and was missing a column of time stamps. I happened to know that the data were collected at 20-second intervals, so I wrote a one-liner that put a column of times in the clipboard:

perl -e 'for($i=0;$i<=900;$i+=20){print "$i\n"}' | pbcopy


Putting that into the first column of the data was the perfect job for paste, and getting rid of the unnecessary columns was right up cut’s alley. The pipeline went this way:

pbpaste | paste - data-raw.txt | cut -f 1,5- > data-cleaned.txt


The - as the first argument of paste told it to put the column of times before the other columns in data-raw.txt. The -f 1,5- option to cut told it to pull out columns 1, 5, 6, 7, and so on (i.e., everything other than columns 2–4) and send them to data-cleaned.txt.

This pipeline was easy to write because the data file was in tab-separated-values format, and tabs are the default column separators for cut and paste. One of the few advantages of having data sent to you in an Excel spreadsheet, is that copying a bunch of cells and pasting them into a text editor gives you a nice TSV file that lots of programs understand.

After cleaning the data, I did some elementary analysis in IPython using the pandas library, which I’m finally getting around to learning. Pandas understands TSV, too, but it’s definitely not a simple utility. A topic for another day.

Update 11/24/13
The great thing about posting tips and tricks on the internet is that there’s always someone (usually several someones) who know even better tips and tricks. This morning I woke up to a handful of improvements in my Twitter stream.

Building Twenty and Josh Asch pointed out that I could have prevented Fantastical from fading away by clicking the little anchor icon in its lower left corner. I always wondered what that was for. And Alexandre Chabot suggested typing “April 2011” in Fantastical’s entry field; that starts the creation of a new entry, which I don’t want, but because of Fantastical’s instant feedback, it scrolls to the that month, which I do want.

David Cross suggested jot as a substitute for my Perl one-liner. No question, jot is exactly the right tool for the job, but for some reason I never remember to use it when I need to generate a sequence. Maybe writing this will help me remember next time. David suggested

jot 100 0 900 20


where the 100 is the number of steps to generate, 0 is the starting point, 900 is the ending point, and 20 is the step size. You may notice that specifying all four terms overdetermines the sequence, creating a conflict between the first and fourth arguments. jot solves this problem by generating the smallest number of steps that satisfies one or the other. By choosing an excessively high number for the first argument. David forced jot to generate its sequence by using the other three. In other words,

jot 100000000 0 900 20


would’ve worked just as well. If your mathematical background has left you with a distaste for overdetermined systems, you can tell jot to ignore the first argument by using a hyphen:

jot - 0 900 20


Hyphens as arguments typically mean “use standard input or output instead of a file.” I can’t think of another case in which it means “ignore me,” but I’ll bet there’s someone out there who can.

1. There’s always the Mac’s own Calendar, which won’t fade away but which I didn’t even consider because I seldom have it open. The damage Apple did to my opinion of Calendar/iCal in Lion will take a long time to repair.

2. The man page says it came with Version 5, which was released in 1974. Almost forty years old and still fundamentally the same program. Stagnant, I guess.

As I mentioned on Monday, I’m on the hunt for an RSS reader to replace Reeder. I still like the way Reeder displays articles, and I like its navigation features, but I’ve decided that its lack of Reading List integration is a deal-breaker. I thought I found a good replacement in NewsFeeds, an app with great promise, but wound up back with Feed Wrangler, which I still consider my rebound app after the breakup with Reeder.

NewsFeeds makes a good first impression.1 Signing in with your FeedBin or Feed Wrangler account is fast and obvious. The list views, of both subscriptions and articles, are clean and easy to read.

The article reading view is clean without believing that clean means huge margins (the Reconnaissance reader falls into that trap).

Reading List integration is just as it should be. Tap and hold on a link in an article and a pane slides up with Add to Reading List as one of its choices.

After reading my first article in NewsFeeds, I was ready to move it onto my home screen. I figured I’d do the in-app purchase to the professional version even though I didn’t need any of the professional features.

Then I tried to move on to the next unread article.

As best I can tell, there is no way to move directly from one article to the next. Swiping, dragging, tapping near the bottom to reveal hidden navigation buttons—nothing worked. The only way I’ve found for moving to another article is to use the back arrow at the top of the screen to return to the article list and then tap on the next article in the list. That’s no way to work your way through a list of articles.

I don’t usually write about software I don’t use, but I’m making an exception here because I don’t understand how an app that was so carefully designed in other ways2 could be so wrong on this fundamental piece of user interaction. It never occurred to me that someone would build an RSS reader that didn’t let you move directly from article to article.

Maybe I’m missing something, and there really is a way to go to the next article. I’d be a little embarrassed to have missed it, but I’d be happy to have found my new reader.

1. Once you’re in the app, that is. The icon is even duller than the default Twitter egg avatar.

2. It really should allow pinch-to-zoom on images, too, but lots of apps leave that out.

# Catch up

Because this has never been a link blog, I’ve never felt the need to comment on what everyone is buzzing about. A good thing, too, because I’m both a slow writer and otherwise employed; I’d never be able to keep up. Consider this an agglomeration of thoughts over the past few days (or weeks) that haven’t gelled into posts of their own.

Today saw the launch of a new site by Shawn Blanc, The Sweet Setup. It’s sort of like The Wirecutter or The Sweethome, but with with the focus on iOS and Mac software, mostly iOS. The site’s started with a bang. Shawn’s been collecting review articles for a couple of months on the sort of staples everyone should have—Twitter client, weather app, journaling app, podcatcher1 (no RSS reader yet, I noticed)—and promises to grow with new reviews and other tips and hints. My article on calculator apps ends with the recommendation you’d expect if you’ve been visiting here for any length of time, but you should check out the other articles. Even if you think you know why an app is being recommended, you’ll probably find a nugget or two of new information to help you either make a decision on what to buy or use an app more effectively.

Speaking of The Sweethome, last month they published a massive update to their post on big ice cubes, summarizing a series of tests which were, to some extent at least, a response to my rather snarky and dismissive discussion of their original post. They make a good case for big ice cubes, but I did notice a few things:

• In their time/dilution graph, they choose a water/whiskey ratio of 1.00 as their cutoff for a tasty drink despite an earlier comment that a ratio of 0.50 would taste watered down. This matters because a lower ratio would mean that both large and normal cubes would be watered down in fairly short order and the difference between the two would be only a couple of minutes instead of five.
• They put error bars in the dilution chart, but not in their time/temperature chart. This leaves the impression that only one temperature test was run for each type of cube, which I doubt. There’s nothing wrong with giving averages, but there’s something to be said for consistency of presentation.
• As someone who’s not a whiskey drinker, I was surprised to see that people worried about dilution would add 3 ounces of ice to 2 ounces of whiskey. Is this normal? That much ice certainly isn’t necessary. But if that’s what people do, then I concede that bigger is better.

When I saw that David Sparks’s new book was about email, I figured I’d be able to take a pass without missing much. I have, after all, been using email for a long time and am a veteran of procmail filters, fetchmail recipes, and mutt. But I don’t use those tools anymore and haven’t for almost a decade. And when I looked through the table of contents, I saw that David was addressing my problems with applications and plugins I hadn’t seen before. So Email is now on my reading list.

But it’s not at the top of my list. That spot’s reserved for Paperless, David’s first ibook. I’ve fallen off the paperless wagon and need a refresher, so I dug up my PDF of Paperless. I realized, though, that I no longer have to trudge through a PDF2; with Mavericks came iBooks, and I can now read the book the way it was meant to be read. I bought a new copy in its native format and will be starting it this weekend.

Finally, Daniel Jalkut wrote a post today about the value of stability in software, a topic I have some interest in. He was responding to a recent article by Michael Lopp, but you don’t have to read Lopp3 to appreciate what Daniel’s saying. We are all, at one time or another, too quick to latch onto new apps just because they’re new.

1. I’m going to keep using that term until it comes back in fashion again.

2. Like an animal.

3. Personally, I make it a habit not to read Michael Lopp or Paul Graham or Clay Shirky. I’m sure I’m missing out on a lot of profundity.