Learned Something, write them down!

Find me on

Java Never Stuck with Me

It might come as a surprise for anyone who knew me personally, but I used to despise programming. I am what can be considered a late bloomer. My first introduction to a proper programming was in first year of university: Algorithm and Data Structure class. So I never developed natural interest on this topic, I need the good grade as the initial motivation. We used C back then and I can’t tell you how much I hated it. Not the class itself, but making the C language do what I want it to do. Google was not as helpful back then, I did not even remember if stack overflow was around, and no LLM for obvious reason. I fight this battle only with the good old “Introduction to Algorithms” book. ...

April 17, 2026 · Junda
Sakure this year

What a Three Years

Been three years since my last post. What a difference three years make. I relocated to Japan, wife started school, we lost her father, wife got a job, I practiced half-marathon, ran half-marathon, ran a second half-marathon, wife quit her job, our son was born.

April 17, 2026 · Junda

Run R in Google Colab

Google colab offers a way to easily run R commands. It is really useful for someone like me who simply wants to try R but does not want to download and set-up the tools needed to run R. There are two approaches, one is to create a new notebook with R runtime, the other one is to execute a single cell with R script inside pre-existing python runtime notebook. New R Runtime To create a new notebook with R, simply go to the following url http://colab.to/r. It will resolve to https://colab.research.google.com/notebook#create=true&language=r which is the url for creating google colab notebook with R runtime. ...

August 21, 2022 · Junda

Create Florence Nightingale's Coxcomb Diagram with Python

This is my implementation of the famous coxcomb diagram of excess death from Crimean War created by Florence Nightingale in 1858. It highlights the portion of death that occur from preventable cause such as disease and infection instead of direct battle-inflicted wound. This diagram been used to illustrate the power of visualization to empower decision making. I realized that using computer to resolve the proportion makes the chart emphasize the excess death even further than what Florence Nightingale presented. ...

August 9, 2022 · Junda

Integrate Utterance to Blog Posts

Utterance is a comment widget that leverage github issues to bring discussion to our blog. I have been looking for a discussion tool for a while now, but none seems suitable. Lots of hexo-powered blogs use disqus for discussion, however I felt overwhelmed with the many configuration of disqus. The appearance is very cluttered as well. I just need a simple discussion widget that will let user identify themselves before commenting, but hexo as a static page generator doesn’t make use any kind of database storage so authenticating would need to be taken care of by third party. ...

August 8, 2022 · Junda

Read Google Spreadsheet as Pandas DataFrame

We can read our google spreadsheets via pandas to be used in our analysis. We just have to get this part of the sharing URL https://docs.google.com/spreadsheets/d/[sheet_id]/edit?usp=sharing and the sheet name, then put it into this format https://docs.google.com/spreadsheets/d/[sheet_id]/gviz/tq?tqx=out:csv&sheet=[sheet_name]. We can then put this url into pandas.read_csv(). And of course I build a react app for this. It’s this one. Because why not.

August 8, 2022 · Junda

Coffee Analytics 1 - How to Tell if Changing Grind Size Results in Better Brew

TL;DR the smaller grind size behaves pretty much the same with larger grind size. There might be other more important factor at play, or there are too little observation to make a confident conclusion. It’s now been two years since I seriously started making my own coffee. COVID-19 pandemic really brings out my inner barista. Before the pandemic and the ensuing restriction hits, I always buy my coffee. But now I weigh my coffee, hand grind beans right before brewing, 3D print custom tools to help me brew better, and watched James Hoffmann videos to know the latest poison to buy. ...

August 4, 2022 · Junda

How to Embed Images Hosted on Google Drive

Embedding image URL from google drive is actually easy. We just have to convert the URL we got from google drive from this format https://drive.google.com/file/d/[image_id]/view?usp=sharing to this format https://drive.google.com/uc?export=view&id=[image_id]. Even easier, just use this tool I make: gdrive-url-converter I build this tool using React as I have not got a chance to play with React for a long time. It is a good exercise to flex my front-end muscle. ...

August 1, 2022 · Junda

Does FromSoft explicitly program Malenia to skip waterfowl dance?

Hidetaka Miyazaki and Fromsoft has a portfolio of hard and challenging bosses in their games. However, in their latest game Elden Ring, one particular boss has been making a scene online, so much so that videos of her have popped up on my Youtube recommendation before I even purchase the game. She heals with every connecting hit, her move set is unforgiving, she attacks as soon as we try to heal, and one particular move of her is near-impossible to dodge or block. The only way to avoid this attack is to git gud! ...

July 30, 2022 · Junda

MLOps Part 3 - Evaluation and Optimization

Now that we have trained a model and store it as a reusable artifact, we are ready to evaluate the model on unseen data. As with usual training practice, we are going to pull out the test portion of our split data, run this data through the trained model, and record the score we got from the test data. As a good measure, we will also re-run training process with mlflow-powered hyperparameter sweep and discover the most optimal hyperparameter that could gave us best generalization between training and testing data. ...

October 21, 2021 · Junda