Culture Icon


Beliefs, behavioral patterns, thoughts, and institutions of the developer community.
511 Stories
All Topics


SpeedTyper – type racing for programmers

Alexander Lotvall:

It’s a typing app specifically for software developers. You type code snippets from real open source projects. It supports inviting your friends to a room and competing in real time against your friends, and you can get your result on the global leaderboard.

I like how it uses code snippets from popular projects. I don’t like how slow I am at writing Rust code! 🤣

Evan Hahn

The lone developer problem

Evan Hahn, describing what he calls the “lone developer problem”:

A lot of software is built by one person. It might be an entire product built by a lone developer or a significant piece of a system.

When this happens, I’ve observed that code written by a single developer is usually hard for others to work with. This code must’ve made sense to the author, who I think is very smart, but it doesn’t make any sense to me!

All this time, I just thought it was my code that was hard for others to work with! Turns out I’m not alone…


The value of quantity over quality

In a post about overestimating our short-term ability and underestimate our long-term ability, Paavan drops this nugget:

It’s important to recognise the value of quantity over quality. This is best illustrated by an anecdote that I first heard from Kevin Cannon at PUSH Conference: a potter who spends time making 100 vases will end up with one that’s better quality than if they spent the same amount of time trying to just make 1 perfect vase. So, while quality is obviously important, focussing on quantity at the start of a creative journey is the way to get there.

I’ve never heard that anecdote before, but I absolutely love the truth it so clearly represents.

Jim Nielsen

The art of knowing when to quit

This short piece by Jim Nielsen resonated with me (much like Manu’s post resonated with Jim). He says:

I like this idea of beginning to notice and bring attention to people or creative works that intentionally bring closure, even when you’re left wanting a little more.

When it comes to open source software, people often see a lack of activity and proclaim that a project is unmaintained. Sometimes that’s true, but sometimes the project is merely finished, and that’s okay. In fact, it’s better than okay. It’s downright successful.

There’s a big difference between quitting and finishing. Quitting is in the realm of failure, but finishing is in the realm of success. The key is to define what finished means before you get there, lest you feel like you’re merely quitting.

The art of knowing when to quit? Sure. But how about the art of knowing how to finish?

Tyler Cipriani

Toxicity in open source discussions

Tyler Cipriani read “‘Did you miss my comments or what?’ Understanding Toxicity in Open Source Discussions,” and learned about entitlement:

The term is new (to me), but the paper renders a familiar scene, “The author is usually visibly upset about not being able to use the tool, often complaining about wasted time.”

The situation is all-too-common and exhausting. And when it happens over-and-over, maintainers give up.

It made me wonder: why have I never seen “entitlement” in a code of conduct?

Good question…

Ars Technica Icon Ars Technica

Stability AI plans to let artists opt out of Stable Diffusion 3 image training

On Wednesday, Stability AI announced it would allow artists to remove their work from the training dataset for an upcoming Stable Diffusion 3.0 release. The move comes as an artist advocacy group called Spawning tweeted that Stability AI would honor opt-out requests collected on its Have I Been Trained website. The details of how the plan will be implemented remain incomplete and unclear, however.

This seems like a step in the right direction, but it appears that artists will have to proactively register and manually flag matched images in the database. Ain’t nobody got time for that!


83% of developers suffer from burnout

Burnout has reportedly reached a critical point in the software developer circle since the onset of the Covid-19 health crisis. A recent study by Haystack Analytics, a company specializing in productivity of engineers, found that 83% of software developers suffer from burnout. The main reasons given by the latter to explain this exhaustion are high workload (47%), process inefficiency (31%) and lack of clarity of objectives and targets (29%).

That few?! 😏

Rachel Stephens RedMonk

Kindness, tech staffing and resource allocation

Rachel Stephens, trying to reconcile the claims that the tech industry is vastly overstaffed with other claims of vast resource scarcity:

Both things can be true: it’s not a clear over- or under-staffing problem. It’s a problem of proportionality. There can definitely be organizational bloat… At the same time, there are also areas in tech that remain chronically understaffed and under-resourced: OSS project maintainers, people working on-call support, and people writing documentation to name a few.

