Showing posts from 2018

Holiday Borg

The Borg were a fearsome adversary introduced in Star Trek: The Next Generation.  With a collective hive mind, they assimilated entire worlds, stealing their technology and enslaving the population to serve as drones.  Able to adapt to and neutralize any defense thrown up by their victims, the Borg were relentless.

While much has been written about the Borg, here are some little known facts about them.

Earth's first Borg was Earnest Borgnine. His name should have given him away, but he looked human and was very likable.

A very distant descendant of his was Annika Hansen, better known as Seven of Nine.

Earth did eventually succeed in capturing and containing the Borg.  Below is a monument to this achievement.

And turning the tables, we see Christmas has assimilated the Borg.

Happy Holidays!

The Best Selling Tech Book On Amazon Is ...

After reviewing some books I considered classics¹, I wondered what tomes were popular nowadays.  I was disappointed to learn the #1 best seller on Amazon, in the category of data structure and algorithms, was Cracking the Coding Interview.
Was this a direct result of raising students on "teaching to the test?"  Were companies so confused about hiring, they needed to administer a programming puzzle to find a suitable candidate?
The reviews ranked Cracking the Coding Interview highly, and the contents were substantive, not fluff.  Yet, glancing over to my bookshelf, I would want candidates to be acquainted with titles like these: More Programming Pearls by Jon Bentley, The Cathedral & The Bazaar by Eric S. Raymond, Algorithms in C by Robert Sedgewick, and a classic-to-be, Joel On Software by Joel Spolsky.

When software development was novel (circa 1980), a popular notion was that the skills required for programming were similar to the skills needed in music and chess.  Fi…

Bookshelf Classic: Byte Magazine - Inside The IBM PC

While not a book, it is a classic. Published November 1983 with 720 pages, the magazine featured articles describing the innards of the IBM Personal Computer. The clever cover art shown here was created by Robert Tinney.  Byte's Robert Tinney era spanned from the mid-70s to 1990, and his covers showed an uncommon thoughtfulness.  Think vinyl record album sleeves of the day, where the artwork could have meanings on multiple levels.

Inside, you can find an interview with Philip Estridge, president of IBM's Entry Systems Division, and it included a discussion about keyboards. IBM was renowned for building high quality keyboards, and the unique tactile and audible feedback carried over to the keyboard for the IBM PC.  But the atypical placement of the left shift key and the return key, along with the function keys being on the left instead of across the top, prompted Byte to remind Estridge that "some customers were upset."  The layout didn't match the keyboards of …

Why I Like vi

Having already written about hardware tools, this post examines one of my favorite software tools, namely vi (aka vim ).

I've chosen the photo essay format, because vi, like a clever joke, an amazing magic trick, or a masterpiece of art,  is ruined if you try to explain it.

Automating Dark Mode

Back in the monochrome days of PC computing, our choices were green on black, or amber on black.  The amber monitors actually cost a bit more because European studies of the day showed amber was easier on the eyes.

Apple's Macintosh Computer introduced the black text on white paper look.  In emulating paper though, I found my eyes fatiguing more quickly.  I expressed to a friend and colleague that it felt like a swath of electrons beaming into my eyes, in which he replied, "okay."

To this day, I'm not sure if he was in solid agreement, or patting my head and humoring me.  Judge for yourself with the sample color schemes I've created at the end of this post.

With macOS Mojave, Apple introduced Dark Mode, which in essence, is a return to the calm and focused energy levels of green, amber, and black. I really like it, but one cannot live on dark chocolate and dark coffee alone.  We can switch between Dark Mode and Light Mode via the System Preferences.

But wouldn&#…

Bookshelf Classic: The Mythical Man-Month

More than 250,000 copies were printed, and yet, that was not enough to spare me countless programming and management fads.  So popular was this title that it earned a 20th Anniversary Edition and still, buzzwords like "pair-programming," "open workspaces," "test driven development," and "military style management" forced their way into my vocabulary.
Frederick P. Brooks, Jr., in 1964, managed the software side in the creation of the IBM 360 Mainframe Computer.  Working on the famed project also afforded him a view of the hardware management side, and by way of comparison, he noticed that no developments in software could, or ever would, improve productivity, reliability, and simplicity in the same way hardware improved with advances in electronics, transistors, and large-scale integration.  Noting Moore's law, Brooks writes "We cannot expect ever to see two-fold gains every two years." 
The essays in The Mythical Man-Month shed lig…

A Tale Of Two Sundials

It was the best of times, it was the worst of times, ... it was the season of Light, it was the season of Darkness, it was the spring of hope, it was the winter of despair ... With apologies to Charles Dickens, I am writing about two sundials on Cornell's campus. One is outside Goldwin Smith Hall in the Arts Quad while the other is in the Engineering Quad.

