Danshu
Welcome to Danshu's corner on the Interweb!
This tiny website is my way of putting a flag on the internet. It has some links to the code I've written, a link to my blog (still working on actually writing said blog post), and my contact info.
About Me
I am a Computer Science graduate, a homelab enthusiast, a type theory enjoyer, and a cli tool writer.
Outside of programming, I enjoy reading Sci-Fi/Fantasy (currently reading Greek Fire, Poison Arrows & Scorpion Bombs: Biological and Chemical Warfare in the Ancient World by Adrienne Mayor) playing cricket, watching movies, and occasionally baking.
Projects
Here's some projects I've been spending time on:
-
TheSeptaTimes: Information about SEPTA trains, right in your terminal
This project was born because of my desire to not leave the terminal to check for the next train going home. It was originally written in Python but I've fallen for the rewrite it in rust meme. The rewrite has been thoroughly enjoyable, mostly because of the phenomenal first-party tooling provided by rust.
It can show the next trains going from one station to another, next arrivals at any given train station, and info on the current status of your train. I personally just use
tstto show the next two trains home on my status bar.Most of the commands in
tstcome from the public septa API, but I decided those weren't enough so I also wrote Septum to augmenttstwith endpoints that the public api doesn't provide.Septumprobably deserves its own blurb of text but I don't feel like adding another section. It scrapes pages, transforms data from undocumented endpoints used by septa and serves it all very nicely with the help of FastAPI. The API is rate-limited because I can't afford a beefy VPS (I act as if I have users other than my friends). -
Tilde: An opinionated, but hassle-free homeserver deployment
Getting into hosting your own stuff is a natural rite-of-passage for most programmers, myself included. What started with Jellyfin on an old laptop, eventually grew into a dedicated server build with IaC to go with it.
Written with the help of Pyinfra, Tilde is a starting point for my friends, and anyone else looking to dive into the homelab/selfhosted rabbit hole.
tildesets up core packages, installs docker, and deploys a set of pre-configured apps popular in the selfhosted community. It also sets up a cron job to update DNS records because static IPs are expensive. Since wg-easy is one of the aforementioned apps deployed bytilde, you can easily set up a wireguard tunnel to access your services away from home.DDNS has historically been quite annoying to set up, and DDNS update clients never felt good enough. To fix that, I also built ZenDNS so that managing DDNS would be as simple as a cron job. Cooked up with simplicity and serenity in mind, ZenDNS does exactly what I want. It has support for Cloudflare, Namecheap, and DuckDNS.
All in all, Tilde is a starting point that I wish I had when I first got started.
Honorable Mentions
Here's another set of tinkering efforts that haven't been a focus, but worthwhile nonetheless:
-
lovesay: Cowsay, but full of love :) -
kolorz: A silly little library for printing kolored text to the terminal -
SpotiFetch: A simple and beautiful fetch tool for spotify -
skimple: A simple interface for the skim fuzzy-matcher -
teamux: Create and Join tmux sessions with ease -
surgery: A simple CLI for Real Debrid
Contact
-
e-mail:
contact (AT) danshu (DOT) co - full resume and details available by request
Disclaimers
- This site was heavily inspired by (copied from) Eliza's Website