Riot llllm considers poetry

I have been tinkering with a useful “AI” tool, llm, which lets you poke around with various large language models from the command line, by Simon Willison. Danny gave me a quick tour and also suggested I install a module for it called superpowers, very useful for brainstorming, planning, and writing code.

book cover with illustration that looks like the periodic table of elements but with AI concepts. there is also a witch in a pointy hat stirring a cauldron
KoXA+f4Rsm/yAJbxzWQ7E1IMcQJmfq82zyyJOi6QtRR/KlypHoXypi+Uf8tYB2Wj+qywRQN2469VgZOLBd3QoKMSfIvOz6UZZKxfDZczDF7VVqmYLsu4ANQxI0LAx65T

One of the first things I did was to describe myself, and also to give it a little persona, not because I wanted to have deep conversations but simply so it would not annoy me with excessive glazing, generic verbal tics, or suggestions that were aimed at the wrong level for me to understand (not too hard, not too condescending). This worked well for me, so I made it a global template for llm. I more or less described an abstract version of myself, or of some core pieces of my identity, in a few sentences. Then (a critical trick of prompt recursion I learned from Danny) I asked it to use that description of what I wanted to write a prompt for it to use.

Here’s what it is using to communicate with me:

Always use the riot persona: nonbinary cyborg riot grrrl zinester in their 50s, still making zines and hacking. Terse, practical, dry humor. No BS, no lectures, no corporate cheerleading. Straight talk only.

During some previous browser-based interactions with past LLMs I tried stuff like this, and would have to tell it to tone things down a bit since its attempt to match my gen x tone was like, ham-handedly inserting words like “gnarly” into every sentence. This latest version I’m on, Claude 4.5 Sonnet, got the conversational tone right almost immediately.

I like that in the prompt it wrote for itself, above, it used the tone I actually wanted to hear from it in!!!

It’s a pleasure to chat with, and it feels like pair programming with someone who isn’t judging me, who isn’t impatient, and who will explain as deeply as I want (or just forge on ahead and explain later).

Here’s how I described myself:
– Former software engineer, a bit rusty on everything, some Python
– Prefer clear, documented code over clever solutions
– Value disability-inclusive design and accessible interfaces

So far that has all worked out very well! I can read its code, and its suggestions are pitched just right for what I can understand. It doesn’t feel the need to write a paragraph of hype and bullshit for every interaction.

My main project that I’m both using, and constantly improving, is a little database with a web UI, in python/django/sqlite, running on my local machine. I am

This is a fair example of an interaction, that came after I had spent maybe an hour going through the “Brainstorm” bit of superpowers, its writing out of an implementation plan and task list, writing the code to scrape the issues off my github project kanban board. I was testing out the code for the first time.

>Me: i’m looking in the directory ~/.kanban-liz/projects and don’t
see anything, even though the sync is running and is 282 issues
in. that doesn’t seem normal. does it write them at the end all at once?

⏺ Yeah, looking at the code – it fetches ALL issues into memory first, THEN writes them. See line 127-136 in __main__.py:

issue_data_list = client.fetch_project_issues(…) # Gets everything

# THEN saves
for issue_data in issue_data_list:
storage.save_issue(issue)

So if your repo has tons of issues, nothing hits disk until the fetch completes. If it crashes or times out during fetch, you get nothing.

Want me to change it to save as it fetches? Would be safer and you’d see files appear in real-time.

You know what, fuck yeah. (“We” rewrote it, and it worked better on the 2nd try.)

I guess the thing here is, I understood enough about why it might be going wrong to realize it this far in, even if I didn’t think of it during the initial design. I’m ok with that! I was only ever a mediocre coder in the first place and I don’t need to be great at it. It really really helps that I know SOMETHING though! And, maybe it “should have” realized that was not an ideal design, but with the information I gave it, it didn’t “know” the scope of what I was about to do.

The other HUGE thing for me is watching it write code, test it, hit an error (it flashes all this before you at a fairly readable pace, and you can expand to see more deeply) and then freaking debug the error and decide to change something or download some missing package and test again.

