I used to use Fabric to deploy my personal apps, but I often ran into issues with it, so several months ago I switched over to simple shell scripts that use ssh. Much more resilient, and far easier to maintain (at least for me).
Here’s a sample of what one of these deploy scripts looks like for a Django app:
I’ve thought about using a CD pipeline instead, but I’m not convinced that introducing an extra dependency — no matter how slick — is actually worth it for something small and personal like this. (CI/CD sure is nice at work, however.)
Alan Jacobs on blog gardens. I’m particularly intrigued by the idea of writing about the same topic in depth over longer periods of time as a way of organically writing what effectively amounts to a book.
Rob Weychert’s Plus Equals, a new zine about algorithmic art. The first issue was good, looking forward to future installments.
Riccardo Scalco’s Textures.js, SVG patterns for d3.js. Yum. I don’t even use d3 (at least not right now), but I’m tempted to do something with it just so I can use these.
Austin Kleon on blogging as a forgiving medium. The idea of continually editing and refining posts after publishing them intrigues me. I fix typos if I find them, but that’s about it at the moment.
Iain Bean on system fonts. I didn’t realize Charter is now a system font. (In macOS, it was apparently added in High Sierra.) That’s great.
Thomas Dimson’s This Word Does Not Exist. Words generated and defined by machine learning. It’ll be interesting to see how machine-generated content affects culture going forward.
Ziglings. Learn Zig by fixing small bugs in small programs. (Inspired by rustlings, though those exercises seem to be broader than just fixing errors.) A good way to learn a programming language, I think.
Blender 2.92 dropped recently. Geometry nodes look promising, and it’s crazy to see how all the grease pencil work has turned Blender into a viable 2D animation studio as well.
PEP 636. Pattern matching! In Python! Very much looking forward to this — I’ve loved using it in Rust.
Trying out a new format with these link bundles, in the hope that dropping the bulleted list format is a) more flexible and b) more conducive to writing a bit more about the links, rather than limiting myself to a single line with an awkward semicolon shoved in if I need more room.
Andy Bell on recent/upcoming CSS changes. Good stuff here. I’m probably most looking forward to using :is and clamp() and ch (all of which I’d read about before but had mostly forgotten). Oh, and scroll-margin-top.
As schoolwork starts to wind down, I’m finally starting to make progress on the creativity tools and HCI explorations I talked about back in September. This week I’ve also realized that graphical tools for art and design are what I want to focus most on. (I do still intend to explore textual interfaces, but they’re on the backburner for now.)
In the spirit of working in public, then, Cirque is a small WIP web app I’m building for making patterns via circle packing:
This is very much a rough initial MVP. You can tweak some settings, generate new patterns using a simple circle-packing algorithm, and export SVG (with the turbulence/displacement filters enabled by default), but that’s it. Some of the features I’m planning to build next:
Replace the settings text box with, you know, good UI (I’m also excited to explore color picker design here)
Add the ability to manually place both circles and anticircles (so artists are able to create intentional negative space)
Add a way to programmatically set the circle colors (probably via something like shaders, so you could say all circles smaller than a certain size get one color and the rest get another, or circle color is dependent on position or something else)
I’ve also thought about moving the circle packing code from JavaScript to Rust, to be able to play around with WebAssembly, but it seems overkill, at least at this point. (Instead I think I’ll plan to Rust and WebAssembly on the graphical type design tool I want to build.)