The sorry state of software quality
Thanks to a tweet
by Aaron Toponce I learned about the Linux
/dev/full
pseudo-device.
Write system calls to it always fail with a ENOSPC
(no space on device)
error.
With it finding software that doesn’t check for failed writes is a
piece of cake.
Let’s see this in action.
Continue reading "The sorry state of software quality"Last modified: Thursday, March 10, 2022 9:43 pm
What can software developers learn from the Soviet Moon Landing Program?
In the twentieth century space race
between the Soviet Union and the United States
the former started way ahead.
In 1957 it launched the first artificial satellite, Sputnik 1,
and in 1961 it had Yuri Gagarin orbiting the Earth as the first human to space.
Yet, when it came to landing a person on the Moon it flopped spectacularly,
abandoning its N1 rocket and Soyuz spacecraft program after a series of fiery
failures.
It turns out that the problems of Soviet program’s N1 rocket —
one cased one of the largest artificial non-nuclear explosions in human history
— offer some important lessons to software developers.
Continue reading "What can software developers learn from the Soviet Moon Landing Program?"Last modified: Friday, March 6, 2020 8:43 pm
Modular SQL Queries with Unit Tests
I’m sure I’m not the only person on earth facing a
complex and expensive analytical processing task.
The one I’ve been working on for the past couple of years,
runs on the GHTorrent 98.5 GB data set of
GitHub process data.
It comprises 99 SQL queries (2599 lines of SQL code in total)
and takes more than 20 hours to run on a hefty server.
To make the job’s parts run efficiently and reliably I implemented
simple-rolap,
a bare-bones relational online analytical processing tool suite.
To ensure the queries produce correct results,
I wrote RDBUnit,
a unit testing framework for relational database queries.
Here is a quick overview on how to use the two.
Continue reading "Modular SQL Queries with Unit Tests"Last modified: Sunday, August 5, 2018 2:01 pm