RSSAmplifier

Blog

keithrozario.com

Recent content on keithrozario.com

keithrozario.comRSS feed ↗628 posts

Latest posts

Parkrun vs Stackoverflow Community

I occasionally run parkruns at the park near my home in Singapore. A 5km run is a nice way to start the weekend. 5km isn’t a lot of most runners, but I’m a poor runner and it requires and all out effort from me just to finish in under 30 minutes, which I can happily report I’ve been doing quite consistently the last 3-4 runs. Park run is a volunteer event; everyone at the event…

Sharp Knives and Footguns

When building a platform or tool for developers there are two extreme schools of thoughts: Provide Sharp Knives Safety By Design When you provide Sharp knives you provide powerful (but dangerous) tools to your users, and trust them to do the right thing. The tools will make their job easier, but could also cause serious problems. Safety by design is the other extreme end, the user is not given…

I Dont Read Ai Slop

Finally, LLM-generated prose undermines a social contract of sorts: absent LLMs, it is presumed that of the reader and the writer, it is the writer that has undertaken the greater intellectual exertion. (That is, it is more work to write than to read!) For the reader, this is important: should they struggle with an idea, they can reasonably assume that the writer themselves understands it — and it…

When Centaurs Go Extinct

A theme I’ve been exploring recently is the concept of Centaurs and Reverse Centaurs. A Centaur is Human brain on a horse’s body, harnessing the intelligence of a human and the tireless nature of a horse. It’s someone using AI to automate not just the boring stuff, but the harder more interesting problems as well. It’s a chess player using a powerful AI to make them a…

Reverse Centaurs and HITL

A “centaur” is a human being who is assisted by a machine (a human head on a strong and tireless body). A reverse centaur is a machine that uses a human being as its assistant (a frail and vulnerable person being puppeteered by an uncaring, relentless machine). Like an Amazon delivery driver, who sits in a cabin surrounded by AI cameras, that monitor the driver’s eyes and take points off if the…

Now On Hugo

This blog is finally on Hugo hosted on Github Pages. I’ve been meaning to do this for years, but never had the time, patience and skill to execute the change. To be honest, I still don’t what it takes – but fortunately for me I now have a coding assistant. By throwing an LLM at a tedious task I had very little inclination to do, I managed to update this blog to a Hugo. Yay!

Contact Me

Howdy, if you’re hoping to reach Keith, the best way to reach me is via email keith[at]keithrozario.com (replace the [at] with @). I do not accept ‘sponsored post’ or any other external marketing material to be posted on the site. Please don’t send me these. You can also find me on LinkedIn .

Agents productivity vs. Quality

This year, I managed to complete the entire problem set of advent of code . Last year, I could only complete 43 out of 50 problems. So there was ... progress! If you're unfamiliar, Advent of Code is a series of daily coding challenges released during the season of advent (the period just before Christmas). I encourage you to try these challenges for yourself. None of them are easy (at least to…

The METR Study

The METR study is wild! It's methodoloty is unlike any other. While previous studies went 'wide', the METR study went 'deep', focusing on 16 developers (instead of hundreds or thousands), but deeply analyzing the effect on AI on those 16 developers in a way 'wide' studies could not. METR first identified 16 developers who were maintaining high quality open source repositories. These repositories…

Software 3.0

If you have 3 apples, you take away 2, how many apples do you have? 1 of course! But then again, you took away 2, so therefore you should have 2. The question is ambiguous depends on how you interpret the words 'have' and 'take-away'. Compare that to something like this:

Saying No.

I was "inspired"by this post . In it, Philip Su, an E9 (Distinguished Engineer) from Facebook explains how he progressed in his career, which includes an impressive stint at Microsoft that saw him promoted every year for 8 years straight. If you have that kind of accelerant so early in your career -- you're bound to be "Successful", or at least air-quotes successful. Distinguished engineers at a…

Good, fast, or Cheap?

In Software delivery there's a famous saying: Good, Fast, or Cheap -- pick 2. There's always trade-offs. Fast and cheap can be measured easily. How much money and how much time are very simple questions to answer. You might think it's expensive, or slow -- but the objective hours and dollars are easy measurements. It's not the same for 'Good' though. How do you measure 'Good'?

What Challenge 13 taught me about LLMs.

While doing programming challenges in Advent of Code, I came across an interesting behavior of LLMs in coding assistants and decided to write about it to clear my thoughts. First some background. Advent of Code is a series of daily coding challenges released during the season of advent (the period just before Christmas). Each challenge has 2 parts, and you must solve part 1 before the part 2 is…

Things I read over and OVER again

