Tyler Hobbs on color arrangement in generative art. I haven’t done much generative art lately (and don’t know how much I’ll end up actually doing in the future), but I like Tyler’s work and this is a good writeup.
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.)
Adrian Roselli on responsive type and zooming. Over the last few years I’ve become one of those people who scale text up. Not massively — not yet — and not always, but it very much makes a difference for these aging eyes.
Noah Smith on developing countries in the Global South, which tied in nicely with my recent reading of How Asia Works (and mentions the book as well). Nice to see that Malaysia’s doing better than it was when the book was written.
Radio Garden lets you browse worldwide radio stations via a map. Fun.
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.
David Cain on using paper dictionaries — this resonates with me a lot, even though by profession I build web tools; I think this may be part of why, in my personal projects, I tend to prefer making discrete, downloadable objects like PDFs and EPUBs
Zeynep Tufekci on the new Covid strain — astute as always, and yikes (though my feel for plot points thanks to my reading of apocalyptic novels had me expecting a twist like this)
Robin Sloan on newsletters having seasons — I love this idea and plan to swipe it for my own newsletter, and also see what other projects it might work for (boundaries are good, and I miss publishing a magazine where the issues provided those constraints)
Ethan Marcotte on design systems again — reducing the disconnect between design and code as much as possible sure seems ideal (which makes me think mainly of expanding browser dev tools to include design, though that’s still not a perfect fit)
Joel Hooks on blogs and digital gardens — this makes me want to finish my revamp of Slash so I can more easily add an actual digital garden to this site (and at some point I’ll write about that revamp since I don’t think I’ve gone into any detail on it)
Amy Hoy on how blogs broke the web — it’s not quite as bad as the headline sounds, but still some good food for thought (you could say this is another way of looking at stock vs. flow)
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.)