spent some time today working on this diagram of how the ASCII control characters work in unix
there are a lot of mistakes/missing nuance but I think it's really interesting how little structure there is. Special codes (like `3` for SIGINT) that are handled by the OS are mixed with just regular keypresses (like `13` for "enter”) which are mixed with codes that are handled at the application for enter (like `1` for Ctrl-A in readline)
(not looking for an ASCII history lesson right now)
lazyweb: trying to find a blog post with tips for how to design bots that interact over SMS
less "how to use the Twilio API" (that's easy), more "what state to store in the database, tips for designing state machines, how to keep it simple, etc”
I always hear that web dev is getting more complicated (which is absolutely true!), but for me personally I feel like it only gets simpler over time because
1. all my projects are fun things I do on my own 2. all the old tech still exists and I can still use it 3. as new stuff comes out, I can pick and choose just only the things that will make my life simpler
feels like web dev is getting more complicated if you do it professionally, but simpler for people like me doing it casually
some things that have made web dev simpler for me over the last ~20 years:
* new CSS features like flexbox / grid / etc * "push to deploy" hosting like github pages, netlify, fly, RIP heroku, etc * sqlite (I never learned how to use mysql or postgres) * programming languages that include a production webserver like Go * let's encrypt * Caddy is SO much easier to set up than nginx * Vue.js is much easier for me than jquery or vanilla js ever was * `async` and `fetch` in javascript
more tools that have made my life simpler when making websites:
* `entr` for autoreloading my dev server * tailwind really helped me learn CSS and prototype quickly * JS linters like `deno lint` help me avoid typos * `esbuild` makes it easier for me to organize my JS projects into many small files if I want to * AWS Lambda/netlify functions-style “serverless” hosting makes it SO easy to host a tiny bit of server code
i've heard about POSSE for a long time but never understood how people implement it exactly. Really appreciate that @molly0xfff's post about POSSE includes a link to the source for her microblog's implementation
just got a royalty statement for Your Linux Toolbox and apparently since it was published in 2019 I've made $14,707.16 in royalties, on 6,314 sales. So I guess around $2/sale on average.
Not mad about it at all (my goal was to learn about how traditional publishing works, and I did!) but those numbers definitely made me want to stick to self publishing, which pays a full-time salary for me, plus two employees part time, with some left over
also I should say I have a lot of respect for publishers (and No Starch in particular), I just don't think traditional publishing is a great fit for me personally.
in particular I think there's a lot of value in getting books in bookstores, the editing support you can get, and the opportunity for translations. I've learned a lot from traditionally-published books and I really appreciate everyone who's getting information about computers out there ❤
* Hacking: The Art of Exploitation (where I learned about ARP!) https://nostarch.com/hacking2.htm * the legendary "The Linux Programming Interface" https://nostarch.com/tlpi (where I learned that I'd misunderstood how users and groups work in Linux!) * Ruby Under a Microscope (which was very helpful when I was writing a Ruby profiler) https://nostarch.com/rum
I really love https://diffdiff.net for quickly looking at diffs -- it does a great job of highlighting diffs inside a single line
used it yesterday to debug a networking issue by diffing two tcpdump outputs and it was SO helpful, it made it immediately obvious that the MSS was different between the two connections
(the screenshot isn't the actual bug, just a diff of two tcpdump outputs)
I feel like there must be a command line tool that does this but I can't find it (delta doesn't seem to)
i would really love to read a short super opinionated guide to Go web development by someone with the same values/requirements as me, like:
- no magic (for example I think no ORM) - stay pretty close to the standard library - minimal dependencies - very small sites, just a few pages/endpoints
can't tell if this exists though, there are a lot of golang web dev guides out there but just from reading the TOC I can usually tell that I have different values from the authors
for teachers who are interested in using my zines in your class but don't have a budget to buy materials:
you can buy 1 copy at the personal rate, and print and give away as many copies as you want to your students (please do not distribute PDF copies of the zine though, only print copies)
if you do this, let me know! I love to hear about how people are using the zines
when I write tips I think a lot about how realistic the tip is for people to actually be able to implement in practice
For example in the terminal there are a lot of opportunities to say “well you could learn this cool keyboard shortcut if you want” but learning new keyboard shortcuts is really not easy (at least for me!)
Also it's tempting to say "well here's a configuration setting", but SO often those settings have unexpected consequences and I often feel like they're a waste of time