A list of articles/post/videos I come back to over and over again. https://danlebrero.com/2022/03/23/but-life-had-other-plans https://www.scottsmitelli.com/articles/ideal-candidate/ Raymond Hettinger Transforming code into beautiful Python Life is Poker Not Chess Why Japanese companies do so many acquisitions The stable marriage problem List of Quotes I love: If only we wanted to be happy, it…

Overcoming Setbacks = Progress

We've all seen the "tiny gains post". How if you get one percent better each day for one year, you’ll end up thirty-seven times better by the time you’re done." Well...... First of all, 1% isn't 'tiny'. I know a few bankers who'd sacrifice their first born for a daily increment of 1% on their portfolio. After all, how many bankers do you know have a 37x return on anything over a year. Secondly,…

The Tyranny of Best Practice

All architects know what's best practice, but only good architects know when to use them. I've been in plenty conversations where someone goes "we should do X because it's best practice" -- and act that the discussion ended. Best practice is what works for most people, most of the time. It isn't something that works for everyone all of the time -- otherwise we would mandate it across the board and…

Remembering Sayakenahack

It's been 6 years now since the big sayakenahack debacle. I won't go into details on what happened, but ... I thought it'd be nice to take a stroll down memory lane with some pictures :)

Investigating MYSPPL.com using OSINT

On September 2021, malaysiakini reported on a website called mysppl, that was selling personal data online. The site used previous breached data on Malaysians, and was selling it to anyone with a credit card (or Grabpay account). Note to aspiring criminals.. the last thing you want when doing something illegal like selling personal data ,is to tie that back to Bank Account by accepting payments.…

Drifting vs. Deliberately improving

