Skip to content

Instantly share code, notes, and snippets.

View kyptin's full-sized avatar

Jeff Terrell kyptin

View GitHub Profile
@kyptin
kyptin / core.clj
Created March 22, 2014 21:45
Evaluation of different methods for computing variance
(ns perftest.core
(:require
[clojure.java.io :as io]))
(defn perftest
[]
(with-open [writer (io/writer "times.out")]
(let [bigseq (range 1e8)]
(doall
(for [item bigseq]
@kyptin
kyptin / setup-nested-lein-projects.sh
Last active December 17, 2015 08:09
Setup nested "checkout" projects for Leiningen, to demonstrate the (current) lack of a desired feature.
#!/bin/bash
# Referenced in Leiningen Issue #1180, here:
# https://github.com/technomancy/leiningen/issues/1180
if [ ! -z `ls -A | egrep -v '^(main|child|grandchild|setup-nested-lein-projects.sh)$'` ]; then
echo "Cowardly refusing to continue in a directory with unrecognized files."
exit 0
fi
@kyptin
kyptin / setup-3level-lein-checkouts.sh
Last active December 17, 2015 22:00
Setup 3 levels of nested "checkout" projects for Leiningen, to demonstrate the (current) lack of a desired feature.
#!/bin/bash
# Referenced in Leiningen Issue #1190, here:
# https://github.com/technomancy/leiningen/issues/1190
if [ ! -z `ls -A | egrep -v '^(main|child|grandchild|greatgrandchild|setup-3level-lein-checkouts.sh)$'` ]; then
echo "Cowardly refusing to continue in a directory with unrecognized files."
exit 0
fi
@kyptin
kyptin / make_cdf.clj
Last active May 12, 2016 18:59
Make a CDF (cumulative distribution function) from a seq of numbers in Clojure
(defn make-cdf
"Given a seq of numbers, return a plottable vector of [x,y] pairs
representing the cumulative distribution function.
Ex:
(cdf-data [1 2 1 3])
; => [[1 0] [1 1/2] [2 3/4] [3 1]]"
[xs]
{:pre [(sequential? xs)]}
(let [n (count xs)
uniq-xs (->> xs frequencies (into (sorted-map)))
@kyptin
kyptin / ec2-ssh
Last active May 12, 2016 19:02
SSH to AWS EC2 instance
ec2-ssh ()
{
local host="ec2-user@$1";
local opts;
opts="-i $HOME/TestKeyPair.pem";
opts="$opts -o UserKnownHostsFile=/dev/null";
opts="$opts -o StrictHostKeyChecking=no";
scp $opts ~/aws-bashrc $host:.bashrc && ssh $opts ec2-user@$@
}
@kyptin
kyptin / s3_presigned_url.clj
Last active May 13, 2016 17:35
S3 presigned URLs ready for image upload
(ns s3-presigned-url
"You can pre-sign an S3 path to allow users to access it without credentials.
This gives fine-grained access control with expiration to 'anonymous' (from
the perspective of S3) users. It's a convenient mechanism, if you can get it
to work.
There are some relatively well-trod paths for doing pre-signed S3 URLs, e.g.
when giving read-only access via an HTTP GET request. These paths have more
convenient and well-known mechanisms out there.
@kyptin
kyptin / .block
Created December 7, 2018 14:56 — forked from hannahherbig/.block
Better Quicksort V
license: gpl-3.0

Keybase proof

I hereby claim:

  • I am kyptin on github.
  • I am kyptin (https://keybase.io/kyptin) on keybase.
  • I have a public key ASDD9FgPd0WBlTnf1EGJJlzQ2wQ_WhmtuNRrB5eVH5ZSgwo

To claim this, I am signing this object:

@kyptin
kyptin / before.js
Created October 21, 2019 16:40
Effects refactoring example (UNC COMP 523)
// Goal: assign students to seats
// Usage: node before.js
// Context: UNC COMP 523 (https://comp523.cs.unc.edu)
// Exercise: refactor to manage effects better
const makePref = ([pid, section, isVip]) =>
({pid, section, isVip, isAssigned: false})
const makePrefs = (rows) => rows.map(makePref)
@kyptin
kyptin / behaviors_quiz.clj
Created February 12, 2020 15:24
Code for an in-class quiz (COMP 590/spring 2020) for listing behaviors of a function
;; To write tests for this function, what behaviors would you list?
(defn summation
([xs] (summation identity xs))
([f xs] (reduce + 0 (map f xs))))