Paper Accepted by ICSE 2018

Dataflow Tunneling: Mining Inter-request Data Dependencies for Request-based Applications
Xiao Yu and Guoliang Jin

Nowadays web-based applications are ubiquitous in server applications to serve web pages and RESTful APIs. One typical characteristic of such applications is the use of modular and stateless request handlers to process user requests. It is notable that making individual handlers stateless does not actually remove the underlying data dependencies over multiple requests. Data can still be propagated across requests by implicit calling relationships between seemingly stateless handlers, and these handlers may still have to retain or recompute internal states, such as querying a backend database repeatedly.

This accepted paper represents our newest effort in advancing analysis techniques for web-based applications. We argue that inter-request analysis, which analyzes request handlers with data propagation across user requests, is potentially beneficial for performance optimization and information-flow integrity. And we propose an approach to capture and abstract such data propagation going through multiple application and library components, and client side applications, such as web browsers and mobile apps. We believe that our work is the first step towards practical and full-fledged inter-request analysis tools.

ACSIC Speaker Series #6 by Prof. Yuanyuan Zhou from UCSD (In Chinese)

Prof. Yuanyuan Zhou’s talk on her startup experience. Although the talk isĀ in Chinese, most of the slides are still in English. Below is the brief intro for the talk.

In this talk, I will share with everyone about the challenges and lessons of starting companies from academia. I have co-founded companies either as a fresh Ph.D graduate (my first startup), and also as a professor (my second and third startup). I have learned many valuable lessons along the way and have also learned a lot from my advisor and many other mentors in entrepreneurship. Moreover, I will also share with everyone some of the logistics such as IP issues with universities, visa problems for your co-founders or early employees, fund raising, etc. At the end, I will also invite two founding members from my current company (one is my former Ph.D student who had a very strong publication record, and the other is a Ph.D graduate from a famous architecture professor at UIUC also with a strong publication record) to share with everyone why they chose to join a startup and what they have learned so far from the startup. So feel free to invite your own Ph.D students or postdoc, too.

Bio: Yuanyuan Zhou is a Qualcomm Chair Professor in Mobile Computing at University of California, San Diego (UCSD) since 2009. Prior to UCSD, she was a tenured professor at University of Illinois, Urbana-Champaign (UIUC). Her area of expertise include data centers, computer systems, data analytics and mobile systems. She has so far graduated 18 Ph.D students, most of whom are now either successful entrepreneurs or tenured/tenure-track professors at top universities including University of Chicago, University of Toronto, University of Waterloo, Ohio State University, etc. In parallel to her academic career, she has also co-founded three companies, with the first two successfully exited to public companies. As the President in her second startup, Pattern Insight, she led the company to become profitable since 2010 and was acquired by VmWare in July 2012, providing good returns for investors and shareholders. Currently she is busy with her third startup, Whova. It has gained substantial customer traction worldwide and has successfully raised substantial investment last year. She obtained her BS in computer science from Peking University, and her MS and Ph.D from Princeton University. She is an ACM Fellow and IEEE Fellow, Sloan Research Fellow (2007) and the winner of ACM Mark Weiser award (2015).

Personalized dietary plan

It came to me today this interesting article:

Personalized Nutrition by Prediction of Glycemic Responses

There are rather interesting findings: current universal dietary plans recommended by nutritionists may not be effective for everyone; and machine learning can help us personalize effective plans based on personal features.

Hope in near future we can benefit from this technique.

Subtle signal-delivery behavior on OS X (and some other BSD systems)

An online article discussed a subtle behavior on OS X, NetBSD, and OpenBSD delivering the SIGPROF signal to multithreaded programs: http://research.swtch.com/macpprof. In a nutshell, the current implementations in those systems cannot do it right to deliver the signal to a running thread, which most other systems would do.

This behavioral difference affects profilers that rely on SIGPROF to avoid sampling bias. For example, we can see a short description here: https://code.google.com/p/lightweight-java-profiler/issues/detail?id=2.

If the Photos app for Mac stuck on “Updating”…

If you have enabled iCloud Photo Library, and just restored your whole system from a Time-Machine backup, you would very likely see your Photos app keeps showing “Updating”, and you would not see anything in your shared albums (that’s what my system encountered). In the Console, you may see an error log message following a message of “New connection request” from cloudphotosd. The error message shows “RDErrorServiceDatabaseOpenError”.

In that case, delete the directory “~/Library/Containers/com.apple.cloudphotosd/Data/Library/Application Support/com.apple.cloudphotosd/” to force the Photos and its backend services to rebuild the internal database.

Office 2016 for Mac is finally coming (partially) …

Microsoft has finally announced its *preview* version of Office 2016 for Mac. Remember the latest major version for Mac is still 2011; meanwhile, Windows has received two major version updates in the past five years… I almost believed Mac users had been forgotten by Microsoft.

There is a noticeable change on the naming convention: from previous Office for Mac [year] to Office [year] for Mac. It may be a sign that future Office releases are going to be synchronized on all platforms.

Go http://blogs.office.com/2015/03/05/office-2016-mac-preview/ and have a try!

Recent updates

I haven’t got time to update this site for a long time, because of the busy work with NEC Labs, and the recent paper submission to USENIX ATC’15 (reviewers, don’t be too harsh…). Now it’s time to reflect, and plan for the future.

Looking back on my experiences in the past one year and a half, one of my major achievements was to have successfully registered my car with three states: North Carolina, Illinois, and New Jersey! I left North Carolina in August 2013, and stayed at University of Illinois at Urbana-Champaign from September to May 2014, then worked at NEC Labs in New Jersey from May to December, finally returned to North Carolina in January 2015. What a roving life!

I really appreciate those experiences, which have given me a clear mind on what I should pursue, what person I am willing to become, as well as some important counterparts, such as what person I should never become. There were successes and failures, up and down, all strengthening my determination of being a successful PhD. I promise to present memoirs discussing details of those experiences later, probably when I graduate (“Memoirs, alas, are an occupational hazard” – “Sir Humphrey Appleby”).

Anyway, a new journey has started. Once again I can work with passionate people on such a beautiful campus of NC State.

A takeaway for myself, and for anyone who is reading this post: always remember to work with right people, and look forward to a fruitful future.

From the name of Windows 10 to crappy software code

There is a rumor on the reason that Microsoft used the name Windows 10 instead of Windows 9: some lazy programmers used to use something like “osName.startsWith(“Windows 9″)” to determine if the current system is Windows 9x (for both Windows 95 and 98). If the new Windows was named after 9, such legacy software would be broken.

Here is a Reddit post discussing the rumor: http://redd.it/2i14ny, funny to read.

It seems that some programming frameworks, such as Java runtime libraries, do provide an easy way to determine OS versions, instead of the Windows API GetVersionEx returning some version numbers. In Java, one can use “System.getProperty(“os.name”)” to get a real OS product name represented in strings, and try doing “startsWith(“Windows 9″)” effectively leading to crappy problems in future.

Regardless of the truth of this rumor, programmers shall never make improper assumptions when writing their code: if you want Windows 98, then use “Windows 98”, and never assume that Microsoft will not announce a new Windows called “Windows 9-is-back”.

Windows 10: April Fool’s Joke Became True

Last year, there was an April Fool’s story saying that Microsoft decided to skip Windows 9, and jumped to Windows 10 directly (see here).

Today, Microsoft announced Windows 10… Facts are sometimes stranger than fictions, indeed.

[2014/09/30 2:00PM] The Windows 10 event is still running. Follow http://live.theverge.com/microsoft-windows-9-event-live-blog/.