These projects are quite rare for me in that they've reached some semblance of completion. I know, I know, ‘release early; release often’. But most of the time my projects don't even reach that pre-alpha stage before I get distracted by The Shiny. As you might expect then, these are all smallish and obscure.
Ένα καλύτερο ελληνικό πληκτρολόγιο για WindowsΔύστυχοι χρήστες Windows! Δεν φτάνει που υποφέρετε από κακοπροαίρετα προγράμματα κάθε είδους, δεν φτάνει που έχετε το πιο εκνευριστικό λειτουργικό σύστημα στην αγορά, έχετε και χάλια υποστήριξη για γλώσσες με «περίεργους» χαρακτήρες όπως τα ελληνικά. Αφού εμπεδώσαμε ωραία και καλά ότι χρήσιμα σημεία στίξης (όπως η άνω τελεία) είναι πολύ δύσκολα αν δακτυλογραφηθούν στα Windows, μόνο μία προφανής λύση υπάρχει: η αθάνατη ελληνική πατέντα. Και να η δική μου!
mcasm — A Microcode AssemblerThis is a simple microcode assembler (or microassembler). It can be used to generate wide, horizontal microcode ROMs for relatively simple CPU architectures. Using a description of the microcode, it generates one or more ROM, EPROM, EEPROM, Flash et cetera images suitable for inclusing in a software emulator, a hardware device, or for use in a hardware description language such as Verilog or VHDL.
ROMtools — Create ROM tables with PythonIf you’re building complex hardware devices like home-designed CPUs, this may come in handy! Prototyping home-designed CPUs isn’t an easy task at all. One might say designing one is difficult, but let’s assume you’ve already done that. State machines and function generation can be a nightmare to debug. Once you’ve found the bugs, actually fixing them may prove to be even more of a nightmare.
evrouter2The second version of evRouter is a modernised version, essentially rewritten from scratch. It aims to be equivalent to evrouter, but breaks compatibility in favour of a new approach of doing things. This is a project in its earliest stages. (and currently abandoned for lack of time)
Control Special Features of Logitech Mice with lmctlIn 2003, I was presented with a lovely Logitech optical mouse (an MX500). It had a wheel (not an ubiquitous feature then), no fewer than eight buttons, and an excellent 800 cpi resolution. And no Linux support for the buttons or resolution. Research uncovered the sage advice ‘you can't do anything about the extra buttons, live with it’. Hold my beer.
DungeonSpawnIn the process of making Python Bindings for DungeonMaker, I came across various shortcomings of the original code. There were behaviours I wanted to limit or inhibit, and various features were missing. I went about implementing some of these, and code started accumulating. I eventually made the decision to fork the original source tree, and thus was born DungeonSpawn: a version of DungeonMaker with extensions.
A C Library for the A* AlgorithmA lot of people out there are looking for implementations of the A* (a-star) algorithm for game writing, myself included. Eventually, I gave up trying to find one that fit the bill, and wrote one myself. My needs were complex (and I didn't want a C++ version), so I wrote this as generic as possible, and I'm releasing it for public consumption. Bon appetit!
RSAR: Rough Set-based Attribute ReductionRSAR treats datasets by removing attributes that are unnecessary for a classification task. It performs greedy feature selection using various versions of the QuickReduct algorithm. It is useful in reducing redundancies in nominally-valued (i.e. discrete) datasets for exploration or as a preprocessing step to training machine learning algorithms on the data.
ANSI2Img: Convert ANSI to BitmapsThis small Python program converts ANSI art to raster images. It simulates a PC's text mode using different VGA soft fonts (or EGA, or the CGA ROM font) and renders colourful BBS graphics, affectionately known as ANSI (after the ANSI.SYS MS-DOS driver that rendered them back in the day).
Acrobase BBS ClientΗ Acrobase οργανώνει περιστασιακές εικονικές συναντήσεις στην BBS (όχι στο web), για ιστορικούς και συναισθηματικούς λόγους, για να θυμούνται οι παλιοί και να μαθαίνουν οι καινούριοι. Το πρόβλημα με τη διαφορά μεταξύ παλιών και καινούριων είναι ότι οι πρώτοι δεν έχουν πρόχειρο modem, και οι καινούριοι δεν είναι 100% σίγουροι τι είναι modem. Αυτό το πρόγραμμα διευκολύνει τη σύνδεση στην Acrobase BBS και για τις δύο ομάδες.
DungeonMakerDungeonMaker makes complex random dungeons according to the designer's specifications. They can be as random or as deterministic as you want. The complex, organic look of the generated dungeons comes from the use of Artificial Life techniques: tunnels and walls are built by a-life creatures moving around the map. This is a modernised build of the library, packaged for modern distributions of modern operating systems.
Extension:EmbargoThis is a MediaWiki extension to show certain content within a specified date/time range, before a given date/time, or after a given date/time. It's useful in hiding content for planned work, announcements, et cetera. People who use their MediaWikis as simple Content Management Systems or personal sites may find this useful.
RGA: The Roguelike Graphics AdapterThis is a branch of the X11 terminal emulator
unicode-rxvt(itself a branch of the
rxvtterminal) with several modifications to make it more useful for Roguelike development, as well as BBSing. It has 512 user-defined colours, uses Unicode fonts, can report all keyboard and mouse events (not just characters pressed), and is still a full-fledged terminal emulator.
evrouterFor a few years, back in simpler times, I used Jon Atkins’ imwheel to get X11 to understand the many buttons on my old Primax mouse. Traditionally, X11 only allowed for up to six buttons, and mine had eight (two were used for wheel events, as always). Imwheel allowed me to translate the buttons X11 didn’t know about to key events (but not before I hacked it a bit).
KareltimaKareltima is a small series of smaller roguelike games of no small inanity. Set in a supposedly mystical world, where Gandalf the Grey is in the fake ID business, pub landlords know their calculus, malacks roam the towns (beware!), and bored priests are, well, very bored. There are also inexplicably singing rings and mutant sjutvynheims, whatever those might be.
Convert TTY Encodings with ttyconvThis is a convenient little hack based on GNU iconv. Unlike that utility, which converts files, TTYConv converts interactive sessions, performing lenient and error-recovering two-way conversion and taking care of other issues with interactive sessions.
The Machine RoomThe Machine Room was the Old Computer Database: my retrocomputing site and one of the first retrocomputing sites of the then nascent World Wide Web, back in 1994. By the end of its life in 2005, it had amassed hundreds of (book) pages of information on over a thousand old computers.
Project MegistosText coming Real Soon Now: a five-year project from the depths of the Nineties to produce BBSing software for Linux. Megistos is an open source, freeware alternative to The Major BBS with a ton of extra features, and made with non-English languages in mind. It was so successful some people failed to realise they weren't still on the Major BBS when Acrobase switched over.
That One Time…
That one time back in the 80s I took part in a game writing competition with my Oric Atmos and won a magazine subscription. The stylish layout and artwork is from the magazine, obviously.