ACCU World of Code

  • 19 years of blogging

    As you may have noticed, I recently upgraded my blog from WordPress to Zola. This means that my home computer does the work of rendering the pages to HTML once, and my web server only has to provide the rendered HTML to your browser. This should mean t…

  • Deployment is important

    I just evaluated and installed software for providing comments and statistics for this blog. Here are my experiences of the deployment process: A Python comment system. Uses one of the 17 outdated installer/packaging systems for Python (none of which…

  • Rust 101 – 48: Exercises for module F (q3)

    Implementing our own Result type that has a specific memory layout, so it can be used by Roc code. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Unsafe This section…

  • Rust 101 – 47: Exercises for module F (q2)

    Wrapping a C function with safe Rust code. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Unsafe This section (Async): 42: Why unsafe?, 43: Meaning of unsafe, 44: Un…

  • Modelling estimate/actual including uncertainty in the estimate

    What is an effective technique for modelling the relationship between the time estimated to implement a task and the actual time taken to implement that task? A regression model is the obvious approach. However, an important assumption made by the commonly used regression techniques is not met by estimate/actual project data The commonly used regression […]

  • Little book of workflow management

    I have a confession to make. I recently published a series of articles not on this blog, and not even in my newsletter. I wanted to try something a bit different. I wanted to try writing short descriptions of the working techniques agile teams use but without using the word agile, referring to software development, […]

    The post Little book of workflow management first appeared on Allan Kelly.

  • Heads-up: moving away from WordPress

    This is an early warning: I am actively working to move this blog away from WordPress, to a static site created using Zola. I am planning to keep as many URLs working as humanly possible, and the RSS feed URL should be unchanged. (With any luck, the pe…

  • Heads-up: moving away from WordPress

    This is an early warning: I am actively working to move this blog away from WordPress, to a static site created using Zola. I am planning to keep as many URLs working as humanly possible, and the RSS feed URL should be unchanged. (With any luck, the permalinks inside will also be unchanged, but I … Continue reading Heads-up: moving away from WordPress

  • if statement conditions, some basic measurements

    The conditions contained in if-statements control all the decisions a program makes, yet relatively little is known about their characteristics. A condition contains one or more clauses, for instance, the condition (a && b) contains two clauses that both need to be true, for the condition to be true. An earlier post modelled the number […]

  • How can you scale without authority?

    Scaling solutions tend to fallback on authority at some point, yet there are other mechanisms to co-ordinate work which are passed over.

    The post How can you scale without authority? first appeared on Allan Kelly.

  • Rust 101 – 46: Exercises for module F (q1)

    Coding up a linked list based on raw pointers in Rust. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Unsafe This section (Async): 42: Why unsafe?, 43: Meaning of un…

  • Rust 101 – 46: Exercises for module F (q1)

    Coding up a linked list based on raw pointers in Rust. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Unsafe This section (Async): 42: Why unsafe?, 43: Meaning of unsafe, 44: Undefined behaviour, 45: Unsafe types, 46: Exercise 1 Links: Slides: Rust 101 – module F Exercises: … Continue reading Rust 101 – 46: Exercises for module F (q1)

  • MC/DC a step towards safety critical Open source software

    Open source projects and safety critical software are at opposite ends of the development process spectrum. From the user perspective, when an Open source project becomes very widely used within its application domain, there is a huge incentive to run it within safety critical domains. How might software that was not originally developed using a […]

  • Crafters Meetup: Architecture Kata

    Last time I wrote about the monthly Cambridge Software Crafters Meetup which I started attending almost a year ago. In that post I briefly mentioned the Architecture Kata session which I found particularly interesting as I’ve never done anything like t…

  • Modeling program LOC growth with recurrence equations

    Models predicting the growth, in lines of code, of a program are based on the assumption that future growth follows the same pattern of behavior as past growth. One such model is the recurrence relation: , where: is LOC at time , is the LOC carried over from release , and is the LOC added […]

  • Infected Rain at The Underworld

    Infected Rain are one of those bands I thought I really ought to be into. A modern, European metalcore band with female vocals, what’s not to like? But I just couldn’t get on with the Ecdysis album. I persevered and when the band released a few tracks …

  • Rust 101 – 45: Unsafe types and examples

    Looking through some of the types of code you will be working with if you’re doing unsafe Rust, and some of the unsafe types you might want to use. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and paral…

  • Rust 101 – 45: Unsafe types and examples

    Looking through some of the types of code you will be working with if you’re doing unsafe Rust, and some of the unsafe types you might want to use. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Unsafe This section (Async): 42: Why unsafe?, 43: Meaning of … Continue reading Rust 101 – 45: Unsafe types and examples

  • A Review: Cibola Burn

    by James S. A. CoreyISBN: 78-0356504193In some ways Cibola Burn is a lot like Abaddon’s Gate, it’s slow to get going. It takes about half the book, however the second half of the book is really good. One way in which it is different from the stories w…

  • Embracing shared leadership

    The idea of shared leadership better describes modern work teams and resolves problems around self-organising and self-managing teams

    The post Embracing shared leadership first appeared on Allan Kelly.

  • SoCraTesUK 2024

    I attended the International Software Craft and Testing Unconference UK just outside Oxford last week for the first time. I have been aware of this for a while but hadn’t had the chance to attend before. I had been to another conference which had a sin…

  • Discussing new language features is more fun than measuring feature usage in code

    How often are the features supported by a programming language used by developers in the code that they write? This fundamental question is rarely asked, let alone answered (my contribution). Existing code is what developers spend their time reading, compilers translating to machine code, and LLMs use as training data. Frequently used language features are […]

  • Debugging an early NetBSD kernel panic

    Tried to install NetBSD in an AMD64 VM with little success. Although the NetBSD loader worked fine, as soon as it transferred control to the NetBSD kernel, the VM immediately rebooted with no diagnostics appearing on the console that would give a hint…

  • CppQuiz.org is now on C++23

    If you’re not familiar with https://cppquiz.org, it is, as its name suggests, a C++ quiz site. Each quiz is a full C++ program, and your task is to figure out what the output is. But the real value often lies in the explanation, which goes into detail about why the answer is what it is. … Continue reading CppQuiz.org is now on C++23

  • Rust 101 – 44: Undefined behaviour

    If you write unsafe Rust, you need to reason about “undefined behaviour”. We talk through what that means, and try to develop an intuition about why we can’t predict how our program will behave if we don’t follow the rules. Series: Language basics, Mo…

  • Rust 101 – 44: Undefined behaviour

    If you write unsafe Rust, you need to reason about “undefined behaviour”. We talk through what that means, and try to develop an intuition about why we can’t predict how our program will behave if we don’t follow the rules. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, … Continue reading Rust 101 – 44: Undefined behaviour

  • Number of statement sequences possible using N if-statements

    I recently read a post by Terence Tao describing how he experimented with using ChatGPT to solve a challenging mathematical problem. A few of my posts contain mathematical problems I could not solve; I assumed that solving them was beyond my maths pay grade. Perhaps ChatGPT could help me solve some of them. To my […]

  • Ten Minutes with Winterfylleth

    Would you travel for over 4 hours to spend less than 10 minutes with one of your favourite bands just to get their latest album signed and a photograph? I DID! Although, someone came from Germany, so it wasn’t the longest anyone travelled.I don’t think…

  • Why I’m talking about Modern Management

    We need an updated management model. Outdated, and plain bad, management are are a problem. Modern management includes agile, good jobs, psychological safety and more.

    The post Why I’m talking about Modern Management first appeared on Allan Kelly.

  • Massing saving on Succeeding with OKRs in Agile this week

    Succeeding with OKRs in Agile – massive price cut for this week only

    The post Massing saving on Succeeding with OKRs in Agile this week first appeared on Allan Kelly.

  • Measuring non-determinism in the Linux kernel

    Developers often assume that it’s possible to predict the execution path a program will take, for a given set of input values, i.e., program behavior is deterministic. The execution path may be very complicated, and may depend on the contents of certain files (e.g., database…), but it’s deterministic. There is one kind of program where […]

  • C++ Brain Teasers Book Launch September 10 (live+streaming)

    On September 10 there will be a book launch event for my book C++ Brain Teasers organized by Oslo C++ Users Group at NDC TechTown in Kongsberg. The event starts with food and mingling at 18:00, and the book launch starts at 18:30. Check out the event at Meetup.com for more details. The event will … Continue reading C++ Brain Teasers Book Launch September 10 (live+streaming)

  • Rust 101 – 43: The two meanings of “unsafe” in Rust

    The unsafe keyword in Rust means two things: “You must read the docs!” or “I promise I read the docs and followed the rules!”. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects…

  • Rust 101 – 43: The two meanings of “unsafe” in Rust

    The `unsafe` keyword in Rust means two things: “You must read the docs!” or “I promise I read the docs and followed the rules!”. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Unsafe This section (Async): 42: Why unsafe?, 43: Meaning of unsafe Links: Slides: Rust 101 … Continue reading Rust 101 – 43: The two meanings of “unsafe” in Rust

  • Rust 101 – 42: Why do we need unsafe?

    There is a special mode in Rust programs called unsafe – why do we need it? Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Unsafe This section (Async): 42: Why unsaf…

  • Rust 101 – 42: Why do we need unsafe?

    There is a special mode in Rust programs called unsafe – why do we need it? Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Unsafe This section (Async): 42: Why unsafe? Links: Slides: Rust 101 – module F Exercises: artificialworlds.net/presentations/rust-101/exercises/F-safe-unsafe/mod.html The course materials for this series are … Continue reading Rust 101 – 42: Why do we need unsafe?

  • Cambridge Software Crafters Meetup

    Despite living pretty close to Cambridge I’ve never actually worked there. For the past 25 years I’ve commuted to London because it was easier and faster than getting to Cambridge [1]. The daily rates for contract programmers in the finance industry mi…

  • Employees: growth driver or cost to trim?

    Bad jobs are depressing and costing our company more money than they save. Good jobs are a growth driver for companies and make for happier employees.

    The post Employees: growth driver or cost to trim? first appeared on Allan Kelly.

  • Survival of CVEs in the Linux kernel

    Software contained in safety related applications has to have a very low probability of failure. How is a failure rate for software calculated? The people who calculate these probabilities, or at least claim that some program has a suitably low probability, don’t publish the details or make their data publicly available. People have been talking […]

  • PJ Harvery – more talent than I was expecting.

    My wife is a massive PJ Harvery fan, but I always found her squeaky, out of tune, unable to play and talentless. And to be fair, some of her songs on some of her albums do sound like that. For one reason or another, we missed PJ Harvery at the Roundhou…

  • A Review: Chapterhouse Dune

    By Frank HerbertISBN-13 ‏ : ‎ 978-1473233812Here ends a journey which turned out to be more stubborn determination than enjoyment. As I’ve mentioned before, I first started reading the Dune books as a young teenager after loving the Lynch adaptation of…

  • 1970s: the founding decade of software reliability research

    Reliability research is a worthwhile investment for very large organizations that fund the development of many major mission-critical software systems, where reliability is essential. In the 1970s, the US Air Force’s Rome Air Development Center probably funded most of the evidence-based software research carried out in the previous century. In the 1980s, Rome fell, and […]

  • Crypta at The Underworld 2024

    When it comes to sound, the Underworld in Camden can be a bit hit and miss and tends to be more miss with heavier bands. I struggled to hear the guitars clearly for Born of Osiris last year and it was the same for both Perpetual Paradox and Phobetor, w…

  • Rust 101 – 41: Exercises for module E (q2b)

    Writing a mini client to connect to our async Rust chat server. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Unsafe This section (Async): 34: What is async?, 35: F…

  • Rust 101 – 41: Exercises for module E (q2b)

    Writing a mini client to connect to our async Rust chat server. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async This section (Async): 34: What is async?, 35: Futures, 36: async/await, 37: Runtimes, 38: Exercise E1a, 39: Exercise E1b, 40: Exercise E2a, 41: Exercise E2b Links: Slides: … Continue reading Rust 101 – 41: Exercises for module E (q2b)

  • Rust 101 – 40: Exercises for module E (q2a)

    Writing a little chat server in async Rust. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Unsafe This section (Async): 34: What is async?, 35: Futures, 36: async/aw…

  • Rust 101 – 40: Exercises for module E (q2a)

    Writing a little chat server in async Rust. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async This section (Async): 34: What is async?, 35: Futures, 36: async/await, 37: Runtimes, 38: Exercise E1a, 39: Exercise E1b, 40: Exercise E2a, 41: Exercise E2b Links: Slides: Rust 101 – module … Continue reading Rust 101 – 40: Exercises for module E (q2a)

  • Rust 101 – 39: Exercises for module E (q1b)

    Writing a one-shot queue using async Rust, this time with a little less help. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Unsafe This section (Async): 34: What is…

  • Rust 101 – 39: Exercises for module E (q1b)

    Writing a one-shot queue using async Rust, this time with a little less help. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async This section (Async): 34: What is async?, 35: Futures, 36: async/await, 37: Runtimes, 38: Exercise E1a, 39: Exercise E1b, 40: Exercise E2a, 41: Exercise E2b … Continue reading Rust 101 – 39: Exercises for module E (q1b)

  • The units of measurement for software reliability

    How do the people define software reliability? One answer can be found by analyzing defect report logs: one study found that 42.6% of fault reports were requests for an enhancement, changes to documentation, or a refactoring request; a study of NASA spaceflight software found that 63% of reports in the defect tracking system were change […]

  • Our doors are always open

    I extracted the text: Portentum plagens tua si caret asse commena Pergerian numinis resonat celer intus amice Si tamen esurit luges maxilla calabit Ostia nam miseris fraler sunt semper aperta Which google translates as: If your plag…

  • Student projects for 2024/2025

    It will soon be that time of year when university students are looking for an interesting idea for a project. On an irregular basis, I post some ideas for thesis projects (here and here); primarily for students studying computing. In a change of direction, this post suggests software related ideas for business student projects. Two […]

  • Rust 101 – 38: Exercises for module E (q1a)

    Writing our own multi-producer-single-consumer (MPSC) queue using async Rust. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Unsafe This section (Async): 34: What is…

  • Rust 101 – 38: Exercises for module E (q1a)

    Writing our own multi-producer-single-consumer (MPSC) queue using async Rust. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async This section (Async): 34: What is async?, 35: Futures, 36: async/await, 37: Runtimes, 38: Exercise E1a, 39: Exercise E1b, 40: Exercise E2a, 41: Exercise E2b Links: Slides: Rust 101 – … Continue reading Rust 101 – 38: Exercises for module E (q1a)

  • Why I wrote Learn C++ by Example

    I recently shared some details about my latest book “Learn C++ by Example”.You can buy my book directly here: http://mng.bz/AdAQ – or just go look at the table of contents. You can also buy it from Amazon: https://amzn.to/4dMJ0aGThere are a lot of C++ …

  • Memory bandwidth: 1991-2009

    The Stream benchmark is a measure of sustained memory bandwidth; the target systems are high performance computers. Sustained in the sense of distance running, rather than a short sprint (the term for this is peak memory bandwidth and occurs when the requested data is in cache), and bandwidth in the sense of bytes of memory […]

  • OKRs: webinars and workshops (3 short things)

    An OKR workshop, an OKR podcast and summer

    The post OKRs: webinars and workshops (3 short things) first appeared on Allan Kelly.

  • Rust 101 – 37: Async runtimes

    We talked about how Futures have poll methods, but who calls them? That is the job of the runtime. We talk about how to launch your async code and how to choose the right runtime, and then we have a very brief look at some Web frameworks that are based…

  • Rust 101 – 37: Async runtimes

    We talked about how Futures have poll methods, but who calls them? That is the job of the runtime. We talk about how to launch your async code and how to choose the right runtime, and then we have a very brief look at some Web frameworks that are based on async Rust. Series: Language … Continue reading Rust 101 – 37: Async runtimes

  • The 2024 update to my desktop system

    I have just upgraded my desktop system. As you can see from the picture below, it is a bespoke system; the third system built using the same chassis. The 11 drive bays on the right are configured for six 5.25-inch and five 3.5-inch disks/CD/DVD/tape drives, there is a drive cage that fits above the power […]

  • Rust 101 – 36: What async and await really do

    Attempting to explain as slowly as possible what actually happens when the compiler finds an async function containing awaits: it writes a poll method for you to create something that implements Future. The generated poll method polls the Futures you a…

  • Rust 101 – 36: What async and await really do

    Attempting to explain as slowly as possible what actually happens when the compiler finds an async function containing awaits: it writes a poll method for you to create something that implements Future. The generated poll method polls the Futures you asked to await, in order. The interesting bit is that this generated thing that implements … Continue reading Rust 101 – 36: What async and await really do

  • A new NASA software dataset from the 1970s

    When modeling the process of software development, to optimise the creation of new projects, the best measurement data to use are those relating to whatever developers are doing today. Unfortunately, measurement data for software engineering processes is very hard to find; few development groups record anything about what they do, and even when they do […]

  • 6 ideas to boost productivity

    6 ideas to increase productivity

    The post 6 ideas to boost productivity first appeared on Allan Kelly.

  • Rust 101 – 35: Futures

    Exploring what a Future is in async Rust and how we could manually write code that polls futures. Normally, we avoid this manual work by using the async and await keywords, but looking into this helps us understand what those keywords really do. Serie…

  • Rust 101 – 35: Futures

    Exploring what a Future is in async Rust and how we could manually write code that polls futures. Normally, we avoid this manual work by using the `async` and `await` keywords, but looking into this helps us understand what those keywords really do. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and … Continue reading Rust 101 – 35: Futures

  • Rust 101 – 34: What is async?

    What async programming is and what it looks like in Rust. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Unsafe This section (Async): 34: What is async?, 35: Futures…

  • Rust 101 – 34: What is async?

    What async programming is and what it looks like in Rust. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async This section (Async): 34: What is async?, 35: Futures, 36: async/await, 37: Runtimes, 38: Exercise E1a, 39: Exercise E1b, 40: Exercise E2a, 41: Exercise E2b Links: Slides: Rust … Continue reading Rust 101 – 34: What is async?

  • A Review: A Feast for Crows

    By George R.R. MartinISBN-13 ‏ : ‎ 978-0007548279If this wasn’t the penultimate book written and I hadn’t enjoyed the TV series so much I would be giving up on the book series at this point. A Feast for Crows is boring and long winded. It’s full of a l…

  • A Review: A Feast for Crows

    By George R.R. MartinISBN-13 ‏ : ‎ 978-0007548279If this wasn’t the penultimate book written and I hadn’t enjoyed the TV series so much I would be giving up on the book series at this point. A Feast for Crows is boring and long winded. It’s full of a l…

  • C++ On Sea trip report

     I went to C++ On Sea again this year, attending the main conference. I spoke about Swarm Optimisation algorithms. I wrote a brief blog post about these a while ago, if you want a quick overview. I also hosted the lightning talks.On the first…

  • C++ On Sea trip report

     I went to C++ On Sea again this year, attending the main conference. I spoke about Swarm Optimisation algorithms. I wrote a brief blog post about these a while ago, if you want a quick overview. I also hosted the lightning talks.On the first…

  • Help – a survey about product leaders

    I’m running a little survey – 5 minutes of your time – about the people and roles who decide what should be done, or perhaps what should be built. The people who are often called Product Owners or Product Managers, and often Business Analysts, perhaps Requirements enigneers or… a myriad of other titles. I’m generically […]

    The post Help – a survey about product leaders first appeared on Allan Kelly.

  • Program fault reports are caused by its users

    Faults are generated by users of the software; no users, no fault reports. Fault reports will be generated for software that is free of coding mistakes; one study found that 42.6% of fault reports were misclassified as either requests for an enhancement, changes to documentation, or a refactoring request, or not requiring changes to the […]

  • Spending when uncertainty is high

    When uncertainty is high the classic investment and governance model needs rethinking.

    The post Spending when uncertainty is high first appeared on Allan Kelly.

  • Learn C++ by Example: Chapter 9

    I have been sharing some details about my latest book “Learn C++ by Example”, and gave an overview of chapter 8 last time. There are 9 chapters, so this is the final blog about the book’s contents.You can buy my book directly here: http://mng…

  • Learn C++ by Example: Chapter 9

    I have been sharing some details about my latest book “Learn C++ by Example”, and gave an overview of chapter 8 last time. There are 9 chapters, so this is the final blog about the book’s contents.You can buy my book directly here: http://mng…

  • If you get this error from Time Machine on Samba, check available disk space

    I’ve been using Samba with the time machine setting for years to back up the couple of Macs I own. I’ve recently been running into issues with Time Machine backups erroring out with "The network backup disk does not support the require…

  • Confidence intervals: my one recommended practice

    What recommended practices should developers/managers follow when analysing data they have collected/available? The scientific approach to data analysis mandates specifying a hypothesis before gathering the data, let alone analysing it. This approach has proven workable when researchers are familiar with an evidence-based body of knowledge. In this environment it’s acceptable, even required, to criticise anyone […]

  • Learn C++ by Example: Chapter 8

    I have been sharing some details about my latest book “Learn C++ by Example”, and gave an overview of chapter 7 last time. There are 9 chapters, so this is the penultimate blog about the book contents.You can buy my book directly here: http://mng…

  • Learn C++ by Example: Chapter 8

    I have been sharing some details about my latest book “Learn C++ by Example”, and gave an overview of chapter 7 last time. There are 9 chapters, so this is the penultimate blog about the book contents.You can buy my book directly here: http://mng…

  • Techniques used for analyzing basic performance measurements

    The statistical design and analysis of experiments is a relatively recent invention (around 150 years old; verifying scientific hypotheses using experiments was first proposed over 1,000 years ago). Once an experiment has been run, and performance measurements collected, what techniques are available to analyse the data? Before electronic computers were invented, the practical statistical techniques […]

  • Benefits of Value Poker (2 of 2)

    Value poker creates great conversations and shared understanding, it opens allows for cost-of-delay and cost-benefit analysis. And it is fun!

    The post Benefits of Value Poker (2 of 2) first appeared on Allan Kelly.

  • Learn C++ by Example: Chapter 7

    I have been sharing some details about my latest book “Learn C++ by Example”, and gave an overview of chapter 6 last time.You can buy my book directly here: http://mng.bz/AdAQ – or just go look at the table of contents. You can also buy …

  • Learn C++ by Example: Chapter 7

    I have been sharing some details about my latest book “Learn C++ by Example”, and gave an overview of chapter 6 last time.You can buy my book directly here: http://mng.bz/AdAQ – or just go look at the table of contents. You can also buy …

  • Rust 101 – 33: Exercises for module D (q3)

    Following through an exercise using a trait object with dynamic dispatch to choose different behaviour at runtime. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Uns…

  • Rust 101 – 33: Exercises for module D (q3)

    Following through an exercise using a trait object with dynamic dispatch to choose different behaviour at runtime. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async This section (Trait objects): 28: Dynamic dispatch, 29: Object safety, 30: Patterns, 31: Exercise D1, 32: Exercise D2, 33: Exercise D3 Links: … Continue reading Rust 101 – 33: Exercises for module D (q3)

  • Learning General relativity at a rudimentary mathematical level

    For the longest time, I have wanted to have an understanding of Einstein’s theory of General relativity at a rudimentary mathematical level. Because General relativity has never been a mainstream topic in undergraduate physics, there are almost no books at this level. Also, the mathematics of General relativity is based on tensor calculus, which until […]

  • Elected to the Matrix Foundation Governing Board!

    I am really excited to say I was elected to the Governing Board of the Matrix Foundation! I was really surprised because there were lots of people standing, and the quality of the candidates was very high, but I am one of the lucky ones. I hope I can d…

  • Elected to the Matrix Foundation Governing Board!

    I am really excited to say I was elected to the Governing Board of the Matrix Foundation! I was really surprised because there were lots of people standing, and the quality of the candidates was very high, but I am one of the lucky ones. I hope I can do a decent job of helping … Continue reading Elected to the Matrix Foundation Governing Board!

  • Rust 101 – 32: Exercises for module D (q2)

    Trying out the typestate pattern by tracking the state of a 3D printer by changing our type instead of updating a variable whenever it changes. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and paralleli…

  • Rust 101 – 31: Exercises for module D (q1)

    Some good patterns to follow in your code e.g. “newtype”, “typestate” and one to avoid. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Unsafe This section (Trait obj…

  • Playing Value Poker in the Dagons’ Den

    Teams are quick to assign effort estimates to stories so why not estimate value? – how else can you prioritise by business value?

    The post Playing Value Poker in the Dagons’ Den first appeared on Allan Kelly.

  • Learn C++ by Example: Chapter 6

    I have been sharing some details about my latest book “Learn C++ by Example”, and gave an overview of the chapter 5 last time.You can buy my book directly here: http://mng.bz/AdAQ – or just go look at the table of contents. You can also buy i…

  • Rust 101 – 30: Good patterns and not so good

    Some good patterns to follow in your code e.g. “newtype”, “typestate” and one to avoid. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Unsafe This section (Trait obj…

  • Rust 101 – 29: Trait objects and object safety

    Trying to explain why the rules for object safety are the way they are, and how to create and use a trait objects. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Uns…

  • Distribution of program sizes

    Program size, in lines of code (LOC), used to be a topic of conversation among developers and managers. Program size is an issue when computer memory is measured in kilobytes. Large programs would be organized into overlays such that only small subsets needed to be held in memory at any time, i.e., programmer defined memory […]

  • I wrote a C++ book!

    I’m very proud to announce that my first book just got released on The Pragmatic Programmers! The book is called “C++ Brain Teasers“, and is part of their Brain Teasers series. The book consists of 25 short C++ programs, and the point is to guess what the output is, and why the language works like … Continue reading I wrote a C++ book!

  • Rust 101 – 28: Dynamic dispatch

    Explaining how to hold on to something even when we don’t know its exact type, just what trait it implements. Series: Language basics, More syntax, Traits and generics, Building applications, Concurrency and parallelism, Trait objects, Async, Unsafe T…

  • Learn C++ by example: Chapter 5

    I started to share some details about my latest book “Learn C++ by Example”, and gave overviews of the first few chapters previously.You can buy my book directly here: http://mng.bz/AdAQ – or just go look at the table of contents. You can als…