Visit site

Computer vision without doubt is going to change almost every aspect of how a machine interacts with our environment and us in the near future. It is still a young field (originated from 1960s) but the technology starts to work at the first time in history with recent advances in machine learning. Applications like self-driving cars, robotics, VR/AR have motivated people to enter the field and apply the technology to much broader areas. It has become one of the most active subfields of Artificial Intelligence.

Crazy ideas around computer vision happen everyday for new research, side projects or business use cases. To work with computer vision, you need three things: data, algorithm and computation. Giant tech companies like Google and Amazon has made heavy computation possible for everyone with their cloud platform offering. The research community (e.g. arXiv) and open source community (e.g. Github) bring us better algorithms on paper and easy-to-use code in practice. It has never been a better time to study this complex subject which used to require Ph.D level experience. But there is one problem left — Data. More specifically, visual data which comes with high quality annotations. Building a good dataset requires a lot of thinking in terms of size, content balance, visual variations to help the trained model generalize well to unseen cases. Labeling a large scale dataset can be very expensive and slow, making it still a barrier for individuals or small companies with limited budget to experiment with new ideas. …

Image for post
Image for post

A common and standard option to package a web service is via container, e.g. docker. After you have built your awesome web service, tested it and packaged it in container, how do we deploy it to cloud so it will be available to serve requests 24X7? Major cloud platforms like AWS and GCP offer native services to host containers, but usually there is long documentation you need to read. This article helps you to get your service up and running in minutes.

We will use docker as the container technology and AWS as our cloud solution. We assume you have some experience of working with AWS, and know how to build a docker image for your service. …

Image for post
Image for post
Photo by Ibrahim Rifath on Unsplash

S3 is a great option to host a static website due to its simplicity and low cost. But if you want to use it for production, you need to connect the site to your custom domain, set up email forwarding, serve over https and other practical needs. This post describes in a concise way how to do all these so it takes no time to make your site live and serve its purpose.

Hosting on S3

The first thing to do is to put your website on S3.

1. Create a bucket

You can use any name but it is recommended to use your domain/subdomain as bucket name. …

Image for post
Image for post
Image by Masaaki Komori via Unsplash

I love reading but don’t have the space to store physical books or too lazy to carry one. Kindle delivers the best digital reading experience compared to other devices. I have owned multiple versions of Kindle since the one with keyboard and still enjoy every moment of using it. Over the time, I noticed a few tips and tricks that enrich the way I use the device with even better outcome. I want to share them with you unless you prefer reading instruction manuals and endless Google searches.

Read everything on Kindle

You already know your Kindle supports personal documents which means you can read comics via PDFs or work docs via Word as well as other formats. We now get most information from the Internet and it is not always convenient to send documents via USB. …

The concept

The Need for Design Patterns in Machine Learning Application

When you start a machine learning project, most of the time, you are not confident the algorithm will work on the data you have. So, you start with prototyping. Thanks to the popular scripting based frameworks (TensorFlow, Torch, Caffe2), you can easily fire up an editor, import a package, and write operations to perform your task. This works well for research purpose, it validates your idea quickly. As your experiment evolves, a lot of things get changed. Multiple network architectures are tested, helper functions are added to process data, optimization parameters and algorithms are tried. Finally, you see the model is working and want to use it for production to power your next big idea. But when you look back, you end up with a script of scattered operations and parameters. …

In the tech startup, no matter what you are working on, it has the same purpose: solving people’s problem. I want to talk about people here. Because I found it is the most difficult thing in a business to find potential customers. And that’s what everything is based on, including what problem to solve.

As long as you are doing things other than making bread and producing clean water, everything you say about people is a guess, simply because you don’t know if it’s true or false without they telling you themselves or seeing it’s happening. There exists extensive process to do customer development. …

This post describes an easy to use but effective workflow for building a python project from empty to be deploy-ready.


First, create a project folder and enter it.

Next, create an environment to manage the packages used by your project. Instead of using the mix of pip and virtualenv, we will use conda. conda combines package management and virtual environment in the same tool. I found it very intuitive to use.

# create env named my_projconda create -n my_proj# activate envsource activate my_proj# install pipconda install pip

Now, do the real work, writing your code. You can use pip install or conda install to install your packages. …

Create a custom email address

A custom email address in the format shows customers and colleagues that you mean business.

Double check your CC: and BCC: lines

when emailing multiple recipients who don’t know each other, don’t use the To: or CC: lines. It shares your contacts’ addresses with strangers, and if anyone replies to all it can annoy everyone. Avoid embarrassment and sue the BCC: line, no one will be able to reply to all or see others’ addresses.

Do the To: line last

When we write from top to bottom, it’s easy to hit the wrong key and send before finishing. …

I know, it sucks, right?

There are moments in life you probably want to take a pause and look back.

This is the moment.

Image for post
Image for post

The Journey

I left home since undergrad 12 years ago. I remember the day when I was rejected by the top choice of universities I applied, it was miserable. Not because of the result, but the process we had that placed mistruct on someone who was supposed to help. Mom and Dad made endless calls to grab the last hope, and it did come but very disappointedly. Well, at least, I won’t be out of school. I watched ‘Lupin the Third — Castle of Cagliostro’ after getting the admission letter to put myself into the adventure that I needed. …

Code reuse is a very common need. It saves you time for writing the same code multiple times, enables leveraging other smart people’s work to make new things happen. Even just for one project, it helps organize code in a modular way so you can maintain each part separately. When it comes to python, it means format your project so it can be easily packaged. This is a simple instruction on how to go from nothing to a package that you can proudly put it in your portfolio to be used by other people.

Package Structure

When you create a ‘.py’ file, that is a module. You can define classes, functions, variables in that module named as the filename. When you put one or more modules in a folder and add a ‘’ file, you create a package named as the folder. So a common package folder structure could be like…


Jie Feng

Humanize AI

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