2021 articles

Teamplayer?

This is a raw dump of a swirl of ideas running through my mind. If they are incoherent it is because I'm still in the process of organising them.The vision of teamwork is accomplishing more than what a single individual can accomplish.If you're like me, it is rare …

Make Change A Core Feature

You haven’t designed well if you haven’t accounted for change. You can spend ages designing the best software but everything can be thrown down the toilet with a simple unanticipated changes. This is the reason I have a growing respect for the idea of emergent design.

Draft CLI Architecture

Here is a draft architecture that I have been working with for CLI applications. It is not complete because it has some holes in it. The whole idea is that it is built will layers each of which enjoys the services of the layers below it. Personally, I think there …

Think Process

Process is more valuable than product. Here is why.What is the true value of the world's best companies? Obviously it is not the products they sell since they relinquish them once they produce them in exchange for cash. Rather, it is total ownership over their production process that gives …

How to Move Fast in Software

Who wouldn't want all their features implemented immediately? It depends. How long will this software be used for? If it will be single-run code then nobody cares because it will not need any maintenance and we can always recreate it from scratch should any bugs rear their ugly heads. But …

How to be 'productive'

“If you want to go fast, go alone. If you want to go far, go together.”African ProverbThe solo developer can appear to cover far more ground than a team until the rest of the team needs to contribute. Only then will it be clear how coupled the developer …

Career Progression in Software Engineering

ProgrammerA programmer knows how to turn user requirements into code. The programmer should have adequate experience but still need to accrue experience in producing high quality code.Software DeveloperA software developer is a programmer who has learned additional professional skills to turn user requirements into code with a …

Declarative vs. Imperative

Most programming languages are designed to be applied imperatively i.e. the programmer has to lay down the sequence of steps to be taken to modify the input to the required output. This lends itself quite naturally to algorithmic thinking. On the flip side, declarative design is built around the idea …

The Key to Great Design

...is good boundaries.

Python Exit Codes

~$ python Python 3.7.4 (v3.7.4:e09359112e, Jul 8 2019, 14:54:52) [Clang 6.0 (clang-600.0.57)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import os >>> os.EX_OK 0 >>> dir(os) ['CLD_CONTINUED', 'CLD_DUMPED', 'CLD_EXITED', 'CLD_TRAPPED', 'DirEntry', 'EX_CANTCREAT', 'EX_CONFIG', 'EX_DATAERR', 'EX_IOERR', 'EX_NOHOST', 'EX_NOINPUT', 'EX_NOPERM', 'EX_NOUSER', 'EX_OK', 'EX_OSERR', 'EX_OSFILE', 'EX_PROTOCOL', 'EX_SOFTWARE', 'EX_TEMPFAIL', 'EX_UNAVAILABLE', …

Hardlinks: Fun facts

First we will create a discardable directory calls rm.dir into which we shall add two directories: dir1 and dir2. ~$ mkdir rm.dir && cd rm.dir ~$ mkdir dir1 dir2 Now paste some rubbish into a dir1/file1.txt (find your least favourite website and copy and paste everything):~$ cat > …

Simplicity

The essence of simplicity is economical i.e. simplicity can only be accomplished through economical activities. By ‘economical’ I mean characterised by the academic sense in which we allocate scarce resources that have alternative uses. There are only four such resources that exist: space, time, matter and knowledge. Everything …

What Architects Do

If you are interested in building a house, unless you are an architect, you would do well to consult an experienced architect. You might have a good idea how your future house should look like but you wouldn't know much about how to bring together these various desirable elements into …

Generic Architecture for Interactive Application

There are four parts to any interactive application:core runtimeinput (optional)config (optional)output (optional)The beautiful things is that with this in mind you can now chain applications knowing which parts link to one another.

Digital Service Taxes are like...

Photo by Robert Gourley on Unsplash...taxing the unknown person at the other end of the line. They should apply equally to all kinds of consultants, physicians, experts etc ... anyone who willingly picks up the phone and charges a fee for a response. The term 'digital service' is actually …

On Knowledge

This is an exploratory article I.e. it will take a long time before I understand what I mean. Knowledge must be explored to be understood. Case in point is this article. I don’t know the full extent of the consequences but over time time a clear structure will emerge. The …