The sorry state of software quality
Thanks to a tweet by Aaron Toponce I learned about the Linux
Continue reading "The sorry state of software quality"
/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.
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?"
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"