1 2024-02-26: There's no regex in the rust stdlib, but you can get pretty far in parsing a templating language by searching for simple tokens.
2 2024-02-25: Rust's .expect() is a great way to add user-friendly error messages. I think when building a library I would try to focus more on formal error specifications, but for an application I think it works great.
3 2024-02-24: Eternal terminal offers an alternative to MOSH for secure shell. I'm not too sure about security implications yet, but after trying SSH in the train, I do want to try a solution
4 2024-02-22: You can install asdf globall and set ASDF_DATA_DIR. This is pretty effective for multi-user environments where I still want each process to run as an unprivileged user, but have versionable tooling.
5 2024-02-21: S3 Handles multipart checksums by creating a checksum of each chunk, checksumming that, and then appending the count. This can help measure integrity for large uploads.
6 2024-02-19: Access to AWS glue requires access to a generated bucket. To give someone access to glue, you'd need glue:*, iam:ListRoles, iam:GetRole, iam:PassRole and s3:PutObject, s3:PutObjectAcl permissions.
7 2024-02-18: Emacs has very comprehensive built-in documentation that you can summon by using C-h k, followed by the key combination.
8 2024-02-17: Haproxy can load balance telnet connections, so you can potentially serve a different app per hostname or ensure only a single hostname accepts telnet.
9 2024-02-16: scroll-behavior: smooth; gives JS-free smooth scrolling when navigating anchors.
10 2024-02-11: You can't append some characters to iskeyword in vim, so you can't make boxes navigable like words.
11 2024-02-10: Long lived connections don't seem to fare well in a dialup PPP with the RS232 modem. For more usable internet on the SE/30 a PDA ethernet card is required.
12 2024-02-10: Even though the old net router is sold as v4, if it has the SD slot you should flash it as v6, otherwise it doesn't work.
13 2024-02-09: Some disk images will be wrecked even if you restore their attributes (apparently DiskCopy 6.3 images).
14 2024-02-01: The TCF API is good to deal with individual vendors, but a big pain to use it for more blanket categories. Check __tcfapi('addEventListener', 2, function (tcdata, success) { debugger; }); to explore the object.
15 2024-01-29: You can't have CNAME and TXT records on the same subdomain!
16 2024-01-27: If you accidentally rewind a whole 35mm film, you can get it back by wetting the end of a new film and putting it inside the cartridge. It's a pain to do but it's better than losing a whole cartridge.
17 2024-01-24: When AppleTalk is enabled you can't use the printer port for a modem in a Macintosh SE/30. You need to disable it in Chooser first.
18 2024-01-23: AWS Glue has some very inefficient ways of composing queries, so it's sometimes easier to embed the query itself. In postgres it doesn't let you but you can add sources for each table and then run the query. This seems to work a lot faster.
19 2024-01-22: ssl_early_data on; can mess up your responses in safari if you set it in more than one place. What's worse, because of the caching it uses it can be annoying to revert.
20 2024-01-21: You can inject HTML and CSS to gitweb without modifying the default files by using $home_text and pointing it to a variable, and push @stylesheets.
21 2024-01-20: App groups can let you share application data, but they will create a new container, so unless you have a remote data source it will erase your data. It's better to start new mac or ios projects with a group
22 2024-01-19: You can rename the classes in xcdatamodel in order to avoid collisions, in case you named an entity something too generic.
23 2024-01-18: MacPPP with modem initialization options works much better than ZTerm + FreePPP, and allows 115200 baud. You just have to set the modem to initialize with AT, and then dial PPP.
24 2024-01-17: Mastodon will NOT auto-clean the media directory, which can quickly bubble in size, and you can't ask sidekiq to deal with this so you need to set a cron job. A systemd.timer can handle both cases.
25 2024-01-16: With dnsmasq + tailscale you can easily combine your home lab with a remote server and make management a lot easier without exposing some services to the web. A local dnsmasq running on raspberry pi can make sure all local services have a nice name, and then can point an internal url to the vps. In firewalld you need to block connections unless they come from your 100.0.0.0/8 block.
26 2024-01-16: You don't actually need the users in unix in some situations, you can use an arbitrary number of the id and if the other system expects it, then it will work. In fact, you can "sudo" into that if runas_allow_unknown_id (then run sudo -u \#9999 <your_command>)
27 2024-01-15: SELinux provides restrictions to files I wasn't aware of, and can prevent execution in some contexts. With eza you can view it with -Z.
28 2024-01-14: On linux you can see logical volumes inside a partition with lsblk, they're shown as lvm. If you resize a partition, you still need to resize the lvm (eg. with `lvresize -l +100%FREE` to take all remaining free space), AND the filesystem (eg. using resize2fs). This is important eg when installing an OS from an image as you might not be using your whole disk.
29 2024-01-14: On fedora rather than ufw or nftables, you use firewalld. You can create services (eg. gopher with port tcp 70 goes in /etc/firewalld/services/gopher.xml), attach them to zones with `firewall-cmd --zone=<YOURZONE> --add-service=gopher --permanent`
30 2024-01-14: User systemd files are expected in /etc/ and not /lib/
31 2024-01-14: You can use @ and %i in systemd to have multiple instances (eg myfile@.service, and then executable=blabla %i) where %i will be what comes after @. (So in myfile@howdy, %i will expand to howdy)
32 2024-01-13: PPP Connections stay alive in the old net router, so you don't need to run ATDTPPP again, but just the connection.