``Computer Stuff''

I ran out of good naming schemes for stuff relating to computers that are cool to download and use that are not part of existing projects, so I'm just calling it ``Computer Stuff'' for now. Stuff that I have here are configuration files, and other miscellaneous projects that fit nowhere.

Files here tend to be processed with tar and bzip2, with the occasional zip.

Configuration Files

Here are some customisations that I have done for some of the tools that I use on a daily basis. The new URLs provided are canonical, but I will still retain the old ones from the past via the .htaccess file just for convenience.

Vim Configuration

Configuration files for Vim. Key features include:

Highly recommend using it with the following plugins (easy to install for Vim 8+ without additional plugin manager):

Download .vimrc (bzip2).
Updated at 2021-07-25T16:28:10+0800.

GNU Screen Configuration

I use GNU Screen as my terminal multiplexer when working on virtual machines and servers. This configuration file is merely to set up GNU Screen to use 256-colours in its terminal emulation.

Download .screenrc (bzip2).
Updated at 2016-03-05T03:28:10+0800.

Unclassified Projects

These are just stuff that I had done over time that are in a form that can be released. As a general rule of thumb, they are meant to be downloaded and run on the local machine, with a high chance of being unrunnable on a web browser. The usual disclaimer applies---bug fixes and other constructive comments are always welcome.

None of the projects here include anything from my work unless otherwise noted.

Small Chew

Small Chew was a quick-and-dirty summer project that I did in 2008 with the intention of implementing a really bare-bones stack machine that runs Forth. It was also an exercise in messing around with micro-architecture design, not to mention my first real use of Python to do anything; the coding style really stinks.

Since this is such a hack job, there is no proper interface to the compiler (technically a source translator to virtual machine)---details can be found in README. It was a really fun project though, and gave me some insight on how to design a simplistic stack machine.

And mess with Python.

Recently updated to work with Python 3, and fixed some weird memory bug that didn't show up before; not sure why about that bit.

Download Small Chew (tar+bzip2).
Updated at 2021-02-05T22:46:41+0800.

Extensible Buffer

This simple C/C++ package implements an extensible buffer which allows one to keep appending octet data to it without running into buffer overflow problems. It was created when implementing some application-level protocol for a server programming class specifically to deal with that buffer overflow attack.

Word to the wise: the code is stupid simple and relatively self-explanatory. Read e_buffer.h to get a sense of the data structure and the ``methods'' available to operate on the data structure.

There are better ways to do this, but this code is useful for when the larger libraries are not applicable for some reason.

Download Extensible Buffer (tar+bzip2).
Updated at 2016-03-05T03:28:10+0800.

Mini Hash

A simple implementation of a hash table in C/C++. Probably not useful now, but great for low-level C programming without access to the STL. Features include:

Like the Extensible Buffer, look for the header file (minihash.h) for details on how to use it.

Download Mini Hash (tar+bzip2).
Updated at 2016-03-05T03:28:10+0800.

Mini List

A simple implementation of lists in C/C++. Probably not useful now, but great for low-level C programming with access to the STL. Basically a head node singly-linked list.

Like the Mini Hash, look for the header file (minilist.h) for details on how to use it.

Download Mini List (tar+bzip2).
Updated at 2016-03-05T03:28:10+0800.

Adaptive Simpson's Rule

Numerical integration of a function through the use of an adaptive form of Simpson's Rule. ``Adaptive'' in the sense that the number of sample intervals are controlled using the error estimate for that interval as the main interval for the integration is recursively carved up.

Written in Python.

Download Adaptive Simpson's Rule (tar+bzip2).
Updated at 2016-03-05T03:28:10+0800.

Notation for Exotic Pitched Events

As part of my final project for Introduction to Computer Music in Spring 2009, I wrote a tuning layer that sits between the user program and the underlying Nyquist system.

I'm still maintaining this code, but there really hasn't been much that needs to be amended. Don't let the ``legacy'' prefix in the URLs below fool you---the legacy aspect comes only from the fact that I did not update the design of the help file to conform to what I am currently using.

Download Tuning Layer (zip); access help file.
Updated at 2016-01-19T22:22:15+0800.

Slim 8×8 Console Font

I created a slim 8×8 console font for use in pure consoles. This replaces the default 8×12 bitmap font and provides 50 lines of text in console mode.

Mostly useful for the ``raw'' VGA console in Linux machines.

Download Slim 8×8 (tar+bzip2).
Updated at 2016-03-05T03:28:10+0800.

Typewriter-like Line Printer Emulator (ASCII version)

This is a tool that takes in an ASCII text file and generates a passable PostScript file that emulates the output of a printer that was sent this file. This supports emulating overstriking of characters to as many depths as memory allows, as well as a ``typewriter'' mode where each character generated is jittered to simulate the imperfect register of the keys striking the typewriter ribbon.

The command line help is relatively extensive, but there is no interactive interface whatsoever---just pipe the ASCII text file in and redirect the output to a file for conversion from PostScript to some other format.

As noted in the README, you may need some tool to convert from PostScript to whatever format you want the file to be in.

This is the ASCII (or technically, Latin-1) version. I have a Unicode one also.

The source has been updated to work with Python 3 as Python 2 will no longer be supported beyond Jan 01, 2020.

Download LPR Emu (tar+bzip2).
Updated at 2020-10-16T20:36:21+0800.

Typewriter-like Line Printer Emulator (Unicode version)

Like the previous tool, this emulates a typewriter like printer. Unlike the previous tool, this supports the full Unicode range that GNU Unifont supports.

The tool works the same way as before, but requires a database of bitmaps for all Unicode characters to be generated from GNU Unifont. The README will have more information.

Download uLPR Emu (tar+bzip2).
Updated at 2020-10-16T20:36:21+0800.