Skip to content

Instantly share code, notes, and snippets.

View juergenhoetzel's full-sized avatar
🎯
Focusing

Jürgen Hötzel juergenhoetzel

🎯
Focusing
View GitHub Profile
(comment "
SpeedNotes Clojure script, by Torbjørn Marø.
Version 1.0 - 2010.08.17
Clojure version 1.1 (w/Contrib)
======================================================================
Always have it running in a console window to quickly note down stuff
you need to remember - thoughts and ideas you don't want to loose,
but don't want to steal focus away from what you are currently doing
either.
(defun slime-update-namespace ()
"Find the namespace in the current buffer and set the package of
the REPL buffer to PACKAGE."
(interactive)
(let ((package (slime-find-buffer-package)))
(if package
(slime-repl-set-package package)
(call-interactively 'slime-repl-set-package))))
(defconst java-import-regex "^[[:space:]]*import[[:space:]]+\\(.*\\)\\.\\(.*\\);")
(defun clojure-java-import-line-parse (line)
(unless (string-match java-import-regex line)
(error "No import line"))
(let ((package (match-string-no-properties 1 line))
(symbol (match-string-no-properties 2 line)))
(list package symbol)))
(defun clojure-java-import-region (start end)
(defn mapmap
"Return a new map, mapping keys to (keyfn key) and mapping values to
(valfn val)"
([valfn map]
(mapmap identity valfn map))
([keyfn valfn map]
(persistent! (reduce
(fn [c [k v]] (assoc! c (keyfn k) (valfn v)))
(transient {})
map))))
@juergenhoetzel
juergenhoetzel / queens.clj
Created October 18, 2010 21:30
Eight Queens Puzzle (SICP Exercise 2.42) Clojure solution using list comprehension
(ns sicp.queens)
(def empty-board '())
(defn safe?
"Check if queen in last row is safe"
[positions]
(let [[queen-pos & left] positions
k (count positions)
diags-up (map - left (range 1 (inc k)))
@juergenhoetzel
juergenhoetzel / shell-dirtrack-update-buffer-name.el
Created December 2, 2010 20:46
update buffer name when using shell-mode's dirtrack feature
(defadvice shell-cd (after shell-dirtrack-update-buffer-name activate)
(let* ((new-name (generate-new-buffer-name "*shell*"))
(old-name (generate-new-buffer-name (buffer-name))))
(unless (string= new-name old-name)
(rename-buffer new-name))))
@juergenhoetzel
juergenhoetzel / md.clj
Created December 7, 2010 22:12
Message Digest in Clojure
(ns #^{:author "Jürgen Hötzel",
:doc "Message Digest function for Clojure
Usage
(require 'md)
MD5 Checksum String:
(md/digest-str (md/sum \"MD5\" \"/etc/passwd\"))
\"85dbcf75fa3eb92335cc3ac47dfa64c9\""}
md
@juergenhoetzel
juergenhoetzel / swank-autoconnect.el
Created February 17, 2011 16:06
Autoconnect emacs to swank server
(defvar swank-autoconnect-port 4005)
(defvar swank-autoconnect-timer nil)
(defun swank--listeningp ()
(ignore-errors
(let ((p (open-network-stream "SLIME Lisp Connection Test" nil "localhost" swank-autoconnect-port)))
(when p
(delete-process p)
t))))
@juergenhoetzel
juergenhoetzel / mvn
Created February 19, 2011 11:14
Wrapper around original "mvn" Maven executable so you can trigger Maven goals from a subdir
#!/bin/bash
ORIG_MVN=/opt/maven/bin/mvn
while [ ! -r "pom.xml" ] && [ "$PWD" != "/" ]
do
cd ..
done
if [ -r "pom.xml" ]; then
(set! *unchecked-math* true)
(defmacro iloop [[b t n] & body]
`(loop [~@b]
(when ~t
~@body
(recur ~n))))
(defn count-primes [^long n]
(let [c (inc n)