1,570 karma · joined September 17, 2015
+---------------+------------------------------------+
| personal-site | luciano.laratel.li |
+---------------+------------------------------------+
| mastodon | parens.social/@luciano |
+---------------+------------------------------------+
| email | cat personal-site | sed 's/\./@/' |
+---------------+------------------------------------+Fun read otherwise and wonderful to see someone stick it to them this way, but that type of thing really pisses me off.
Whole article is worth reading, but if you want the relevant bits search for “ I wrote a Dart script that would take a PDF of the book”.
Seems like it has more information.
We each have our own bank account(s) and credit cards and our own budget in YNAB. I manage both budgets but only do hers when she’s present.
We agreed on what constitutes a shared expense ahead of time (mortgage, utilities, etc) and split them based on what percentage of last month’s household income (post-tax) each of us earned. This is variable since we both do some contracting/consulting outside of our day jobs.
For going out, vacations, shared groceries, etc., we just split things as we go. We have a joint savings account that we put the same amount of money in each month and use for travel etc.
A friend and his girlfriend have a joint credit card that they put all shared expenses on and split at the end of each month, but managing that in YNAB is not the smoothest so we haven’t done that yet. Might write some software to make it easier.
It works really, really well and at this point is much better than the Dropbox app.
I rolled my own for use with tree style tabs: https://www.luciano.laratel.li/programs/named-tab/?title=Hi-...
[0]: https://www.goodreads.com/book/show/615570.The_Artist_s_Way
[0]: https://dynomight.net/air/#things-that-create-particles-indo...
[1]: https://smartairfilters.com/en/product/sqair-air-purifier/
version: "3.7"
x-common-variables: &common-variables
PGID: 1000
PUID: 1000
TZ: America/New_York
services:
caddy:
container_name: caddy
image: caddy:2.6.4
restart: unless-stopped
environment:
<<: *common-variables
HOST: "redacted"
LOCAL_IP: 192.168.1.2
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./appdata/caddy/Caddyfile:/etc/caddy/Caddyfile
- ./appdata/caddy/site:/srv
- ./appdata/caddy/data:/data
- ./appdata/caddy/config:/config
wireguard:
image: lscr.io/linuxserver/wireguard:latest
container_name: wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE #optional
environment:
<<: *common-variables
PEERS: myPhone,myLaptop
ALLOWEDIPS: 0.0.0.0/0,::/0
volumes:
- ./appdata/wireguard:/config
- /lib/modules:/lib/modules #optional
ports:
- 51820:51820/udp
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: unless-stopped
Then in ./appdata/caddy/Caddyfile: (config) {
@internal {
remote_ip 192.168.1.0/24
}
handle @internal {
reverse_proxy {args.0}
}
respond 404
}
mySecretService.{$HOST} {
import config "{$LOCAL_IP}:5678"
}
So if I'm not on my VPN (or at home) nothing is shown. Other considerations:- You may want a VLAN or separate guest network depending on if you allow guests on your network, what type of services you're running, etc.
- Many of the things I run at home have password authentication and I use them in addition to the VPN restriction.
- This was the first thing I thought of and may be insecure for reasons outside of my expertise.
- The nice thing about this is that I run pihole in the same compose file so when my phone is on my VPN I get remote ad-blocking "for free".
- Tailscale is easier and nicer (UI-wise) to set up, but I stopped using it because it's a battery hog on iOS. The "trusting someone else's server" thing is also an issue, but if not for the battery issue, I would probably still be trading the added risk for the convenience. This was not too bad to set up, though, and I'm happy with it for my simple needs. The Tailscale app also doesn't have a convenience feature that the Wireguard app does: I can tell Wireguard specific networks that I don't want it to run on (i.e. when I'm home) so that it enables automatically when I leave and turns off when I'm home.
I write Python, PHP (Laravel), Clojure, C/C++, TypeScript, and have done Scala too. Most things work well enough (not Scala) and I make an effort to not be the "emacs guy" and use standard IDEs when pairing if the other person prefers that. Most tooling I've used is editor agnostic (pre-commit hooks for formatting/linting, LSPs, etc).
In fact, using Emacs means I'm closer to the underlying tools and so have to set them up in a way that works for multiple editors instead of just relying on everyone using the same editor to enforce things like style and formatting.
Remote: Yes. Also open to hybrid and in-office arrangements in Miami Beach, Miami and Miami.
Willing to relocate: Not at this time.
Technologies: Clojure, TypeScript, Python, Bash, Linux (use, administration, and configuration), AWS (SQS/SNS/DynamoDB/Lambda), Docker. Recently some Scala and iOS/macOS before that. Past experience with C and C++ in a high-performance scientific computing context. Been writing a webapp for my fiancée in Laravel recently and enjoying that a lot too.
Résumé/CV: https://luciano.laratel.li/cv?utm_source=hnwh1223
Email: luciano@laratel.li
Hello! I'm Luciano, a software developer and engineer that likes to work on high-performance backend systems. I enjoy functional programming (especially in Clojure and using fp-ts in TypeScript) but aim to be a practical functional programmer. I have an undergraduate degree in Chemistry and scientific research experience as a computational chemist as well as an MS in Computer Science. I can do full-stack as well, mostly with HTMX and (recently) LiveWire.