You Are A Loser

I do not care whether you drive a Pinto or a Mercedes; a Geo or a Porsche. When you unload your shopping cart and then leave it sitting next to your car rather than pushing it back to the cart corral, you show your contemptible cretinism. There are no excuses. If you have the time and strength to push it through the store and out to the parking lot, you have the time and strength to push it another 50 feet to where it belongs.

Really. Without exception. If you make a million dollars a year but are too lazy and self-absorbed to care whether your own shopping cart rolls into someone else’s car, then you are a loser.

Negotiations With Western Digital

We bought a Western Digital external hard drive for Jen’s computer while we were in Omaha. I hooked it up when we got home and it was dead on arrival. I called for an RMA (“return material authorization” – basically permission to return it to the manufacturer) and got the replacement a few days later. Unfortunately, they didn’t include a pre-paid shipping label to return the defective part, and the customer service guy wasn’t too keen on giving me one. I wasn’t asking for anything unreasonable or that they just justifiably deny, and here’s how I got one anyway:

CS guy: It’s not our policy to give out shipping labels. It’s the customer’s responsibility to pay for shipping.
Me: It’s not this customer’s policy to pay for shipping products that were dead on arrival.
CS guy: I see your point, but that’s not something we normally do.
Me: OK, but I’d sure appreciate it. I mean, I did you a favor by calling you instead of returning this to the store. I didn’t know I’d have to pay for it.
CS guy: Well, we don’t do a very good job of telling you that on our website. I can ask my supervisor, but I don’t think he’ll do it.
Me: I’ll hold.
[5 minutes go by]
CS guy: Sir, this isn’t something we do, but since these are special circumstances, we’ll do it just this one time. You’ll get it within a week.
Me: Thanks! Oh, and can you extend my deadline for returning the broken one by a few days since I don’t have the shipping label yet?
CS guy: (sighs) Yeah, OK. You can have an extra 10 days.

Note two important things: first, I was polite; second, I was assertive. Failure on either of those would have wrecked the whole deal.

Electronic Survival Kit

So, you’ve made a survival kit to keep you alive until the good guys come to rescue you. Well, now you’re starting life over in a new place. These are some of the things you might want to bring along.

References

How To Carry It

Electronically

Our primary goal is to make our data as easy to access as possible. This is critically important when you don’t know what kind of machine you may have to use to access your data. You might have a beautiful Mac or Unix workstation at home, but if you were at home and could use your computer, then the rest of this would be pointless. Regardless of what you normally use, expect to be using a Windows box to access it.

First, I highly recommend that you combine your files into a single Zip file. That’s because it’s much easier to manage one file than 100.

Second, and this is critically important, use an encryption program to put as password on the zip file! You’re going to be putting a lot of sensitive information in there, so don’t leave it out for any twit to find if you misplace your copy. I highly, highly recommend GNU Privacy Guard, or GPG. A package of it for Windows is available from http://www.gpg4win.org. Under no circumstances should you trust the lame “encryption” (bah!) that comes with some storage media like USB keychain drives, or such as is built into WinZip. I mean it! Use a stand-alone encryption program.

Don’t forget to put a copy of the installer on your backup media so that you’ll be able to unlock your data when you need it!

Third – and this is very important – create the zip file on your computer’s hard drive, then encrypt it, and finally move the encrypted file onto your backup media. You should never copy the unencrypted data onto that media! Even if you delete it afterward, it may be possible to recover the information.

By the same token, don’t decrypt the zipfile onto your backup media. Copy it onto the hard drive of the computer you’re using to access it, then decrypt it and unzip it from there. Of course, if you’re using a very public computer such as a rental at an Internet cafe, then that may actually be the worse option. Trust your own judgment, and let rampant paranoia be your guide.

Physically

A floppy ain’t gonna cut it. Your encrypted zipfile will probably be much larger than will fit on a floppy disk, unless your life is so simple that this is just an academic exercise. Your four main options, in the order I’d recommend them, are:

  1. USB “keychain” drive
    • Pros: they’re durable and can be reused thousands of times. They’re also much smaller than a CD-R.
    • Cons: fewer computers have USB slots than CD-ROM drives, although that’s changing as old machines are replaced – almost all new computers have them.
  2. CD-R
    • Pros: blank CD-Rs are cheap, most people have a CD burner (so you probably already have the equipment to make one), and almost every computer has a CD-ROM device to read it. Also, CD-Rs can hold a relatively huge amount of data for pennies.
    • Cons: every time you update your data, you have to throw away the old copy or risk packing away the wrong one. CD-Rs are relatively fragile; one fat scratch and your data is lost.
  3. DVD-R
    • Same pros and cons as CD-R, except they hold much more data but are not as widely available as USB slots.
  4. Free webmail account (Yahoo! Mail, Gmail, Hotmail, etc.)
    • Pros: access your data from any computer with Internet access. No physical media to lose or destroy.
    • Cons: it can take a long time to store or retrieve your data. Not every computer has Internet access. Your files may be larger than your webmail account can hold. If your webmail company is also destroyed in the disaster, you’re out of luck.

