Block-level Inline Data Deduplication in ext3

For our class project in advanced operating systems, Kris and I took our first foray into Linux kernel programing. We added block deduplication to ext3, a popular filesystem for Linux. The goal is to reduce the number of writes and to save space on the disk. This could be useful for Solid State Disks, where writes are slow and disk space is expensive. Our code is a bit buggy, but the idea has potential.

Programming Contest: 2nd place in region

My team placed 2nd in the North Central North America Region of the ACM International Collegiate Programing Competition! We’ve also advanced to the world finals on March 3rd  in Sharm El Sheikh, Egypt.

Benchmarking Linux And Hardware

Modern operating systems provide abstractions of hardware to make programming easier. However, it can be possible to learn some details about the hardware using simple benchmarks running in userspace. I wrote some of these benchmarks in C to measure these things on my computer:

  • The cost of a context switch in Linux
  • The size of the TLB and the cost of a TLB miss
  • The seek time and rotational delay of a hard drive.

Read more »

Modern Algebra Notes

modern algebra notes (PDF)
modern algebra notes (lyx)

There are probably some errors. I used LyX to make this note sheet.

Image Epitomes

An image can be condensed into an epitome, which captures the essence and statistically significant features of the image.  I created some matlab code based on Vincent Cheung’s examples that can be used for super-resolution. Here is an example result:

High resolution sample image

Epitome for sample image

The epitome itself may not be very interesting, however, it can be used to reconstruct details of a degraded image. Read more »

Programming Contest: 10th place in region

My team placed 10th out of 201 in the North Central North America region for the ACM International Collegiate Programming Contest.

Presentation Studio Theme Editor

Solidworks is a popular 3D CAD software suite.  An existing plugin for Solidworks allows users to export a 3D model as a 3D PDF document. However, there were only four templates available for the layout and style of the PDF. During my internship at Solidworks Labs, I created Presentation Studio Theme Editor, which allows users to create their own templates. Some of its features are:

  • What you see is what you get
  • Drag and resize elements with snapping
  • Z-ordering
  • Context pop-up bars
  • Undo and redo
  • Drag and drop images and text