Author Archives: Cecil McGregor

About Cecil McGregor

As a software developer with many years experience, I am offering some of the many insights learned through the school of hard knocks. My passion is writing software! And I like to write superior software. I try to follow current trends and techniques as I apply them to my everyday work.

Linux Sockets: Which process listens to a port?

Developing software using sockets almost always involves starting, stopping, debugging multiple processes, opening and closing sockets. The processes may or may not work properly as differing stages of development creates “interesting” problems. To complicate matters, multiple systems frequently add to … Continue reading

Posted in linux, problems, python, software, software development, techniques, therapy, Uncategorized | Leave a comment

Our Confusion with Software

Our brief period of computer technology has witnessed a unique phenomenon of human history. In all this time software has been almost unimaginably bad and poses a danger to humanity. Imagine a psychosis of incredible proportions in which the people … Continue reading

Posted in problems, software, software development, stories, Uncategorized | Leave a comment

Thinking in Code

When writing software, I believe the most productive developers actually think in code. They imagine concepts and easily translate them into the coding language of choice. They have the languages and tools so ingrained that they don’t have to bother … Continue reading

Posted in analysis, code reading, software, software development, techniques | Leave a comment

Code Reviews: A Discussion

Introduction Code reviews illustrate a crying need for a skill that does not appear to have much traction in the software industry. The absence of code reading skills in schools has created armies of developers unable to comprehend simple code. And, … Continue reading

Posted in analysis, code reading, code review, interview, java, problems, readings, stories, techniques, test | Tagged , , | Leave a comment

Easy Py Messaging

The advent of inexpensive but powerful single board computers such as Raspberry Pi, Arduino and others opens the possibly of connecting many of these boards to perform tasks cheaply and conveniently. Traditionally clusters and grids of computers were relegated to … Continue reading

Posted in 0MQ, arduino, distributed systems, linux, messaging, python, raspberry pi, raspbian, software, techniques, Uncategorized, zeromq | Leave a comment

Functional Refactoring for JavaScript

Functional programming often centers around machinery and not core principles. Functional programming is not about monads, monoids, or zippers. It is primarily about writing programs by composing generic reusable functions. This article is about applying functional thinking when refactoring JavaScript … Continue reading

Posted in functional, javascript, node.js, refactor, software, techniques | Leave a comment

The Actual Cost of Duplicated Code

I’ve attempted to find studies detailing the cost of duplicate code within projects. We can all spout the problems these clones produce, but can we quantify the cost from actual studies of real projects? Apparently not. One pundit suggests the if … Continue reading

Posted in clone, software | Tagged , , , | Leave a comment