Skip to content

Instantly share code, notes, and snippets.

View trishume's full-sized avatar

Tristan Hume trishume

View GitHub Profile
@trishume
trishume / gdb.py
Last active January 29, 2024 20:11
GDB scripting with GEF
import re
import argparse
import re
class InstrTraceBreakpoint(gdb.Breakpoint):
def __init__(self, location, nb_args, *args, **kwargs):
super(InstrTraceBreakpoint, self).__init__(location, gdb.BP_BREAKPOINT, internal=True)
self.silent = True
self.nb_args = nb_args
return
@trishume
trishume / perf.sh
Created September 11, 2023 05:26
perf script to chrome trace
#!/bin/bash
set -eu
TIMESTAMP=`date '+%Y-%m-%d-%H:%M:%S'`;
perf buildid-cache --add /usr/local/lib/librfxencode.so.0
perf buildid-cache --add /usr/local/lib/xrdp/libxrdp.so.0
perf buildid-cache --add /usr/lib/xorg/modules/libxorgxrdp.so
perf buildid-cache --add `which xrdp`
perf probe --del 'sdt_librfxcodec:*' || true
@trishume
trishume / .slate
Created November 20, 2012 22:21
My Slate config
# Configs
config defaultToCurrentScreen true
config nudgePercentOf screenSize
config resizePercentOf screenSize
config secondsBetweenRepeat 0.1
config checkDefaultsOnLoad true
config focusCheckWidthMax 3000
config keyboardLayout dvorak
config windowHintsShowIcons true
config windowHintsIgnoreHiddenWindows false
@trishume
trishume / LatencyTester.ino
Last active July 13, 2021 16:12
Latency Tester and Foot Pedals Teensyduino sketch
// Tristan's Foot Pedals and Latency Tester Arduino Program
// Provides 5 buttons: left click, right click, scroll up, scroll down, latency test
// If you don't want all of these you can comment out the buttons you don't need.
#define BOUNCE_LOCK_OUT
#include <Bounce2.h>
#include "Keyboard.h"
const int scrollInterval = 80;
@trishume
trishume / merlin-sublime-popups.patch
Created March 30, 2017 00:12
Patch to add type inference and definition popups to Sublime Text's Merlin plugin
diff --git a/Packages/Merlin/sublime-text-merlin.py b/Packages/Merlin/sublime-text-merlin.py
--- a/Packages/Merlin/sublime-text-merlin.py
+++ b/Packages/Merlin/sublime-text-merlin.py
@@ -248,6 +248,57 @@
else:
opened_view.run_command("insert_code", { "arg": sig })
+class MerlinInfoPopup:
+ """
+ Pop up a menu at a point describing an expression
@trishume
trishume / etrace.el
Last active October 25, 2020 21:43
See new Github Repo version: https://github.com/aspiers/etrace - Emacs Latency Tracing for the Chromium Catapult Trace Event Format.
;; This gist has been superseded by a Github repo, new activity will
;; happen at https://github.com/aspiers/etrace
;;; etrace.el --- Emacs Lisp Tracer -*- lexical-binding: t -*-
;; Released under the MIT license, Copyright Jane Street Group, LLC
;; This module modifies the instrumentation profiler included with
;; Emacs called "elp" to also record trace events for the beginning
;; and end of function calls, and provides a function to write out
;; those events in Chromium JSON trace format.
;;
@trishume
trishume / 0-sublime.json
Created October 5, 2016 19:05
Current Sublime Text settings
{
"auto_complete_commit_on_tab": true,
"auto_complete_triggers":
[
{
"characters": "<",
"selector": "text.html"
},
{
"characters": ".",
@trishume
trishume / Flagsifier.ipynb
Created May 14, 2018 02:45
DEF CON Quals 2018 Flagsifier Notebook
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@trishume
trishume / DataShipper.cs
Created March 17, 2016 19:04
Tobii EyeX UDP data shipper to VMWare VM host.
// Used to send data from a VMWare VM running the EyeX software
// with a Steelseries Sentry to a Mac OSX host over UDP.
namespace MinimalGazeDataStream
{
using EyeXFramework;
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using Tobii.EyeX.Framework;
@trishume
trishume / gauss.rb
Created February 3, 2015 02:27
Ruby Gaussian Elimination Steps
# Step-By-Step Gaussian Elimination on Augmented Matrices
# By Tristan Hume
require "rational"
def reduce_down(mat)
# Use each row going down to cancel lower rows
# Each iteration of this loop is one step
rows = mat.length
(0..rows-2).each do |ri1|