These days I’ve been exploring the FreeBSD operating system a bit as a user. Wanting to learn more about its internals and start tinkering on the OS itself, this post documents my initial setup: running FreeBSD in a virtual machine with QEMU on macOS. Additionally, some initial experimentation building and booting a custom kernel.
The Foreign Function Interface (FFI) PHP extension makes it possible to use shared libraries and call external functions. This is useful to use functionality not in existing PHP extensions, or call high-performance implementations. While it open doors, the low-level nature requires some caution. Additionally, there is some overhead in the translation between PHP and C datastructures.
A couple weeks ago, I started playing minesweeper after downloading a game app on my phone. It got me thinking, had been a while since making the last small browser game, could be fun to try recreating this one, complete with the distinctive styling of the original Windows version.
Experimenting with some KLM APIs by building a small data collection tool which outputs a daily report tracking flight offers for some different destinations.
QR codes are usually used for storing small amounts of textual data such as web links. However, they are capable of storing other arbitrary data. Here a small computer architecture is designed around a compact encoding of computer instructions in the textual data of QR codes. To experiement, I explore a small instruction-set, and create a small development environment (assembler & virtual machine)…
In the mood this weekend for a little retroprogramming. A small colour matcher game in Turbo Pascal for DOS. It runs nicely under dosbox – given a fixed cycle emulation (issue otherwise related to this incompatibility for emulating faster machines with the Turbo Pascal Crt module). Came across the js-dos framework: it’s pretty cool. Makes it easy to embed and emulate in DOS in the browser, also…
The IMSAI 8080 kit from The High Nibble is pretty neat, and fun to build. It emulates a 1970s IMSAI 8080 microcomputer system with an Intel 8080 CPU running @2MHz. It is capable also of emulating other peripherals such as floppy drives. It behaves as a functional replica of a system, and is compatible with original programs and operating systems, like the once-popular CP/M. Here I’ll look at a…
Feeling inspired after seeing some electronic business cards creations, I tried a few years ago to make mini variant of my own. It’s a neat form factor to experiment and demo some ideas. Built around an ATtiny85 microcontroller, this was my first PCB design. The board is a sort-of puzzle, incorporating elements from different interests like (retro)computing, electronics and music.
Experimenting with some maze generation and search algorithms. The small implementation is written in the browser in Javascript with visualisation on an HTML5 canvas.
Last year, I began logging train trips as a means of gamifying and collecting data on trains encountered on journeys in order to make commuting a bit more interesting. This post explores some data insights from a year of travelling by train, and the implementation & architecture of the logging and analytics system.
Looking at an algorithm to explore properties of the number puzzle from the TV gameshow “Countdown”. In designing an algorithm we look at various algorithmic and implementation optimisations that reduce the runtime from a minute to just a couple of seconds when searching the problem space.
This post looks at computing by hand a result for pi using a process first described in the 3rd century. This same algorithm yielded the world’s most accurate valuation for the ratio of circle circumference to diameter until the 16th century.
Liu Hui’s algorithm for approximating pi from 3rd century China is significant as it gave the most accurate valuation for pi in the world for over 1200 years. This looks in more detail at how the result is obtained geometrically and algebraically from first principles. It is an elaboration of the mathematical aspects of the procedure as described in the Wikipedia article.
Some photos of the Manchester Baby replica maintained by volunteers at the Science and Industry Museum and the area around it’s original home at University of Manchester Coupland Building 1.
Time to boot it up! A continuation of the Z180 Retrocomputer project. Here, we look at the Z180 MMU behaviour, initialising the system and writing a small bootloader. See also Z180 Retrocomputer: Design for more about the design and construction of the system.