A piggy bank of commands, fixes, succinct reviews, some mini articles and technical opinions from a (mostly) Perl developer.

A unary plus sign before curly brackets in Perl

Curly braces are overloaded - they can signify either a hash or a block

+{ Prepending a plus sign forces it to be interpreted as a hash.

{; Adding a semicolon forces it to be interpreted as a block.

Sources:
- The Case of the Overloaded Curlys
- perlref

Easily save music playlists from Youtube on Ubuntu

git clone https://github.com/rg3/youtube-dl.git
cd youtube-dl
./youtube-dl 'https://www.youtube.com/playlist?list=PL517964F9D64C8D0B' --ignore-errors --extract-audio --audio-quality 0 --audio-format mp3 --prefer-ffmpeg --output '%(playlist_index)s - %(title)s.%(ext)s'

(source, source)

...but then the mp3 files have the wrong length and can't be fast forwarded properly in many players (youtube-dl 2014.04.30.1)

To fix them:

sudo apt-get install vbrfix
cd /path/to/mp3s
find . -type f -iname '*.mp3' -exec vbrfix {} {} \;
rm vbrfix.log vbrfix.tmp

(source, source)