Skip to content

Instantly share code, notes, and snippets.

View etosch's full-sized avatar

Emma "Frank" Tosch etosch

View GitHub Profile
@etosch
etosch / gist:6076049
Created July 25, 2013 01:05
binary number stuff
(* Exercise: 4 stars, recommended (binary)
Consider a different, more efficient representation of natural numbers using a binary
rather than unary system. That is, instead of saying that each natural number is either
zero or the successor of a natural number, we can say that each binary number is either
zero,
twice
@etosch
etosch / app_ass4
Created July 12, 2013 21:20
From the list chapter in the Coq book.
(* There is a short solution to the next exercise.
If you find yourself getting tangled up, step back and try to look for a simpler way. *)
Theorem app_ass4 : forall l1 l2 l3 l4 : natlist,
l1 ++ (l2 ++ (l3 ++ l4)) = ((l1 ++ l2) ++ l3) ++ l4.
Proof.
intros l1 l2 l3 l4.
Theorem app_right : forall l1 l2 l3 : natlist,
l1 ++ (l2 ++ l3) = (l1 ++ l2) ++ l3.
Proof.
@etosch
etosch / crash report
Created March 24, 2013 23:08
This makes me a l33t h4x0r, right?
0 clang 0x0000000100c539f2 main + 12919346
Stack dump:
0. Program arguments: /usr/bin/clang -cc1 -triple x86_64-apple-macosx10.8.0 -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -main-file-name Parser.cpp -pic-level 2 -mdisable-fp-elim -masm-verbos\
e -munwind-tables -target-cpu core2 -target-linker-version 136 -g -coverage-file /Users/etosch/dev/memstashed/parser.o -resource-dir /usr/bin/../lib/clang/4.2 -I . -fmodule-cache-path /var/folders/wp/rsvsklwn1l\
73jm32n3_lqqb00000gr/T/clang-module-cache -Wno-write-strings -std=c++11 -fdeprecated-macro -fdebug-compilation-dir /Users/etosch/dev/memstashed -ferror-limit 19 -fmessage-length 0 -stack-protector 1 -mstackreal\
ign -fblocks -fobjc-runtime=macosx-10.8.0 -fobjc-dispatch-method=mixed -fobjc-default-synthesize-properties -fcxx-exceptions -fexceptions -fdiagnostics-show-option -o parser.o -x c++ Parser.cpp
1. <eof> parser at end of file
2. Per-file LLVM IR generation
3. Parser.cpp:53:10: Generating code for declaration '<anonym
@etosch
etosch / server.cc
Created March 9, 2013 01:17
Sample code for how to use simplesocket.cc
#include "simplesocket.h"
#include <sstream>
int main(int argc, char * argv[]){
// continually transmit something here
int port;
stringstream(argv[1]) >> port;
serversocket * s = new serversocket(port, -1, true);
char buffer[256];
while (!strcmp(buffer,"")) {
@etosch
etosch / socktest.cc
Created March 9, 2013 01:11
Sample code for how to use simplesocket.cc
#include "simplesocket.h"
int main(int argc, char * argv[]){
int port;
stringstream(argv[1]) >> port;
clientsocket * s = new clientsocket("localhost", port);
printf("3:%d\n", s->connect());
s->write("asdf", 256);
s->close();
}
Require Import List.
Require Import EqNat.
Definition alist := list (nat * bool).
Fixpoint in_assignment n (a : alist) : Prop :=
match a with
| nil => False
| (h,_)::t => if beq_nat n h
then True
@etosch
etosch / paths.clj
Last active August 29, 2015 14:01
Find paths through the survey
(defn get-dag
[blockList]
"Takes in a list of Blocks; returns a list of lists of Blocks."
(if (empty? blockList)
'(())
(let [^Block this-block (first blockList)]
(if-let [branchMap (and (.branchQ this-block) (.branchMap (.branchQ this-block)))]
(let [dests (set (vals branchMap))
blists (map (fn [^Block b] (drop-while #(not= % b) blockList)) (seq dests))]
(map #(flatten (cons this-block %)) (map get-dag blists))
function depth
input : A survey block
output : integer indicating depth
begin
idArray <- block id as an array
return length(idArray)
end
@etosch
etosch / turn_off_breakoff_notice.js
Created February 28, 2014 01:26
The `showBreakoffNotice` function displays a notice to the respondent stating that they are allowed to submit results early and will be compensated more for more work and better results. If the user wishes to remove this feature, the following can be added to `custom.js.` Changes to the breakoff notice can be added directly to this function.
sm.showBreakoffNotice = function () {
sm.showFirstQuestion();
};
sm.showBreakoffNotice();