Skip to content

Instantly share code, notes, and snippets.

View oehme's full-sized avatar

Stefan Oehme oehme

View GitHub Profile
@oehme
oehme / gist:1506973
Created December 21, 2011 17:54
The faster Clojure version
(defn foo [x]
(cond
(instance? Integer x) "Integer"
(instance? String x) "String"
(instance? Boolean x) "Boolean"))
(defn transient-foo [n]
(loop [cnt n col (transient [])]
(if (= cnt 0) (persistent! col)
(recur (dec cnt)
@oehme
oehme / gist:1507155
Created December 21, 2011 18:44
Arrays in Clojure, as non-functional as it gets ;)
(defn foo [x]
(cond
(instance? Integer x) "Integer"
(instance? String x) "String"
(instance? Boolean x) "Boolean"))
(defn array-foo [n]
(let [items (object-array ["foo" 23 true]) result (object-array (* 3 n))]
(dotimes [i n]
(dotimes [j 3]
@oehme
oehme / MultiBatchExecutor.java
Created January 12, 2012 11:12
Alternating batched statements in myBatis
package org.apache.ibatis.executor;
import java.sql.BatchUpdateException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
@oehme
oehme / I18n-hardway-ftl
Created June 13, 2012 14:28
Freemarker I18n the hard way
${date?date?string.medium}
${time?time?string.medium}
${month?string("MM-yyyy")}
${boolean?string("${yes}", "${no}")}
[#if boolean]${greeting}[/#if]
@oehme
oehme / I18n-hardway-java
Created June 13, 2012 14:31
Freemarker I18n the hard way - Java side
public static Map<String, Object> getDataModel() {
HashMap<String, Object> datamodel = new HashMap<>();
datamodel.put("date", new Date());
datamodel.put("time", new Date());
datamodel.put("month", new Date());
datamodel.put("boolean", true);
datamodel.put("yes", getBundle().getString("yes"));
datamodel.put("no", getBundle().getString("no"));
datamodel.put("greeting", format(getBundle().getString("hello"), "Freemarker"));
return datamodel;
@oehme
oehme / I18n-hardway-output
Created June 13, 2012 14:40
Output with English locale
Jun 13, 2012
4:39:47 PM
06-2012
Yes
Hello Freemarker!
@oehme
oehme / localize-joda-time
Created June 13, 2012 14:49
Localizing Joda Time
public class LocalizingWrapper extends BeansWrapper {
private Provider<Locale> localeProvider;
public LocalizingWrapper(Provider<Locale> localeProvider) {
this.localeProvider = localeProvider;
}
@Override
public TemplateModel wrap(Object object) throws TemplateModelException {
@oehme
oehme / local-date-model
Created June 13, 2012 14:50
Local Date Model
public class LocalDateModel extends BeanModel implements TemplateScalarModel {
private final LocalDate object;
private final Locale locale;
public LocalDateModel(LocalDate object, Locale locale, BeansWrapper wrapper) {
super(object, wrapper);
this.object = object;
this.locale = locale;
}
@oehme
oehme / I18n-easyway-dates-ftl
Created June 13, 2012 14:52
Localized Dates - Freemarker side
${date}
${time}
${month}
@oehme
oehme / calion
Created June 13, 2012 15:03
Calion enum
@BaseName("de.oehme.examples.freemarkerI18n.easyway.localization.messages")
public enum Messages {
YES,
NO,
HELLO
}