Skip to content

CSC Archive

Posts Loop

81 Moses-Saunders Dam, St. Lawrence Seaway, Lake Ontario
Verifying Lake Ontario’s Water Level
The Caldwell-Fay equation (2002) attempts to model what Lake Ontario's current water level would be if dam construction had never taken place along the St. Lawrence Seaway (i.e. the natural hydraulic state of the lake). Newly unearthed Lake Ontario data going back to the 1860s has been discovered, and we had the rare opportunity to be the first to digitize and publicly analyze it. Since this data set predates any dam construction it actually captures the lake's natural state. Therefore it can be used to verify Caldwell-Fey's equation which is being used to govern the lake's inflow and outflow rate on a daily basis.
Application homepage
Building a Web Application from Scratch
This semester I built an e-commerce application to sell my artwork and donate the profits to charity. I built a Node.js server using the Express framework and middleware to implement authentication, session management, and security features. The client side code uses the Jade templating language to pass run-time variables into static files which are rendered into HTML and passed to the browser. I designed a relational database to store the relevant information and built it out using MySQL.
Visual Representation of our work as a diagram.
Safe, Fast Sharing of Memcached as a Protected Library
Memcached is a widely used key-value (KV) store. It is structured as a multithreaded user-level server, accessed over socket connections by a potentially distributed collection of clients. Because socket communication is so much more expensive than a single operation on a KV store, much of the client library is devoted to batching of requests. Batching is not always feasible, however, and the cost of communication seems particularly unfortunate when—as is often the case— clients are co-located on a single machine with the server, and have access to the same physical memory. Fortunately, recent work on protected libraries has shown that it is possible, on current Intel processors, to amplify access rights quickly when calling into a specially configured user-level library. Library instances in separate processes can then share data safely, even in the face of independent process failures. We have used protected libraries to implement a new version of memcached in which client threads execute the code of the server themselves, without the need to send messages. Compared to the original, our new version is both significantly simpler, containing 24% less code, and dramatically faster, with a 11–56× reduction in latency and a roughly 2× increase in throughput. 
Mock up of two students using augmented reality to collaboratively design
Hyperion: A 3D Visualization Platform for Optical Design of Folded Systems
Hyperion is a 3D visualization platform for optical design. It provides a fully immersive, and interactive 3D user experience. It enables the visualization of models of folded freeform optical systems. The frontend user experience is supported by the computational ray-tracing engine of Eikonal+, an optical design research software. We have built a cross-platform light-weight version of Eikonal+ that can communicate with any user interface. We have also demonstrated a prototype of the 3D user experience using a Hololens AR display.