<?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, 12 May 2026 05:21:52 +0000</pubDate>
    <lastBuildDate>Tue, 12 May 2026 05:21:52 +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-05-10">2026-05-10</h2> <p>I visited the Greater New York triennial at MOMA PS1 and I loved it. There was a LOT of incredible work. Kudos to the curators. Of course, I’ve always loved this museum, and its curation. And it just feels good as an old school. Never change PS1! It contrast, the Whitney, which was “fine”, is not nearly as interesting.</p> <p>I can’t even summarize what I saw at PS1 there was so much excellent work, and typical, the website fails to show any of the artwork really, much less exhibit shots or individual photos of all the works and their title and artist. But from my head some standouts included Tiffany Sia’s videos on tiny monitors, hanging in the window, which looked great on a rainy day. I sat and absorbed and loved the “Bossa Nova Civic Club”-homage work incorporating an indigineous fairy tale by Mekko Harjo. There was an EXCEPTIONAL sound art work by the artist Coco Klockner. And fun experimental weavings bound to objects, almost like dyptichs. I failed to write down the artist’s name for that. An installation with video (using oldschool VHS/video mixers) and installation, that noted it was based on techniques from noise shows and the DIY scene, by Tom Thayer, was also strong and I sat watching it many minutes. Typical, as I do a search for reviews of this exhibit (there are many), they show images from and describe artworks I didn’t connect with very much at all, so I guess that goes to show, it’s a big and diverse show with lots to see.</p> <p>In the evening I participated in a hackathon at CuteLab and implemented a minimal proof-of-concept web browser in L5 (text only at this time, and no way to navigate links currently). I call it <em>middlebrowser</em>.</p> <p><img src="{{&quot;/images/log/L5-middlebrowser.webp&quot; | absolute_url}}" alt="Middlebrowser screenshot showing the text of the NPR website" /><br /> <em>A screenshot of this log, in middlebrowser</em></p> <p>Its entire code is currently less than 100 lines for the prototype. It calls out to the text browser links. I also tested with offpunk and curl and rdrview.</p> <p>I’m not sure if I’ll keep hacking on it, but it was fun to work on since I’ve had the idea in my head a while.</p> <h2 id="2026-05-09">2026-05-09</h2> <p>Well, this was unexpected: <a href="https://leetusman.com/projects/yvi/">yvi</a> (now with its own dedicated page on my website) is getting some public exposure, which I didn’t expect at all. I just was scratching my own itch and thought a couple other internet friends might be interested. But surprisingly it was picked up by <a href="https://news.ycombinator.com/item?id=48025540">Hacker News</a> and <a href="https://www.theregister.com/offbeat/2026/05/08/vi-clone-written-in-basic-proves-old-habits-wq-hard/5235594">written about in The Register</a>, where I learned it’s actually the <a href="https://en.wikipedia.org/wiki/Vi_(text_editor)#History">50th year anniversary of Vi</a>.</p> <p>Earlier today I spoke to Saber’s CC Fest Teacher Training Camp, giving an intro to my art practice... <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>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>
    
      <item>
        <title>L5: a New Creative Coding Library in Lua, in the family of Processing/p5 Languages</title>
        <description><![CDATA[<p><a href="https://l5lua.org">L5</a>, my creative coding library in the family of Processing-like languages has been out in early alpha for a couple weeks now. I haven’t even announced it here yet, so this post is where I’ll do so, as well as put some (very) early feedback notes.</p> <p>I began the codebase for L5 in July 2025. I have been programming art with code starting with Processing around 2012. I enjoyed that so much and got deeper and deeper into it, even as I found I wasn’t so drawn to the language it’s implemented in, Java, which I grew to dislike even as my skills in programming grew. I just didn’t appreciate things like static typing or access levels.</p> <p>When <a href="https://p5js.org">p5.js</a> was announced, I was pretty excited. I had been periodically using Processing.js, a discontinued port of Processing to JavaScript, to share my work on the web, whose syntax mostly allowed writing Processing code with a couple modifications. With p5.js, not only was this a native implementation, but I found I preferred the JavaScript language a lot more to Java. I found it easier to understand as a relative beginner to programming, and I just plain liked that it was so fault-tolerant as a scripting language for a browser that prioritized that, versus a more rigorous compiled language.</p> <p>I basically mostly jumped ship to p5.js for about a decade, working with it as the main tool I make art with. I continued to teach Processing and p5.js in my classes. I created hundreds, maybe a thousand works for web and even exhibitions in p5.js over a decade. p5.js got me into JavaScript, where I learned much of its large ecosystem, both its pros and cons. Especially as “coming out of the pandemic” I was starting to create more works to be presented in gallery and irl exhibition spaces, I was feeling the limitations of JavaScript.</p> <p>To name several of these negatives: JavaScript as a language, and particularly the community of frameworks and development changes at lightning speed. From year to year favored environments, paradigms, code editors, packages rise and fall, grow in popularity, and most alarmingly, their APIs change. While p5.js doesn’t have this problem as much, as it’s hooked into browsers which do, I experienced a few of these changes, such as the requirement for a user event to trigger audio (which wiped out the full functioning of a bunch of my older deployed works), as just one example. As I began using p5.js along with other JavaScript frameworks (web audio, opencv, voice detection, and others), things would break, not due to p5.js so much but due to JavaScript.</p> <p>And the browser environment began to be a hindrance at times. I tried going back to Processing, using it for several projects (an experimental film made with it, for example). At one point, as I struggled to get the video camera library to work with some of my students’ computers, due to Apple restrictions and changes, at some point I... <p><a href="http://leetusman.com/nosebook/early-alpha-feedback-L5">Read more...</a></p>]]></description>
        <pubDate>Sat, 13 Dec 2025 00:00:00 +0000</pubDate>
        <link>http://leetusman.com/nosebook/early-alpha-feedback-L5</link>
        <guid isPermaLink="true">http://leetusman.com/nosebook/early-alpha-feedback-L5</guid>
      </item>
    
  </channel>
</rss>
