The ‘Strict Order’ and ‘Exactly-Once’ conundrums

Dries Samyn wrote “Message and event-based architectures have become increasingly accessible in recent years, and the big cloud providers' managed services that abstract the infrastructure complexities away from developers, have made this more accessible than ever. However there are still a number of topics I continue to see a lot of confusion about, most notably strict order and exactly-once processing.”

Creating your own dynamic website

Krista Hyer wrote “In my previous post, I described how beginners can set up a static website. This follow-on post covers setting up a dynamic website. This is a website whose content isn’t always the same. These are slightly harder to set up, but creating one yourself can still be done in a matter of hours. This post…”

Elevation of Privileges—Making Threat Modelling Fun

Luke Richardson wrote “Motivation Threat modelling is hard. There are a few reasons why this is so. One of the challenges is the fact that it’s widely accepted that in order to achieve effective threat modelling, you must ‘think like an attacker’. This can be a drawback because the people attempting to think like an attacker are often…”

Asynchronous, event-driven Systems: Introductory Patterns and a Case Study

Martin Vesper wrote “For some reason, and probably sufficiently late to the party, I was thinking about conceptual patterns for designing an asynchronous, event-driven, distributed system the other day. If the system is event-based, and every action would result in a message passed through the system asynchronously, how, for example, might you implement a simple login? It seemed…”

An introduction in A/B testing—what it is, and why it’s useful

Matt MacLennan wrote “What is A/B testing? A/B testing is a methodology that allows you to compare two different states of a webpage or an app to determine what performs better. It’s an experiment where two or more variants are shown to users at random, then analysis is done to determine which variant achieved the better conversion goal.…”

Creating your own static website

Krista Hyer wrote “Static sites are simple to set up, but creating one yourself can still be difficult without a guide. After I muddled my own way through setting my static website up, I decided to write this blog to help others in my situation.”

What does a second person video game look like?

Luke Richardson wrote “Anyone who has played video games will probably group games into two categories: first-person perspective and third-person perspective. For those who haven’t played video games, first-person perspective is where you see the game world through the eyes of the character you control, and third-person perspective is where you can see the character you control in…”

Code review and keeping in the flow

Dickon Reed wrote “It’s now table stakes for team software development to be done on feature branches and reviewed using a tool such as github’s pull requests. That’s despite, in many situations, a lot of delay while unreviewed code piles up. If you don’t use feature branches on a project, people are puzzled and get uncomfortable. On a…”

Home Energy Dashboard with Elixir and Scenic

Patrick Tschorn wrote “As of last month, I am able to poll my solar PV inverter for its current yield and other interesting data, which I would ultimately like to display using a Raspberry Pi plus touch screen. On this home energy dashboard, I would like to be able to cycle through different pages, showing: current solar PV…”

Is Conway’s law a myth? Does it still hold in today’s corporate structures?

Luke Richardson wrote “This blog post was originally going to be called “does corporate management structure mirror the architecture of a modern day computer?”. I began writing, and during my research a colleague put me onto something called Conway’s law. Conway’s law is the idea that companies and organisations design systems that run parallel to their communication structure:…”

Is it still worth learning vim?

Luke Richardson wrote “Pros and Cons It’s the year 2020 and there are now countless ways in which you can write software. Gone are the days of monochromatic text editors and manual indenting of your code, so why is it still worth learning vim (vi improved)? First, not having to use the mouse is way more convenient than…”

Reading current solar PV output with Elixir

Patrick Tschorn wrote “I have a domestic solar PV installation and I would like to be able to programmatically read the current output, so that I can display it on a dashboard, perhaps together with other information such as a detailed weather forecast for the day and the expected sunset time. The inverter in my installation records a…”

Are promises really monads?

Tim Band wrote “The argument that promises are not monads is usually stated in terms of the violation of one or more of the 'monad laws', but I want to make a more intuitive argument that should hopefully clarify where monads are and are not applicable.”

The Pragmatic Programmer

Luke Richardson wrote “I recently read the first chapter of the 20th anniversary version of the well known software development handbook: The Pragmatic Programmer. Since this, I have had a good amount of time to reflect and observe the principles in action so I decided to write a brief summary and some of my thoughts and attitudes towards working after reading it. ”

munger: Scan-to-cloud for local scanners

Tom Parker-Shemilt wrote “Despite the ongoing good work in many places to move to fully digital options, many organisations remain committed to sending you shards of dead tree through the post (particularly the NHS, though I can understand that given how they’ve been burnt in the past). Keeping track of all this paper is tricky, and particularly hard…”

An exploration of local gen_server multi_call in Elixir

Patrick Tschorn wrote “OTP’s gen_server module provides a convenient multi_call method that forwards a given request to all gen_server processes that are locally registered with a given name on a given list of nodes. multi_call subsequently awaits the responses and returns a tuple of successful replies and nodes that failed to respond. I would like a variant of…”