An interesting analysis with a much-needed call for kindness to our fellow nerds as they face these tumultuous times.

And (I can’t believe I’m writing this, but the jokes about Twitter layoffs in particular keep coming at a surprising rate) be kind to people facing layoffs. Losing your job is awful in the best of circumstances; going through it in such a public and charged situation must be emotionally grueling. Be kind.


A timely TIME interview with Mastodon founder Eugen Rochko

Apropos of nothing 😉

Mastodon, a decentralized microblogging site named after an extinct type of mammoth, recorded 120,000 new users in the four days following billionaire Elon Musk’s acquisition of Twitter, its German-born founder Eugen Rochko tells TIME. Many of them were Twitter users seeking a new place to call their online home.

Those users, whether they knew it or not, were following in the footsteps of Rochko, 29, who began coding Mastodon in 2016 after becoming disillusioned with Twitter. “I was thinking that being able to express myself online to my friends through short messages was very important to me, important also to the world, and that maybe it should not be in the hands of a single corporation,” Rochko says. “It was generally related to a feeling of distrust of the top down control that Twitter exercised.”

Adam and I first spoke with Eugen in 2018 (before it was cool) and even signed up on his instance, but haven’t started posting there… yet. I’m a bit skeptical of its ability to scale beyond technologist circles. But maybe that’s okay?

André Staltz

The myth of mass collaboration

André Staltz:

I used to believe there was mass collaboration on the internet. But I’ve realized that collaboration is extremely hard. It does not scale, especially not at internet scale. The examples we look up to are either not collaborative on the microscopic level, or are rare exceptions to the rule.

The examples he’s referring to are “Wikipedia, open source projects such as Linux, hacktivism, and crowdsourced science experiments such as Rosetta@home.”

This post is sobering, but André speaks from a lot of experience.


A web-based implementation of The Matrix's digital rain

This project is a web implementation of the raining green code seen in the Matrix franchise. It’s built right on top of the upcoming graphics API WebGPU, but falls back to the functional WebGL wrapper, REGL; its previous Three.js version is maintained in a separate branch.

I used to spend countless hours in college scouring the web for the best digital rain screen saver for my laptop. Sounds like the author is with me on that:

The number of implementations out there of this effect is a testament to the size of the film’s impact on popular culture. For decades, I’ve enjoyed searching for and comparing them from time to time. That’s probably how you arrived here— it’s fun to see what kinds of solutions different people come up with to a problem, when the process is purely recreational and its success is subjective.

This one’s really nice and even has a 3D mode. The README says it’s “made with love”, but from what I can tell it’s almost entirely JavaScript. 😜

A web-based implementation of The Matrix's digital rain

iliana etaoin

There is no “software supply chain”

iliana etaoin:

There is a lot of attention on securing “software supply chains.” The usual approach is that you want to try to avoid security issues in your underlying components from impacting customers of your product; and when they do, you want to be able to respond quickly to fix the issue. The people who care about this class of problem are often software companies. The class of components that are most concerning these companies are ones where unpaid hobbyist maintainers wrote something for themselves with no maintenance plan.

This is where the supply chain metaphor — and it is just that, a metaphor — breaks down…

I think we all know this intrinsically, but it’s easy to forget. iliana goes on to describe feelings I’ve heard expressed by a few maintainers recently:

I just want to publish software that I think is neat so that other hobbyists can use and learn from it, and I otherwise want to be left the hell alone. I should be allowed to decide if something I wrote is “done”. The focus on securing the “software supply chain” has made it even more likely that releasing software for others to use will just mean more work for me that I don’t benefit from. I reject the idea that a concept so tenuous can be secured in the first place.

Miłosz Piechocki

What makes a senior engineer? Writing software vs building systems

A lot of ink has been spilt over the years trying to elucidate the divide between junior and senior. Miłosz Piechocki makes the distinction this way:

Junior Engineers care about writing Software. They value code quality, employ best practices, try to adopt cutting-edge technologies. They invest a lot of time into learning new technologies. To them, the ultimate goal is to create elegant, performant, maintainable software.

