George V. Reilly

New Compression Formats

You might think that data com­pres­sion is a solved problem, lossless or lossy. But, no. Gzip and related formats like zlib, Zip, and PNG that use the DEFLATE algorithm were great 25 years ago, still do a decent job, and are completely ubiquitous and in­dis­pens­able, but there are better, smarter algorithms now.

Google has announced two new com­pres­sion formats in the last couple of years, Zopfli and Brotli. Zopfli does a better job of generating Deflate-compatible data, although it’s very slow. Brotli gives ~20% better com­pres­sion than Deflate, but at about the same speed. Then there’s xz, which grew out of 7-zip, and also works well.

Zstandard has just been announced by Facebook and continue.

USB Charge-Only Cables and Condoms

Thanks to Tom Limoncelli, I became acutely aware of USB charge-only cables and condoms. If you plug your phone into an unknown computer to charge the battery, you run the risk of having your phone hijacked by malware. USB transfers data as well as elec­tric­i­ty and you’re es­sen­tial­ly giving the computer un­re­strict­ed access to your phone.

Certain USB cables are charge-only and will not pass data. There are also “USB condoms”, which are inserted between the cable and the computer. They not only block data, but they can po­ten­tial­ly charge the battery faster, as they can switch the device into a fast-charging mode. I’ve ordered a pair from Amazon, as we’re going continue.

HTTPS for GitHub Pages Custom Domain: Not Yet

This website, http://www.georgevreil­, is hosted at GitHub Pages. It’s actually https://georgevreil­ but I’ve configured the former as the “custom domain”, so the latter is un­con­di­tion­al­ly redirected to the custom domain.

GitHub Pages gives me free, fast hosting and an easy pub­li­ca­tion model: I commit the latest changes to my master branch, I push the branch to GitHub, and seconds later, my site is updated. I’m using Acrylamid to generate the content from re­Struc­tured­Text source on the blog branch and ghp-import to commit the HTML to the master branch.

GitHub Pages supports HTTPS as of June 2016, but not for custom domains. There are some hacks but I don’t feel like using them. I’m hoping continue.


The cen­ter­piece of our back yard is an aging Italian plum tree. We moved in to our house in late August 2000, right as the fruit was fully ripe. We didn’t have a ladder and the former owners didn’t have time to deal with the tree either, so most of the fruit that year ended up in the yard waste. I dragged one enormously heavy yard waste can up the back steps into the alley that year. I like to say that it weighed as much as I did, but it probably didn’t.

We bought ladders and we’ve picked the fruit thereafter. The tree is old and no longer gives continue.

Review: Flashman in the Great Game

Title: Flashman in the Great Game
Author: George MacDonald Fraser
Rating: ★ ★ ★ ★
Publisher: Plume
Copyright: 1975
Pages: 322
Keywords: historical fiction, humor
Reading period: 16–25 August, 2016
Flashman Papers V: 1856–58

Flashman in the Great Game finds Flashy back to India, sent there by prime minister Lord Palmerston to look into worrying rumors of mutiny amongst the Indian troops and to sweet talk the re­cal­ci­trant Rani of Jhansi. After an attempt upon his life by Thugees, Flashman goes undercover in the native cavalry at Meerut, where the Sepoy Mutiny begins soon after. He then finds himself in the Siege of Cawnpore and the Siege of Lucknow and imprisoned at Gwalior before being almost continue.

Homograph Attacks

During an internal training exercise today, as a sort of one-man Chaos Monkey, I de­lib­er­ate­ly broke a test system by changing a config setting to read:

itemfinder.url = http://test-і

The correct value should have been:

itemfinder.url =

What’s that, you say? There’s no difference, you say?

There is a difference, but it’s subtle. The first i in the URL is CYRILLIC SMALL LETTER BYELORUSS­IAN-UKRAINIAN I’ (U+0456), not LATIN SMALL LETTER I’ (U+0069). Depending upon the font, the two is may be visually in­dis­tin­guish­able, very similar looking, or the Cyrillic i may not render.

This is an example of an In­ter­na­tion­al Domain Name Homograph Attack. There are Greek letters and Cyrillic letters that look very similar to Latin continue.

Flame Graphs and Flame Charts

I was in­ves­ti­gat­ing the per­for­mance of a web app today, and I spent some time looking at the Flame Chart vi­su­al­iza­tion in Chrome’s profiling tools, which helped identify some problems.

Flame Charts are like Brendan Gregg’s Flame Graphs, except that the charts are sorted by time, while the graphs are sorted al­pha­bet­i­cal­ly.

Quoting from Gregg’s recent ACM Queue article:

A flame graph has the following char­ac­ter­is­tics:

Review: Flashman At The Charge

Title: Flashman At The Charge
Author: George MacDonald Fraser
Rating: ★ ★ ★ ★
Publisher: Plume
Copyright: 1973
Pages: 288
Keywords: historical fiction, humor
Reading period: 7–16 August, 2016
Flashman Papers IV: 1854–55

Flashman At The Charge finds our hero, newly promoted to Colonel, nurse­maid­ing a minor Royal cousin in the Crimean War. Somehow he finds himself in the thick of the Charge of the Light Brigade, which he survives only to be taken captive by the Russians. Sent off to Count Pencher­jevsky’s estate, he luxuriates there for some time, bedding the count’s daughter Valla. When he and another British officer overhear the Tsar discussing Russian plans to invade India, he re­luc­tant­ly escapes. After he is captured continue.

Review: Jason Bourne

Title: Jason Bourne
Director: Paul Greengrass
Rating: ★ ★ ★ ½
Released: 2016
Keywords: action, thriller
Watched: 20 August, 2016

In Jason Bourne, the eponym is back in action, running around the planet in a personal vendetta with the director of the CIA. Bourne’s old ally Nicky Parsons is killed trying to pass him some in­for­ma­tion that she’s unearthed about the Treadstone program that turned David Webb into the amnesiac assassin known as Jason Bourne. The CIA director sends a killer known only as the Asset after Bourne, while the fresh-faced head of the Cyber Ops division does her best to keep Bourne alive.

This is a largely un­nec­es­sary sequel to the Bourne franchise. While the continue.

Opening Vim at the right place

If you know exactly which line you want to go or which pattern you want to search for, Vim provides a couple of command-line options that can help: +NUM goes to line number NUM, while +/PAT searches for the first occurrence of PAT. It’s also possible to execute an Ex command with +CMD, such as "+set fenc=latin1". You can supply up to ten + options.

vim +23 ~/.bashrc
vim '+/ASIN\|ISBN' template.rst
vim "+set fenc=latin1" some.csv
Previous » « Next