Skip to content

Instantly share code, notes, and snippets.

@chronodm
chronodm / gist:7669424
Last active December 29, 2015 12:19
Scalatra operations that Swagger doesn't seem to be able to read.
abstract class RouterBase(val swagger: Swagger) extends ScalatraServlet with JacksonJsonSupport with SwaggerSupport {
protected implicit val jsonFormats: Formats = DefaultFormats
mapper.registerModule(new JodaModule())
before() {
contentType = formats("json")
}
}
@chronodm
chronodm / BibRouter.scala
Created November 27, 2013 23:18
Scalatra servlet with failing JSON serialization
package router
import service.BibService
import model.Bib
import org.scalatra.swagger.Swagger
import spray.json._
import DefaultJsonProtocol._
import format.ApiFormats._
/**
@chronodm
chronodm / ApiFormats.scala
Last active November 19, 2016 02:49
Custom formatters for JodaTime DateTime and various case classes
package format
import model._
import spray.json._
import org.joda.time.DateTime
import org.joda.time.format.{ISODateTimeFormat, DateTimeFormatter}
/**
* @version $Id$ $Rev: 223159 $ $Date: 2013-11-27 15:12:03 -0800 (Wed, 27 Nov 2013) $
*/
@chronodm
chronodm / reflectorbug.scala
Last active December 31, 2015 13:39
Demonstrating a bug in json4s Reflector (or possibly just in Scala reflection) that produces a spurious IncompatibleClassChangeError when faced with locally declared case classes
import org.json4s._
import org.json4s.Extraction._
import org.scalatest.{Matchers, FlatSpec}
import org.json4s.native.Serialization
import org.json4s.native.Serialization._
/**
* @version $Id$ $Rev$ $Date$
*/
class MyClass(v: String) {
@chronodm
chronodm / MemoizerTest
Created February 4, 2014 21:10
Unit test for Memoizer, as implemented in Java Concurrency in Practice, pp. 105-106
import org.junit.Test;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import java.util.*;
import java.util.concurrent.*;
import static org.fest.assertions.Assertions.*;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.*;
@chronodm
chronodm / logback.xml
Created July 25, 2014 18:21
Failed attempt to suppress log from Gradle tooling
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"/>
<logger name="org.gradle.tooling" level="ERROR" additivity="false">
<appender-ref ref="STDOUT"/>
</logger>
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
@chronodm
chronodm / reverse-bias.md
Last active August 29, 2015 14:20
Israel’s appeal courts treat Arabs differently depending on whether panels include Arab-Israeli judges

A riff on [this WaPo Monkey Cage post](http://www.washingtonpost.com/blogs/monkey-cage/wp/2015/05/04/israels-appeal-courts-treat\ -arabs-better-when-one-judge-is-arab-israeli/).

Israel's appeal courts treat Arab-Israelis worse when all judges are Jewish

We find that Arab defendants are 20 percentage points more likely to be incarcerated by an all-Jewish panel than by a mixed panel, while Jewish defendants saw no difference. Furthermore, all-Jewish panels result in higher prison sentences for both Arab and Jewish defendants, but the magnitude of this effect is small and insignificant for Jewish


title: 'I am the title' subtitle: 'I am the subtitle' author:

  • Author 1
  • Author 2 abstract: | This is the Abstract. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
@chronodm
chronodm / IntLookupPerformanceComparison.java
Last active May 24, 2017 14:29
Performance comparison of java.util.ArrayList, javaslang.collection.vector, and it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import javaslang.collection.Vector;
import java.math.BigDecimal;
import java.math.MathContext;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;
@chronodm
chronodm / Preview.java
Last active December 22, 2017 04:08
A JavaFX application that can be programmatically launched to display a given Node (for testing)
import io.reactivex.observers.DisposableObserver;
import io.reactivex.subjects.PublishSubject;
import io.reactivex.subjects.Subject;
import io.vavr.control.Option;
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.layout.Region;