Senior Engineers care about building Systems. To them, creating software is just one of the steps. First of all, they question whether the software needs to be built in the first place. They ask what problems would it solve and why it’s important to solve them. They inquire who will be using the software and on what scale. They think about where the software would run and how they’re going to monitor whether it’s working properly. They also decide how to measure whether the software is actually solving the problems it was supposed to solve.

He goes on to describe how hard it is to build Systems and lists activities that are part of that process.

Jacob Kaplan-Moss

Quality is systemic

Jacob Kaplan-Moss with a hot take on software quality:

Software quality is more the result of a system designed to produce quality, and not so much the result of individual performance. That is: a group of mediocre programmers working with a structure designed to produce quality will produce better software than a group of fantastic programmers working in a system designed with other goals.

What does he mean by “a system designed for quality”? Read on to see for yourself..


_why's Estate is back online and now hosts links and mirrors to everything the man published on the internet during his illustrious career.

It works sort of like a museum that sells maps.

If you’ve never heard of why the lucky stiff, click through to get acquainted. If you were fortunate enough (like myself) to be around when he was actively creating things, click through for some top notch nostalgia.


We need young programmers; we need old programmers

Mark Seemann explains why we need young people in the software industry:

We need young people in the software development industry. Because of their vigour and inexperience, they’ll push the envelope. Most will fail to do the impossible, but a few succeed.

And why we also need old people in the software industry:

We need old people because they’re in a position to speak truth to the world… Old people have less on the line, so they can speak more freely. If someone you used to admire retires and all of a sudden starts saying or writing unpleasant and surprising things, there might be a good explanation, and it might be a good idea to pay attention.

AI (Artificial Intelligence)

The AI art apocalypse

Alexander Wales:

This image was created by an AI, MidJourney. All I had to do was type in a prompt (“wildfire”) and aspect ratio. This AI is pretty good, but nowhere near the state of the art, and AI like it are, over the next few years, going to make art like this available within seconds at a cost of pennies. This applies not just to “art” like the above, which is going to accompany my prose and worldbuilding projects, but to almost every area of life where you see pictures of any kind. I think it’s hard to understate how big of a deal this will end up being, and this blog post is largely my attempt to collate a lot of the arguments under one roof, in part because some of the arguments aren’t actually arguments at all.

Command line interface

I raised my kids on the command line... and they love it

John Goerzen built a computer for his 3yo, installed Debian on it, and set up a GUI for it.

The looks of shock I get from people when I explain, as if it’s perfectly natural, that my child has been able to log in by himself to a Linux shell since age 3, are amusing and astounding. Especially considering that it is really not that hard.

It’s not that hard, but it is so foreign to people that they’re quickly impressed by such things. Still, John decided to introduce his kids to a GUI eventually:

Jacob mastered the basics of xmonad really quickly. Alt-Shift-C to close a window. Alt-Shift-Q to quit back to the “big black screen”. Alt-Shift-Enter to get a terminal window.

We launched thunar (the XFCE file manager) and plugged in his camera. He had a good deal of fun looking at photos and videos from it. But then I dropped the true highlight of the day for him: I offered to install Tuxpaint for him. That’s probably his favorite program of all time.

Tux Paint!


Working in the software industry, circa 1989

Gather round while Jim Grey tells a (long) tale.

My 33rd anniversary in the software industry was the Sunday that just passed, July 3. I remember the date because my second day on the job was a paid holiday!

I want to show you just how far our industry has come and how much we’ve learned.

The more things change:

Lots of things we all take for granted didn’t exist. The Internet existed but not the Web. Software was delivered to customers on tapes or floppy disks. The CD burner was still a few years in the future. Java didn’t exist, JavaScript didn’t exist, .NET didn’t exist.

The more they stay the same:

There was a holy war over text editors. IDEs weren’t a thing yet, so we all coded in a text editor. I was firmly in the Emacs camp, but most of my co-workers loved vi.

Player art
  0:00 / 0:00