Thoughts on Software

# Tag: General Programming

• ## Simple Containerised Deployments For Hobby Projects

At work, we deploy all applications as Docker containers via Kubernetes – I really like this way of delivering applications, running on one machine means it will work the same way (in theory) as in another machine. Why not do the same for my Hobby projects albeit a much more simplified way.

So, this weekend, I made my first attempt – what I wanted to achieve is a proof of concept, .NET Core app talking to MySQL, both of which being docker-ised. I also wanted to use Gitlab’s free CI for it’s simplicity as this is what I’m really after – don’t want to have to write a ton of scripts.

• ## API Pagination Problem

When we think of pagination – we think SELECT * FROM MYTABLE LIMIT {skip}, {take} – ahhhhhh… ignorance is bliss.

Let’s go through some of the ways we expose pagination through a Web API and dig a little deeper.

• ## Me, Then And Now: Software Estimates

Over the last few years, my beliefs in how I Software should be built have changed quite dramatically. There were some years when I spent a majority of my time thinking about the solution and not enough time understanding the problem. I had some years thinking that I don’t know anything, to “I know everything” and everything else in between.

Today, I wanted to reflect on my view of Software Delivery estimates, and how my view has changed over the years. It’s one of those things that has so many moving parts to it, and you can never really have enough experience to get it quite right.

• ## CS101: Big-O and How it’s Relevant

Big-O is a way of expressing time and space complexity of an algorithm. Complexity is the rate of growth given variable inputs. Complexity is implicitly expressed in worst-case unless otherwise stated.

For example:

function printArray(n) {
for(var i = 0; i < n.length; i++) {
console.log(n[i])
}
}


printArray in this instance is $O(n)$ time complexity and $O(1)$ space complexity.