Posts

Showing posts from April, 2018

Software Resiliency, and Bulkheading

Image
You know what a bulkhead is, right? You know — in ships, where they create watertight compartments so that in case there is a leak, it is isolated to just one part of the ship, instead of the whole thing pulling a Titanic? Well, pretty much the same applies to software, where “bulkheading” is where you isolate parts of the system so that if one part of it barfs, it doesn’t infect and/or clobber the other parts of the system. It’s one of the core-precepts of building fault-tolerant systems, viz.,   Error Encapsulation . From a “big-picture” architectural perspective, yes, this does mean all the usual stuff about “loose-coupling”, “component-driven architecture”, “microservices”, and pretty much any other buzz-word in this vein that you can think of. However, the actual   functionality   associated with this is something that you should keep in mind — and towards that, let’s look at a specific example You’ve got a connection pool, serving two sets of back end services which a

Genuinely Useful Repos — Episode #13

Image
This   from   Jezen Thomas , an npm package to check if a number is equal to   13 . Ridiculously useful, especially if you are   a huge Taylor Swift fan . Or are building  elevator controls in the US . Maybe you like   gambling in Italy ? Or have   Triskaidekaphobia ?   This, very definitely, is the repo for you! The syntax is clear and elegant: is(13).thirteen(); // true is(12.8).roughly.thirteen(); // true is(6).within(10).of.thirteen(); // true is(2003).yearOfBirth(); // true // check your math skillz is(4).plus(5).thirteen(); // false is(12).plus(1).thirteen(); // true is(4).minus(12).thirteen(); // false is(14).minus(1).thirteen(); // true is(1).times(8).thirteen(); // false is(26).divideby(2).thirteen(); //true and I look forward to embedding this in all my projects.

Mentoring Is A Conversation, Not A Speech

Image
Think about your mentors, and any mentees that you might have had. There are many many reasons why the relationship might be (or have been) effective, but one common denominator is that, in the effective ones,  both sides gained from the relationship . But first, a digression. Think about your relationship with your loved ones — especially friends that you’ve had for a long long time. Y’all are different people than when you met — you’ve grown, changed, and moved on from those salad days. Many experiences large and small have shaped you into the person you are, and even more will shape you into the person you will be. And the same applies to your friends too! It is this personal evolution that has made the relationship last this long — the experiences that each of you have been through creates new vistas to explore, new fields to experience, and new things to learn. To be an effective mentor, you need to find our what  you  can learn from, or about, your mentees. Find somethin

Accessibility, and Why You Should Care

Image
OK, first off, let’s acknowledge that “Accessibility” is a bit of an overloaded term, but we’ll get to that in a bit. First off, let’s look at a tangible example —  How usable is your product for somebody who has one arm ? So fine, fine, you look at the demographics, and convince yourself that the total number of one-armed people who use your system is … small. Great, so —  What about people who have lost the use of one arm ? Oh, right, thats quite a few more people. And it can happen due to age, accidents, disease, etc. And, yet again, you convince yourself that this doesn’t really apply to you. So, next one —  What about people who have   temporarily   lost the use of one arm? Who might I be talking about? Oh, so many examples • You’re carrying a cup of coffee • You’re using the mobile UI with one hand, and are holding on to a bus-strap with another • You’re carrying a baby • You broke your arm etc. You get the point, right? It turns out that this pesky   Accessibility  

Inpainting, Deep Learning, and Anonymization

Image
Anonymization Image recognition is one of the areas that Deep Learning excels at. It is, in fact, so good at it that these days you can pretty easily identify anyone from a photograph (especially if you’ve got a large enough corpus of identity information, like Facebook, Google, or, oh, the Feds). So, how d’you go about anonymizing pictures? Let’s make this legit — you’re the newspaper (look it up, it’s a thing), and you want to publish a picture of a witness in your ScoopOfTheYear™ along with the story. You’d probably do something like this picture, right? An image with a nicely blurred face, can’t make out who it is, etc. etc. Blurring: Not the Answer Well, you guessed wrong! Back in 2016,   McPherson et al.   (•) showed that you can uniquely identify people from these types of blurred images. (You’ve got to remember, Neural Networks don’t give a s**t about whether a thing is a “face” or not, it just matches away…). What’s even worse is that Shiri et al. (••) figured out   a wa

Beware the Offline Trap

Image
/via http://www.fau.edu/research/research-communications/index.php The means and lines of communications within organization have expanded by a ridiculous amount over the last couple of years. At the same time, so have issues associated with these forms of communications. For example, you’ve probably heard the following in some form or the other • “ I find Slack counter-productive ” • “ Hangouts are a waste of time ” • “ I prefer email to WhatsApp ” and so forth. The thing about the above is that each and every one of them is absolutely valid. For example • “ I find Slack counter-productive,  because the constant interruptions prevent me from getting into the groove ” • “ Hangouts are a waste of time,  because everybody here likes the sound of their own voice ” • “ I prefer email to WhatsApp,  because you can keep track of conversation threads ” Fair points right? Especially the one about distractions, right?After all, most of us have run into the above issues