Heading to Africa: Victoria Falls, Zambia, Namibia

As I mentioned earlier, we’re getting ready for a trip. Six years ago Kathleen and I went to Kenya and Tanzania for a 2 week African Safari and ended the trip with a 3 day stay on the island of Zanzibar where we then got married.

Wedding in Zanzibar

We’ve decided to go back! We head out later this week on a long overdue vacation. This time we’ll be starting in Victoria Falls before heading out across much of Zambia and Namibia to see some of Africa’s amazing wildlife and landscapes.

It didn’t start to feel real until a week or so ago when we went to get our travel vaccinations (ow!). But we’re now at the point where we need to finish up the remaining vegetables in the refrigerator, do packing, and finish final preparation so we can hop on a series of planes at the end of the week. (That leg from JFK to Johannesburg is going to be loooong.)

I’m not sure how much Internet access we’ll have during the trip (likely more than six years ago), but we’ll try to post a few pictures here and/or on my Facebook page as we can.

Posted in travel | 5 Comments

Installing Ubuntu (via crubuntu) on a Samsung 300 Series Chromebook

We’re getting ready for a trip in which we expect to take a lot of pictures. So I’d like to take a small, indexpensive computer along to handle the task of copying pictures from the cameras and memory cards to a portable USB hard drive (for backups and to make sure we have enough card space). For a while I considered using our old Samsung NC10 Netbook, but it’s rather slow and a little thicker and heavier than I’d prefer. So I looked at my Samsung Chomebook instead (the 300 series ARM-based 10″ model).

That seemed ideal, since it’s light, thing, and has great battery life as well as a built in SDCard reader. However, the operating system (ChromeOS) is so heavily bent toward “cloud” computing that it doesn’t make interacting with local storage devices easy. So I decided to take the plunge and install a full-blown Linux distribution: Xubuntu.

The preferred way to get various flavors of ARM-based Ubuntu on the Chromebooks is the CruBuntu script. You simply put the device in developer mode, open a shell, curl a file, and run it. From there it takes care of partitioning and downloading all the needed packages to give you a full-blown Linux “desktop” distribution. The only weird thing I’ve encountered so far is the strangeness of the default trackpad settings. But this guy has as fix for that. I may or may not apply that, since I’ve already paired a bluetooth travel mouse with the laptop.

It’s funny, I always thought of the Chromebook as a little toy that’d be handy on trips when I don’t need much time on-line. But now it’s suddenly become about 500% more useful since I can get access to all the Linux tools I could possibly want. Sure it’s not a powerful machine, but for moving photos around, handling email, and maybe posting a few things on-line, it’s more than up to the task.

This process wasn’t without a little “adventure” of course. It took three tries to get right. But since it’s mostly unattended, that wasn’t a big deal. Had I chosed Xubuntu the first time instead of taking the default Ubuntu (with Unity) I’d have been a bit better off. In any case, I now have a nice little Linux “netbook” (to re-apply an old label).

Posted in tech, travel | 1 Comment

Speaking at OpenWest 2014 Conference: real-time search infrastructure architecture at craigslist

Just a quick heads-up that I’ll be giving a 50 minute talk at OpenWest in Utah on Thursday, May 8th. The talk is titled real-time search infrastructure architecture at craigslist and is completely new. We’ve recently completed the 3 major revision to our search infrastructure at craigslist and I’ll be talking about what it looks like now, why, how we did it, and where we may go from here.

If you haven’t seen my talks on this topic before, I’ll be talking a lot about how we use the Sphinx Search Engine.

I’ve never been to OpenWest but I’ve head a lot of good things about it. And since I’ve been looking to broaden my conference horizons, it seemed like a good one to attend. Thanks to the folks at OpenWest for picking my talk and allowing craigslist to sponsor the event as well.

The full schedule looks like there will be a lot of interesting talks. I’m really looking forward to it.

On a related note: craigslist is hiring for frontend, backend, and systems administrators. Send me your resume at z@craigslist.org if you’re interested or just want to know more about working at craigslist. 🙂

Posted in craigslist, sphinx | 1 Comment

Smart Appliances? I think not…

There’s been a lot of talk lately about adding various “smarts” to our everyday durable goods: things like refrigerators, cars, TVs, dishwashers, etc. You know, the kind of things you only buy every 10-15 years or when they’ve become too expensive to keep repairing. Manufacturers seem to think that since the hardware is cheap and the software is mostly free, they can just stick Android and a touch screen in your toaster.

