Build A Resume From Your LinkedIn Profile

Recently I am populating my LinkedIn page to prepare for job hunting. Besides LinkedIn, I also need to update my resume. When I was copying and pasting text from LinkedIn to my LaTeX resume, I realized that I should develop something to do this automatically. I quickly checked LinkedIn’s JavaScript API and found that this idea can be easily implemented. So I developed AutoResume, which has two major objectives:

1. Automatically load your LinkedIn profile into resume templates.
2. Create a place for people to share resume templates (LaTeX, HTML, or maybe more formats).


My AWS Account Got Compromised

I made a terrible mistake last week. I accidentally uploaded my access and secret key of Amazon Web Services (AWS) to Github. These keys have the root authority of my AWS account. I used them with AWS’s java SDK to launch EC2 instances. Obviously some crawlers found these keys and they launched a bunch of EC2 instances all over the world with my account.

This is the result:


Share My Diablo 3 Bot: Ghom Farming/Auto Pick Up/Legendary Notification

I have used this bot for quite a long while. It is free and safe. I developed it because I got sick of the infinite farming in Diablo 3. This bot is actually an AutoHotKey script. It neither reads/writes memory nor performs real-time pixel detections. It is just a pure Mouse/Keyboard macro. So how can it pick up legendary items? The answer is screenshot scanning. It ‘presses’ PrintScreen after Ghom is down, then scans the screenshot and finds out the coordinates of legendary items. Simple but effective.

I also added a feature to upload the thumbnails of the legs that have been picked up to Dropbox dir. So if you are at work while the bot is running at home, you will see a notification window pop up every time you get a legendary item. I was quite exciting to see those notifications at the beginning, but now I have totally lost my interests :(

Please see the video demo:


Stop Bootstrap Carousel from Auto-sliding at the Last Slide

Sometimes we need Bootstrap Carousel to stop auto-sliding at the last slide, one possible way to achieve this is to set the wrap to false. But this causes another problem that you cannot click the next arrow to jump to the beginning when you are at the last slide.

My solution is to stop the Carousel from sliding at the last slide, and reactivate the auto-sliding at the first page. Please see the example below.


Real-time Web Dashboard Using and Highcharts

The traditional way to accomplish a real-time web dashboard is through automatically refreshing charts or long polling ajax requests. is a Node.js library provides a duplex communication method between browsers and web servers using WebSocket. And as for those outdated clients that not support WebSocket, it can automatically fallback to traditional polling mechanisms. This article is a guide to implement a real-time web dashboard using You may need some basic knowledge about Node.js for better understanding.


Using Google Maps API to Implement a Two-dimensional Circle Heatmap like Tableau

Google Maps API V3 has a feature named Heatmap Layer to dipict the intensity of data at geographical points. It can satisfy our needs in most cases. However, if we want clickable data points and two-dimension weight (use radius and color to represent different properties of the point), we are on our own.

This article shows how to implement a heatmap layer in Google Map with these features:

  1. Use circles to stand for data points. Either the radius or the color of a circle can represent a property of the data point. You can also use both of them to get a two-dimensional heatmap.
  2. Data points are clickable, you can customize the pop-up information window.
  3. Automatically generate a color spectrum for the heatmap.