RSSAmplifier

Blog

harryking.me

harryking.meRSS feed ↗20 posts

Latest posts

FreeBSD Development Environment, Custom Kernel Build

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.

Exploring the PHP FFI

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.

Browser Minesweeper Clone

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.

Exploring KLM APIs: Tracking Flight Fares

Experimenting with some KLM APIs by building a small data collection tool which outputs a daily report tracking flight offers for some different destinations.

Encoding Programs in QR Codes

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)…

Colour Matcher Game for DOS

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…

IMSAI 8080 Replica Build & First Programs

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…

Electronic Business Card Puzzle

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.

Some Maze Algorithms

Experimenting with some maze generation and search algorithms. The small implementation is written in the browser in Javascript with visualisation on an HTML5 canvas.

A Simple Flappybird Clone

A barebones flappybird clone with JS/HTML5 canvas.

Gamifying Train Commutes

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.

Countdown Numbers Puzzle

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.

A Simple HTTP Proxy

A very simple proof-of-concept local HTTP proxy using Python’s builtin http.server module, and external requests library.

Predicting KFC Menu Prices

A small data exploration on #spreadsheetsaturday: looking at a model for predicting a KFC menu price given a group of different menu items.

Puzzle: Troll Passage

Exploring and generalising an optimisation puzzle using calculus.

Puzzle: The Wedding Ring

Looking at solving a combinatorics problem by enumerating all possibilities and analysing to make a generalised solution.

Computing π By Hand with a 1700 Year Old Algorithm

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.

The Maths of Liu Hui’s Pi Algorithm

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.

Visiting The Manchester Baby

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.

Z180 Retrocomputer: Booting

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.