RSSAmplifier

Blog

@jimmyislive

Recent content on @jimmyislive

jimmyislive.devRSS feed ↗48 posts

Latest posts

Session Visualization with Obsidian

When working with coding agents such as Claude, Codex etc. we provide the prompts and context until we get to the final result. However a lot happens behind the scenes. The model constantly makes calls to tools, MCP servers, commands etc until it arrives at the output. By knowing what path it took, we can begin to understand its reasoning better. 
 One way I have found useful is to use…

Challenges in an AI First world

There is an AI race going on. No one knows where or what the finish line is, but it’s a race nevertheless. Run or be left out. So everyone is running. Developers, designers. product managers, companies, countries. 
 To be clear, there was always a race. A race to get products out first, to get features in time etc. But there were guardrails. There were rules. Now, they seem to be…

I put my stamp album online

When I was a child, I was gifted a stamp album for my 10th birthday. I had almost forgotten about it until recently. 
 
 

 Back in those days folks were actually writing letters to each other. One of those things that has just about died now. Also my aunt was working in some kind of diplomatic service so she would get stamps from many countries I had never heard of. Thus started…

Learning Rust

I’ve always been curious about the Rust Programming Language . It’s got some very attractive properties like memory safety, no GC pauses and is blazingly fast. 
 Here are some great resources for learning Rust: 
 
 The Rust Book 
 Rust By Example 
 Rustlings 
 
 I’ll document my journey on github 
 In the age of LLMs and coding assistants, one may…

Content Credentials

In this age of AI generated everything, it is quite useful to understand the origins of content that you are consuming. For media files such as images, videos, audio files etc there is an existing standard C2PA . Digitally signed metadata is attached to it, which can be verified. 
 However, for text e.g. this blog, it is less mainstream. Browsers don’t natively support showing such…

How We AI

Have you ever wondered how folks are using AI ? At work or in their personal lives ? AI is changing faster that anyone can keep up. We constantly hear of flamboyant/pie-in-the-sky use cases. But what about the ways it is being used “right now”. Yes it is a great coding and peronal assistant…but “how” exactly are others using it ? Have you ever booked a vacation using…

Berkshire Hathaway Shareholder Letters

In case you have not seen it, the Berkshire Hathaway Shareholder Letters are in the public domain , all the way from 1977! They are a great read about how one of the most iconoic companies in the world is run. Warren Buffett writing style is a mixture of phenomenal insight and humor. A very hard thing to do propely. Here are some gems I came across after reading them: 
 
 The textile…

An MCP server for this blog

Caus, why not ? There are north of 6300 MCP servers out there in the wild ! 
 If you don’t know what MCP is, you can read about it here 
 It’s a way for AI applications(e.g. LLMs, AI Assistants etc) to tie into your own tools, workflows etc. AI Apps do a great job of reasoning / articulating, but it needs data for this. Data that is often siloed, on which it did not train and…

The killer use case for GenAI

In the next few years, approx $2T will be invested in AI !(For comparison, the entire US economy is around $30T). One of the reasons for this exuberance is that there are probably many many areas in which AI can be applied, in theory. We just may not have found a compelling narrative for them all. 
 One use case which I find personally extremely useful is that of a Personal Assistant(PA). Now…

Economic Possibilities for our future

In 1930, the English economist and philosopher John Maynard Keynes wrote an essay titled Economic Possibilities for our Grandchildren . An excerpt from it: 
 
 
 1
 2
 3
 4
 5
 6
 7
 8
 9
 
 
 It is common to hear people say that the epoch of enormous economic progress
 which characterised the nineteenth century is over; that the rapid…

AI and the coming inequality

