Home / Blog Menu ↓

Blog: #prints

35 posts / tag feed / about the blog / archive / tags

After nine months of issue blogging (posting issues of Prints), I’ve decided it’s time to return to stream blogging.

A quick retrospective: publishing issues was fine (the structure helped, for example), but for a personal blog I’m now less convinced that it’s the right fit. Looking forward to posting more freely and frequently.

Reply via email or office hours

Projects — Prints 2.9

A new art piece:

Why Weepest Thou? III
Why Weepest Thou? III. Fairly happy with how this turned out.

Process notes: I mocked it up in Figma and exported a PNG, imported that into Procreate and painted it, upscaled it, made a heightfield image from that, used Blender with the heightfield as a displacement map, and then in Affinity Photo composited it with the original painting and added textures.

I’m intrigued by the idea of using Blender to add 3D texture and (hopefully) make things look a little more like a real painting. A couple years ago I first experimented with this on my Within the Walls of Your Own Homes piece.

In rereading that post just now, apparently back then it took two hours to render the image in Blender. Whew. No wonder I didn’t continue down that path. If I remember correctly, I was compositing a bunch of different textures together directly in Blender before doing the displacement. This time round, making the heightfield beforehand using Procreate and Affinity Photo seems to have paid off: render time is a mere one to two minutes.

The material nodes in Blender are pretty simple — image texture for the color, image texture with the heightfield through a multiply node to the displacement input on the final shader node.

(Also, to be clear, I haven’t done a deep dive into whether this is the actual reason the render times are so much faster.)

Reply via email or office hours

Links — Prints 2.9

Tyler Cowen and Russ Roberts on reading. Enjoyed this. I almost always enjoy reading about reading.

Movemap, a map of the U.S. to help people decide which county to move to, based on selectable factors.

Nassim Nicholas Taleb on Dominion, the new book by Tom Holland. (No, not that Tom Holland.) Appears to be a somewhat unedited draft, and there are parts I don’t agree with, but I found it interesting. I liked Holland’s Rubicon. Looking forward to Dominion.

Bastian Rieck on which Neal Stephenson books to start with. Snow Crash is next for me. Cyberpunk doesn’t appeal to me all that much, but still looking forward to it.

Kara Manke on a new inhaled Covid therapeutic. Hopeful.

Simon Willison on Stable Diffusion.

Integrating Stable Diffusion into Photoshop. Wow.

Alberto Romero on Stable Diffusion.

Stepan Parunashvili on Lisp and parentheses. Gets at the underlying idea behind Lisp.

Wouter Groeneveld on cool things people do with their blogs, via Jim Nielsen.

Antonio Cao on a Figma plugin using Stable Diffusion. Crazy.

Adam Symington on creating river maps with Python.

Aaron Reed at NarraScope 2022 on five lessons from fifty years of text games.

Heydon Pickering on using flex-basis with clamp in CSS. Nice.

Tom Critchlow on generating agency through blogging.

The blue Fugate family. Had no idea this was a thing.

Maggie Appleton on folk interfaces.

Cliff Jerrison on water actually being blue.

Wu Peiyue on Zhemao, who wrote a whole bunch of fake Russian history on Wikipedia over a decade. Fascinating story.

Carlos Fenollosa on no longer self-hosting his email. I wish I could self-host mine but yeah, it doesn’t seem feasible anymore.

Tsung Xu on performance biomaterials.

Artful season 3 has begun.

Fergus McCullough against alcohol.

Smell Dating, a mail odor dating service (har har). Anthropologically interesting.

Austin Gil on the HTML capture attribute.

Dave Rupert on modern alternatives to BEM (in CSS).

Ollie Williams on what’s new with forms on the web. Learned several new things here.

Denis Stebunov on why public chats are better than DMs. Agreed. Trying to do better at this at work.

Use.GPU, a “set of declarative, reactive WebGPU legos.” Interesting.

WASM-4, a WebAssembly fantasy console.

Tom MacWright on Wilderplace, a lovely looking new game by Saman Bemel Benrud. The blog for it is also worth reading through.

BBC News is available in Pidgin English. Had no idea! Love it.

John Regehr on teaching C.

Ben Sparks on why the A4 paper size is a thing of beauty. Had no idea about this, but it does make me happy.

