First Time Waxing a Bicycle Chain

Posted on .

I use my bicycles to commute to work year round. The wet, muddy, and slushy seasons really take a toll on the powertrain, and I get tired of the constant need to clean and lubricate the chain. Especially as the oil based lubricants attract grime to the chain. A coworker hinted almost a year ago that he waxes his bike's chain and it has been less work, so I finally decided to try it.

Glossy New Blog

Posted on .

It's a rite of passage for a programmer to write a blog engine. It's lunacy to keep writing blog engines when there was nothing wrong with the previous ones. This blog is now in its fifth incarnation, if I have kept count correctly. Starting in 2015 with a couple of JavaScript based no-backend engines, following up with the Elixir & Phoenix based Mebe, and then with Elixir & Raxx based Mebe 2. Now it's time for Scriptorium.

UTC is not Your Saviour

Posted on .

Coordinated Universal Time (UTC) is one of the greatest helps to programmers when dealing with datetime values. UTC makes my life easier, and thus raises my quality of life. Yet, it is plagued by a fallacy that I've seen many times in programmers' discussions online. This is the UTC everywhere fallacy. Even for all the nice things UTC gives us, it just doesn't solve everything.

Thank You

Posted on .

I first came upon Elixir in 2013 (wow, it's been 8 years?). I was looking at Erlang and a friend of mine said that there's this new language being built on the same VM, you should look at it. I gave it a whirl and the rest is history, as they say. I've written it on and off, sadly never professionally, resulting in lots of stuff, some even in production. Elixir gave me a new joy in programming.

None of this would be possible without the hard work of people I've never seen. People who have received nothing from me but have decided to give me the tools to work with anyway. To help me avoid mistakes. To ease my experience. To expand my view of programming beyond what I could have thought of myself.

For this I want to thank you, as it's the least I can do.

Security Through Adversity?

Posted on .

When we recently moved to a new home, I had to get a lawnmower. Having experience with petrol powered ones, I knew I wanted an electric powered mower. It has worked well and I enjoy not having to smell exhaust fumes. But the Makita designers have made an odd design choice.

The Trouble with `

Posted on .

The grave accent, or more commonly in programmer circles, the backtick. A tiny character with so many uses. With the advent of computers, it has diversified its traditional role as an àccent with new purposes. It marks code in Markdown and Markdown-ish syntaxes. It delimits template literals in JavaScript. It executes code in shells and PHP. And it drives me up the wall.

5 Years of Code::Stats

Posted on .

Five years ago, I was using a web service called Codeivate to track my programming habits. After some on–off, it finally went offline in the spring of 2016. So, during my company's next hacking event, I started a new project to replace the missing service. That project became Code::Stats. Now, five years later, it's still running and I'm still focused on improving it. I'm quite proud of what it has become, so here are some updated numbers from the database.

Simple Configuration Setup for Elixir Projects (v1.11+)

Posted on .

I've written about Elixir configuration in an earlier post, describing the differences in the configuration styles. If you don't know how Elixir configuration works, I suggest reading it also. In this post, I will demonstrate a system for configuring an Elixir project using the config/runtime.exs system introduced in Elixir 1.11. This system is how I configure my projects, so feel free take it as inspiration, but it's not a law that you have to follow.