Compare commits
25 Commits
eab8b2145e
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 753605e6de | |||
| 4065334faa | |||
| 825b95009c | |||
| 8123cbaa4e | |||
| 8cea13919c | |||
| d8b4dd341a | |||
| a76d047b05 | |||
|
|
b2430c9b88 | ||
| 6b3fb8fd6d | |||
| ce4bc91c11 | |||
| 1c611472fc | |||
| e90b47bcbd | |||
| 04c16c1922 | |||
| be489325f3 | |||
| 509d6c54c5 | |||
|
|
be0c457bde | ||
|
|
e8061eb017 | ||
| d016c1e886 | |||
| fb7130e67a | |||
|
|
1f97b5df10 | ||
| 6c4b40fcfb | |||
| 4fff3a8938 | |||
| 114f89f49f | |||
|
|
3e0317723c | ||
|
|
8fafa39c88 |
110
README.md
110
README.md
@@ -4,66 +4,81 @@ A collection of random ideas
|
||||
## Programming Projects
|
||||
Name | Status | Blog Entries
|
||||
--- | --- | ---
|
||||
[Mathematical model for Factorio](./projects/mathematical-model-for-factorio.md) | - | -
|
||||
[PID in Rust](./projects/pid-in-rust.md) | - | -
|
||||
[Image Processing in Rust](./projects/image-processing-in-rust.md) | - | -
|
||||
[Custom Visualisations for Firefly III](./projects/custom-visualisations-for-firefly-iii.md) | - | -
|
||||
[Sans-IO Rust implementation of minecraft protocol](./projects/sans-io-rust-implementation-of-minecraft-protocol.md) | - | -
|
||||
[Custom Minecraft Proxy](./projects/custom-minecraft-proxy.md) | - | -
|
||||
[Signal Processing](./projects/signal-processing.md) | - | -
|
||||
[(Fast) Fourier Transform](./projects/fourier-transform.md) | - | -
|
||||
[Crystalline memory reclaimation](./projects/crystalline-memory-reclaimation.md) | - | -
|
||||
[Wait-Free memory allocator](./projects/wait-free-memory-allocator.md) | - | -
|
||||
[2D Fluid Sim](./projects/2d-fluid-sim.md) | - | -
|
||||
[Graph Layout Engine](./projects/graph-layout-engine.md) | - | -
|
||||
[Calorie Tracker](./projects/calorie-tracker.md) | - | -
|
||||
[Visualise minecraft items and their relations](./projects/minecraft-items.md) | - | -
|
||||
[Nomad Gitlab Runner](./projects/nomad-gitlab-runner.md) | - | -
|
||||
[EPaxos implementation](./projects/epaxos-implementation.md) | - | -
|
||||
[Postgres protocol implementation](./projects/postgres-protocol-implementation.md) | - | -
|
||||
[Rust crate to receive stream from OBS](./projects/rust-crate-to-receive-obs-stream.md) | - | -
|
||||
[Sensor Fusion](./projects/sensor-fusion.md) | - | -
|
||||
[E-Graph implementation](./projects/e-graph-implementation.md) | - | -
|
||||
[Memory SSA](./projects/memory-ssa.md) | - | -
|
||||
[Vault secret engine for ceph s3](./projects/vault-secret-engine-ceph-s3.md) | - | -
|
||||
[Vault secret engine for ceph users](./projects/vault-secret-engine-ceph-users.md) | - | -
|
||||
[Vault secret engine for gitlab tokens](./projects/vault-secret-engine-gitlab-tokens.md) | - | -
|
||||
[Wordle Solver](./projects/wordle-solver.md) | - | -
|
||||
[Rust crate for state machines](./projects/state-machine-crate.md) | - | -
|
||||
[Implement new werewolf bot](./projects/werewolf-bot.md) | - | -
|
||||
[Parse CS Demos](./projects/cs-demos.md) | - | -
|
||||
[Implement Jiffy Queue](./projects/jiffy-queue.md) | - | -
|
||||
[Implement Jiffy Skip List](./projects/jiffy-skip-list.md) | - | -
|
||||
[Implement WRLQueue](./projects/wrl-queue.md) | - | -
|
||||
[Implement Combine-and-Exchange locks](./projects/combine-exchange-locks.md) | - | -
|
||||
[Custom Rust async runtime](./projects/custom-rust-async-runtime.md) | - | -
|
||||
[Custom drone software](./projects/custom-drone-software.md) | - | -
|
||||
[Camera tracker](./projects/camera-tracker.md) | - | -
|
||||
[Custom Gitea Runner](./projects/custom-gitea-runners.md) | - | -
|
||||
[Auto-Scaling Gitea Runners](./projects/autoscaling-gitea-runners.md) | - | -
|
||||
[Custom SQL crate](./projects/custom-sql-crate.md) | - | -
|
||||
[Teamspeak Whitegirl Music](./projects/teamspeak-whitegirl-music.md) | - | -
|
||||
[Distributed Build System for Lean4](./projects/lean-distributed-builds.md) | - | -
|
||||
[Mathematical model for Factorio](./projects/software/mathematical-model-for-factorio.md) | - | -
|
||||
[PID in Rust](./projects/software/pid-in-rust.md) | - | -
|
||||
[Image Processing in Rust](./projects/software/image-processing-in-rust.md) | - | -
|
||||
[Custom Visualisations for Firefly III](./projects/software/custom-visualisations-for-firefly-iii.md) | - | -
|
||||
[Sans-IO Rust implementation of minecraft protocol](./projects/software/sans-io-rust-implementation-of-minecraft-protocol.md) | - | -
|
||||
[Custom Minecraft Proxy](./projects/software/custom-minecraft-proxy.md) | - | -
|
||||
[Signal Processing](./projects/software/signal-processing.md) | - | -
|
||||
[(Fast) Fourier Transform](./projects/software/fourier-transform.md) | - | -
|
||||
[Crystalline memory reclaimation](./projects/software/crystalline-memory-reclaimation.md) | - | -
|
||||
[Wait-Free memory allocator](./projects/software/wait-free-memory-allocator.md) | - | -
|
||||
[2D Fluid Sim](./projects/software/2d-fluid-sim.md) | - | -
|
||||
[Graph Layout Engine](./projects/software/graph-layout-engine.md) | - | -
|
||||
[Calorie Tracker](./projects/software/calorie-tracker.md) | - | -
|
||||
[Visualise minecraft items and their relations](./projects/software/minecraft-items.md) | - | -
|
||||
[Nomad Gitlab Runner](./projects/software/nomad-gitlab-runner.md) | - | -
|
||||
[EPaxos implementation](./projects/software/epaxos-implementation.md) | - | -
|
||||
[Postgres protocol implementation](./projects/software/postgres-protocol-implementation.md) | - | -
|
||||
[Rust crate to receive stream from OBS](./projects/software/rust-crate-to-receive-obs-stream.md) | - | -
|
||||
[Sensor Fusion](./projects/software/sensor-fusion.md) | - | -
|
||||
[E-Graph implementation](./projects/software/e-graph-implementation.md) | - | -
|
||||
[Memory SSA](./projects/software/memory-ssa.md) | - | -
|
||||
[Vault secret engine for ceph s3](./projects/software/vault-secret-engine-ceph-s3.md) | - | -
|
||||
[Vault secret engine for ceph users](./projects/software/vault-secret-engine-ceph-users.md) | - | -
|
||||
[Vault secret engine for gitlab tokens](./projects/software/vault-secret-engine-gitlab-tokens.md) | - | -
|
||||
[Wordle Solver](./projects/software/wordle-solver.md) | - | -
|
||||
[Rust crate for state machines](./projects/software/state-machine-crate.md) | - | -
|
||||
[Implement new werewolf bot](./projects/software/werewolf-bot.md) | - | -
|
||||
[Parse CS Demos](./projects/software/cs-demos.md) | - | -
|
||||
[Implement Jiffy Queue](./projects/software/jiffy-queue.md) | - | -
|
||||
[Implement Jiffy Skip List](./projects/software/jiffy-skip-list.md) | - | -
|
||||
[Implement WRLQueue](./projects/software/wrl-queue.md) | - | -
|
||||
[Implement Combine-and-Exchange locks](./projects/software/combine-exchange-locks.md) | - | -
|
||||
[Custom Rust async runtime](./projects/software/custom-rust-async-runtime.md) | - | -
|
||||
[Custom drone software](./projects/software/custom-drone-software.md) | - | -
|
||||
[Camera tracker](./projects/software/camera-tracker.md) | - | -
|
||||
[Custom Gitea Runner](./projects/software/custom-gitea-runners.md) | - | -
|
||||
[Auto-Scaling Gitea Runners](./projects/software/autoscaling-gitea-runners.md) | - | -
|
||||
[Custom SQL crate](./projects/software/custom-sql-crate.md) | - | -
|
||||
[Teamspeak Whitegirl Music](./projects/software/teamspeak-whitegirl-music.md) | - | -
|
||||
[Distributed Build System for Lean4](./projects/software/lean-distributed-builds.md) | - | -
|
||||
[Financial Tracker](./projects/software/financial-tracker.md) | - | -
|
||||
[IR for Factorio](./projects/software/ir-for-factorio.md) | - | -
|
||||
[CS Strats](./projects/software/cs-strats.md) | - | -
|
||||
[Custom WebRTC Viewer](./projects/software/custom-webrtc-viewer.md) | - | -
|
||||
|
||||
## Hardware Projects
|
||||
Name | Status | Blog Entries
|
||||
--- | --- | ---
|
||||
[Embedded Epyc Server](./projects/embedded-epyc-server.md) | - | -
|
||||
[25 Gb Networking](./projects/25gb-networking.md) | - | -
|
||||
[100 Gb Networking](./projects/100gb-networking.md) | - | -
|
||||
[Embedded Epyc Server](./projects/hardware/embedded-epyc-server.md) | - | -
|
||||
[25 Gb Networking](./projects/hardware/25gb-networking.md) | - | -
|
||||
[100 Gb Networking](./projects/hardware/100gb-networking.md) | - | -
|
||||
[Receipt Printer](./projects/hardware/receipt-printer.md) | - | -
|
||||
[RISC-V SBC/Board](./projects/hardware/risc-v-sbc.md) | - | -
|
||||
[Jammer](./projects/hardware/jammer.md) | - | -
|
||||
|
||||
## Infrastructure Projects
|
||||
Name | Status | Blog Entries
|
||||
--- | --- | ---
|
||||
[Container Registry Cache](./projects/infrastructure/container-registry-cache.md) | - | -
|
||||
[Experiment with CRIU](./projects/infrastructure/experiment-with-criu.md) | - | -
|
||||
[Try Authentik](./projects/infrastructure/try-authentik.md) | - | -
|
||||
[Try Authentik](./projects/infrastructure/try-authentik.md) | Done | -
|
||||
[Automate Authentik](./projects/infrastructure/automate-authentik.md) | - | -
|
||||
[Try wger](./projects/infrastructure/try-wger.md) | - | -
|
||||
[Try wger](./projects/infrastructure/try-wger.md) | Done | -
|
||||
[Automatic CI Runner Server Setup](./projects/infrastructure/automatic-ci-runner-server-setup.md) | - | -
|
||||
[Try firecracker](./projects/infrastructure/firecracker.md) | - | -
|
||||
[SSH Jump Host](./projects/infrastructure/ssh-jump-host.md) | - | -
|
||||
[Development VMs](./projects/infrastructure/development-vms.md) | - | -
|
||||
[Backup Emails](./projects/infrastructure/backup-emails.md) | - | -
|
||||
[Try sccache](./projects/infrastructure/sccache.md) | - | -
|
||||
[IPv4 for Streaming](./projects/infrastructure/ipv4-streaming.md) | - | -
|
||||
[Vault Agents](./projects/infrastructure/vault-agents.md) | - | -
|
||||
[VMs in Nomad](./projects/infrastructure/vms-in-nomad.md) | - | -
|
||||
[Try copyparty](./projects/infrastructure/try-copyparty.md) | - | -
|
||||
[mDNS](./projects/infrastructure/mdns.md) | - | -
|
||||
[TSDNS](./projects/infrastructure/tsdns.md) | - | -
|
||||
|
||||
## Theory Projects
|
||||
Name | Status | Blog Entries
|
||||
@@ -79,3 +94,8 @@ Name | Status | Blog Entries
|
||||
[Document Homelab](./projects/other/document-homelab.md) | - | -
|
||||
[Raspberry Pi for core-infra](./projects/other/raspberry-pi-core-infra.md) | - | -
|
||||
[Nomad Test Setup](./projects/other/nomad-test-setup.md) | - | -
|
||||
[Try NixOS](./projects/other/try-nixos.md) | - | -
|
||||
[Try Home-Manager](./projects/other/try-home-manager.md) | - | -
|
||||
[Create better monthly financial report](./projects/other/better-financial-report.md) | - | -
|
||||
[GPU over IP](./projects/other/gpu-over-ip.md) | - | -
|
||||
[Try Ryot.io](./projects/other/try-ryot.md) | - | -
|
||||
|
||||
2
projects/hardware/jammer.md
Normal file
2
projects/hardware/jammer.md
Normal file
@@ -0,0 +1,2 @@
|
||||
# Jammer
|
||||
A purely educational project to explore how jamming of certain frequencies works.
|
||||
2
projects/infrastructure/backup-emails.md
Normal file
2
projects/infrastructure/backup-emails.md
Normal file
@@ -0,0 +1,2 @@
|
||||
# Backup Emails
|
||||
I want to have my own read-only backup/proxy for emails.
|
||||
3
projects/infrastructure/development-vms.md
Normal file
3
projects/infrastructure/development-vms.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Development VMs
|
||||
I want to easily startup a VM with my development environment ready to go.
|
||||
To access it, one could hook into the SSH jump host.
|
||||
4
projects/infrastructure/ipv4-streaming.md
Normal file
4
projects/infrastructure/ipv4-streaming.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# IPv4 for Streaming
|
||||
I need to configure my streaming setup to allow for IPv4 usage as well.
|
||||
|
||||
This might be a bit more complicated, because I need to expose multiple ports to be forwarded by ipv-proxy
|
||||
3
projects/infrastructure/mdns.md
Normal file
3
projects/infrastructure/mdns.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# mDNS
|
||||
Look into mDNS for my local server setup stuff.
|
||||
Especially using it for handling the dynamic configuration of nomad, consul and vault servers in their respective clients.
|
||||
6
projects/infrastructure/sccache.md
Normal file
6
projects/infrastructure/sccache.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# Sccache
|
||||
I want to try out sccache for things like Rust compilation and for CI builds.
|
||||
I want to try both the basic caching and the distributed builds
|
||||
|
||||
## References
|
||||
* [Github Repo](https://github.com/mozilla/sccache)
|
||||
6
projects/infrastructure/ssh-jump-host.md
Normal file
6
projects/infrastructure/ssh-jump-host.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# SSH Jump Host
|
||||
I want to setup a simple SSH jump host, to allow for controlled SSH access from outside my home network
|
||||
|
||||
## References
|
||||
- [Forum post about setting one up](https://forum.turris.cz/t/ssh-jump-host-how-and-why/20445)
|
||||
- [Jump Host with Ansible](https://www.jeffgeerling.com/blog/2022/using-ansible-playbook-ssh-bastion-jump-host/)
|
||||
5
projects/infrastructure/try-copyparty.md
Normal file
5
projects/infrastructure/try-copyparty.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Try Copyparty
|
||||
This could be useful for simple filesharing related stuff, which does not happen often but when it does it is always annoying.
|
||||
|
||||
## References
|
||||
* [Github](https://github.com/9001/copyparty)
|
||||
2
projects/infrastructure/tsdns.md
Normal file
2
projects/infrastructure/tsdns.md
Normal file
@@ -0,0 +1,2 @@
|
||||
# TSDNS
|
||||
Setup TSDNS
|
||||
4
projects/infrastructure/vault-agents.md
Normal file
4
projects/infrastructure/vault-agents.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# Vault Agents
|
||||
I want to use vault agents on my bare metal server to manage most of my secrets that are required for other services (for example consul ACL tokens).
|
||||
The main open questions are around authenication and permissions, because I want to lock their permissions down as much as possible.
|
||||
I also want to set this up such that I can easily use this when I need to deploy new things that require secrets from vault.
|
||||
10
projects/infrastructure/vms-in-nomad.md
Normal file
10
projects/infrastructure/vms-in-nomad.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# VMs in Nomad
|
||||
I want to play around with the beta libvirt task driver for nomad to run some VMs.
|
||||
As a first proving ground for this, I would try to run the gitea runners in a VM, because that allows me to more easily configure them without actually giving them access to the underlying host machine.
|
||||
|
||||
The VMs could be built on top of alpine linux, as a very minimal distribution and only run docker.
|
||||
The built of them should be automated using something like packer, and we need to store them somewhere shared, like ceph/s3
|
||||
|
||||
## References
|
||||
- [Virt Dirver Docs](https://developer.hashicorp.com/nomad/plugins/drivers/virt)
|
||||
- [Virt Driver GitHub](https://github.com/hashicorp/nomad-driver-virt)
|
||||
19
projects/other/better-financial-report.md
Normal file
19
projects/other/better-financial-report.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# Better Financial Report
|
||||
|
||||
## Example to generate part of the sankey diagram
|
||||
`docker run -it -v $(pwd):/mnt/test nixos/nix bash /mnt/test/run.sh` with:
|
||||
`run.sh`:
|
||||
```
|
||||
set -e
|
||||
|
||||
nix-channel --update
|
||||
nix-env -i nodejs
|
||||
|
||||
|
||||
npx --yes firefly-iii-sankey -u https://firefly.lol3r.com -t {TOKEN} -f sankeymatic -p 2026-05 --with-accounts
|
||||
```
|
||||
|
||||
## References
|
||||
* [Firefly Email Summary](https://github.com/davidschlachter/firefly-iii-email-summary)
|
||||
* [Improved Firefly Email Summary](https://github.com/yemzikk/firefly-iii-email-summary)
|
||||
* [Generate Sankey from Firefly](https://github.com/barreeeiroo/Firefly-III-Sankey)
|
||||
3
projects/other/gpu-over-ip.md
Normal file
3
projects/other/gpu-over-ip.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# GPU over IP
|
||||
Some time ago I saw some prototypes for sharing a GPU over the network with other servers.
|
||||
Look into this a bit.
|
||||
@@ -1,3 +1,7 @@
|
||||
# Raspberry Pi for Core-Infra
|
||||
I am thinking about setting up a couple of raspberry pi nodes in my homelab to host some
|
||||
core infrastructure services, like DNS or PXE boot stuff (if I ever configure this).
|
||||
This could also run the SSH jump host
|
||||
|
||||
## References
|
||||
- [Compute Blade](https://computeblade.com/)
|
||||
|
||||
1
projects/other/try-home-manager.md
Normal file
1
projects/other/try-home-manager.md
Normal file
@@ -0,0 +1 @@
|
||||
# Try Home-Manager
|
||||
1
projects/other/try-nixos.md
Normal file
1
projects/other/try-nixos.md
Normal file
@@ -0,0 +1 @@
|
||||
# Try NixOS
|
||||
2
projects/other/try-ryot.md
Normal file
2
projects/other/try-ryot.md
Normal file
@@ -0,0 +1,2 @@
|
||||
# Try Ryot.io
|
||||
Ryot.io could be used as an alternative to wger
|
||||
@@ -4,3 +4,4 @@ I want to implement this as a Rust crate, with a safe interface that should basi
|
||||
|
||||
## References
|
||||
- [Paper](https://dl.acm.org/doi/full/10.1145/3658851)
|
||||
- [Previous attempt](https://github.com/Lol3rrr/angeldust)
|
||||
8
projects/software/cs-strats.md
Normal file
8
projects/software/cs-strats.md
Normal file
@@ -0,0 +1,8 @@
|
||||
# CS-Strats
|
||||
A website to create and share strats in counter strike and help coordinate them in the actual rounds.
|
||||
|
||||
## Usage / Purpose
|
||||
* Per Map Strats
|
||||
* Nade line-ups
|
||||
* Strats
|
||||
* Synchronize between users
|
||||
2
projects/software/custom-webrtc-viewer.md
Normal file
2
projects/software/custom-webrtc-viewer.md
Normal file
@@ -0,0 +1,2 @@
|
||||
# Custom WebRTC Viewer
|
||||
Instead of relying on electron and javascript
|
||||
45
projects/software/financial-tracker.md
Normal file
45
projects/software/financial-tracker.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# Financial Tracker
|
||||
Although I am currently using firefly-iii for keeping track of my finances, I still feel like it is lacking a bit.
|
||||
|
||||
## Issues with firefly-iii
|
||||
* Grouped transactions have to all be the same type
|
||||
* Annoying for breaking up my shopping when this includes pfand
|
||||
* Does not support sinking funds
|
||||
* Does not support tracking my investments (not even roughly)
|
||||
* I want to mark certain transfers as if they are actual withdrawals to not show up in my budget anymore as available
|
||||
|
||||
## Use Cases
|
||||
### Types of transactions
|
||||
* Transfer
|
||||
* Deposit
|
||||
* Withdrawal
|
||||
|
||||
### Sinking-Funds
|
||||
Potentially tied to bills and can be used to easily keep track of non monthly expenses.
|
||||
They should be tied to some account and then if you transfer money to said account, you can mark it as contributing to the sinking fund.
|
||||
|
||||
### Savings
|
||||
I want transfers into savings to be removed from my available cash for the month, but not count as expenses.
|
||||
They should also be counted in my budgets, so I can make a "fun" savings transaction.
|
||||
|
||||
### Bills
|
||||
Recurring expenses, basically
|
||||
|
||||
### Tags
|
||||
Can be attached to any kind of transaction, transactions can have multiple tags
|
||||
|
||||
### Categories
|
||||
Another way to group transactions, a transaction can only be in one category
|
||||
|
||||
### Budgets
|
||||
To plan out how much to spend on different things
|
||||
|
||||
### Grouped Transactions
|
||||
Group together multiple transactions, for example for groceries.
|
||||
Can mix and match withdrawals and deposits (for things like Pfand in germany)
|
||||
|
||||
### Quick Actions
|
||||
|
||||
### Investment Account Type
|
||||
|
||||
### OAuth for login
|
||||
3
projects/software/ir-for-factorio.md
Normal file
3
projects/software/ir-for-factorio.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# IR for Factorio
|
||||
I would like to have an intermediate representation for a factorio blueprint.
|
||||
This would need both a text based representation as well as a rust crate for parsing and handling this IR
|
||||
Reference in New Issue
Block a user