Skip to content

Instantly share code, notes, and snippets.

@tomwhoiscontrary
tomwhoiscontrary / blend.cpp
Last active June 11, 2018 16:46
Trying to make a curve by blending futures and swaps - see https://imgur.com/a/viMGk6J
#include <iostream>
#include <vector>
#include <boost/make_shared.hpp>
#include <ql/indexes/ibor/euribor.hpp>
#include <ql/math/interpolations/convexmonotoneinterpolation.hpp>
#include <ql/termstructures/yield/piecewiseyieldcurve.hpp>
#include <ql/termstructures/yield/ratehelpers.hpp>
#include <ql/time/daycounters/actual360.hpp>
public class Calculus {
public static void main(String[] args) {
double δx = 17.0;
double δy = 23.0;
double δxノδy = δx / δy;
System.out.println("δxノδy = " + δxノδy);
}
}
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.SynchronousQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;
#include <iostream>
// modified from https://wandbox.org/permlink/YnHKdrHmMFiJsjOm
template <typename T, typename Deleter>
struct handle {
handle(T value, Deleter deleter = Deleter()) : value_(value), deleter_(deleter) {
}
~handle() {
@tomwhoiscontrary
tomwhoiscontrary / widget.cpp
Created March 29, 2018 17:08
Fresh as hell demonstration of perfect forwarding constructor with varargs in C++
#include <iostream>
#include <boost/make_shared.hpp>
class Widget {
public:
virtual int getMass() const = 0;
};
class SimpleWidget : Widget {
@tomwhoiscontrary
tomwhoiscontrary / Main.java
Last active June 25, 2024 16:37
A simple Java web server with basic logging, tracing, health check, graceful shutdown and zero dependencies
import com.sun.net.httpserver.Filter;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.util.Arrays;
import java.util.List;
@tomwhoiscontrary
tomwhoiscontrary / Stamper.java
Last active December 18, 2017 11:20
A fun demo of unexpected (to me) file timestamp behaviour on Linux
import java.io.IOException;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.time.Instant;
/**
@tomwhoiscontrary
tomwhoiscontrary / Time.java
Created November 6, 2017 13:04
Works out the correspondence between currentTimeMillis and nanoTime
import java.util.Arrays;
public class Time {
public static void main(String[] args) throws InterruptedException {
int n = 100;
int[] before = new int[n];
int[] after = new int[n];
// warmup
@tomwhoiscontrary
tomwhoiscontrary / Transducers.java
Last active October 29, 2017 21:23
An attempt at translating Clojure transducers into Java to confuse and annoy
import java.io.IOException;
import java.util.function.BiFunction;
import java.util.function.BinaryOperator;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.IntStream;
import java.util.stream.Stream;
public class Transducers {
import org.hamcrest.FeatureMatcher;
import org.hamcrest.Matcher;
import org.hamcrest.Matchers;
import java.util.Map;
import java.util.Set;
import java.util.SortedMap;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;