Oct 6 2021

About that Ted Wheeler recall campaign…

The campaign to recall Portland mayor Ted Wheeler hit a bit of a snag after the campaign failed to collect enough signatures to get the ball rolling.

But Total Recall PDX isn’t going to let itself be inhibited by such minor details as “the people of Portland clearly don’t want to recall the mayor”. Instead, they are now going to sue the city because the city didn’t grant the campaign an extension to collect more signatures.

homer simpson saying this is everbody's fault but mine

But that’s really thematically consistent for Total Recall PDX. The campaign has never really was centered around giving Portland a better mayor (as evidenced by their complete lack of effort to actually find a better candidate than Ted Wheeler which really shouldn’t be that much of a challenge), but instead it’s just being a misguided fringe effort whose main effect is producing noise, and now instead of just wasting their own time, they’re wasting the city’s resources as they need to now defend themselves in this stupid lawsuit.


Oct 6 2021

Bullshit reporting on sex work

Sex work reporting in the US is broken.

Case in point: the headline for this USA Today article:

Largest human trafficking sting in Ohio history nets 161, including city councilman

Okay, that sounds pretty serious! Let’s take a look.

Most of those arrested were charged with engaging in prostitution, a first-degree misdemeanor.

“We want to send a message to everybody in the country: Don’t buy sex in Ohio,” [OH AG Dave Yost] said.

For every arrest made, officers contacted up to eight “johns” whose actions didn’t meet the elements of any crime

So, in other words, this was less of a “human trafficking sting” and more of a “dragnet that mostly caught people looking to engage with sex workers.”

Of course, that sounds a lot less heroic, so instead, law enforcement instead partnered with local reporter Dean Narciso who committed journalistic malpractice by running a story whose byline indicates it’s about human trafficking, but from its content was overwhelmingly about people seeking otherwise consensual sex work.

There were some welcome outcomes as part of this sting. The article indicated there were a couple people interested in paying for sex with minors, and there were some drug and firearm related charges. The article also indicated that ten missing minors were found as part of this operation as well. Those are good things, but that paints a dramatically different picture than finding “161, including city councilman” involved with sex trafficking. There is no detail about the minors or where they were from, and there is no indication that anybody at all was charged with any crime related to human trafficking (and I assume if there was, that would have been prominently featured). The entire article is very hand-wavy with the details and appears to use statistics cherry-picked by law enforcement.

The icanthascheezburger stance on sex work is simple, and the stance is backed by things I consistently hear from actual current and former sex workers:

  • Sex work is work. Sex workers sell their body in exchange for money and benefits, which describes literally every other job.
  • Doing sex work isn’t morally problematic (and being a sex worker doesn’t make you a “victim” any more than anyone else is a victim of economic inequality). Neither is being a customer of a sex worker. Consent (ideally enthusiastic consent) is key.
  • The reason prostitution is illegal in the US isn’t because it’s in the public interest for it to be; it’s because of religious zealots that pushed for it.
  • People are wising up to the fact that sex work should be legal, so law enforcement and others against sex work now lie about it and conflate it with human trafficking
  • Human trafficking of sex workers is largely only as big of an issue as it is because sex work is illegal; if it wasn’t super off the books, the very abuses anti-sex-work crusaders rant about are structurally a lot less likely to happen.
  • Human trafficking as a general issue is not accurately reported on, and facts get widely distorted. There’s an excellent You’re Wrong About podcast episode that goes into more detail about this.
  • Most of the issues that sex workers struggle with are a direct result of the fact that it’s illegal; it’s introducing sex workers to unnecessary risk
  • Journalists need to stop serving as a mouthpiece for law enforcement and actually start holding them up to scrutiny, instead of repeating their talking points. Law enforcement does not automatically have credibility.

Demand better news coverage of sex work and law enforcement.


Oct 5 2021

Remembering Steve Jobs a decade later

Steve Jobs standing by an image of a street sign representing the intersection of technology and liberal arts
10 years ago I posted a few quick memories about Steve when I was saddened to learn of his passing.

I’d like to again share a passage from his Stanford commencement:

No one wants to die. Even people who want to go to heaven don’t want to die to get there. And yet death is the destination we all share. No one has ever escaped it. And that is as it should be, because Death is very likely the single best invention of Life. It is Life’s change agent. It clears out the old to make way for the new. Right now the new is you, but someday not too long from now, you will gradually become the old and be cleared away. Sorry to be so dramatic, but it is quite true.

