Day 8 in the rabbit hole of redesigning CodeMirror 6's decoration system. The floor is littered with discarded patches. Failing tests are rumbling underfoot. Some light starting to appear ahead, but that might just be me fooling myself again.

I love the cryptic-yet-systematic patterns I get when trying to visualize some programming problem with a ballpoint.

What'd you do this week? I worked on changing a bunch of finicky code to support a new feature for four days and on the fifth realized that the feature should be built in a completely different way (which, admittedly, I would never have realized without implementing it first)

A Persian translation of Eloquent JavaScript is taking shape at ! Translation itself is mostly complete, new chapters will be edited and finished weekly.

Linux on the desktop: because it's easier to accept community-driven brokenness than profit-driven misbehavior

System design (assuming you want to allow other people to interact with it) is as much about language as it is about machines. Finding concepts and names that make sense and connecting them to each other in a way that users can work with is often the hard part.

Okay, gambling sites asking about donating to my projects in to be listed as a sponsor (for SEO, presumably) is a new thing

The disconnect between hectic house/childrearing work and slow, thoughtful dev work can be pretty jarring when I have to alternate between the two

Happiness is finding good vocabulary for something you couldn't previously frame well. (In both prose and programming.)

In SemVer, X.0.0 is a major version, and 0.X.0 is the "Coward's major version"

Moving CSS into JS adds a barrier preventing people not already deep in JS land from styling stuff. Doing CSS the classical way means you lose the advantages of JS infrastructure (dependency management, avoiding a global namespace). For authors of generic components, both suck.

I'm hitting a bit of a wall here

I love how when something goes screwy on X windows, you never know which of the twenty kludged-together, partially overlapping subsystems that make up the graphical UI is responsible.

The delicate art of getting everybody to stop trying to talk to you without seeming rude about it.

Which library gets the part of CSS-in-JS where you inject styles into the page right? What are important consideration (performance, timing, etc)? Are there ways to circumvent the full-page relayout when you dynamically add style rules?

Implementing a good solution is easy. Finding a good solution, on the other hand, might take years and dozens of iterations.

Does there exist a file tagging solution that is cross-platform (at least Linux and macOS), scales to huge collections of files, and has a decent interface to effectively search and organize a collection of photo files?

It's short notice, but Recurse Center is giving out $10,000 fellowships for women to participate in the next batch. This is a huge and great opportunity! RC has been extremely significant in my development as a programmer and it's a wonderful community. I'm happy to answer any questions if you have them!

I guess you could try to document the appropriate ranges for a given use case, but since use cases can't all be enumerated this breaks down. Can it be solved on the API level?

Ideally, you'd specify priorities relative to something else, but since this is supposed to be modular, you shouldn't actually need to know what other modules you'll be ordering in advance.

So if you want to allow modules to specify priority for something, just using numbers quickly gets you something I'd call the z-index problem: people input ridiculously big numbers to 'make sure' their thing gets priority.

And if something else does need to take priority over that, the next person has to use even huger numbers and you get a mess. Same with !important (in CSS). Is there a better approach?

Exasperated to find yet another needless ambiguity in the Go grammar

Can we maybe just agree that from 2019 on we stop designing ambiguous programming language grammars? It's not that hard.

Show more

Follow friends and discover new ones. Publish anything you want: links, pictures, text, video. This server is run by the main developers of the Mastodon project. Everyone is welcome as long as you follow our code of conduct!