Delan Azabani

Ad vigendum per aspera

The last four years have fucked with me in ways out of which I’ve only really started clawing myself over the last year or so. I went from feeling like I could do anything and improve the lives of the people around me, to feeling like an unreliable piece of shit whose only skills were botching my responsibilities and disappointing the people I knew. I gave up on learning to play the hand I was dealt, neglected the people I love, and grew to cope with all of my problems the only way I knew: by ignoring them. But the scales are finally starting to tip in my favour, and it’s time for me to end my exile.

Echo chamber

The culture of building 314 can, at times, be an echo chamber that isn’t really conducive to nuance or reason, and when that happens, it’s more than a literal breath of fresh air to step through that glass door, out of the dilapidated hallway of a gravely neglected computing department, and back into the real world.

Choosing a software licence

The licence that one releases their software under is often a topic that’s given less thought then it perhaps deserves. I’ve been releasing my code under the MIT (Expat) licence for as long as I can remember, but I thought it might be prudent to take a closer look at what’s out there in the wild world of software licensing.


A fog has descended upon my mind throughout this year, and it has become so thick that I can barely remember what life was like before it. If I were to kill myself tomorrow, it would no longer be because of my mood. It would be because my cognitive and executive functions have deteriorated to the point where I can barely do what’s necessary to operate as a human, let alone work, think, or learn. I don’t have the motivation to actually harm myself, but soon I’ll literally become bored out of my mind.

The modern OpenBSD home router

It’s no secret that most consumer routers ship with software that’s flaky at best, and prohibitively insecure at worst. While I’ve had good experiences with OpenWrt and pfSense, I wanted to build a router from the ground up, both to understand the stack and to have something to tinker with. I found many solid tutorials out there, but few of them covered the intricacies of both PPP and IPv6. Here’s what I’ve learned.

Triple fault

I sought treatment for depression and anxiety just over three months ago, while trying in futility to continue living my life with minimal disruption. My counsellor and my friends convinced me to trudge onwards through the final year of my university course, and in fairness, it was worth a shot. I had an excellent career with Atlassian lined up, with no less than a signed contract, and all I needed to do was simply graduate. As difficult as it was to commit to this decision, I need to devote the rest of this year to my health, during when I can reset my mind without external pressure.

On gender identity

Human gender and sexuality are immensely complex concepts due to our complexity as a species. Despite this, it’s quite simple to handle gender identity in an everyday setting. You can initially guess someone’s gender, because you’ll probably be correct most of the time. Otherwise, accept any corrections or simply ask them how they wish to be referred, and respect their identity. If you deliberately misgender a person because they don’t pass your personal threshold of physical characteristics to be worthy of their gender, you’re not just being rude, but you’re also espousing an excessively simplified and internally inconsistent conceptual understanding of gender.

Local minima

Sixteen weeks have elapsed since I last wrote about depression. Since then I have repeatedly slipped into deeper local minima, first five weeks ago, then a fortnight ago, making previously awful states seem like manageable annoyances in hindsight. The following further documents my decline, as I belatedly decide to ask for help.

The Curtin Courses Handbook

Almost every university has a handbook which should serve as an authoritative source regarding which units a student needs to complete to be able to graduate. If you are a computing student at Curtin University, this is not the case.


Being in a permanent state of melancholy is a very damaging predicament because it’s an almost insurmountably difficult loop to identify, accept and break. I’m now acutely aware of this because I’ve been depressed for nearly a year now. I’ve decided to materialise some of my thoughts because it might help organise them.

First experiences with OpenBSD

Tired of the sluggishness of Windows on my laptop and interested in experimenting with a Unix-like that I haven't tried before, I gave OpenBSD a second shot after a brief stint on my netbook a couple of years back. Coming from exclusively using Gentoo, this seemed like a natural choice due to its minimalism and the shared roots between ports and portage. Reading Matthew D. Fuller's comparison of BSD and Linux inspired me to venture beyond the familiar walls of the Linux world.

A new desk does wonders

The tools that you use on an intensive, continuous basis greatly affect the way that you work. When Linus Torvalds ran out of space on his home desk, he simply bought a new one. My previous work surface was a pair of tables made by a popular Swedish flat pack furniture retailer. They were far too light, being essentially cardboard laminate, chipped easily, and wobbled ridiculously when I wrote. To make matters worse, they were just a tad too tall, hampering circulation in my arms.

Learning how to learn

Imagine that you're on a bicycle, and you've been pushed to aid your start for a few dozen metres. Imagine that you've continued pedalling, thinking that you're now moving on your own, but there is in fact no chain on your bicycle. You've been fruitlessly spinning your legs, deceived by the residual velocity that is now quickly diminishing. You are in fact me, discovering that prior knowledge can only get me so far with underdeveloped study skills.

Rationing time in an era of drought