As an undergrad, I didn't pay much attention to either of these works of art.  Apparently, neither do current students as they hurried past me while I was taking pictures.

But these two sun dials merit contemplation.  One is from the past, and with the gravitas that a layer of patina brings, provokes thoughts of time and mortality. The other looks outward, and with modern, shiny arms, seeks to embrace a future where the sky's the limit.

When family and friends talk about college, and when college bound students ask me what they should study, I show them these two photos and ask them which one piques their curiosity.


Tools Of The Trade

"Like many artists, I am very attached to my brushes. I love them all individually and I’m very familiar with their individual characteristics. I can distinguish between brushes of the same make, series and size. I know their degree of spring, their shape, their balance, and, most importantly of all, the marks I can make with each of them."

This was the opening paragraph from an article on Artists and Illustrators.  I'm no artist, but I felt an instant kinship.  Developers -- the passionate ones -- care about their tools in the same way.

A good computer configuration would include a fast multi-core cpu with two 24" displays.  Dual monitors were fantastic, letting me code on one display and allowing me to read email or web pages on the other.  They became less fantastic when I began to code on both displays.  The angles between the monitors were awkward and the frame separating them was distracting.  A single large monitor became more suitable, and I found 27" i…

Part 3: The C Programming Language

I found C easy to pick up.  Yet, it had the wonderful property in that the more you used the language, the more there was to learn.

The book in the middle with the red title -- The C Answer Book -- provided solutions to the exercises presented in The C Programming Language (topmost book).  It was neatly done, and kept pace with the concepts presented in the source material.  Depending on how you learn, the answer book can be useful.  Back in the day, before the internet matured, it certainly was.  Today, it's not as essential because sample code abounds.

The book at the bottom was the second edition of The C Programming Language and described the ANSI standard.  A new one on Amazon sold for about $60, which made my first edition quite the bargain.  Emphasizing C's main strength, and at the same time, acknowledging a major source of difficulty, K&R expanded Chapter 5: Pointers and Arrays with diagrams of how memory was organized, how arrays were imagined, and how pointers …

Part 2: The C Programming Language

The leftmost book was a first edition, and it beckoned me, sometime around 1984, from the shelves of Barnes & Nobles.  Priced at $17.95, the book was a significant out-of-pocket expense for someone on their first job, but it would prove to be quite the investment.

Turning to the Introduction, I noticed it was denoted as Chapter 0. This was a delightful self-reference to the C language itself, where arrays started with an index of 0, instead of 1.  Think of it as an elevator that marks the ground floor as "G" and the next floor up as "1."

C's array and pointer capabilities were what made the language especially powerful, compact, clear, and efficient, but it also took discipline to use them right.  Pointers let you access memory, but sloppy use can take your pointer to bad places, leading to security holes, and ultimately crashing your program.

One technique I've used to corral stray pointers was to set them null after I was done with them.  It was stil…

Bookshelf Classic: The C Programming Language

My first job had me programming in Microsoft BASIC for the IBM PC (DOS).  BASIC worked well enough, but its limitations were clear.  The language was interpreted and therefore slow.  More importantly, it wasn't a modern structured language, and instead, relied on line numbers and the GOTO statement.  Anyone who has read Dijkstra knew GOTO was a bad thing.

Having learned a structured language in college (PL/I), using BASIC felt unnatural.  When a C compiler became available for the PC, I saw a chance to improve and modernize our software.  The problem was selling the idea -- a problem made harder because I wasn't fluent in C.

"It would be a staffing problem.  Not many people know C, but we can find a lot of programmers who know BASIC," noted one manager.

The argument was strong as my knowledge of C was weak.  But I knew that C, by design, was a small language and thus easy to learn.  "It has about 30 keywords," I proffered to another manager.

Unimpressed, h…

Hiding from Facebook 🙈📕

Months leading to up to Facebook's IPO in 2012, I received an invitation to join from an old neighbor and acquaintance.  I ignored it.  Upon receiving a second invitation, I replied stating that I'm not the Facebook type and prefer not to join.  My former neighbor, surprised, replied that he had never sent me an invitation.  He wasn't even a member.

And the Facebook shenanigans have ramped up ever since.

One trick I learned to block my desktop from accidentally accessing facebook is to update the computer's host file.  The technique works for Linux, Mac, and Windows, and you will need elevated permissions to do so... and maybe a techie friend.

MacOS and Linux
sudo vi /etc/hosts

notepad C:\Windows\System32\Drivers\etc\hosts

Add the following entries:

The address maps specifically to your local PC, and is sometimes referred to as "home."  Consequently, any application, social plugin, or invisibl…

Bitcoin: 15 minutes (or more) of privacy

Andy Warhol was right when, in 1968,  he said "In the future, everyone will be world-famous for 15 minutes."

