ACCU World of Code

  • Rust 101 – 12: Traits

    Explaining what a trait is, and how to use it. A trait is a bit like an Interface in Java or Go, or an Abstract Base Class in C++ or Python, but it can be used to define behaviour at compile-time as well as at run-time. We go through an example of why …

  • Melati Day – Twenty Five Year Anniversary

    Happy Melati Day! On February 16th 2000 WilliamC made the first commit to Melati. https://github.com/Melati/Melati/commit/7a6fb6762cdbb835b4ff1aeb987bf1671cc598bd The name … Indonesia’s national flowers: the melati (small white…

  • Melati Day – Twenty Five Year Anniversary

    Happy Melati Day! On February 16th 2000 WilliamC made the first commit to Melati. https://github.com/Melati/Melati/commit/7a6fb6762cdbb835b4ff1aeb987bf1671cc598bd The name … Indonesia’s national flowers: the melati (small white…

  • Our Star Baker

    Just over 14 years ago I posted the eulogy I wrote for my father on this blog (So Long and Thanks For All the Onions) mostly because I had just started writing and this blog gave me the confidence to write. Sadly, a month ago my mother passed away too …

  • Our Star Baker

    Just over 14 years ago I posted the eulogy I wrote for my father on this blog (So Long and Thanks For All the Onions) mostly because I had just started writing and this blog gave me the confidence to write. Sadly, a month ago my mother passed away too …

  • Rust 101 – 11: Exercises for module A2

    Going through some exercises on Rust ownership, references, slices and error handling. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Unsafe This section (More synta…

  • [Fixed in FF 123] Deleting an Indexed DB store can be incredibly slow on Firefox

    Update: as confirmed in the bug I logged, this was fixed in Firefox 123! See also: Keep your Indexed DB keys and values small if you want good performance! and Don’t store arrays of numbers in Indexed DB – use base64 instead. We had performance problem…

  • Five Element Maven Version Numbering System (N5)

    The Five Element Maven Version Numbering System (N5) addresses the problem of wack-a-mole Maven dependency management: through the combination of excessive modularisation, microservices fervour, XML Declarative Project Object Models and non-uni…

  • Five Element Maven Version Numbering System (N5)

    The Five Element Maven Version Numbering System (N5) addresses the problem of wack-a-mole Maven dependency management: through the combination of excessive modularisation, microservices fervour, XML Declarative Project Object Models and non-uni…

  • Don’t store normal arrays of numbers in Indexed DB – use UInt8Array instead

    Following on from Keep your Indexed DB keys and values small if you want good performance!, here is another thing I’ve learned about Indexed DB performance (in July 2024): Update: Thanks to richvdh, we now know UInt8Array is much better than base64! If…

  • Rust 101 – 10: Strings

    What a String is in Rust, and how they differ from &str. Strings are resizeable arrays of bytes that are guaranteed to be in UTF-8 format. &strs are references to chunks of bytes that are also guaranteed to be in UTF-8 format. If you want to le…

  • Keep your Indexed DB keys and values small if you want good performance!

    In our work recently on Element Web (specifically attempting to replace our encryption code with our cross-platform Rust implementation) we’ve noticed some strange behaviour with the performance of our Indexed DB queries. We’ve been aware of some slowd…

  • Maven Version Versions and a Regex Block Refactoring of Sequential Identifier

    In the first post in this series I had thought about the need for a globally unique incrementable artifect id, in the next post I not only designed but tested a proposal for such a globally unique artifact id and how to change it. A t…

  • Maven Version Versions and a Regex Block Refactoring of Sequential Identifier

    In the first post in this series I had thought about the need for a globally unique incrementable artifect id, in the next post I not only designed but tested a proposal for such a globally unique artifact id and how to change it. A t…

  • Rust 101 – 9: Vecs, Boxes and slices

    Explanation of some of the most commonly used types in Rust: Vecs, which store lists of items, Boxes that allow us to own things that we keep on the heap, and slices that are a way of referring to parts of Vecs or arrays without owning them. Series: L…

  • Rust 101 – 8: Writing methods using impl blocks

    This time we discuss how to add methods to structs and enums, using impl blocks. Methods work similarly to other languages, but it might be a surprise that they can be defined inside separate blocks, and in fact they can be defined in multiple differen…

  • Maven version schema change

    I proposed a new versioning scheme to yield a unique version string for each artifact in our highly modularised Maven java application. Currently we are running a classic SemVer semantic verioning system. The only shortcoming I can see wit…

  • Maven version schema change

    I proposed a new versioning scheme to yield a unique version string for each artifact in our highly modularised Maven java application. Currently we are running a classic SemVer semantic verioning system. The only shortcoming I can see wit…

  • Rust 101 – 7: Error handling with panic and Result

    We learnt about enums and generics last time, which means we’re ready to talk about Result, which is a really nice way of handling errors in Rust, that allows you to be very explicit about what went wrong, but also with a very compact syntax using the …

  • A Review: A Storm of Swords, Part 2: Blood and Gold

    A Storm of Swords, Part 2: Blood and Gold (A Song of Ice and Fire, Book 3)by George R.R. MartinISBN-13: ‎ 978-0007447855At least George R. R. Martin is consistent. I didn’t really enjoy the second part of this book any more than the first. The Red Wedd…

  • A Review: A Storm of Swords, Part 2: Blood and Gold

    A Storm of Swords, Part 2: Blood and Gold (A Song of Ice and Fire, Book 3)by George R.R. MartinISBN-13: ‎ 978-0007447855At least George R. R. Martin is consistent. I didn’t really enjoy the second part of this book any more than the first. The Red Wedd…

  • A review of Zen and the Art of Motorcycle Maintenance

    Zen and the Art of Motorcycle Maintenance  by  Robert PirsigISBN-13 ‏ : ‎ 978-0099786405 Zen and …

  • A review of Zen and the Art of Motorcycle Maintenance

    Zen and the Art of Motorcycle Maintenance  by  Robert PirsigISBN-13 ‏ : ‎ 978-0099786405 Zen and …

  • Letter to my MP: using starvation as a weapon

    Dear Ben Spencer, The behaviour of Hamas on 7th October and afterwards is inexcusable, and is rightly condemned by our government. I believe that the ongoing behaviour of the Israeli government in response to these attacks is inexcusable, and should be…

  • Unique versions as pitons out of Maven Dependency Hell

    The whole Maven ecosystem, and more, follows the Semantic Versioning proposal from @mojombo who made a success of being right about most things. Even Oracle use it (no more ojdbc.jar for them). The problem Semantic Versioning addressed was th…

  • Unique versions as pitons out of Maven Dependency Hell

    The whole Maven ecosystem, and more, follows the Semantic Versioning proposal from @mojombo who made a success of being right about most things. Even Oracle use it (no more ojdbc.jar for them). The problem Semantic Versioning addressed was th…

  • Santa Circles 0.3 is out!

    Santa Circles 0.3 is all new and shiny! santacircles.artificialworlds.net (It’s a secret-santa-style gift exchange web site.) Don’t worry, it looks exactly how it did last year, except there is a tiny “Forgot password?” link you can click if you need …

  • Don’t forget to set the home directory for Emacs on Windows

    I’m currently rebuilding my main Windows machine after it had become close to unusable. Given that I upgraded it multiple times from Windows 7 all the way to Windows 11 without ever reinstalling the OS, this shouldn’t have come as a major s…

  • How to install WSL on Windows 11 without a default distribution

    On my Windows machine, I’ve mostly moved from using separate virtual machine products like Hyper-V or Virtualbox to have access to a Linux machine to using WSL. The PC is dual-boot with a separate Linux install anyway, but sometimes I just want t…

  • A Review: Prelude to Foundation by Isaac Asimov

    Prelude To FoundationAsaac AsimovISBN-13 ‏ : ‎ 978-0008117481Although, as a child and teenager, I’ve heard an abridged audiobook many times and read Prelude to Foundation the first time more than two decades ago, I loved it more than I can describe and…

  • A Review: Prelude to Foundation by Isaac Asimov

    Prelude To FoundationAsaac AsimovISBN-13 ‏ : ‎ 978-0008117481Although, as a child and teenager, I’ve heard an abridged audiobook many times and read Prelude to Foundation the first time more than two decades ago, I loved it more than I can describe and…

  • Follow this blog on the fediverse!

    If I’ve set it up right, you can now follow this blog on Mastodon and other fediverse platforms! Search for this user: @blog@www.artificialworlds.net

  • Rust 101 – 6: Structs and Enums

    Continuing our review of the things you need in Rust to write programs – grouping together data using structs, and allowing multiple possibilities with enums. We look at how to decide which thing you’ve got with the match keyword, and review a very pop…

  • Unpacking Code Ownership

    This post was prompted by a document I read which was presented as a development guide. While the rest of it was about style, the section that particularly piqued my interest was one involving code ownership. For those of us who’ve been around the bloc…

  • Unpacking Code Ownership

    This post was prompted by a document I read which was presented as a development guide. While the rest of it was about style, the section that particularly piqued my interest was one involving code ownership. For those of us who’ve been around the bloc…

  • Rust 101 – 5: References

    Starting some more advanced Rust programming ideas by looking at references – the ability to “borrow” values and refer to them without taking ownership. We look at mutable and immutable references, and the rules about references that prevent us ever ha…

  • Rust 101 – 4: Exercises for module A1

    Going through some exercises on basic Rust syntax and ownership. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Unsafe This section (Language basics): 1: Intro, 2: L…

  • Linux Laptop 2023 as a present

    My eldest has been using Linux on a 2012 macbook pro with 16GB and an SSD where the optical drive used to be, something she did herself whilst at school, so for her twenty first birthday I wanted to give her a new Linux laptop which she could be proud…

  • Linux Laptop 2023 as a present

    My eldest has been using Linux on a 2012 macbook pro with 16GB and an SSD where the optical drive used to be, something she did herself whilst at school, so for her twenty first birthday I wanted to give her a new Linux laptop which she could be proud…

  • Making maven dependency tree readable

    We have a super-POM which ties our POM forest into a tree. It takes 24 minutes just to compile. The dependency tree output is overwhelming, but the below leavs you with a fairly managable todo list of problems. Assuming org.my-project for …

  • Making maven dependency tree readable

    We have a super-POM which ties our POM forest into a tree. It takes 24 minutes just to compile. The dependency tree output is overwhelming, but the below leavs you with a fairly managable todo list of problems. Assuming org.my-project for …

  • Load bearing structures

    Fast, light lily trotter. Dall-e Hippo. Hippo trotter. For me this is connected with writing software.

  • Load bearing structures

    Fast, light lily trotter. Dall-e Hippo. Hippo trotter. For me this is connected with writing software.

  • Rust 101 – 3: Memory and ownership

    Continuing on Rust programming basics by looking at ownership and memory management, including the stack and the heap: what they are, how they differ, and why you need to care. For more help on ownership and the stack and the heap, try Chapter 4 of th…

  • Rust 101 – 2: Language basics

    An introduction to the Rust language basics. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Unsafe This section (Language basics): 1: Intro, 2: Language basics, 3: M…

  • Rust 101 – 1: Course intro

    Introducing the Rust 101 series and how to install Rust. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Unsafe This section (Language basics): 1: Intro, 2: Language …

  • Not as good as TV! A review of Caliban’s War, The Expanse Book 2

    Caliban’s Warby James S. A. CoreyISBN: 978-1841499918I was really keen to read this after Leviathan Wakes was so good and after enjoying the TV series so much. Of course there was the pull of the introduction of Chrisjen Avasarala as well, and she real…

  • Not as good as TV! A review of Caliban’s War, The Expanse Book 2

    Caliban’s Warby James S. A. CoreyISBN: 978-1841499918I was really keen to read this after Leviathan Wakes was so good and after enjoying the TV series so much. Of course there was the pull of the introduction of Chrisjen Avasarala as well, and she real…

  • Combining two function types with & (ampersand) in TypeScript (intersection)

    Combining interfaces/objects with & When you combine two types in TypeScript with & (ampersand), it is called an Intersection Type. For example: interface Particle { mass: number; } interface Wave { wavelength: number; } type Both = P…

  • Accessing services on the host from a Docker container or a Podman one

    I use Podman to provide Docker-like stuff on my dev machine without effectively being root. Talking to the container host in Docker There is a little trick for accessing HTTP services on the container host in Docker: you add –add-host host.docker.inte…

  • Visual Lint 8.0.13.364 has been released

    Visual Lint 8.0.13.364 has been released. This is a maintenance update for Visual Lint 8.0, and includes the following changes: When a Visual Studio 2017/2019/2022 project configuration using the /external:I switch is loaded, the specified folder wil…

  • Visual Lint 8.0.13.364 has been released

    Visual Lint 8.0.13.364 has been released. This is a maintenance update for Visual Lint 8.0, and includes the following changes: When a Visual Studio 2017/2019/2022 project configuration using the /external:I switch is loaded, the specified folder wil…

  • Variety build up in a long lived project

    My current project has 319 Maven POMs. These have been worked upon by at least five ‘generations’ of coders, that is under five different software engineering leads. Maven enables different actions depending upon different profiles…

  • Variety build up in a long lived project

    My current project has 319 Maven POMs. These have been worked upon by at least five ‘generations’ of coders, that is under five different software engineering leads. Maven enables different actions depending upon different profiles…

  • A Review: Detonation Boulevard

    By Alistair ReynoldsASIN: B0C99899GL Take two of my favourite things and my favourite author and what do you get? Formula 1 in space with cyborgs, and who doesn’t love a Sisters of Mercy Reference?From a Formula 1 perspective, there’s so much there. Re…

  • A Review: Detonation Boulevard

    By Alistair ReynoldsASIN: B0C99899GL Take two of my favourite things and my favourite author and what do you get? Formula 1 in space with cyborgs, and who doesn’t love a Sisters of Mercy Reference?From a Formula 1 perspective, there’s so much there. Re…

  • A Review: God Emperor of Dune

    By Frank HerbertISBN:  ‎ 978-1473233805I’ve seen lots of people rave about God Emperor of Dune, the first of the second Dune trilogy, which is set several thousand years after the events of Children of Dune. As far as I’m concerned, it’s ok.It con…

  • A Review: God Emperor of Dune

    By Frank HerbertISBN:  ‎ 978-1473233805I’ve seen lots of people rave about God Emperor of Dune, the first of the second Dune trilogy, which is set several thousand years after the events of Children of Dune. As far as I’m concerned, it’s ok.It con…

  • Press Release Driven Development

    I realised, as I stumbled forwards with a presentation on my current project, that the presentation can be seen as a Press Release and remembered that I have explicitly followed the Amazon Working Backwards practice twice before. Write th…

  • Press Release Driven Development

    I realised, as I stumbled forwards with a presentation on my current project, that the presentation can be seen as a Press Release and remembered that I have explicitly followed the Amazon Working Backwards practice twice before. Write th…

  • Trying to use AI to create an image for work

    The idea I want to convey, in a slide deck at work, is that the codebase we are working on has not had enough attention for five years. It has been run by a small number of people who managed to keep the system working, ‘kept the lights on’ but the …

  • Trying to use AI to create an image for work

    The idea I want to convey, in a slide deck at work, is that the codebase we are working on has not had enough attention for five years. It has been run by a small number of people who managed to keep the system working, ‘kept the lights on’ but the …

  • Deploying AWS Lambda with Terraform and GitHub actions

    Separation of Concerns is a key principle in software engineering. When we used to deploy applications to physical hardware, the two separate concerns of infrastructure and software would often become blurred as an application would often need to tailo…

  • Deploying AWS Lambda with Terraform and GitHub actions

    Separation of Concerns is a key principle in software engineering. When we used to deploy applications to physical hardware, the two separate concerns of infrastructure and software would often become blurred as an application would often need to tailo…

  • Why I’m voting tactically against you – letter to my Conservative MP

    Here’s the letter I just sent to my MP. Feel free to use it in full or in part. Dear Ben Wallace, Last night I made the decision to vote tactically against you at the next election, and I felt I owed you an explanation. I now feel that any of the likel…

  • A Review Storm of Swords: Part 1 Steel and Snow

    Storm of Swords: Part 1 Steel and SnowGeorge R MartinISBN: 9780007447848I didn’t like the previous book, A Clash of Kings and Storm of Swords isn’t a great deal better, but it is better.  I really enjoyed the multiple threads and, of course, learn…

  • A Review Storm of Swords: Part 1 Steel and Snow

    Storm of Swords: Part 1 Steel and SnowGeorge R MartinISBN: 9780007447848I didn’t like the previous book, A Clash of Kings and Storm of Swords isn’t a great deal better, but it is better.  I really enjoyed the multiple threads and, of course, learn…

  • Rust WASM hello world – no need for webpack!

    Up to now I’ve been following the official guide and using webpack to package my Rust+WASM code to run in a browser. But today I found out there is no need for webpack at all! This makes development much faster, with many fewer dependencies. Setup Befo…

  • Estimating software tasks and stories: avoid time-based estimates

    I was recently asked what I thought of using time-based estimates when tracking software tasks. TLDR: I think it’s a terrible idea that can hurt your software by introducing bugs and burning out developers. I think using time-based estimates is pretty …

  • Bloomreach Transactional Email API Client

    A nonofficial, JavaScript, feature complete, client library for sending transactional emails via Bloomreach.The aim of the bloomreach-transactional-email package is to get you going with the Bloomreach Transactional Email API as quickly as possible. Th…

  • Bloomreach Transactional Email API Client

    A nonofficial, JavaScript, feature complete, client library for sending transactional emails via Bloomreach.The aim of the bloomreach-transactional-email package is to get you going with the Bloomreach Transactional Email API as quickly as possible. Th…

  • Maths: The Fun Parts – Graphs video

    More of my series about my favourite bits of Maths. This time, Graphs: Slides for Maths: The Fun Parts – Graphs

  • Maths: The Fun Parts – Groups video

    More of my series about my favourite bits of Maths. This time, Groups: Slides for Maths: The Fun Parts – Groups

  • Maths: The Fun Parts – Sets video

    I’ve been wanting to make series about the cool bits of Maths for years and I’m finally getting around to it. It’s called “Maths: The Fun Parts” and the first part is on Sets: Slides for Maths: The Fun Parts – Sets

  • A Review: Leviathan Wakes: The Expanse, Book 1

    by James S. A. CoreyISBN-13: 978-0316333429 I was apprehensive about reading Leviathan Wakes as a friend had suggested it was boring compared to the TV series, which I loved. It wasn’t! The Protomolecule is brown goo, rather than bright glittery s…

  • A Review: Leviathan Wakes: The Expanse, Book 1

    by James S. A. CoreyISBN-13: 978-0316333429 I was apprehensive about reading Leviathan Wakes as a friend had suggested it was boring compared to the TV series, which I loved. It wasn’t! The Protomolecule is brown goo, rather than bright glittery s…

  • GitHub API GraphQL snippets

    Every time I try to use GitHib’s GraphQL API I find myself totally lost, so here are some snippets I have found useful. All of these can be pasted into the GitHub GraphQL API Explorer, which can run the code as your logged-in user in the browser withou…

  • Write Your Own Load Balancer: A worked Example

    I was out walking with a techie friend of mine I’d not seen for a while and he asked me if I’d written anything recently. I hadn’t, other than an article on data sharing a few months before and I realised I was missing it. Well, not the writing itself,…

  • Write Your Own Load Balancer: A worked Example

    I was out walking with a techie friend of mine I’d not seen for a while and he asked me if I’d written anything recently. I hadn’t, other than an article on data sharing a few months before and I realised I was missing it. Well, not the writing itself,…

  • ACCU 2023: presentation and free books

    The ACCU 2023 conference is next week, running from 19th-22nd April 2023, in Bristol, UK. My presentation This year I will be presenting "Designing for concurrency using message passing" on 22nd April. The abstract is: One common way to desi…

  • Sleepover A Review

    SleepoverAlistair ReynoldsASIN: ‎ B0097AXWUYI often think that Alastair Reynolds must have encountered some truly unpleasant people in his life, as he creates such nasty characters so well. Sleepover starts with Gaunt awakened from a long sleep, but so…

  • Sleepover A Review

    SleepoverAlistair ReynoldsASIN: ‎ B0097AXWUYI often think that Alastair Reynolds must have encountered some truly unpleasant people in his life, as he creates such nasty characters so well. Sleepover starts with Gaunt awakened from a long sleep, but so…

  • A Review: The Silmarillion

    The Silmarillionby J. R. R. Tolkien, Christopher TolkienISBN: 978-0007523221I read the Lord of the Rings when I was about 8, having loved the BBC radio play starring Michael Hordern as Gandalf. Of course I wanted to read the Silmarillion too, but was a…

  • A Review: The Silmarillion

    The Silmarillionby J. R. R. Tolkien, Christopher TolkienISBN: 978-0007523221I read the Lord of the Rings when I was about 8, having loved the BBC radio play starring Michael Hordern as Gandalf. Of course I wanted to read the Silmarillion too, but was a…

  • A Review: The New One Minute Manager

    The New One Minute Managerby Kenneth Blanchard and Spencer Johnson I rarely read a book more than once (unless it’s set in Alastair Reynolds’ Revelation Space Universe), but this is the third time I’ve read the New One Minute Manager, and It’s not…

  • A Review: The New One Minute Manager

    The New One Minute Managerby Kenneth Blanchard and Spencer Johnson I rarely read a book more than once (unless it’s set in Alastair Reynolds’ Revelation Space Universe), but this is the third time I’ve read the New One Minute Manager, and It’s not…

  • Live code reviews make life better

    I’ve just got off a call with a colleague. During that call I: learned a lot about how the work he is doing fits in with what my team is working on understood the specific code we were discussing much better than if I’d looked at it alone helped him f…

  • References don’t have top-level cv-qualifiers

    Sometimes when reading about C++, for instance about template argument deduction, the term “top-level cv-qualifiers” comes up. I just spent an unreasonable amount of time being puzzled by something because I didn’t understand that references don’t have top-level cv-qualifiers. This post will hopefully help the next person (hi, next-year Anders) not make the same mistake. … Continue reading References don’t have top-level cv-qualifiers

  • Review of Embracing Modern C++ Safely by John Lakos, Vittorio Romeo, Rostislav Khlebnikov and Alisdair Meredith

    Verdict: Conditionally Recommended (3/5) This is a huge book, over 1300 pages, and contains a wealth of information about all the language (not library) facilities added in C++11 and C++14. It has one "section" per language feature, and …

  • Visual Lint 8.0.12.359 adds support for PC-lint Plus 2.0

    Visual Lint 8.0.12.359 has now been released. This is a maintenance update for Visual Lint 8.0, and includes the following changes: Added support for $([MSBuild]::GetDirectoryNameOfFileAbove()), $([MSBuild]::GetPathOfFileAbove()), $([System.IO.Path]:…

  • Visual Lint 8.0.12.359 adds support for PC-lint Plus 2.0

    Visual Lint 8.0.12.359 has now been released. This is a maintenance update for Visual Lint 8.0, and includes the following changes: Added support for $([MSBuild]::GetDirectoryNameOfFileAbove()), $([MSBuild]::GetPathOfFileAbove()), $([System.IO.Path]:…

  • Review: Diamond Dogs, Turquoise Days

    Diamond Dogs, Turquoise Daysby Alistair ReynoldsISBN: ‎ 978-0575083134Diamond DogsI don’t get full satisfaction from stories that leave unanswered questions, unless those questions ge…

  • Review: Diamond Dogs, Turquoise Days

    Diamond Dogs, Turquoise Daysby Alistair ReynoldsISBN: ‎ 978-0575083134Diamond DogsI don’t get full satisfaction from stories that leave unanswered questions, unless those questions ge…

  • Visual Lint 8.0.11.357 has been released

    Visual Lint 8.0.11.357 has now been released. This is a maintenance update for Visual Lint 8.0, and includes the following changes: Fixed an MSBuild parsing issue which affected the definitions of the vcpkg project variables $(_ZVcpkgRoot), $(_ZVcpkg…

  • Visual Lint 8.0.11.357 has been released

    Visual Lint 8.0.11.357 has now been released. This is a maintenance update for Visual Lint 8.0, and includes the following changes: Fixed an MSBuild parsing issue which affected the definitions of the vcpkg project variables $(_ZVcpkgRoot), $(_ZVcpkg…

  • The Great Dune Trilogy: A Review

    The Great Dune TrilogyFrank HerbertISBN-13: 0575070706I remember distinctly reading Dune in 1992 after seeing the 1980s film. In fact I can still picture myself lying on a bed in a holiday cottage in a small French village near Carcassonne reading the …

  • The Great Dune Trilogy: A Review

    The Great Dune TrilogyFrank HerbertISBN-13: 0575070706I remember distinctly reading Dune in 1992 after seeing the 1980s film. In fact I can still picture myself lying on a bed in a holiday cottage in a small French village near Carcassonne reading the …

  • Duplicate Data in Microservices

    So You Are Uncomfortable with Duplicate Data? If, like me, you’ve spent a reasonable amount of your career working with relational databases,  where data is rationalised to avoid duplication, the idea of duplicating data across microservices …

  • Duplicate Data in Microservices

    So You Are Uncomfortable with Duplicate Data? If, like me, you’ve spent a reasonable amount of your career working with relational databases,  where data is rationalised to avoid duplication, the idea of duplicating data across microservices …

  • Why we probably shouldn’t have constexpr conditional operator

    The idea I had a great idea. We have constexpr if, but no constexpr conditional operator. Time for a proposal? Since we can do stuff like this: Wouldn’t it be cool if we could also do My motivation was that I had a std::variant visitor that was identical for all types except one. So instead … Continue reading Why we probably shouldn’t have constexpr conditional operator