I'm not dead yet. I've recently started working at Aspermont Limited, supporting and maintaining their internal web applications while also helping with gradual migrations to ASP.NET. With ten hours a week there, four tutoring Software Engineering 110, and fourteen contact hours of full time study, unfortunately I now have much less spare time than I have been accustomed to.

Tutoring at a gigabit per second

The last two days have been both interesting and very exciting. So much has happened. Where do I even start? I've wrangled a "notoriously underspecified" network configuration with a friend, helped ComSSA with acquiring around sixty new members on orientation day, netted myself a 1000BASE-T switch with 240 ports, and somehow managed to become a tutor of two classes for the coming semester.

Practical driving assessment

I'm pleased to say that I've passed my driving test with only a mere three points lost, leaving me with at least 30 months remaining in the meandering process known to Western Australians as the "Graduated Driver Training and Licensing" system. In just under six months' time, I'll be able to undertake a largely irrelevant and unrealistic computerised reaction timing test, after which I'll be allowed to drive unaccompanied, sort of.

Setting up an IBM xSeries 346

I recently acquired an IBM eServer from a friend, type 8840. I've repurposed it to be a dedicated Debian box at the moment, but there were some issues. At infrequent intervals, maybe once a day, the server would reboot for no reason, and no OS or firmware logs showed a trace. Perhaps it's something raising a non-maskable interrupt. In an effort to fix that I've updated all of the firmware I could find.

Writing an IRC sedbot

The ComSSA IRC has an official utility bot, KhlavKalash, which currently does some trivia like URL title fetching and server uptime. It uses Twisted for IRC and has a good plugin system with Yapsy. Feeling a bit bored, I decided to try my hand at implementing what I call a "sedbot", which interprets messages that are sed replacement expressions, executing the replacement on the last normal message.

More IRCd-Hybrid shenanigans

I thought I had fixed the IPv6 connectivity issues on ComSSA's IRC server, as I was happily connected from a local shell on the server. Yesterday, when trying to connect from a Linux box at home, I realised that connections from external addresses were timing out — even though netstat showed Hybrid was listening properly on both addresses! I suppose it was time to dig a little deeper. What could go wrong?

Sidestepping NXDOMAIN hijacking

Until May last year, I was a customer of for a domain name and DNS services. Having just grown out of a comfortable walled garden of all-in-one shared hosting and DNS perhaps about a year prior, I knew little other than that I should avoid GoDaddy. I since discovered that was pulling a scummy trick that an increasing number of name service providers engaged in.

Network installing Windows XP

This was originally going to be a quick guide to Windows Deployment Services with Windows Server 2012. Using it to install Windows Vista and newer is trivial though, with the introduction of the WIM format. However, upon finding a laptop that needed Windows XP and could only externally boot via PXE, things changed a little.

Using IPv6 with IRCd-Hybrid

It's great to see that Hybrid has IPv6 support, but it's not quite perfect. Out of the box, while an attempt is made to listen on all interfaces over both protocols, "address already in use" errors for the listening sockets may appear in /var/log/ircd/ircd-hybrid.log — with a bit of configuration, this can be fixed though.

Patriotic journalism is a farce

If you were under the impression that Tony Abbott's political rhetoric couldn't possibly get any more ridiculous, then take heed; you may just be sorely mistaken. What appears to hit a nerve with our current prime minister today is his realisation that our national public broadcaster won't simply prostrate and assume the position of a partisan and corporate mouthpiece like Murdoch's properties.

Glacier and

Debian's snapshot archive is a priceless resource containing every version of every Debian package ever released. With over 11 million files clocking into well over 16 TB, it's also presumably quite expensive to maintain, especially given that most files are accessed infrequently. Perhaps that can be improved though.

Rest in peace, 4:3

Perhaps the only channel I bother watching television for anymore is ABC News 24. I could probably eschew using an actual television for that, too, as a live stream is provided online. The channel has finally dropped backwards compatibility with 4:3 displays, taking another step in the constant march of deprecation.

Forwarding Curtin email

In an effort to avoid using any email UI other than the familiar embrace of Gmail via Google Apps, one of the first things I did when I became a Curtin student was to forward my email. I couldn't quite filter all of the incoming emails properly though, until last night I had a sudden realisation.

Adventures of, part 3

At last, the new website is alive, the internal wiki has been painstakingly migrated by hand and the imageboard is ready for posting. Hang on, there were some other services on the old host too? Not to worry, I've got it all covered.

Jekyll 1.4.3 is broken on Windows

Just a heads up: Jekyll released version 1.4.3 a few days ago, and it is completely broken on Windows — not even standard site builds will work. Make sure you force gem to install version 1.4.2 until the bug is fixed.

Adventures of, part 2

