Skip to content

Instantly share code, notes, and snippets.

@maruks
maruks / avalanch.clj
Created October 31, 2012 23:09
code from LSCC October Hands-on session - Experimenting with self organized criticality
(def size 50)
(def avalanche-threshold 3)
(def empty-table (vec (repeat size (vec (repeat size 0)))))
(defn adjacent-cells [x y]
(filter #(and (not (neg? (first %))) (not (neg? (second %))) (< (first %) size) (< (second %) size))
(list [x (inc y)] [x (dec y)] [(inc x) y] [(dec x) y])))
(defn avalanche [table cells-to-increment avalanches]
@maruks
maruks / fibo_dojo.clj
Created November 19, 2012 21:41
London Code Dojo Late Nov
(ns sandbox.fibo-dojo)
(def fib (cons 1 (cons 2 (lazy-seq (map + (rest fib) fib)))))
(def indexes (iterate inc 0))
(defn cons-one? [xs prev]
(if (seq xs)
(if (and (= 1 prev) (= (first xs) prev)) true
(cons-one? (rest xs) (first xs)))))
@maruks
maruks / fibo_dojo.clj
Created November 20, 2012 12:00
Zeckendorf's_theorem in clojure
(ns sandbox.fibo-dojo)
(def fib (cons 1 (cons 2 (lazy-seq (map + (rest fib) fib)))))
(def indexes (iterate inc 0))
(defn cons-one? [xs prev]
(if (seq xs)
(if (and (= 1 prev) (= (first xs) prev)) true
(recur (rest xs) (first xs)))))
-module('shake').
-import(lists,[reverse/1]).
-define(FILENAME,"/Users/maris/Documents/pg1000.txt").
%% API exports
-compile(export_all).
insert(Children, [X | Xs]) ->
I = maps:get(X, Children, #{}),
maps:put(X, insert(I, Xs), Children);
@maruks
maruks / dojo.erl
Created December 1, 2015 15:41
London Code Dojo 34
-module(dojo).
-import(lists,[nth/2,split/2,delete/2]).
-compile([export_all]).
deck() ->
[ {Rank, Suit} || Suit <- [hearts, spades, clubs, diamonds] , Rank <- [ace, king, queen, jack, 10, 9 ,8 ,7 , 6, 5 ,4 ,3 ,2] ].
shuffle([]) ->
[];
shuffle(Xs) ->
@maruks
maruks / init.el
Created October 15, 2013 22:12
emacs lisp function that compiles current buffer and runs speclj tests in repl buffer
(defun compile-run-tests (arg)
(interactive "P")
(let ((oldbuf (current-buffer)))
(save-buffer)
(nrepl-load-current-buffer)
(nrepl-switch-to-relevant-repl-buffer nil)
(insert "(run-specs)")
(nrepl-return)
(unless arg
(switch-to-buffer-other-window oldbuf))))
@maruks
maruks / init.el
Created October 18, 2013 12:43
displays value of lest sexp in a popup
(defun eval-popup (arg)
(interactive "P")
(let* ((result (nrepl-eval (nrepl-last-expression)))
(val (plist-get result :value))
(err (plist-get result :stderr)))
(pos-tip-show
(or val err))))
(eval-after-load 'clojure-mode
'(define-key clojure-mode-map (kbd "\e\ee") 'eval-popup))
@maruks
maruks / sort.erl
Created December 29, 2015 21:41
quick sort
qsort([]) ->
[];
qsort([H | T]) ->
L = [E || E <- T, E < H],
R = [E || E <- T, E > H],
P = [E || E <- T, E =:= H],
qsort(L) ++ [H | P] ++ qsort(R).
@maruks
maruks / enc-flac.sh
Created December 7, 2013 22:20
WAV->FLAC encoding/tagging script
!/usr/bin/env ruby
if ARGV.length < 4
puts "Usage: enc-flac artist year album picture"
exit
end
artist = ARGV[0]
date = ARGV[1]
album = ARGV[2]
@maruks
maruks / enc-mp3.sh
Created December 7, 2013 22:24
WAV->MP3 encoding/tagging script
!/usr/bin/env ruby
if ARGV.length < 4
puts "Usage: enc-mp3 artist year album picture"
exit
end
artist = ARGV[0]
date = ARGV[1]
album = ARGV[2]