I've been using password managers for at least 15 years
to keep track of all my passwords.
I have separate, distinct, strong passwords for hundreds of sites,
and I've only memorized the handful that I need to actually type regularly.
I started out with the KeePass desktop app originally,
but I switched to the online LastPass app about a decade ago.
At work, we use 1Password.
When I register for a site,
LastPass generates a random password for me,
such as:
tV%5joS$U6^uY5xU
T2oEUY!g70Iv1b&I
8kNHg9*A5GMR9%8D
LastPass securely syncs my passwords between machines and devices.
Its browser integration and its Android and iPhone apps
mean that I rarely ever have to actually type any of those ugly …continue.
Brendan Gregg's Brilliant Jerks in Engineering
is an excellent discussion of the "No Asshole Rule"
applied to software engineers.
He posits two kinds of brilliant jerks, the selfless and the selfish.
You might call them unempathic and sociopathic, respectively.
The former, if they develop some emotional intelligence, are worth saving.
The latter are simply toxic and probably need to be fired.
I found something very useful in the dingbats range of Unicode characters:
the negative circled san-serif digits, ➊ ➋ ➌ ➍ ➎ ➏ ➐ ➑ ➒ ➓ .
I've started using them to label points of interest in code.
They play well with the code-block directive in reStructuredText.
sudo docker images --format '{{.Repository}}:{{.Tag}}' \ ➊
| grep $IMAGE_NAME \ ➋
…continue.
Last weekend, I restored a number of posts that had appeared
on the earlier dasBlog incarnation of this blog,
but had never made it to the Acrylamid version.
I added about another 50 posts this weekend,
taken from the Wayback Machine.
I think that this is all the posts that are missing.
That required further fixup.
I had to turn the HTML back into reStructuredText, which I did by hand.
Some useful tips will follow in future posts.
It's very useful when creating Markdown to be able to preview it live.
For example, creating a complex pull request or a README.md.
I usually use the built-in Atom Markdown Preview package in Atom.
Just type ⌃⇧M (aka Ctrl+Shift+M) to see a live preview in an adjacent pane.
I use vim-mode-plus to edit in Atom,
which provides an acceptable emulation of Vim.
I recently discovered VS Code Markdown Preview in Visual Studio Code.
Type ⌘K V (aka Ctrl+K V on Windows or Linux)
to invoke the side-by-side live preview.
I use VSCodeVim to meet my Vim needs.
Unfortunately, neither previewer gives identical results to GitHub's Markdown renderer.
GitHub itself seems to use different …continue.
I started this blog 14 years ago, in February 2003,
on EraBlog, a long-defunct platform.
Many of my early posts expressed outrage at the imminent Iraq War.
Within a couple of years,
I had moved to running dasBlog on my own website, hosted at ihost.net.
I wrote a lot of posts over the next decade.
With rare exception, most posts were composed offline as reStructuredText
and saved in a repository.
There was no formal schema and most posts did not know their permalink.
In late 2014, I moved to the Acrylamid static blog generator
and I hosted www.georgevreilly.com at GitHub Pages.
I migrated most of the dasBlog content into a more …continue.
You might think that data compression 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 indispensable,
but there are better, smarter algorithms now.
Google has announced two new compression 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 compression 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 …continue.
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 electricity
and you're essentially giving the computer unrestricted 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 potentially 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 …continue.
I was investigating the performance of a web app today,
and I spent some time looking at the Flame Chart visualization
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 alphabetically.
Quoting from Gregg's recent ACM Queue article:
A flame graph has the following characteristics:
- A stack trace is represented as a column of boxes,
where each box represents a function (a stack frame).
- The y-axis shows the stack depth,
ordered from root at the bottom to leaf at the top.
The top box shows the function
that was on-CPU when the …continue.
I needed to create a wildcard SSL certificate and upload it to AWS CloudFront today.
First, generate a 2048-bit private key. This will prompt you for a passphrase:
$ openssl genrsa -des3 -out example.key 2048
Check which signature algorithm was used (SHA-256 is recommended):
$ openssl req -in example.csr -noout -text
Transform the private key to PEM format:
$ openssl rsa -outform PEM -in example.key -out example.pem
Generate a Certificate Signing Request. Note the * in the server FQDN:
$ openssl req -new -key example.key -out example.csr
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:Washington
Locality Name (eg, city) []:Seattle
Organization Name (eg, company) [Internet Widgits Pty
…continue.
Previous »