Skip to content

Instantly share code, notes, and snippets.

View chris-morgan's full-sized avatar

Chris Morgan chris-morgan

View GitHub Profile
@chris-morgan
chris-morgan / result_for.rs
Created February 20, 2014 02:19
A prototype of a `Result<T, E>`-based `Iterator<T, E>` replacing the `Option<T>`-based `Iterator<T>`.
#[feature(macro_rules)];
// There must be two variants of the macro for this simple prototype, each of
// them lacking one important feature and with one remaining feature completely
// infeasible in a macro_rules! macro. Done properly in the compiler these
// would be entirely reasonable.
// A variant with support for an output value from the else clause, but with no
// support for breaking out of the `for` block.
macro_rules! forr1 (
@chris-morgan
chris-morgan / fibonacci.rs
Created March 12, 2014 23:50
An efficient Fibonacci function
static FIBONACCI_NUMBERS: [u64, ..93] = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,
89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657,
46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309,
3524578, 5702887, 9227465, 14930352, 24157817, 39088169, 63245986,
102334155, 165580141, 267914296, 433494437, 701408733, 1134903170,
1836311903, 2971215073, 4807526976, 7778742049, 12586269025, 20365011074,
32951280099, 53316291173, 86267571272, 139583862445, 225851433717,
365435296162, 591286729879, 956722026041, 1548008755920, 2504730781961,
4052739537881, 6557470319842, 10610209857723, 17167680177565,
27777890035288, 44945570212853, 72723460248141, 117669030460994,
@chris-morgan
chris-morgan / keybase.md
Created March 26, 2014 01:36
keybase.md

Keybase proof

I hereby claim:

  • I am chris-morgan on github.
  • I am chrismorgan (https://keybase.io/chrismorgan) on keybase.
  • I have a public key whose fingerprint is 74F4 5385 B466 A428 53A8 F7FC 427A D2C4 BFF0 B2C7

To claim this, I am signing this object:

@chris-morgan
chris-morgan / dm2svg.py
Created December 13, 2011 10:58
Quick dm2svg port from perl to python (even less warranty than the perl version as it's not untested)
#!/usr/bin/env python
import struct
def process_file(filename):
try:
f = open(filename, 'rb')
except IOError as e:
print >> sys.stderr, 'Unable to open %s: %s' % (filename, e)
@chris-morgan
chris-morgan / details.js
Last active April 15, 2019 15:23 — forked from remy/details.js
/**
* Note that this script is intended to be included at the *end* of the document, before </body>
*/
(function (window, document) {
if ('open' in document.createElement('details')) return;
// made global by myself to be reused elsewhere
var addEvent = (function () {
if (document.addEventListener) {
return function (el, type, fn) {