Skip to content

Instantly share code, notes, and snippets.

View borkdude's full-sized avatar

Michiel Borkent borkdude

View GitHub Profile
@borkdude
borkdude / Clojure invoked from Java
Last active August 29, 2015 13:56
Clojure invoked from Java, from a simple Maven project with the only dependency being the latest Clojure.
import clojure.java.api.Clojure;
import clojure.lang.IFn;
/**
* Created by Borkdude on 15-02-14.
*/
public class Main {
public static void main(String[] args) {
Object vector = Clojure.read("[1 2 3 4 5]");
user=> (defmacro ^:private my-macaroni []
#_=> `(+ 1 2 3))
#'user/my-macaroni
user=> (my-macaroni)
6
user=> (ns other-user)
nil
other-user=> (user/my-macaroni)
IllegalStateException var: #'user/my-macaroni is not public clojure.lang.Compiler.isMacro (Compiler.java:6412)
user=> (read-string (pr-str (keyword "foo bar")))
:foo
user=> (keyword "foo bar")
:foo bar
user=> (pr-str *1)
":foo bar"
user=> (read-string (pr-str (keyword "foo bar")))
:foo
@borkdude
borkdude / tooltip-om.clj
Last active August 29, 2015 14:06
Add tooltip to Om DOM components showing displayname and contents of cursor and local state
;;; To add a tooltip, write (tooltip {:className "foo"}) instead of #js {:className "foo"}
;;; You can simplify this and just show what you need: #js {:title (pr-str (om/...))}.
;;; testfoo.core (cljs)
(ns testfoo.core
(:require-macros [testfoo.macros :refer (tooltip)])
(:require [om.core :as om :include-macros true]
[om.dom :as dom :include-macros true]
[cljs.reader :as reader]))
@borkdude
borkdude / gist:42b6d35daf96be16e8b7
Created September 24, 2014 08:08
Minimal figwheel snippet
(ns flappy-bird-demo.core
(:require
[sablono.core :as sab :include-macros true]
[figwheel.client :as fw]
[cljs.core.async :refer [<! chan sliding-buffer put! close! timeout]])
(:require-macros
[cljs.core.async.macros :refer [go-loop go]]))
(enable-console-print!)
@borkdude
borkdude / gist:38969e4495f2192b4388
Created February 16, 2015 07:41
Plant based (vegan) whole food low fat recipes
Recipe websites:
http://www.straightupfood.com/
http://www.healthyveganlife.com/
http://www.plantbasedchristian.com/
http://happyherbivore.com/
http://klunkerskitchen.blogspot.nl/
Youtube Channels with recipes:
@borkdude
borkdude / Factors
Created May 23, 2010 18:44
Euler Problem 5 in Clojure
(defn prime? [n]
(cond (= n 2) true
(= n 3) true
:else
(not-any? #(zero? (mod n %))(range (int (Math/sqrt n)) n))))
(def my-primes (filter prime? (iterate inc 2)))
(defn update-or-insert [m k f d]
(if (contains? m k)
(defn force-set [n]
(if (set? n) n
(conj #{} n)))
(merge-with (fn [r l] (conj (force-set r) l)) {:a 1 :b 2} {:a 1 :b 3})
=> {:a #{1}, :b #{2 3}}
(defn siever2 [to-sieve sieved end]
(if (empty? to-sieve) sieved
(let [f (first to-sieve)
r (rest to-sieve)]
(if (> f (Math/sqrt end))
(into sieved to-sieve)
(siever2 (remove #(zero? (mod % f)) r)
(conj sieved f)
end)))))
(dotrace [siever2] (siever2 (range 2 32) [] 31))
public class ButtonOperator extends Button {
/*public ButtonOperator(final CalculatorController controller,
final AbstractOperator op) {
super(op.label);
this.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
controller.processOperator(op);