Skip to content

Instantly share code, notes, and snippets.

@thickey
thickey / nrepl-eval-form-to-repl.el
Last active December 28, 2015 17:09
A little bit of elisp for outputting the form in the repl buffer in front of output. (a la Tim Baldridge's Clojure/conj 2013 core.async presentation).
;; Works with nrepl-0.1.6.el
(defun my-form-printing-handler (buffer form)
(lexical-let ((form form))
(nrepl-make-response-handler buffer
(lambda (buffer value)
(nrepl-emit-result buffer (format "%s" form) t)
(nrepl-emit-result buffer (format "%s" value) t))
(lambda (buffer out)
(nrepl-emit-output buffer out t))
@thickey
thickey / rps.clj
Last active December 19, 2015 14:29 — forked from puredanger/rps.clj
;; An implementation of the rock-paper-scissors variant -
;; rock-paper-scissors-lizard-spock - based on Alex Miller's core.async
;; implementation.
;; - http://tech.puredanger.com/2013/07/10/rps-core-async/
;; - https://gist.github.com/puredanger/5965883
;; - https://github.com/relevance/labrepl/blob/master/src/solutions/rock_paper_scissors.clj
;; - http://www.imdb.com/title/tt1256039/quotes?item=qt0493730
(require 'clojure.core.async :refer :all)
(ns dinesman
(:refer-clojure :exclude [==])
(:use clojure.core.logic))
(defne aboveo [x y l]
([_ _ [y . r]]
(membero x l))
([_ _ [z . r]]
(!= z y)
(aboveo x y r)))
@thickey
thickey / gist:3896845
Created October 16, 2012 01:53 — forked from stuarthalloway/gist:3068749
datomic-clojure-relational-algebra-2012-07-07
;; Datomic example code
;; Demonstrates using datalog with Clojure defrecords
(use '[datomic.api :only [q db] :as d])
;;; http://www.lshift.net/blog/2010/08/21/some-relational-algebra-with-datatypes-in-clojure-12
(defrecord Supplier [number name status city])
(defrecord Part [number name colour weight city])
(defrecord Shipment [supplier part quantity])
;; sample data
@thickey
thickey / gist:3827215
Created October 3, 2012 14:29 — forked from stuarthalloway/gist:2645453
Datomic queries against Clojure collections
;; Datomic example code
(use '[datomic.api :only (db q) :as d])
;; ?answer binds a scalar
(q '[:find ?answer :in ?answer]
42)
;; of course you can bind more than one of anything
(q '[:find ?last ?first :in ?last ?first]
"Doe" "John")
@thickey
thickey / pom.xml
Created September 7, 2012 20:52
Trying out zi 0.5.4
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>test</artifactId>
<packaging>jar</packaging>
<version>0.1.0-SNAPSHOT</version>
<name>test</name>
<description>FIXME: write description</description>
<url>http://example.com/FIXME</url>
@thickey
thickey / ember-precompile.js
Created June 25, 2012 19:55 — forked from zilkey/ember-precompile.js
Precompile .handlebars templates with node js
var fs = require('fs');
var vm = require('vm');
var emberjs = fs.readFileSync('public/javascripts/vendor/ember-0.9.5.min.js', 'utf8');
var templatesDir = 'templates';
var destinationDir = 'public/javascripts/templates';
function compileHandlebarsTemplate(templatesDir, fileName) {
var file = templatesDir + '/' + fileName;
@thickey
thickey / info.md
Created March 8, 2012 14:54
Lein not finding clojars artifacts
  • lein2 version (grabbed prior to adding plugins to profiles.clj): Leiningen 2.0.0-preview1 on Java 1.6.0_26 Java HotSpot(TM) 64-Bit Server VM
  • this same setup works on one machine and not another
  • swap [lein-swank "1.4.3"] for [lein-immutant "0.5.2"] or any other clojars artifacts and it still fails
@thickey
thickey / pom2proj.clj
Created March 7, 2012 01:36
Convert Maven pom.xml file to Lein project.clj
(ns pom2proj
(:require [clojure.xml :as xml]
[clojure.zip :as zip]
[clojure.java.io :as io]
[clojure.data.zip.xml :as zx])
(:use [clojure.pprint :only [pprint]]))
(defn- text-attrs
[loc ks]
(map (fn [k]
@thickey
thickey / backbone-0.9.1.js
Created February 16, 2012 21:00
Externs for Backbone.js and Underscore.js
/*
* @fileoverview Externs for backbone-0.9.1.js
*
* built with http://www.dotnetwise.com/Code/Externs/index.html
* see also: http://blog.dotnetwise.com/2009/11/closure-compiler-externs-extractor.html
* via: http://code.google.com/p/closure-compiler/wiki/FAQ#How_do_I_write_an_externs_file?
*
* Note: when building via that page, you first need to load in underscrore.js, as that's a dependency.
* also, after running the extern for Backbone, you need to manually run it for: