523 stories

The Philosophy Of Magic

2 Comments and 9 Shares
Read the whole story
151 days ago
Ojai, CA, US
Share this story
2 public comments
109 days ago
Dhaka, Bangladesh
147 days ago
some strong HPMOR ( vibes here
Corvallis, OR

So, you want to make a Bandcamp...

1 Share

The sale of Bandcamp to Songtradr and the subsequent layoff of half of Bandcamp's staff has gotten a lot of folks thinking about Bandcamp alternatives. That's fantastic, and I really hope that several of these take off and become successful. But I'd like to caution folks on missing the mark of what makes Bandcamp so successful and how to make something that musicians and labels can use and enjoy.

I wrote an article about this back in 2022 (The Bandcamp Acquisition by Epic: the meh, the bad, and how to build something better). I won't expect you to have read it but this article will build heavily from that article.

My experience is as a podcaster and music aficionado. I've been in more record stores than I can count. I've bought thousands of albums on Bandcamp. I've talked to musicians and labels for my podcast Open Metalcast. In short, I've been around and have been interested in music for most of my life.

With that in mind here's things that you'll need to consider in your Bandcamp alternative:

Musicians are harried folks. They are concerned about making music and getting their music out there as quickly and painlessly as possible. They don't give a shit about licenses or federation or any of the things that techies care about. They are just trying to figure out how to pay for that new dingus that makes their songs sound better. That also means a lot of integration with services that musicians use to distribute their albums to iTunes, Spotify, and the like, and integrating with services to help musicians get paid. This is not optional. The more of these services we integrate the more musicians will be able to use our services.

Remember: Solve musician problems first. If your service is "just one more service" that folks need to log into then they'll ignore it. They'll use that time to ship merch or read email or any of the myriad other things that working musicians need to do.

This leads to the payment processing. You need to think like a busker, not a technologist. Payment processing and first-class merchandise handling are key to any platform's success. Bandcamp is, first and foremost, a storefront. Any solution needs to start with the payment processing first. Full stop. No serious musician is going to adopt any solution that doesn't make collecting money for merchandise a primary goal. Musicians already have all of the promotional materials they need. What they need is a way to get folks to help fun their expensive instruments. That means tools for helping with shipping and doing conversions as well. Buskers don't pass the hat at the end of the performance or expect someone to walk two city blocks to find their merch truck. There needs to be a "buy now" while someone is listening to the album. And it needs to take actual human-recognized currency. Cryptocurencies need not apply. We're buying goods and services, not grifts and laundering here.

This is unfortunately the trickiest part but any platform that doesn't figure this out is doomed. No musician will take it seriously.

While we're on the subject you also need to consider music labels. Musicians form labels to handle merch and the logistics of merch. Talk to labels about what their needs are. You might think that in this brave new world of the internet that labels are immaterial and you'd be mistaken. Labels represent the majority of musicians on Bandcamp. Period. And labels are not just one field in an artist record. There needs to be artist management from the label's perspective. I'm not a label so I can't pretend to know what they want but in most cases when I was talking with the folks handling the merchandising it was through a label. Folks like Hypnotic Dirge Records and Discos Macarras are on a first-name basis with me, and I'm just a podcaster. Trust me, you'll want to talk to a bunch of labels.

I mentioned in the previous article that tagging is key. This will need to be flexible, and ideally controlled by the artist. Artists know better than you what genres their music fit into so making anything with strict genre rules is foolishness. I can't even name the metal genres out there and I'm ostensibly an expert in the music. Bandcamp managed to get this right better than most. Steal from the best on this one.

Another thing to steal from Bandcamp is their delightful ID3 tagging. I can't tell you how many times I've downloaded something from the Internet Archive only to delete it because the song / artist / album was either missing or complete nonsense. Bandcamp was one of the few places that I could rely on consistent, usable fields.

And if you're doing classical music please for the love of all that is holy follow an actual classical music style guide. MusicBrainz has their classical music style guide and while it's not perfect it is the closest our fallen world can come to perfection. Apple Classical screwed it up. Classical music is not popular music. It's not "tracks". It's albums and works and pieces. They're collections. Again, talk to folks who are critics and musicians who understand the damn music.

Still with me? Hopefully you are because this last point is crucial.

If we've learned anything from social media in general and the Fediverse in particular it's that good moderation is key. That means that you're going to have to build in the ability to remove and hide albums. Not only are we talking about the albums that nobody should listen to because they're made by horrible people but also the artists themselves may want to hide or remove an album, either because it's combined into another work or because it no longer represents who they are. You'll need to accommodate that, as frustrating as it may seem to all of the archivists out there. You'll also need to moderate comments from users that are inane, hurtful, or just plain awful to the musicians you serve. That can be anything from "this album is not 'Trve cvlt metalllll. Death to false metal!", "I have a grudge against your band for replacing the lead singer", and worse. People who listen to and participate in music are passionate folks so assume that they'll have mean things to say. And if you don't believe me may I introduce you to Simone Appolloni, a reviewer on AllMusic that is not only prolific but apparently hates the things you like. When you build your new Bandcamp keep this page open in another tab and think about Simone.

I'll have more thoughts on this later on but for now these are the ones I'd consider critical to any successful platform. Understand that any Bandcamp replacement needs to address the needs of working musicians everywhere and make it so they can turn listens into cash into musical dinguses into songs and back into listens and cash. Talk to professional musicians and understand what they need vs what you might think they need. As someone who promoted music for nine years I've had many conversations with musicians. They want to make music and get paid. That's all. Licenses are immaterial, and federation is just one more damn thing to learn. Start with "how do musicians get paid and how do fans get merch" and move from there. Also think about how to protect musicians so they can keep making music. And build your tools so that labels can manage their musical roster as easily as they can under Bandcamp. I knew Bandcamp was huge when Nuclear Blast posted their roster to Bandcamp. Bedroom producers are nice but I'd love for the Fediverse to welcome a Nuclear Blast, a Naxos, or even Metal Blade. If we build it right then we can scale up to those levels. Anything less is just replacing Jamendo and the Internet Archive.

There's a lot of work to do. I'm happy to consult if folks have questions. Feel free to contact me and I'll do my best to answer any questions.

Good luck.

Read the whole story
268 days ago
Ojai, CA, US
Share this story

The Philosophy of War

Read the whole story
270 days ago
Ojai, CA, US
Share this story

A case for stacked patches 📚


I’m wondering why you talk about “branches” at all. No such thing should exist.

– Linus Torvalds, 2005,

Git branches are hard to think about.

But “GitHub” forces you to think about branches. A lot.

Instead of futzing with GitHub’s feature branches, many big projects1 opt for a stacked patches workflow—the kind Gerrit and Phorge offer.

I can see compelling reasons why, I’ll focus on two:

  1. Slow review
  2. Integration pain

🐌 Slow review

Code review decision fatigue is real—big changes make for slow reviews.2

In GitHub, pull requests are synonymous with feature branches. So it’s tempting to cram commits into a branch until it’s feature-complete, then push for review:

git checkout -b feature-foo --track origin/main origin/main
…*:・゚✧ git commit -m refactor *:・゚✧ …
…*:・゚✧ git commit -m add new code *:・゚✧ …
…*:・゚✧ git commit -m change the UI *:・゚✧ …
git push origin feature-foo
GitHub flow: a local feature branch becomes a review with three commits
GitHub flow: a local feature branch becomes a review with three commits

But this is an anti-pattern—you’ve created a monster pull request for someone to review.

Compare the same local branch pushed into a stacked patches system:

Stacked patches flow: a local feature branch becomes three reviews with one commit each
Stacked patches flow: a local feature branch becomes three reviews with one commit each

Each commit is reviewed independently in a stacked patches system, regardless of how you work locally.

Each review is a small delta—fewer changes for the reviewer to think about.

And changes are “stacked,” so:

  1. Commit “C” must merge before commit “D”
  2. Commit “C” may merge before “D” is reviewed
  3. Commit “D” may be a work-in-progress when you push commit “C” for review

Patch stacks are like suggestions for maintainers. They may overrule you, rearranging your patches, or cherry-picking a single change.

This is a feature. Better to get some changes merged than blocked on the all-or-nothing approach of feature branches.

😖 Integration pain

What’s worse than a huge review? Two. Especially when they have merge conflicts.

This is integration pain.

And it’s easy to create with big feature branches.

GitHub long-lived feature branches resolve conflicts long after they’re created, resulting in lots of rework
GitHub long-lived feature branches resolve conflicts long after they’re created, resulting in lots of rework

The illustration above shows two developers each working on their own big features: Alice and Bob.

Both features required refactoring the same class. This created a conflict.

But no one noticed the conflict until weeks later when they went to merge.

Stacked patches make it easier to catch the same situation earlier:

Stacked patchsets catch conflicts when they happen, resulting in less rework
Stacked patchsets catch conflicts when they happen, resulting in less rework

Now, each commit is a separate review. Instead of waiting until their feature is complete, Alice and Bob spotted the conflict right when it happened. Less refactoring for Bob.

Continuous integration of changes into main means each change is smaller, which means integration is less painful.

🚧 You can do this with pull requests!

It’s possible to make small pull requests.

But GitHub isn’t making it easy.

Developers hacking away at ginormous feature branches is the root of all the problems I outline above.

And that’s precisely where “GitHub Flow” steers you:

Ideally, each commit contains an isolated, complete change. […] Continue to make, commit, and push changes to your branch until you are ready to ask for feedback.

GitHub’s docs, GitHub Flow: Make changes

Pile up isolated, complete changes until uhhh…your call, good luck!

✏️ GitHub could fix this

GitHub supports stacked pull-requests3.

But they’re almost unusable.

The process is pretty Kafka-esque:

  • You must create and push a branch for each local commit (or use strange git syntax to approximate this).
  • You have to generate a pull request for each branch in the stack while thinking really hard about the branch names you chose earlier.

Because GitHub makes this so hard, tools have sprung up to hack this into GitHub:

There’s even a VC-backed startup whose entire focus is stacked patches for GitHub.

But GitHub could obsolete all these tools if they cared to.

  1. Google, Facebook, Twitter, Android all use either Gerrit or Phabricator for code review↩︎

  2. “Smaller patches undergo fewer rounds of revisions, while larger changes have more re-work done before they successfully land into the project’s version control repository.” via Investigating technical and non-technical factors influencing modern code review↩︎

  3. The process is well described by Michaela Greiler.↩︎

Read the whole story
284 days ago
Boulder, CO
286 days ago
Ojai, CA, US
Share this story

Saturday Morning Breakfast Cereal - Temple

1 Comment and 5 Shares

Click here to go see the bonus panel!

Let us rise and make similar noises!

Today's News:
Read the whole story
342 days ago
You know, I'd go to this temple.
Ojai, CA, US
343 days ago
Boulder, CO
Share this story

Sriracha Fight!! 🥊

1 Comment
Huy Fong Foods Inc. factory signage
At the birthplace of the famous rooster sauce. by Paul Narvaez (CC-By-2.0)

There’s plenty of sriracha—unless you’re looking for the brand anyone wants.

Huy Fong Foods, Inc’s Sriracha vanished from stores, and they have no idea when it’ll be back.

So, driven by the shortage and the scorn of sriracha hipsters decrying Huy Fong as an Americanized knockoff of the original Thai sauce, I did a blind taste test.

Before the test, I cling to two expectations:

  1. I’ll be able to pick out the Huy Fong Sriracha
  2. Huy Fong Sriracha will be the best, dooming me to wander the earth searching for it

Except that’s only kind of what happened.

The contenders

Sriracha Fight!
Sriracha Fight!

I bought six brands of sriracha and sacrificed a precious portion of my dwindling Huy Fong Sriracha for science:

🖼️ Product Origin Price
Huy Fong Foods Inc. Sriracha Huy Fong Foods, Inc. Sriracha Irwindale, CA, USA inf
Amazon/Whole foods Ninja Squirrel Sriracha Amazon/Whole Foods Ninja Squirrel Austin, TX, USA $4.79
Lee Kum Kee Sriracha Chili Sauce Lee Kum Kee Sriracha Chili Sauce City of Industry, CA, USA $5.99
Yellowbird Organic Sriracha Yellowbird Organic Sriracha San Marcos, TX, USA $9.29(! And it’s so tiny)
Shark Brand Sriracha Chili Sauce Shark Brand Sriracha Chili Sauce Chon Buri, Thailand $18.99(! This is a big bottle. But still.)
MW Polar Sriracha Chili Sauce MW Polar Sriracha Chili Sauce Thailand $3.83 (6-pack for $22.99—hope I like it 🤞)
Sriraja Panich Sriracha Chili Sauce Sriraja Panich Sriracha Chili Sauce Thailand $3.98


Tater-tots. Lots of ’em.
Tater-tots. Lots of ’em.

On a very normal Friday night, I blindfolded myself and ate tater-tots.

I dispensed each sriracha into its own stainless-steel ramekin and assigned it a letter. This way, my steadfast assistant would remain unaware which sriracha was which, ensuring the validity of my results.

Between srirachas, I cleansed my palate using plant-powered protein tortillas because ¯\_(ツ)_/¯.

Ramekins with sriracha, assigned a letter
Ramekins with sriracha, assigned a letter

I ranked each sriracha from 1–10 using four criteria:

  1. Garlic
  2. Sweetness
  3. Spiciness/heat
  4. Overall flavor


I forgot to guess which was Huy Fong Sriracha.

And, oddly, Huy Fong was the only sriracha I tasted without comment. I suppose I received a sriracha that tasted like Sriracha—what was there to say?

My “overall” ranking is more of “I like this” vs. “this is a good Huy Fong Sriracha substitute.”

Brand Garlic Sweetness Spice Overall
Lee Kum Kee Sriracha Chili Sauce 4th 1st 2nd 1st
Huy Fong Foods, Inc Sriracha 3rd 3rd 3rd 2nd
MW Polar Sriracha Chili Sauce 4th 1st 3rd 3rd
Yellowbird Organic Sriracha 3rd 3rd 4th 3rd
Shark Brand Sriracha Chili Sauce 2nd 2nd 4th 4th
Sriraja Panich Sriracha Chili Sauce 1st 4th 1st 4th
Amazon/Whole foods Ninja Squirrel Sriracha 3rd 2nd 5th 5th


First, I grew up on Doritos and Pizza Hut and this all opinion.

Second, some observations:

  • The Thai brands were red-orange. American brands were dark red. The exception was Huy Fong Sriracha which was in between the two.
  • The American brands were spicier.
  • The Thai brands tasted like fermented garlic, an acquired taste, I guess, since I found it off-putting.

Brand-sepcific comments:

  • Lee Kum Kee
    • “Sharp cayenne-pepper-type heat”
    • “Like spicy ketchup”
    • This was more like hot sauce than sriracha. But I like hot sauce, so.
  • Huy Fong Foods, Inc – No comment.
  • MW Polar
    • “Initially not very spicy, but heat builds”
    • “Garlic-y, but not how I want my garlic”
    • It seemed fishy. I think this is the flavor of fermented garlic.
  • Yellowbird Organic
    • “This tastes like barbecue sauce”
    • Once I accepted this as expensive barbecue sauce, I liked it much better.
  • Shark Brand
    • “This tastes like jarred garlic”
  • Sriraja Panich
    • “Some up-front heat”
    • “This tastes like fishy garlic”
  • Amazon/Whole Foods Ninja Squirrel
    • “Weird old sweetness, like molasses”

So it seems I’ve found some new condiments.

But Huy Fong Sriracha is still the only sriracha, at least to my dumb American palette.

Read the whole story
346 days ago
"First, I grew up on Doritos and Pizza Hut and this all opinion."
Ojai, CA, US
Share this story
Next Page of Stories