CS344G: (Your) Great Ideas for Networked Applications class project.

IX++ is an extension of the IX Dataplane Operating System that uses PCI Single Root I/O Virtualization (SR-IOV) to run multiple networked applications concurrently with minimal interference. The original IX ran alongside Linux and required a dedicated physical network interface card (NIC) for each multi-threaded IX application, as well as one for Linux. In IX++, each multi-threaded application is instead given its own virtual NIC through SR-IOV, and Linux can run concurrently on the physical NIC. In brief, the original IX required a dedicated NIC for Linux and one NIC per IX application while IX++ uses NIC virtualization to allow Linux and multiple IX applications to multiplex a single physical NIC. In this paper we describe the implementation of IX++ and demonstrate its significant performance advantages over Linux when running concurrent networked applications. We also show that using different Linux Traffic Control Queuing Disciplines can help, but not close, this performance advantage.

Project presentation
Read project report here

Latency vs Throughput

Ola Diabetes Care

CS 147: HCI+D class project.

Ola is a system (smartphone application + wearable pod) that provides real-time context-aware care for diabetic patients by using smart wearable devices and advanced data analytics.

Project website
Read project report here

Concept video

Low-fi Prototyping & Pilot Usability Testing

3rd-party Cookies

CS142: Web Applications writing assignment.

Should browsers disable or enable 3rd-party cookies by default?

While third-party cookies enable new web functionalities, it can also expose users’ browsing history without users’ awareness. A person’s web history inevitably reveals personal information, which could be maliciously exploited for economical and/or psychological harm. Furthermore, users’ obliviousness impedes the use of market force to regulate these third parties. To address this ecosystem deficiency, browsers should disable third-party cookies by default – requiring users to explicitly “opt-in”.

Full write-up here

I Don’t Know

An interesting thing happened today at work.

There was a company wide all-hands meeting this evening, this is where the executives review our past quarter performance and reveal the all important number that everyone is most interested in - the bonus payout percentage. However, it is not the bonus payout percentage that is interesting… what caught my attention is a quick, short comment made by the CEO which could be paraphrased into: a CEO should not say “I don’t know”.

It took me by surprise, as I am trying to learn to say “I don’t know” more often! You know what I mean - it is really hard to say/admit “I don’t know” at work as there is almost always a pressure to deliver some kind of an answer or to look good/save face in a meeting. Sometimes it is ignorance and sometimes it is just not enough available information - but I believe saying “I don’t know” is one of the most honest, courageous and confident action one can make. I would rather see a leader readily admits to his/her lack of understanding than for a facade of omniscience.

“Stay hungry, stay young, stay foolish, stay curious, and above all, stay humble because just when you think you got all the answers, is the moment when some bitter twist of fate in the universe will remind you that you very much don’t.” ― Tom Hiddleston

iOS, XMLHttpRequest and Video

So… Safari on iOS supports HTML5 video element. That’s great, good job Apple.
BUT - why can’t you take the extra step of allowing the video element to work with blob object URL as the source?!
  var oReq = new XMLHttpRequest();
  oReq.open("GET", URL, true);
  oReq.responseType = "blob";

  oReq.onreadystatechange = function() {
    if((oReq.readyState == 4) && (oReq.status == 200)) {
      var blobURL = (window.URL || window.webkitURL).createObjectURL(oReq.response);
      $("#myVideo").attr("src", blobURL);