xarantolus

Hi, I'm Philipp.

I'm currently studying computer science at the Technical University of Munich.

Things I'm interested in:

You'll notice that my projects are mostly in these areas.

If you just want to see code, visit my GitHub profile. Sometimes I also post technical stuff on my blog or StackOverflow. You can also find me on LinkedIn.


Projects

2020 - ongoing

Music Server

sensibleHub is a self-hosted music management server.

It allows managing your music collection from any device and syncing using external programs. That way, you'll always have the latest files on all your devices.

The server backend is written in Go, the front-end uses normal JavaScript and is mostly styled using the Bulma CSS framework. The server provides live updates via WebSockets, so any changes will show up on all connected clients as soon as they happen.

There's also a provided Docker container hosted on GitHub Packages for easier deployment. An automated GitHub Actions workflow builds and deploys these images for the popular x86-64, ARMv7 and ARM64 architectures.

GitHub repository
sensibleHub project image showing the screen where you can edit a song

Screenshot of the song edit page in light and dark mode


2021 - ongoing

Space News App

Rock It! is an app that helps you stay informed on all things space.

This app shows the latest rocket launches, events and space news curated by the Space Devs . It also switches between light and dark mode.

The app is written in Dart and uses the Flutter framework. This makes it possible to build a web version too; however it's not as good as the Android version. For this project I also created an interesting loading animation using Rive.

GitHub repository Web version
rockit project image showing a list of rocket launches

Screenshot of the launch listing page in dark mode


2017 - 2022, occasional updates

Web Archive Server

Collect is a self-hosted web archive.

Your personal web archive that supports downloading normal websites and videos. When a webpage goes offline or is deleted, you can still view it.

The server backend is written in TypeScript and runs using Node.JS, the front-end is a single-page application written in vanilla JavaScript. It is styled using the UIkit CSS framework. The server provides live updates via WebSockets, which means that any change will be propagated to all connected clients.

GitHub repository
Collect project image showing the main archive listing page

Screenshot of the main archive listing page


2021 - ongoing

Note Taking App

Notality is a note taking app for Android.

It's a quite basic note taking app that allows you to create, edit and delete notes. It switches to light or dark mode depending on the system settings and is localized for English and German.

The app is written in Dart and uses the Flutter framework. One could build it for iOS from the same source code, but I haven't done that.

GitHub repository
notality project image showing a list of note cards

Screenshot of the note listing page in dark mode


2021 - ongoing

Android Customizations

backtap makes your phone's fingerprint sensor more useful.

The Magisk module starts a custom program when booting an Android device. This program listens for taps on the fingerprint sensor and converts them to clicks on a specific region of the screen.

To write signals to the screen, I needed to know how the Linux multitouch protocol works. I also wrote a blog post with my findings.

GitHub repository Read the blog post

2020 - ongoing

Adblock Filter Lists

filtrite is a fully automated AdBlock filter list generator for Bromite.

The browser Bromite for Android allows custom AdBlock rules in a specific format. This program generates this type of file from an input of online blocklists. It is possible to find other filters from forks of the repository above using a search tool I built with VueJS.

In order to keep the generator up to date, I needed to compile parts of the Chromium project. This now happens every week on GitHub Actions in the fully automated subresource_filter_tools repository.

GitHub repository

2022 - ongoing

GitHub Release Stats

Get a quick overview on your GitHub release statistics.

This page shows statistics for your releases of GitHub repositories. There's also a summary for all releases.

It is written with VueJS and TypeScript, for styling I used the Bulma CSS framework.

GitHub repository Website
Screenshot showing statistics for one of my repositories

Screenshot of the statistics page


2021 - ongoing

JSON Extraction

Web scraping tools often break because they depend on the structure of scraped pages, which can easily be changed to counteract scrapers. Some (mostly modern) pages contain JSON blobs in their source code, which makes it possible to extract this data from them. However, most methods of extracting these blobs are prone to errors. This is why, as outlined in my blog post, scraping tools must not depend on the structure of the pages or JSON data, but instead use more declarative approaches.

