Programming Leftovers
-
Misusing random oracles for practical purposes
Why this article? Because I believe that cryptographic "random oracles" are such a wonderful construct that should be known and used even outside the theoretical cryptography domain, where they are used mainly to prove the security of various cryptographic constructs "in the random oracle model".
(And because, as feedback to my article from yesterday about multi-factor encryption, I've received a few comments that stated I've made a mess of things, mixing "theoretical constructs such as oracles used in proofs" with real world encryption.)
-
Language Tooling Antipatterns
Earlier today I tried to write a small project starter template for OCaml, since tooling is the weakest link to getting started with that language. After a thousand little sources of friction I was defeated, so I decided to write this post instead.
-
Remi Collet: PHP version 8.1.19 and 8.2.6
RPMs of PHP version 8.2.6 are available in remi-modular repository for Fedora ≥ 36 and Enterprise Linux ≥ 8 (RHEL, Alma, CentOS, Rocky...) and in remi-php82 repository for EL 7.
RPMs of PHP version 8.1.19 are available in remi-modular repository for Fedora ≥ 36 and Enterprise Linux ≥ 8 (RHEL, Alma, CentOS, Rocky...) and in remi-php81 repository for EL 7.
The modules for EL-9 are available for x86_64 and aarch64.
-
Why engineers need to be bored. - by John McBride
An analysis on boredom in engineering productivity and how it can lead to deeper innovation.
-
You don't need Scrum. You just need to do Kanban right.
Why did you choose Scrum instead of Kanban? If you can’t answer that question, you didn’t choose Scrum. Someone else chose it for you.
-
Appreciating Your Way to XP
This advice from the first edition of XP Explained is a pretty good summary of the engineer’s approach to change: find a problem, solve it. Unfortunately, this approach ignores many of the prerequisites for lasting change.
-
vmtest: Run your tests in virtual machines
Systems software that depend on specific kernel or host properties often contains logic to gate functionality based on what features are available at runtime. This necessarily begs the question: how do you test platform specific logic? Mocks can help, but they come with their own set of tradeoffs. At the end of the day, there is no substitute for actually running your code.
eBPF (BPF) is somewhat of an extreme example because of how fast development occurs in that ecosystem. Most, if not all, BPF features are baked into the kernel, meaning that any non-trivial BPF-powered application heavily depends on kernel version. Since I do quite a bit of BPF development, the rest of this post is as a result, BPF focused. Despite that, keep in mind that all proposed techniques/solutions are quite general and can be applied to other domains.
-
Working with Dates and Times Pt 1
Introduction
In this post, we will cover the basics of handling dates and times in R using the as.Date, as.POSIXct, and as.POSIXlt functions. We will use the example code below to explain each line in simple terms. Let’s get started!
-
Key practice: Test Driven Development
Test Driven Development means test first + coding + refactoring.
Test Driven Development doesn’t mean tests written shortly after coding OR just “developer testing”.
Test First means code is designed to be testable as a primary concern.
Test First means the tests tend not to be coupled to the implementation.