Serge Zaitsev on learning new programming languages by writing Forths.

Reply via email or office hours

Reading — Prints 2.9

As anticipated in issue 2.4, Kobo announced the Clara 2E, with a Carta 1200 screen. I haven’t been reading as much on my Kobo lately, though, so I don’t know if I’ll get one.

Recent nonfiction reads

  • In the Land of Invented Languages, by Akira Okrent. Enjoyed this. Conlangs don’t actually interest me all that much — there are so many natural languages to learn instead — but they’re still fun to read about. The bit about thesaurus organization was fascinating. Quite interesting throughout.
  • The Infiltrator, by Robert Mazur. Whew. This was perhaps a bit more intense than I wanted, though thankfully not really violent at all. So, so glad that I did not a choose a career path that led to going undercover for anything.

Recent fiction reads

  • Foundryside, by Robert Jackson Bennett. While there were some earthy bits I could have done without, in general I liked this. The magic system reminded me of writing software, which I liked, and things definitely got interesting at the end.
  • The Castle of Otranto, by Horace Walpole. A bit silly, and sadly not scary at all. (Which apparently is what I wanted from it.)
  • Northanger Abbey, by Jane Austen. Delightfully funny at first — loved the satire — but then there wasn’t nearly as much humor in the second half. Or if there was, I missed it. I did, however, come across the word rhodomontade for the first time.

Reply via email or office hours

Projects — Prints 2.8

New story: Unlocked. About fifteen pages long, fantasy.

Also, some new generative art. For these, the fundamental idea was to lay out horizontal bands, where each band was composed of rectangles of random widths, rotations, and color variations on a base hue for the band. I wrote some JavaScript to generative the patterns as SVGs and rendered them to 4500px-wide PNGs via headless Inkscape. I painted textures on them in Procreate on my iPad, mostly using MattyB’s canvas brushes. I upscaled them 2x via Real-ESRGAN on the command line, added noise in Affinity Photo (12% monochrome), and scaled them down to 7500px wide. Real-ESRGAN was a brand-new addition to my workflow but it turned out quite well, I think.

Pattern 005
Pattern 005. Bricks overgrown by vegetation, loosely.
Pattern 006
Pattern 006. A slightly stained glass kind of feel.
Pattern 007
Pattern 007. Going for a less saturated look here.
Pattern 008
Pattern 008. My favorite, even with the imperfections at the bottom.

Reply via email or office hours

Links — Prints 2.8

Mary Holstege on the metaphors we code by. Fascinating analysis.

Uri Bram on happiness and unhappiness. A useful take, I think.

Stephen Doyle’s book sculptures. Love these.

Dave Rupert on the madness of frontend web development. Seems like this is only useful where you have enough people to be able to specialize.

Tim Bray on slow travel. Yes. Hard to pull off, but yes. Also, I’m not sure I’d use this myself, but the decade part of the URL (/202x/2022/08/16/...) sparked some joy for me.

Eliot Peper on what writers do. A useful way of thinking about it.

Austin Kleon on breaking out of writer’s block by transcribing yourself thinking out loud. Need to try this sometime.

Ari Lamm on the tower of Babel. Loved this — it makes way more sense to me now. (And seems even more applicable to today.)

Unicode confusables. Use this for good, not evil. Ha.

James Brown’s Lego brick computer. Delightful. This reminded me of my master’s thesis, where I built lots of little widgets out of Raspberry Pi Zeros. One was a screen widget similar to this — though nowhere near as cool.

Ben Eater’s tutorials. I haven’t actually gone through any of these, but they look great.

KiCad, an open source tool for schematic design and PCB layout. Every few months I get the itch to make something physical and electronic — design the PCB, get it printed on demand, 3D print some housing, the works. Haven’t yet figured out what I want to build, though.

Wokwi, a tool to simulate IoT projects in the browser. This is so cool! (See the Arduino calculator, for example.)

Flux. Figma for circuit design and simulation, basically. Very cool.

Physically Based, a database of real-world values for rendering physically based materials. Part of me is adamant that the colors are less useful because real-world materials vary so much, but it’s still a nice project.

Riley Goodside on GPT-3 interpreting long instructions. Crazy.

