An indolent researcher, enthusiastic tutor, tech entrepreneur.

I am interested in system software (compiler, vm, profiler, checker, debugger, instrumentation), operating systems and big-data systems. Ph.D. from McGill University and bachelor from Shanghai Jiao Tong University.

I am lucky to be influenced by numerous teachers and researchers in early days, by their innovation, pursuit and attitude. And I believe it is an honour as well as obligation to pass on the knowledge, perseverance and their stories. You can occasionally find me at 5406, School of Software building at SJTU.

Some extra materials for pubs

S&P'15
Effective Real-time Android Application Auditing. The 36th IEEE Symposium on Security and Privacy (IEEE S&P'15)

FAST '15
A Tale of Two Erasure Codes in HDFS. The 13th USENIX Conference on File and Storage Technologies (FAST '15)

ICAC'13
Performance Inconsistency in Large Scale Data Processing Clusters. The 10th International Conference on Autonomic Computing (short paper, ICAC'13)

Secure the Apps in Your Pocket

AppAudit: Detecting Data-leaking Mobile Apps

We design AppAudit, a program analysis tool that checks if an Android application leaks sensitive personal data. AppAudit has three use cases:

  • helps mobile users to avoid installing data-leaking apps;
  • assists app market operators to filter out zero-day privacy threats;
  • prevents app developers from accidentally using data-leaking libraries.
The overall precision for detecting malware compared with mainstream antivirus and research projects

AppBox: Sandbox-ing Android Apps

Ever tried the privacy browsing mode of web browsers? Now AppBox extends this to all Android apps. AppBox is a universal sandbox for Android apps. Apps that enter AppBox appear like newly installed and have limited accesses to system resources and user data. When an app exits from AppBox, all traces and data produced are removed, like it never happened.

Program Mobile Applications Correctly and Easily

Hey, Your App is Draining Battery for Leaking Memory

Memory leaks are a common but usually overlooked problem, since they are seldom noticed unless the program crashes due to OOM. However, we find that memory leaks could cause more damages on mobile computing. When a foreground memory-hungry (leaking) app overuses memory, the OS has to kill normal (sleeping background) apps to reclaim memory. This causes more apps to be loaded repeatedly when a user needs them, slowing down the entire system and drains the battery. Our study reveals that this is common for real-world mobile applications.


MonkeyHelper: Record, Replay and Understand User Interactions

We provide a chain of tools to capture, replay, manipulate and analyze the live user interactions (tap, scroll, pinch, etc) with a smartphone. Our record-and-replay capability is universal for all Android boxes and helps automated testing. The manipulation and analyses capability can be used to detect user intent and further stress test apps. See a video for record-and-replay-ing AngryBirds.

Storage Systems Meet Big Data

A Tale of Two Erasure Codes in HDFS

Enterprises continue to invest more and more disks to store growing data. Now petabyte-scale data poses a great challenge on the maintenance cost (for replacing dead disks), which largely confines the scalability of big data systems. Erasure coding is the technique that can store the same amount of data with 50% fewer disks, but at the cost of greater costs to recover unavailable data. In this paper, we explore novel erasure coding inventions and system techniques to tame the challenging recovery cost.


Optimizing Enterprise and Campus VM Deployments

Nowadays, enterprises and campuses virtualize their infrastructure to cut down capital cost and enable better IT management. Due to a mix of workloads, these VM deployments usually encounter IO spikes during some periods. In this work, we aim to understand IO patterns of these deployment and propose an automatic tool to reconfigure storage to better serve VMs.

Givs: Controlling Mobile Devices with Gestures in Vehicles

The small screen and touchscreen interactions of mobile devices could be uncomfortable for users in a moving vehicle. To overcome this limitation, we propose a rich set of gestures for performing fine-grained interacting with mobile device in a vehicle environment. Our system carefully picks gestures to allow easy control of vehicle applications (such as navigation, audio playback and phone call). Our algorithms overcome various road conditions that affect gesture recognition accuracy. This is an on-going project and we have a simple demo here:

SLIM: An STL-like library for mobile-cloud programming

Programming a mobile-cloud application is hard, considering the efforts of synchronizing data, managing different views, consistency and performance. We propose the SLIM framework that provides STL-like interfaces while automatically managing data structures between devices and the cloud. SLIM provides easy abstraction to developers with many built-in policies to allow for flexible system tradeoffs (e.g., consistency vs. performance). This project was an intern project with Microsoft Research Asia and was published on Asia-Pacific System Symposium 2011.

CuteStrike: A Cute 2D Remake of CounterStrike

CounterStrike is a classic first-person shooting game. We made it cute! You will see cute buns (players) moving around in a 2D dust2 map! AIs (even very tricky ones) are made for players and we also support LAN connected players.

dumpvb6: A Working VB6 Decompiler

This was once a self-taught practice implementation decompiler I coded at the age of 14. VB6 stands for Microsoft's Visual Basic 6, a WYSIWYG GUI programming language, once very popular and successful. By reverse compiling a program, one learns all its secrets and thus de-compilation was the ultimate cracking tool I was dreamed of making at that moment. Quite some efforts were spent to reverse the serialized COM+ component properties (for VB6 GUI widgets) and reconstruct expressions, types and control flows from streamlined calls to msvbvm60.dll helper functions. About 10 years later, a tech report about it was submitted as a course report to Prof. Laurie Hendren (my life tutor) for guidance on serious program analysis. Due to copyright concerns, this project is archived only for an once learning purpose and not intended to be released to the public.
Code snippet of VB6

I was born in Shanghai, the (now) economy center of China. In 1843, the Treaty of Nanking opens this city to the world, which once comprises the distinct areas of settlement for British, French, American and other European countries. Thus Shanghai develops and maintains a unique fusion of cultures from traditional China (Wu Territory) and various Western countries. As a treaty port, it survives the great destruction of WW2. The citizens value peace, diversity and quality of life.

After twenty-two years in this city, I moved to Montréal for my doctoral degree. The English-French city has indeed impressed me with its wonderful maisons and unbelievable cold winter as well as accidental fall of snow flake from the roof, kidding. Ironically, by looking at the city of Montreal, I grow awareness of Chinese traditions and values that are being replaced by aggressive modernization.

I have interests in many aspects, and am willing to waste time on them. Sneak out for a late night movie, a decent meal, cuisine research, a water spa, a visit to antique and local art galleries or an obsessed afternoon of browsing Swiss watch catalog.

Here are some great works and people that inspired me, and some quotes I would like to share:

The Old Lighthouse, Shanghai Bund. A marker for its original development point, not a restaurant nor a cheap exotic wine shop

The simulacrum is never that which conceals the truth — it is the truth which conceals that there is none. The simulacrum is true.

Ecclesiastes, as quoted in Simulacra and Simulation

真的,這就是春天呵,狂跳的心攪亂水中的浮雲。

北島, 真的

Did you ever know an officer to handcuff a prisoner to his right hand?

O. Henry, Hearts and Hands
Auguste Rodin,The Gates of Hell (La puerta del Infierno), Wikipedia
梁思成,中國建築史, Please notify if copyright violation

Where is the boundary between human and machine when the differences between the two become more philosophical than physical?

押井 守, Ghost in the shell

Gordon: I'm sorry, Harvey. For everything. But, please. Please don't hurt him.

Gary Oldman, cast in The Dark Knight
呼んでいる 胸のどこか奥で
Somewhere, a voice calls, in the depths of my heart
いつも心踊る 夢を見たい
May I always be dreaming, the dreams that move my heart
かなしみは 数えきれないけれど
So many tears of despair, uncountable through and through
その向こうできっと あなたに会える
I know on the other side of them I'll be sure to find you

繰り返すあやまちの そのたび ひとは
Every time we fall down to the ground we look up to the sky above
ただ青い空の 青さを知る
We wake to it's blueness, as if for the first time
果てしなく 道は続いて見えるけれど
Though the road is long, lonely and the end far away, out of sight
この両手は 光を抱ける
I can, with these arms, embrace the light

さよならのときの 静かな胸
As I bid farewell my heart stops, tenderly I feel
ゼロになるからだが 耳をすませる
My silent empty soul begins to listen to what is real
生きている不思議 死んでいく不思議
The wonder of living, the wonder of dying
花も風も街も みんなおなじ
The wind, town, and flowers, we all dance in unity

呼んでいる 胸のどこか奥で
Somewhere, a voice calls, in the depths of my heart
いつも何度でも 夢を描こう
keep dreaming your dreams, don't ever let them part
かなしみの数を 言い尽くすより
Why speak of all your sadness or of life's painful woes
同じくちびるで そっとうたおう
Instead let the same voice sing a gentle song for you

閉じていく思い出の そのなかにいつも
The whispering voice, we will never want to forget,
忘れたくない ささやきを聞く
in each passing memory always there to guide you
こなごなに砕かれた 鏡の上にも
When a mirror has been broken, shattered pieces scattered on the ground
新しい景色が 映される
Glimpses of new life, are reflected all around

はじまりの朝の 静かな窓
Window of beginning let shine the light of a new dawn
ゼロになるからだ 充たされてゆけ
Let my silent, empty soul be filled and reborn
海の彼方には もう探さない
No need to search the land, nor sail across the sea
輝くものは いつもここに
'Cause it's here shining inside me, it's right here deep inside me
わたしのなかに 見つけられたから
Thanks to you I've found the light, and it's always with me
                
木村 弓,いつも何度でも (Always with me), Credit WADIM Co., Ltd. for the translation of lyrics
素胚勾勒出青花筆鋒濃轉淡
瓶身描繪的牡丹一如妳初妝
冉冉檀香透過窗心事我了然
宣紙上走筆至此擱一半

釉色渲染仕女圖韻味被私藏
而妳嫣然的一笑如含苞待放
妳的美一縷飄散 去到我去不了的地方

天青色等煙雨 而我在等妳
炊煙裊裊昇起 隔江千萬里
在瓶底書漢隸仿前朝的飄逸
就當我為遇見妳伏筆

天青色等煙雨 而我在等妳
月色被打撈起 暈開了結局
如傳世的青花瓷自顧自美麗 妳眼帶笑意

色白花青的錦鯉躍然於碗底
臨摹宋體落款時卻惦記著妳
妳隱藏在窯燒裡千年的秘密
極細膩猶如繡花針落地

簾外芭蕉惹驟雨門環惹銅綠
而我路過那江南小鎮惹了妳
在潑墨山水畫裡 妳從墨色深處被隱去

天青色等煙雨 而我在等妳
炊煙裊裊昇起 隔江千萬里
在瓶底書漢隸仿前朝的飄逸
就當我為遇見妳伏筆

天青色等煙雨 而我在等妳
月色被打撈起 暈開了結局
如傳世的青花瓷自顧自美麗 妳眼帶笑意

天青色等煙雨 而我在等妳
炊煙裊裊昇起 隔江千萬里
在瓶底書漢隸仿前朝的飄逸
就當我為遇見妳伏筆

天青色等煙雨 而我在等妳
月色被打撈起 暈開了結局
如傳世的青花瓷自顧自美麗 妳眼帶笑意