Life & much, much more

2018 New years resolutions

The first half of January’s resolution probation period has ended, and so it’s perhaps safe to post the goals for the year. So in no particular order, here they are.

  • Blog more. There’s a lot that’s been happening, and very little of it sees the light of day online. There are plenty of projects to provoke, reflect upon, or just answer your organic search query. My blogging habits used to be a couple times a week, and slowly died down as life took over. It certainly shows in the analytics dashboard. By the end of the year, monthly sessions should equal the same numbers seen in 2015. This means content creation, content creation, and more content creation. You can probably already see that a mobile friendly theme has been refreshed, new categories, and a few posts already published.
  • Divest. Financially, investors in their 20s can take a long-term view. This is the time to build up investing habits, and experience different markets. By the end of the year, I would like to invest in 20 different markets and start understanding my risk profile. Last year I experienced managed funds, blue-chip stocks, and rode the crypto currency roller coaster. This year will be more.
  • Consume intelligently. The environment is changing. Now is as good a time as any to build habits to be a more ethical consumer. We vote with our dollars, and it is our responsibility to support supply chains that promote good values in our society. Once consumed, we should break the disposable habit that arose sometime in the previous generation, and go towards zero-waste.
  • Improve digital security. The crypto boom is the public’s first taste of moving more traditional assets into a decentralised network. Unlike centralised systems, decentralised systems are very hard to kill. I foresee more of our digital lives being interconnected, even if we don’t realise it. It is pertinent that we promote more usage of privacy practices, such as password managers, secure protocols, self-hosted infrastructure, encryption, and signing.
  • Begin longer term work and life. I’ve been in the architecture industry for a year and a half now after being primarily in software. It’s probably time for training wheels off, and to start specialising in an area of architecture that is socially beneficial. Similarly, despite the prohibitive housing costs here in Sydney, the ongoing market correction suggests it’s time to revisit settling down in the more traditional sense.

Until 2019, then.

Life & much, much more

Brand new Gentoo desktop computer

It’s 2018, and my 5 year old trusty Thinkpad 420i has decided to overheat for its last time. After more than 10 years of laptops, I decided to go for a desktop. I spoke to a fellow at Linux Now, who supplies custom boxes with Linux preinstalled, and are located in Melbourne, Australia (as of writing, no complaints with their service at all). A week later, I was booting up and my old laptop was headed to the nearest e-waste recycling centre. Here’s the obligatory Larry cowsay:

$ cowsay `uname -a`
/ Linux dooby 4.12.12-gentoo #1 SMP Tue \
| Nov 28 09:55:21 AEDT 2017 x86_64 AMD  |
| Ryzen 5 1600X Six-Core Processor      |
\ AuthenticAMD GNU/Linux                /
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Being a desktop machine, it lacks portability but this is mitigated as you can run Gentoo on your phone. Combine your phone with a Bluetooth keyboard and mouse, and you have a full-on portable workstation. Your desktop will be much more powerful than your laptop, at half the price.

Tower machine

And of course, here are the hardware specs.

  • AMD Ryzen 5 1600X CPU (5 times faster than my laptop) As of writing, these Ryzens are experiencing some instability related to kernel bug 196683, but the workarounds in the bug report seem to solve it.
  • NVIDIA GeForce GTX 1050Ti GPU (16 times faster than my laptop). Yes, proprietary blob drivers are in use.
  • 16GB DDR4 2400Mhz RAM
  • 250GB SSD
  • 23.6in 1920×1080 16:9 LCD Monitor
  • Filco Majestouch-2, Tenkeyless keyboard. If you’ve never needed a clean-cut professional mechanical keyboard that isn’t as bulky as the IBM Model M, I’d highly recommend this one.

Filco Majestouch-2, Tenkeyless keyboard

Software-wise, it is running Gentoo Linux with KDE. Backup server is hosted by The worldfile is largely the same as my old laptop, with the addition of newsbeuter for RSS feeds. Happy 2018!

Life & much, much more

Practical Abhidhamma Course for Theravāda Buddhists

