qr code

BIT-101

Bill Gates touched my MacBook Pro

Art From Code


[ creative-coding , misc ]

Background

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:

artfromcode.com

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.

The Problems

Here are the problems with my workflow up to this point:

The Solution

The new workflow:

file system

More Problems

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.

But…

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.

« Previous Post
Next Post »

Comments? Best way to shout at me is on Mastodon

Or share this post directly on Mastodon