fi-le's files

Programming

Programming, the craft of the 21st century. It's really fun because you can make things that actually work relatively quickly. I mean, have you tried teaching yourself carpenting off the Internet? You'll be severely injured in no time at all, would be my guess. So anyways, below is my track record from new to old.

A Vaporwave Aestetics-stlye Landing Page

Have you ever wanted to link to this website, but it just wasn't confusing and disorienting enough for the recipient? Here you go! It's a cool flickering landing page that vaguely looks like an old operating system? Maybe? Anyhow, if you can figure out how to get back to this page, you win!

キュン・The worst text editor yet!

(So first of, I'm sorry.) Kyun iws a text editor fow writing cutesy uwu-style text!!? owo *notices that this was an awful idea*

But it was a very educational experience for me. I followed a guide for making a text editor in Rust, a really really good one at that, namely this one by Phillip Flenker and ported it to be cross-platform. Well, and obviously some other modifications... You know, text editors are really complicated it turns out! Good thing I'm not an actual software engineer.

The highlights of the project were understanding the architecture of the program, which I don't often do as I work alone, coming up with schenanigans to put in and making the ASCII art. OK you got me, it's Unicode art.

In the future it might be cool to turn it into something like an unofficial "IDE" for the UwU++ programming language. It's on my list for sure, that would be hilarious!


Cybermal 4000

The Cybermal 4000 is a fun tool you can use to draw images. You can find it here.

You can select from a few drawing agents, watch the drawing unfold before your eyes and download the result. Complains a lot less than a real artist!

It uses the javascript image processing library MarvinJS.


Byelinear

Byelinear is a little Firefox extention that makes your browser render low resolution images and videos more pixely and less blurry.

The idea is that a lot of the buttery slush that comes out of bilinear scaling is actually not more pleasant to look at than the pixel stuff itself. So this tells the browser to not do that and just use faster, easier upscaling like the nearest neighbor algorithm.

You can download it here. If you want a version for a different browser, I can try. It's not going to be straightforward to port though, because every browser handles it differently in very confusing ways.


rotate PDF

This one is a video game! You can play it here or read the pitch document first.

It was made in Godot engine with its native scripting language, GDscript. I can definitely recommend it as the instancing system feels very natural. Other attempt in Löve, Unity,... did not work as well.


Simuwaerm

I made a simple heat simulation in Rust. It's quite a bit of fun!

It was originally intended for a thing in university about Fourier series. (Attentive mathematicians may guess correctly that the simulation itself does not use Fourier series to compute anything. The non-numeric modeling of 2D heat flow is best done with Fourier series though.) That is also why it was originally in German, but after a little translation and cleaning up it's now open source and also in English!

If you, dear reader, want to get hot and bothered, too, why not grab the zip with binaries for UNIX and Windows? Getting cold and not bothered at all is an option as well.


Kakikun

I tried making a painting application for the terminal! It's written in Rust and cross-platform (in theory, at least), so it's a great learning experience for me. Have a look:

If you ask me, it turned out pretty good until now, taking into account that I'd never done anything like that. It's also open source!


Jisho Pitcher

Jisho Pitcher is a program that adds Japanese pitch accent to Jisho.org, a widely known dictionary site. The extension actually pretty popular, I have 2000+ active users on Chrome, 500+ daily users with Firefox and 1200+ total downloads on Opera. Who knew so many people were interested in pitch accent?

Many thanks to the Wadoku Dictionary and the kanjium dataset for letting me use their cool datasets :^). Danke, Herr Latka!

And here is an article that mentions it - I'll put that one on my CV for sure...

You can download it for Firefox, Chrome-like, Opera and, whyever that might be relevant for you, Edge.


Tic Tactics

Have you ever thought to yourself:

Oh Dear, I wish 'Tic Tac Toe' was larger... I just don't have any space to develop my pieces in this...

Well another problem striked from the records I suppose! Introducing Tic Tactics:

screenshot

With this badboy you can play nine by nine 'Tic Tac Toe'! The implementation is at the cutting edge of 2013's Python tutorials, so be sure to download the zip file to see what all the fuss is about. Unzip, install Python 3 as well as Pygame and enjoy!

The story behind this one is just as whimsical as the implementation, since I cannot find the rules of this anywhere online, they were passed down to me vía word of mouth. I'll try to sum them up here:

The field is partitioned into nine 3x3 fields, which each function like a regular Tic Tac Toe game. Player Red starts placing a cross in the middle one. The subsequent fields to be played in are decided by the previous turn. If, within last turn's 3x3 field, the mark was placed on the top right, this turn's 3x3 will be the top right one. If instead it was placed on the bottom left in the 3x3 board of the last turn, this turn will be played on the bottom left 3x3 board and so on. In other words, last turn's mark in the small 3x3 determines which of the nine 3x3's will be played on next. Since this might be confusing, I indicated the next legal 3x3 with a little arrow in the pending player's color. The 3x3 ones can be won like regular Tic Tac Toe and the whole 9x9 is won by making a line out of won 3x3 fields. If you like, you can have the house rule that whoever wins most 3x3s wins, also.

Since there are rare situations in which no legal move is possible, I decided to call this a stalemate and not implement it. :^)

EDIT: Thanks to Reddit user /u/seamsay I now know that this game is a known thing! It's called Ultimate Tic-Tac-Toe.