Today, I’d like to briefly introduce a project for Theravāda Buddhists. Buddhism, like most religions, have a few sacred texts to describe their teachings. One of these texts, the “Abhidhamma”, is rather elusive and complicated to understand. My dad has been teaching this difficult topic for the past 15 years, and over the past year and half, has written a 200-page introductory book for those who want to see what all the fuss is about. It’s chock-full of diagrams, references, and bad jokes.

To quote from the actual page:

There are eight lessons in this course covering selected topics from the Abhidhamma that are most practical and relevant to daily life. Though it is called a “Practical Abhidhamma Course,” it is also a practical Dhamma course using themes from the Abhidhamma. The Dhamma and the Abhidhamma are not meant for abstract theorizing; they are meant for practical application. I hope you approach this course not only to learn new facts, but also to consider how you can improve yourself spiritually.

So, click to go ahead and learn about the Abhidhamma.


I had the pleasure of helping on various technical and visual aspects, and I’m happy to launch which will serve the book as well as any future supplementary content. For those interested, the book was typeset with LaTeX, with diagrams provided by Inkscape with LaTeX rendering for text labels.

Life & much, much more

Space architecture – a history of space station designs

To quote the beginning of the full article:

This article explores different priorities of human comfort and how these priorities were satisfied in standalone artificial environments, such as space stations.

If you’re impatient and just want to read the full article, click to read A history of design and human factors in Space Stations.

… or if you want a bit more background, read on …

I began investigating in more detail the field of space architecture last year. Although I had a bit of experience from the ISSDC, I was much more interested in real current designs as opposed to hypothetical scenarios.

Space architecture, and its parent field of design is a broad one. It’s an engineering challenge, an economic challenge, a logistical challenge, a political challenge, you name it. As an architect, the priorities of space station/settlement designs lie with the people that inhabit it. Simply put, you don’t call an architect to build a rocket, but when a person is living inside that rocket, especially if they’re stuck there for a while, that’s when you call your architect.

This means that when an architect looks at designing a space station, although they need to be aware of the technical constraints of the environment (gravity, air, temperature, structure, radiation, transport, health), their true expertise lies in understanding how to make people comfortable and productive within that space. This means that space architects need to understand to an incredible amount of detail how we perceive and are affected by our environment. Much more so than Earth architects, who have the advantage of the natural world, which is usually much nicer than whatever is indoors, as well as existing social and urban infrastructure. Space architects don’t have this benefit, and so the entire “world” is limited to what they can fit inside a large room.

This point: space architects are responsible for the happiness of humans, is an absolutely vital one, and unfortunately often missed. Too many architects are instead raptured by the technological pornography of the environment, the intricate constraints, or even the ideological ability to “reimagine our future”. No. The reality is much more humble: space architecture is about rediscovering what humans hold dear in the world. You cannot claim to reinvent a better future if you do not yet understand what we already appreciate in the present.

And so if my point has made any impact, please go ahead and read A history of design and human factors in Space Stations, where I walk through the history of space station designs, their priorities, and what architects are looking at now.

Space architecture - how cosy

Cosy, isn’t it? Also, a TED Talk on How to go to space, without having to go to space shares many of my thoughts, and would be worth watching.

Life & much, much more

Things I should’ve done earlier.

On Linux, there are things that you know are better but you don’t switch because you’re comfortable where you are. Here’s a list of the things I’ve changed the past year that I really should’ve done earlier.

  • screen -> tmux
  • irssi/quassel -> weechat + relay
  • apache -> nginx
  • dropbox -> owncloud
  • bash -> zsh
  • bootstrapping vim-spf -> my own tailored and clean dotfiles
  • phing -> make
  • sahi -> selenium
  • ! mpd -> mpd (oh why did I ever leave you)
  • ! mutt -> mutt (everything else is severely broken)
  • a lot of virtualbox instances -> (much less hassle, with support for selenium too!)

… would be interested to know what else I could be missing out on! :)

Life & much, much more

Competitive weight loss with

So last year (or perhaps even the year before, time flies!) two people close to me participated in a friendly weight-loss competition. To do this, they used

WeightRace is a small web application I built a while ago for fun, which allows up to four contestants to compete towards a weight goal which they would set. They would be prompted daily for weight updates, and would set a reward for the winner. It also used some lightweight gamification so contestants could earn bonus “wobbly bits” when achieving things like their BMI.

