Skip to content

Instantly share code, notes, and snippets.

View eraserhd's full-sized avatar

Jason Felice eraserhd

View GitHub Profile
@eraserhd
eraserhd / crack.sh
Created October 22, 2012 14:53
ALL the words
#!/bin/bash
while read word
do
printf 'Trying:%s\n' "$word"
openssl pkcs12 -info -in ../prod_eriemobile.p12 -password pass:"$word" 2>/dev/null </dev/null
done
+ (void)load
{
[self textFieldsCycleInThisOrder:@[@"_name", @"_address", @"_phone"]];
}
@eraserhd
eraserhd / fizzbuzz.scm
Created January 10, 2013 21:37
FizzBuzz from the (fun (with Scheme)) open space at CodeMash
;; FizzBuzz
(define-macro (expect . args)
(if (= 2 (length args))
(let ((message (car args))
(test-expression (cadr args)))
`(if (not ,test-expression)
(raise ,message)))
`(if (not ,(car args))
(raise ',(car args)))))
// Yields the approximate result of a division by 1000.
// NOTE: Can only be used for numbers less than 140,737,488,290
unsigned long quickDiv1000(unsigned long num)
{
unsigned long result;
result = num * 65 + (num >> 2) + (num >> 5) + (num >> 8)+ (num >> 11) + 32768;
return (result >> 16);
}
@eraserhd
eraserhd / flow.scm
Created January 31, 2013 02:59
A brute force solver for flow. This one doesn't do pruning so it can't handle large or complicated boards, but it can solve 5x5 boards pretty quickly.
;; Digits
(define (digit? c)
(and (char>=? c #\0)
(char<=? c #\9)))
(define (digit->integer c)
(- (char->integer c)
(char->integer #\0)))
@eraserhd
eraserhd / generator.scm
Last active December 15, 2015 12:59
Breaking my brain with continuations.
(define (make-generator proc)
(define restart #f)
(define (generator)
(call/cc
(lambda (return-c)
(define (return v)
(set! return-c (call/cc
@eraserhd
eraserhd / generics#.scm
Last active December 16, 2015 12:38
Generic functions for Gambit Scheme... in just 45 lines of code.
(namespace ("generics#"
dispatch-generic
generic-methods-box
))
(define-macro (define-generic form)
`(define ,(car form)
(let (($methods (box '())))
(lambda args
(dispatch-generic (unbox $methods) args)))))
(defstruct start-options
pivotal-story-id)
(defun parse-start-args (args)
(loop with options = (make-start-options)
until (null args)
do (cond
((equalp "-p" (first args))
(setf (start-options-pivotal-story-id options) (second args))
(setf args (cddr args)))
(defmacro binary (infix-op &key is)
(let ((pattern (cond
((not is)
`(,infix-op :left :right))
((symbolp is)
`(,is :left :right))
(t
is))))
`(cons ,infix-op #'(lambda (left right)
`( ; BRAIN FAIL HERE.
(require 'cl-test-more)
(defpackage infix
(:use :cl :cl-test-more))
(in-package :infix)
(defun simple-binary (sym)
#'(lambda (left right)
(list sym left right)))