Skip to content

Instantly share code, notes, and snippets.

View forax's full-sized avatar

Rémi Forax forax

View GitHub Profile
comments of blog post 'The Selector Pattern'
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.temporal.Temporal;
import java.util.ArrayList;
import java.util.Arrays;
Slides of FOSDEM 2014 - Java Intrinsic
package java.lang.invoke;
import java.io.IOException;
import java.lang.invoke.MethodHandles.Lookup;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.nio.channels.FileChannel;
import sun.misc.Unsafe;
import java.util.OptionalLong;
public class TimeStat {
private long totalTime;
private long recordCount;
private long minimumTime;
public void record(long elapsedTime) {
totalTime += elapsedTime;
minimumTime = (recordCount == 0)? elapsedTime: Math.min(minimumTime, elapsedTime);
@forax
forax / gist:e733e6af6114eff55149
Created June 1, 2014 16:13
Lispy interpreter written in Java
import static java.util.Arrays.asList;
import static java.util.Arrays.stream;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toCollection;
import static java.util.stream.Collectors.toList;
import static java.util.stream.IntStream.range;
import static java.util.stream.Stream.concat;
import static java.util.stream.Stream.of;
import java.io.Console;
@forax
forax / gist:81a56cf2684bfa2e46ec
Created July 31, 2014 00:16
Json parser 'modern' API in one file
import java.io.Reader;
import java.io.StringReader;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Spliterator;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Objects;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.Stream;
import java.lang.invoke.CallSite;
import java.lang.invoke.ConstantCallSite;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodHandles.Lookup;
import java.lang.invoke.MethodType;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
@forax
forax / gist:ddf39fd28383dd5c72fd
Created September 13, 2014 18:21
To infiny and beyond ...
import java.util.Random;
import java.util.function.IntFunction;
import java.util.stream.Collectors;
public interface SayHi {
public static void main(String[] args) {
IntFunction<String> fun = s -> new Random(s)
.ints(6, 0, 27)
.filter(v -> v != 0)
.mapToObj(v -> "" + (char)('`' + v))