I don’t have much to say. Here is where I don’t say it.
DO52 Pro
I recently got a new keyboard off AliExpress, and been very happy with it! It is sold under the name DO52 Pro. The whole thing cost me only about £90 (about £40 for the keyboard, £20 for the keycaps, £20 for the switches, £5 for the hot-swap sockets and £5 for the batteries). Given it has a trackpoint, I think this is very good value for a mechanical keyboard.
By Kovacsics Robert
read moreInteractive Bootstraps
One of the things that helps1 my depression is having interesting projects to do. A long running one for me is bootstrapping a high level language with the maximum interactivity, rather than with some opaque binary blob.
The original inspiration came from the GNU Mes (Maxwell’s Equations for Software), but there are numerous other sources of inspiration, some I have probably forgotten.
Initially I started with a small stack based VM which uses printable ASCII characters as instructions, so could be typed, but quickly came across JONESFORTH, which at the same time is both a nice introduction to assembly programming, and an introduction to Forth, a language only slightly less minimal than my stack based printable ASCII interpreter, but is much more powerful.
By Kovacsics Robert
read moreTooltracker
One very common way of tracking tools that I have now seen at several companies is a spreadsheet, or equivalent chat/channel, where when you borrow a piece of equipment, you are meant to update the tracking spreadsheet.
The problem with this is that this is easiest to do on your desktop, but when you sit down at your desktop your mind goes to using the tool you borrowed, and forget to update. Or you are borrowing it to go to somewhere else, so you can’t update it until you come back, again leaving a lot of scope for forgetting.
By Kovacsics Robert
read moreWooden Stenoboard
Having access to a laser cutter can be very useful – while I was at the computer lab I had access to one and used it to make a keyboard suited for my fingers.
Conclusion: the natural resting position for fingers didn’t take into account the differences in reach/the awkwardness of pinky bottom/ring finger top row, especially since on my right hand the pinky and ring fingers are connected.
The firmware is available on my fork of qmk_firmware, branch kovirobi-steno-updated.
By Kovacsics Robert
read moreSteampunk Stentura 200 SRT
I had the fortune of snagging a cheap Stentura 200 SRT from eBay. I did end up using it for a while, even wrote my CompSci bachelors dissertation (both the software and the write-up) using it.
Later, I modified it to make it look more steam punk: put leather imitation key covers, repainted it; and I also replaced the internals with a Raspberry Pi (model 3B I think) to make it be more like a laptop and not require a serial port.
By Kovacsics Robert
read moreBachelor's Dissertation
For my undergraduate degree I wrote a Scheme to Java byte-code compiler, which was pretty fun. The dissertation is available on GitHub and the compiler is in the same repo
It wasn’t terribly fast, but it did work, including first-class continuations (probably the biggest reason for the slowness is the stack representation).
By Kovacsics Robert
read moreFoundations of Computer Science
This is my Foundations of Computer Science course supervision notes.
Supervision 1 questions only, questions and answers;
Supervision 2 questions only, questions and answers;
Supervision 3 questions only, questions and answers.
By Kovacsics Robert
read moreRegister machine visualiser & emulator
This is a visualiser and evaluator for register machines (the theoretical kind, not a specific CPU). The model is the Lambek/Minsky register machine from 1961 with increment and decrement-with-test instructions.
The example is the same as on slide 30 of the Cambridge Computer Science course, Computation Theory lecture notes.
By Kovacsics Robert
read moreLambda-Calculus Evaluator
Type an expression into the following text area (using the fn x => body
syntax), click parse, then click on applications to evaluate them. Also have a
look at the examples section below, where you can
click on an application to reduce it (e.g. click on pow 2 3
to get 3 2
,
then fn x => 2 (2 (2 x))
).
This is ported from my original one at my alma mater webpage, somewhat updated with better diagrams and more modern code.
By Kovacsics Robert
read more