Skip to content

Instantly share code, notes, and snippets.

@Rhomboid
Rhomboid / capsolver.py
Created March 2, 2013 23:33
Capacitance equation solver with Sympy example
from sympy.parsing.sympy_parser import parse_expr
from sympy.solvers import solve
from itertools import zip_longest
def display_results(inputs, solutions):
columns = '{:25} {:25}'.format
print(columns('Input', 'Solutions'),
columns('-' * 25, '-' * 25),
*[columns(i, o) for i, o in zip_longest(
('{} = {}'.format(var, value) for var, value in sorted(inputs.items())),
@Rhomboid
Rhomboid / clipformats.py
Last active November 28, 2019 11:52
Enumerate clipboard formats with Python and Pywin32
import win32clipboard
formats = {val: name for name, val in vars(win32clipboard).items() if name.startswith('CF_')}
def format_name(fmt):
if fmt in formats:
return formats[fmt]
try:
return win32clipboard.GetClipboardFormatName(fmt)
except:
@Rhomboid
Rhomboid / gist:5241203
Created March 25, 2013 22:00
Sudoku recursion output
try 1 at (0, 1)
try 2 at (0, 2)
try 3 at (0, 3)
try 4 at (0, 5)
try 8 at (0, 6)
try 9 at (0, 7)
fail
fail
try 9 at (0, 6)
fail
@Rhomboid
Rhomboid / 20130507.cpp
Created May 8, 2013 04:08
Heterogeneous polymorphic vector sorting example in C++11
#include <string>
#include <iostream>
#include <tuple>
#include <memory>
#include <algorithm>
using namespace std;
typedef tuple<string, int, string> sort_key_t;
class AnimalBase {
@Rhomboid
Rhomboid / 20120512.c
Created May 12, 2013 17:10
Syscall overhead demonstration
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <time.h>
@Rhomboid
Rhomboid / quiz.cpp
Created May 18, 2013 23:57
silly question/answer quiz example (C++11)
#include <string>
#include <vector>
#include <iostream>
#include <fstream>
#include <sstream>
#include <algorithm>
#include <cassert>
using namespace std;
class Quiz {
@Rhomboid
Rhomboid / example.py
Created July 14, 2013 17:21
Very simple lexer/parser for chemical formula
import re
atomic_mass = {
"H": 1.0079, "He": 4.0026, "Li": 6.941, "Be": 9.0122,
"B": 10.811, "C": 12.011, "N": 14.007, "O": 15.999, "F": 18.998,
"Ne": 20.180, "Na": 22.990, "Mg": 24.305, "Al": 26.982,
"Si": 28.086, "P": 30.974, "S": 32.065, "Cl": 35.453,
"Ar": 39.948, "K": 39.098, "Ca": 40.078, "Sc": 44.956,
"Ti": 47.867, "V": 50.942, "Cr": 51.996, "Mn": 54.938,
"Fe": 55.845, "Co": 58.933, "Ni": 58.693, "Cu": 63.546,
@Rhomboid
Rhomboid / markov.cpp
Last active December 19, 2015 21:29
Markov text generator (C++11)
#include <string>
#include <vector>
#include <iostream>
#include <iterator>
#include <unordered_map>
#include <algorithm>
#include <stdexcept>
#include <cassert>
#include <cstdlib>
#include <ctime>
@Rhomboid
Rhomboid / gist:6020867
Last active October 22, 2017 22:18
x86_64/amd64 mov instruction variations
Opcode Instruction Op/ 64-Bit Compat/ Description
En Mode Leg Mode
88 /r MOV r/m8, r8 MR Valid Valid Move r8 to r/m8.
REX + 88 /r MOV r/m8, r8 MR Valid N.E. Move r8 to r/m8.
89 /r MOV r/m16, r16 MR Valid Valid Move r16 to r/m16.
89 /r MOV r/m32, r32 MR Valid Valid Move r32 to r/m32.
REX.W + 89 /r MOV r/m64, r64 MR Valid N.E. Move r64 to r/m64.
8A /r MOV r8, r/m8 RM Valid Valid Move r/m8 to r8.
REX + 8A /r MOV r8, r/m8 RM Valid N.E. Move r/m8 to r8.
@Rhomboid
Rhomboid / gist:6185478
Created August 8, 2013 15:13
Chromium Blink license analysis
bsd_2clause_ish AbstractDatabaseServer.h
bsd_2clause_ish AbstractSQLStatementBackend.h
bsd_2clause_ish AbstractSQLStatement.h
bsd_2clause_ish AbstractSQLTransactionBackend.h
bsd_2clause_ish AbstractSQLTransaction.h
bsd_2clause_ish AccessibilityMockObject.cpp
bsd_2clause_ish AccessibilityMockObject.h
lgpl AccessibilityProgressIndicator.cpp
lgpl AccessibilityProgressIndicator.h
bsd_2clause_ish AccessibilityScrollView.cpp