BIT-101
Bill Gates touched my MacBook Pro
Many years ago I started a site called Art From Code. You can see the archived version at archive.artfromcode.com.
I’ve updated this site in fits and starts but (as I described in the intro to this blog) Wordpress had just become not fun anymore. So I made yet another Hugo site, moved the old Wordpress site to a subdomain and made the new one live. The new site:
One of the main reasons for this change was a need to better document and preserve what I’m working on. Over the past few years, I’ve done a lot of random experiments and posted a few (or a ton) of images or animations on the site formally represented by a bird, or more recently on Mastodon.
Generally I just start a project and riff on it until something cool comes out, post a render, and start riffing some more. The code for any particular image is lost immediately, and the image is only preserved on social media.
Here are the problems with my workflow up to this point:
The new workflow:
sandbox
project which is 100% throwaway code. This is where I can riff to my heart’s content, break things, wipe things out, start over, whatever.code
folder. The whole code
folder is under source control.media
folder.site
folder.longform
folder.There’s a lot of pieces to this: creating the new project, copying over the sandbox code into the new project, uploading the assets to the site, archiving the assets, creating the blog post and publishing that, committing the code and post to source control, posting to Mastodon, posting to Tumblr. Some of that is automated. But not nearly enough. It’s still a lot of friction, so I’ll be working on that.
It’s going well!
I’ve posted something every day for a while and have more lined up.
I’m not flooding Mastodon with a ton of stuff every day - just the daily scheduled piece. But I still do post some random explorations there - nothing that I feel the need to save, just random interesting experiments.
The pieces that I am doing have way more thought and effort put into them. There is often a point where something looks OK and I probably would have posted it to Mastodon, but I feel like it’s not really good enough to be the official daily piece. So I work it over until I’m really happy with it. Occasionally I’ve even abandoned a particular piece when I couldn’t quite get it to where I wanted it. So my standards are raised.
I’ve upped my dependency management game. I have several self-created libraries I use for most of my work. In Go, you can import a specific version of a library officially from its published location. But you can also just use
a library by pointing to the local file system location of its source code. Doing this, you get whatever code happens to be in that repo at that particular time. This is super useful for experimenting. If something in my library doesn’t work just the way I want it to, or it’s missing a function, I can just add or update that function and it’s instantly available to the project. But this is a horrible practice for finished pieces because you have no idea what version of the library that piece was created with. This has gotten my to link each daily project to a specific version of each library. If I need to add or change something in a lib, I update its version and update the project to use that version. A bit more friction, but well worth it.
Comments? Best way to shout at me is on Mastodon