Recently I switched my media server from ext4 on LVM to ZFS. This has mostly been a great success, however I noticed a big problem with MythTV. In the past it would take 1-2sec to start playing video, now it would take 5-60sec. Ouch!
In this post I’ll describe the trouble-shooting techniques I applied, along with all the various things I found and fixed along the way. If you just want to see the solution you can scroll to the end.
(more…)
Comments Off on Fixing a MythTV performance problem
What is asynchronous I/O?
The web services I build spend most of their time doing one of these two classes of things:
- Processing – Burning CPU cycles calculating things. For example JSON parsing, HTML rendering, image processing, etc.
- I/O – Waiting for some event external to the CPU/RAM system to finish. For example an HTTP request or DNS request.
(more…)
Comments Off on JavaScript asynchronous functions and error handling
Back in the 1990s my family recorded some home videos using a VHS camera. It’s pretty hard to play these on modern equipment, so back in 2013 I digitised them all.
Of course when using an analogue source like tape it’s not really possible to do a lossless copy. However I wanted to do the highest quality capture with the equipment available to me, and I wanted to be able to redo post-processing in the future in case I have the time, motivation and technology to improve things further.
(more…)
Comments Off on Capturing and restoring video from VHS tapes losslessly
I have lots of computers in my house, all of which receive regular software updates. I get tired of waiting for all of these to download the same data, sometimes at the same time! I decided to use nginx to cache this data on my router to save time.
(more…)
Comments Off on Caching reverse proxy for Linux and OSX software updates
The new FTTN NBN is rolling out my area pretty soon. Switching over from my current ADSL2+ connection will mean disconnecting my analogue phone line, so I’ll need some other for my back to base alarm to contact the monitoring station.
I’ve managed to set this up with the Cisco SPA112 ATA and Nodephone.
(more…)
Comments Off on Back to base alarm monitoring using VoIP
A little while ago I upgraded Samba from 3.14 to 4.1. I’m using Arch Linux on the client and server. This upgrade broke the ability for the client to access files containing colons, that is I could not read files with names like 2016-01-01 10:42.txt.
(more…)
It’s somewhat common for some web pages to require that you enter your password by clicking buttons instead of using a regular form input field. For example the loans.com.au login screen does this.
The stated reason is usually security. However we should all be using password managers anyway, so this is quite annoying.
(more…)
Comments Off on Quickly remove read-only web page form fields with a bookmarklet
Docker is a very useful containerisation platform. I use it so much that I regularly fill up /var/lib/docker with old images and get out of disk space errors. Unfortunately Docker has no automatic garbage collection mechanism to clean up unused images. I wrote a simple shell script which I run from time to time.
(more…)
Comments Off on docker-cleanup to garbage collect old images
I believe the behaviour of the this keyword in JavaScript is one of the most confusing and poorly thought out parts of the language. If you understand how objects and classes work in some other language, but don’t understand why JavaScript behaves weirdly, this blog aims to help you out. By the end you’ll understand how this works and how to make it work for you.
(more…)
Comments Off on Understanding ‘this’ in JavaScript
I have a large collection of DVDs and I live in Australia. Because of history this means most of them are in ‘PAL’ format. This means they tend to be about 4% faster than they should be, resulting shorter playing times and higher pitched voices and music.
I’m a bit of a purist. This bothers me enough that I must fix it! What follows is a somewhat lengthy explanation of how film/video works, followed by instructions on how to use my fix-pal-speedup script.
(more…)