Tux Machines

Programming Leftovers

Posted by Roy Schestowitz on Jan 18, 2025

=> Security Leftovers | Audiocasts/Shows: Hackaday Podcast, Lunduke, and GNU World Order

The New Stack ☛ 8 Free Tools Every Web Developer Should Know

=> ↺ 8 Free Tools Every Web Developer Should Know

Are you a web developer, or are you starting out on your quest to become a web developer?

Xe's Blog ☛ Amazon's Hey Hi (AI) crawler is making my git server unstable

=> ↺ Amazon's Hey Hi (AI) crawler is making my git server unstable

Please, just stop.

Sean Goedecke ☛ Thinking clearly about software | sean goedecke

=> ↺ Thinking clearly about software | sean goedecke

You can go a long way as a software engineer without ever managing to think clearly. The feedback loop of writing and running code is so immediate that we can often get by with trial-and-error.

James G ☛ Pattern: Lazy loading

=> ↺ Pattern: Lazy loading

One of the programming patterns I have seen used in several contexts over the last year is lazy loading.

Daniel Xu ☛ Flaky tests, or: why not to ignore mysteries

=> ↺ Flaky tests, or: why not to ignore mysteries

I spent a few weeks earlier this year tracking down a set of flaky end-to-end tests where bpftrace would occasionally cease to print output. I had gotten as far as figuring out std::cout had badbit set after a write but had run out of ideas on how to debug it. At the time, because I could not reproduce it locally, I had assumed it was an oddity with pipes and CI and given up.
Except bugs never go away. They only lay dormant.

Rlang ☛ Flowcharts made easy with the package {flowchart}

=> ↺ Flowcharts made easy with the package {flowchart}

Fortunately, there are several packages in R for drawing flowcharts using different approaches. The problem is that the programming is generally quite complex, and the numbers have to be entered manually or parameterized beforehand. These flowcharts can have reproducible problems because if data changes, we have to manually change the parameters again.
To make our lives easier, there’s a new {flowchart} package that uses the tidyverse workflow, which allows to create many different types of flowcharts in just a few steps.

Noë Flatreaud ☛ WebAssembly is turning 10 this year

=> ↺ WebAssembly is turning 10 this year

As WebAssembly (WASM) celebrate its 10th anniversary this year, I just found out that despite being bullish on it, I never really deep dived its assembly language.
Now is better than ever to break it down ;

Lewis Campbell ☛ How I think about Zig and Rust

=> ↺ How I think about Zig and Rust

These I think miss the big picture; Zig and Rust come from completely different contexts.

Python

SANS ☛ New tool: immutable.py, (Sat, Jan 18th)

=> ↺ New tool: immutable.py, (Sat, Jan 18th)

When performing triage on a GNU/Linux system you suspect might be compromised, there are many aspects of the system that you may want to look at.

Java

Bozhidar Batsov ☛ A Simpler Way to Deal with Java Sources in CIDER

=> ↺ A Simpler Way to Deal with Java Sources in CIDER

For ages dealing with Java sources in CIDER has been quite painful. Admittedly, much of the problems were related to an early design decision I made to look for the Java sources only in the classpath, as I assumed that would be easiest way to implement this. Boy, was I wrong! Countless of iterations and refinements to the original solution later, working with Java sources is still not easy. enrich-classpath made things better, but it required changes to the way CIDER (nREPL) was being started and slowed down the first CIDER run in each project quite a bit, as it fetches all missing sources at startup. It’s also a bit trickier to use it with cider-connect, as you need to start nREPL together with enrich-classpath. Fortunately, my good friend and legendary Clojure hacker Oleksandr Yakushev recently proposed a different way of doing things and today I’m happy to announce that this new approach is a reality!

Standards/Consortia

MIT Technology Review ☛ We need to protect the protocol that runs Bluesky

=> ↺ We need to protect the protocol that runs Bluesky

Just like email, Bluesky sits on top of an open protocol, in this case known as the AT Protocol. In practice, that means that anyone can build on it. Just as you wouldn’t need anyone’s permission to start a newsletter company built on email, people are starting to share remixed versions of their social media feeds, built on Bluesky. This sounds like a small thing, but think about all the harms enabled by social media companies’ algorithms in the last decade: insurrection, radicalization, self-harm, bullying. Bluesky enables users to collaborate on verification and moderation by sharing block lists and labels. Letting people shape their own experience of social media is nothing short of revolutionary.
And importantly, if you decide that you don’t agree with Bluesky’s design and moderation decisions, you can build something else on the same infrastructure and use that instead. This is fundamentally different from the dominant, centralized social media that has prevailed until now.

Ted Unangst ☛ new year new rules new lines

=> ↺ new year new rules new lines

We have a new edition of POSIX, which means new rules, new regulations, new red tape. But not new lines. Which is to say, posix at long last banishes new lines in file names.
Implementation seems straighforward, but like my mechanic says, it’s $1 knowing what to check and $99 knowing where to check.

=> gemini.tuxmachines.org

Proxy Information
Original URL
gemini://gemini.tuxmachines.org/n/2025/01/18/Programming_Leftovers.gmi
Status Code
Success (20)
Meta
text/gemini;lang=en-GB
Capsule Response Time
141.648916 milliseconds
Gemini-to-HTML Time
1.964383 milliseconds

This content has been proxied by September (3851b).