Skip to content

Instantly share code, notes, and snippets.

View klang's full-sized avatar
🏠
Working from home

Karsten Lang klang

🏠
Working from home
View GitHub Profile
@klang
klang / timemachine.sh
Created August 16, 2010 16:46
poor man's time machine. Works with in cygwin as well as any unix based environment that provides rsync.
#!/bin/bash
semaphore() {
if [ -e $0.pid ]; then
PID=$(cat $0.pid)
fi
if [ $PID ]; then
echo $PID on file
PIDr=$( ps -ef | awk '{print $2}' | grep ^$PID$ )
@klang
klang / timemachine-host.sh
Created August 16, 2010 16:47
poor man's time capsule. Works with in cygwin as well as any unix based environment that provides rsync.
#!/bin/bash
semaphore() {
if [ -e $0.pid ]; then
PID=$(cat $0.pid)
fi
if [ $PID ]; then
echo $PID on file
PIDr=$( ps -ef | awk '{print $2}' | grep ^$PID$ )
@klang
klang / exportjpg.pl
Created August 16, 2010 16:55
change size and quality of jpg/bmp pictures while keeping exifdata. The script makes a 'lightweight' version of original off-the-camera jpg pictures. The copy can be used for picture frames without taking up too much space.
#!/usr/bin/perl
use Getopt::Long;
use strict;
my $src = $ENV{'PWD'};
my $dst = "/cygdrive/c/pictures/export/digital";
my $quality = 75;
sub usage {
@klang
klang / luddite-mode.el
Created August 20, 2010 07:03
Luddite mode for emacs gives a few extra lines, when the tool-, menu- and scroll-bars are turned off.
;; first, remove all the crap that looks different from emacs 20.7.1
; luddite mode
(cond ((> emacs-major-version 20)
(tool-bar-mode -1) ; introduced in emacs 21
(menu-bar-mode -1)
(scroll-bar-mode -1)
(menu-bar-showhide-fringe-menu-customize-disable)
(blink-cursor-mode -1)
(windmove-default-keybindings 'meta)))
@klang
klang / what-parens-all-I-see-is-the-program.el
Created September 1, 2010 06:46
What parens? All I see is the program. (the Clojure color part of http://briancarper.net/blog/492/emacs-clojure-colors in one convenient place. Just dimming the parens: http://www.davep.org/emacs/parenface.el --- from: http://briancarper.net/blog/492/emac
(defun lisp-enable-paredit-hook () (paredit-mode 1))
(add-hook 'clojure-mode-hook 'lisp-enable-paredit-hook)
(defmacro defclojureface (name color desc &optional others)
`(defface ,name '((((class color)) (:foreground ,color ,@others))) ,desc :group 'faces))
(defclojureface clojure-parens "DimGrey" "Clojure parens")
(defclojureface clojure-braces "#49b2c7" "Clojure braces")
(defclojureface clojure-brackets "SteelBlue" "Clojure brackets")
(defclojureface clojure-keyword "khaki" "Clojure keywords")
;; runs the current buffer in the environment where the file resides.
(defvar extention-to-executer-bindings ())
(add-to-list 'extention-to-executer-bindings '("pl" . "perl"))
(add-to-list 'extention-to-executer-bindings '("php" . "php -f"))
(add-to-list 'extention-to-executer-bindings '("sh" . "bash"))
(defun lookup-executer (ext)
"find appropriate executer for script"
(interactive)
sub pirnt {print @_}
pirnt "hello world\n"
@klang
klang / hardlink-deps.sh
Created September 26, 2010 19:30
changes physical files in lib and lib/dev to be hardlinks back to the maven repository living in ~/.m2 .. to reduce disk space used in a setting where _a lot_ of Clojure projects using Leiningen is tried in a limited disk space setting.
@klang
klang / compress_jpg.clj
Created February 20, 2011 09:45
change compression level without losing the metadata of a jpg file
(ns sandbox.compress-jpg
(meta {:description "change compression level without losing the metadata of a jpg file"
:url "http://blog.carsoncheng.ca/2011/02/how-to-change-jpeg-compression-in.html"})
(:require clojure.java.io)
(:import [javax.imageio IIOImage ImageIO]
[javax.imageio.plugins.jpeg JPEGImageWriteParam]))
(defn compress-jpg [inputFile outputFile compressionQuality]
(let [image-reader (.next (ImageIO/getImageReadersByFormatName "jpg"))
image-writer (.next (ImageIO/getImageWritersByFormatName "jpg"))]
(defn fibos []
(map first (iterate (fn [[a b]] [b (+ a b)]) [0 1])))