This post was mentioned on Hacker News recently and it reminded me of all the conversations I’ve had over the years with other developers, complaining about paying over the odds for Apple hardware and thinking it would make sense to switch to a Linux laptop and and an Android phone but never actually doing it. Interrupted plans At the start of 2020 my 2016 MacBook Air and iPhone were starting to show their age.
For the last couple of years my cryptocurrency trading has focused on doing a carry trade between the Bitcoin spot and derivatives markets. This has involved buying spot Bitcoin and selling short a corresponding quantity of perpetual swap contracts and/or futures contracts. The mathematics of this trade are described in this in-depth article . To trade futures I’ve been using Deribit as they now offer contracts that settle up to a year in the future which I’ve found useful for longer term planning, especially when I’m borrowing against my spot holdings to increase the size of my position.
For the past 12 years up until today stevenwilkin.com has been a Sinatra app. The purpose of the site was to help me learn Ruby which paid off handsomely and I went on to use Sinatra in many client projects so all in all it served me well. Time moved on however and the content fell out of date, the design increasingly became an embarrassment and I’d disabled the contact form as I rarely received anything other than spam through it.
When I started blogging in 2006 the usual approach was to install WordPress on an Apache web server running PHP and MySQL. Shared web hosting accounts were widely available and more than adequate then but I was in the early stages of my professional life so instead I had a salvaged PC running 24/7 in my living room. I ran Slackware on it and kept a domain name pointed at it via dynamic DNS.
During recent periods of restrictions due to the pandemic gyms have been closed and many people have resorted to doing body-weight exercises at home to maintain fitness and boost immune systems. My own personal routine has focused on burpees with secondary movements such as push-ups, squats, lunges, jumping jacks and mountain climbers. During the longest stretches of restrictions I was also able to do some resistance work using reusable shopping bags filled with large containers of water.
I’ve previously written some thoughts on service oriented architectures and since then I’ve wanted to explore beyond the currently accepted standard of sending and receiving JSON data over web APIs. Protocol Buffers With JSON there’s an overhead of transmitting plain-text over the wire coupled with parsing that text in your application once received. For many cases this is probably acceptable but for a large-scale distributed system this can represent a not insignificant cost in terms of bandwidth and computing resources.
April 1st saw me celebrate five years of working as an in independent contractor. This also means I’ve now spent two years in London and it’s been four years since I last worked in Northern Ireland. It’s scary how fast time flies. Changes and not My second contract here required the use of a limited company so it meant finally waving goodbye to the simplicities of being a sole trader. I’d originally set up NullTheory Ltd for my very first contract but was advised to go down the sole-trader route so it had been lying dormant for some time.
One of the most bandied about buzzwords at the moment has got to be Docker. So many people I’ve spoken to claim to be moving their application environments to it and some even have it running in production with varying degrees of success. Fine in theory The theory of isolating groups of related processes into containers which then themselves can be further orchestrated to build out an environment is very appealing.
A good friend of mine recently voiced the opinion that the day will soon be upon us when the traditional SysAdmin will no longer be relevant and all operations activities will be some variety of DevOps. Now, I’ve been managing my own infrastructure for some years but every package has been manually installed with every configuration file modified by hand, resulting in snowflake servers which are nigh-on impossible to recreate exactly and have occasionally caused me a lack of sleep.
Some common pain points seem to keep cropping up time and time again as applications grow in size and complexity: tests get longer to run deployments become a much more involved process making a small fix to one area of code can often break something in another it can be much harder to reason about the system as a whole These large, monolithic applications are affectionately known as monorails in the Rails world and the common wisdom is to start splitting up the codebase into services: to extract areas of functionality out into self-contained, independent applications which work in unison to deliver the original capability.