The Slang Programming Language (Github)
An object orientated scripting language with a static type system.
This is my love child in which I have already invested a lot of time and sweat. It is more of a concept than a real world
language because there are still a lot of issues to cope with (inferior performance compared to major languages and the
occational bugs here and there), but it resembles what I initally wanted to create.
I love the power of native languages like C++ (especially since newer standards cleaned up the language a lot) but I honor what
Java and its ecosystem has brought to the world of software development even though it was still in its infancy when I first got
in contact with it. Slang visually resembles Java but with some additional features borrowed from C++ that, in my mind, would
make a perfect language out of it like operator overloading, RAII and the magic 'const' word. In Slang you can const everything.
Methods, parameters, locals, return values and even classes (which I call objects; I don't get the classes thing that every OO
language does. Since we are object oriented, shouldn't we be oriented to objects instead of classes..?).
Since Slang isn't that fast - a problem that many interpreted languages share - I implemented an extension system to be able to
extend the language with new features and to enhance the performance of specific tasks.
extensions A collection of extensions which were originally included in
the main project featuring access to System V message queues, pipes, a JSON serializer and extensions for HTTP servers to be
able to access GET and POST data.
extBase64 Base64 encoding/decoding for Slang
extCurl Create cURL requests from Slang
extJson JSON serializer
extMariaDB Connect to a MariaDB database
extMySQL Connect to a MySQL database
extSQLite3 Connect to a SQLite3 database file
As a second option to extend the functionality of Slang I implemented a package manager (slang-pkg) that is able to download
modules from a central repository (stable) and has some knowledge about module
versions.
System Library The Slang standard
library
MysqlObject MySQL entity
serializer
libBehaviourTree Behaviour tree
module
libCSVReader CSV reader module
And there's of course a debugger (slang-dbg) to do some basic debugging of Slang scripts. It's able to create breakpoints, add
watches, show the source code of the currently debugged files and store and reload debugging sessions, so that one doesn't have
to add breakpoints and watches again and again.
CryptoFox
Trade your cryptos with a bot that supports multiple trading strategies.
Some time ago, some friends tried to convince me to start trading crypto coins. But since I am not really interested in trading,
I found a way to combine their trading affinity with my technical affinity and skills. That's why I wrote 'CryptoFox' as an
automated trading tool.
At the moment, only Bitpanda Pro and my own
BitBroker are supported, but I will gradually add more supported exchanges to the system.
I did some research and found out that the most common bots in the wild use DCA (Dollar Cost Average) and grid strategies, and
after figuring out what exactly that is, I think my versions of it are at least on par with the implementations of the most
popular commercial projects.
Currently you can use it for free, but maybe sometime in the future I'll start charging for it.
BitBroker
(Github)
A demo crypto broker implemented in Slang.
As I'm now into cryptos (I guess this phase will pass as soon as I loose my first coins), I wanted to understand the concept of
a broker more deeply, and what could be better to understand something then to implement it once self. There is no GUI for this
broker since this was not one of the goals of this effort - as you clearly can see from my other projects I'm not into that
visual stuff - but it features a simple but powerful API to query and create orders and trades.
Although I wrote this within one afternoon, I expect the project to slowly grow over the next few months. Let's see what will
come out in the end.
MovieBase (Github)
A frontend to access and organize the movies and series stored on my NAS, written in Slang.
It works a lot like all the other media libraries you find out there. The backend mostly consists of a (MariaDB) database and
some scripts to read in supported media files from disk and create thumbnails for them in customizeable sizes. The frontend
displays these thumbnails in a grid spread over multiple pages - I think you can imagine how this looks like. You're able to add
tags and a brief description to all movies/items and it's also possible to add actors to them, for whom you can also add tags
and a short text. If you want you can add movies/items to collections which themself can also be tagged. Currently it's not
automatically possible to arrange episodes in seasons but this can be done by adding them manually to collections.
If you're interested in the source code, just contact me. As many other of my projects the backend is written in Slang but
could easily be ported over to PHP or any other language.
SSPhtml
(Github)
A static html page framework, which has been used to create this site.
spa.js
(Github)
A single page application Javascript framework, which is the base for my Cryptofox project.
SQLMurder
Play detective by solving a crime through SQL queries.
This is a single page web application in which you can query a SQLite3 database to find out who the murderer is. As soon as you
enter the page a private copy of the template database is created, which is then used for your queries. Feel free to modify the
data, or do whatever you want to do with the database, since it will be deleted automatically if you reset your session.
The actual data has been copied from knight lab (https://mystery.knightlab.com/) as it originally was only intended as a test
for my Slang SQLite3 extension. Thank you knight lab for doing such a cool thing!
Pascal (Github)
A Pascal interpreter and debugger completely written in Slang. Running very slowly because it is interpreting inside of an
interpreted language... considering that, it has quite good startup times.
Basic (Github)
A Basic interpreter and debugger completely written in Slang.
Parking TicketSharing (not maintained anymore) A project I designed and developed together with a good friend of mine. We
found out that many people throw away their parking tickets even though they are still valid, so we created a small platform
where people can post their tickets for others to use. This project is also the base for my single page web framework. Feel free
to use it.
Rezepte Kiste (not maintained anymore) A small recipe page for my ex-girlfriend. Sadly she never used it. Fun fact: this
is the base for my MovieBase project which I use almost on a daily base.
Sudoku Solver This was not done by me, I just wanted to have
a Sudoku solver next to hand, as I always forget where to find it.