I quit Caffeine

Well I have been pushing myself pretty hard and there are consequences for everything. I was drinking way too much coffee and have decided to quit as a result of the negative health effects.

I think it will take a while to get used to living without caffeine since I have been consuming large amounts for over 18 years.

Anyhow take care of yourselves out there!

Air Quality Monitor

I have been continuing my work on my Air Monitor.

While I wait for the dust sensor components I have been adding functions to the code base. So far I have added:

  • switchable graphs
  • user menu
  • sensor warm up function
  • persistent config storage using EEPROM

I will add WiFi next and maybe offline storage (SDCard).

CO2 Air Quality Monitor with real time graph

I just finished building a CO2 air quality monitor using a TTGO T4 board and a MH-Z19B sensor.


I had to build the graphing function from scratch as there are no graphing libraries available for the Arduino/ESP32 ecosystem (that I could find).

The monitor supports the following features:

  • CO2 and Temperature monitoring with 100ms updates (faster that the sensor)
  • Real time graph with a 3 hour scrolling cycle
  • Color codes for CO2 concentration levels
  • Auto-scaling graphs

It is pretty much feature complete at the moment. The components are quite expensive but I am happy with the result. For less than $100 it has more functions that more expensive commercial products.

The case, source code and instructions are here: https://github.com/wilyarti/TTGO-T4-Air-Monitor

How to study to pass the CCNA exam (Cisco Certified Network Associate)

This is the most important question when setting out on your CCNA journey. How will you ensure you will pass.

Here are my tips to help you succeed.


Stick to the fundamentals

Master the basics of the CCNA topics:

Subnet masks

You need to know off by heart the IPv4 subnet masks. Use my Anki flash card deck to help you remember them all. This is essential to speed up your problem solving and question answering times during the exam.

Wildcard masks

You will need to learn and master subnet masks first. After that learn wildcard masks, you will need to know them to solve the live sim questions in the tests.

Hexadecimal to decimal to binary conversion

If you know how to easily and quickly convert binary to decimal then to hexadecimal you will be able to more quickly solve issues with routing problems and exam questions.

Also it is the foundation of programming and computer science and will serve you with other endeavors.

Cisco CLI

Build a lab! Start up a Linux or BSD instance in the cloud and configure private networking! Install Quagga/Bird flex your Cisco CLI skills.

You will need to enter hundreds of commands until you get the “flow” of the Cisco CLI. When  you are under pressure in the exam environment this will be very advantageous.

Routing Tables and Troubleshooting

Learn about the routing table in Linux or FreeBSD and compare it to the Cisco system. Install static routes in your home DSL router. Build private networking in the cloud to your home computer, setup multiple networks in your house and get routes working between the two subnets.

Daily practice

30 minutes per day is better than the entire weekend. For some reason your brain only starts to take notice if you do something everyday.

Learn how to insert CCNA study during your lunch break, on the way to work or while doing the dishes. Don’t just read a book, try to do something practical each day.

Computers are powerful enough to build an entire network and run it on your machine.

Build different networks consisting of routers and switches using GNS3 on your laptop when on your lunch break like I did!

Listen to podcasts

I still listen to the Packet Pushers podcast weekly! You should too. When I first started listening it all sounded like mumbo jumbo and I had no idea what was going on.

Nowadays I understand most of what they are talking about! This is a great way to keep your mind on the topic and hear people talk about something that may be really lonely to study.

Start building now!

Impress your friends, family and your wife with your new found networking super powers! A few cool projects I did:

  1. DIY VPN
  2. Proxy server
  3. Private home network

Learn using different modes

Learn by reading, writing, listening and doing.

Learn by revision, comparison, deduction, problem solving and teaching.


Do flashcards every day. Put down Facebook. Don’t put down your phone. Install the Android Anki App and install my decks:

  1. CCNA deck
  2. IP subnet deck

Annoy your wife

Bore her to death! Explain various routing technologies,  network topologies and device types. Try to explain STP!

Do not deprive people of this very important information, they need to be informed; in-depth and regularly.

Apply for jobs

Prove that you are serious to yourself and employers. A job that I eventually turned down was actually the main reason I pushed myself to pass the exam after failing the first time. The employer said:

“Call me when you get your certification.”

I got the certification and the job offer!

Learn around the topic

Learn similar things.

I learned:

  1. Perl
  2. Golang
  3. Android programming

All to avoid studying for my CCNA…..

Put your procrastination to good use!




Hacking my Ketonix

Well I managed to get the Ketonix App to run on my Linux laptop after extracting the executable file and updating the libraries to the latest versions.

Turns out it is written on Node.JS with ChartJS and NWJS. It connects to the Ketonix using node-hid.

Very happy performing my first hack 🙂 Now I can use my Ketonix on my Linux laptop.
Screenshot from 2019-10-22 23-11-05.png

Kotlin based Content Management System

I have been continuing developing my CMS system I have written from scratch in Kotlin.

The backend web app is written in ReactJS and uses a RESTFUL API to perform CRUD operations on post/pages and users.

I have recently added a Toast notification system for both the CMS and the Kettlebell Competition web apps.

I also added a sitemap XML generator for the static page generator.



Kotlin based Content Management System and other web apps

I have been spending the last couple of weeks programming a new Content Management System for my website in Kotlin.

Why? What was wrong with the old site?

  1. it used jQuery and was slow loading pages
  2. it was not responsive

I also wanted to learn about REST, Kotlin DSLs and databases.

The new version now has authentication, sessions and only uses JavaScript for loading Feather Icons or on the pages that contain web apps.

Screenshot from 2019-10-06 22-06-13

Due to the fact it doesn’t use JavaScript on the web pages it will be more friendly with search engines and will help to drive traffic to my website.

I am currently porting the old web apps I had on the old website. I have currently only moved Channel Grapher and the DNS Statistics App.

I plan to keep developing this platform and build more websites using it. I currently do not see it as a competitor to any other CMS but mainly as a way for me to learn more about web technologies.

It also allows me to host Kettlebell lifting competitions with my brother!

You can get the source code for the Kettlebell competition app here.

The work-in-progress CMS code is here.

UI updates

I’ve made some minor updates to my ReactJS app Channel Grapher. It is turning out to be one of the hardest parts of the programming process.

I need to get a nice icon for my app and will see if I can get one professionally made when I get a chance.

I plan to use React Native to make this an android app as well.