Skip to content

Instantly share code, notes, and snippets.

Tristan Hume trishume

Block or report user

Report or block trishume

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
trishume / Flagsifier.ipynb
Created May 14, 2018
DEF CON Quals 2018 Flagsifier Notebook
View Flagsifier.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
trishume / burn.rb
Created Jul 18, 2017
CPU load tester for Sublime
View burn.rb
# Sublime load test for
# On my 15" 2016 rMBP:
# 4 is not noticeable
# 8 is noticeable and just barely keeps up with typing
# 20 lags way behind my typing
def compute_things()
sum = 0
10_000.times do |i|
trishume /
Created Jul 5, 2017
Faster Rust benchmark that still gives no information
pub fn suffix_vec_ref(s: &str) -> Vec<&str> {
let mut vec = Vec::with_capacity(s.len());
let mut slice = &s[1..];
while !slice.is_empty() {
slice = &slice[1..];
trishume / merlin-sublime-popups.patch
Created Mar 30, 2017
Patch to add type inference and definition popups to Sublime Text's Merlin plugin
View merlin-sublime-popups.patch
diff --git a/Packages/Merlin/ b/Packages/Merlin/
--- a/Packages/Merlin/
+++ b/Packages/Merlin/
@@ -248,6 +248,57 @@
opened_view.run_command("insert_code", { "arg": sig })
+class MerlinInfoPopup:
+ """
+ Pop up a menu at a point describing an expression
trishume / unix201.txt
Created Mar 22, 2017
CS Club Unix 201 Content
View unix201.txt
Unix 201:
☐ Man pages (including searching)
☐ The internet
Customizing your prompt:
☐ Basic PS1
☐ Fancy stuff
☐ Basics
☐ ranger-cd
trishume /
Last active Jan 4, 2017
PackageJsonForCompilers/Esy and Nix

This is a response to a tweet by @jordwalke asking me about Nix and PackageJsonForCompilers. Twitter is too short form to answer well, so I wrote up some thoughts here. I might turn this into a blog post at some point.


Nix is a package manager, but also a meta-build system and deployment system. It works based off a global /nix/store/ folder where everything is stored keyed by a hash of its description and the description of all its dependencies. This way you can have multiple versions of any package, and not only that different copies of the same version compiled against different versions of its dependencies or with different compile flags. All dependencies must be fully specified and the way the building works enforces this completely. This way completed binaries can be served from a "cache" with no issue. This gives the best of source-based package managers and binary ones.

The way it handles build vs. runtime depe

trishume / 0-sublime.json
Created Oct 5, 2016
Current Sublime Text settings
View 0-sublime.json
"auto_complete_commit_on_tab": true,
"characters": "<",
"selector": "text.html"
"characters": ".",
trishume /
Created Aug 8, 2016
Canada Basic Income Calculations

Basic Income

Calculations done by Tristan Hume for a public policy class report.

basic income = $10,000/year

number of adult citizens = 27131010 => 27,131,010 total cost = number of adult citizens * basic income => $271,310,100,000/year

Stuff in Canada that could be eliminated

trishume / FittsTaskTwo.cfg
Created Jul 22, 2016
My Fitts' law applet settings
View FittsTaskTwo.cfg
# Above goes participant \n condition \n block
# ----------------------------------------
# Configuration arguments for FittsTaskTwo
# ----------------------------------------
# -----
# PARTICIPANT CODE (part of output data file names)
# P21
trishume / datasummary.rb
Created Mar 24, 2016
Summarize FittsTaskTwo task output data
View datasummary.rb
# Summarizes data produced by my FittsTaskTwo fork
require "csv"
data = []
Dir["FittsStudy/FittsTaskTwo-P*-C*-B*-sd2.csv"].each do |f|
_, p, c, b = /FittsTaskTwo-P(.*)-C(.*)-B(.*)-sd2\.csv/.match(f).to_a
table =, headers: true)
tps = table["TP(bps)"].map { |e| e.to_f }
avg_tp = (tps.inject(:+) / tps.size).round(3) unless tps.empty?
data << [c, p, b, avg_tp]
You can’t perform that action at this time.