A lot of focus thus far on AI has been on safety. And rightly so. Safety of any new technology is critical before it should be made available to mass markets. 
 But how about societal inequality? Inequality today is quite stark. The wealthy 1.5% own 48% of the world’s wealth . The fundamental premise of AI is to boost productivity. What happens when rich nations / corporations (who also…

Vector DBs for Data Protection

I was reading up some information on vector embeddings recently and started thinking about different use cases of it. One interesting use case was for Data Detection and Response. The thought exercise I had was that if we are able to track data access patters or data lineage and represent them as embeddings, then the embeddings of any anomalous / nefarious access pattern would have very little…

Using External Functions with OpenAI

An easy way to boost the capabilities of AI models is to provide it with external information that it may not have. e.g. maybe your company has some proprietary data that would never be included while training the models. But if you could provide the model with this info during inferencing, it would be able to provide more accurate results. 
 One way of doing that with OpenAI is via function…

Having Fun with OpenAI

AI is all the rage these days. New capabilities, that seemed impossible just a few months ago, show up almost weekly. So I decided to take it for a spin and see what different tasks I could code up quickly. 
 I chose OpenAI , but you should be able to replicate these using any of the other models as well. 
 
 Printing the text of a html page 
 Book Recommendations 
 Converting…

Measuring Patterns To Boost Productivity

Today the most common way of getting feedback is via peer reviews. Some companies do it annually, some bi-annually. This helps employers to reward the most promising employee through promotions, salary raises etc. 
 One disadvantage of the above format is that the feedback is essentially an evaluation by peers of past performance. So it’s already too late to possibly course correct. The…

Will AI take my job ?

Whenever a new technology becomes commonplace, there will be disruptions. Technology and their associated disruptions have occurred throughout history. e.g. The monks / clergy were primarily responsible for making books (by hand). This restricted the flow of knowledge. Then the printing press came along. In the 1920s, telephone companies employed thousands of folks as operators. Today algorithms…

Rates of Change

I don’t think we understand rates of change very well. 
 The reason AI is all the rage now is that it offers an opportunity for a gigantic leap in the rate of change of innovation. No one can say what it will usher in. But it seems like an ideal vehicle to bring about this big change. 
 Big rates of change is what brings about disruptions and opportunities. The big players…

Getting Through Your Day

Some days can be exhausting. For many, most days are exhausting. We just think that it’s the way things are and plough along. Same thing, day in and day out. That’s life ! 
 On one end of the spectrum things seem like they are exhausting because we are bored of it. It no longer excites us. The monotony carries over into boredom which carries over to exhaustion. 
 On the other…

Assistive Vs Transformative Technologies

Software is eating the world . Or rather, software has already eaten the world. There isn’t an industry that has not or will not be disrupted by tech. But all tech is not created equal. Some help in making things more efficient ( assistive ) while some absolutely disrupt entire ecosystems ( transformative ) 
 The internet began as a DARPA project. Initially it connected only a few…

How To Do 1:1 With Your Team ?

One on Ones (1:1) with your team members may be the single most important tool available to a manager. But it’s often not done properly and consequently its benefits are not realized. But first… 
 NOTE : This post talks about 1:1 from an engineering manager’s perspective. But it should map to other domains as well. 
 What’s a 1:1 ? 
 A 1:1 is a recurring time…

How To Prioritize Tasks ?

Shipping products is hard. What makes it hard is that typical products involve multiple teams and multiple dependencies. Navigating these challenges is non-trivial. There are technical challenges to overcome, but those are typically not the biggest blockers. (There are enough smart people in the room to take care of that, unless its some greenfield domain like AR/VR/Self-Driving etc), Then there…

The Dishwasher Test for "Am I Rich ?"




Setting up a private network with Tailscale

I came across Tailscale recently. It’s a tool that lets you build a private mesh network between your devices easily. 
 My use case was to transfer data from my laptop(macbook) to my android phone. Many times I have a pdf doc that I have on my laptop that I wish to read on the go. I usually just email it to myself and download it to my phone, but wanted to see if I can use Tailscale for…

No one Knows Anything

It’s actually true. When an “expert” says something, we take it at face value. We never question it and keep propagating those views. Without even pausing to consider if it’s really true or not. Our emotions and biases seem to have a greater effect on if we accept that viewpoint or not. 
 Irrespective of whether we accept the viewpoint or not, we just assume that the…

Ideas

Here are a list of ideas that I think would be great to build out as standalone products. (NOTE: I have not researched if they already exist in the wild or not). At different points in time I have needed something like this, so there is definitely a need. If any entrepreneur wants to adopt these ideas and run with it, go for it ! (If you are a VC and want to fund it, ping me :) )

