Skip to content

Instantly share code, notes, and snippets.

View martinus's full-sized avatar
😎
warp! Help, I'm trapped in a time

Martin Leitner-Ankerl martinus

😎
warp! Help, I'm trapped in a time
View GitHub Profile
@martinus
martinus / e.rb
Created July 24, 2008 17:35
extract any archive
#!/usr/bin/ruby
# The program e is a command line utility that extracts lots of
# different archives. It is very simple and can be extended very easily.
#
# It is inspired by how firewall use their rulesets, and works like this:
#
# * For each file that has to be extracted, the rules are matched one after the other.
# * When a rule matches (either by the filetype or filename), the command is executed.
# * If the command does not return an error code the extraction is considered successful,
# otherwise the next rules are matched.
@martinus
martinus / anagrams-fast.rb
Created August 9, 2008 10:01
Two Word Anagram Finder Algorithm (in Ruby)
#!/usr/bin/ruby
# created by Martin Ankerl http://martin.ankerl.com/
class String
# creates an array of characters
def letters
unpack("c*")
end
end
@martinus
martinus / CachedProxy.java
Created December 22, 2008 21:23
Create cached proxy automatically
package com.ankerl.proxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.HashMap;
import java.util.Map;
/**
* Creates an intermediate proxy object for a given interface. All calls are
package com.ankerl.stuff;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/**
* Calls multiple methods with a single interface.
@martinus
martinus / trie.rb
Created December 23, 2009 21:23 — forked from DataWraith/trie.rb
class TrieNode
def initialize
@sub_tries = {}
@end_of_word = false
end
def insert(input)
to_insert = input
#pragma once
/// MarsagliaMWC99 is a simple random number generator based on
/// George Marsaglia's MWC (multiply with carry) generator.
/// Although it is very simple, it passes Marsaglia's DIEHARD
/// series of random number generator tests. It is exceptionally fast.
///
/// @see http://www.codeproject.com/Articles/25172/Simple-Random-Number-Generation
/// @see http://www.bobwheeler.com/statistics/Password/MarsagliaPost.txt
/// @see http://mathforum.org/kb/message.jspa?messageID=1524861
@martinus
martinus / xy.gnuplot
Created May 2, 2014 06:35
Bitcoin Balance over Time of Last Transaction - Gnuplot to produce a graph like this: http://i.imgur.com/bzdr3fl.png
#set term pngcairo size 1920,1080 enhanced font 'Verdana,10'
set term pngcairo size 3840,2160 enhanced font 'Verdana,10'
set title 'Bitcoin Balance over Time of Last Transaction'
set xlabel 'Last Transaction [Time]'
set ylabel 'Amount [BTC]'
set output 'xy.png'
set logscale y
set xdata time
set timefmt "%s"
set format x "%Y-%m-%d"
@martinus
martinus / gist:250192d3350c4b11756a
Created September 2, 2014 13:08
onename verification
Verifying that +martinus is my Bitcoin username. You can send me #bitcoin here: https://onename.io/martinus
@martinus
martinus / DifferentialEvolution.cpp
Created September 22, 2014 07:53
Differential Evolution - Sample Code
/* Example adapted from http://www.drdobbs.com/database/differential-evolution/184410166
*
* This implements the DE/rand/1/bin optimization algorithm.
*
*/
/* Initialize individuals */
for (i=0; i<NP; i++) {
/* randomly initialize all individuals */
for (j=0; j<D; j++) {