Jacek Kuzemczak

Asterisk for Home

Asterisk is an open source phone server used predominately in business to route incoming calls through those awful menus to the person that should know how to deal with them. The usefulness of something that can do pretty much anything you could think of with phone calls is obvious for companies that deal with a large number of calls per day. Something that gets less mentions in using something like Asterisk for a home phone system.

(more…)

JavaScript Document Mutation Events

Sometimes you get a situation where you need to know when a new element has been added to the page with JavaScript. A common example of this is adding event listeners to a certain type of input then adding more of those inputs – the new ones do not get the event. For a simple example it’s obviously easier just to add the event handler when adding the new input so let’s assume we’re talking about something more complex. There used to be an event for this kind of thing but it was removed for being a huge performance killer.

(more…)

Explosion effect in only CSS

Had a go at some more CSS only animations recently. Turned out kinda cool.

(more…)

Budget BitTorrent seedbox using a cheap VPS

There are a number of reasons why using a seedbox is a good idea; they remove the need to upload content using your home connection, they (almost) hide your IP address from the swarm and the content stored on one can be accessed from anywhere.

(more…)

Concurrent processing in PHP

I occasionally run in to procedures that could really benefit from some form of concurrent processing. The most recent example was a script that created thumbnail images from a folder of large images but there have been many many others. Sometimes we’re using a lower level language that is geared towards multi-threading, which is great. A lot of the time we’ve thrown together a quick script then later discovered it takes ages if one of the images is super high resolution.

(more…)

Parsing maths in PHP

One of the interesting things about programming is that you sometimes come across a task that sounds really easy but is actually very difficult to implement for some technical reason.

My boss came up with one of these recently, showing a field on the page that is a calculation using other fields. Sounded easy enough until he said that the formula used had to be configurable.

(more…)

Intercepting AJAX calls from a Greesemonkey script

I recently ran into a situation in which I needed to have something happen just after an AJAX request had completed. Initially that sounded like something that would not really be possible. Not wanting to resort to rapid polling I put a bit more time in to thinking of a solution and came up with this.

(more…)

Renaming network interfaces on a Linux machine

The default names given to network interfaces on a Linux machine are not all that useful. Often they’ll be called something like eth0 or p4p1, but what if you are setting up a router and want to call them something more sensible like lan and wan. Luckily with udev and a bit of kernel tweaking that is possible. There are a few guides around online but none of them seem to pull all the steps together so I’m doing that here.

(more…)

Internet explorer testing using VirtualBox

There have been virtual machine images made available for IE testing around for a while now, they’re awesome and we love them. But there is one tiny annoyance about using them, the 30 days trials eventually expire and you have to stop what you’re doing to restore a snapshot or set up the machine again.

Luckily VirtualBox has a little known feature called immutable disks that makes this problem go away. When a virtual hard disk image is marked as immutable and changes made to it are reset each time the machine boots, effectively as if the snapshots were restored each time it boots. Set the disk up before the first ever boot and you get an infinite testing machine.

(more…)

Abusing pseudo elements to create a page with no HTML

I recently had the idea to try and create a simple page layout without any HTML at all except for the <html> and <body> tags. After a few minutes of playing around I had something working, it was actually weirdly easy!

(more…)
« Previous PageNext Page »