- Epistrophy: cooperative multithreading for the browser () — Epistrophy is a JS implementation for the browser of the simple timing and synchronization model described in the previous article. It follows closely the model but adds specific platform features like events and async/await. On top of the core model, higher-level abstractions are being built, such as repetition or a concurrent map. A couple of demos that highlight some of the features of Epistrophy are shown inline with their complete source code.
- A minimal timing and synchronization model () — We propose a minimal timing and synchronization model built on a very small number of constructs and primitives, intended to be expressive enough to represent a wide variety of patterns, while being simple enough to be relatively easy to implement in a variety of environments, based on logical time, instantaneous computations, and cooperative scheduling of lightweight threads.
- A rule-based language for adventure games, part 2: text adventures () — Golem is a rule-based language to create simple adventure games. In this second part, we will see how the same rule system can be rendered as text for that old-school interactive fiction feeling.
- A rule-based language for adventure games, part 1: the rules () — Golem is a rule-based language to create simple adventure games. In this first part, we will see the language in action with a simple point-and-click game and discuss the potential for such a system.
- Of Union-Find and voodoo magic () — A chance encounter with a simple connected graph problem leads your humble narrator to a stroll down memory lane.
- Features of logical time () — Logical time is deterministic, which makes testing simpler and more accurate. Logical time progresses discretely through instants, so that key moments of the lifetime of an application can be visualized on a timeline. Logical time can be mapped to physical time in various ways so that it is possible to pause, fast-forward or rewind an application. Taken together, these features could improve both developer and user experience for interactive applications.
- I could not remember the Markdown syntax for links, so I made a pretty bad Lisp. () — Dodo 🦤 is a lightweight markup language that is used to author this website. It has no fixed semantics, except for a transformation language that can produce other output formats. It is actually based on a simple Lisp evaluator that uses the same syntax as the markup language itself.
- Three views of time, part 3: Esterel () — Three different languages offer three different ways to think about time in a program. In part 3, we have a look at Esterel, a programming language based on a synchronous reactive model.
- Three views of time, part 2: ChucK () — Three different languages offer three different ways to think about time in a program. In part 2, we have a look at ChucK, a computer music language with sample-accurate scheduling.
- Three views of time, part 1: SMIL () — Three different languages offer three different ways to think about time in a program. In part 1, we have a look at SMIL, a declarative language for multimedia synchronization with powerful timing constructs.
- Where does time go? () — Although timing and synchronization are essential to authoring correct and efficient programs, mainstream programming languages have no concept of time.