Projects
My software projects
My private, I repeat, 'private' open-source and freeware software projects. Of course have done many more things in my professional life.
During the last 25 years I've developed a range of larger and smaller tools and applications and libraries as freeware or open-source in my spare time which I'd like to list here. Some of the things are still being developed or maintained (top), some not (below):
Programming languages/Compilers
Clamiga - Common Lisp implementation for the Amiga (C, Common Lisp, hot)
GitHub projectA bytecode-compiled Common Lisp environment for classic Amigas (68020+), MorphOS and AmigaOS 4. It aims at ANSI compatibility with a small footprint, so it runs on a 14 MHz 68020 with 4 MB RAM. It comes with native GUI bindings (Intuition, Graphics, GadTools), threads, a FFI, ASDF and Quicklisp support. It also builds and runs on modern POSIX hosts.
I wrote a blog entry about it.ACE-Basic - BASIC compiler for the Amiga (K&R C, m68k Assembler, hot)
GitHub projectACE compiles BASIC source code to native Amiga executables by generating 68000/68020 assembler code. It has an object system with classes and methods, IEEE 754 floating point support and deep Amiga OS integration: GUI (MUI, GadTools, Intuition), networking (HTTP/HTTPS clients), graphics, file operations and audio.
Libraries/Frameworks
- Chipi - (House) Automation Bus (Common Lisp, hot)
GitHub project
This project is based on Sento. Uses CLOG UI framework with Bootstrap 5 for responsiveness.
knx-conn - KNX building automation connectivity library (Common Lisp, hot)
GitHub projectConnects to KNX gateways via KNXnet/IP tunnel connections. It can listen for bus events, read values and write to group addresses. It implements a range of data point types (DPTs) and offers both an asynchronous and a blocking API. Used by Chipi.
Sento - Actor framework (Common Lisp, hot)
GitHub project
Applications
Clamacs - Emacs-flavoured Common Lisp IDE for AmigaOS 3 and MorphOS (C, Common Lisp, ARexx, MUI, hot)
GitHub projectA native MUI editor with Emacs-style key bindings that talks to a Clamiga runtime. It has a REPL window, compiles and evaluates code, does syntax highlighting, code introspection (argument lists, completion, jump to definition) and interactive debugging.
Eloquent - Bible study tool (macOS, Objective-C/Swift, Cocoa, maintained)
GitHub project
Web applications
Personal blog web page (Common Lisp, maintained)
I did a blog entry capturing the development of this using TDD/ATDD: GitHub project, Blog pageThe previous version developed with Apache Wicket was using a database and had an administration area. The new 'retro' version is more simple and based on conventions.
House automation data capture (Elixir)
Custom web application done in Elixir that can capture my house reader states and post them to openHAB:I also did a blog entry capturing the development of this using TDD:
GitHub project
Tools
- LFE (Lisp Flavoured Erlang) language server protocol (LSP) implementation
GitHub project
Other utilities, Emacs plugins, etc.
emacs-bloopunit - Emacs plugin for testing Scala code using Bloop (Emacs Lisp)
GitHub projectemacs-ocamlunit - Emacs plugin for testing OCaml code (Emacs Lisp)
GitHub projectemacs-lfeunit - Emacs plugin for testing LFE code (Emacs Lisp)
GitHub projectemacs-tcr-mode - Emacs plugin for Test && Commit || Revert (Emacs Lisp)
GitHub projectObjCSword - Objective-C Sword wrapper library (Objective-C, Sword). Used in Eloquent.
GitHub project
Older, unmaintained projects
iKnow & Manage - data storage application (macOS, Objective-C, Cocoa, development ceased)
GitHub projectFooLogger - Objective-C logging library (Objective-C)
GitHub projectCocoPCRE - Objective-C regular expression wrapper library (Objective-C)
GitHub projectfp-lib-m68k - m68k Assembler floating point library (Assembler)
GitHub projectSwiftLog - Swift logging library (Swift)
GitHub projectSqlite Query - Sqlite database query tool (Mac OS X, Objective-C, Cocoa, development ceased)
Edit and maintain existing databases or create new ones using this tool. SqliteQuery comes with the compiled SQLite database library builtin.
It can also execute single or batch SQL statements. The result of SELECT statements is conveniently displayed in a tableview.
The SqliteQuery user-interface is separated in four parts.- setting the database path (defining a not existing path will create a new database - you will actually be asked before creating it
- input of SQL statements
- showing result of SELECT statements in a tableview
- showing a log output
- Cocser - Cocoa servers management tool (macOS, Objective-C, Cocoa)
Cocser is a command starter tool. Some software requires being started/stopped from command line or shell. Cocser can do this for you with the click of a button. You just have to configure it with the start and stop commands. It will display the program standard output conveniently in the window.
It's also possible to start programs with superuser rights.
Sysdiag - RAM testing and system diagnose tool (Amiga, C)
Sysdiag can show information about your memory and hardware of your Amiga.
For memory testing it uses algorithms like:- custom address test
- own address test
- walking ones test
- moving inv (8bit) test
- moving inv (32 bit) test
- modulo x (8 bit) test
- modulo x (32 bit) test
- bit fading test
Start Amiga without Startup-Sequence and execute from Amiga Shell to test as much memory as possible.
Some of the tests are executed twice (memory cache enabled and disabled). The bit fading test can take much longer. It tests if the memory is refreshed and if the bits are stable.
Available on Aminet.