Release the power of your mobile phone with Web API and Javascript

Photo by Cameron Venti on Unsplash

Location service is a crucial capability of mobile devices. While enjoying all the advantages like direction service, checking the nearest inventory during online shopping, I am always concerned about how much and how detailed my data is collected. Using a VPN or turning off location service is insufficient to completely protect our identity and cause lots of hassle.

Today we will explore how to use the Web API to access the geolocation and get rid of being tracked by tech providers.

Long story short, let’s watch our final…


Create a Bubble Chart in Javascript and CSS

Photo by Max Gotts on Unsplash

The wave of Web 2.0, alongside the advance of mobile devices and the Internet infrastructure a decade ago, embraced a new paradigm of creating web and mobile application. It has changed our digital life to the next level, so do the skills we’ve learnt and used.

While technologies keep evolving rapidly, digital citizens have been accumulating a broad spectrum of skills throughout the journey. It is a challenge to match skills among job hunters and employers. …


A 5-minute guide to create a Node backend on Kubernetes cluster

Photo by Karim MANJRA on Unsplash

Kubernetes has gained tremendous popularity and becomes the de-facto container orchestration tool because it provides load balancing, auto-scaling, automatic redeployment, health checking, and most important, vendor agnostic.

It empowers micro services shops to run zero-downtime application and became a crucial skill for developers. Nonetheless, the learning curve of Kubernetes is steep, not only because of the giant ecosystem and complex architecture but also the high monetary cost of provisioning infrastructure. Minikube is helpful to simulate how Kubernetes works on a local machine. It is the best for development but not ideal if you want to experiment on a real multi-node…


Impress employers with an accustomed and interactive experience

Photo by Dawid Zawiła on Unsplash

If you haven’t read Part 1, I strongly encourage you to work out the groundwork with it.

In Part 1, we’ve created a CV in A4 format using HTML and CSS and published it as a website 👈. It freed us from a word processor and opened the door of creativity to the decade’s old CV experience.

In Part 2, we’re going to power it up with a practical and fascinating function to impress your audience by presenting your remarkable achievement visually.

Table of Content

Section 1: Menu bar

Section 2: Popup window

Section 3: A small tidy-up

Section 4: Custom domain

Section…


Impress employers with an accustomed and interactive experience

Photo by Clem Onojeghuo on Unsplash

The recruitment domain has been advancing by more accurate employers and employees matching using Machine Learning algorithms in recent years. Ridiculously when we get into the details of the candidates, the information presented in the old A4 MS Word format is still enormously popular.

Google Doc is a viable option to create a blank new CV. Unfortunately, if you have been working for a while, updating the current CV written in MS Word is a more direct approach. However, transforming formats from one tool to others can screw you up when you manage the sophisticated page break, section break, header…


Get rid of the dependencies with ease

Photo by Fitore F on Unsplash

Importing libraries to extend software capabilities is a productive approach in development. As described in the DRY (Don’t Repeat Yourself) principle, it is not sensible to reinvent the wheels in most cases. Building application with libraries makes much sense. However, in TDD, testing your functions depending on third party libraries could be tricky if it lacks planning.

Let’s warm up by writing a simple Typescript function to hit an external REST service SpaceX-API and retrieve the response’s name attribute. We will leverage the popular Rest library ‘Axios’ and ride on the get() function…


Photo by Chad Kirchoff on Unsplash

In 2021 one of our team priorities is to move toward Serverless architecture. It is tricky to build the unit tests on top of the AWS services. It dragged me a couple of hours to figure out the most comfortable way to mock the DynamoDB functionality.

aws-sdk-mock has a pretty detailed readme and examples for a quick start. The approach is intuitive and clean. When I messed around it in Typescript and Jest, there were a few hiccups that paused me a while without a useful error message. Then I realized that the order of invocation caused unexpected behavior.

Based…


Photo by Mika Baumeister on Unsplash

本篇喺「清除相片行踪資料」系列之三

一:如何避免相片分享泄露行踪

二:清除相片行踪資料(iPhone篇)

三:清除相片行踪資料(Android篇)

上兩篇講到手機分享相片有機會泄露行踪資料點樣喺iPhone安全分享相片。測試用上比較舊嘅Android 。如你用其他型號,介面可能有差異。

先講結論。

下載 Photo Exif editor。

用 Photo Exif editor app 消除 Exif (最重要係Geolocation)資料,然後分享。


Photo by Jamie Street on Unsplash

本篇喺「清除相片行踪資料」系列之二

一:如何避免相片分享泄露行踪

二:清除相片行踪資料(iPhone篇)

三:清除相片行踪資料(Android篇)

上篇講到手機分享相片有機會泄露行踪資料。本篇分享點樣喺iPhone安全分享相片。測試用上iPhone X。如你用其他型號,介面可能有差異。

先講結論。

下載 EXIF metadata。

用 EXIF app 消除 Exif 資料,然後分享。

通訊軟件同社交網絡分享相片會泄露日常行踪,小心處理。


Photo by Chris Yang on Unsplash

本篇喺「清除相片行踪資料」系列之一

一:如何避免相片分享泄露行踪

二:清除相片行踪資料(iPhone篇)

三:清除相片行踪資料(Android篇)

群眾默默起革命,社交媒體將大洗牌。無論呢場革命是否成事,無論你轉場定留低睇大台,喺2020年尾人類命運最終章之際,保護自已私隱喺當務之急。當社交分享早已超越潮流玩意而成為生活習慣以至基本人權嘅一部分,社交媒體停機半天用家呼天嗆地,投訴話語權被剝奪。分享相片比文字更傳情達意,更有效率。但分享有面孔嘅相有風險係常識吧,本篇唔多講咯。更想講係係分享手機相片嘅風險。

以手機為例,當你撳相機快門一刻,相片除左記低影像之外,還有一大堆資料,叫做Exif,Exchangeable image file format。以下係用 verexif.com 示範查看Exif。

Anthony Ng

Software Engineer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store