Bio
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.
Publications
Some extra materials for pubs
School-time Projects
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.
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
dumpvb6: A Working VB6 Decompiler
Me
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 simulacrum is never that which conceals the truth — it is the truth which conceals that there is none. The simulacrum is true.
真的,這就是春天呵,狂跳的心攪亂水中的浮雲。
Did you ever know an officer to handcuff a prisoner to his right hand?
Where is the boundary between human and machine when the differences between the two become more philosophical than physical?
Gordon: I'm sorry, Harvey. For everything. But, please. Please don't hurt him.
呼んでいる 胸のどこか奥で 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
素胚勾勒出青花筆鋒濃轉淡 瓶身描繪的牡丹一如妳初妝 冉冉檀香透過窗心事我了然 宣紙上走筆至此擱一半 釉色渲染仕女圖韻味被私藏 而妳嫣然的一笑如含苞待放 妳的美一縷飄散 去到我去不了的地方 天青色等煙雨 而我在等妳 炊煙裊裊昇起 隔江千萬里 在瓶底書漢隸仿前朝的飄逸 就當我為遇見妳伏筆 天青色等煙雨 而我在等妳 月色被打撈起 暈開了結局 如傳世的青花瓷自顧自美麗 妳眼帶笑意 色白花青的錦鯉躍然於碗底 臨摹宋體落款時卻惦記著妳 妳隱藏在窯燒裡千年的秘密 極細膩猶如繡花針落地 簾外芭蕉惹驟雨門環惹銅綠 而我路過那江南小鎮惹了妳 在潑墨山水畫裡 妳從墨色深處被隱去 天青色等煙雨 而我在等妳 炊煙裊裊昇起 隔江千萬里 在瓶底書漢隸仿前朝的飄逸 就當我為遇見妳伏筆 天青色等煙雨 而我在等妳 月色被打撈起 暈開了結局 如傳世的青花瓷自顧自美麗 妳眼帶笑意 天青色等煙雨 而我在等妳 炊煙裊裊昇起 隔江千萬里 在瓶底書漢隸仿前朝的飄逸 就當我為遇見妳伏筆 天青色等煙雨 而我在等妳 月色被打撈起 暈開了結局 如傳世的青花瓷自顧自美麗 妳眼帶笑意