VisiData, a terminal-based spreadsheet tool.

Luke Plant on “Everything is an X” in system design. This was good.

Luke Plant again, this time with his recommendations on writing Django views. I haven’t been doing as much Django lately, but I was pleased to see function-based views recommended. (I much prefer them to class-based views.)

Adam Mastroianni on good conversations having lots of doorknobs. An interesting way to think about it.

Eric Barker on Michaeleen Doucleff’s parenting advice. Both of these suggestions are great.

Jen Simmons on what you can do with the new :has selector in CSS. So glad to see this.

Suketu Mehta on India’s unraveling democracy. Yikes.

Graham Nelson on upcoming changes to Inform (for writing interactive fiction). IF was a huge part of my childhood but I haven’t done much with it since. Hoping to at least play through one whole game sometime.

Hillel Wayne on path objects in Python. I didn’t know this!

Nick Morgan’s Easy 6502 tutorial. Only partway through this (for fun) but it’s a good tutorial.

Mike Crittenden on stay interviews (the opposite of exit interviews). Interesting.

Nathaniel on websites under 14kb. Little performance hack.

Stable Diffusion’s public release. Very interesting, especially after I found that apparently this is what’s powering Midjourney. Haven’t actually tried it, though.

Mary Fetzer on a new material Penn State researchers have developed. Sounds cool.

Scott Galloway on TikTok. Yup.

Oven, Jarred Sumner’s new company for developing Bun. I tried Bun with my family sheets project but it didn’t work with the yaml library at the time. Need to try it again sometime. (The built-in TypeScript and NPM install speed are very intriguing.)

Josh Comeau on why React re-renders. Helpful.

Hillel Wayne on why arrays start at 0, though not with a definitive answer.

Carlin Eng on a critique of SQL from 1983. Interesting to see where it was and where it is now.

Christof Damian on the thinking behind his Friday link posts. I’ve been subscribed to his blog ever since we met via Lunchclub a couple years ago, but I hadn’t seen this page till now.

Reply via email or office hours

Reading — Prints 2.8

A good month for reading — pretty sure I’ll hit 5,000 pages by the end, at the rate I’m going. (Not that quantity matters more than quality, to be clear.)

Recent nonfiction reads

  • Clementine, by Sofia Purnell. A biography of Clementine Churchill, Winston’s wife. This was a somewhat draining book — sad family life perpetuated across three generations (so much bad parenting and dysfunctional marriage and adultery!), not to mention the weight of two world wars — but I’m glad I read it. Before this, for example, I don’t think I’d read much WWII history from the British perspective. Eye-opening. Also, I came across “rumbustious” for the first time ever. What a lovely word.
  • Here Is Real Magic, by Nate Staniforth. Quite liked this. I didn’t expect half the book to be a bit of an India travelogue, but it turned out to be a nice surprise. (India and Brazil have been in my mind a lot lately as places I’d like to travel to someday.)

Recent fiction reads

  • The Hands of the Emperor, by Victoria Goddard. I initially heard about this via Alexandra Rowland’s post and figured I’d give it a try. Ended up loving it, enough so that I immediately bought all of Goddard’s other books. It’s cozy fantasy — more calm, less action — and I initially thought it was going to be too relaxed for me, but the stellar character work sucked me in before long. There’s also enough magic to make it interesting to me (I struggle with completely mundane fiction), though the magic is not at all the point of the book. Reading about Cliopher kept reminding me (in some ways) of my time as ward executive secretary and ward clerk over the years. Fond memories. Looking forward to reading the rest of the books (of which there are many, and they’re multiplying quickly!).
  • A Practical Guide to Conquering the World, by K. J. Parker. Final installment in the Siege trilogy. This one didn’t click as much for me as the others did, sadly. Not entirely sure why, but I suspect I had trouble suspending disbelief with the central conceit. (Which confuses me a little, because it’s basically the same conceit as in the first two books.) The archery nerdery was fun, though.

Reply via email or office hours

Links — Prints 2.7

Dan Davison’s delta, a Git differ. Started using this a couple weeks ago and it’s great.

Jeremy Keith on defaulting to a search interface.

Marco Heine on just hitting publish (on one’s blog).

