Posts in ComputerScience

Data Science Basic

Data science involves principles, processes, and techniques for understanding phenomena via the (automated) analysis of data. This article talks about the basic part of data science.

Read more ...


Mac Tips

I got first Macbook 3 years ago, but only use Macbook as production environment 9 months ago. In order to use Macbook in an efficient way, some tips can be important to know.

Read more ...


Arduino Introduction

Recently, my recent project use Arduino and relevant devices to help to emulate signals from sensors. It helps our development quite a lot especially the ‘up-stream’ part like data acquisition. The setup looks like following, which just shows very small part of the whole setup and this setup is evolving no matter the hardware and the software. Due to confidential consideration, this article will only stay on high level.

Read more ...


Azure Design Pattern

Just like programming, for many technical challenges for using cloud and Azure there are best practices. We call these best practices as Design Pattern. This blog introduce these design patterns and also discuss relevant tools on Azure.

Read more ...


Cyber Security for Blockchain

This year, I worked on a project and the topic for me is cyber security for blockchain in Oil and Gas industry. It was really good experience since I got the chance to think through this topic and deliver research report to client. Both cyber security and blockchain are interesting areas for me, besides the above project I still have a lot of things not mentioned mainly technical things. So I decide to write this blog as supplement to above project.

Read more ...


Azure Data Lake and Warehouse

Data Lack and Data Warehouse are two concepts causing confusion. This blog introduces these two concepts and provides comparision for other relevant concepts.

Read more ...


User Story Applied

This blog is the book notes for user story applied.

Read more ...


Application Insight Introduction

This blog introduces what Application Insight can do.

Read more ...


Azure Security

Cyber Security is important aspect to digital transformation. To use Azure well, the understanding of the security building blocks is crucial.

Read more ...


Iot for Smart Cities

Smart cities: Everyone’s connected If everyone, every home, and every business is connected via the IoT, why not take the next step and connect your entire neighborhood, or even the whole city? Connected devices can help reduce congestion on local roadways, alert the fire department in case of emergencies, and even signal the need for road maintenance or additional police patrols. The smart city might mean a smaller government – or a more intrusive one. It all depends.

Read more ...


Machine Learning Basic

This blog introduces the basic knowledge of machine learning. The details of algorithm and programming will come in later blogs. Machine learning is a technology which can resolve the computational problem without programming specifically.

Read more ...


AI for Smart Cities

I had the honer to give an ‘AI for Smart Cities’ presentation in ‘Big Data & AI Asia’ conference Dec 5. The conference was hold in Suntec and it was a big event around hundreds people participated.

Read more ...


Node.js Basics

Recently, I used Node.js quite a lot to handle personal projects. It is easy to start, and also easy to get wrong. This blog covers the basics part of Node.js development.

Read more ...


Authentication & Authorization Basic

Authentication and Authorization are two relevant but different concepts, which causes confusion sometimes. Both of them are important for SaaS solution. This blog explains the basic of these two concepts.

Read more ...


Microservices Introduction

Microservice is a software architecture style, in which complex applications are composed of small, autonomous process communicating with each other using language-agnostic API, which is a very common cloud pattern.

Read more ...


Blockchain Scenario

This blog explain the potential scenarios of blockchain usage. The content comes from good articles on web.

Read more ...


Https Explainations

Hypertext Transfer Protocol Secure (HTTPS) is a safer version of HTTP, which is the communications protocol of the World Wide Web. An HTTPS session is encrypted using either the SSL protocol (Secure Socket Layer) or TLS protocol (Transport Layer Security) and offers protection against “eavesdropping” and that any change in the transmitted data.

Read more ...


Cryptography Introduction (with .NET code example)

Cryptography is the core part of security, this blog introduces the basic concepts in cryptography and uses .NET as code example.

Read more ...


Docker Introduction

Docker is the world’s leading software containerization platform. Docker/container technology becomes more and more popular these days. This blog introduces the basic concept of the above technology.

Read more ...


Introduction to Javascript

Javascript is the fundumantal programming language for frontend development. This blog introduces the basic concept of Javascript language.

Read more ...


Blockchain Introduction

Blockchain is the technology behind Bitcoin, this blog introduce what the Blockchain is.

Read more ...


Cloud for Dummy

This is a blog to explain what cloud is to dummies.