History

For most of us history is something that happened far back in the past, with no relevance to us now. That’s just not true. A lot of what we consider “far off in the past” is actually quite recent (in relative terms). e.g. the cold war got over just 30 years ago. 200 years ago, Napolean was still around ! The technological progress of man in the last 100 years has been more than…

End to End Deployment on GCP

Table of Contents 
 
 Disclaimer 
 Introduction 
 Assumptions 
 Architecture 
 Create a Project 
 Enable APIs 
 Create VPC 
 Create Subnets 
 Create Firewall Rules 
 Create Private connection to DBs 
 Create NAT Router 
 Create DB 
 Populate env vars 
 Push container to gcr 
 Create Instance Template 
 Create Managed Instance…

Risk First Assessment

We are all familiar with the usual way how software project deliverables work: requirements, design, development, testing, deployment, monitoring… 
 However, how many times do we do a risk assessment of our projects? We always seem to focus on the steady state where most of the things work. We don’t spend as much time in thinking about failure scenarios / risks to our project.…

BioHacks

I recently read a book called “The Gene” (by Siddhartha Mukherjee). It gives a great introduction to the history of our understanding of the human genome. That got me curious and I started playing around with DNA Sequences (in the software world !). I wrote simple functions to do things like DNA transcription, DNA Reverse Complement etc. It is available for anyone to use at: 
…

'Remember Me' using the Go gorilla framework

A ‘Remember Me’ type functionality is something that is available on most websites today. Essentially what it does is that if the checkbox is checked when logging in, the session is kept logged in for a much longer duration (say a week or month). Otherwise, when you close the browser, the session terminates and you have to log in again the next time you visit the site. 
 In golang,…

GoCVE

Just released a new tool I have been working on: GoCVE 
 GoCVE is a simple golang based command line tool to query CVE data. 
 All you have to do is download the CVE data and insert it into a local database you run (currently sqlite and postgres are supported). The tool helps you to download CVE data and also populate the DB. You can then use GoCVE to conveniently get, search or list CVE…

Co-operation and Competition

I came across an interesting term in a book I just read. The Origins of Virtue by Matt Ridley. In it he used the term “Co-operation and Competition” as a means to describe the “tug-of-war” within the various biological processes of the human body. 
 The same applies to industry / society / economies too. A healthy combination of both is required to thrive. 
…

Go Docker Container

If anyone is looking for a ubuntu based container with golang 1.13 , I just pushed one up to docker hub : 
 docker pull jimmyislive/goubuntu 
 And this container has vim ! (Not sure why many public containers don’t have any editor installed on them.) 
 The Dockerfile used to build this container is available on Github

Text to Morse Code

Recently I learnt morse code. It was pretty easy to translate characters to dot/dashes (it took me under a day). I then wrote a Go program to translate text to morse code and back. 
 If anyone wants to play with it, it is available at text2morse.jimmyislive.dev 
 The site is hosted by Netlify and the backend is built using terraform , api-gateway and aws lambda . 
 Enjoy !

Automated setup of a static site on S3 using Terraform

Many people, businesses don’t need a dynamic website. they just need a placeholder on the web that gives information to customers about their business, contact info, address etc. A static website is a pretty easy way to achieve this. AWS S3 allows you to host static content and serve it up as webpages. You can set it up manually by following instructions here . 
 This post provides…

