I did indeed switch to restic for everyday backup. Here I wrote about how to set it up so it has full disk access, uses TochID to access the secret and runs daily: https://github.com/patte/restic-macos-app
Location: Berlin
Remote: Yes
Willing to relocate: No
Technologies: TypeScript (Node.js, Next.js, SvelteKit), HTML & CSS (Tailwind), SQL (Postgres), Rust (Axum), Python (FastAPI), GraphQL, Ansible, Podman, Caddy, Grafana, Linux
Résumé/CV: https://files.patte.io/Patrick_Recher_CV.pdf
Email: See résumé
GitHub: https://github.com/patte
Productive dreamer, focused cruncher, low-bullshit communicator. I care about quality, people and shipping things that matter.
I'm enthusiastic about climate tech, dev tools, civic tech, privacy and security. Looking to work with a diverse team that values craftsmanship, impact and action.
If you have something important you need shipped in the next few months, let’s talk.
One bit of UX feedback: I just found a palette I liked and assumed there was no easy way to copy it from the page. Turns out it is there, but only in console.log. Exposing the palette directly in the UI (e.g. show the result of the code example) would make the demo much more useful.
Edit: putting the selected config into the URL so it becomes shareable/bookmarkable would be great.
A law banning TikTok has been enacted in the U.S. Unfortunately, that means you can't use TikTok for now.
We are fortunate that President Trump has indicated that he will work with us on a solution to reinstate TikTok once he takes office. Please stay tuned!
This is a very concise overview! I have made a small example chat app [1] to explore two interesting aspects of gleam: BEAM OTP and compilation to javascript (typescript actually). If anyone is interested...
Yes, fly.io allows you to expose a UDP port. See the fly.toml [1] in the repo. Make sure the tailscale port is pinned [2] to the exposed port (41641 in that case).
I just tested it again and the connections are made directly (after the first 2,3 packages go via DERP):
tailscale ping fly-ams
pong from fly-ams (100.96.123.32) via DERP(ams) in 15ms
pong from fly-ams (100.96.123.32) via [2604:1380:4601:d605:0:6c3b:eed5:1]:41641 in 12ms
tailscale status
100.96.123.32 fly-ams patte@ linux active; offers exit node; direct [2604:1380:4601:d605:0:6c3b:eed5:1]:41641
100.101.54.36 fly-hkg patte@ linux active; offers exit node; direct [2605:4c40:95:4eed:0:40f0:67b1:1]:41641
Tailscale builds a mesh, where the participants can communicated directly, so it's common for all nodes to be behind a FW that does NAT. There is a very interesting blog post from tailscale about all the trickery they pull to reliably deal with NAT: https://tailscale.com/blog/how-nat-traversal-works/