That sounds like a horrible idea–for so many reasons. And I was prepared to enumerate them here until I came across a great ArsTechnica article: Smart TVs, smart fridges, smart washing machines? Disaster waiting to happen

To pick a few choice quotes:

These devices will inevitably be abandoned by their manufacturers, and the result will be lots of “smart” functionality—fridges that know what we buy and when, TVs that know what shows we watch—all connected to the Internet 24/7, all completely insecure.

And why is that?

To remain useful, app platforms need up-to-date apps. As such, for your smart device to remain safe, secure, and valuable, it needs a lifetime of software fixes and updates.

That’s not so hard, right?

Herein lies the problem, because if there’s one thing that companies like Samsung have demonstrated in the past, it’s a total unwillingness to provide a lifetime of software fixes and updates. Even smartphones, which are generally assumed to have a two-year lifecycle (with replacements driven by cheap or “free” contract-subsidized pricing), rarely receive updates for the full two years (Apple’s iPhone being the one notable exception).


Our fridges, cars, and TVs are not even on a two-year replacement cycle. Even if you do replace your TV after it’s a couple years old, you probably won’t throw the old one away. It will just migrate from the living room to the master bedroom, and then from the master bedroom to the kids’ room. Likewise, it’s rare that a three-year-old car is simply consigned to the scrap heap. It’s given away or sold off for a second, third, or fourth “life” as someone else’s primary vehicle. Your fridge and washing machine will probably be kept until they blow up or you move houses.

And the final recommendation, which I can get behind 100%:

Instead, use smarts elsewhere. For example, instead of using the smartness in your TV (such that upgrading the smarts means upgrading the entire TV too, pointlessly wasting the LCD), you leave the smarts in a small set-top box like a Roku or an Apple TV. That will give you your streaming media and rich connectivity, but it’s in a box that’s relatively disposable. Sure, even that box won’t be supported forever (though I daresay it will be supported for longer than a smart TV), but replacing it means replacing a small $99 gadget—not a thousand bucks of flat panel.

Now, who’s ready for the next 5-10 years of disaster after disaster as people buy these “smart” devices, only to discover bugs that the manufacturers missed and a complete lack of interest in software updates.

I guess the only real hope is that these devices are easily “rooted” so at least tech savvy folks can install, ahem, “alternative” firmware long after the manufacturer has given up on it.

Posted in Uncategorized | Tagged | 3 Comments

The Broken Permissions Model in Android Apps as Illustrated by Facebook

A couple days ago I was informed that the Facebook app on my Samsung Galaxy S3 wanted to update. But it needed me to agree to some additional permissions for the app. I clicked the button to see what they were and was greeted with this:


I was more than a little surprised by the things that Facebook expected me to agree to let them have access to on my phone. Let’s be honest, that’s a pretty invasive list of things that I’m being asked to agree to allow and trust that Facebook will do no harm.

So I decided not to upgrade.

Here’s the thing, though. While I was originally angry with Facebook (I still am to some degree), I realized that Google is to blame here as well. They’ve developed this “all or nothing” permissions model. It’d clearly be more friendly to the user if every one of those permissions had an associated checkbox. That would allow me to choose the things which are reasonable and uncheck those that are not. The price, of course, is that I wouldn’t get the application’s full feature set. But maybe I don’t need or want all those features anyway.

I just want to post cat pictures and stuff. Let’s leave my SMS messages and wireless network connections out of it, OK?

This “take it or leave it” system really doesn’t allow for that use case.

I’d remove the app entirely, but I do use the 2-factor authentication codes that it generates. So I’d need to find an alternative way of getting those.

If this was a desktop app, I could at least run it inside a Virtual Machine and manage what it has access to. Maybe we should expect next generation phones, as they’re going to be more and more powerful, to offer similar virtualization? Seems like the wrong solution to me, but I wouldn’t be at all surprised to see it.

Posted in Uncategorized | 9 Comments

Additions to a Fresh Windows 7 Installation

I recently found myself shuffling computers around a bit.  And since it’s useful to have a functional Windows box on hand, I installed Windows 7 on an older desktop in my office.  (Installing from an original Win7 DVD was entertaining–the number of updates required to bring it current was impressive.)  It occurred to me that I’ve installed Windows 7 more than a few times since it came out and I should jot down a list of all those little (and some big) things I end up installing during the first few days of breaking in a new Windows box.

