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 it.
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 Group (MIG) Create IPv4/IPv6 address Create Backend Service Setup Load Balancer Cleanup Disclaimer This tutorial is provided “as-is” without any representation or warranties, express or implied.
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: biohacks.jimmyislive.dev/ The backend is AWS Lambda functions.
'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, it is implemented easily using the gorilla toolkit.
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 data, from the command line.
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 scripts for automating it via Terraform.
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 have a team of engineers continually deploying and changing things.
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!