`I've been playing guitar for over 25 years -- but I still suck at it. I spent my first ever bonus I got (~RM2,000) on a brand new Norman Guitar, and now I'm the proud owner of multiple expensive guitars and amps ... but all that expensive gear hasn't improved my playing one iota. Even though I used religiously change my guitar strings every month.

Sign you Git Commits to Github with A Yubikey

I found a few tutorials online to do this, but they're old and don't 100% work. So here's some quick steps on how you might sign your git commits with GPG keys stored on your Yubikey. Since I'm a mac user, these steps are specifically for macOS, for Windows check out Scott Hanselman's great post here .

Ivermectin

So you think Ivermectin works. You studied the data, you've read all the medical studies you could find, you've seen hours of YouTube videos where doctors swear by the drug, and you've even spent days (or weeks) researching on your on. Finally you conclude, that the data suggest Ivermectin is an effective treatment against COVID-19.

Missing .SO files in Lambda functions

Most of the time, adding a python package to a Lambda function is a simple task. You pip install to a directory, and then copy that directory to the function either directly or through a lambda layer. But sometimes, there's extra work required. Packages like opencv install additional files on your system that aren't available in the same directory you pip installed into. When you pip install…

Learning VIM over a Weekend

This weekend, I decided to learn me some Vim. According to it's website, "Vim is a highly configurable text editor built to make creating and changing any kind of text very efficient" -- to be honest, I only used vim when forced to from the command line, I wasn't sure why anyone would choose to do 'serious' editing in Vim.

The Future of work

As a father of 2 young children, I worry about how to prepare my children for the future of work. What will their careers look like? And am I preparing them the right way? Amid the Pandemic, I look at hard-hit industries and imagine how different my career would be, had I been in one of those industries. Like being a pilot, at age 40, with years of experience -- living the high life in 2019, and…

Lucking out on life

Luck Out : (colloquial, idiomatic, US, Canada) To experience great luck ; to be extremely fortunate or lucky. https://en.wiktionary.org/wiki/luck_out My life has been series of lucky breaks, a collection of events where I've 'failed upwards', and while my career isn't wildly successful, I'm smart enough to know and humble enough to realize the comforts I have are a distant hope for billions(!) of…

The very Last time

I've been experimenting with meditation over the last few months, and I think it's great. Next to having a disciplined 8 hours of sleep everyday, I think meditation is the best thing you can do for your personal mental health. I first started by reading headspace, and trying out his 10-minute meditation technique, but now I'm on the WakingUp app, which again starts a pretty reasonable 10 minutes…

MySejahtera privacy concerns

Last week, a friend sent me a video of viral video by 'Fat Bidin' , highlighting privacy concerns of the MySejahtera app. The same author (a.k.a Zan Azlee) also wrote a comment piece in Malaysiakini explaining his concerns over the Government's contact tracing application. Specifically, he was concerned that MySejahtera had a "slew of different capabilities that is very much of a concern, such…

Time vs. YouTube

I asked Emily, my 7 year old daughter, why she loved YouTube so much. Specifically, why she loved **watching** others play Roblox over actually **playing** Roblox herself? It's a strange, but common thing among children her age, as my nephews and nieces do the same for other games. No surprises then, that Google announced record profits yesterday, with YouTube alone bringing in more than $5…

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'?

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,…

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…

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…

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…

Home

Access Keys in AWS Lambda

Let's look at AWS Access Keys inside a Lambda function, from how they are populated into the function's execution context , how long they last, how to exfiltrate them out and use them, and how we might detect an compromised access keys. But before that, let's go through some basics. Lambda functions run on Firecracker , a microVM technology developed by Amazon. MicroVMs are like docker containers,…

Contact Tracing Apps: they're OK.

I thought I'd write down my thoughts on contact tracing apps, especially since a recent BFM suggested 53% of Malaysians wouldn't download a contact tracing app due to privacy concerns. It's important for us to address this, as I firmly believe, that contact tracing is an important weapon in our arsenal against COVID-19, and having 54% of Malaysians dismiss outright is concerning. But first, let's…

Sharding SQS

Potassium40 was a project I started to see how fast Lambda could really go. The project attempts to download the robots.txt files from 1 million websites as fast as it can. I chose robots file because -- well it's supposed to be downloaded by robots anyway, so this was both great fun, but also completely ethical as I wasn't scraping people's websites.

Logging within AWS Lambda Functions (python edition)

This post covers how to perform logging within AWS Lambda. Lambda has built-in integration to Cloudwatch logs, making it a default choice for logs, but the way a distributed system like lambda performs logging, is quite different from how you'd do in a monolithic app. For the brave folks still reading this -- let's dive in. Lambda Logging: 101 When building lambda functions, it's always a good…

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).

My experience with AWS Certified Security - Specialty

Last week I took the AWS Certified Security - Specialty exam -- and I passed with a score of 930 (Woohoo!!) In this post I cover why I took it, what I did to pass, my overall exam experience, and some tips I learnt along the way. So let's go. Why? Why would anybody pay good money, subject themselves to hours of studying, only to end up sitting in a cold exam room for hours answering many multiple…

Run serverless on GitHub actions

GitHub actions is the new kid on the workflow block. It allows users to orchestrate workflows using familiar git commands like push & pull requests, and un-familiar GitHub events like gollum, issue creation and milestone closures. In this post, we'll use GitHub actions to orchestrate a build pipeline that will deploy lambda functions using the Serverless framework . There's a lot of tutorials that…

Lambda functions in a VPC

In my honest (and truly humble) opinion, VPCs don't make much sense in a serverless architecture -- it's not that they don't add value, it's that the value the add isn't worth the complexity you incur. After all, you can't log into a lambda function, there are no inward connections allowed. And it isn't a persistent environment, some functions may timeout after just 2-3 seconds. Sure, network…

Amazon KMS: Intro

Amazon KMS is one of the most integrated AWS services, but probably also the least understood. Most developers know about it, and what it can do, but never really fully realize the potential of the service. So here's a rundown of the innards of the KMS service. What is KMS? KMS (Key Management Service) is an AWS offering that allows us to create, manage and use cryptographic keys . Like everything…

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…

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.

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…

Keith @ PyconSG 2019

Had a blast at PyConSG 2019, really cool to be in the presence of so many pythonistas. Would definitely recommend, especially since python is one of the more broadly used languages (AI, Blockchain, RPA, etc). My talk was on AWS Lambda (naturally!). Slide deck can be found in this GitHub Repo . Let me know what you think either in the comments here or on Youtube.

Cloud Run -- is it the ultimate Fat lambda?

Everyone knows that I'm a Lambda fanboy, and to be fair Lambda deserves all the praise it gets, it is **the** gold-standard for serverless functions. But yesterday, I gave Google Cloudrun a spin, and boy(!) is Lambda is going to get a run for its money. Which is surprising given Google has traditionally lagged in this area -- isn't it quaint that we use words like 'traditional' in the serverless…

Multiprocessing in Lambda Functions

Lambda functions are awesome, but they only provide a single dimension to allocate resources - memorySize . The simplicity is refreshing, as lambda functions are complex enough -- but AWS really shouldn't have called it memorySize if it controls CPU as well. Then again this is the company that gave us Systems Manager Session Manager , so the naming could have been worse (much worse!). Anyway....I…

Updating a GitHub repo from a Lambda Function using Bash!

At the end of 2018, AWS introduced custom runtimes for Lambda functions , which provided customers a way to run applications written in languages not in the holy list of the 'Official AWS Lambda Runtimes' which include a plethora of languages. It has 3 versions of Python, 2 versions of Node, Ruby, Java, Go and .NET core (that's a lot of language support) Security-wise, it's better to use an…