Craig Thrall

How to Extract Contacts from an iPhone Backup

April 19, 2015, 4:02 p.m.

I have several iPhone backup files on my MacBook Pro. I wanted to get the contacts out of one of them, and onto an iPhone. I didn't want to restore an older backup, because I only wanted the contacts, and didn't want to lose data that had been added to the phone since the backup. The iPhone is synced to iCloud. Here's what I ended up doing. 1. I downloaded the "iPhone Backup Extractor" free app from here: 2. I extracted "iOS Files" from the backup I wanted (there is also a free app out there called iPhone Backup Viewer that will let you look at the contents of your backup files). 3. I opened the Address Book SQLite database in SQLite Browser and ran a query to get the first name, last name, and multivalue value for the contact info I was interested in. Something like: select p.First, p.Last, v.value from ABPerson as p, ABMultiValue as v where v.record_id = p.ROWID and v.label in (1, 3, 5, 6, 7) and v.value is not null order by p.First 4. I copy/pasted the result into a LibreOffice spreadsheet, filtered out duplicate values, and copy/pasted into another sheet (if you filter then save the CSV, you'll also save all the filtered out data, which I didn't want). 5. I imported the CSV full of contacts into the Contacts app. When you import, it will automatically create a new group for you so you don't have to worry about mixing newly imported contacts with everything else. 6. I selected all the newly imported contacts and exported to a vCard. 7. I imported the vCard into iCloud, and after a couple minutes they got synced to the iPhone.

Converting Ogg to MP4 on Ubuntu

Dec. 2, 2014, 10:30 p.m.

First, install ffmpeg by running "apt-get install ffmpeg." Then, if you want to keep the audio, run "ffmpeg -i filename.ogv -c:v libx264 -ac 2 -ar 44100 filename.mp4." To mute audio for a screencast, use "ffmpeg -i filename.ogv -c:v libx264 -filter:a volume=0 filename.mp4."

Moxa UPort on Ubuntu 14.04

June 30, 2014, 3:54 p.m.

I've got a Moxa U1610 connected via USB to my Dell XPS Developer Edition laptop, which I've upgraded to Ubuntu 14.04 (kernel 3.13.0-29). The drivers on the Moxa site do not work with a kernel this new, nor do the beta drivers you can find floating around on the web. Here are the steps that worked for me: 1. Get the latest source for the kernel (I got mine from here: 2. Download the tarball for Ubuntu 14.04 and unpack it somewhere. 3. Copy the mxuport.c kernel module from the Linux source to the drivers/usb/serial directory in your copy of the Ubuntu source. 4. Run "make xconfig" or the equivalent in your copy of the Ubuntu distribution and make sure that kernel modules are enabled, and the mxuport kernel module is enabled. What I found easiest was running "make xconfig" and searching for "mxuport". 5. Save the configuration and run "make" from the top of your Ubuntu distribution. 6. When the build is done, copy mxuport.ko from the same Ubuntu drivers/usb/serial directory to your local /lib/modules/3.13.0-29-generic/misc directory. 7. Run depmod as root. 8. Run "modprobe mxuport" as root. 9. Run dmesg and confirm the module got loaded.

Booting Windows 8.1 Installer off USB

June 20, 2014, 10 p.m.

I was able to boot from a USB I created using UNetbootin ( on my Mac. I used the USB stick to install Windows 8.1 on a Dell XPS 13. I didn't have to do anything after UNetbootin to get the USB drive to boot. Ubuntu 12.04 and Tuxboot did not create a bootable stick. I tried both the legacy and UEFI options on the Dell, but it's like the stick wasn't there. Once I tried UNetbootin on the Mac, the USB drive showed up automatically as a UEFI boot option.