A Look Back on 50 Patents, and Initiating an Innovation Pipeline

Earning 50 patents in just two years is an incredible accomplishment.  My first US patent was granted on June 19, 2018, and my 50th happened June 23, 2020.  This is after beginning to file patents only in mid to late 2017.  How does one go about getting patents so quickly, especially in the highly crowded tech sector, and how can an organization facilitate such excitement among their staff to check for their names at 12:01 AM any given Tuesday?
This Process is Nuanced, and Expensive!
There is a lot of basic information about patents that you can read about or watch talks on from many other websites.  This includes information such as patents don't have to be complicated or some over-engineered gadget (lawyers make them seem like that, though!); what makes a good patent and what doesn't; why it's important to be first to file versus first to invent; how patents thread the eye of a needle to be written with enough specificity to be plausible, and implementable by someone profi…

Extensible Database Tester in Python, with Permutations

Here is some Python code that allows you to generate all combinations of options by choosing one item from an arbitrary number of different lists.  Not only that, but each option is actually a data structure that also includes lots of metadata about the ramifications of the option, in addition to the option value itself.
Let's say you're looking to run performance testing on different types of tables and underlying data arrangements in Amazon Redshift Spectrum.  You can devise a template SQL query that can be configurable in multiple ways.  For instance, you could choose between multiple tables or views from which to query data (say, if comparing Redshift to Redshift Spectrum performance), and you also want to see the performance of count(1) vs. count(*) to see if one uses more data or works quicker on Redshift vs. Spectrum.  Thus, you already have two lists of options, and need to come up with the four permutations of these options.
The Groundwork
Basically, to lay some ground r…

Touring with Turo - The Pros and Cons

Driving to more remote yet scenic places as a side trip to a big city can reveal places and ways of life unknown to folks who don’t get out of the downtown bubble.Not everything a city dweller enjoys is in the city, so part of the experience of a culture is to get to know where folks go to take a break.For instance, when visiting Washington, DC, why not hit Virginia Beach too?Maybe next time you’re in Boston, think of taking a couple hours to go to Cape Cod.Maybe if you’re in New York City, take a visit to Long Island (though better plan that one in advance).But if you find yourself in Detroit, it might be better to go to Windsor just across the Canadian border and stay put. :-P  As such, for once, I will regale you with experiences not from software I'm writing, but that I'm using as a consumer.
Background - What brought me here?
I was in quite a conundrum during a recent trip, visiting a city where several famous Ivy League schools were all about to start at once, and the vast…

Unit Test Database Mocking in Golang is Killing Me!

For some reason, writing a particular set of unit tests in Golang proved to be an extreme hassle.  In this case, I was trying to add a column to a table and then write a unit test to verify this new functionality.No matter how much I looked around for where to correctly specify how to build this table with the new column, the Cassandra database kept complaining the column didn’t exist.Imagine how frustrating it is to specify a relational database schema that seems to be ignored by your unit tests.
Our system consists of a Cassandra database plus a Go backend server.The Go unit tests require Cassandra to be running locally on a Docker container, but do not seem to actually utilize the existing databases, opting to make its own that is out of reach from anything I can see from TablePlus.The Go code itself utilizes these objects through some level of indirection by a manager, a harness, and a couple modules dealing in the actual queries.
The Fix
In the test harness, I was running …

John Osborne, Retro Pinball Designer, in Lodi

Back in May, I got to hang out in California for a couple weeks to attend a couple conferences: Google I/O and IoT World.  I did a couple panels at IoT World, and one of them is already summarized on this previous blog post; the other one is coming later.  However, as a bonus during my time in California, I also got to attend the Golden State Pinball Festival in Lodi.  Here, they had John Osborne, a pinball designer who worked at Gottlieb from 1972-1984.  The following are expansions of notes I took during his Ask Me Anything presentation.

A Bit of Background
John Osborne started his professional journey by studying electromechanical (EM) engineering at Fresno State.  This, of course, elicited cheers from the local crowd.  After college, he started working at Gottlieb in 1972 at the age of 21.  Besides Gottlieb, he was also interested in working at Chicago Coin, which he said was sketchy, because the hiring manager's last name was always changing; as such, he never applied.  He was …

My IoT World 2019 Panels: Recap

I was graciously invited to give two panel discussions at the IoT World conference that happened last week in Santa Clara, CA.  Since the panels are not recorded, here are my thoughts and jots from before and during the Wednesday 5/15/2019 panel, entitled Wrangling IoT Data for Machine Learning.  (Actually, I'm going into even more detail than I had time for at the panel.)  Despite that the conference organizers approached me about speaking on behalf of my former employer about some topics that honestly I was given just a few weeks to investigate and could only report back with failures even now, I managed to convince them that I was fluent in other things that were more generic -- unrelated to the job I knew I was about to quit.
(Note: My thoughts and jots for the Thursday 5/16 panel are coming later.)
Business Calculations
The first question we were tasked with answering in this panel related to the business calculations that must be made before taking on a project in Machine Learn…