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
@juergenhoetzel
juergenhoetzel / CustomFilteringEvaluator.java
Created June 19, 2012 18:11
Neo4J in Action (revised CustomFilteringEvaluator)
import org.neo4j.graphdb.traversal.Evaluator;
import org.neo4j.graphdb.traversal.Evaluation;
import org.neo4j.graphdb.*;
// exclude Movies seen by userNode
public class CustomFilteringEvaluator implements Evaluator {
private RelationshipType hasSeenRelationshipType = DynamicRelationshipType.withName("HAS_SEEN");
private final Node userNode;
public CustomFilteringEvaluator(Node userNode) {
this.userNode = userNode;
@juergenhoetzel
juergenhoetzel / account.clj
Created May 3, 2012 14:55
Well-Grounded Java Developer: Account example revised
(defn make-account [name balance]
{:name name :balance balance})
(defn withdraw [account n]
(update-in account [:balance] - n))
; Single-Treaded withdraw/loop
(loop [a (make-account "Ben" 5000)]
(Thread/sleep 1)
(if (pos? (:balance a))
@juergenhoetzel
juergenhoetzel / slime-cygwin.el
Created April 17, 2012 18:30
Slime Windows-Unix-Path translation (Cygwin)
(require 'clojure-mode "clojure-mode" t)
(require 'slime t)
(when (eq system-type 'cygwin)
(add-hook 'slime-connected-hook (lambda ()
(setq slime-to-lisp-filename-function (lambda (filename)
(replace-regexp-in-string
"\n" "" (shell-command-to-string
(format "cygpath.exe --windows %s" filename))))
slime-from-lisp-filename-function (lambda (filename)
@juergenhoetzel
juergenhoetzel / reopen-sudo.el
Created May 11, 2011 14:57
Reopen file visited in current buffer using tramp-sudo
(defun reopen-sudo ()
(interactive)
(unless (file-remote-p (buffer-file-name))
(find-file (tramp-make-tramp-file-name "sudo" "root" "localhost" (buffer-file-name)))))
(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)
@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
@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 / 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 / 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 / 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)))