Skip to content

Instantly share code, notes, and snippets.

View ckirkendall's full-sized avatar

Creighton Kirkendall ckirkendall

  • Blue Manta Consulting
  • Cincinnati, Ohio
View GitHub Profile
@ckirkendall
ckirkendall / core.clj
Created May 9, 2018 04:10
Simple Event Simulation in Clojure
(ns sim-cincyfp.core)
(def min (* 1000 60))
(def min5 (* 5 min))
(def min10 (* 10 min))
(def min15 (* 15 min))
(def min30 (* 30 min))
;; ---------------------------------------------------------------------
;; Generating Events
@ckirkendall
ckirkendall / data.json
Last active March 21, 2017 13:50 — forked from ChrisJamesC/data.json
d3js: text in circles + json
{"nodes":[
{"x":80, "r":40, "label":"Node 1"},
{"x":200, "r":60, "label":"Node 2"},
{"x":380, "r":80, "label":"Node 3"}
]}
(ns wine-fun.data
(:require [clojure.java.io :as io]
[clojure.data.csv :as csv]))
(def training-data
(let [data (with-open [in-file (io/reader "data/winequality-data.csv")]
(drop 1 (doall
(csv/read-csv in-file))))
control-count (int (/ (count data) 10))
<security-domain name="other" cache-type="default">
<authorization>
<policy-module code="Delegating" flag="required"/>
</authorization>
</security-domain>
@ckirkendall
ckirkendall / core.clj
Created February 16, 2015 03:39
monadic parser combinators
(ns parser.core
(:require
[clojure.algo.monads :refer [defmonad with-monad state-t m-reduce]]))
(defmonad either-m
[m-result (fn [[side value]] {:side side, :value value})
m-bind (fn [mv mf] (mf [(:side mv) (:value mv)]))])
(defn left [v]
(ns ocr-kata.core
(:require [clojure.java.io :refer [writer reader resource]]))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; we treat this OCR parser similar to a language
;; parser where input into an AST that is
;; transform and tagged by diffrent analysis steps
;; the ast is then passed to an emmiter.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(def numbers {[0 1 0 1 0 1 1 1 1] 0
// After reading the trials and tribulations here
// http://www.learningclojure.com/2014/05/fizz-buzz-interview-question.html?utm_source=dlvr.it&utm_medium=twitter
// I decided to see how easy this is using sum types.
// Anser: Pretty easy. :D
object Program {
def numbers(n: Int): Stream[Int] = Stream.cons(n, numbers(n + 1))
(ns baseball.core
(:require [clojure.core.async :refer (chan >!! <!! >! <! close! go go-loop)]
[clojure.core.match :refer (match)]))
;; http://www.variousandsundry.com/cs/blog/2014/02/20/baseball-processes/
;; It’s like playing catch in the backyard. You don’t want to play by yourself. So you tell a friend
;; to stand about 20 paces away from you. Once they’re there, they wave their arms to be sure you can
;; see them. Having seen them, you throw them the ball. They throw it back as a solid line drive
;; right at your mitt. End of process.
@ckirkendall
ckirkendall / miner.clj
Last active August 29, 2015 13:56
Musing about a game engine
(defprotocol KeyListener
(key [this key-code]))
(defprotocol CollisionListener
(collision [this other]))
(defprotocol BoundsListener
(bounds [this other]))
(defprotocol GravityListener
@ckirkendall
ckirkendall / segments.clj
Last active August 29, 2015 13:56
distilled version of enliven segments as an external lib
(ns segments)
(defrecord Lens [fetch putback])
(defprotocol Segment
(-fetch [seg value])
(-putback [seg value subvalue]))
(defn fetch [value seg]
(-fetch seg value))