]> git.r.bdr.sh - rbdr/txt/blame - learning.md
UIpdate learning log
[rbdr/txt] / learning.md
CommitLineData
7f664574
RBR
12024-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.
22024-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.
32024-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
42024-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.
52024-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.
62024-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.
72024-02-18: Emacs has very comprehensive built-in documentation that you can summon by using C-h k, followed by the key combination.
82024-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.
4e19405b 92024-02-16: scroll-behavior: smooth; gives JS-free smooth scrolling when navigating anchors.
9f309bd5
RBR
102024-02-11: You can't append some characters to iskeyword in vim, so you can't make boxes navigable like words.
112024-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.
122024-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.
3faa50c2 132024-02-09: Some disk images will be wrecked even if you restore their attributes (apparently DiskCopy 6.3 images).
7cfacc77 142024-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.
1122f78a
RBR
152024-01-29: You can't have CNAME and TXT records on the same subdomain!
162024-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.
0e8741be 172024-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.
d4c5d4d7
RBR
182024-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.
192024-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.
8a96796c
RBR
202024-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.
212024-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
222024-01-19: You can rename the classes in xcdatamodel in order to avoid collisions, in case you named an entity something too generic.
c57b0f38
RBR
232024-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.
242024-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.
1260b987 252024-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.
e1293d89 262024-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>)
2e8c5fee 272024-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.
cca2c219 282024-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.
76ed347e 292024-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`
2e8c5fee
RBR
302024-01-14: User systemd files are expected in /etc/ and not /lib/
312024-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)
322024-01-13: PPP Connections stay alive in the old net router, so you don't need to run ATDTPPP again, but just the connection.