Fix Bootcamp Error After Updating Windows 10

The error BootCamp Error The issue: Disk Utility app no longer lists hidden(unmounted) partition, which in my case is "Windows Recovery"(disk0s4), let alone removing it. diskutil list is the alternative. ➜ ~ diskutil list /dev/disk0 (internal): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme 1.0 TB disk0 1: EFI EFI 314.6 MB disk0s1 2: Apple_APFS Container disk1 745.0 GB disk0s2 3: Microsoft Basic Data BOOTCAMP 254. [Read More]

Manage multiple java versions on macOS using brew and jenv

Install and Update on macOS Manage multiple java versions on macOS can be tricky. There's different ways to install: homebrew cask download java distribution from Oracle download java distribution from And once the java version becomes outdated, there's different ways to upgrade too, which we will discuss below. Upgrade from brew cask homebrew cask doesn't offer the ability to upgrade a package, as brew cask upgrade <pkg-name> is not even available, see [details](https://github. [Read More]
Java  macOS 

Setting up GitHub Pages site locally on Windows

As we know that we can set up a local version of our Jekyll based GitHub Pages site to test changes locally before pushing to GitHub. The tricky thing is how to set it up on a Windows machine, given ruby and python as well as a few other components are not built-in to Windows, and getting those missing pieces installed and work together on Windows can be tricky. [Read More]

ES6 Notes

ES6(a.k.a ES2015) has been around for some time. Although it is fully backward compatible with previous version of JavaScript - ES5 which has been around for decades, there's quite some new syntax and features introduced in ES6 that is exciting on one hand, but can easily get wrong on the other hand. This posts is my study notes on ES6. let for block scoping let defines block scope variables, which can be accessed in a nested scope just like var. [Read More]

How to use plunker

Plunker has been a great tool for developers to try out new ideas effectively, share code among communities. Compared to other popular tool such as JSFiddle and Codepen, I personally find Plunker excel in the following areas: Best support for angularjs. In fact Plunker itself is written in angularjs. Ability to create unlimited number of files. This makes trying out larger size of demos possible. [Read More]

Angular directives for conditional required

The Problem Angular does support the concept of conditional required through the built-in directive ng-required. And it works great in simple scenarios. Consider the following example where address2 is only required when address1 is not empty. Address1 : <input name="address1" type="text" ng-model="address1" /> Address2 : <input name="address2" type="text" ng-model="address2" ng-required="!address1" /> This can be done using ng-required as shown above. But what if we also want address2 to be 'not required' when address1 is empty? [Read More]

New Comer

I wanted to run a blog for quite a long time now. IMO, a blog a good way to:

  • Keep track of knowledge.

  • Communicate with people around the world.

I will blog mainly on the technology I am interested, the projects I am working on, the knowledge and lessons I learned etc. Hopefully it will be fun. :)