Sign in

After struggling almost an hour thinking about all the wrong investment decisions I’ve made in the past several years, I feel it’s just so embrassing to discuss this topic. I do have a master of Finance and a master of Financial engineering along with both CFA and FRM certifications, but I feel I got all degrees for the sake of degrees only. Now the situation is I know most of the concepts in Finance but I just don’t apply them. Examples including but not limited to: I buy high and sell low, driving by greedy and fear; I don’t hedge…


Disclaimer: it’s very likely that you still lose money as humans are not trading machines plus your pocket may not be deep enough.

I personally am not a big fan of gambling. The last time I went to Las Vegas, I didn’t bet a single penny in casinos. Similar to the lottery, I know very clearly that the expected value of the result is negative. Hence why bother wasting both my time and money and energy on it?

But this week I learned something very interesting. By strictly following the martingale strategy there is a good chance that you leave the table with positive returns.

I used to work as a quantitative trading analyst for a couple of years and my understanding is…


This is the brief summary of the Github repo: https://github.com/jl4730/BGPHijacking/, which is based on the mininet demo attack https://github.com/mininet/mininet/wiki/BGP-Path-Hijacking-Attack-Demo and a paper (https://www2.cs.arizona.edu/~bzhang/paper/07-dsn-hijack.pdf).

Part 1: What Is BGP Hijacking?

GP hijacking occurs when a malicious attackers or rogue AS advertises a false IP prefix that it does not own or control to reroute internet traffic. These vulnerabilities still cause routing disruptions and connectivity issues for individual hosts, networks, and sometimes entire countries.

BGP favors a shorter route to save money for the providers or to
decrease number of hops to an IP prefix.

For a hijack to be successful it must:
A. Advertise a shorter route of…


This post is a brief summary of the repo here https://github.com/jl4730/BellmanFordinDistanceVectorProtocol. The repo implemented the Bellman-Ford algorithm in the Distance Vector routing protocol. This project is very similar to the previous post about the Spanning Tree Algorithm, except that we are solving a routing problem here, not a switching problem. In this project, we will develop a distributed Bellman-Ford algorithm and use it to calculate routing paths in a network.

1. Intro to Bellman-Ford Algorithm

Here is the wiki link to the algorithm: [Bellman-Ford](https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm) For our project, the algorithm will be used to calculate the shortest path from one node to another. …


This is a brief summary of the repo https://github.com/jl4730/SpanningTreeAlgo, which developed a simplified distributed version of the https://en.wikipedia.org/wiki/Spanning_Tree_Protocol that can be run on an arbitrary layer 2 topology.

1 Why spanning tree algorithm is needed?

Using bridges to connect LANs fails if the network topology results in loops (cycles). In that case, the bridges loop through packets forever. The answer to this problem is excluding links that lead to loops by running the spanning tree algorithm. The goal of the spanning tree algorithm is to have the bridges select which links (ports) to use for forwarding eliminating loops.

2 How the algorithm works?

The algorithm runs in “rounds” and at every round…


This weekend I studied an interesting topic on RSA, which is a public-key cryptosystem. I was intrigued by all the mathematical ideas and did some work on python implementation. This post is to share my understanding of it. Like my other posts, it is pretty elementary and is created for myself and other beginners only.

1 Introduction to RSA

RSA is one of the most widely-used public-key cryptosystems in the world. It’s composed of three algorithms: key generation (Gen), encryption (Enc), and decryption (Dec). In RSA, the public key is a pair of integers (e, N), and the private key is an integer d.


Github repo: https://github.com/jl4730/GitProLearning

This summer I have helped the tech team with some simple tech tickets. Through which I have some exposure to SDE’s work: daily standup, scrum master, Jira ticket, stash repo, etc. It’s a lot of fun. I want to take this chance to summarize some basic commands used to help someone who never had such experience. This is not for experienced developers as the information here is super basic.

Step 1: create a branch based on existing branches

Here is a graph showing the branches. We can see some recent work based on the develop branch committed by colleagues.

all branches graph from stash

Now we can create a branch based…


This post is to summarize the deep learning classes from Udacity Data Science Nano Degree Program. Github repo: https://github.com/jl4730/DeepLearning

1 Introduction to neural networks

Perception algorithm:

This video above shows a simple 0/1 classification problem and how why gradually gets to the optimal classification line.

But most of the time we need to deal with more complicated problems with multiple classes and complicated classification boundaries (not a line, but a curve or something higher dimensional).

One-hot encoding is introduced to label the multiple classes before doing classification. And then softmax function will help give each category a probability after the model produced the result.


Project Overview

This post is to summarize the capstone project I did for Udacity Data Science Nano Degree Program. The goal of the project is to classify images of dogs according to their breed. CNN (Convolutional neural network) is the methodology used to achieve the target.

The link to the Github Repo is here: https://github.com/jl4730/DogBreed

Problem Statement

The main task is to build an algorithm that accepts user-supplied images as input. If a dog is detected in the image, it will provide an estimate of the dog’s breed. …

Jingying Liu

A lifelong learner, always eager to learn more.

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