AWS Config

AWS Config is a service provided by AWS to keep track of configurations (and their possible drift) of all the resources you bring up in AWS. When your infrastructure setup is small, you probably don’t have to be worried about a configuration store for your resources. But as you grow, it would become increasingly difficult to manage and keep track of all the moving pieces, especially if you…

Free Scratch course for kids

A while back I created some scratch exercises for my kids. It is modeled as a series of exercises (with solutions) that you/your kids can try as you learn programming. Just put it in the form of a free course: Scratch for Beginners . Enjoy!

Testing with Go

An integral part of the development licefycle is writing tests. Write tests early, write tests often as they say. Go makes it very easy to write tests. The following post will go through the basics of testing with Go. 
 Let’s say we have a program that counts the number of vowels, consonants, digits and everything else within an input string. It may look something like this: 
 
…

Introduction to Go Modules

Table of Contents 
 
 Preface 
 Why Go Modules 
 Philosophy 
 Example 
 
 Preface 
 All the content for this post was gathered by reading the 7 part blog series by Russ Cox and other notes. There is also an introductory post on the Go blog. I would encourange you to read them as well. 
 Why Go Modules 
 Before jumping into the workings of Go modules, we…

Life...




Defer on exit

Working with go, sometimes you may want to run a deferred action on Exit. Something like: 
 
 
 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 
 package main 
 
 import (
 'fmt' 
 'os' 
 )
 
 func main () {
 // THIS WILL NOT WORK 
 defer fmt . Println ( 'World' )
…

Musashi’s 21 Precepts for Life

Just came across Miyamoto Mushashi , the greatest swordsman to ever live. He also wrote two books, one of which is Dokkōdō (The Path of Aloneness). It comprises of 21 percepts for living life. A lot of them resonanted with me personally, so I’m listing them out here. (Interpretation of these can be very personal to each, so i’ not even going to try.) 
 
 Accept everything just…

Populating go vars at build time

When we build go executables, one common command is the version command. It should tell you the commit, version number etc of the released executable. However, we don’t want to hardcode these in code. We want to populate these variables at build time. Here is a common pattern that will let you do this. 
 Let’s assume you have a main.go that imports a package version and prints out…

Init function in modules

A Go package can have an init function. This function is called at the time when the package is imported. You can put in any initialization you want here. e.g. 
 
 
 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 
 
 package main 
 
 func init () {
 fmt . Print ( 'Hello' )
 }
 
 func init () {
 fmt .…

.gitattributes

Just like .gitignore , there is another file that you can use in your git repos: The .gitattributes file. 
 You typically place this in the root of your repo. It has lines of the form: 
 pattern attr1 attr2 ... 
 It essentially means that for files that satisfy the regex pattern , apply the attribute attr1 , attr2 etc to them. Let’s see some examples. Let’s say our…

Trap in bash scripts

You may be familiar with the “set -e” you typically see in bash scripts. It means that the script should exit on error (default behaviour of bash is to keep going) 
 Recently I needed a script to do some cleanup action. i.e. I wanted the script to exit on error, but I also wanted some cleanup action to be performed. A use case might be that if something fails, then before exiting, ship log…

Adding multiple certs to an ALB

If you are using AWS and ALBs, you have the ability to add multiple certs to the ALB and terminate SSL there. 
 While it is easy to do via the AWS console, their documentation is not that clear as to how to do it in an automated way. The following is the code snippet, written with troposphere , to show you how to do it. 
 First create a HTTS listener with a certificate:
 def…

Docker image tagging in ECR

AWS provides a docker repository called ECR . This is similar to Docker Hub , Artifactory etc and provides a convenient place to place docker images for later use e.g. deployment. 
 ECR supports Docker Image Manifest V2, Schema 2 , providing the ability to add multiple tags per image. I recently ran into an issue wherein I tagged an image with multiple tags at build time and then just pushed…