Software Architecture Patterns: 5 minute read
Main software architecture patterns in a nutshell.
Topics /
The most popular blog posts about software engineering on Hacker News. 14,533 posts.
Main software architecture patterns in a nutshell.
A visual, interactive introduction to hash functions.
Feb 2015: A lot’s happened since I wrote this post two years ago. Chrome forked WebKit and started Blink, Opera adopted Chromium, and node-webkit became nw.js. This post describes a complexity of defining WebKit that doesn’t exist much anymore; with Chrome’s departure the WebKit world is more simple and clear.
Well that blew up. It was supposed to be just a silly off-the-cuff comment about how some bugs are very tedious to bisect. To answer a few questions people had, here’s what actually happened.…
This is part one of the Crossover Project. Part two is here and part three is here. A conference talk based on this work is now available here. I sat in front of Mat, idly chatting about tech and cuisine. Before now, I had known him mostly for his cooking pictures on Twitter, the kind that made me envious of…
Someone on Reddit recently asked: What would make a Rust implementation of something faster than a C implementation, all things being the same? I think this is…
My housemate the other day asked me something to the effect of “How can Software Engineers call themselves engineers when there’s no rules, governing bodies, or anything to stipulate what true Software Engineering is?”
I talk a lot here about using computers freely , how to select programs to use, how to decide if a program is trustworthy infrastructure one can safely depend on in the long term. I also spend my time building such infrastructure, because there isn't a lot of it out there. As I do so, I'm always acutely aware that I'm…
We often romanticize the notion of programming, presenting it as an abstract form of art, a science, or even a form of magic. The truth, however, is much mor...
If vector multiplication were invertible, we could treat vectors just like any other variable. We could do simple algebra like:
For the past few years I’ve been the most senior developer on my teams in Atlassian, in both position (Principal Engineer) and time (almost 9 years ) - this means I usually take on the responsibility of managing our software architecture.
Occurrence of Hyrum's law in Golang
Today marks the 13th anniversary since the last passenger flight from New York arrived in the UK. Every seat was filled, a feat that had become increasingly rare for a plane that was a technological marvel but a commercial flop….
A gentle and beginner friendly overview of Rust Ownership Rules
Learn more about Christopher Phiri work experience, education, connections & more. Software developer, UX/UI, Illustrator
This is part 1 of the “How Unreal Renders a Frame” series, you can access part 2 and part 3 as well. I was looking around the Unreal source the other day and inspired by some excellent …
Date: 2022-07-23 Git: https://gitlab.com/mort96/blog/blob/published/content/00000-home/00014-tar.md
Text is the medium of digital interaction, and text rendering has an outsized impact on the overall fit and finish of any system. It therefore pains me that axle has for years relied on a low-resolution 8x8 bitmap font. Let’s fix it! Take a look at the characters composing this sentence. Note the curves, the negative…
For my contact page, I wanted a generic calendar icon to let people view my diary. Calendar icons are almost always a skeuomorph of a paper calendar, but I wondered if I could make it slightly more useful by creating a dynamic icon. Here it is, an SVG calendar which always display's today's date: The background image…
What Remains is a narrative adventure game for the 8-bit NES video game console, and was released in March 2019 as a free ROM, playable in emulator. It was created by a small team, Iodine Dynamics, over the course of two years of on and off development. It’s currently in the hardware phase as a limited batch of…
I developed an application to display and control Android devices connected on USB. It does not require any root access. It works on GNU/Linux, Windows and Mac OS.
Today I'm discussing a trivially simple technique that I've rarely seen used in production codebases. In programming, we often need to deal with simple values that can be represented by simple, generic types built into our programming language or provided by libraries: types like integer, string, or UUID. In any
In Bash, there are two closely related "special parameters" for accessing how the current script was invoked: $* and $@ . For both variables, the behavior is affected by whether or not the variable is enclosed in double quotes. The following table summarizes all cases:
An exciting proposal is expected to land in Go 1.22 - enhancing the pattern-matching capabilities of the default HTTP serving multiplexer in the net/http package.
(contains amazon affiliate links) I have had repetitive stress injury (RSI) flareups on and off for many years. I’ve kept them under control mostly through use of a Kinesis Advantage ergonomic keyboard that I’ve had for fifteen years. However, several months ago, I was diagnosed with carpal tunnel syndrome and…
A while back, I worked on a RISC-V-based userspace simulator for fun. In doing so, taught myself a lot more than I wanted to know about what happens in-between when the Kernel is asked to run a program, and when the first line of our program’s main function is actually executed. Here’s a summary of that rabbit hole.
I’m excited to share a 3 state, 3 symbol Turing Machine that cannot be proven to halt or not (when starting on a blank tape) without solving a Collatz-like problem. Therefore, solving the \(BB(3, 3)\) problem is at least as hard as solving this Collatz-like problem, a class of problem for which Paul Erdős famously…