Remember, don’t forget to store a copy of the encryption program you’re using along with the encrypted data itself! Although you can always download another copy off the Internet, that may be inconvenient (especially if you don’t remember what it’s called because you just watched your house burn down and you’re under extreme duress).

Also, nothing says you can’t use more than one option. Just don’t forget to update all of them whenever you add more information.

Whichever you choose, it’s not a bad idea to store any physical media with your regular survival kit. If disaster strikes, you’re more likely to remember to grab your knife and matches than a CD-R or keychain drive.

The List

Store small amounts of information in a text file using an editor like Notepad (on Windows). Do not store it in a Word document! Believe it or not, many computers don’t have an office suite installed on them, and you’d be seriously limiting your access options at a time when you can least afford it.

When scanning documents, set the resolution to at least 125DPI (200 is preferable); greyscale (instead of color) is fine and will use less space). Use at least 300 for photos. Don’t just blindly turn your scanner to its highest setting, though, or you’ll never get all of your documents to fit onto your media.

  • Employment
    • Current resume
    • Examples of your work
    • High school and/or college diplomas
    • Letters of recommendation
    • References
  • Financial
    • Bank/investment accounts
    • Credit card numbers and expiration dates
    • Loan accounts
    • Insurance policy numbers
    • Contact numbers for all of the companies above!
  • Identification
    • Baptism/dedication certificates
    • Birth certificates
    • Driver’s license
    • Family photos (also important for morale!)
    • Fingerprints
    • Marriage certificate
    • Passport
    • Tax returns
    • Voice recordings
  • Medical
    • Dental records
    • Disease records
    • Immunization records
    • X-rays
  • Property
    • Deeds and titles
    • Wills
  • Contact information for lots of friends and relatives, preferably spread over a large geographical area so that they’re not all affected by the same disaster you’re fleeing

Summary

That list is pretty long and odds are you’ll never need it. However, if you do, won’t you wish you’d taken the time to get all this information together? Once you’ve managed to gather it, maintenance should be a snap – just make a new zip archive, encrypt it, and replace your old copy with the new one.

Just remember the basics:

  • Pick one or two of the most durable media that can hold all of your information.
  • Don’t trust the built in Zip encryption.
  • Don’t trust the built-in USB keychain drive encryption.
  • Don’t ever put your unencrypted data onto your backup media unless you have to.
  • Include an (unencrypted) copy of your encryption program’s installer, or a standalone version that can be run directly from your storage media.
  • Also include a copy of WinZip or another file extraction utility. Older versions of Windows don’t have that functionality built in.
  • Keep current!

If you do happen to be affected by a local disaster, this information could be incredibly useful. Think about how impressed an interviewer would be to find out that you brought your resume and work samples with you. Imagine how glad the police would be to get a high-quality picture of missing family members. You buy insurance for your house and cars, right? Think of this as cheap insurance for your way of life.

Fresh Sushi Better

Jen and I took Jake and Ari to Omaha. I had joked with Jake that I was going to make him eat sushi, and to my surprise he loved the idea. There was a restaurant downtown within walking distance of our day’s destination and I thought we’d leave Norfolk early and have an early lunch. On our way in, though, we were running a little late. As we passed Yet Another Strip Mall, I saw a big “SUSHI” sign and asked Jen if she wanted to see if it was busy rather than getting all the way downtown and finding out we didn’t have time to eat. She agreed and we pulled in.

What a surprise.

We ended up at Hiro Japanese Cuisine (on W. Maple, near Borders), and I state without exaggeration that it had the best sushi I’ve ever eaten. My nigiri plate was superb. Jake’s California roll was far better than I knew one could be. Jen’s tempura was fresh, crisp, and varied. Ari’s teriyaki chicken was tender and delicious. The salad dressing was so good that I was only halfway joking about tipping my bowl up and drinking it. There’s really not much more I can say; it was awe-inspiring.

The decor was elegantly cool, and I felt stylish simply for being there. Even the bathrooms were beautiful.

Our waiter was exceptionally good. He was funny but not annoying, and helpful without being condescending. For example, Jen poked her chopsticks into her rice bowl and left them there. Our waiter came by and whispered to her, and she blushed and started laughing: that’s apparently a symbol of death. However, he told her this discreetly and politely, rather than making fun of us ignorant folk behind our backs (or at least hiding it well if he did). The service easily ranked among the best we’ve had.

If you like sushi or other Japanese fare, you must try Hiro Japanese Cuisine. We will definitely be eating there whenever we visit Omaha from now on.

Multi Processing Map For Python

I think that Python should use multi-processing and/or multi-threading to take advantage of as many opportunities for parallel execution as possible. To this end, I’ve written a drop-in replacement for map() that runs across as many processes as requested. It should be otherwise identical in every way the built-in version (and if it’s not please let me know!).

I also wrote a version based on Parallel Python that is a lot simpler but not quite identical to the original. In particular, it returns a generator instead of a list of values so that program execution doesn’t block until the results are fetched.

Drop me a line if you find this interesting or useful or just plain dumb.

Download: forkmap.py