April 1, 2016

Tool to get your Opal card travel data

Filed under: Technical — Tags: , , — James Bunton @ 12:00 am

The New South Wales public transport system uses the Opal smartcard as its payment mechanism. This means their servers store every trip that you make, including the start/end times and locations.

They need this data for billing, so there’s not much we can do about it from a privacy point of view. However you may be interested in getting your own copy of your data for making pretty graphs or other analyses.

(more…)

March 18, 2016

Safe bash scripting: ‘set -e’ is not enough!

Filed under: Rants,Technical — Tags: , — James Bunton @ 10:53 pm

I know, I know, shell scripting is a bad way to write software. I’ve always had a bit of a soft spot for bash though. Sure there are plenty of gotchas in bash scripting, but isn’t that the case for every programming language?

(more…)

July 29, 2015

bashttpd – the Bash HTTP server

Filed under: Technical — Tags: , , — James Bunton @ 8:11 pm

So I was bored on the bus trip to work this morning. Back in Uni I’d thought about whether it would be possible to write an HTTP server as a shell script for bash. So I did it! Presenting bashttpd.

(more…)

July 15, 2015

Monitoring hard disks and alerting on errors with smartmontools on Linux

Filed under: Technical — Tags: , — James Bunton @ 12:00 am

A simple configuration to regular check all local disks for errors. Any problems will go to syslog/journald as well as being emailed to root.

(more…)

July 1, 2015

IPv6 with over ADSL with PPP on Debian Linux using Internode

Filed under: Technical — Tags: , , , , , , , , — James Bunton @ 12:00 am

Many years ago Internode started offering IPv6. This is proper dual stack IPv6 with a /56 block of addresses. I get 256 subnets, each with 2^64 addresses. Awesome! I signed on for the trial immediately and got it working without too much difficulty. The documentation wasn’t great though, so here’s how I my setup works today.

(more…)

June 15, 2015

Debian and Arch Linux package cleanup – aptorphan/pacorphan

Filed under: Technical — Tags: , , , , — James Bunton @ 12:00 am

Once upon a time there was a tool called deborphan. It finds orphaned packages which could be removed from the system. You can maintain a list of ‘keepers’ to stop it suggesting removal of things that you want.

I wanted to extend this to work with the builtin “auto-installed” flag that aptitude stores for all packages. I also wanted it to work with Arch Linux.

(more…)

June 1, 2015

iMac G4 as a DVI monitor

Filed under: Technical — Tags: , , — James Bunton @ 12:00 am

A few years ago I found an old iMac G4. It’s now over ten years old and these days PowerPC chips are not too useful. However it did have a very nice 20″ 1680×1050 IPS display in an attractive case.

If only I could connect this display to some other computer! I decided to try to hook it up to the Mac Pro I recently purchased from Atlassian.

I bit of web searching found the incredibly helpful dremeljunkie.com. I discovered that internally the iMac does use the same TMDS signalling as a DVI connector.

That means in theory I just have to hook everything up the right way and it will work! :)

(more…)

September 1, 2014

Don’t trust the query planner!

Filed under: Technical — Tags: , , — James Bunton @ 12:00 am

This is an experiment in cross-posting something from my internal blog with my employer Atlassian. I thought it may be be of general interest so I’ve edited it a bit and shared it here.

We recently did a regular zero downtime upgrade of our order processing system. This is a fairly routine event, we use Bamboo deployments to push from git master to our dev, staging and then production environments every day. The vast majority of these upgrades go smoothly without serious regressions or problems. On this particular day the application did not come back properly, we had an outage! We treat these very seriously because the ordering system is a big monolithic do-all-the-things type of application. An outage means customers cannot make new purchases, view their license keys, sign up for OnDemand, view prices on Marketplace and many other things.

(more…)

July 25, 2014

Introduction to the Linux Wireless Subsystem

Filed under: Technical — Tags: , , , — 7:26 pm

Guest post by lemnisca.

I’ve recently started getting into Linux wireless programming for work. I am a fairly experienced C programmer but don’t know much about kernel development so this is a new adventure for me. What I found was that while there is a lot of information available about how it all works — indeed, since it’s open source, one can at least in theory have complete information about the functioning of the system — there is not much in the way of an introduction. There’s no broad explanation of how it all works for someone completely new to the system. The documentation that does exist is largely focused on documenting individual functions, structs, etc. and is more of a reference for those already familiar with the system. I quickly found myself lost in a sea of source code, chasing down chains of function calls with no real feel for how the whole thing is put together. So I’ve decided to share what I’ve learnt, in the hopes that it might help someone else in the future.

(more…)

April 7, 2014

Bluplayer – Easy Bluray playback with MakeMKV and VLC

Filed under: Technical — Tags: , , , , — James Bunton @ 9:00 am

About a year ago when I first bought my Bluray drive for Linux I had a simple requirement. I wanted to be able to put a disc in, then with some graphical tool select a track and have it start playing. It turns out nothing on Linux can do this.

So I wrote a simple Python/Qt app which uses MakeMKV to decrypt and VLC to play it.

(more…)

« Newer PostsOlder Posts »