Making CD Mixtapes

If I’m making informal CD mixtapes (mixdiscs?), use Foobar2000 (or other software) to convert the tracks to WAV, and then use ImgBurn to create a CUE file (Tools > Create CUE file…), drag and drop the tracks in to the new window, and customise the disc before burning it. EAC can also be used for this (and is likely the better choice for making clones of audio CDs), but seems to be a little unreliable on my laptop. [Read More]

Caching git credentials on Windows

You may have already used the git credential cache to cache your remote credentials for some time, via something like: git config --global credential.helper 'cache --timeout=3600' However this will not work on Windows, as cache communicates over a Unix socket. Fortunately, support for Windows’s built-in credential manager has been added to the Windows git distribution (along with msysgit). To leverage it, use the wincred helper: git config --global credential.helper wincred If, like me, you like to use your dotfiles across many platforms, you may not want to put this in your global . [Read More]

Dynamic DNS (DDNS) on Asus routers

When using the stock or Merlin firmware on various Asus routers (I have an RT-N66U), you can use dynamic DNS to get a web domain to point to your router’s IP address. To use dynamic DNS, do the following: Go to your router’s administration console (sometimes available at and head to WAN > DDNS. There is also a link on the Network Map page. Enable the DDNS client, set Server to Custom and set the hostname to the web domain you will be updating (e. [Read More]

Connecting to an ADB-over-network Android device

Just a quick reminder to myself in future.

To connect to an Android device using ADB over network (in my case when using cyanogen mod), use the following command:

adb connect <IP address/hostname>

Kodi with Sony Bravia TVs

I’ve been setting up Kodi on my Sony Bravia Android TV — you can install it from the Google Play Store. Here are a few notes to help set things up how I like them: My favourite skin so far is Arctic: Zephyr as it doesn’t have lots of gaudy images, runs fast, and displays long titles reasonably well (good for both music and long video names). I’ve added some useful functions to the Sony remote control; install the Keymap Editor add-on and then make the following adjustments: Information (i+) button: Global > Navigation > Context Menu Red button : Global > Window > Open Home Green button: Global > Window > Open Favourites Yellow button: Global > Window > Open Fullscreen Video (allows you to return to a video if you go in to a menu) Blue button: Nothing yet! [Read More]

Building and Testing a Jekyll website with Docker on Windows

I’ve recently talked about [how I’ve changed my website to be created with Jekyll][migrate-to-jekyll]. One of the big reasons was to simplify how the site is built and run. Well, if it’s so simple now, then I should be able to modify it on the go within Windows, right? I’ve recently been using an openSUSE VM to modify the site, but figured I could do one better and operate (mostly) natively. [Read More]

Deploying Jekyll website on git commit

One reason for [migrating to static site generation][migrate-to-jekyll] is that the site becomes more straightforward to keep in version control systems such as git. And I do like version control; I naturally ran git init before I ran jekyll new! In my workflow, once I have made and committed changes locally, I push the changes remotely. But now I need to build and deploy the new version of the site. What if I could get that to happen automatically? [Read More]

JavaScript Promises Notes

Some notes to remind future me why Promises are pretty neat. What do they give me? They let you regain error handling for asynchronous operations. They let you avoid nested callbacks (and the pyramid indentation that comes with them). Can I use them? They were initially formalised in the Promises/A+ specification, and have been officially adopted in to JavaScript with ES6. They’ve been supported in all major browsers (except IE) for a while now. [Read More]

Fix installing packages for python2 in openSUSE

If you have both python2 and python3 installed on openSUSE, you might find when you use pip to install packages that they install for python3, not python2! This seems to be because the pip command that is run comes directly from the python3 install. To fix it, install the python-pip SUSE package, then use it as default: zypper install -n python-pip update-alternatives --config pip When prompted for which pip to use, ensure you select the python2 version. [Read More]

Enable spell checking in Sublime Text just for Markdown (or any individual syntax)

Open or create a Markdown document (or another file type you want to enable spell-checking for) Go to Preferences > Settings - More > Syntax Specific - User Add the following code: { "spell_check": true } If you’ve made any spelling errors or used some funky words, you should notice some of the titular red squiggly lines. Incidentally, you can set any option for individual syntaxes in this manner. [Read More]