But enough talking about the application — applications are boring! Much more interesting are results! Let’s see:

WeightRace - competitive weight loss

The two contestants — whom we shall refer to as Rob and Julie, which may or may not be their real name — and their results are shown in the graph above. Julie is red, Rob is blue, and their linear trajectories towards their weight goal is shown via the corresponding coloured dotted line.

If I could hear a sped-up commentary of the results, it would truly be exciting! Rob makes an excellent head-start well ahead of his trajectory, whereas Julie is having trouble beginning. As we near the holiday (Christmassy) season, we see Rob’s progress plateauing, whereas Julie gets her game on and updates with a rigorous discipline. Also great to notice is the regular upward hikes in Julie’s weight – those correspond with weekends! As the holidays pass, Rob makes gains and is unable to recover.

In the end, although Julie wins the Race, neither Julie or Rob met their weight goal (note that in terms of absolute figures, Rob actually wins). However, this was all not in vain. Given that almost another year has passed since this race finished, and I can see that Rob’s weight is now well under control and has indeed achieved his goal, I’d like to think that the WeightRace has played a role.

In particular, the WeightRace helped raise daily awareness. I believe that it was this daily awareness of the current weight that helped most in the long-term. In addition, the WeightRace helped Rob’s body to stabilise around 90kg for half a year! I suspect his body figured out that it could manage at that weight, which made it easier for him to (after the WeightRace) continue to lose weight at a healthy pace.

For those interested in playing with the WeightRace, you can check it out online at Note though that it is not actually complete, but works good enough for a competition. For those interested in the source, it’s up on my GitHub.

Life & much, much more

The Architecture Graduate Exhibition – University of Sydney

On the 5th of December, there will be the Architecture Graduate Exhibition at the University of Sydney. Yes, that’s right, my Bachelors degree is over! But before I move on to Masters, other projects, and life, I would like to dedicate a post to the exhibition itself.

The Architecture Graduate Exhibition is an annual event which showcases the work of all the graduating students. This year, it’ll feature the the graduating Bachelors, who show projects tackling the controversial redevelopment of Flinders Street Station in Melbourne, and the graduating Masters, who’ll showcase three distinct projects. Our organising team of five including myself are happy to present “ANALOGUE” (that’s an artsy theme, in case you haven’t guessed).

Architecture Graduate Exhibition - USyd - Logo

If you are available in Sydney on the 5th of December, be sure to drop in at the Wilkinson Building at 148 City Road around 6PM for live music (which I shall participate), free booze (which I shall graciously donate), and perhaps some design here and there.

This year shall also feature the release of the first online graduate exhibition catalogue. This’ll be reused in future years. It’s still under wraps but will be released at once I have enough entries. You may also follow our Analogue Architecture Exhibition Facebook page where we post ongoings – you might witness the 200 plinths we built (don’t mind the mess in the backdrop, that’s the natural state of a creative environment).

Analogue Architecture Exhibition Plinths

Back to work!

Life & much, much more

A bullet point blog post because I’m back in business

What a hectic month. Will post about projects later, but here’s a bit of here and there:

  • Final exam on Monday 18th then I will truly be free.
  • All servers and boxes updated to latest software after several months.
  • Amarok is an amazing app, but that it took me this long to wrap my head around is a little sad. The MusicBrainz tagger is a lifesaver.
  • New GPG keys. It’s been 3 years since my old one.
  • Finally got around to talking to the registrars upstream to remove the hold status from It’s back online, still running the old Eadrax, but has some hotfixes applied.
  • The KDE Connect GSOC project is great.
  • The Sydney Architecture Revue went very well. Can’t wait for next year.
  • Oh, what’s this?

More posts later.

Life & much, much more

Architecture IRC channel on Freenode

Most of my readers will know that despite the majority of my blog posts being about technical content, I actually study architecture. The crossover between these two fields from my experience seems to be rather minimal. The computer geeks know a little about buildings, but not enough to do much about it. Similarly, the architecture folks dabble with computers, creating fields such as algorithmic architecture and parametric design. This dabbling rarely turns into anything serious from either party, and it’s quite hard to find an online community of those who are interested in both. I hope to change that with the new architecture IRC channel on freenode.

