Craig Thrall

Flycheck and C/C++

Sept. 24, 2015, 11:22 a.m.

I wanted to chain three different Flycheck checkers, and use the cppcheck "--enable=all" setting. Adding this to my Emacs init file did the trick: (add-hook 'after-init-hook #'global-flycheck-mode) (require 'flycheck-google-cpplint) (flycheck-add-next-checker 'c/c++-gcc '(error . c/c++-cppcheck)) (flycheck-add-next-checker 'c/c++-cppcheck '(error . c/c++-googlelint)) (custom-set-variables '(flycheck-cppcheck-checks "all"))

Compressing iPhone Videos

Aug. 27, 2015, 1:44 p.m.

I copied about ten videos from my iPhone 6, and wanted a way to compress them in format that could be played back on Windows without having to install a different codec. I also wanted to remove the audio. I ended up using this ffmpeg command in Linux: ffmpeg -i <input_filename> -vcodec msmpeg4v2 -an <output_filename>

VeloView on Ubuntu 14.04

Aug. 14, 2015, 10:47 p.m.

To get VeloView running on Ubuntu 14.04, make the following changes. 1. In liblas/src/liblas/src/classification.cpp, remove the #include for boost/cstdint.hpp, and add one for stdint.h. This fixes errors around uint64_t type definitions. 2. Change Superbuild/Projects/python.cmake by removing the "DEPENDS png" line. 3. Remove "png" from Superbuild/Projects/qt.make:7 (line starts with "list (APPEND"). 4. Remove "ParaView" as a package dependency if you get complaints about not finding FindParaView.cmake. 5. Fix other CMake issues, mostly by deleting dependencies. 6. Test by running Python and running "import paraview.simple". Fix PYTHONPATH and LD_LIBRARY_PATH as required.

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.