Skip to content

Instantly share code, notes, and snippets.

View zentrope's full-sized avatar

Keith Irwin zentrope

  • Portland, Oregon
View GitHub Profile
(loop [sec 0
good 0]
(let [{:keys [out exit] :as result} (ping! host)]
(print (if (zero? exit) "#" "."))
(flush)
(let [new-sec (inc sec)
clear? (= new-sec 60)
new-good (if (zero? exit) (inc good) good)]
(when clear?
(println (summarize good)))
@zentrope
zentrope / loopy.clj
Last active August 29, 2015 13:56
two async loops for pinging a host
(ns cping.core
(:gen-class)
(:require [clojure.java.shell :as shell :refer [sh]]
[clojure.core.async :refer [queue go-loop timeout chan <! put!]]))
(defn- ping!
"Use the shell to ping the given host"
[host]
(sh "ping" "-W" "1" "-c" "1" host))
@zentrope
zentrope / pg_datomic.sh
Created February 25, 2014 23:25
Postgres sandbox control script sort of.
#!/bin/bash
db="${PWD}/data"
log_file="${db}/postgres.log"
port=9999
#------------------------------------------------------------------------------
function is_alive() {
result=$(pg_ctl status -p ${port} -D ${db} | grep "server is running")
@zentrope
zentrope / shared.cljs
Last active August 29, 2015 13:57
get-shared not working?
(ns tag.main
(:require
[om.core :as om :include-macros true]
[om.dom :as dom :include-macros true]))
(defn- header-component
[state owner]
(om/component
(dom/section nil
(dom/h1 nil "Hello!")
(defn- handle-change
[e owner field]
(om/set-state! owner field (value! owner (name field))))
(defn- handle-submit
[state owner]
(om/set-state! owner :error-msg "")
(let [{:keys [user pass]} (om/get-state owner)
creds {:user user :pass pass}
response (chan)]
(set-env!
:src-paths #{"src" "src-cljs"}
:rsc-paths #{"resources"}
:dependencies '[[org.clojure/clojure "1.7.0-alpha3"]
[org.clojure/core.async "0.1.346.0-17112a-alpha"]
[compojure "1.2.1"]
[http-kit "2.1.19"]
[org.clojure/data.json "0.2.5"]
[org.clojure/tools.logging "0.3.1"]
[ch.qos.logback/logback-classic "1.1.2"]
;; -*- mode: clojure; -*-
(set-env!
:src-paths #{"src/clj" "src/cljs"}
:rsc-paths #{"resources"}
:update :always
:dependencies '[[org.clojure/clojure "1.7.0-alpha4"]
[org.clojure/core.async "0.1.346.0-17112a-alpha"]
[com.taoensso/timbre "3.3.1-1cd4b70"]
[http-kit "2.1.19"]
@zentrope
zentrope / fs.clj
Created January 14, 2015 05:54
file system utils
(ns lib.fs
;;
;; File system utilities
;;
(:require
[clojure.string :refer [lower-case join trim]]
[clojure.java.io :as io])
(:import
[java.util.zip ZipInputStream]))
@zentrope
zentrope / file-backed-atom.clj
Created March 18, 2015 01:25
File backed atom.
(ns afile.core
(:require
[clojure.edn :as edn]
[clojure.pprint :refer [pprint]]
[clojure.test :refer [deftest is run-tests]]))
(defn- load-file!
[fname init-value]
(let [f (java.io.File. fname)]
(if (.exists f)