I recall lurking with the hopes of meeting another architect in #architect for a while. Occasionally someone would come but never stay, and the original channel founder left and hasn’t been back for a year or so. For this reason I have now registered ##architect (the double hash prefix due to Freenode’s channel rules) and will lurk yet again. I hope by writing this blog post other architects might notice and pop in.

What is IRC and how do I join the architecture IRC channel?

I realise that many architects might not be so familiar with what IRC is. IRC can be thought of as an online chat room divided into channels, which represent common topics of discussion. These channels are grouped into networks, which are simply organisations that provide these channels. So the full access details you need are as such:

Network: Freenode
Channel: ##architect

Just like you need a program such as Skype in order to chat with others using Skype, you will need an IRC program to chat with others on IRC. I recommend using downloading Quassel – it works on Windows, Mac and Linux.

If you don’t want to use a program, you can easily chat using the online Freenode webchat service. It’s super easy to get started, just type in a nickname for yourself and put ##architect in the channel box, and press connect.

Finally, don’t worry if nobody seems to be around, just stick around and we’ll respond when we’re back at a computer.

See you in the architecture IRC channel!

Edit: some people have popped up but leave quite quickly. Small IRC communities are frequently inactive but need people to stick around for it to grow. Please consider waiting a few hours, or just connecting frequently and when somebody else is also around we’ll have a chat.

Life & much, much more

Sydney revue coming up from the architecture faculty!

As some might remember, I was involved in a Sydney revue last year by the university of Sydney architecture faculty as the musical director. It was called Game of Homes (a shameless pun on the Game of Thrones series). Not only was I involved with music, it also gave me the wonderful opportunity to create a 3D animation for its opening sequence based on the original (and very well done) Game of Thrones sequence. You can view the animation sequence and corresponding revue poster in this post.

As this is an annual event, I’m happy to say that I’m again involved in it this year (as music again) and would like to present Floorless, a spaghetti western with a particularly complex pun for a title. It’s a joke on both the film Lawless, and on Flawless with an architectural twist. Get it? Nope? That’s alright. Me neither.

Sydney revue architecture

Anyway, you can tell that this is a quality Sydney revue because it has a quality poster. This means that if you’re in Sydney on the 5th, 6th or 7th of September, you should buy a cheap ticket and watch it.

Sydney revue poster alternative

It contains all the right ingredients for a successful western. These include bandits, sherrifs, the town stranger, the town drunk, the fastest shot in the West (which may sometime be the town drunk), the banjo brandishing hillbilly, the lonely harmonica player, a whip*, the mayor, Mexicans, the fine lass, and a Final standoff with capital F.

Also, there used to be an official revue website somewhere but as I can’t find it I assume that someone forgot to renew the domain and the site no longer exists.

Cheers, and see you at the event!

  • the whip may or may not be used at the actual event, and audience are recommended to not buy tickets for the front row.
Life & much, much more

Hello SevenStrokes: Building websites … a little differently

A few months ago, Chris Paplinski, Nathan Charrois, Kaushal Inna, Andre Brokman, Kelsie Rose and I, Dion Moult, gathered to create a company. Today, we would like to present to the world: SevenStrokes.

Sevenstrokes web development

SevenStrokes is a web development company but with a few key differences.

  1. Firstly, we see websites as a service, not a product. We don’t just build a website, we treat it as part of your larger corporate strategy.
  2. We build systems that mirror your day-to-day domain issues. We use a combination of behavior-driven development and code architecture that employs the same daily language that you do. This ensures our system makes sense not just in the software world, but in real life, and thus always move a step towards achieving your corporate goals.
  3. We follow many aspects of the open-source business model, ensuring that we assign the most motivated staff that want your site to succeed just as much as you do, and that full inspection guarantees your system integrity.
  4. We push for the latest industry standards and keep on pushing, even after launch. Websites are usually short-lived, but we’re changing that with a system architecture that maximises long-term life.

So what are you waiting for? Do you need a website built? Do you need somebody to help spearhead your latest online initiative? Check out SevenStrokes: Building websites … a little differently

sevenstrokes unique web design

Life & much, much more

DraftSight: a free and cross-platform alternative to AutoCAD

