Posts for: #Misc

Spreadsheets

Spreadsheets are the bedrock of the modern enterprise, they're ubiquitous, from small family business' to large multi-nationals, and you'd be surprised by the number of critical activities that run off them.

Pound-for-pound, Microsoft excel is the most valuable piece of software on the planet.

But are really that good?

The answer depends on what you mean by 'good'?

[Read more]

Stopping my Addiction

Hi, I'm Keith, and I'm a social media addict.

I know, because I've seen this before.

When I was around 8 years old, my father was a smoker, and I'd regularly see him leave family meals early to have a quick smoke, leaving us to finish our lunch or dinner without him. It was just something smokers did.

Today, I'm not physically leaving the table like my father, but my mind is just as disconnected, as my attention moves from eating to being fixated on my iPhone.

At least my father would finish his meal before he did his smoking routine, I typically pick up my phone mid-way through, and stay on it right to the end of dinner. Sometimes gobbling down unknown quantities of food while my eyes remained glued to some insufferable post on social media.

I could be talking to my wife, or asking my daughter how her day at school was. Instead I'm mindlessly scrolling the feeds and timelines hoping for something to catch my attention, while the two most important people in my life, remain neglected -- while they're right in front of me!

Clearly something was wrong.

I noticed this on airplanes too, at the end of a long flight, Smokers would make a bee-line for the smoking area to satisfy their craving. But phone-addicts immediately light up the cabin with the glow of their screens, the moment the pilot announces "you may now switch on your electronic devices".

At least smokers were denied their addiction for the entire duration of their flight, usually hours -- phone addicts (like me) had only to endure the 20 minutes of landing.

I saw this in myself a few months ago, late one night, I had binged on all my social media, YouTube, Reddit, Twitter, Facebook, and after completely exhausting all possible posts on all platforms, I'd cycle through them again, and again and again!

I should have been sleeping, it was late -- very late! I knew I should be dozing off, but instead my phone was firmly in my hand, with my finger scrolling through every last nook and cranny.

I was craving something (what exactly I didn't know). I knew there was nothing interesting left (I'd checked, multiple times!) -- but I was still scrolling, and scrolling...hoping for something interesting to magically pop into the feed. This activity gave me no joy, but I was doing it anyway.

I was addicted -- social media was my slot machine -- and though I was losing, I couldn't help but want to play more.

All hallmarks of addiction.

[Read more]

The Myth of the anti-social developer

What is the myth

There's a belief that people in IT, specifically software developers are generally anti-social, introverted, desk-loving curmudgeons who act like Sheldon from the Big Bang Theory.

What's more frustrating, is that this belief is prevalent even among those working in technology -- that somehow great coders are silent geniuses who shun people, while coding in a dark office corner wearing over-sized headphones playing death metal music. This is not just a myth, it's the anti-truth of what actually happens. The best developers (just like any other profession) are always people focused.

[Read more]

The Drudgery of Servers

As much as I love Serverless architectures, I find myself 'locked-in' to a server-ed WordPress blog. It's a mixture of too much legacy content to migrate, lack of easy migration tools, and just the fact that WordPress for all it's faults --- just works!

So rather than spend countless hours trying to migrate content, I decided to keep paying the $5/mo to DigitalOcean so that they can continue hosting a VM which PHP on it for my blog.

[Read more]

Keith’s Adventures in DynamoDB Land

After reading the awesome DynamoDBBook from Alex DeBrie, I was prompted to fix a long running design issue with Klayers (a separate project I maintain).

Like everybody else that dives into DynamoDB headfirst, I made the mistake of using multiple tables, one for each data entity. After all, a single database consists of multiple tables -- so DynamoDB would logically involve multiple DynamoDB tables as well right?

Wrong!

It turns out, a DynamoDB table is equivalent to a database, and having multiple tables is like having multiple databases, The 'correct' approach, is to load all data into a single DynamoDB table which would allow us to "join" multiple data entities into a single query.

The word "join" is in quotations, as there is no concept of joining data in DynamoDB, all data has to be pre-joined in some way to achieve the performance that DynamoDB promises (sub 10ms response times for tables of any size). If you split your data across multiple tables, you lose the ability to pre-join this data.

So last month I decided to bite the bullet and began re-designing my application to use one table instead of two, and boy did it do my head-in, and wanted to write this post to capture my thoughts on the whole process.

First here's some background of the application.

[Read more]

Playing with files within the memory of Lambda function

A lambda function is a like a little island, surrounded by network. Unlike Fargate containers, of EC2 instances, they do not have EFS, EBS or some other fast storage support. Everything that goes into a lambda, goes in via the network interface (and network only).

[Read more]

Why?!

The system, which was introduced on the first day of the 2020 school session yesterday, takes only two seconds to scan a pupil’s face before his personal information, such as full name, pupil number and class, is stored into the school’s database

https://www.nst.com.my/news/nation/2020/01/552737/sk-taman-perling-1-uses-facial-recognition-scanners-mark-pupils

A school in Johor became the first in the country to introduce facial recognition scanners to take pupils attendance -- hopefully it'll be the last.

[Read more]

My 2020 resolution: Pay for news!

This year I resolve to support the media that I like, i.e start paying for content I've been consuming for free all this time.

I believe that if we want better media, we need to start paying for it, and it's not a matter of quality content, a free and fair media, is an absolute necessity for democracy to operate -- after all, people can't make informed choices if they aren't informed.

[Read more]

Multi-Accounts for AWS with Google '+' emails.

Last week, I launched a new pipeline for Klayers to build Python3.8 Lambda layers in addition to Python3.7. For this, I needed a separate pipeline because not only is it a new runtime, but under the hood this Lambda uses a new Operating System (Amazon Linux 2 vs. Amazon Linux 1)

So I took the opportunity to make things right from an account hierarchy perspective. Klayers for Python3.7 lived in it's own separate account from all my other hobby projects on AWS -- but I kept all stages in it (default, dev and production). [note:Default is an odd-name, but it ties to the Terraform nomenclature]. This afforded some flexibility, but the account felt bloated from the weight of the different deployments -- even though they existed in different regions.

It made no sense to have default and dev on the same account as production -- especially since accounts were free. Having entirely separate accounts for prod & non-prod incurred no cost, and came with the benefit of additional free-tiers and tidier accounts with fewer resources in them -- but the benefits don't stop there.

[Read more]

Android TV boxes

Android TV boxes, are computers that stream content from the internet onto your TV. The difference between them and your smart-phone is that it has a HDMI connector to your TV, and it usually comes pre-loaded with software to illegally stream content.

While the boxes themselves, are general purpose computers running Android (the most popular OS today), the real focus of any regulation should be on the software on the device and the internet-based streaming services that support them.

Which seems to be the case...

Today, TheStar reports that the MCMC will begin blocking these unauthorized streaming services, rendering the boxes that connect to them useless.

But, if the MCMC uses it's usual method of DNS filtering to implement the block, it'll be trivial for most folks to circumvent the issue, the boxes run Android after all. The government will very quickly find itself in a cat and mouse situation in trying to block them.

[Read more]