In another daily episode of configuring ComSSA's new website and Internet services, here's what I've been up to. The DigitalOcean server has been set up, users are logged in smoothly, the wiki and imageboard are installed and the website is ready to run. I should get some sleep now before I become fully nocturnal.

Adventures of, part 1

ComSSA's public website has been left untouched for years, and lacked vital information for potential and current members. Nothing fancy, all we need is location, contact, membership and event information. I've been delegated the task of setting up a new website for the club, and I've discovered a fair bit on the first night.

Renaming Active Directory domains

Last night I tried to implement DNSSEC on without any prior knowledge. That went badly, and I lost mail for at least a few hours. I've separated my experimental Active Directory domain off onto, where I can safely try DNSSEC again without losing mail, but the migration process wasn't straightforward.

Better MIDI playback on Windows

The default software synthesiser on Windows can show its limits when playing too many notes at once. Take this piece for instance, which heavily glitches at 2:07 on the large descending sweep of notes. Let's fix that, shall we? 2014, day 5: sockets, satellites and scaling

I suppose that's it. As I've mentioned,, my first technical conference, can only be described as a rollercoaster that was over too soon looking back. I've learned more from experts in open source communities in these last five days than I probably have in months of my own accord. Let's take a look at the last day.

Network protocol checking tools

I've seen several quick, web-based configuration testing tools for clients and servers of various protocols, so it could potentially be helpful to someone if I compiled a list of them here. These tools test not only that your servers are working, but that they are configured in accordance with best practices, and I use them all heavily. Let's start with TLS, DNS and SMTP, though I'll try to find more in future and append them here. 2014, day 4: Trent and the batteryists

LCA 2014 is really coming into its own now, and although it'd be great to finally get a chance to sleep, it's more regrettable that there's only one day left. Today's mandatory surprise was finding out that Rusty Russell was not simply a volunteer that held the newcomers' introduction. 2014, day 3: fruit flies and firmware

I can honestly say without a doubt, that for all three days in a row of LCA 2014 so far, each was better than the last. At least one session every day set the record for what I'd consider to be the best talk. At this rate, I have no idea where the remaining two days will head.

After PGP key signing parties

Yesterday I attended a PGP key signing BoF session at Being a novice at PGP, and never having done this before, it took me a couple of tries to get the actual signing process right after the party. Here's what I learned, and how you should do it. Probably.

make error 253 when installing any Ruby gems on Windows

Recently I've been unable to install any gems that require native extensions. This included both rdiscount and wdm, the latter of which I need to run jekyll serve -w and automatically rebuild sites as needed on Windows. The cause of the problem turned out to make no sense. 2014, day 2: a kernel fit for a colonel

An excellent start to the second day of LCA 2014 was unexpectedly seeing the one and only Linus Torvalds seated on the opposite side of the Octagon Theatre during the keynote. To counter this, while I'm wearing the official shirt today, I've forgotten my lanyard pass, so I really hope I'm not rejected from any talks. 2014, day 1: a torrent of knowledge

The first day of my first technical conference has been one of the most truly humbling and illuminating experiences I've had. It's rather late and I'll need sleep very soon, but I can't simply buffer these thoughts for later. Every speaker and attendee I met had something to share, in a true display of community wisdom. 2014, day 0: University Computer Club

After avoiding a long queue tomorrow by registering early, I decided to use a bit of spare time taking a peek at how our sibling rivals at the University Computer Club are going. Everywhere I looked there was an impressive piece of history, and this is but a small selection.

Matasano Crypto Challenges

Matasano Security, founded by leading Hacker News user Thomas Ptacek, is running an email-based cryptography exercise suite. Perhaps it's a hiring tool, or a survey of programmer competency, but either way it's definitely very educational.

Forcing a single timezone in Jekyll

Alternatively, How I Learned to Stop Worrying and Love UTC. It was a little more subtle than I had expected to ensure that Jekyll uses an arbitrary timezone for dates in posts and their generated URLs, but is that even a Good Thing™ to do?

Hacking the Casio fx-82MS

The fx-82MS is a cheap two-line scientific calculator that I fondly remember using for countless hours since the beginning of high school. It's so reliable that after using the same one for over six years, the worst that's happened is a bit of corrosion on the rear screws. Here are a couple of useful tricks I've found after digging through forums and videos.

Web workers in a single script file

Web workers are an immensely useful tool, enabling concurrency and perhaps parallelism with JavaScript. Before their introduction, any non-trivial computation would completely lock up the user interface of the current document, or even the entire browser.

Renaming GitHub branches

Now that I have a website hosted with GitHub Pages, I've been looking to rename gh-pages branches back to master for some of my repositories so that the root URL namespace isn't automatically polluted. 2014 is in Perth this year, and it's perfect timing for me as I won't have to travel out of the city for my first attendance. As the conference jumps between universities across Australia and New Zealand each year, the last time it was held here was eleven years ago.