So without further delay, here’s my annotated list of what gets installed:

  • Google Chrome: cross-machine browser sync rocks my world, and since extensions sync too that means I get LastPass, Ghostery, and AdBlock Plus automatically
  • Microsoft Security Essentials: basic free virus and malware protection
  • Mozilla Firefox: because it’s the next best thing to chrome and occasionally sites require it
  • Dropbox: great for cross-machine file sync
  • VirtualWin: a simple but very effective virtual desktop add-on
  • Ctrl2Cap: because the caps lock key is stupid
  • IZArc: the best free archive tool around
  • VLC: free media player that groks nearly every file format
  • PuTTY: because you need to SSH to a Linux box for Real Work anyway
  • ImgBurn: free easy CD/DVD burner
  • WinSCP: to copy files to/from non-Windows boxes

I’ll try to update this list as I come across more.  But that’s it for now.

Are there essential tools that you install on a new build?

Posted in Uncategorized | 15 Comments

C-130 Taking a run at the Rim Fire

Shot from the Pine Mountain Lake Marina earlier today (August 22nd).

C-130 Making a Drop Run

The next photo is a picture of a plume that blew up east of Pine Mountain Lake Airport.

Plume East of PML Airport

Posted in Uncategorized | Leave a comment

Aircraft Fighting the Rim Fire, seen from Pine Mountain Lake

Long time no blog.  With the Rim Fire raging up here, I’ve been active on Facebook and Twitter, though.

We shot some pictures of the fire fighting aircraft this evening from the Pine Mountain Lake Marina before dinner.

DC-10 Fire Bomber DC-10 Fire Bomber Closer View of Smoke Clouds C-130 Against Smoke Clouds C-130 Fire Bomber IMG_7502 Helicopter with Water Smoke Clouds

Posted in flying | 1 Comment

Seeking Sucks: Spoiled by SSDs

I’m in the process of rebuilding full-text indexes for a good sized document collection that lives in a sharded MongoDB cluster. And the funny thing about this is that I don’t really use MongoDB that much. I mean we put data into it day after day, but I don’t personally have to interact with it that often. For this particular use case it “just works” the vast majority of the time I don’t have to think about it.

I like that.

But this particular task involves slurping ALL the data out of that cluster and onto a cluster of sharded Sphinx servers so I can re-index the roughly 3 billion documents. That’s all well and good, but since our MongoDB cluster isn’t terribly performance sensitive, it is built on old-fashioned (am I allowed to use that phrase?) spinning disks. And you know what that means, right?

Yeah, seek time matters. A lot.

If this was hitting our production MySQL clusters, I wouldn’t care nearly as much. Those all use one flavor or another of flash stoarge. In fact, we’ve been using SSDs long enough and in enough places that I’m spoiled at this point. I sort of cringe every time I have to deal with disk seeks. That’s so five years ago.

Anyway, I knew this would be an issue so I tried to be clever. I dumped all the document IDs from Mongo in advance, doing so in a way that give them to me in “disk order” so that when I later had to fetch them for indexing, I’d be able to minimize the seeking and hopefully maximize the throughput.

Well, that plan kind of half worked. You see, I had made the assumption that “disk order” on one member of a replica set would be the same as “disk order” on another member of the set. That appears not to be the case. So I had to work around this by telling the indexer processes not to use the mongos routing server, instead talking directly to the mongod on the specific server(s) that I fetched the ids from originally.

I look forward to a few more years from now, when we really do view spinning disks as “the new tape” and use them mainly for archival tasks.

Posted in craigslist, mongodb, nosql, sphinx, tech | 10 Comments

When Google Voice Transcription Goes Wrong…

Hilarity ensues…

Hey there, I decided to try to catch up with you and I just got back from him. So I got it yet. My My Sweet diarrhea certainly help. I can tell you a little more about it later and got a couple of things to touch base with you on. I know you’re kind of busy concert in the bay area today, but if you get. If we could chat. So anyways. Things are fine here. Just leave me. Cats and what they Hi Sweetie. So, yeah. On the process coming along so I guess. Later on out. I’ll straining. But anyways, I will hopefully catch up with you sometime soon. Okay bye.

I guess the lesson here is that adding “My Sweet diarrhea” to just about anything would make it funny.

(This was all prompted by Facebook posting about a friend’s “best voicemail transcript ever”, though hers was from Vonage.)

Posted in fun, wtf | 25 Comments