Computer Laboratory

Oliver R. A. Chick

Profile

I am a third year PhD student under the supervision of Dr Andrew Rice in the Digital Technology Group. I am a member of Gonville & Caius College.

I have previously studied the Computer Science Tripos including Part III.

Oliver R. A. Chick photo. © Ramsey M. Faragher

Contact Details

Oliver R. A. Chick
Computer Laboratory
University of Cambridge
William Gates Building
15 JJ Thompson Avenue
CB3 0FD

Email: oliver [dot] chick [at] cl [dot] cam [dot] ac [dot] uk

GPG fingerprint: 4292 E0E2 1E9F DE91 D0EC 6AD4 57CB 6E45 78EA 2A07. Public GPG Key

IRC: oc243 on Freenode and irc.srcf.net.

Follow @oc243

Projects

I am currently working with Dr Andrew Rice, Dr Ripduman Sohan, James Snee, and Lucian Carata, on the Resourceful project that provides fine-grained resource accounting within system calls.

Captain Buzz is a collaboration with Dr Ramsey Faragher to build a drone that is flown autonomously by a smartphone, using the phone's sensors as inputs into an autopilot. The phone flies the plane by playing an audio signal that uses pulse code modulation to control servos directly connected to the phone's headphone jack (written by Daniel Wagner). Captain Buzz has several innovative features, including the ability to reprogram the autopilot over ADB as it flies (credit to TAS).
Dr Ramsey Faragher demonstrating Captain Buzz on YouTube

Along with Daniel Thomas, I administer the DTG husky cluster, a set of servers running XenServer with Ubuntu virtual machines for the Digital Technology Group. By following best-practice for running research infrastructure, along with novel techniques such as a distributed setup of puppet (credit Daniel Thomas), we avoid the age-old problem of bit-rot of academic code, and are able to update the base operating system of all our machines (currently around 70) in less than a day with zero downtime. Our configuration is publicly available.

At Google, I worked in the code cultivation team alongside Dr Robert Bowdidge. I built a prototype of Muscat, an analysis for the Clang compiler that identifies code features from the abstract syntax tree, and uses machine learning to cluster similar usecases.

Whilst working for the Xen Platform Team at Citrix I implemented persistent grants in the Linux Xen blk{front/back} drivers. This changed the virtualised block device drivers to reduce the number of costly flushes of the translation lookaside buffer (TLB) by using a scheme where a set of pages are persistently shared between guest virtual machines (domUs), and the privileged domain (dom0). The result is a 3x increase in throughput on a host serving ten guests. This was upstreamed into the Linux kernel by Roger Pau Monne (0a8704a51f386cab7394e38ff1d66eef924d8ab8).

For my Part II Project, I worked with Dr Kathryn Gray to build a compiler with parallel extensions to Standard ML, based on Ypnos. This took the ideas of Dr Dominic Orchard that structured grid computations could be modelled using Haskell as an application of a co-monad, and applied it to Standard ML using pthreads for parallelism.

I helped build TweetGuv, a website that analysed tweets of politicians, and used natural language processing techniques to determine if they were following the party line. I presented the work, which won the prize of best group project in the Computer Lab. Tweetguv received national media interest, including the BBC, and the Times.

I am the author of FSM Sim, a tool for teaching the theory of finite state automata to secondary school students.

Selected non-academic work

  • XKCD hashing competition. On 2013-04-01, Mattias Linnap and I ran the Computer Lab's entry for the XKCD hashing competition. Whilst we didn't win we did end up in the day's XKCD comic.
  • RoomCaius. Gonville & Caius College had used the same method for assigning rooms to undergraduates since a failed trial in the 1970s. Namely, over three weeks students would skip lectures to go to an office, look through a list of vacant rooms and write their name next to an empty one. I moved this to an online system, RoomCaius, that lets students rate, photograph and ballot for rooms online. The entire process is now completed within a day.
  • Caius foodback. As a chef knowing what people think of your food is hard. To help the chefs at Caius, I built a foodback system that lets students gives a thumbs-up, or thumbs-down to every dish served in the college. Students can also leave (anonymous) comments to the chef to explain what they like, or dislike. This was the first foodback system in an Oxbridge college that lets you Facebook-like individual dishes (perhaps even a world first?).
  • Caius Internet usage monitor. When Internet usage is charged at £10 per gigabyte students become sensitive about how much Internet they use. I used iptables, running on the college firewall to produce a report every time minutes detailing how much Internet each student had used. This fed into email alerts, OSX widgets, and Drupal to inform Caians how much Internet they had used.

Teaching

Supervisions

I currently supervise Algorithms. Please see my supervisions page for information on supervisions.

I have previously supervised Compiler Construction, and Programming for Mobiles.

Ticking

I currently tick ML, Programming in Java, and Further Java.

Revision Notes

Revision notes for some computer science tripos courses are available here. Raven authorisation is required. Please email me to give you access.