How to avoid redoing manual corrections
Say you have an automated process to create a report, which you then have to polish by hand, because there are adjustments that require human judgment. After three hours of polishing, you realize that the report is full of errors due to a bug in the initial reporting process. Is there a way to salvage the three hours of work you put into it?
Continue reading "How to avoid redoing manual corrections"
Debugging PCSecrets Synchronization
A reader of my Effective Debugging book commented that debugging is learned through experience. I think he's partly right, so I'll periodically describe here techniques and tools I use when debugging. A problem I faced today was the inability of the PC-based PCSecrets program to sync with the Secrets for Android counterpart. Here is how I troubleshot and solved the problem.
Continue reading "Debugging PCSecrets Synchronization"
Computer vs Human 0-1
Earlier today the Athens State Orchestra played the Symphony No. 3 in C minor, Op. 78 by Camille Saint-Saens, which is also known as the Organ Symphony. The French organist and composer Thierry Escaich was supposed to play the organ. There was a slight delay at the beginning: a lady appeared on stage and explained that there were technical problems with the organ's "brain".
Continue reading "Computer vs Human 0-1"
The State of Software Engineering Research
At the 2016 Foundations of Software Engineering conference, a panel discussed the state of software engineering research. The panelists were asked to reflect on three questions.
Continue reading "The State of Software Engineering Research"
Netdata on a Raspberry Pi
A couple of days ago I had the privilege to see a demo of netdata by Costa Tsaousis, the person behind this project. The project offers comprehensive real time monitoring of a Linux computer with low overhead in a single easily-installed and self-contained system. I thought this was too good to be true, but the number of users and installations hinted that this could well be the case. I therefore decided to install the system on a Raspberry Pi I'm configuring to replace an ancient 20 year old IBM PS/2 server.
Continue reading "Netdata on a Raspberry Pi"
Debugging a File Synchronization Problem
In Effective Debugging I write that if a web search doesn't return you any useful results, then maybe you're barking at the wrong tree. Here's an example.
Continue reading "Debugging a File Synchronization Problem"
Revision Control Smells
As software developers, we talk about
design smells, and even
While reviewing some code, it occurred to me that
revision control smells are also distinguishable and important.
Here are some obvious ones and my recommendations for avoiding them.
An orderly revision control repository is a sign of professionalism.
Continue reading "Revision Control Smells"
The Computer Tube
I've been reading the book ENIAC in Action,
which details the fascinating ten-year history of the first general-purpose
programmable electronic computer.
In it I found a reference to 7AK7, the so-called computer tube,
which improved the reliability of tube computers.
Continue reading "The Computer Tube"
Verifying the Substitution Cipher Folklore
A substitution cipher has each letter substituted with another.
Cryptography folklore has it that simple substitution ciphers
to break by looking at the letter frequencies of the encrypted text.
I tested the folklore and the results were not quite what I was expecting.
Continue reading "Verifying the Substitution Cipher Folklore"