Whilst Linux is an excellent system for programmers, it’s certainly a little wanting for people who deal with creative graphics. There are tools like Krita, GIMP, Inkscape, Blender and Digikam and so on to help fill this gap, but one area which isn’t talked about so often are CAD tools. As an architecture student and a Linux user, I can safely say that the options are disappointing. It certainly is possible to have a complete graphics workflow on Linux, but it’s not as good as on Windows.

There were always CAD packages around such as FreeCAD and QCAD (I believe rebranded to LibreCAD) and its various derivatives, but they were all slow and not particularly powerful. However for the past few years, I’ve enjoyed DraftSight.

DraftSight - a free and cross-platform alternative to AutoCAD

Firstly, a disclaimer: DraftSight is not open-source. It is certainly free to use and works very well on all platforms, but it is backed by a commercial company (Dassault Systemes), is financed through an enterprise license, and certainly has no obligation to the community.

However perhaps the reason DraftSight is so much more powerful than the open-source alternatives is because it has a very clear goal: it wants to clone AutoCAD. Unlike GIMP, which has tried to define a new paradigm for itself, DraftSight keeps users in a familiar environment.

If you are on Gentoo Linux, I am maintaining the DraftSight package and as of May earlier this year, it is available in the betagarden overlay. For more information, you can see this bug.

Life & much, much more

A Beaglebone, a Blender, a Board, and a Swarm.

Hardware isn’t generally my thing. When it comes to software, I like to break and create. But in my opinion, hardware should just work. But even though that’s another story altogether, it did explain my apprehension when I greeted the UPS guy one morning delivering a BeagleBone Black.


Let’s begin with the BBB. It’s a computer the size of a credit card, which isn’t that impressive if you realise that your phone is a computer. I find the best way to explain it is in terms of two other products, the Arduino and the Raspberry Pi. The Arduino is a similarly sized (comes in multiple sizes though) controller where you can upload scripts, plug in a hardware circuit (wires and lightbulb, that sort of thing), and have it control the circuit. Despite its power in hardware control, it only has a small scripting interface for you to do your programming. The Raspberry Pi is the opposite. It’s a full Linux computer (based off Debian), but does not have proper hardware controls out of the box. The BBB provides the best of both worlds: a full Linux system (Angstrom Linux, but of course you can flash your own), and a ridiculous number of IO pins to control circuits. All this awesome power at 45USD.

The next step upon receiving this wonderboard was obvious. Let’s build a swarm of robots. Along with two university friends, Lawrence Huang and Gloria Nam, we set out planning the system.


The base was to be constructed out of a 1200x1200mm wooden plywood board and cut it into a circle with a hole in the middle. This would be the “world” where the robot swarm would live on. This world would operate like a Lazy Susan, and would have a two depots filled with some sort of resource. One at the center, and one at the perimeter. This gave the colony a purpose: it would need to collect resources. Above the board was where we would put the computer, BBB, power supply, and cables to hook up to all the bots below.

We then had to determine the behavior and movement capabilities of the swarm. It had to act as one, but still remain separate entities. It also had to disperse to discover where the rotated resource depots were, and the swarm as a whole had a set of goals and quota limitations. Five movement types (along with the math) were worked out to allow the bots smooth and flexible movement across the terrain.


The overmind was next. We would use Blender‘s very flexible boid simulator along with custom Python scripts using Blender’s Python API to simulate the swarm behavior on the computer and set swarm goals. At the same time, a real-time top-down view could be generated and displayed. Due to budget reasons, we couldn’t build the entire swarm of robots, but instead settled on building just one bot in the swarm, and having this bot track the motions of a single bot on the computer screen, but still behave as part of the full 32-robot swarm on the screen. Viewers could then see on the screen the full swarm behavior, and physically see a single bots behavior in front of them.


The car itself was then built. It was relatively small and was barely enough to fit the two continuous-rotation servo motors that were required to power its left and right treads. It had a little tank on its top to hold resources, a depositing mechanism at its front, and dragged along a massive conveyor belt to collect resources behind it.


Now the fun part – calibrating the simulated swarm with the actual physical swarm behavior, and doing all the physical PWM circuits. Many sleepless nights later it was a success. Here we see the bot doing a weird parking job into the depot and collecting resources, going back to the center, and depositing it. Apologies for the lack of video.


