Chris Padilla/Blog


My passion project! Posts spanning music, art, software, books, and more. Equal parts journal, sketchbook, mixtape, dev diary, and commonplace book.


    But Beautiful

    Listen on Youtube

    Who can say what love is?

    (Happy Easter!)


    Ness

    🍔

    Thinking about EarthBound. 👽


    Software Without Scale

    There's a self help type question meant to inspire action and catalyze motivation:

    "What would you do if you knew you could not fail?"

    While well-meaning, there's some baggage that comes with that question depending on the context. If we're talking about business ventures: What it's really asking is "what would you do if you were guaranteed something in return?" Often times, with an expectation of financial or social capital.

    Perhaps I'm splitting hairs, but success and failure in my mind usually connotate an external win condition.

    I prefer the inverse of that question:

    "What would you do if you knew you would fail?"

    In other words: what's worth doing regardless of the outcome?


    I've been waiting to tell this story:

    A while ago, I had a run in with someone who previously worked in The Music Industry. We were chatting and I mentioned I was writing my own music as a hobby.

    They gave it a listen. They then promptly told me I was heading in the wrong direction. The type of music I made simply was not very popular. Apparently, it was going to require their expertise to "keep it sellable."

    I was flabbergasted by how off the mark they were. Not only was I not asking for advice, but I like to think that it's obvious that what I'm writing is pretty personal. I tried to clarify this but was still given more of the sales pitch.

    I'll give them some grace in hindsight. I'm sure when you're "In The Biz", you get asked by hoards of musicians for feedback on "Breaking In". I imagine this whole interaction was a knee-jerk response, in a way.

    Still. It's a sad worldview, weighing music solely on a scale that measures the value against trends in the market. An assumption that the point of writing music was to receive something in return: fame, fortune, a contract, exposure. I'm all for musicians getting paid well to do their craft, but there's a whole spectrum of reasons outside of that for entangling with sound.


    I had a bucket of cold water poured over me while reading the other day.

    Robin Sloan in 2020 developed BoopSnoop: an app targeted at a user base of 4 people. The gist is that Robin wanted to replicate the functionality of the Snapchat-like app Tapstack for keeping in touch with his family. He's described the whole thing as similar to making a home cooked meal.

    The exhortation “learn to code” has its foundations in market value. “Learn to code” is suggested as a way up, a way out. “Learn to code” offers economic leverage, professional transformation. “Learn to code” goes on your resume...

    The list of reasons to “learn to cook” overflows, and only a handful have anything to do with the marketplace. Cooking reaches beyond buying and selling to touch nearly all of human experience. It connects to domesticity and curiosity; to history and culture; to care and love...

    When you liberate programming from the requirement to be professional and scalable, it becomes a different activity altogether, just as cooking at home is really nothing like cooking in a commercial kitchen. I can report to you: not only is this different activity rewarding in almost exactly the same way that cooking for someone you love is rewarding, there’s another feeling, too, specific to this realm.


    On app feel:

    The app I'm posting to can shape the message. The caption box for Instagram feels different from my email client which feels different from my blog post editor.

    Reading on those apps have a feel to them as well. The warmth of an app is directly related to the lack of noise and the smallness of scale in it's contents.

    I lurk on Substack. Many folks talk about how nice it feels compared to Twitter and Instagram since it (at least for a time) was a smaller, more targeted community. We're likely already well beyond that point.

    My personal favorite is Patreon. Patreon is not by any stretch of the imagination a small and intimate community. However, unlike instagram or twitter, I only follow less than 10 accounts, and they are accounts I'm highly invested in.

    This is thanks to the barrier of entry: it requires paying the monthly subscription fee for patronage. The financial commitment both ensures that I highly value those accounts, and it's a mechanism for reigning in an otherwise unwieldy amount of accounts that I'm only partially interested in. It ends up feeling very cozy and I'm genuinely excited to get a notification from Patreon.

    Derek Sivers talks about having a private email account that only close friends and family have access to. This yields a similar effect of warmth.

    Some people will say that Discord has a similar feel. I suppose it can, but most of the channels I'm in are overpopulated and too over-stimulating for that to feel true for me.

    Finding a digital home in this sense used to be easier. Even MySpace and Facebook friends were largely just your circle of IRL friends. Before that, forums and online groups were small due to the limited number of people using the internet. Largely, scale is the culprit.


    Even when scaled down, the thing that keeps all apps from feeling truly comfortable is measured performance. Public access to number of likes, subs, listens, comments, etc. communicates clearly that the purpose of these platforms is scaling engagement. A tone that is ever present, even if you try to ignore the numbers.

    A personal blog can have all of that. But, importantly, it's your choice to turn it on or off. The medium is the message, and you can shape your medium to reflect a priority that goes beyond the assumption that value and scale are equivalent.


    Dan Blank writes often about not taking a handful of readers for granted. (His piece Would you write for just one reader? encapsulates the case of doing just that.) Kyle Webster advocates for appreciating those that are always supportive of your work: Friends, family, partners.

    The fact that scale is a seductive possibility online dilutes the significance of having your work connect with an audience in the single digits.

    I'll never forget my first professional software accomplishment. The company was smaller at the time. We had a local mixer where I got to shake hands with the users of a new feature that I developed. "It's amazing! It makes my job so much easier!!"

    That experience will forever be hard to top, no matter how the scope of my work expands.


    Following the links in Robin's post will find you reading Clay Shirky's observations around "Situated Software": A term he's coined after observing NYU ITP student colaborative projects. Robin highlights a portion of this quote, though it's great in context:

    Situated software isn't a technological strategy so much as an attitude about closeness of fit between software and its group of users, and a refusal to embrace scale, generality or completeness as unqualified virtues. Seen in this light, the obsession with personalization of Web School ("scalable") software is an apology for the obvious truth -- most web applications are impersonal by design, as they are built for a generic user. Allowing the user to customize the interface of a Web site might make it more useful, but it doesn't make it any more personal than the ATM putting your name on the screen while it spits out your money.

    Situated software, by contrast, doesn't need to be personalized -- it is personal from its inception.

    The whole piece is a fascinating read. Multiple case studies look at leaning on what happens when software is developed without generalization, but instead utilizes smaller groups and social values as its leverage.

    The greatest takeaway is how an app developed for a small community becomes more enticing because it's so form-fitting. There's still a need for enterprise solutions in the same way there's still a need for mass-produced furniture and tools. But there's a unique value to the targeted apps, dare I say, labors of love in some cases.


    I confess: A while ago I was deeply entrenched in a mindset that my side projects had to contribute something to my resume. I essentially scanned requirements on job postings across my LinkedIn and setup a curriculum that I would gradually work through.

    I'm not going to argue against this. As a professional, this is a Smart Thing To Do. Part of the gig is keeping up with modern tooling and best practices. It's not unique to engineers, either. Teachers, medical professionals, and accountants all need to receive continuing education credits to keep their licenses. And you know what — I like doing it!

    However, all that said, career can't be the only driver in side projects.

    In the same way that the Music Industry pro made an assumption about why we make music, I had an assumption about why I was writing software.

    For some people, there's no problem here. The thrill of software to them is it's intersection with commerce. For others, they prefer a separation between their personal and professional lives.

    However, we miss out on a buffet of opportunity when we're looking to get something out of every line of code we write.

    Really smart people intertwine the two. They build a fun project with some sort of marketable tooling.

    There's a difference though between building a personal project that scratches an itch — an art project, a game, a custom messaging app — and building a todo app or a faux employee management app.


    What does the alternative look like? Here are a few examples that I like:

    Indie Games. For some, maybe part of the allure is the chance to go big a la Undertale or Stardew Valley. However, for others, there is plenty of value in the act of making something in a medium they grew up loving. (I've fallen into the latter bucket with AC: New Murder.)

    Wes Bos regularly makes neat doodads with JavaScript. This is in part to promote JS related courses, but clearly the guy is having fun with what he builds.

    While on the subject of robots: Robot fighting leagues are a wild example. I don't personally have experience with them, but I do admittedly love that a community exists around them. A mix of engineering, sport, and the child-like instinct of stacking the blocks only to topple them down again.

    Open Source Software, by definition, is the separation of software and commerce. Scale is still a factor, but profit is not a requirement. The examples are numerous. My favorites are Blender, Krita, and Kdenlive.

    haikU by Nanette Wylde from 2001 generates a poem by combining three lines from different haikus at random for interesting juxtapositions.

    For examples that target small groups specifically, dive into Clay Shirky's "Situated Software" mentioned earlier.


    There's a whole spectrum of reasons to develop software. As many as there are for any art form: expression, advocacy, the experience alone, an opportunity for infinite learning, the chance to give to people you care about, to solve your own problems, to bring order to a small part of the world... Take your pick on any given day!

    There's certainly no one answer. It's more important to keep in mind a few of the questions: "What would I do if I wasn't worried about success?" "What would I make if I didn't need it to scale?"

    Time is limited. Life is short. There are only so many hours in the day. I hope that you have the opportunity to find projects where you are truly playing in your text editor. Where you are taking hard-earned skills from professional-grade work to find another dimension of personal fulfillment in your craft.


    Roger Miller — Whistle Stop

    Listen on Youtube

    Watched Disney's Robin Hood the other day. I was sold on revisiting it after Breadsword's fascinating analysis of the movie. So much charm oozing from the film!

    Listen at 2x speed for the Hamster Dance!


    Dark Forest

    🍄🌲🌑

    What was that sound? 👀


    Converting Image Sequences to Gifs

    Writing to scratch my own itch: I know I'll forget how to do this in the future if I don't write this down. 😅 Why not make it public while I'm at it!

    Programs such as Krita and Blender spit out image sequences as part of their animation process. If you want to target the gif file format, it gets tricky. Blender does not support gif output. And Krita's gif rendering, based on ffmpeg, will not support transparency data when outputting to gif.

    The way to handle this is to spit out your image sequence, then use the CLI tool ImageMagick. Here's the prompt that got me to the finish line:

    magick -delay 100 -loop 0 -dispose previous *.png  MyCoolAnimation.gif

    A breakdown of options:

    • delay is the time between frames. If you only have a two frame image, 100 will be a 1 second difference between the two.
    • loop set loop to 0 for infinite loops.
    • dispose setting this to previous will remove previous frames. Otherwise, you may get a smeared effect.

    Violà!

    🦜


    Animated Gifs on Android with Expo and React Native

    Gifs work great out of the box in React Native using expo... except! When building to android.

    On Android natively, this is accomplishes with Fresco. However, to use this package in Expo with React Native, we have to do a bit more work.

    Cedric van Putten has thankfully already done the heavy lifting. The meaningful config file setup is demonstrated in this PR.


    I'll See You In My Dreams

    Listen on Youtube

    ✩₊˚.⋆☾⋆⁺₊✧


    Bork

    3D render of a good boy.

    What I think of when I hear the word doggo.


    Metal Mario & Textures

    Mama Mia

    I have an annual ritual of playing through Super Mario 64. I'm super familiar with the game proper.

    A delightful new discovery has been the original CGI renders developed to promote the game. This one takes the cake for me.

    Another fun crate that I've been digging in is Render96's texture libraries. (The Bakku no Oni collection is particularly fun.)

    They specifically archive texture collections that were used for games like Mario 64. Now knowing how the sausage is made, looking through these really gets the imagination going. In both directions: Trying to see if I recognize a pattern, or imagining what type of model a texture could be applied to.


    I'm Old Fashioned

    Listen on Youtube

    This years fancies are passing fancies
    But sighing sighs, holding hands
    These my heart understands


    Mystery in the Water

    3D art of a penguin out at sea, gazing down at a mysterious glowing light in the water

    What could be down there?


    The Garden and The Kitchen

    It's helpful to think of projects in a couple of ways: one organic, one structured.

    A grapevine doesn't bear its fruit right away. The garden is a messy place where plants can come and go. Some bloom before others. Make a dish with what's on hand.

    The Kitchen, however, is where those fruits need to be pulled together to make a dish. After seeing what has grown, a meal can be decided on, additional ingredients picked up from the grocer, and so on.

    You see what I'm trying to say here?

    It's good in your practice to have a garden. To let the organic nature flow through what you're doing. Let curiosity lead, and allow yourself failures and dead ends. Don't feel too tied to any project.

    Then, take a set time to give shape to your work. See what's gained traction and what's ready to be harvested. From there, you can start dicing tomatoes, peeling carrots, and boiling potatoes. There's a goal and a structure here. Though, it's all the more delishish because the dish is cooked with fresh, homegrown ingredients.

    The other approach is to pick a recipe, go to the store, and buy the necessary ingredients. Sometimes, that's what you have to do. It's purely goal-oriented, without the spontaneity of what's in season.

    So pull from the garden. See what ripens next for your kitchen.


    Make What Only You Can

    Watch on Youtube

    Thinking of Neil Gaiman's commencement speech this morning:

    And Fifthly, while you are at it, make your art. Do the stuff that only you can do.

    The urge, starting out, is to copy. And that’s not a bad thing. Most of us only find our own voices after we’ve sounded like a lot of other people. But the one thing that you have that nobody else has is you. Your voice, your mind, your story, your vision. So write and draw and build and play and dance and live as only you can.

    The moment that you feel that, just possibly, you’re walking down the street naked, exposing too much of your heart and your mind and what exists on the inside, showing too much of yourself. That’s the moment you may be starting to get it right.

    The things I’ve done that worked the best were the things I was the least certain about, the stories where I was sure they would either work, or more likely be the kinds of embarrassing failures people would gather together and talk about until the end of time. They always had that in common: looking back at them, people explain why they were inevitable successes. While I was doing them, I had no idea.

    That's extra reassuring if you are someone whose interests span multiple disciplines, crafts, and mediums. Heck, if you blog from a code editor, I'd say you're one of those people! Making that which only you can.

    After having spent many years squarely fitting into a genre, I have to say that the work is all the more meaningful when it's such a unique combination of skills. When, truly, it's something only you can make. There's a mission there. There are ideas looking to come into the world where only a select number of skills can get them there.

    Make genre pieces. Make math rock, haikus, and landscape paintings, sure. But, also, make math rock music videos where the lyrics follow haiku structures with a landscape painting as the album art.


    Fantasy at Work

    Listen on Youtube

    Miyamoto:

    Kids today have sports clubs after school. They go to tutoring. They are pushed by their parents. Their time is limited.

    Yet, even at school, kids are thinking about video games.

    When they think about games that are not in front of their eyes, their sense of fantasy is at work.

    Even if one doesn't consider this a form of education, it is usefult to have as one becomes an adult.

    I think that is very good.