This is a library for Go and there's also a command-line program you can try out, but the concept is more general and can be implemented in any language.

GitHub repository Read the blog post Downloads
$ jsonx "https://www.youtube.com/watch?v=-Oox2w5sMcA" videoId title channelId | jq
{
	"videoId": "-Oox2w5sMcA",
	"title": "Starship Animation",
	"lengthSeconds": "310",
	"channelId": "UCtI0Hodo5o5dUb67FeUjDeA",
	"isOwnerViewing": false,
	"shortDescription": "",
	"isCrawlable": true,
	"thumbnail": {
	"thumbnails": [
		{
			"url": "https://i.ytimg.com/vi/-Oox2w5sMcA/hqdefault.jpg",
			"width": 168,
			"height": 94
		}
		...
	],
	"allowRatings": true,
	"viewCount": "1421951",
	"author": "SpaceX",
	"isPrivate": false,
	"isUnpluggedCorpus": false,
	"isLiveContent": false
}

2018 - 2020

RC Rover

gover is a remote-controlled rover powered by a Raspberry Pi.

This Raspberry Pi powered rover can be controlled either via a keyboard, an Xbox controller or simply by tilting a phone. It avoids frontal collisions using the ultrasonic sensor.

I learned a lot about electronics, e.g. how to solder or wire stuff to the motor controller board. And writing software that actually affects the real world is really cool.

GitHub repository
A photo of my rover

A photo of the rover


2020

Sorting Images

ImageSort is a desktop application for sorting images faster.

The program makes it easy to sort a large number of images and copy them wherever you want. It also allows you to rotate and thus fix images with incorrect orientation.
This WPF application is written in C# and runs on Windows.

GitHub repository

2020 - 2021

File Server

upduck makes it easy to share files beyond your local network.

It allows instant and secure sharing of files from your network to anyone in the world. It accomplishes that by integrating the dynamic DNS service DuckDNS and the Let's Encrypt certificate authority, which means that others can connect to a custom domain via HTTPS connections.

GitHub repository

2021 - ongoing

VSCode Extension

Supporting increased productivity in MemeAssembly.

While more of a fun project, writing an extension taught me how to define syntax highlighting, snippets, hover cards, "jump to definition" providers and other developer productivity features in a single extension.

GitHub repository VS Marketplace
An animation showing how I programmed a small program in MemeAssembly

Using the extension to write a simple alphabet program


2021 - ongoing

Starship Twitter Bot

wenhopbot is a Twitter bot for Starship news.

This Twitter bot uses different methods to find tweets, news and other information about the SpaceX Starship. Additionally, it watches tweets around the launch and build site locations that are tagged with a location.

GitHub repository Twitter profile

2021 - ongoing

Politics Twitter Bot

poliwiki highlights edits made to wiki articles about politicians.

The bot posts screenshots of interesting edits to Wikipedia articles of German politicians. It does this by watching a stream of all changes and filtering accordingly.

GitHub repository Twitter profile

2021 - ongoing

Firefox Customizations

userchrome.css enhances the Firefox user interface.

Firefox lets the user customize its user interface. That way, I could fix small annoyances and implement a few animations along the way.

GitHub repository
A video showing how the tab switch looks like in action

The tab switch animation

A video showing how URL bar buttons only show when hovered

The search bar buttons are only displayed when hovering


2021 - ongoing

Brainfuck Interpreter

abf is a brainfuck interpreter written in x86-64 Assembly

This Brainfuck interpreter is written in Assembly. The part for reading input files, parsing command-line arguments etc. is written in C.

GitHub repository

2021 - ongoing

F-Droid Repository

This repo allows you to install my apps and get update notifications.

This repository automatically stays up to date with all my app repositories and thus makes it easy to install my apps.

GitHub repository

Other Stuff

URL Redirects

Here are some easy to remember redirects:

Abbreviation Description
gh.010.one / x.010.one Two different links to my GitHub profile.
fh.010.one Video of the dual booster landing during the first flight of the Falcon Heavy rocket.
s.010.one Video of the Starship SN15 prototype landing during a test flight.
r.010.one A surprise video. You've probably seen this one before.