@j1mc @sir The other problem is one of scale. Programmers feel like they're allowed to create things that Might Not Work because a) they don't value their craft and b) the worst case that they can think of is that it will segfault.

The first one is a problem with how the craft is obtained. You're not going to value something that you learned in a month at a bootcamp, you can't appreciate anything about the actual Craft of it at that level yet, because you haven't grown the lenses appropriate. People spend like, the entirety of their lives growing up seeing Good Art, so by the time they come to do artwork, they have a model of what's appropriate. When you start programming that's almost always the first time you've seen code, there isn't that run-up period that allows you to discern what is and isn't Good Code.

The second one is a problem with scale. The craft of programming is so removed from the effects, that you can't accurately understand what the effects will be. The solution here is teaching, and accountability. Civil Engineers know that if they build something that fails, people will very likely die, and they, personally, will be inspected. Programmers need to be taught that if they fuck up, not only will they caused a lot of stress (Which honestly, is underappreciated in our current Zeitgeist), and time-loss, but they will likely cause environmental damage (Because of the sheer fucking heat and power that are used and put out by server farms), and they can ruin people's lives (Bad notification times have social consequences on people's social groups and also mental state).

But teaching isn't enough. Because programming is most of the time used in building products, and the rotation period of employees is very short, not to mention that so many people touch a codebase during it's development, it's impossible to develop an accurate idea of what you should be accountable for. It's a firing squad mentality, where nobody knows if the bullet that they shot caused someone to die. You cannot have any sort of accountability in that environment.

Honestly if I could boil all design advice down to a single tip, "make it difficult to do the wrong thing" would be it

@kyle I’ve had my canon ip4500 inkjet since 2006 or so. I’d been happily printing on it for over a decade on MacOS, manually flipping pages when I needed a 2-sided print until I switched to Linux and noticed a duplex option in the setup (which was not there on the Mac)... ☝️

For B/W it really is plug and play, but color needs work. Color printing just worked on OSX, while I still haven’t gotten my color profiles right on Linux. Another (extreme) case: davidrevoy.com/article757/the-

The Oatmeal - Comics, Quizzes, & Stories / I have a hard time taking compliments
A comic about taking compliments.

In memory of the many lost, and the one who brought us joy. May they always know where their towel is.

We have resolved our patent case with Rothschild Patent Imaging. We thank our pro-bono counsel - Shearman & Sterling LLP for representing us.

#FreeSoftware #OpenSource

Following #COVID-19 medical advice is a partisan issue in the US now. The virus is non-partisan, but if one party engages in riskier behavior resulting in more deaths among its members, recent elections have been close enough that it could impact the outcome in November.

And as an aside... let me state just how cool it is that by having /home on a different disk you can be fully up and running after completely replacing your OS in < 30 minutes.

Tried out over the last few days. Comparing it to mainline Gnome3, it's a fair bit slicker. I like the OSX-style dock, and holy crap I've missed column view. On the other hand, some things are frustratingly obtuse: Defaulting to the shortcuts window every time you hit meta, app switching without a pop-up window showing which app you're on, and single-click open in column view are all incredibly frustrating. Charging $5 for a launcher menu editor is also... less than ideal.

@sir Then you're still stuck with the higher latency of IPC (to say nothing of the richer set of well-understood communications primitives you get intra-process). Shm+Worker Processes are fine for batch processing tasks, but in user-facing or latency-sensitive code (e.g., a game's 3d rendering engine or a live data visualization tool) biting the bullet may be necessary. The same compartmentalization that splitting your process enforces can also be designed into a codebase *when necessary*.

@sir That forces a lot of memory copies if you need to transfer data between the processes or if you have multiple workers that need read-only access to the same data blob.

@sir Event loops/coroutines force you into a trade-off between inefficiently breaking long-running work into smaller nuggets and blocking the core. Threads seem like a good fit for separating operations that need to be low-latency (e.g. user-facing) from longer running tasks that benefit from being in the same address space. Debugging threads becomes infinitely easier if they’re isolated, with stock concurrent data structures mediating between them.

New accept at HILDA. Link Once and Keep It (Loki), is our new approach to streamlining data integration tasks by keeping humans in the loop.


Announcing the SourceHut project hub 🎉


I don't usually explicitly ask for shares, but this is a big deal for SourceHut - the project hub solves one of our major goals for the alpha. Please help spread the word ❤️

It's incredibly disheartening when a peer review includes the phrase "there must be a way to X" without pointers. If you, as the reviewer, think there should be a better way to do something than the authors propose, it's your responsibility to find it. It's irresponsible to expect the authors to conjure up related work that you yourself are not aware of.

@kyle Bread’s component ingredients have a longer shelf life than the finished product. The opposite holds for soup. Probably the right call when one might be called on to lock one’s self away for 2 weeks at any moment. Although it might be fun to get into canning...

@joshfowler @krzym @PINE64 I got about 4-6 hours on Debian+Phosh as of my last round of untethered trials. Low screen brightness, and screen off for good chunks of time, but with Cellular and WiFi enabled. The phone was a nice pocket warmer the whole time through, so I expect there’s plenty of room for improvement.

Show more
X marks the spot

Oliver's connection to the fediverse. Mostly a personal site... so nothing to see here. Move along, or go to Oliver's Feed