Timing out design by contract with a stopwatch

Excerpt: Can time be part of a contract? Is it a contract when time is included? «Shall we meet at half past eight at the Pub for a beer?» Let’s steer past that one. Timing requirements are important, they are extensively used in hard real-time systems. In some protocols a client does not need to send any «end of request» signal as the server times out after a period of inactivity to close the connection (like HTTP persistent connections). This blog note tries to discuss when timeouts are fine to use, and when they do turn the components’ interactions into a quiz.

My SafeRTOS notes

There is a nice series of development boards by ST called STM32 MCU Nucleo (here [1]), based on an ARM. One of these appeared on a table near me. They guy who had it said that «they also tell about a free operating system». It happened to be FreeRTOS™ (here [2]) by Real Time Engineers Ltd on freertos.org [3]. I eagerly looked it up and was fast pointed to WITTENSTEIN HighIntegritySystems (by The WITTENSTEIN Group) here [4]. They do SafeRTOS, so I downloaded its manual here [5]. This is a IEC 61508 (here [6]) approved RTOS. Since I work with safety critical systems (and have some blog notes here covering some aspects of 61508, like in note 065 [7]) I started to read. It spurred some questions.

JavaScript tree becoming concurrent?

Excerpt: I hope it to be a note showing whether it’s possible to code the animated tree in concurrent JavaScript code. Or rather, which solution to choose – or which that suits best. «JavaScript is the most commonly used programming language on earth. Even Back-End developers are more likely to use it than any other language» – stackoverflow Developer Survey Results 2016. In other words: most of the world’s programmers are deprived of concurrency support in their programming language.

Spin-and-burn loop leveling

22May2015, updated 4June2017 This page is in group Technology and is a note about how an embedded controller might favourably spin to burn cycles. It describes an exception. I have used the word spin rather than block here even if it is an example of rather red blocking in the earlier note Not so blocking after all. I have been trying to make […]

My XMOS notes

Started 18Feb2015, updated 27Oct2021 (MIPI) – Plus a short update 31May2023 («NumPages» for .xe file for 14.4.1) This page is in group Technology (plus My XMOS pages) and is a blog note about my experience with the XMOS toolset xTIMEcomposer and XMOS HW and how I am going to use used the startKIT to control a small 40 litre […]

How much concurrency?

Started 29Oct2014, updated 1Sept2015 (then a small chapter on XMOS 12Nov2021) This page is in group Technology and is about a facet of multi-threaded concurrent programming where it’s an important matter that more or less independent sw-processes shall not make running difficult for the others. Intro During my previous blog notes, especially «Not so blocking after all» I […]

Rich interface component modeling

This page is in group Technology. Started work on this 1Feb2014, probably finished now (updated 7Jul2020 (table)) Intro In this note I will describe two articles about software components. The article «Component Models for Reasoning» (Seceleanu, Crnkovic) [01] and «Tool support for the rapid composition, analysis and implementation of reactive services» (Kraemer, Slåtten, Herrmann) [02]. […]

HTML5 and concurrency

New 4Dec2013, ready 08:09:10 11.12.13 (updated 15Mar2014) This page is in group Technology. Intro My starting point with this note was my surprise of the JavaScript «concurrency model» [01] – as described in HTLM5 [02] («WebAppAPIs»). I asked myself whether this «single-threaded» model had been influenced by the Model-View-Controller (MVC) [03]. Maybe, in any case […]

A reactive manifest

New: 10Nov2013, updated 22Feb2024 (Some moved to 254:[] typos, plus added some). This page is in group Technology. This note on the Internet Archive‘s Wayback Machine: A reactive manifest Disclaimer Whether this note manifests itself as a manifest, remains to be manifested. Background I will in this blog try to critically analyse The Reactive Manifesto [1]. The […]

Eventual concurrency

Started 12Sep2013, finished 19Sep2013. Updated 28Jan2014 This page is in group Technology. Intro In this blog page I will try to understand how so-called «single threaded» software architectures based on «event-loop concurrency» and callbacks (where mostly all blocking is «evil»), differs from light-weight processes that communicate using channels  (where any needed non-blocking is built explicitly (or by […]