<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Nosebook 👃🏿📓</title>
    <description>The 👃🏿📓 (NoseBook) site is a personal weblog for online research, articles, tutorials, notes and ideas. It a digital notebook of collected and constructed resources, code snippets, a personal collection of writing and links intended as an &quot;always under construction&quot; knowledge base.</description>
    <link>http://leetusman.com/nosebook/</link>
    <atom:link href="http://leetusman.com/nosebook/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Tue, 02 Jun 2026 07:04:45 +0000</pubDate>
    <lastBuildDate>Tue, 02 Jun 2026 07:04:45 +0000</lastBuildDate>
    <generator>Jekyll v3.10.0</generator>
    
    
    
    <!-- Feed pages first (Log page) -->
    
      <item>
        <title>Log</title>
        <description><![CDATA[<h1 id="log">Log</h1> <p><em>This is a page for ongoing tiny updates on my projects and research, including technical notes, code, and screenshots of work in progress. You can <a href="https://leetusman.com/nosebook/feed.xml">subscribe to the RSS feed</a>.</em></p> <h2 id="2026-06-01">2026-06-01</h2> <p>Kit and I finished up our two accepted articles, for Computing within Limits as well as IEEE journal Computer.</p> <p>This past week I started working with Sam on their Contributor fellowship, part of GSoC, organized in conjunction with Processing Foundation.</p> <p>We’re going to launch a <a href="https://notapipe.itch.io/l5/devlog">L5 blog on Itch</a> this summer. we also tried out an alternative, adding the blog to our L5 site directly but our SSG required more plugins than we wanted to fiddle with. I even tried hand coding the blog generator but I don’t want to go too deep on that as it adds complexity for others that may want to contribute to the L5 documentation site. Trying out blogging / devlog’ing on Itch will go hand in hand with another little pilot to host a mirror of <a href="https://notapipe.itch.io/l5">L5 on Itch</a>. We’re piggybacking on some of Itch’s infrastructure potentially using it for a mini forum and the devlog for example and I think some jams. Beyond using their infra a goal is to bring in more folks and playful games community on Itch seems like a natural group to work with.</p> <p><img src="{{&quot;/images/log/l5-slime.gif&quot; | absolute_url}}" alt="slime mold in L5" /><br /> <em>A basic slime mold simulation</em></p> <p>On Thurs we’ll run a workshop at ITP Camp with an intro to L5 as well as a jam. I came up with a slime mold jam theme as well as example programs for participants to build upon.</p> <h2 id="2026-05-21">2026-05-21</h2> <p>In progress for the <a href="https://itch.io/jam/tweettweetjam-11">#TweetTweetJam</a> happening next week, where people make small 500-character-or-less games and post to Itch, I tried out a test to do some sizecoding (minimizing code size) in L5. Tweettweetjam traditionally results in lots of Pico-8 submissions, since it’s a game engine and the language and API support minimal coding. L5 currently (and might always) require the require statement as well as setup() or draw(), which adds some boilerplate.</p> <p>Nonetheless, here’s one solution for the classic 10print maze ported from BASIC.</p> <div class="language-lua highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">require</span><span class="s1">'L5'</span><span class="k">function</span> <span class="nf">draw</span><span class="p">()</span><span class="n">textSize</span><span class="p">(</span><span class="mi">48</span><span class="p">)</span><span class="n">c</span><span class="o">=</span><span class="n">frameCount</span> <span class="n">text</span><span class="p">(</span><span class="n">random</span><span class="p">()</span><span class="o">&gt;</span><span class="p">.</span><span class="mi">5</span> <span class="ow">and</span><span class="s2">"</span><span class="se">\\</span><span class="s2">"</span><span class="ow">or</span><span class="s2">"/"</span><span class="p">,</span><span class="n">c</span><span class="o">%</span><span class="mi">40</span><span class="o">*</span><span class="mi">20</span><span class="p">,</span><span class="n">floor</span><span class="p">(</span><span class="n">c</span><span class="o">/</span><span class="mi">40</span><span class="p">)</span><span class="o">*</span><span class="mi">48</span><span class="p">)</span><span class="k">end</span> </code></pre></div></div> <p>It’s a bit of a weird solution, but it saves some characters over doing nested for-loops. The textSize() is required for getting good quality maze lines. It was too small with too much margins otherwise.</p> <p><img src="{{&quot;/images/log/l5-10print-sizecoding.webp&quot; | absolute_url}}" alt="a minimal maze made in L5" /><br /> <em>A minimal 10print-style maze in just over 100 characters</em></p> <p>The <a href="https://10print.org/">original</a> in Commodore 64 BASIC is only 38 chars, so that’s definitely more <em>elegant</em> in a way:</p> <pre><code class="language-BASIC">10 PRINT CHR$(205.5+RND(1)); : GOTO 10 </code></pre> <h2 id="2026-05-17">2026-05-17</h2> <p>I visited... <p><a href="http://leetusman.com/nosebook/log/">Read more...</a></p>]]></description>
        <pubDate>Sun, 04 Jan 2026 00:00:00 +0000</pubDate>
        <link>http://leetusman.com/nosebook/log/</link>
        <guid isPermaLink="true">http://leetusman.com/nosebook/log/</guid>
      </item>
    
    
    <!-- Then posts -->
    
      <item>
        <title>A Review of Minutiae</title>
        <description><![CDATA[<p><img src="http://leetusman.com/nosebook/images/coin-table.webp" alt="Sorting coins on a table" title="Sorting coins on a table" /></p> <p>This is an off the cuff review of <a href="https://minutiae-app.org/">Minutiae</a>, which is a minimalist photo app of sorts, described as an <em>anti-social media</em> app, a place to save small moments from life, once a day, over a four year timespan. I spontaneously started writing it a couple minutes after one of the impromptu prompts popped up and I took a photo of my camping gear laid out and felt some calm in the chaos.</p> <p>I initially signed up when it was first out, I think in 2017, though I’m not sure 100%. The premise of the app as I understand it is to record your ‘mundane’ daily moments, unfiltered, as a kind memento of life as it is lived. The way it works is that once a day at a apparently random moment, all over the world, everyone using Minutiae gets an alert to open their app and take a photo of their immediate environment. Technically, if you pay for a subscription ($20 annually), you have up to 5 minutes (I believe?) to respond to the alert. Once the app is opened you have 5 seconds to aim the camera before it takes a photo.</p> <p>This is the moment I find just some slight nervousness, like, what do i want to save into my digital time capsule? Because I know it will become a part of my personal record, and it will get shared with others too! More on that in a moment. I usually quickly look for something to shoot, almost always aim it away from me and at something interesting in my environment, but often I am at home, or on the subway, on my couch, or in a meeting with friends, or even teaching (i think that happened once).</p> <p>Once the photo is snapped, it uploads via data or wifi, or with neither, it temporarily saves to the app, and you can swipe left or right to see your own previous photos. Or click a box underneath and it pulls up a random stranger’s photo from somewhere else in the world showing what they just photographed in front of them. Then you have 60 seconds (I believe) to swipe through and look at that stranger’s previous photos and/or your own previous photos.</p> <p>After 60 seconds the app hides the photo you’ve taken, your past photos, and the stranger you were paired with’s photos. You’ll be able to see your own past photos again the next time you shoot something with the app, at least as much as you can swipe through in 60 seconds, but you will probably never see the stranger’s photos again.</p> <p>When I signed up the first time I was a grad student at UCLA studying design media arts. I had met the founders of the app through School for Poetic Computation several years earlier, in New York. I was somewhat interested in the idea, but honestly wasn’t sure how motivated... <p><a href="http://leetusman.com/nosebook/minutiae">Read more...</a></p>]]></description>
        <pubDate>Sat, 23 May 2026 00:00:00 +0000</pubDate>
        <link>http://leetusman.com/nosebook/minutiae</link>
        <guid isPermaLink="true">http://leetusman.com/nosebook/minutiae</guid>
      </item>
    
      <item>
        <title>Where does media art fit within the arts? OR: Is New media / Game Arts / Digital Art a Fine Art, or Ain&apos;t It?</title>
        <description><![CDATA[<p>I began writing this post less than an hour after getting rejected for an arts fellowship I applied to. To avoid this being a gripe or rant I’ve captured my initial thoughts that were top of mind but then I’ve waited a couple hours before finishing writing this to make sure it’s tempered with more expansive and generous thoughts.</p> <p>In today’s case, like most things I apply to, the rejection email did not provide any feedback guidance so I am speculating without having a ton of data. As part of the application process I had met with the org director, so I have at least some knowledge that I was a good fit, and based on some research, I believe the issue was the classic one I’ve dealt with a number of times: is my artwork contextualized as <em>fine</em> art like sculpture, painting, poetry? Or is it not?</p> <p>To be clear, there were likely dozens of applications for this fellowship and far less accepted. I could have had a weaker application, or not fit their needs. Or many other reasons. And since they provide no feedback on the app I do not know why I was rejected. I also think it’s normal and okay to go through this process. I shouldn’t be accepted to a fellowship just because I think I was a good applicant! That’s for them to decide. But based on a hunch I am wondering this time if it’s because I present as a “media artist” with currently many game arts projects that are experimental narrative works but to someone that hasn’t thought much about games as medium, it might look like any old generic video game to them. Or else too out-of-the-box, too not traditionally art for them. And when that feeling happens - it’s common! - I start to ruminate. Thus this blog post.</p> <p>Let’s start with self-identification as an artist. I’m trying to write about the phenomenon that most of us working with a computer to make our art are seen as outside of traditional fine arts media. I’m encompassing those working on the computer primarily to make their art who may identify as “media artists”, “new media artist”, working in “game arts”, “digital art”, “computational art” and many other related terms. Or we’re just “artists.” My bio on my website says “artist” for example. And this is absolutely not a new issue, and not even necessarily different from similar boundaries thrown up between fine art versus craft for example, or anywhere folks patrol the edges of discipline.</p> <p>Straight up, for artists working in digital media, some see our work as outside of the bounds of art shown in mainstream arts settings. This isn’t confined to the domain of residency/fellowship/grants but of course at all levels. I have a MFA from a “Design Media Arts” graduate program at UCLA, which is housed within its art school but considered separate from its Arts MFA, with different professors and cohort of students artificially kept apart even... <p><a href="http://leetusman.com/nosebook/where-media-art">Read more...</a></p>]]></description>
        <pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate>
        <link>http://leetusman.com/nosebook/where-media-art</link>
        <guid isPermaLink="true">http://leetusman.com/nosebook/where-media-art</guid>
      </item>
    
      <item>
        <title>Building my own Vi text editor in BASIC</title>
        <description><![CDATA[<h2 id="or--reinventing-a-crappier-vim">OR: Reinventing a (crappier) Vi(m)</h2> <p>This is a post about my new text editing program <em>yvi</em>.</p> <p>I like reinventing wheels. At least I do when it comes to making things like art , craft, food, or code. It’s how I learn. And it’s how I can shape tools or work to fit my own mind. I think because my background is in art, and because I didn’t formally learn Computer Science, despite the fact that I teach it, my software has a bit of a handmade feel to it.</p> <p>As a case in point, I’ve built my own static website creator panblog when I grew frustrated with other more well-known alternatives that were clunky, poorly documented, or bloated pieces of software.</p> <p>I’m also drawn to programming languages and paradigms that are a bit out of step with the mainstream and especially silicon valley’s current conception of software. For example, I love glue languages, languages and libraries for learners, and am a fan of scripting languages. My favorites are Lua, Bash, Fish, Forth-likes and BASIC.</p> <p>Last year I spent a couple months researching and writing BASIC, specifically the Yabasic dialect, which is about a quarter century old and continously maintained. While I’ve been recommended by online friends to try out some other variants, I’ve found it easy to use and well-documented. It’s not the greatest for building graphical user interfaces, at least in my experience, but I use L5, or Processing-p5 libraries for that.</p> <p>For a modern BASIC, it’s quite fun to use. I made my own cyber-hoss racing game , a command line game inspired by the UFO50 and Flash game Quibble Race. I also tinkered with the internals of the text version of The Oregon Trail, and built a clone, a simple version of Dope Wars economic simulation game.</p> <p>Recently I came across The People’s Permacomputer, a project by Vidak, which led me to the online home for a great active <a href="https://basiclang.solarpunk.au/">BASIC Programming forum</a> and various linked projects to build a <a href="https://www.hackster.io/sl001/aim65-lookalike-computer-from-scratch-8d94d6">1970s style computer</a> from scratch. I’ve been using Neovim (and before that, Vim) for years and years. I’ve never made a text editor before. But I decided it could be fun to try to implement my own. Vi seemed like a tall order to implement, but I’ve been using Offpunk, a small <em>simple</em> (arguable what this means) TUI client for browsing the internet including the world wide web and Gemini protocol. It has just a few implemented shortcuts like h/j/kl and g and G and others for moving around. So inspired by this, I thought I could likely build an ULTRA simple editor with a mininum of Vim commands. How hard could it be?</p> <p>Well, it wasn’t too hard! With Yabasic in a hundred lines of code or so I quickly implemented the basic layout of a minimal blank page and added in those simple Vi commands for moving around and switching between insert and normal modes. I added the ability to open a file... <p><a href="http://leetusman.com/nosebook/yvi">Read more...</a></p>]]></description>
        <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>
        <link>http://leetusman.com/nosebook/yvi</link>
        <guid isPermaLink="true">http://leetusman.com/nosebook/yvi</guid>
      </item>
    
      <item>
        <title>L5 creative coding library - Spring 2026 updates</title>
        <description><![CDATA[<p><img src="http://leetusman.com/nosebook/images/log/L5-blobbies.webp" alt="L5 blobbies in a grid" title="L5 blobbies custom shapes randomly made, in a rainbow of randoml colored grid" /></p> <p><a href="https://l5lua.org">L5</a> is a creative coding library in the family of <a href="https://processingfoundation.org">Processing/p5</a>, aimed at artists and learners, and responding to principles of <a href="https://permacomputing.net">permacomputing</a>. L5 is in alpha, and was initially released in December 2025. It is implemented in Lua and uses the LÖVE framework under the hood. It is free and open source and is developed by a growing community of contributors.</p> <p>This is a roundup blog post on recent work in spring 2026 relating to L5, its contributors, community, and maintenance.</p> <p>We recognize all contributors to our open-source project, including code, documentation, issues and any other way that contributes to the library and its community.</p> <p>15 people have pushed code to L5 or its documentation site. An additional several dozen people have emailed, discussed or otherwise sent in suggestions, feedback and improvement ideas for the library and its community. Thank you to everyone that has contributed to or uses L5.</p> <h2 id="usability-studies">Usability Studies</h2> <p><img src="http://leetusman.com/nosebook/images/l5-usability.webp" alt="L5 usability studies report cover" title="L5 usability studies report cover" /></p> <p>Thanks to two teams of graduate students from University of Washington’s department of Human Centered Design and Engineering. Julie Lee, Ruiyi Gao, Keye Yu, Sabrina Kang conducted usability studies for beginners to L5 and creative coding. Kathryn Rambo, Swathi Sridhar, Manish Varrier, Auli Badoni conducted usability studies on those with previous creative coding experience in p5.js or similar. Their findings were published as two different reports, which are posted in this <a href="https://discourse.processing.org/t/l5-usability-testing-for-creative-coders-coming-from-processing-and-p5-js/47903/3?u=lee">L5 discourse thread</a>. We’ve already begun to address their findings, and will be spending the summer implementing as many of their suggestions as we can. A huge thank you to these teams of students for their helpful research into L5. This has been a seriously helpful experience working with them.</p> <h2 id="workshops-presentations-and-discussions">Workshops, Presentations and Discussions</h2> <p><img src="http://leetusman.com/nosebook/images/l5-lgm.webp" alt="L5 slide at the Libregraphics meetup" title="L5 at the libregraphics meetup" /></p> <p>L5 was included in the <em>State of LibreGraphics</em> conference in Nuremberg, Germany in April.</p> <p>There were introductory and creative computation workshops in L5 at the Algorithmic Art Assembly festival at Gray Area in San Francisco, at the Electronic Faire at Temple University’s Charles Library makerspace in Philadelphia, and online as part of CCFest.</p> <p>I gave talks on L5 at Algorithmic Art Assembly, WordHack in Brooklyn, the Permacomputing NYC meetup, and at the Berlin Permacomputing Meet-Up.</p> <p>Thanks to everyone that attended these workshops and talks, and for your feedback and discussion. These have led to ideas and improvements implemented and under consideration for L5 and its ecosystem.</p> <h2 id="library-upates">Library Upates</h2> <p>L5 is in alpha and not at feature parity with Processing and p5.js completely. While we won’t be matching every one of their features - for example, it does not make sense to add p5’s DOM/browser functions - there is room for improvement to the library. Currently, L5 has about <a href="https://l5lua.org/reference">200</a> functions implemented.</p> <p><img src="http://leetusman.com/nosebook/images/log/l5-slideshow.webp" alt="What is permacomputing slide... <p><a href="http://leetusman.com/nosebook/l5-dev-spring2026">Read more...</a></p>]]></description>
        <pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate>
        <link>http://leetusman.com/nosebook/l5-dev-spring2026</link>
        <guid isPermaLink="true">http://leetusman.com/nosebook/l5-dev-spring2026</guid>
      </item>
    
      <item>
        <title>No-input is my instrument: An intro to Making Music with a No-input Mixing Board</title>
        <description><![CDATA[<p><em>You can listen to this album mix to accompany reading this post. ZK/U 1 by ExquisiteCorp, kuunsirpale and Ella Prokkola recorded live at ZK/U art residency, Berlin, DE 22 October 2025.</em></p> <iframe style="border: 0; width: 350px; height: 470px;" src="https://bandcamp.com/EmbeddedPlayer/album=3543849770/size=large/bgcol=ffffff/linkcol=0687f5/tracklist=false/transparent=true/" seamless=""><a href="https://exquisitecorp.bandcamp.com/album/zk-u-1">ZK/U 1 by ExquisiteCorp, kuunsirpale and Ella Prokkola</a></iframe> <p><img src="http://leetusman.com/nosebook/images/log/no-input-zelin.webp" alt="Zelin manipulating our No-input mixing board" title="Zelin's hand manipulating our no-input mixing board instrument" /></p> <p>Later this year I’d like to put out a zine about No-Input Mixing Board Music. But I thought I could start with an introductory blog post! So here we are.</p> <p>In the fall I was an artist-in-resident at ZK/U in Berlin - a really special artist-in-residency, where I live/worked with a dozen other artists from around the world. I worked on <a href="https://l5lua.org">L5</a>, a creative coding library in Lua, and created half a dozen artworks and installation using the coding library. In addition, I brought my modular synth with me and played some shows and jams around the city, and performed at Z/KU. Not long after I began the residency I visited the depths of the ‘gear closet’ and found an old Mackie mixer sitting around. A light went off in my head and I remembered: hey, this could work for no-input mixing board music. And I brought the mixer out of the basement and into my studio to work with it.</p> <p>In some ways, writing about no-input mixing board feels like a ‘throwback’ because it became popular among experimental sound musicians about 20 or 15 years ago. And yet, this is a niche group, and I think the full depths of the instrument haven’t been fully explored. And at a time that so much gear and music subculture has been containerized and gear gets productized it feels like a ripe time for re-exploration of techniques and systems that work against products, planned obsolescence and proprietary usage. I am particularly on this wavelength recently as I think about <a href="https://permacomputing.net">permacomputing</a>. More on that later.</p> <h2 id="what-is-the-no-input-mixing-board-instrument">What is the No-input mixing board instrument?</h2> <p>I don’t know if this will make sense to anyone else, but I think of the no-input mixing board as falling roughly between a synthesizer, a radio, a violin and a bank of buttons on an elevator.</p> <p>The name “no-input” is misleading: there is input. Typically no-input mixing involves plugging an output from an analog mixing desk back into the mixer’s input so that the circuit forms a loop: an oscillator. Feedback transforms the controls on the mixer so that they modulate the sound output, which is what turns the mixer into a playable instrument. Audio feedback develops through this loop, with a large variety of sound textures possible as you continue to add more output to input routing on the mixer. The faders and knobs on the mixer allow for immediate playback manipulation - massively changing the sound.</p> <p>The No-Input Mixing Board has been called the “poor man’s synthesizer,” but unfortunately I can’t remember where I heard that. You don’t need to... <p><a href="http://leetusman.com/nosebook/no-input">Read more...</a></p>]]></description>
        <pubDate>Fri, 06 Mar 2026 00:00:00 +0000</pubDate>
        <link>http://leetusman.com/nosebook/no-input</link>
        <guid isPermaLink="true">http://leetusman.com/nosebook/no-input</guid>
      </item>
    
      <item>
        <title>Being part of an art collective</title>
        <description><![CDATA[<p><em>I originally wrote this short post in August 2021 for another online space but am RE-PLANTING it here. I realized that lots of people have never worked in this mode of collectivity, and I thought it would be good to capture down some of what makes them work and how they function. This isn’t a prescriptive post about HOW to organize as an artist collective but just a simple description of how four of the collectives I’ve been part of organize themselves. Originally I did not write the names of the communities, but now in spring 2026 I am just naming them. While re-planting this post here I got the idea that I should write up a follow-up post on the HOWs of artist-run collectives and spaces: how do we organize? why do we organize? how are conflicts resolved? how do decisions get made? etc. Look for a follow-up post hopefully soon.</em></p> <p><strong>Written 2021-08-12</strong></p> <p>Starting when I began undergrad college and continuing for 15 years I worked in small non-profit arts organizations: these were small art museums or art and performance-presenting organizations. After graduating from undergrad I joined a new residency program with individual studios and shared gallery. I was living at home so the studio and gallery gave me independence and gave me a meeting space and community. A few years later I began working with artist collectives. These were generally groups of 5 - 10 people that collectively had studios and a gallery space, or maybe just the gallery space. The kinds of collectives I’ve been part of:</p> <ol> <li> <p>Let’s call this one LB (<strong>update 2026: this is Little Berlin</strong>), an artist-run space (about 5 - 10 floating organizers) with monthly exhibits, weekly parties/raves, performance art events, community garden, BBQs, zine library and more (in Philadelphia). I first learned about it when I was on a first or second date with someone and she took me there. I met the organizers, who said they really needed help, and I was game. Soon it came to take over a large part of my life. While running a ‘professional’ non-profit I put an equal amount of time into organizing the space. But sadly, the space is now closed under the pandemic, and I haven’t been part of it for many years since I left that city. Lately I’ve been in touch with past members and we’ve been talking about how to ‘archive’ and preserve the activities, zines and documentation of exhibits. Not technically a legal entity. We did have a shared bank account, kind of like if we were a local baseball team or club. We lived in an area where we as DIY and grassroots artists contributed to a process of gentrification, and soon found ourselves surrounded by new construction, families moving in who couldn’t tolerate our late night events, and conflicts with new property developers and the warehouse owner we were located within. The organizers (we called ourselves ‘members’ or ‘curators’) were all close, lived within a... <p><a href="http://leetusman.com/nosebook/collectives">Read more...</a></p>]]></description>
        <pubDate>Sat, 21 Feb 2026 00:00:00 +0000</pubDate>
        <link>http://leetusman.com/nosebook/collectives</link>
        <guid isPermaLink="true">http://leetusman.com/nosebook/collectives</guid>
      </item>
    
      <item>
        <title>What&apos;s cooking with L5? New events, documentation and printToScreen - February 2026</title>
        <description><![CDATA[<p><img src="http://leetusman.com/nosebook/images/l5-ice.gif" alt="Computational poetry showing stripes and text responding to ICE raids (compressed gif animation excerpt)" title="Computational poetry showing stripes and text responding to ICE raids - compressed gif animation excerpt" /><br /> <em>Computational poetry showing stripes and text responding to ICE raids, code in L5 (animation has been shortened, excerpted, color reduced and compressed)</em></p> <p>I’m not sure if I’ll do a post every month on <a href="https://l5lua.org">L5</a>, the creative coding library I initiated summer/fall 2025 and that is now out in an alpha version, but there’s enough activity happening that it seems like a good idea to capture work and ideas down somewhere to track progress.</p> <p>Since I last wrote about the <a href="https://leetusman.com/nosebook/L5-meetup">first L5 contributors meeting</a> we’ve now held a second meeting, though this one was rolled into the first <a href="https://nyc.permacomputing.net">Permacomputing NYC</a> meetup, with one part of it being about L5. We had 20 people show up, discussed permacomputing, which was a spirited conversation, and then had a presentation on <a href="https://lichen.commoninternet.net/">Lichen-Markdown</a> by Max Fowler, followed by my own presentation on L5. Also I want to note that <a href="https://permacomputing.net/L5/">L5 now has a page on the Permacomputing Wiki</a>.</p> <p>Since last month’s meetup, L5 now has:</p> <ul> <li><a href="https://l5lua.org/download/">Step by step install guides for Mac, Windows and Linux</a></li> <li>a new <a href="https://l5lua.org/reference/printToScreen/">printToScreen()</a> function</li> <li>updated <a href="https://l5lua.org/getting-started/">Getting Started</a> instructions for your first steps after installing L5 and Love2d</li> <li>new <a href="https://l5lua.org/contributing/">Contributing to L5</a> guide (thanks to Jessica Garson for contributing this!)</li> <li>updated <a href="https://l5lua.org/download/#l5-starter-project-recommended">L5 Starter</a> project that is more beginner-friendly (thanks to the entire group that contributed ideas to this at the last contributors meetup)</li> <li>there were also a few contributed <a href="https://github.com/L5lua/L5-website/pulls?q=is%3Apr+is%3Aclosed">pull requests to the L5 website</a> that fixed typos, added links, corrected code examples</li> </ul> <p>This is so exciting, that L5 is starting to grow a community around it!</p> <p>In the coming month or two there are a few events where I’ll be presenting L5. There is going to be an L5 workshop at the next <a href="https://ccfest.rocks/">CCFest 2026</a> on March 21, a talk I’ll give on L5 for the next <a href="https://withfriends.events/event/IfGKzXyY/wordhack-feat-lee-tusman-jackie-liu-and-game-poems-magazine/">Wordhack</a> at Brooklyn’s own Wonderville on February 19, and an in-person workshop with L5 at the <a href="https://aaassembly.org/">Algorithmic Art Assembly</a> at Grey Area in San Francisco on March 26.</p> <h2 id="new-feature-printtoscreen">New feature: printToScreen()</h2> <p><img src="http://leetusman.com/nosebook/images/printToScreen-example.gif" alt="L5 code in the Neovim editor on left and the running code sketch in the center shows drawing lines based on mouse and an onscreen print() output that scrolls" title="Example of printToScreen function in a sketch and rendering print output to the window" /><br /> <em>L5 code in the Neovim editor on left and the running code sketch in the center showing drawing lines based on mouse position and an onscreen print output that scrolls. Animation is an excerpt of running program, with compressed colors and reduced graphical fidelity/detail</em></p> <p>As mentioned, L5 now ships with a new function <strong><a href="https://l5lua.org/reference/printToScreen/">printToScreen()</a></strong>. Simply add that function to your code somewhere, like in setup(), and then print() output will display onscreen. This allows... <p><a href="http://leetusman.com/nosebook/whats-cooking-feb">Read more...</a></p>]]></description>
        <pubDate>Fri, 13 Feb 2026 00:00:00 +0000</pubDate>
        <link>http://leetusman.com/nosebook/whats-cooking-feb</link>
        <guid isPermaLink="true">http://leetusman.com/nosebook/whats-cooking-feb</guid>
      </item>
    
      <item>
        <title>Command Line Incantations for audiovisual magick</title>
        <description><![CDATA[<p><img src="http://leetusman.com/nosebook/images/interworld.webp" alt="duotone manipulated image of Interworld performers at a club night" title="Interworld performs at a club night, duotone image" /><br /> <em>Manipulated duotone image of Interworld Media performing at Algorithmic Pattern Salon - Photo edited with didder (dithering, duotone) and imagemagick (file conversion).</em></p> <p>These are command line shell snippets for useful utilities, sometimes referred to as <em>incantantions</em>. In a way, they are a kind of magic spell. These incantations transform text, images, audio and video.</p> <p>If you’re not a command line user and not interested in learning it (also an okay choice!), I can recommend the free and open source GUI tool <a href="https://krita.org/">Krita</a> for digital drawing and image manipulation. I actually prefer it to Photoshop. And for audio manipulation I recommend <a href="https://www.audacityteam.org/">Audacity</a> for basic editing and recording.</p> <p>I’ve written previously on <a href="https://leetusman.com/nosebook/why-cli">Why I use the command line</a>, and <a href="https://leetusman.com/nosebook/bash-alternatives">Command line alternatives to cloud products and platforms</a>. By far the simplest explanation of why you might use this instead of individually opening up a GUI like Krita is because the command line is a lot faster, rarely changes, and can be automated for converting an entire folder of images. For an intro to using the command line, there are many introductions online, or check out my decade+ old workshop notes for <a href="https://github.com/lee2sman/ITPCampSessionNotes/blob/master/IntroToCommandLine_ITPCamp.md">Intro to the Command Line</a>.</p> <p>Getting started with the command line does feel magical as you start to learn just how easy and fast it can be. But it takes time building up your spellbook. This page aims to be a place to find many of these starter scripts, especially for working with graphics and audio. Adapt and improve them to your needs.</p> <p>This is a living page. More snippets may be added over time.</p> <p>The workhorse programs we are using in the command line here are:</p> <ul> <li><a href="https://pandoc.org/">pandoc</a> for converting text between various formats, such as text to a website, ebook or pdf</li> <li><a href="https://imagemagick.org/">imagemagick</a> for manipulating images, such as resizing, converting to black and white, removing the background, etc</li> <li><a href="https://en.wikipedia.org/wiki/SoX">sox</a> for converting, playing back and editing audio files</li> <li><a href="https://ffmpeg.org/">ffmpeg</a> to record, convert and stream audio and video</li> </ul> <p>Optional but also useful:</p> <ul> <li><a href="https://www.ghostscript.com/">ghostscript</a> for PDF creation</li> <li><a href="https://weasyprint.org/">weasyprint</a> for converting websites to PDF</li> <li><a href="https://tesseract-ocr.com/">tesseract-ocr</a> for scanning images and converting to plaintext output</li> <li><a href="http://aspell.net/">aspell</a>, a spell checker I use to autocorrect spelling errors</li> <li><a href="https://github.com/makew0rld/didder">didder</a>, for making dithered images</li> </ul> <p>Many of these programs I use in <a href="https://en.wikipedia.org/wiki/One-liner_program">one-liner</a> command line incantations. To convert a whole folder of files it is sometimes helpful to use them in a script.</p> <h2 id="file-conversions---video">File conversions - Video</h2> <h3 id="convert-between-video-file-formats">Convert between video file formats.</h3> <p>This ffmpeg incantation converts between formats without re-encoding.</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ffmpeg -i input.avi -c:v copy -c:a copy output.mp4 </code></pre></div></div> <h3 id="trim-out-a-section-of-a-video-file">Trim out a section of a video file</h3> <p>With ffmpeg you can specify the start time and total length of time to record. In the snippet below we’ve specified 1 minute in (00:01:00) to... <p><a href="http://leetusman.com/nosebook/cli-snippets">Read more...</a></p>]]></description>
        <pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate>
        <link>http://leetusman.com/nosebook/cli-snippets</link>
        <guid isPermaLink="true">http://leetusman.com/nosebook/cli-snippets</guid>
      </item>
    
      <item>
        <title>Notes from the first L5 Contributors Meetup</title>
        <description><![CDATA[<p><img src="http://leetusman.com/nosebook/images/buzz-c9.jpg" alt="A taped-up sign that says L5 &amp; Permacomputing - Buzz C-9" title="a taped-up sign that says L5 &amp; Permacomputing - Buzz C-9" /></p> <p>Today we held a small <a href="https://l5lua.org">L5</a> Contributors Meetup in Brooklyn, New York.</p> <p><a href="https://l5lua.org">L5</a> is a Lua-based creative coding library from the family of Processing-p5 languages and is out in early alpha now about a month.</p> <p>I posted on my own <a href="https://www.instagram.com/leetusman">instagram</a> last Thursday that I was looking for some help this week testing L5 on various computers, including old Mac and PCs, and almost a dozen people responded that they wanted to meet up. I was blown away, and realized that my apartment wouldn’t accomodate that, nor would a backup conference room I had quickly booked at the library. I kept looking for another space we could move to based on our size and thankfully a friend from CuteLab offered to host us. That was a good fit because it’s an electronic instrument/hardware hacker-type space where folks were engaged in writing software and building hardware instruments.</p> <p>I hadn’t intended this to necessarily be the first <em>Contributors Meetup</em> but as we were going to have a pretty good size quorum of folks together, I put together an agenda for things to work on.</p> <p><img src="http://leetusman.com/nosebook/images/L5contributors-meetup1.jpg" alt="Folks working on their computer on couches and chairs" title="people sitting on couches and chairs working on their computer at the L5 Contributors meetup" /></p> <h3 id="agenda">Agenda</h3> <ul> <li>Introductions</li> <li>Intro to L5</li> <li>Permacomputing</li> <li>Breakout groups: try installing L5 and improve or create better documentation <ul> <li><a href="https://L5lua.org">Website</a> and <a href="https://github.com/L5lua/L5">L5 repo</a> and <a href="https://github.com/L5lua/L5-website">L5 website repo</a></li> <li>Writing in Markdown</li> <li>Working with “issues” on GitHub</li> </ul> </li> <li>Test L5 for feature parity, test shaders, report bugs, fix bugs</li> <li>What else? and What next?</li> </ul> <p>We met for 3 hours and there were 10 folks joining. I knew roughly half of the people. Most everyone did some form of creative computing but people came from varied backgrounds such as professors teaching with Processing and p5, past students, someone specialized in working with old hardware, live coders, and a friend that professionally writes documentation.</p> <p>After introducing myself and the L5 library it turned out that about half of the group was already familiar with <a href="https://permacomputing.net/">permacomputing</a>. That was more than I had expected. We had a great conversation about the motivation for a creative coding library for older and lower-powered machines, about consumption and computers, and spoke about our own experiences in the field.</p> <p>The next steps were to break out and work on installing L5, with an eye to testing the installation documentation and seeing where it could be improved. Within the group we had people testing on Mac, Windows, Linux, iOS (via Love2d-Studio) and Android. As predicted, the Mac and PC install instructions needed some work. Some bugs were reported, screenshots made. Some people made pull requests of the documentation.</p> <p>This will seem obvious as I say it, but it’s so nice to have people in a room together,... <p><a href="http://leetusman.com/nosebook/L5-meetup">Read more...</a></p>]]></description>
        <pubDate>Tue, 13 Jan 2026 00:00:00 +0000</pubDate>
        <link>http://leetusman.com/nosebook/L5-meetup</link>
        <guid isPermaLink="true">http://leetusman.com/nosebook/L5-meetup</guid>
      </item>
    
  </channel>
</rss>