Now that the future is here, what everyone seems to desire is 15 minutes (or more) of privacy.  At least that's what occurred to me when I asked myself what problem Bitcoin, and more specifically, blockchain is trying to solve.

Digital currency offers the ability to hide transactions, and is often associated with those who purchase illegal goods or launder money.  But digital currency is also used for legal transactions and appeals to those with memories of the 2008 recession; they want to have as little to do as possible with the banks that contributed to it, and that often means using some combination of credit unions, cash, and Bitcoin.

Unlike Fiat money, Bitcoin is not backed by any government. It operates independently of any central bank and lives on the net.  This is made possible by a mathematical token referred to as the blockchain.  It follows the Bitco…

Bookshelf Classic: The Design and Evolution of C++

There was a time when I put a corporate seal on my favorite books.  Dr. Stroustrup noticed the embossed seal, ran his fingers over it, and remarked "nice" as he signed my copy.

The book was  published circa 1994, and Stroustrup was on hand to give a talk to an eager C++ user group.

While the book describes the early evolution of C++ -- the proposals, the decisions, the trade-offs, and the mistakes -- it is in the early sections where we learn most about the author.  Stroustrup writes:

"It is often claimed that the structure of a system reflects the structure of the organization that created it.  Within reason, I subscribe to that idea."

In my years of programming and working with management, I have found this to be very true.  This was Stroustrup's way of saying the C++ language is largely shaped by who he is.  While it's no surprise he has advanced degrees in mathematics and computer science, we learn that his hobbies include history and philosophy.  Descri…

Kid at Heart, Beginner's Mind

What do Hot Wheels, the XO Laptop, and Mozart's Nachtmusik have in common?  Each one appeals to the beginner and opens the door to something more complex.

There is a way of thought in Zen Buddhism referred to as "Beginner's Mind."  Approach activities with the mind of a beginner, even routine things such as eating.  That's because  "In the Beginner's Mind there are many possibilities. In the expert's mind there are few."

Mozart's Nachtmusik is a popular introduction for those new to classical music, whether as a listener or as a budding musician.  Listen to the clip above and you will understand better than any words I can write.

The XO Laptop brought the concept of computers and programming to children. especially in underdeveloped nations.   It did not succeed as planned, but the hearts behind it were in the right place.  The Verge (2018) recently took a thorough look back, accompanied by some sharp photos:

OLPC’S $100 Laptop Was Going To C…

iPhones In Stretch Jeans

Current iPhones are just too large.  I saw one -- an iPhone 6 perhaps -- squeezing out from the front pocket of a young woman's stretch jeans.  With each step she took, the iPhone slid a little further out.  But she couldn't save it as her arms were full with two trays of sheet cake.

Walking past her, I made eye contact, and then looked down to her pocket.  She smiled and asked, "Could you?..."

I gently pushed the phone back into her pocket.  She thanked me and I continued on my way.

When I recount this tale, the guys would, in mock frustration, say "Mike, what's the problem?  Why are you complaining that phones are too big?  Did you at least get her number?"

Okay, this particular situation made for a fun blog entry. But being serious, a phone should fit in your pocket comfortably and be properly sized for one handed operation. The iPhones that came after the 4S pushed past those boundaries, delaying my upgrade from the 4S until it could no longer func…

Microsoft Git-Hub Hub-Bub 🙀

The developer community is divided over Microsoft's purchase of GitHub.  In simple terms, it's closed source versus open source.  ArsTechnica's take is that GitHub had no good alternative, but some developers are having none of that, and are actively exploring options such as GitLab and BitBucket.

For perspective though, and at the risk of sounding like your high school English teacher, read the following articles on Steve Ballmer and Satya Nadella.  Compare and contrast.

Vanity Fair 2012:
Ballmer and Microsoft’s Lost Decade

Wired 2017:
Nadella and Microsoft’s Future
Bill Gates and Steve Ballmer were more than their sums.  Together, they made Microsoft formidable and feared.  Alone, however, Ballmer was a functional CEO, executing in the present, but unable to take Microsoft into the future.
Nadella came from within the ranks of Microsoft, and given the complexity of the company, an insider for CEO was a good thing.  A telling and significant move was that Nadella allowed so…

Phone Cradle Hack

It dawned on me during breakfast.  Coaster sets come in various containers and as I stared at this particular empty holder, I realized it could be used to hold my iPhone.  It props your phone up a bit, and there's a convenient opening to channel your recharging cable.

And what of the coasters it once held?  Without a home, they are coasting around the dining table.


Opening a drawer in my hotel room in Toronto, I found this.  I worship at the altar of tech, but I imagine the reaction between two priests might go like this:

Mormon Priest:  "At least we're wireless!"

Catholic Priest: "And from the very beginning too!"