And there we have it. A swarm of robots. Did it curb my fear of hardware? Not entirely.


For those interested in the actual system, here’s a macro overview:


A few extra fun things from the project:

  • Calibration was not easy. Actually, it was very hard. No, it was stupidly hard. It was ridiculously hard. Real life has so many uncertainties.
  • Each bot is tethered to the overmind via 8 wires (3 per tread, 2 for conveyor belt). Could it be made into a wireless swarm? Yes. Did we have the money? No.
  • Could it be modified to move in 3D XYZ space like a swarm of helicopters? Yes. Would I do the math for it? No.
  • The actual simulation was done on the computer via Blender + custom python scripts. The computer was then connected via a persistent master SSH connection, which was reused to send simple signals to the pin’s embedded controller. So all in all the BBB actually didn’t do much work. It was just a software->hardware adapter.
  • Because the computer was doing all the work, it wasn’t hard to add network hooks. This meant we could actually control the system via our phones (which we did).
  • Weirdest bug? When (and only when) we connected the computer to the university wifi, flicking a switch 10 meters away in a completely separate circuit (seriously, completely separate) would cause the BBB to die. Still completely confused and will accept any explanation.
  • Timeframe for the project? 4 weeks along with other obligations.
  • Prior hardware and circuit experience: none. Well. Hooking up a lightbulb to a battery. Or something like that.
  • Casualties included at least three bot prototypes, a motor, and at least 50 Styrofoam rabbits (don’t ask)
  • Why are all these diagrams on weird old paper backgrounds? Why not?
  • At the time of the project, the BBB was less than a month old. This meant practically no documentation, and lack of coherent support in their IRC channels. As expected, this was hardly a good thing.

Project success. I hope you enjoyed it too :)

Life & much, much more

The one and only IBM Model M Keyboard

Any computer enthusiast will tell you that whereas computers in general have been getting better over the years, keyboards have been steadily degrading in their preference for design rather than build quality. Simply put, all keyboards nowadays (characterised by mushy rubber dome chicklet keys) are terrible. If all of this sounds like a weird geek fetish to you, stop reading now. Otherwise, read this series of posts which will give you a good general knowledge of the subject.

I had been debating for a while now whether or not to invest in a proper mechanical keyboard. Given that I am mostly mobile on a laptop, lugging around another keyboard would be a pain. But recently I stumbled across an IBM Model M back from 1991 (there is a birth certificate on its back).

IBM Model M Keyboard

After giving it a thorough cleaning, I have been using this for a month now and it is a beauty to type on — I doubt I’ll ever go back to using a regular keyboard again.

A few gotchas for the uninitiated:

  • It’s loud. Loud loud loud. Fine for your bedroom, but can be annoying in the office (you will bring it into work, won’t you?). However it’ll make everyone aware that you’re definitely hard at work.
  • It’s big. So big that it won’t neatly fit into any bag. You may want to consider a “Spacesaver” edition without the numpad.
  • There is no super (windows) key. Annoying if you rely on it for shortcuts, but ultimately a small price to pay for angels tapdancing on your fingers.
  • It’s not hard to press. Although the keys are bigger, it’s easier to type on this than on other keyboards.
  • It uses a PS/2 cable. You will likely need to buy a PS/2 to USB adapter to use it.

For those who have had the same dilemma as I did, make the switch. You won’t regret it.

Life & much, much more

Architecture’s existential crisis

Four posts ago, I took a break from the usual technical and on-going project posts, and instead went on a four part spree talking about Architecture. In particular, I tackled the question of Architecture’s existential crisis. It talks about issues about discipline and professionalism (actually inspired by Bob Martin’s similar talks in the software industry), the philosophies that architecture idolises, and overarching goals of the profession and the world in general.

The reason I spent so much time on this is because I believe that it is wrong to treat architecture as superficially as an art form. It is not a commodified object of entertainment like a book or movie. It isn’t something where people are given the choice to consume it. Instead, it is inherently part of our day to day lives and affects everyone. This means architects have a responsibility to others.

I’ve converted the rather long post into a LaTeX-compiled PDF, so those who haven’t read it due to the sheer size can enjoy it. Download it here.

Will resume to the usual topics after this.