Skip to content

Instantly share code, notes, and snippets.

@ummels
ummels / mydiss.cls
Last active March 27, 2024 14:56
Class file for my PhD thesis
% Copyright (c) 2010 Michael Ummels <michael@ummels.de>
%
% Permission to use, copy, modify, and/or distribute this software for any
% purpose with or without fee is hereby granted, provided that the above
% copyright notice and this permission notice appear in all copies.
%
% THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
% WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
% MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
% ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
@ummels
ummels / dijkstra.clj
Last active March 27, 2024 07:33
Dijsktra's shortest-path algorithm in Clojure
(require '[clojure.data.priority-map :refer [priority-map]])
(defn map-vals [m f]
(into {} (for [[k v] m] [k (f v)])))
(defn remove-keys [m pred]
(select-keys m (filter (complement pred) (keys m))))
(defn dijkstra
"Computes single-source shortest path distances in a directed graph.
;; ummels's solution to Palindromic Numbers
;; https://4clojure.com/problem/150
(fn [n]
(letfn [(decode [n] (if (< n 10) [n] (conj (decode (quot n 10)) (rem n 10))))
(encode [x] (reduce #(+ (* % 10) %2) 0 x))
(next-pal [n]
(let [N (decode n)
l (count N)
d (quot l 2)
val m = Map(0 -> 'a')
for (n <- 0 until 2) {
m.get(n) match {
case Some(x) => println(s"Value found for key $n: $x")
case None => println(s"No value found for key $n")
}
}
@ummels
ummels / Tram-BS.md
Last active November 9, 2015 15:29
Tram Braunschweig Werbeliste

Tram Braunschweig Werbeliste

Fahrzeugliste

GT6S (AEG/LHB)

9551 grau-weiß
9552 Fliesen Winter
9553 Schwarzer Herzog/Wolters Pilsener
9554 Mc V

@ummels
ummels / fontforge.patch
Created August 21, 2012 20:56
Patch for compiling FontForge under OS X 10.7
diff --git a/fontforge/macbinary.c b/fontforge/macbinary.c
index a452d5b..d90f567 100644
--- a/fontforge/macbinary.c
+++ b/fontforge/macbinary.c
@@ -37,7 +37,7 @@
#include "psfont.h"
#if __Mac
# include <ctype.h>
-# include </Developer/Headers/FlatCarbon/Files.h>
+# include <CoreServices/CoreServices.h>
@ummels
ummels / hack.sh
Created March 31, 2012 12:03 — forked from erikh/hack.sh
OSX For Hackers
#!/usr/bin/env sh
##
# This is script with usefull tips taken from:
# https://github.com/mathiasbynens/dotfiles/blob/master/.osx
#
# install it:
# curl -sL https://raw.github.com/gist/2108403/hack.sh | sh
#
;; ummels's solution to Love Triangle
;; https://4clojure.com/problem/127
(fn [mine]
(let [n (count mine)
ln #(loop [r 1 v %] (if (< v 2) r (recur (inc r) (quot v 2))))
m (apply max (map ln mine))
lmax (fn [xs] ; treats nil as -infinity
(let [a (first xs) r1 (rest xs) b (first r1) r2 (rest r1)]
(cond (empty? r1) a
(fn [l u]
(let [s (apply str (take-while #(<= % u) (iterate #(* % %) l)))
d (int (Math/ceil (Math/sqrt (count s))))
n (concat (seq s) (repeat (- (* d d) (count s)) \*))
m (loop [m {} sx n
r (if (even? d) (- d 2) (dec d)) c (- d 1)
dr (mapcat #(repeat (* % 2) (if (even? %) -1 1)) (range))
dc (mapcat #(repeat (inc (* % 2)) (if (even? %) 1 -1)) (range))]
(if (empty? sx) m
(recur (assoc m [r c] (first sx)) (rest sx)