Randall Munroe with a long thread of DALL•E Pokemon. The more historical ones are incredible.

Kathryn Hymes on the psychology of naming inanimate objects and how it’s the opposite of thoughtless consumption.

Lj Miranda on thinking with pen and paper. After reading this I thought about getting back into notebooks, but I don’t know, I think I’m beginning to realize that I’m digital forevermore.

Dreamworks is open sourcing Moonray, their rendering engine. Cool.

GitLab is changing their repo size quotas, for free-tier accounts.

Arne Babenhauserheide’s Wisp, a Lisp using whitespace instead of parentheses.

Patrick Wyatt on building Starcraft. Enjoyed this, along with his first and second posts on building Warcraft.

Adrian Holovaty on websites framebusting out of native apps.

Soundslice’s responsive music player. Nice to see something happening with the responsive sheet music idea.

Lynn Cherny’s Things I Think Are Awesome newsletter. Enjoyed this.

Mathieu Jacomy on drawing maps with Disco Diffusion. Loved these, particularly all the tilt-shift maps along the way.

Douwe Osinga on using DALL•E to create infinite zoom videos. Cool.

Stable Diffusion appears to be quite good at generating faces. This AI art stuff is improving at a startling pace.

BBB3viz with scenes from Piranesi as generated by Midjourney. Haunting.

Anders Brams’ svg-path-morph library. The project video is quite cool.

Piter Pasma’s Skulptuur generative art project. (I’ll mention here, by the way, that it’s annoying how NFTs have taken over generative art. I get why, but it’s still irritating.)

Tissue, a tessellation addon for Blender.

Sverchok, a parametric CAD addon for Blender.

λ-2D, Lingdong Huang’s visual programming language. It’s especially interesting to watch the flow of computation.

Reply via email or office hours

Reading — Prints 2.7

More reading this time round, because yours truly finally picked up Covid nine days ago. (We weren’t sure it was Covid at first, though, because we tested negative early on. For a while it seemed like just an obnoxious cold after all, but then on Friday I started getting waves of metallic-tasting nausea and that was weird enough to get me to test again.) We’re doing fine — my wife and kids have all fully recovered, and I just have some lingering fatigue along with the occasional metallic taste.

I don’t know that I’ve ever mentioned this, by the way, but I try to be pretty non-spoilery in these reviews (if you can even call them that — they’re more microreactions, at least in my mind). Thus the typical dearth of detail about any given book.

Recent nonfiction reads

  • Attention Factory, by Matthew Brennan. I might not have been the audience for this one. Mild anthropological curiosity led me to it (I don’t use TikTok and what I’ve seen of it is so not me), but it turned out to not be all that interesting. The writing, too, was a bit too lackluster and dull for my taste. Given how little I care for social media and surveillance capitalism, I have no idea why I finished the book.
  • The Sixth Extinction, by Elizabeth Kolbert. Loved this book. So good. The core message was of course more on the depressing side (what kind of starkly different world will our grandchildren inherit?), but pretty much every chapter was riveting to me. I seriously love reading about the history of science.
  • The Plantagenets, by Dan Jones. Also really good. I admittedly abandoned it for months because I was having trouble keeping track of all the names, but serializing my nonfiction reading (back down to one book at a time) worked, as did slowing down and subvocalizing. This book is quite readable and I very much enjoyed it. Though the endless wars did get a bit tiresome. (For me, peacetime is much more interesting to read about.) Anyway, looking forward to reading Jones’ book on the Tudors.
  • On Reading, by Nick Parker. Super short, and maybe not expanded as much from his blog post as I’d prefer, but overall I liked it. The paper museum idea is intriguing. And the typesetting of the interior made me happy.
  • The Case Against the Sexual Revolution, by Louise Perry. An uncomfortable book that describes some atrocious, awful, heartbreaking things. But an important book nonetheless, I think. I found it interesting to read a secular take on the subject — one that doesn’t fully line up with the law of chastity we have in the Church, but a little more aligned than the sexual revolution itself is (which is admittedly not hard to do). The last chapter is less dismal, but I’d still make sure to read something happy after this.

Recent fiction reads

  • Ninth House, by Leigh Bardugo. Dark and rough and creepy, with some super uncomfortable parts. But overall, ignoring those bits, I liked the book.

