<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Izzuddin Ahsanujunda</title><link>https://iahsanujunda.me/</link><description>Recent content on Izzuddin Ahsanujunda</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 17 Apr 2026 17:07:58 +0900</lastBuildDate><atom:link href="https://iahsanujunda.me/index.xml" rel="self" type="application/rss+xml"/><item><title>Java Never Stuck with Me</title><link>https://iahsanujunda.me/2026/04/17/java-never-stuck-with-me/</link><pubDate>Fri, 17 Apr 2026 17:07:58 +0900</pubDate><guid>https://iahsanujunda.me/2026/04/17/java-never-stuck-with-me/</guid><description>&lt;p>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&amp;rsquo;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 &amp;ldquo;Introduction to Algorithms&amp;rdquo; book.&lt;/p></description></item><item><title>What a Three Years</title><link>https://iahsanujunda.me/2026/04/17/what-a-three-years/</link><pubDate>Fri, 17 Apr 2026 01:59:17 +0900</pubDate><guid>https://iahsanujunda.me/2026/04/17/what-a-three-years/</guid><description>&lt;p>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.&lt;/p></description></item><item><title>Run R in Google Colab</title><link>https://iahsanujunda.me/2022/08/21/run-r-in-google-colab/</link><pubDate>Sun, 21 Aug 2022 00:33:13 +0900</pubDate><guid>https://iahsanujunda.me/2022/08/21/run-r-in-google-colab/</guid><description>&lt;p>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.&lt;/p>
&lt;h2 id="new-r-runtime">New R Runtime&lt;/h2>
&lt;p>To create a new notebook with R, simply go to the following url &lt;a href="http://colab.to/r">http://colab.to/r&lt;/a>. It will resolve to &lt;code>https://colab.research.google.com/notebook#create=true&amp;amp;language=r&lt;/code> which is the url for creating google colab notebook with R runtime.&lt;/p></description></item><item><title>Create Florence Nightingale's Coxcomb Diagram with Python</title><link>https://iahsanujunda.me/2022/08/09/create-florence-nightingales-coxcomb-diagram-with-python/</link><pubDate>Tue, 09 Aug 2022 21:26:04 +0900</pubDate><guid>https://iahsanujunda.me/2022/08/09/create-florence-nightingales-coxcomb-diagram-with-python/</guid><description>&lt;p>&lt;img alt="Nightingale Coxcomb" loading="lazy" src="https://drive.google.com/uc?export=view&amp;id=1SC6wFmma_vObK9ABNvUkxF8TO7AogFVJ">&lt;/p>
&lt;p>This is my implementation of the famous coxcomb diagram of excess death from Crimean War &lt;a href="https://www.florence-nightingale.co.uk/coxcomb-diagram-1858/">created by Florence Nightingale in 1858&lt;/a>. 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.&lt;/p>
&lt;p>I realized that using computer to resolve the proportion makes the chart emphasize the excess death even further than what Florence Nightingale presented.&lt;/p></description></item><item><title>Integrate Utterance to Blog Posts</title><link>https://iahsanujunda.me/2022/08/08/integrate-utterance-to-blog-posts/</link><pubDate>Mon, 08 Aug 2022 21:29:58 +0900</pubDate><guid>https://iahsanujunda.me/2022/08/08/integrate-utterance-to-blog-posts/</guid><description>&lt;p>&lt;a href="https://utteranc.es/">Utterance&lt;/a> 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&amp;rsquo;t make use any kind of database storage so authenticating would need to be taken care of by third party.&lt;/p></description></item><item><title>Read Google Spreadsheet as Pandas DataFrame</title><link>https://iahsanujunda.me/2022/08/08/read-google-spreadsheet-as-pandas-dataframe/</link><pubDate>Mon, 08 Aug 2022 17:26:21 +0900</pubDate><guid>https://iahsanujunda.me/2022/08/08/read-google-spreadsheet-as-pandas-dataframe/</guid><description>&lt;p>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 &lt;code>https://docs.google.com/spreadsheets/d/[sheet_id]/edit?usp=sharing&lt;/code> and the sheet name, then put it into this format &lt;code>https://docs.google.com/spreadsheets/d/[sheet_id]/gviz/tq?tqx=out:csv&amp;amp;sheet=[sheet_name]&lt;/code>.&lt;/p>
&lt;p>We can then put this url into &lt;code>pandas.read_csv()&lt;/code>.&lt;/p>
&lt;p>And of course I build a react app for this. &lt;a href="http://google-spreadsheet-url-convert.herokuapp.com/">It&amp;rsquo;s this one&lt;/a>. Because why not.&lt;/p></description></item><item><title>About Me</title><link>https://iahsanujunda.me/about/</link><pubDate>Sun, 07 Aug 2022 21:57:45 +0900</pubDate><guid>https://iahsanujunda.me/about/</guid><description>&lt;!-- Greeting -->
&lt;h1 id="greetings-im-junda-">Greetings, I&amp;rsquo;m Junda! 👋&lt;/h1>
&lt;!--Introduction -->
&lt;p>I&amp;rsquo;m a &lt;strong>Senior Data Scientist&lt;/strong> at &lt;a href="https://global.rakuten.com/corp/innovation/technology/">Rakuten&lt;/a>, a leading e-commerce platform in Japan with global presence. Outside of work, I run freelance web development projects.&lt;/p>
&lt;ul>
&lt;li>📚 I’m currently learning causal inference extensively for work&lt;/li>
&lt;li>🐝 I have worked on several side projects on a web development using MERN stack that is deployed to Heroku&lt;/li>
&lt;li>🔭 My wife is very obsessed about zero waste household, so I&amp;rsquo;m trying to help her by developing a device with a little bit of deep-learning-on-edge capability for waste management. I mainly use &lt;a href="https://software.intel.com/content/www/us/en/develop/tools/openvino-toolkit.html">intel OpenVINO toolkit&lt;/a> with models built on pytorch&lt;/li>
&lt;li>🌱 I&amp;rsquo;m adept at using alibaba cloud and GCP courtesy to professional experiences.&lt;/li>
&lt;li>🍰 Fun fact: Me and my wife is a surprisingly good baker, a hobby that we both picked up due to COVID-19 quarantines&lt;/li>
&lt;/ul>
&lt;!-- Comment --></description></item><item><title>Coffee Analytics 1 - How to Tell if Changing Grind Size Results in Better Brew</title><link>https://iahsanujunda.me/2022/08/04/coffee-analytics-1-how-to-tell-if-changing-grind-size-results-in-better-brew/</link><pubDate>Thu, 04 Aug 2022 21:53:09 +0900</pubDate><guid>https://iahsanujunda.me/2022/08/04/coffee-analytics-1-how-to-tell-if-changing-grind-size-results-in-better-brew/</guid><description>&lt;blockquote>
&lt;p>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.&lt;/p>&lt;/blockquote>
&lt;p>It&amp;rsquo;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 &lt;a href="https://www.youtube.com/channel/UCMb0O2CdPBNi-QqPk5T3gsQ">James Hoffmann&lt;/a> videos to know the latest poison to buy.&lt;/p></description></item><item><title>How to Embed Images Hosted on Google Drive</title><link>https://iahsanujunda.me/2022/08/01/how-to-embed-images-hosted-on-google-drive/</link><pubDate>Mon, 01 Aug 2022 23:12:02 +0900</pubDate><guid>https://iahsanujunda.me/2022/08/01/how-to-embed-images-hosted-on-google-drive/</guid><description>&lt;p>Embedding image URL from google drive is actually easy. We just have to convert the URL we got from google drive from this format &lt;code>https://drive.google.com/file/d/[image_id]/view?usp=sharing&lt;/code> to this format &lt;code>https://drive.google.com/uc?export=view&amp;amp;id=[image_id]&lt;/code>.&lt;/p>
&lt;p>Even easier, just use this tool I make: &lt;a href="https://gdrive-url-convert.herokuapp.com">gdrive-url-converter&lt;/a>&lt;/p>
&lt;!-- more -->
&lt;p>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.&lt;/p></description></item><item><title>Does FromSoft explicitly program Malenia to skip waterfowl dance?</title><link>https://iahsanujunda.me/2022/07/30/does-fromsoft-explicitly-program-malenia-to-skip-waterfowl-dance/</link><pubDate>Sat, 30 Jul 2022 21:05:32 +0900</pubDate><guid>https://iahsanujunda.me/2022/07/30/does-fromsoft-explicitly-program-malenia-to-skip-waterfowl-dance/</guid><description>&lt;p>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 &lt;code>git gud&lt;/code>!&lt;/p></description></item><item><title>MLOps Part 3 - Evaluation and Optimization</title><link>https://iahsanujunda.me/2021/10/21/mlops-part-3-evaluation-and-optimization/</link><pubDate>Thu, 21 Oct 2021 11:57:21 +0900</pubDate><guid>https://iahsanujunda.me/2021/10/21/mlops-part-3-evaluation-and-optimization/</guid><description>&lt;p>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.&lt;/p></description></item><item><title>MLOps Part 2 - Feature Engineering and Training</title><link>https://iahsanujunda.me/2021/09/14/mlops-part-2-feature-engineering-and-training/</link><pubDate>Tue, 14 Sep 2021 23:00:18 +0900</pubDate><guid>https://iahsanujunda.me/2021/09/14/mlops-part-2-feature-engineering-and-training/</guid><description>&lt;p>Previously, we have set up the main skeleton of our training pipeline using mlflow project and implemented a &lt;code>download&lt;/code> step component. Now let&amp;rsquo;s continue building the training pipeline.&lt;/p>
&lt;p>&lt;img alt="image" loading="lazy" src="https://drive.google.com/uc?export=view&amp;id=1KVqCU7TUzuln1CPufvR60X9_a4Evqf1r">&lt;/p>
&lt;p>Right now we are going to develop the feature engineering and training part. For the sake of simplicity, we are going to implement a bare minimum feature engineering for our model, because we are looking to focus our work on mlops. It is very possible to develop a more rigorous feature engineering step that results in much better model performance.&lt;/p></description></item><item><title>MLOps Part 1 - Intro to MLflow Project and Setting-up Our First Component</title><link>https://iahsanujunda.me/2021/08/02/mlops-part-1-intro-to-mlflow-project-and-setting-up-our-first-component/</link><pubDate>Mon, 02 Aug 2021 21:49:38 +0900</pubDate><guid>https://iahsanujunda.me/2021/08/02/mlops-part-1-intro-to-mlflow-project-and-setting-up-our-first-component/</guid><description>&lt;p>MLflow is a very nice tool to handle our MLOps needs. It covers several important features for doing MLOps, namely tracking server, model registry, and source code packaging. Here we are going to focus on &lt;a href="https://mlflow.org/docs/latest/projects.html">MLFlow Projects&lt;/a>, the source code packaging feature that can help us develop a reproducible machine learning pipeline.&lt;/p>
&lt;p>MLFlow projects enable us to run source codes in a consistent way by encapsulating the runtime environment together with the source code, so that we can develop our source code on OSX, and have it run on linux with the same reproducible result, if we so need.&lt;/p></description></item><item><title>Intuition to Recommender System for Implicit Feedback Dataset</title><link>https://iahsanujunda.me/2021/05/17/intuition-to-recommender-system-for-implicit-feedback-dataset/</link><pubDate>Mon, 17 May 2021 20:59:40 +0900</pubDate><guid>https://iahsanujunda.me/2021/05/17/intuition-to-recommender-system-for-implicit-feedback-dataset/</guid><description>&lt;p>I have been tinkering with recommender system at work for a few months now in order to gain deeper understanding on how the model works, how the training process learns from observation data, and how to make recommendation from learned model. This post is basically the overview on what I&amp;rsquo;ve learnt and will be divided into several parts, this is the first.&lt;/p>
&lt;p>This post will rely heavily on paper from Yifan Hu, Yehuda Koren, and Chris Volinsky titled &lt;a href="http://yifanhu.net/PUB/cf.pdf">&amp;ldquo;Collaborative Filtering with Implicit Feedback Dataset&amp;rdquo;&lt;/a>. The theory laid out in the paper has been incorporated into several open source tools to build recommender systems, most prominently perhaps the &lt;a href="https://spark.apache.org/docs/2.2.0/ml-collaborative-filtering.html">Apache Spark&amp;rsquo;s ALS&lt;/a> package.&lt;/p></description></item><item><title>Setting Up Unit Test for Your Apache Spark Job Using Scalatest</title><link>https://iahsanujunda.me/2020/11/28/setting-up-unit-test-for-your-apache-spark-job-using-scalatest/</link><pubDate>Sat, 28 Nov 2020 08:15:10 +0900</pubDate><guid>https://iahsanujunda.me/2020/11/28/setting-up-unit-test-for-your-apache-spark-job-using-scalatest/</guid><description>&lt;p>By nature, machine learning models that run on production need to deal with&amp;hellip; well&amp;hellip; data, presumably lots of them. There will be times that among many data that our model need to deal with, there will be bad ones. In which case, machine learning models tend to either immediately stop processing data, or continued on with processing and produce smelly result. The impact of both are bad.&lt;/p>
&lt;p>Unit testing ML models equip us as developers with an extra confidence to put models in production, by giving a way to an isolated modules in an ML pipeline to face various edge cases and try to handle them accordingly.&lt;/p></description></item><item><title>Understanding the Data - Exploring CO2 Emissions, Internet Usage, GDP per Capita, and Oil Consumption between Countries</title><link>https://iahsanujunda.me/2020/06/07/understanding-the-data-exploring-co2-emissions-internet-usage-gdp-per-capita-and-oil-consumption-between-countries/</link><pubDate>Sun, 07 Jun 2020 09:45:28 +0900</pubDate><guid>https://iahsanujunda.me/2020/06/07/understanding-the-data-exploring-co2-emissions-internet-usage-gdp-per-capita-and-oil-consumption-between-countries/</guid><description>&lt;p>One often overlooked aspect of data analysis project is keeping track of the data that we are working on. Our data will evolve during the course of analysis project, sometime new variables will be introduced, sometimes we redefined an old variables, or sometimes we dropped a variable that deemed no longer relevant. &lt;!-- more --> Whatever the reason is, it make a good sense that we keep track of the changes in our data. This is where a code book comes in handy. Code books are simply a document where we put information about our data. At the very least we want to keep track of our variable names, their description, and the unit of measurement.&lt;/p></description></item><item><title>Starting Analytics Project - What is the Connection Between CO2 Emissions and Internet Usage Across Countries</title><link>https://iahsanujunda.me/2020/06/06/starting-analytics-project-what-is-the-connection-between-co2-emissions-and-internet-usage-across-countries/</link><pubDate>Sat, 06 Jun 2020 19:05:25 +0900</pubDate><guid>https://iahsanujunda.me/2020/06/06/starting-analytics-project-what-is-the-connection-between-co2-emissions-and-internet-usage-across-countries/</guid><description>&lt;p>Every analytics project MUST start from a question. I have been always curious about the explosive growth of the Internet, especially as someone who built his career on enabling wider adoption of Internet in fields that traditionally not rely on the Internet. I want to know if Internet usage is bringing bad effect to CO2 emission - &lt;a href="https://www.climate.gov/news-features/understanding-climate/climate-change-atmospheric-carbon-dioxide#:~:text=Without%20carbon%20dioxide%2C%20Earth's%20natural,causing%20global%20temperature%20to%20rise.">one of the variable most strongly linked to global warming&lt;/a>.&lt;/p>
&lt;p>The Internet - and the digital age at large - has been viewed as mainly bringing net postive. &lt;a href="https://www.internetforall.gov/why">It powers education and economy. It supports our health and well-being. It also connects individuals to their community and their loved ones&lt;/a>. However, as I got older, I kept finding myself contemplating whether or not the overwhelming positive overshadows a potentialy serious downside. For me, an environmental impact is one area that I believe will grow in urgency as we are going to keep witnessing the impact of a changing climate on our everyday life. For this analytics project, not only I want to know if every country is making more co2 emission with higher internet useage, but also if there is anomaly out there where a country managed to power their internet growth from sustainable sources.&lt;/p></description></item></channel></rss>