Read more ...


DevOps and Continuous Delivery

DevOps and continuous delivery are two hot topics these days, which play more and more important role in software development especially for the SaaS (Software as a Service) solution.

Read more ...


Xunit Test Patterns

Xunit Test Pattern is a fantastic book which shares the experience and good practice to write tests.

Read more ...


Specification by Example

Specification by Example is a set of process patterns that helps teams build the right software product. With Specification by Example, teams write just enough documentation to facilitate change effectively in short iterations (Scrum or XP) or in flow-based development (Kanban).

Read more ...


Bash: Useful Commands

Bash is a widely shell, which is the default shell in many operating systems, e.g. Unix, Linux, Mac OS. Bash can help you achieve a lot. To invest time to learn some useful commands in bash is a good idea.

Read more ...


Authenticate Node.js App by OpenId Connect

OpenID Connect (OIDC) is an authentication layer on top of OAuth 2.0; while OAuth 2.0 is an authorization framework. The standard is controlled by the OpenID Foundation. This blog post will go through an example to use your google account to login a Node.js app by using OpenID Connect.

Read more ...


Security: Owasp Top 10

The Open Web Application Security Project (OWASP) is an open community dedicated to enabling organizations to develop, purchase, and maintain applications and APIs that can be trusted. The goal of the Top 10 project is to raise awareness about application security by identifying some of the most critical risks facing organizations. This blog is based on 2013 version, while 2017 version will come very soon.

Read more ...


Domain Driven Design: Introduction

Domain Driven Design (DDD) is about trying to make your software a model of a real-world system or process. The philosophy of DDD is about placing our attention at the heart of the application, focusing on the complexity that is intrinsic to the business domain itself. In using DDD, you are meant to work closely with a domain expert who can explain how the real-world system works. It also acts as the conceptual foundation for the design of the software itself - how it’s broken down into objects or functions. In this blog post, I will cover the key elements of DDD.

Read more ...


Threat Modeling: Introduction

With more and more data and software go to internet, the security becomes crucial for software development. OWASP (Open Web Application Security Project) lists top 10 security risks:

Read more ...


NoSQL: Introduction

NoSQL originally refers to “non SQL”, “non relational”, or “not only SQL”. NoSQL databases are increasingly used in big data and real-time web applications. NoSQL databases are not replacing relational database, there are scenarios only fit for NoSQL database. This blog give a brief introduction of NoSQL databases.

Read more ...


Telemetry: Overview

Telemetry technology plays more and more important role in the ‘cloud era’. This blog will explain what is telemetry technology, how we can benefit from telemetry technology, and briefly discuss some technical choices.

Read more ...


Setup Blog: Using Sphinx and Ablog

Writing blogs is a good way to learn. The brain of human being has retention rate of what is learned. In order to learn efficiently, people need to be more active on discussing, practicing and teaching. No matter your blog has already got millions of followers or not, the blog writing itself is very beneficial for yourself to learn better. This blog post will teach you how to setup your personal blog by using open source technology like Sphinx and Ablog.

Read more ...


Git: Resolve Conflicts

Git provides various tools to resolve conflicts during the merge process, and in this blog we only discuss one of them gvimdiff in Windows Operating System.

Read more ...


Vi: Configuration Example

Among various text editors, I like Vi a lot. It help me a lot if I work on various operating systems and different environment since Vi is installed by default on most operating systems. There is GUI Vi tool available on Windows called Gvim, which can be downloaded from here: http://www.vim.org/download.php

Read more ...


Git: Branch Continue

This blog will cover the Git commands which to transfer the changes between branches. If you are not familiar with the basic Git branch commands, you can have a look of my previous blog: Git: Branch Basic

Read more ...


Git: Branch Basic

One of the biggest advantage of Git is branching. Git is very strong at handling branches, no matter on functionality or on efficiency. Let’s try out the Git branch commands.

Read more ...


Git: Areas

Git has four areas:

Read more ...


Git: Getting Started

Git is an open source distributed version control system, which plays important role in current software ecosystem. You may find many GUI Git tools like SourceTree, Github Desktop, TortoiseGit etc, however the best way to learn Git is to deep dive into the Git commands and understand the fundamental. Let’s start the ‘Git journey’ by using the basic commands.

Read more ...