Reply via email or office hours

Projects — Prints 2.6

We’ll group the projects together today.

Family pedigrees

An old-yet-new chart type: family pedigrees.


As you can see, it’s a little different from the initial design. This modern incarnation admittedly isn’t as pretty in some ways, but it’s a heck of a lot easier to lay out programmatically.

New things: It shows which child the line comes through, I added the lifespan right after each parent’s name, and I added indicators for the children showing how many kids they had (the dot) and how many marriages (the slash, though if they were married only once and had children, I left the marriage indicator off).

It also supports four generations, admittedly with less space and smaller type:


I tried it without the table borders, by the way. While it was more readable than I expected, it felt a little too loose and unmoored.

The input uses ArchieML and currently looks like this:


family: 1.1
marriage: 30 Dec 1829 in Polanco
father: José Antonio Fuentevilla Fuentevilla // 1809-1878
mother: Manuela Gándara Cobo // 1811-1879
  name: ? // 1830-1831

  name: Josefa // 1832-1834

  name: Francisca Maria // 1835-1843

  name: Maria Remedios // 1838-1898
  children: 6

  name: Maria Luisa // 1841-1916
  marriages: 1

  name: Manuel // 1845-

  name: < Maria Isabel // 1848-1928
  children: 9

  name: Maria Dolores // 1853-1853

  name: José Maria // 1858-1858

# --------------------------------------

family: 2.1
marriage: 29 Feb 1808 in Polanco
father: José Fuentevilla Piñera // 1779-1855
mother: Vicenta Manuela Fuentevilla Ruiz // 1787-1828
  name: < José Antonio // 1809-1878
  children: 9



Right now the family numbering is table-based (column, row), but eventually I think I probably want to make it hierarchical (somehow) so it’s easier to know which cell to put things in.

Timeline charts

Another new chart of sorts: timelines. I’ve been sorting through my Cuban lines and realized I needed some way to map out everybody so I could see the bigger picture.


The input is an ArchieML file that just lists events with dates and optional places:

title: Cuba timeline


event: Antonio Sánchez Rodríguez Díaz marries Ana Josefa Muñoz y Martínez Machado, possibly in El Calvario
daterange: 1790s-1800s

event: Agustin Sánchez Muñoz marries Ana Josefa Montoro, who then dies before 7 Feb 1835
daterange: 1790s-1830s

event: Rafaela Crispina Sánchez Muñoz born to Antonio Sánchez Rodríguez Díaz and Ana Josefa Muñoz y Martínez Machado
date: 1805 Oct 25
place: Matanzas City

event: Domingo Sánchez Muñoz born to Antonio Sánchez Rodríguez Díaz and Ana Josefa Muñoz y Martínez Machado
date: 1807 May 12
place: Matanzas City

event: Antonia Crispina Vargas Hernández is born to José Vargas and Gertrudis Hernández
daterange: 1800s
place: Güira de Melena, Mayabeque


If the date is a range, it’s italicized to show that it’s broader than a specific date.

(I originally was just going to use Google Docs for this, by the way, and made an initial prototype there. Having to do all the formatting manually got old, though, so I scripted it. Now I can just focus on the content.)

Family sheets update

I’ve got almost all the family sheet functionality ported to Node/JavaScript and cleaned up. (The sparklines code now uses tracks and markers in a way that is much more extensible and easier to work with.) In the process, I also revised the resolution (before, it just keyed off the year, but now it uses the month and day if present as well, so spacing is more accurate), added dotted-line support for date ranges (for birth and death), and added a marker for divorce (a skinny X):


Still have a number of bugs to fix, but it’s getting close.

Tabular pedigrees update

I ported the tabular pedigrees to Node/JavaScript and added support for seven-generation charts:


Comparison to the six-generation chart:


The shaded cells, by the way, indicate that I haven’t yet verified those people. Basically a TODO comment for myself.

Can’t wait till Chrome supports border stroke widths smaller than 1pt.

Quick links

Last and sort of least, I’m slowly putting together a page with quick links to the various Torre de’ Passeri civil registration scans on FamilySearch, to save myself some time. Planning to do this for the other localities I do research in as well.

Reply via email or office hours