muhuk's blog

Nature, to Be Commanded, Must Be Obeyed

November 07, 2017

How to Install Rust on Debian Without Sudo

Rust has been around for a while but I have just recently found the opportunity to study it. It has some unique and powerful ideas and I intend to experiment further. This post summarizes the steps I have followed to install Rust toolchain on my Debian Stretch machine without admin rights[1].

Read more...


November 01, 2017

Presentation: Building a Simple DSL in Clojure

I did a short presentation for Singapore Clojure Meetup yesterday. You can find the slides here.


September 24, 2017

How to Write Easy to Read Code

A long time ago in a software sweatshop far, far away... Our code monkeys, haxx0rl33t and xXxDarkAssassiNxXx were furiously typing away to meet their deadline that was yesterday. The fact that it was dictated by non-technical people is irrelevant to our story. Our story is about the consequences of this artificial urgency for our code mon... developers.

Our esteemed colleague Mr. haxx0rl33t, is a results oriented fellow. To be more specific; the kind of person who would argue; assembly is as expressive as any so called high level language, because they are all turing complete. Code is purely a means to an end, triggering right side effects at runtime is all that matters. Therefore haxxy can’t care less about readability. Now, this may come as a surprise to you, but haxx0rl33t’s code occasionally has bugs.

Read more...


April 16, 2017

Don’t Hire Debuggers

Debugging is a valuable skill. Knowing your way around the debugger, building monitoring and administrative infrastructure to deal with errors in production, getting good at finding your way in a messy codebase are all useful. However let us not forget bugging precedes debugging.

Read more...


January 29, 2017

Domain Specific Languages in Clojure

Lisp is an excellent choice for implementing Domain Specific Language’s (DSL for short). We are not going to focus on why (or how) Lisp is a good choice for DSLs in this post. Instead I will try to give a few interesting DSL examples written in Clojure.

Read more...