Bookshelf Classic: Design Patterns

This is an odd book.  It is a classic, yet among the least useful books in my library.  The authors Gamma, Helm, Johnson, and Vlissides, affectionately referred to as the "Gang Of Four," wrestled with Object-Oriented Programming (OOP) to produce a catalog of solutions.  Inspired by the pattern languages used in architecture -- notably by architect, design theorist, and professor, Christopher Alexander -- they worked to imbue software development with the same formality, benefits, and gravitas of the age-old discipline.

To some degree, the "Gang Of Four" succeeded. They explored and reinforced a working vocabulary regarding software design such as Model View Controller, Singleton, and Factory.  Unfortunately, they also promoted jargony and academic terms such as adapter which is better known as wrapper, observer for publisher/subscriber, and compositor and composition for formatting classes.

OOP, while still popular, is waning, yielding to both new styles such as f…

The 24x7 Trap

One Sunday morning, I noticed a US Postal truck driving like a DHL delivery van -- in a word, frantically.  Normally, my mail carrier is methodical, efficient, and friendly.  Apparently, he was delivering for Amazon.

I've read accounts where the drivers welcomed the extra work and the subsequent pay, but I've also read accounts where additional tools -- straps and dollies -- weren't provided to help with larger and heavier packages, making those drivers uninterested in the overtime.

On another Sunday morning, my bank branch was open, mainly because the bank across the street adopted Sunday hours.  Inside, the mood was somber and the air was stale.  The ventilation system was dialed back to account for fewer people.  Normally, the tellers were friendly and engaging, offering lollipops to customers with children.  Looking into the tellers' eyes, I could see they just hoped to make it through the day.

I never went back on a Sunday.  Fortunately, the extend hours at the b…

LuldCalc version 1.1 Available

Version 1.1 is available for downloading at the app store.  The changes are cosmetic: contrast and readability have been improved, and the icon has a cleaner design.

More info about LuldCalc can be found here:

DIY: Hide The Mac Desktop

macOS Mojave introduced stacks to organize and clean up the desktop.  I like and use that feature, but sometimes, I want to go a little more minimalist and hide my desktop entirely.

Those who have bitten the Apple already know the commands to hide and show the desktop.

defaults write CreateDesktop -bool false && killall Finder

defaults write CreateDesktop -bool true && killall Finder

For the uninitiated, I will explain the commands and help you put them in a couple of scripts so you can hide and show the desktop at will.

First, you will need to launch the terminal app.  It lives in the Utilities folder, but you can also use Apple's Spotlight Search and type in "terminal"

Once you launch the terminal, you can type in the above commands and watch your desktop hide and reveal itself respectively.

The defaults command gives you access to the Mac OS user default settings.  You can read the value of CreateDesktop, or in th…

Programming Languages I've Loved and Hated

Upon encountering various programming languages during my career, some appealed to me instantly, while others left me cold.  I never really understood why, but perhaps by writing about them, I can discern a pattern.

PL/C: This was the first language I learned.  Structured, imperative, and procedural, PL/C was Cornell's teaching variant of PL/1, and the language shaped much of my thinking.  It was a good language, and I liked it, but it was also an academic language and one I would never see or use again.

Basic (IBM PC): It was hate at first sight.  The language relied on line numbers, needed GOTOs, and was interpreted. But it was early in the PC days and I had to use it if I wanted to do anything useful.  In time, Basic became a compiled language and eventually evolved into Visual Basic for Windows programmers.  But even then, the first version of Visual Basic did not directly support arrays, an omission that convinced me that Basic would forever be a dumbed-down language.

8088 Asse…

Post Processing: Hiring, Microsoft, Einstein, Google Fi, and Linux

I explored how tech hiring was broken in two previous posts: The Best Selling Tech Book On Amazon Is ... and Alternatives to the Whiteboard. An article from CNBC adds to the story.  Historically, the Google hiring process required six to nine months and 15 to 25 interviews, but learning the lesson of diminishing returns, Google has adopted the "Rule of Four."

In the post Git-Hub Hub-Bub, I wrote how Microsoft, under Nadella, is different and better than when it was under Ballmer.  Microsoft continues that trajectory as written in Bloomberg's The Most Valuable Company (for Now) Is Having a Nadellaissance.  Most telling is Nadella's mature reaction to a $1 trillion valuation: "... not meaningful" and any rejoicing about such an arbitrary milestone would mark "the beginning of the end."
The figurines Albert Einstein and Homer Simpson sat together on my shelf for a few years.  Every now and then, I wondered what they would say to each other if they ha…

Bookshelf Classic: More Programming Pearls

If you were to judge a book by its cover, you would, from the image of the keyboard, conclude this book is old.  If you were to judge this book by what's inside, you would conclude likewise because the examples are written in C and Awk.  But were you to look deeper, you would see that these are no ordinary pearls.

Jon Bentley wrote a regular column for the Association for Computing Machinery (ACM) and his essays were collected into two of books: "Programming Pearls" and "More Programming Pearls."   The first book focused on speed and efficiency, while the second book covered that and more, including debugging, I/O, and enlightening "Aha!" moments.

Because these essays were originally written for a monthly magazine, Bentley recommends taking it slow, reading one column per sitting, and trying the exercises.  Thankfully, he doesn't leave you hanging, and provides answers at the end of the book.  Chapters 5 thru 8 are the exception and can be read i…