The Psychology of the AWS Outage
Unless you've been living on another planet, you're certainly aware that over the past couple of hours Amazon's AWS S3 service has experienced a serious outage, which has affected thousands of sites and services around the world. For reasons I will elaborate in this post, the coverage of this outage has been blown completely out of proportion. So, what's the difference between the perceived risk associated with the AWS outage and the actual risk of this outage?
Continue reading "The Psychology of the AWS Outage"
The Road to Debugging Success
A colleague recently asked me how to debug a Linux embedded system that crashed in the Unix shell (and only there), when its memory got filled through the buffer cache. He added that when he emptied the buffer cache the crash no longer occurred.
Continue reading "The Road to Debugging Success"
Measures of Donald Trump's Inaugural Address
Computers allow us to measure objectively the properties of text. I applied some established text and sentiment analysis algorithms on Donald Trump's inaugural address and compared the results with the same metrics of past well-known presidents. Presidential speeches are nowadays typically a team effort. Nevertheless, I thought that the speech writing team's output reflects the president's choices regarding staffing, policy, and style. Moreover, as luck would have it, in this case it was reported that Donald Trump wrote the inaugural address himself. The findings of this exercise surprised me.
Continue reading "Measures of Donald Trump's Inaugural Address"
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"