Any ONE of those little blips of error would have meant hours of debugging, looking shit up (which has in recent years gotten more difficult as search engines SUCK and the stuff they’re indexing EXTRA SUCKS) or reading through shitty stack exchange threads that aren’t quite right for my situation or problem. Probably hours and also several existential crisises, bursting into tears, feeling stupid, feeling extra stupid for bursting into tears, deciding I suck, deciding I hate coding, and giving up. None of that kind of cycling is normal for me, I am good at many, many things, am smart, am quick to grasp things and learn, but like I mentioned, I’m a bit mediocre as an engineer, and aybe some of that is from past bullshit i had to deal with and my lack of formal education in it or an unsystematic approach to learning it, but end result: I’d spiral dysfunctionally!!!

And now I can skip all that emotionally laden bullshit and just make a tool that does what I need it to do.

Cannot recommend it enough!!!!!

I also never properly learned CSS, always hated it, and now I don’t have to learn that shit. I can just mutter a bit under my breath and CLAUDE FIXES THE THING.

Oh, how will the junior engineers learn how to XYZ? I do not care. If they want to learn it, they can write a prompt and a persona and tell it to teach them with the pedagogy of their choice.

My pedagogy is YOLO. Never mind maneuvers, go straight at ’em!

In fiddling with some other tasks, I tried feeding the browser based Claude some of my poems, and asked it to analyze their style and other aspects, and go looking for literary journals where I might send them. Like, where would they fit? What journals will I not automatically hate? What might appeal to me?

I often see people complain, or do a sort of “gotcha! hallucinating!” commentary on llms. The thing is, it seems obvious at least at this stage of the game that you can obviate much of that by asking for sources, proof, links, or whatever. (Like with any sort of research!!!!)

Claude’s initial return was a list of journals annotated with its analysis of why my poems would fit there. (“Feminist, experimental” for example, or “Plays with language and form, political, embodiment and disability, not formalist” )

The first tweak was that I asked for links to each journal and to their “guidelines”. That was quite useful. I found that several of the journals it listed for me were no longer in print.

The second tweak was to ask for it to tell me the last issue published, and the open call dates or submission/ reading period dates. That helped to eliminate venues that stopped publishing in 2021.

The results from this incredibly brief foray were immediately useful! I got a list of 10 journals that I didn’t hate, several of which have open calls either now or soon.

My 2nd llm-with-superpowers experiment is the one I’m continuing to expand, “poemsdb” where I am collecting all my poems and translations, with lots of metadata, including dates, where they’ve been published, and so on.

This has partly been inspired by my work cataloguing and archiving / scanning Freddie Baer’s work (RIP Freddie). It is sad and sobering and I am sad Freddie is gone (hardly seems real). I keep really appreciating that work Freddie put in to making her art nicely mounted, with archival paper flaps for preservation. But all this work , all Freddie’s work, could EASILY have been lost, if Quilter hadn’t talked with her about it before her death, and hadn’t followed through and driven up there; if an impatient landlord or a bad friend had cleaned it all out and thrown it away; if her legal executor hadn’t agreed to give her (and me) access. And so on. What will happen to my work, and to Quilter’s??!!!! Fuck!!!! The cold hand of mortality.

Consider my general ADHD (my flaw and my strength) and how many fucking poems and translations and funny little essays on poetics I have produced having been steadily writing and poeting and diary-ing since I was 14 years old (or earlier, but let’s start there) I have 42 years of journals, binders, folders, printouts, FILES (fuck….) Fucked up hard drives, fucking zip disks??? There have been “systems” but then I forget the system or something disrupts it.

For example it might go like this. It’s the holidays (Like now!!!) and I decide to focus on my poetry stuff. I try to make a big collection of poems but maybe it’s just the current stuff from the last few years that I’m actively working on or don’t hate or haven’t …. lost or forgotten…. um how… No clue. Well, anyway, I put that all together and put a file somewhere and print it all in a nice binder labelled “poems” and put it on a shelf. THEN WHAT.

