I started writing on Medium in October 2019, and since then I have gained over 1.6k followers on the platform. I just wanted to reach out and thank everyone for their support and interest! It has been fantastic getting people’s comments, feedback, and enthusiasm throughout the year. Thank you!
I also wanted to give you a taste of my plans for 2021. My main focus so far has been technical writing, particularly on programming, shell scripting and the Apple / Unix ecosystems. This will continue. However, I intend to include more of the following content this year:
Thoughts on what it means for software to be “free as in beer”
In the world of software development, we have various definitions of “free”.
According to the Free Software Foundation, “free software” means:
software that respects users’ freedom and community. Roughly, it means that the users have the freedom to run, copy, distribute, study, change and improve the software. Thus, “free software” is a matter of liberty, not price.
So for the FSF, free means “free as in freedom” not “free as in beer”. In fact free software by the FSF definition may be sold commercially. …
In this post I’m going to talk about the process I went through to build a Hackintosh, hardware choices, and how much it cost. I will also share my experience of what it’s been like to use it almost daily for 6 months.
A Hackintosh is a computer that runs Apple’s macOS operating system without Apple’s hardware. Reasons to do this might be:
For me personally, it was a combination of all of these. …
When I was learning to program, I remember being bombarded with terminology. A lot of tutorials and online discussions seemed to assume that I already understood what a lot of these words meant. Words like “statement,” “expression,” and “literal” were used but never explained.
In this post I’m going to discuss four commonly used programming terms that are useful to understand regardless of the language you are using.
Let’s start with the simplest one…
A literal in programming is a piece of text that represents a fixed value in source code. Examples of literals would be:
123 // an integer literal
1.23 // a floating point literal
"123" // a string…
Techniques for avoiding file deletion disasters on Mac and Linux
I’ll never forget the time when I was working as a network engineer, and a coworker brought an entire college campus grinding to a halt with a simple misplaced dot.
The mistake my colleague made, was to type:
rm -rf /*
rm -rf ./*
The second command recursively removes all files from the current directory and all child directories. The first removes all files from the root directory and all child directories. The root directory on a Unix system is the top-level directories that contains the entire filesystem.
To make matters worse, my colleague was logged in as the root user, which has full admin rights.
Thoughts on the new Medium beta…
Medium recently announced a new beta programme in their mobile app, which readers can opt in to. I decided to take it for a spin, here are my thoughts…
The emphasis of the new app is very much around the users and publications you follow. Below is a comparison of the old and new designs.
I’ve been coding on a professional level for 15 years and have dabbled in code and technology my entire life. In this article, I’m going to share the things I wish I’d known when I started coding.
Programmers often hold strong opinions about the right way to do things. This can be problematic when we accept one person’s “best practice advice” as unquestionable truth.
When I first started out coding, I was very impressionable to these kinds of dogmatic opinions expressed online. This led to a feeling of anxiety, that I must constantly doing something wrong.
I wish someone had told me that all of these opinions need to be considered against the needs of the current project, and often we need to trust our own judgement. …
Conditional branching is when a segment of code is executed or evaluated based on a condition, typically implemented using an
sendThankYou() will get called if
sendReminder() will be called.
There’s some thinking in the programming community that
if should be considered harmful or a code smell. Regardless of the validity of this claim, there may be cases where
if isn’t the best approach to branching, or where branching should be avoided altogether.
In this tutorial, I’ll therefore demonstrate six alternatives to
React.js is awesome, but also kind of complicated…
A couple of months ago I started learning React.js for a side project I’ve been slowly building in my spare time. In this post I’m going to share my initial thoughts and impressions.
Hopefully this should give an idea of what to expect for anyone considering React as a framework.
Since I already have 15+ years programming experience, I decided to try learning React in the shortest time possible.
I first watched Learn React JS in just 5 minutes to gain a broad overview of the topic.
I then followed two crash courses from Traversy…
A deep dive into the features and benefits of the Tower git client
Tower is a Git client that serves both Mac and Windows, offering a range of features that stand to increase productivity and reduce frustration for all who use it. Personally speaking, Tower has revolutionized my work process so I felt compelled to take a deep dive into some of the main features and benefits that this platform has to offer in the hopes that others may benefit from my experience. …