2020 articles

On Roman Numerals

OK. Quick note. I've just come across a Python package for converting Arabic to Roman numerals. Great! But I think it can be improved in several ways.Add documentation even if just in the README file to show how to use it.Add an entry point for users to run …

Keep It Up!

The Google Way to Site Reliability Engineering - https://landing.google.com/sre/

The Value is in the UI

I've just been watching an interesting YouTube video in which a guy solves a sudoku puzzles starting off with very little. It's quite an interesting watch because you're given a front-row seat into observing someone making a discovery of something quite magical. I've always been fascinated with sudoku not least …

Listing of Important Software Tools

Apache Beam (https://beam.apache.org/get-started/quickstart-py/)Used for running pipelines such at extract, transform and load (ETL) in a parallel fashion.Redis (https://redis.io/)In-memory data structure store for DB and cacheMemcachedMongoDBHadoopClusterFSRabbitMQNode.jsCeleryNginxApacheChefPuppetAnsibleTerraformGunicornFluend - https://www.fluentd.org/Unified logging/streaming logsZipkin …

Diminishing Returns

Decrease the size of your web images for all browsers using Google's WebP image format that is supported on all major browsers. They report that you can gain savings of roughly a quarter of a PNG file. PNG files are typically tiny therefore to save even more is very attractive. …

The Business of Science: Model Building

I think it is safe to state without any contradiction that science is in the business of validated discovery of new knowledge. This enterprise primarily consists of appending to the volume of what is known (generally referred to as publishing) through a process that is objective for the …

Searchable list of keyboard shortcuts for Mac OS X 10.5+ (IntelliJ IDEA)

Rider's top keyboard shortcutsOpen Solution or Project   Ctrl+Shift+OShow Action List   Alt+EnterSearch Everywhere   Double-ShiftNavigate To…   Ctrl+Shift+NFind Usages   Alt+F7Select In...   Alt+F1Settings...   Cmd+,Find Action...   Cmd+Shift+AGenerate...   Cmd+N Ctrl+EnterBuild Solution   Cmd+F9Debug...   Ctrl+Alt+DView Breakpoints...   Cmd+Shift+F8Attach to Process...   Alt+Shift+F5VCS Operations Popup...   Ctrl+VRefactor This...   Ctrl+TInspect This...   Cmd+Alt+Shift+AFinding everythingSearch Everywhere   Double-ShiftFind...   Cmd+FFind Next / Move to Next …

Automatic Segmentation of Audio by Speaker

ProblemI recently attended a meeting in which I had to write notes from the discussions. I was feeling lazy so I decided that I would record the audio on my phone then make notes from that. That part worked really well until I sat down to make the notes. …

Class attributes

Here's an exploration of some weird Python functionality: how do we intercept class attribute access?The following won't work.class A: x = 1 def __getattribute__(self, name): print('{}.__getattribute__({})'.format(self, name)) return super().__getattribute__(name) print('A.x =', A.x) # A.x = 1 What about setting __getattribute__ to be a classmethod?class A: x …

Using metaclasses to use domain-specific protocols

In Python (3+) it is impossible to create a class which is not a subclass of object. This means that the protocols associated with the class and instances of the class are tightly bound to object. Metaclasses provide a way to extend this so as to have additional …

Interesting and useful links

Emoji Cheat Sheet (view in private tab - might plant tracking cookies) https://www.webfx.com/tools/emoji-cheat-sheet/ Git Documentation https://git-scm.com/

Last will and testament...

Here is an example code snippet that executes 'last rites'. My current use-case is to handle final tasks on a cluster job management system when the script violates some execution criterion e.g. exceeding memory quota. It's helpful if the job could perform some task(s) that indicate that it had to …