Posts

Video Analytics — Deep Learning Edition

Image
There is a lot of stuff out there when it comes to doing Video Analysis based on Deep Learning (use The Googles). It’s always been a bit of a pain to setup though — as with most things Deep Learning, it’s largely a case of Do It Yourself. Install the packages, re-install them because you didn’t get it quite right, build your models, start training them, reinstall the packages because you didn’t get the GPU version…. you get the point, it takes a while to just get stuff setup before you can even start doing anything. Or, it  used  to take a while. Thanks to  Akshay Bhat ,  herewith a one-stop shop for all your  Deep Video Analytics  needs . In one single set of docker containers, you get everything you need to do DL based video analytics, from importing, to analyzing, and thence to searching. To begin with, you import all the videos you want to process, either directly, from YouTube, or S3/GS/etc. Once you’ve imported them, the project comes with a b...

“The Journey Is The Reward”

Image
Many years ago, when I was wood-working, one of my projects was an oak side-table. I spent months on it — hour after hour, night after night, bringing it to the correct finish. There was a kind of zen-like quality to the work, an introspective meditative state that I would be in, that would help ease away the daily burdens and leave me curiously refreshed. Oh, I’m glad I built that table — I still have it — but  the entirety of that experience was about building the table . The journey truly was the reward. And then I think about AWS. The entirety of my DevOps-y life with AWS has consisted of mastering an increasing number of bells and whistles associated with VPCs, ELBs, ECR, ECS, and whatnot. And that’s before you even get to the  Things That Are Not Three Letter Acronyms  like Aurora, Fargate, Snowflake, Aurora, and such-like. And, somewhere along the way, I realized that I had successfully confused the mastering of a complex process with the joy of delivering th...

Hacking the Thundering Herd

Image
You know what the  Thundering Herd  issue is, right? Basically, you have a whole bunch of different events that are gated on a single resource — a database for example. If all those events fire at the same time, then they all go thundering along to the database at the same time, trying to get in, and causing the database to choke. Ideally, you’d get the events to fire one at a time, but sometimes, well, shit happens. My first exposure to this was way in the past I was the CTO of a phone company (•). Imagine if you will hundreds of thousands of VoIP phones scattered around the country, each of them connected to our data-center. Each of these phones  registered  themselves to our service, basically letting our service know where the phone was located on the InterTubes, and which  User the phone was associated with. Whenever there was a call to/from a phone, we’d spin up a process for the associated  User  that did a bunch-a housekeeping — think fun...

Reinventing the Wheel — #CowboyDeveloper Edition

Image
“ Those who don’t remember the past are condemned to repeat it ”. You hear this all the time, usually in jest, ironically, or sometimes even sarcastically. The thing is, this is practically an Existence Condition when it comes to the software industry, which suffers — aggressively — from  Not Invented Here  (NIH) syndrome. Follow the bouncing ball on this thought process in your typical  #CowboyDeveloper ’s head • I’m smart • Therefore, I know everything worth knowing • Therefore, if I don’t know it, it isn’t worth knowing • Therefore any precedent that I’m unaware of, is worthless Makes sense, doesn’t it? The wonderful thing about this approach is that it allows for any amount of Head-In-The-Sand activity, with the following behaviors being pretty run of the mill wherever #TechBros congregate 1.  Don’t Look Stuff Up.  I mean, seriously, “ google-ing ” is practically a verb, is it really that hard to look something up? But nooooooo, you’ll find  #Co...

The Dead Horse Theory of *BAD* Product Management

Image
The — truly — sad part is that I’ve seen pretty much all of these applied at some point or the other. It is actually particularly prevalent in small/lean/agile/rapidly-growing companies who bring in “professional management” to “take them to the next level” (scare quotes intentional). You see — in enterprises the above “professionals” tend to act as checks&balances on each other, cancelling out their own worst impulses.  However , when they are provided the unfettered power of a small company, well, all bets are off. Oh, they  might do good, but more likely, you end up with some significant subset of the above stupidity…

Core Memory

Image
So, way back in the days of yore, memory didn’t come in handy-dandy chips that just plugged in . Memory was an actual thing, with wires and magnets and whatnot. Big and bulky (compared to what we see these days of course!) it was a technological tour-de-force for the time. For a long long period (mid-50s through the mid-70s), one of the predominant memory types was   Core   memory, which used little magnetic rings (or   cores ) as the individual bits. In particular,  Core RAM   used ferrite cores as the bits , with the wires used to magnetize the cores in opposing directions. Depending on the direction that you sent current through the wires, you could set them to be clockwise ( 1 ), or counterclockwise ( 0 ). In fact, one of the first computers I worked on was a   PDP-10 , which used CORE RAM. The thing is, these ferrite cores were brittle, and would would frequently break and fall. The sysadmin would sweep up the broken ones, and throw ’e...

On Assessing The Quality of Software

Image
/via http://geek-and-poke.com/geekandpoke/2008/2/4/the-art-of-programing.html “ How do we build quality software? ” It’s a pretty simple question to ask, but one in which the answer can take pages. For starters, what do we mean by  Quality ? We could get into the whole definition of  Quality , and go off on a digression about the false dichotomy of separating  Truth  And  Quality , about the need to fuse  Rationality  and  Romanticism , and then end up wandering off and reading  Zen and the Art of Motorcycle Maintenance  all over again. Mind you, that would be my attempt at ignoring the original question (See?  Thats  why I could never be a politician!), and we can’t have that, can we? The thing about  Software Quality  is that so much of it falls into a “ I know it when I see it ” category (with apologies to Oliver Wendell Holmes). Everybody has their own take on what it actually is, though you...