news
Programming Leftovers
-
Max Bernstein ☛ Walking around the compiler
How does your compiler handle, for example, switch-case statements in loops? Does it do the jump threading you expect it to? Maybe you’re sitting there idly wondering while you eat a cookie, but maybe that thought would only have occurred to you while you were scrolling through the optimizer.
-
Ted Unangst ☛ slice tails don't grow forever
In a garbage collected language, one needs to be cautious about leaks caused by errant references, but caution can turn to paranoia. In go, I like to make little fifo queues by appending to the tail of a slice. But does this grow forever?
-
Dayvi Schuster ☛ Why Zig Feels More Practical Than Rust for Real-World CLI Tools
So when it comes to memory management there are two terms you really need to know, the stack and the heap.
-
Dayvi Schuster ☛ Why I Still Reach for C for Certain Projects
So a while back I got tired of xserver and decided to give wayland a try. I use Arch (BTW) with a tiling window manager (dwm) and I wanted to try something new, since I had a couple of annoyances with xserver. I’ve heard some good things about wayland so I thought you know what, why not let’s give it a shot.
-
Chris Done ☛ Laws
Laws that apply to our industry (and others) are interesting to me, and I’m writing up here the ones that often come to mind. I usually forget the name, so writing them up might be helpful for remembering in future.
-
esveo GmbH ☛ Tips for Working with Legacy Code
One tactic is making commits where the only message is “WIP” or “Work in Progress”. These give you checkpoints that you can backtrack to if you find your attempt to fix things has made everything go wrong. You can jump backwards through time with git checkout HEAD~N, where N is the number of commits you want to undo. Have a look around and decide if that’s the right place, then create a new branch with git switch -c new-branch-name and carry on from that point. Later on you can clean up unneeded branches with git branch -d old-branch-name-1 old-branch-name-2.
-
ACM ☛ Fifty Years of Open Source Software Supply-Chain Security – Communications of the ACM
Open source software supply-chain security is a hot topic, especially after the XZ attack, but what exactly does it mean? In the absence of an agreed-upon definition, I suggest this one, in three parts: [...]
-
Adnan Siddiqi ☛ Building Your First Multi-Signal Trading Strategy with RSI and Moving Averages
So in this post, we are going to combine two indicators: RSI and Moving Averages to come up with a strategy. But first, let’s talk about what we mean by a “strategy.” A trading strategy is simply a set of rules that tells you when to buy and when to sell. It’s different from just using individual indicators because it combines multiple signals into a complete system. Whether you use a single indicator or a set of indicators, in the end, we are going to generate buy/sell signals or open long/short positions. When you rely on a single indicator, for instance, RSI alone, you’ll often get false signals. RSI might show that a stock is oversold and ready to bounce, but if the overall trend is still down, that bounce might never come. Or it might be so weak that you barely break even before the price falls again. The same thing happens with moving averages. A crossover might signal a new uptrend, but without additional confirmation, you could be buying right into a temporary spike that quickly reverses.
I have already discussed RSI and Moving Averages in previous posts, which could give you an idea about the working of these two indicators. We are going to combine both to come up with a strategy.
-
NVISO Labs ☛ Detection Engineering: Practicing Detection-as-Code – Deployment – Part 6
The deployment phase is one of the most challenging steps in the Detection Development Life Cycle due to its implementation complexity. In this part, we will explore the principles and practices of deploying rules to target platforms. Additionally, we will go through some of the challenges encountered when designing and implementing a deployment pipeline, along with suggestions on how to overcome them, to ensure that our Continuous Deployment pipeline operates smoothly.
-
OpenSUSE ☛ openQA Gains AI-Friendly Interface
This marks a pivotal step toward embedding Artificial Intelligence [sic] into its open-source software development workflows.
-
R / R-Script
-
Rlang ☛ Clean R Tests with `local_mocked_bindings` and Dependency Wrapping
Testing functions that rely on external dependencies is hard.
Your tests become slow, fragile, and unreliable when they depend on external APIs, file systems, or services. Worse yet, some dependencies like Sys.time() return values that change constantly, making consistent testing nearly impossible.
The solution is simple: wrap external dependencies in your own functions and stub them with testthat::local_mocked_bindings.
-