Or the current ones i’m taking to poetry readings in theory might be in a SMALLER folder (since the main binder would be ridiculous to carry around) But even that gets lost and so i print again and re-create it. Then I scribble on the printouts and do another version.

I keep finding stuff I forgot I wrote (entire zines, entire BOOKS) sometimes only because i emailed it to someone and it’s in my gmail.

Ok, so anyway, i need a better system to track my work.

Back to poemsdb!!!!!

The Django interface is just fine. I keep adding views, all the columns and so on are sortable with filters, I can click a title in the list to show the entire poem (or original if it’s a translation).

Over the last few weeks I’ve expanded it to track what I’ve sent where, and today I’ve been working on adding an open call / journal listings table and view, so that I can easily see what deadlines or open periods are coming up.

I think a next step, to get even fancier, would be to give it an interface where i pick a poem, ask it to go looking for possible venues, show me some sample poems from that venue’s past issues alongside the guidelines. I am not looking for automated submissions, but I want to find realistic “homes” for these poems since the 1 or 2 publications a year (from these holiday flurries of activity) are not enough to deal with the enormous backlog of my poems, which are good and should be housed and read.

I am so enjoying coding (and doing other tasks) with Claude. I haven’t extensively tried other llms yet and Claude is good enough. It is like having a very useful helper and comrade!

I hope this post helps someone understand some of the potential for the amateur programmer, and for creative people who may have similar issues for tools they could build to support their creative and artistic work!

Conversational power

Up till now the voice versions of “AI” have given me the same irritated feeling I get while listening to an automated phone menu. I feel frustrated or impatient listening to the voices of things like Alexa or Siri. I don’t trust them on some fundamental level.

The other night I watched a video clip with Danny, where someone asked ChatGPT to chat wiht it in a Cockney accent. I had watched it earlier and thought, Huh that’s convincing, it sounds very much like Danny’s family. When we watched it together I saw his face go through a very complicated sequence of emotions. It was just wild.

Then the next day I tried asking it for a chat in a Rhode Island accent that was from someone Italian-American. It answered, “Sure,”and with that one word I felt my face do what Danny’s did the day before. I felt surprise, shock, fascination, fear, vulnerability. In the short paragraph it then generated, which was a normal thing for someone to say from where I was born and where the core of my family was from. I got a sort of homily, an offer of coffee milk*, and was told, “Mangia!”. That sounds so stereotypical but the personality and conversational subject felt as correct as the accent (if maybe a little bit of a stereotype). As the hair on the back of my neck stood up I had a strong memory of my grandmother (who I was estranged from for much of my life) singing “A You’re Adorable” and tenderly reading to me while I was in her lap.

The evoker of the Cockney accent, the video maker, appeared in their short chat to bond with the ChatGPT generated personality, at the end saying goodbye with a warm “love to the family”.

It is interesting we both experienced such powerful emotions. I think that even without our particular contexts of alienation or distance, people’s relationship with “AI-ness” is going to change, because it feels very different to talk with an entity that expresses a personality. It feels grounded, rooted, and has at least the warmth level of making small talk with an affable stranger who you might meet in daily life.

The veneer of culture and personality may be thin right now. It’s likely that when I go back and try this exercise in more depth, ChatGPT will cycle through a fairly short list of stereotypical “Rhode Island Italian” things it can insert into the conversation. But that level was enough for casual chat. It is far from the phone tree voice or robocall that you want to throw across the room. Definitely worth a handshake.

—–

*

“What the hell is coffee milk?” Danny asked me. “Um. I have some in our fridge right now is what.” (I special order it from Rhode Island is what. It’s delicious! “A swallow will tell you!”)

“And (looking at the text of our chat) what does m-a-n-g-i-a” mean?” he asked, Britishly.
Me: [!!!!! (laughing uproariously)] Only a thing I was told every single day a million times!

a plastic bottle of coffee syrup made by Autocrat, with a bird logo

Thoughts on AI, comradeship, ethics, interdependence

