Writing about my experiences in Blockchain, WEB3 and Full-stack development

All of my long-form thoughts on programming, leadership, product design, and more, collected in chronological order.

How to Programmatically topup ICP Canister

Discover how to automatically top up your Internet Computer (ICP) canister with cycles using Rust. This comprehensive guide walks you through creating a self-sustaining canister that can replenish its own cycles when running low. Learn to interact with the NNS Ledger and Cycles Minting canisters, handle ICP transfers, and implement smart cycle management in your decentralized applications. Perfect for ICP developers looking to build more autonomous and efficient smart contracts. Includes step-by-step code examples and explanations for seamless implementation.

How to Create an NFT Marketplace on the Internet Computer (ICP) Blockchain using Rust: A Comprehensive Guide

Unlock the potential of the Internet Computer (ICP) blockchain with our detailed guide on creating an NFT Marketplace. This blog post covers everything from the basics of NFTs, the unique features of ICP blockchain, to step-by-step instructions on setting up your own marketplace. Whether you're a developer, entrepreneur, or a blockchain enthusiast, our expert tips and insights will help you navigate the process with ease. Dive into the world of decentralized digital assets and start building on ICP today!

Using 1password-cli to avoid hardcoded secrets in your terminal profile

One of the things that had always bothered me when creating terminal profiles is hardcoding secrets like in export GITHUB_TOKEN=<SECRET>. This is even more annoying when you have more than one computer and need to synchronize secrets between them.

Using Let's Encrypt in Development with NGINX and AWS Route 53

With Let’s Encrypt and a DNS provider like AWS Route 53, you’ll be able to run HTTPS with wildcard subdomains without having to mess with your /etc/hosts file, or having to install tools that create a custom DNS resolver.

Supporting dark mode in web content

Welcome to 2019, the year that the technology went dark mode. Both Android 10 and iOS 13 were released last month, and the most acclaimed feature was dark mode. Native apps can now implement specific themes for each mode (i.e. dark, light), but can you do it on the web? This article outlines how you can take advantage of this new trend and make everyone happy.

Using jgit to checkout and modify gist from Kotlin

As I have discussed previously that gist can be an alternative way to store data online at GitHub and use in your application. However, in order to make changes to data, the gist is required to be cloned, make changes and push back. JGit is a lightweight Java library that can be used to checkout gist and commit and push changes to it. Following code snippet shows how to achieve it in Kotlin.

TCP Client using Vertx, Kotlin and Gradle build

As part of my hobby project to control RaspberryPi using Google Home Mini and/or Alexa, I wanted to write a very simple TCP client that keeps a connection open to one of my custom written server in cloud (I will write another blog post to cover the server side on a later date). The requirement of the client is to send a shared secret upon connecting and then keep waiting for message from server. Vert.x, Kotlin and Gradle allow rapid development of such project. The generated jar can be executed on Raspberry Pi. These steps outline the project setup and related source code to showcase a Vert.x and Kotlin project with Gradle.