I’ve grown older and wiser over the past decade, and while my appreciation for the fruits of Steve’s work remain as strong as ever, I’ve grown less okay with how he built these products. The truth is, he could be a real dick, and although a lot of people who worked with him forgave him for this, he inspired a lot of other people in tech to be total assholes in how they ran their teams, and those teams didn’t make better products for it. Perhaps the luckiest thing about Steve’s leadership is the fact that we were able to get such incredible products despite how abrasive and quick to opinion he could be.

I’ve watched this industry mature in the last ten years and I’m really glad for it. Teams are a lot more caring. Work/life balance is increasingly valued and we are learning that the hustle/grind culture of startups is empty and often ineffective. We’re more mindful of structural issues like sexism and the lack of diversity in tech companies, especially the higher you look up the org chart.

We still have company leaders that are Steve Jobs-esque in their temperament (cough Elon Musk), but we came a long way as an industry, and I’m reminded of Steve’s own insight that even he would someday no longer be the new, and it would be his time to go and make way for the new.

This commemorative post isn’t to shit on Steve Jobs now that I’ve gained new perspective on some of his behaviors, though; it’s just that I now have a more refined appreciation of his contribution to the world, and importantly, a lot of my appreciation now is less about what Steve as an individual was able to do, but rather what his teams were so often able to do.

And people seem to understand that better now than ever before. In the late 90s we would see household appliances being manufactured in some knockoff of Bondi Blue because people thought that’s what made the iMac so iconic, but today entire companies are now more deeply driven by great design as well as the understanding that design goes deeper than the color and material on the case of your product.

People understand better than ever before that technology is more than just gadgets and apps. To make great technology products requires deeply understanding humans too, and that’s why Steve’s Apple always proudly stated that they stood at the intersection of technology and liberal arts.

That’s a hell of a legacy.


Oct 4 2021

mobile casino usa no deposit bonus

Editor’s note: This is a programming-related blog post; if you don’t program or your don’t know what a pull request is, you probably won’t get much value out of reading this.

Disclaimer: I currently work for GitHub, and I work on the pull requests team. I’m writing these thoughts about pull request in my personal capacity, and I don’t speak for GitHub (although I bet GitHub agrees with every word I say here).

The pull request’s most obvious value is as a tool to ensure that you are merging in high quality changes to your software. And that’s probably what you’re primarily using them for. You’ll post a PR with your changes, and a story behind those code changes, and you’ll spur a conversation that ideally ends with you improving and merging the code (or sometimes closing the PR without merging because of stuff you hadn’t considered, and that’s okay too!).

But that’s not the only thing a pull request is good for!

As someone is reviewing your pull request, it gives your PR a second, and equally important purpose: spreading knowledge! Now that others are reading your PR, you’re not the only person who knows how it works. It’s less risky for your company when more than one person knows how something works.

And if that’s not enough, a PR is a gift that has the potential to keep on giving, even long after it gets merged.

A merged PR serves as an excellent artifact. It is an immutable record of the actual changes to the code, but also it’s a glimpse into the developer’s state of mind from when they wrote it.

Awhile back, I was working on preparing some queries for an upcoming change in our database setup, and I noticed that there was a piece of code that conditionally would either take a list of IDs or a scope that represented a set of records. A comment in the code told me that taking the scope instead of the IDs was faster, but it didn’t say much else.

I was about to revert that change, so I was interested in knowing more.

GitHub ProTip™: If you’re looking at a commit page in GitHub, it’ll show you the pull request where it got merged, which is super handy:

screenshot of a GitHub commit page showing that you can see a link to the pull request a commit was merged to the main branch in

And in my case, I was able to look at fuller context behind that optimization, and I learned two important things: 1) the PR was over six years old, and that decision was based on very old assumptions about our database size and setup, and 2) the actual improvement in performance at the time was not huge. Armed with that knowledge, I deployed my change with better confidence (still using online slot machine that pay real money, of course), and I was tickled to learn that indeed, my approach came with a modest performance improvement in most cases.


Pull requests aren’t just good for developers looking for extra context behind an old code change. While your individual commit messages might be full of gems like WIP and fix that linter error for real this time and this really should work now, the PR itself becomes a place where you get to craft the story the way you want to.

