Links 2023-04-15

Better Together: Unifying Datalog and Equality Saturation

We present egglog, a fixpoint reasoning system that unifies Datalog and equality saturation (EqSat). Like Datalog, it supports efficient incremental execution, cooperating analyses, and lattice-based reasoning. Like EqSat, it supports term rewriting, efficient congruence closure, and extraction of optimized terms. 

We identify two recent applications—a unification-based pointer analysis in Datalog and an EqSat-based floating-point term rewriter—that have been hampered by features missing from Datalog but found in EqSat or vice-versa. We evaluate egglog by reimplementing those projects in egglog. The resulting systems in egglog are faster, simpler, and fix bugs found in the original systems

While I don't plan on reading this paper soon, I have printed it out because as a piler (the word [[Temple Grandin]] uses in [[BOOK – Visual Thinking – Temple Grandin]] to talk about people who like having piles of things they are working on), I want to have it on my visual periphery, if not now, then in the future.

[[Cory Doctorow]] and [[BOOK – Chokepoint Capitalism – Rebecca Giblin Cory Doctorow]]

I listened to the [[changelog Podcast]] episode interviewing [[Cory Doctorow]] about his book [[BOOK – Chokepoint Capitalism – Rebecca Giblin Cory Doctorow]] and found his points quite compelling. I had had the book sitting on my bookshelf for a few weeks now but hadn't yet dug into it.

I was especially compelled by his arguments around sampling and generative AI. Enforcing copyright around sampling basically meant that the entire power over sampling had been given away to the big labels and not the musicians themselves, with the resulting effect that albums like De La Soul's first 3 albums couldn't even be played anymore. With generative image AI, we are seeing the first lawsuit being levied by Getty, not individual artists. I still don't know where I fall with generative image AI, as so many of the products being built around it are clearly in the stock photo “fire your artist” category, and besides Adobe (of all companies!), not many are attempting to build artist-centric tools that incorporate AI into the workflow itself (things like BlenderGPT, etc...).

(rewritten with wordtune): I was especially compelled by his arguments around sampling and generative AI. As a result of copyright laws being enforced around sampling, the big labels now hold all power over sampling, not the musicians. The result was that albums like De La Soul's first three albums couldn't even be played anymore (until March of last year). In the meantime, Getty filed the first lawsuit about generative image AI, not an individual artist. I don't know where I fall with generative image AI, as so many of the products being built around it are clearly in the “stock photo fire your artist” category, and there aren't many artist-centric tools (like BlenderGPT, etc...) that incorporate artificial intelligence into the workflow itself (besides Adobe, of all companies!).

Despite my general annoyance at his meme-y style and his tendency to go full on annoying nerd (I guess that resonates with many people, who am I to judge), he is quite eloquent and I appreciated the clear statements around different business models. I canceled my audible account right after the podcast, used my libro.fm account to get a copy of the audiobook, and listened to the first 2 chapters on my subsequent mountain book ride.

Building glazed/sqleton

Procrastinating around writing articles about programming with LLMs and actually tackling writing a webserver for sqleton, I set out to add go-pretty support to [[PROJ – glazed]]. I went a little bit overboard there, and added not just support for the many different standard go-pretty styles, but in fact support for adding your own styles as YAML files.

After faffing around with using chatGPT (or in fact, [[PROJ – pinocchio]]) within [[Alfred]], about which I should also write an article, I set down to continue what I had started to sketch out on friday: a watcher for a collection of command repositories. glazed offers a very simple abstraction for commands, as defined by a class called CommandDescription (this part of the design was emergent, and as such still quite messy)