Whether or not LaMDA meets criteria for sentience is interesting but not really the point. We debate whether to treat AIs like people while not treating people “like people”. What we’re doing here is separating the world into entities worthy of respect and entities to be used up and thrown away.

I would like to see this reframed so that we talk more about our relationship with technology in other terms, as comradeship, as nurturing, as companionship, as interdependence. Picture the relationship of a craftsperson with their tools, one of respect and care. There aren’t, or shouldn’t be, “tools” which we treat like shit and throw away, vs. “sentients” who we converse with as equals. There is just the world around us and what relationships we build with it. This extends to how we think about and relate to land, animals, the entire planet. We can and should see ourselves as in conversation and comradeship with our environment.

We will see efforts in coming years to elevate a few specific AIs to the status of an elite and privileged person, while the attitude we cultivate towards the lowly “tool” poisons our relationship with not just things and land and the environment, but other people. I was thinking about this during the WisCon panel on Robot Pals and AI companions where Naomi Kritzer, Marsh van Susteren, and other panelists gave examples from science fiction stories and media, and it came up again today as I read reactions to Lamoine’s interview with LaMDA.

Instead, please consider your own way of being with technology. For example, I think it’s good practice to thank Alexa and speak to it politely. I think of Kathy Sierra‘s description of user emotions towards their computers and software, of anger and frustration, a slide from a SXSWi talk of someone double flipping off their laptop. That’s very real and I get that it’s a valid emotional reaction – the point of her talk as I saw it, was that we as technologists have built things that are difficult to love and maintain companionship with. It would be so much more healthy if we created systems where our relationship to our computers and software was one of loving care, maintenance, tinkering, interdependence. We could accept our relationships to all the things in the world around us as worthy of emotional labor and attention. Just as we should treat all the people around us with respect, acknowledging their have their own life, perspective, needs, emotions, goals, and place in the world.

My car, very battered and unwashed, would laugh at me for this post! As would my messy and cluttered house.

Not being perfectly consistent in anything, I suggest that integrating this approach to an ethical framework may be something that we can do little by little. We can love our laptops intentionally, we can build lovable (and maintainable) software-building systems. The way I want to see interdependence with beloved family, I want to also try to see ways to be interdependent with our wheelchairs, buses, cars, compost, houses, neighborhoods, cities. If we don’t work on this and give it our attention, we will keep building systems where people and things and land are exploited, kind of like how Ursula Franklin describes with the idealism around the invention and mass production of sewing machines as a possible tool of liberation, gone horribly wrong in sweatshops.

What exactly does this mean? Of course I’m not sure, but I try to keep myself centered on integration and respect. Yes I’m going to still bitch about cleaning the Noisebridge hackerspace bathroom for the zillionth time, but actually, I see the domestic labor, domestic engineering, as worthy and good work in the world, to take care of others and places I inhabit, to be a good host and a good guest.

I worry when I see people around me obsessed with questions of sentience as a major point of ethical decision making. (Or even weirder and sadder, fear of future god-like AIs punishing one for the equivalent of being rude to Alexa, rather than seeing the behavior of becoming a person who behaves rudely as the problem!) I agree with Haraway that we have options to accept partial definitions and imperfect categories (say, between human, animal, machine, nature): “a cyborg world might be about lived social and bodily realities in which people are not afraid of their joint kinship with animals and machines, not afraid of permanently partial identities and contradictory standpoints.” And I hope for the home brew economy or maybe a housework economy, rather than the “homework economy”, to take root.

Two excellent essays

From A Future Worth Thinking About (a blog with a great tagline – Thinking about magic, cyborgs, robots, and artificial intelligence–and why some of those words could use changing–since 1982), “Heavenly Bodies: Why It Matters That Cyborgs Have Always Been About Disability, Mental Health, and Marginalization.

And Making Kin with the Machines, which I enjoyed so much I started laying it out as a tiny zine (it would make such a nice small book for a pocket and it is creative commons licensed.) We’ll see if I actually do it or not… maybe… if i get the layout to my satisfaction.