Saturday, March 22, 2014

Shazzam!

Shazzam!  While cleaning my office today, I stumbled across a fun piece of memorabilia...

About four years ago, when I was still working for ServiceNow, I wrote a piece of software that I called “Shazzam” as a sort of code name while I was developing it.   Shazzam turned out to be one of the more successful improvements I made to the Discovery product, making one particular aspect significantly faster and more reliable than it was (technical details below for the 3.5 readers who might care).  When the time came to actually ship Shazzam, we never changed the name – so Shazzam became part of the released product.  And I became known throughout the company (and many of its customers) as the guy who wrote Shazzam.

When I retired last year, someone photoshopped my head onto the graphic below, and used it for the cover of a card my colleagues signed (the “good riddance!” card):


So what does Shazzam do?  Its job is to probe a range of IP addresses to see which ones have a device active on it.  The result of running Shazzam is a list of active IP addresses that need to be investigated more deeply.

Prior to Shazzam, the Discovery product accomplished this by “pinging” each IP address.  In order to keep the code as pure Java, it did this by invoking the “ping” utility for the particular platform it was running on.  Using ping has several disadvantages, not least of which is that some devices have ICMP (which ping runs on) disabled.  It's also outrageously slow, because a separate process has to be started for the ping of each address being scanned.

Shazzam takes a completely different approach: it checks to see if each IP address responds to any of the TCP or UDP ports used for the deeper investigation.  For example, it checks for SSH ports being listened on (because that's how a UNIX server would be investigated) and for SNMP ports responding (because that's how a piece of network gear would be investigated).  It makes all those tests using Java's NIO package, which is designed for high-speed I/O while consuming just one thread.  All of this worked very well, even for customers with very large scale deployments (many thousands of devices).

I don't mind being known as the Shazzam guy :)

Dogs meet magician...

Dogs meet magician...  Hilarity ensues!

These Russians are completely insane...

These Russians are completely insane...

What's this?

What's this?  Why, it's one page from a notebook used by Isaac Newton while he was studying at Trinity College, Cambridge University in 1664 and 1665.  The entire notebook has been scanned at high resolution and is available online.

Geek: an interview with Donald Knuth...

Geek: an interview with Donald Knuth...  I'd not seen this interview from 2008 before.  The interviewer is Andrew Binstock, and it's full of interesting stuff.  Here's one sample:
To me, it looks more or less like the hardware designers have run out of ideas, and that they’re trying to pass the blame for the future demise of Moore’s Law to the software writers by giving us machines that work faster only on a few key benchmarks! I won’t be surprised at all if the whole multithreading idea turns out to be a flop, worse than the "Itanium" approach that was supposed to be so terrific—until it turned out that the wished-for compilers were basically impossible to write.
To programmers of a certain age (that would include me!), Donald Knuth has a status approaching that of a living god.  His monograph The Art of Computer Programming was recommended to me by Don Tarbell in 1976.  I bought the three volumes that were then available, and practically wore them out as I studied them from front to back.  Prior to reading these volumes, I had absolutely no idea that algorithms and data structures had been so well studied and understood; in that sense Knuth's volumes were revelatory for me, as well as providing a solid foundation of knowledge and understanding for me to build a career on...

California leads the way!

California leads the way!  In government-sponsored credit card information breaches.  I guess we really shouldn't be surprised that an agency staffed primarily by union members, whose contracts are overseen by all-too-corruptible professional bureaucrats, and whose IT department must surely be the least desirable entry on the resume of every geek whose ever worked there, would have IT security issues...

Every day I find reasons to be glad that we're escaping this lunatic asylum...