ML.NET Introduction

Recently, a friend of mine, Maxx and myself decided to embark on a quest to start learning ML.NET. It came to our attention that ML.NET is released on Preview in 2 April 2019 and subsequently on 3 May 2019 on Stable Release.

Being in a language that I am comfortable with, i decided to give it a try and see what capabilities are available and how we are able to build something.

Every the course of next few weeks, we are going to try

  1. Coding it ourselves
  2. Using Model Builder Tool
  3. Using AutoML to perform model training and picking the best algorithm.

More information can be found on their site on

We are also going to follow the ML.NET tutorials released – then attempt to run the sample –

We have ran through the Microsoft Docs detailing ML.NET and will be extracting the important points out in the next various posts i made.

ML.NET will give developers the power to add in machine learning capabilities to .NET applications. With this ability, developers are now able to make predictions using the data presented.

The general steps required
1. Load the data
2. Prepare the data
3. Train and test the model
4. Get predictions / Using the model

ML.NET presents various functions and methods to do them and in the course of next few weeks and posts, we will present them in our blogs.

As of date of posting, ML.NET has the following Tasks.

  1. Binary Classification
  2. Multiclass Classification
  3. Regression
  4. Clustering
  5. Anomaly Detection
  6. Ranking
  7. Recommendation

ML.NET Introduction – Introduction
ML.NET Part 2 – Machine Learning – Environment setup

Azure Site Under Construction

Despite my deployment has been a success and active, when i navigate to the online link, it presents me with a blank page with a “Site Under Construction” error in the title.

Azure - Site Under Construction

Azure – Site Under Construction

It was due to the deployment process may have some malfunctioned and app_offline.htm is still there.

app_offline.htm present

app_offline.htm present

The solution is simple, go into App Service > Console and type in the command

rm app_offline.htm

Azure App Service Deployment Center git failure

My configuration was BitBucket and linked to Azure App Service via the Deployment Center and it auto pulls from my Master branch.

One fine day, the deployment failed and threw me this error.

I am not sure what caused the locked but here’s the solution but upon inspection of the logs, i received this.

Fatal: Unable to create ‘D:/home/site/repository/.git/index.lock’: File exists.Another git process seems to be running in this repository, e.g. an editor opened by ‘git commit’. Please make sure all processes are terminated then try again. If it still fails, a git processmay have crashed in this repository earlier: remove the file manually to continue. D:\Program Files\Git\cmd\git.exe checkout master –force

Go into your App Service > Console > Navigate to the folder and use rm command to remove it.

cd D:\home\site\repository\.git
rm index.lock

Thereafter, go back to your deployment center and click on Sync and it will work magically.

Joseph Johnathan Zhao

Joseph Johnathan with Mr. Tan Chuan-Jin, 10th Speaker of the Parliament of Singapore

Halogen Foundation Singapore – National Young Leader Award 2017 Finalist

Joseph Johnathan Zhao

Mount Ophir – Gunung Ledang

This is a long overdue post but this being the first hike i have done, i want to blog the positive experience that i had at Gunung Ledang, also known as Mount Ophir. I traveled with my brother Joseph Johnathan Zhao. We did not spent a long time preparing, we merely purchased basic hiking gears at Novena Square and Decathlon – proper bag, shoes, thick shoes, gloves and coat. Spent around $250 SGD per person on the gears.

For the record, we hike the mountain on 31st December 2016, stayed one night in the mountain and descend on 1st January 2017. Yes – we “Happy New Year” at the peak.  I do understand some old post mentioned the park may be closed between Dec to Feb due to monsoon season. I recommend calling in to check if that would be the case.

We walked into Malaysia via Woodlands Checkpoint on 30th December 2016 night – Yes, you can walk in and we didn’t pay a single cent for walking in.

While we were in Singapore, we booked Citrus Johor Bahru for 2 adult standard room 1 night stay for $49.50 SGD. The accommodation is merely 5 minutes’ walk from the customs. We stayed in the accommodation for a night on the 30th December.

On 31st December morning, we sought help from the hotel reception to get us to Mount Ophir, Gunung Ledang. The hotel has decided to get us a blue taxi and cab us up. It costs around 350RM for the cab ride (after a discount!) for around 1.5 hours ride. I came to understand that the red cab is cheaper than the blue cab for such travel. [Clearly, we aren’t prepared] In fact, if one has done proper planning, can arrange for a bus ride to Lekin bus terminal before another ride to the mountain.

When we reached Mount Ophir at around 1pm, we walked in and the park attending came to us. We were told to grab our lunch nearby and advised that we don’t do the hike in 1 noon + night as the descend will be dangerous. We took their advice and were drove nearby to have some food before our climb to 1276m Mount Ophir.

When we came back, we were greeted by our guide – Zul (+60142754793). he is a young chap and carried 3 times more items than us. We were at first puzzled what he brought with him. Before we walk up, they checked our bags and count the amount of plastic bottles and plastic bags that we are carrying with us. We were warned that a penalty will be imposed should we leave any plastics behind.

There are 2 routes up to the peak. We took the Lagenda Trail from the Park office towards Bukit Semput CP1. We faced a long flight of stairs immediately which caused me to vomit out my precious chicken rice lunch. We took a short break at CP1 and continued towards CP2, CP3, KFC. When we were at CP2, the rain started to fall and it continuously rained. It was difficult to climb as the floor is muddy and it takes extra strength to lift your feet up. In certain cases, we were uncertain whether we may slip and fall if we were to step on the rocks. There are various points where there are sturdy ropes support for us to hold onto.

It’s around 7.45pm that we reach Bukit Botak and were told that we can take a short nap and rest – we wash up at a river nearby and changed into a new set of attire and slept in our sleeping bags. Its to my amazement when Zul opened up his 3rd bag and took out cooking devices and started to cook hot coco drinks for us! We were offered biscuits and the drinks. Its one of the best things you can asked for in the cold and wet weather. Shortly after, we took our naps and prepare for the “Happy New Year” at the peak. As the place we sleep is too near the river, it was very very cold and we kept waking up.

We woke up around 11.15pm and were told to take around 20-30 minutes to climb up. As there’s a cell tower nearby, we found reception when we were nearing the peak – Happy New Year messages start to flood in! We reached the pitch black summit at around 11.45pm. Joseph and myself painfully brought 1 can of Carlsberg up and roasted peanuts and we toasted each other at the peak and yes, we unloaded 0.33kg off our shoulders – we shared that one can!

We then went down to the place we slept earlier and slept all the way till the next day morning when we started descending down. Along the way, we saw many people coming up. The descend was much easier this time as its not raining now and the floor has pretty much dried up!

Special Mention to Zul (Whatsapp +60142754793), he took very good care of me and Joseph during the whole journey. When i slowed down to catch a breath, he would wait for me and encourage me to carry on. The continuous motivation helped me to reach CP1,CP2,CP3. He would occasionally check in to see if we are fine as well.

If you wish to climb any mountains in Malaysia, do feel free to find Zul (Whatsapp +60142754793).

Total damage (as of Jan 2017)
Entrance Fee – 50 RM / pax
Hotel – $49.50 SGD
Guide – 300RM (2 Pax)
Cab – 350 RM (after discount)