Skip to content

Instantly share code, notes, and snippets.

@devnoo
devnoo / NullSafeUtils
Created December 13, 2016 17:30
bit of a hack to get rid of all null checks in deeply nested properties
import java.util.function.Supplier;
public class NullSafeUtils {
public static <T> T nullSafeGet(Supplier<T> supplier){
try{
return supplier.get();
}catch (NullPointerException npe){
return null;
@devnoo
devnoo / DefaultObservableCommandGateway
Created June 22, 2016 14:15
CommandGateway that returns observable/single instead of CommandCallback
import org.axonframework.commandhandling.CommandCallback;
import org.axonframework.commandhandling.gateway.CommandGateway;
import org.springframework.beans.factory.annotation.Autowired;
import rx.Observable;
import rx.Single;
import rx.Subscriber;
public class DefaultObservableCommandGateway implements ObservableCommandGateway {
@devnoo
devnoo / ElasticsearchTestExecutionListener.java
Created August 18, 2015 16:20
Spring test execution listener to clean elasticsearch when using spring data
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentEntity;
import org.springframework.data.elasticsearch.core.query.DeleteQuery;
import org.springframework.test.context.TestContext;
import org.springframework.test.context.support.AbstractTestExecutionListener;
import java.util.Collection;
import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery;
@devnoo
devnoo / allEven.hs
Created November 10, 2012 15:42
seven languages in seven weeks : haskell day 1
module Main where
allEvenWithRecursion :: [Integer] -> [Integer]
allEvenWithRecursion [] = []
allEvenWithRecursion (h:t) = if even h then h:allEvenWithRecursion t else allEvenWithRecursion t
allEvenWithListComprehension :: [Integer] -> [Integer]
allEvenWithListComprehension (numbers) = [x | x <- numbers , even x ]
allEvenWithFilter:: [Integer] -> [Integer]
allEvenWithFilter = filter even
@devnoo
devnoo / BuilderGenerator.groovy
Created October 3, 2012 16:38
Simple builder generator using qdox and groovy templates
import com.thoughtworks.qdox.JavaDocBuilder
import com.thoughtworks.qdox.model.JavaClass
import com.thoughtworks.qdox.model.Type
import com.thoughtworks.qdox.model.JavaField
import com.thoughtworks.qdox.model.JavaMethod
import com.thoughtworks.qdox.model.JavaSource
import groovy.text.SimpleTemplateEngine
import org.apache.commons.io.FileUtils
JavaDocBuilder builder = new JavaDocBuilder();
@devnoo
devnoo / caesar_cipher.clj
Created September 25, 2012 18:58
seven languages in seven weeks: clojure day2
(defn ceasarEncodeChar [char, shift] (nth infAlphabetSeq (+ shift (indexInAlphabet char) )))
(defrecord CeasarCipher [shift] Cipher
(encode [c, message] (reduce str (map #(ceasarEncodeChar %1 shift) message )))
)
(def ceasar1 (CeasarCipher. 3))
@devnoo
devnoo / accounts.clj
Created September 19, 2012 18:28
seven languages in seven weeks: clojure day 3
(def accounts (ref []))
(defn openaccount [] (dosync (alter accounts conj 0)))
(defn debit [ accountnr debitammount] (dosync (alter accounts #(assoc %1 accountnr (- (get %1 accountnr) debitammount)))))
(defn credit [ accountnr creditammount] (dosync (alter accounts #(assoc %1 accountnr (+ creditammount (get %1 accountnr) )))))
(openaccount)
(println @accounts)
(credit 0 100)
(println @accounts)
@devnoo
devnoo / ceasar_cipher.clj
Created September 19, 2012 13:53
seven languages in seven weeks: clojure day2
(defn ceasarEncodeChar [char, shift] (nth infAlphabetSeq (+ shift (indexInAlphabet char) )))
(defrecord CeasarCipher [shift] Cipher
(encode [c, message] (reduce str (map #(ceasarEncodeChar %1 shift) message )))
)
(def ceasar1 (CeasarCipher. 3))
@devnoo
devnoo / bigger_function.clj
Created August 8, 2012 11:21
seven languages in seven weeks clojure day 1
(defn big [str,n] (> (count str) n))
@devnoo
devnoo / doctor.erl
Created July 19, 2012 18:52
seven languages in seven weeks erlang day 3
-module(doctor).
-behaviour(supervisor).
-export([start/0]).
-export([init/1]).
start() ->
supervisor:start_link({local, doctor}, doctor, []).
init(_Args) ->