I am a student developer interested in programming, finance and electronics.
I write Rust, Ruby, iPad, Qt and JS apps for fun, work and homework.
I’m currently studying CS at the University of Waterloo.
About Me
Personal Projects
These are some of my personal software projects.
- StashLine
- An iPad app for personal finance planning.
- IndexView
- A web app for visualizing long term stock market data.
- Rate With Science
- A fun web app for path finding the Wikipedia link graph.
- The Open Turing Compiler
- An LLVM-based compiler for Turing and an associated Qt-based editor.
- Dayder
- A fun web app for quickly finding spurious correlations in 390,000+ data sets.
- Syntect
- A Rust library for fast high quality syntax highlighting using Sublime Text’s grammar format.
- DoubleVision
- A ruby gem that that manipulates PNG files to create magic thumbnails.
- Pro
- A Ruby command line tool for managing Git repositories.
Recent Blog Posts
Stuff I’ve Done
This is a list of the things I have worked on and am currently working on. It is in kind of chronological order. I will try and write down all the things I have worked on. Unfortunately I don’t remember many of the things I worked on in years gone by.
2017
- Organized a short talks event for the Waterloo CS Club and gave a talk version of my article on dynamic programming as path finding.
- Wrote Enfasten, a tool that transforms a static site into one that uses optimized responsive images.
- Helped reverse engineer the protocol of a commercial eye tracker, wrote a Wireshark dissector for their custom data format to aid understanding USB pcaps.
- Attended Hack The North 2017, where I made Quickdown, a fast lightweight markdown renderer from scratch using Rust and Webrender.
- Made a web app that creates an RSS feed of interesting Hacker News comments.
- Fixed some bugs and reviewed PRs for syntect.
- Made an example of integrating WebRender with the new glutin with live resizing windows on macOS.
- Fixed some bugs in nvAlt involving indented lists.
- Added an API to Hammerspoon for counting and switching macOS tabs.
- Wrote an example program of using my A*-based approach to diffing.
- Developed a Sublime Text command for folding all function bodies in a file so that you can read the type signatures and doc comments like generated documentation or a header file.
- Made a small web app for doing common normal distribution related calculations.
- Started working on the Xi text editor for my internship at Google.
- Started working on Vizwl a simple program for easily creating debug visualizations from any language.
- Helped start NeoVintageous, a fork of the abandoned Sublime Vim emulation package, and contributed some fixes and updates.
- Fixed a whole bunch of parsing bugs in syntect found by running the Sublime Text syntax tests with it.
- Gave a talk on advanced Unix commands, programs and scripting for a CS Club “Unix 201” event I ran.
- Gave a talk on how text editors do syntax highlighting for “Alt+Tab”, a short talks event I ran for the CS Club.
- Volunteered as the Vice President of the Waterloo Computer Science Club. Organized and ran a number of events for them.
- Experimentally ported syntect to fancy-regex, a pure Rust regex library that avoids catastrophic backtracking.
- Implemented a bunch of operating system features like pids, forking, exec, allocation and paging for the UWaterloo CS350 class
2016
2015
2014
- Wrote a program that allows overlaying dots anywhere on the screen, intended to be used to provide hints for use with an eye tracker.
- Developed an algorithm for detecting the noise of lips popping fairly accurately, intended for UI control uses.
- Wrote a window hints module for Mjolnir for SE hack day.
- Started using Spacemacs and contributing many PRs, making me the #2 contributor.
- Finished the VeloType implementation for my keyboard, started practicing.
- Started learning Emacs and contributing daily to open source Emacs projects like Spacemacs.
- Participated in Hack The North and developed Handquake.
- Wrote a command line tool for Waterloo Watcard info.
- Started attending the University of Waterloo.
- Built the electronics and firmware for my DIY keyboard.
- Released IndexView on Mr. Money Mustache.
- Designed and built a custom keyboard case out of layered acrylic.
- Wrote a tool for graphing and analyzing long term market returns.
- Gave a talk at Ottawa Ruby on the Ruby Standard Library
- Used 3D printing to prototype a concept for magnetic levitation hall effect keyboard switches.
- Forked the ranger file manager to work better with OSX, creating MacRanger.
- Extended ranger file manager to support images and file icons on OSX.
- Went to the ECOO programming contest finals and came 4th (1st in region).
- Spent most of the winter finishing up and releasing my app StashLine
- Wrote a graphing program that follows all the school science rules.
2013
- Made a program to generate function art for my math summative.
- Started work on a personal finance iPad app.
- Gave a lightning talk at Ottawa Ruby about writing Ruby Gems.
- Worked at Shopify over the summer.
- Integrated Pro into the Sublime Text editor via a plugin.
- Wrote Pro, a tool for managing Git repos.
- Won the Ottawa AppJam for my Turing Compiler and IDE, which I polished and linked together.
- Went to the ECOO programming contest finals and came 5th.
2012
2011
2010
- Porting the linux program to interface with my watch (Timex DataLink) to the mac.
- Object tracking using the webcam in haxe
- Ruby data analysis framework for use in programming contests.
- Turing browser for programming class assignement.
- Google Code Jam 2011 Qualification Round.
- 3D engine in Turing for programming class.
- Bell HS map
- Base for a neural network based AI for ultimate tic-tac-toe
- Psychological research iPad app for a professor at Carleton University
- Partial data-analysis program for my EEG
2009 (Grade 8)
- iPhone app for my XML-based personal data sync and organization system.
- Ruby framework for my XML-based personal data sync and organization system.
- Ultimate tic-tac-toe Java applet.
- My science fair project on building an EEG. Won gold medal and a trip to the national science fair. http://tristan.hume.ca/distribute/Brainwaves%20(Tristan%20Hume).pdf
- Ajax and php web app for my XML-based personal data sync and organization system.
2008
- Science fair project on Galvanic Skin Response. Won gold medal in regional science fair.
- Flash platformer with procedurally generated levels.
- Redesign of tristan.hume.ca
- Bob escape platformer, a tiling platformer written based on a flash tutorial on tiling game engines.
- Taught small course on creating web pages to Grade 4-6 kids at my school.
2005
- Started learning to program by writing crappy websites with HTML and JS.