If you have a docs team or a team that constructs release notes, PR descriptions are probably a lifeline for them, serving as an initial draft of what will become the user-facing release notes.

And if you release something and discover a bug that a PR introduced, the PR is even more helpful, because it’s an opportunity to see if the bug or bad behavior was expected or considered.

The PR is an important cultural contribution to how software development teams work together. They might have been introduced as a way to make it easier to merge in changes, but secretly they were a Trojan horse that also got software developers unknowingly to produce useful, human-generated documentation without skipping that step, because now it’s part of the software development process.


Oct 3 2021

megabucks slot machine

There’s been a campaign in Portland to recall our mayor, Ted Wheeler.

Ted Wheeler is a milquetoast husk of a mayor, true, and I look forward to seeing him get replaced with a better mayor.

But here’s the thing: we didn’t need to recall Ted Wheeler; he was up for getting replaced already.

Last year. Twice!

He failed to hit the 50% threshold in the earlier election, leading to a runoff in November. The progressive candidate that was the best alternative was picking up some serious steam. And we failed to elect the viable alternative to Wheeler by a margin that can directly be attributed to a write-in campaign for another candidate.

If we couldn’t pull together during a full election cycle to find a viable alternative candidate and get them across the finish line, this halfhearted fringe effort a year later sure as hell isn’t going to move the needle.

And indeed, the Recall Ted Wheeler effort has so far failed to even generate enough interest to get the necessary signatures to kick off the process. The campaign raised money just to hire people to collect more signatures just to continue getting the recall effort off the ground. The effort had until a few days ago to collect enough signatures and does not appear to have gotten them.

And even if somehow this had picked up steam, we had no viable candidate to replace Wheeler. If progressives couldn’t replace Wheeler during an actual campaign season last year, how the hell are they going to be able to even find a viable candidate and then mobilize voters to support that candidate when they can’t even get the necessary signatures to even start the recall process?

Every hour of effort and every dollar spent on this pointless campaign could have been better spent on just about any other initiative. The whole campaign feels less like an actual effort to accomplish something politically and more like a personal vendetta campaign to make Ted Wheeler feel bad whenever he travels through the town as he realizes how little Portlanders care for him.

I’m deeply sick of progressive movements being a synonym for ineffectiveness.


Oct 3 2021

It’s October 3rd!

Scene from Mean Girls where Aaron Samuels tells Cady it's October 3rd


Oct 1 2021

Patreon Comes Full Circle

Patreon had a really simple and straightforward business: creators online could sign up for accounts on Patreon, and fans could give them money every month.

It was a welcome way to start earning money doing online content creation: instead of being subject to the whims of chasing clicks and the seasonality of ad spending, a creator could get some relatively stable income from their most supportive fans.

Patreon was seeing steady, organic growth that benefited from network effects; if you’re supporting one person on Patreon, it’s easy to support others, and it’s convenient to have all your patronages managed in one place, which enticed more creators to sign up on Patreon.

Patreon could have run with this and built a profitable and sustainable business.

Instead, Patreon decided to raise a bunch of VC money. Of course VCs want serious growth in exchange for that money, and there’s really only so much you can do to drive growth when your business is allowing creators to have patrons contributing money to them.

They blew some money on turning Patreon into a content posting platform (which was never really necessary; most people on Patreon create their stuff and post it on other sites, and were just using Patreon to collect their money). That strategy didn’t really move the needle.

And now, we learn that they are going to spend a bunch of their most recent $155 million round funding original programming (kind of an unoriginal move given how many other companies have been investing in exactly the same thing).

On the surface, the strategy sounds kind of reasonable. Patreon was created years ago largely because none of these other platforms were offering their own ways for creators to monetize. Now that patronage is becoming a bigger way for creators to be funded, companies are taking notice, and we even have new platforms like Substack and OnlyFans that are built from the ground up with monetization built-in. Even Twitter and YouTube are supporting patronage natively.

But that still doesn’t make Patreon’s choice here make sense. Patreon was cool because it was decoupled from these other services, allowing creators to create content just about anywhere, even on their own web site, and they could use Patreon just for collecting money from patrons. With this original content move, not only is Patreon entering a crowded market that requires a type of expertise it doesn’t currently have, they’ve essentially given up on what could have been a profitable but slower-growing business because they instead want to chase after scale.

Which is exactly the antipattern that left creators looking for a product like Patreon in the first place.