30. July 2017

Improvised Remote Control

One negative thing about Sweden is that one is not allowed to have a TV receiver (of any kind, and especially not broken one) without paying a special fee of around €245 per year. An alternative that enables playing couch co-op in the living room is to get a projector or large display that lacks a TV tuner/decoder.

We recently got such a display from Philips and found that the speakers are not quite powerful enough for a living room. So we connected it to a (somewhat retro) Philips AS9400/00 midisystem. The only problem was that the remote control has gone missing. So it was time to improvise.


08. April 2017

Linting Scheme with r6lint

I find it useful while working in Python, JavaScript or C to have Emacs show me the location of code errors. For Python there is Pylint and for JavaScript one can use JSHint and a few others. And of course with C there was the original lint, but today the compilers themselves generate quite good warnings. These linters are easily integrated with Emacs via Flycheck, which highlights errors in the code. Finding that they produce too many errors when fed Scheme code, I decided to make my own linter, r6lint.


29. January 2017

Structure of the ARM A64 instruction set

Earlier this year I bought a Raspberry Pi 3 to have as an AArch64 development machine. The fastest way to get familiar with an instruction set is to write a disassembler for it and I’ve made one for 64-bit ARM in R6RS Scheme as part of the machine-code project. The instruction set is called ARM A64, instructions are always 32 bits wide and they have a neat structure which is pretty fast to decode in software.


14. January 2017

Splitting Industria

Recently a friend lent me the book Start With Why by Simon Sinek. It made a lot of sense to me and made me look at my own projects in a new light. The Industria libraries is a set of libraries for R6RS Scheme that do, well, quite a few different things. There’s cryptography, compression, a few network protocols, various things, but also an assembler and a few disassemblers. It has many things, but it doesn’t truly have a “why”.