A lightweight application runner for Java
Bladerunner is an ultra-lightweight library which gives you an enhanced main() method for running your apps, including:
- built-in HOCON configuration file support
- built-in Dagger dependency injection
- built-in logging setup (defaults to log4j2)
- simple threading to run multiple components
In the spirit of . . .
IntelliJ, SQLite and JDBI
Many years ago I designed and implemented a trading strategy container which included strategy persistence, and I used a toolkit that was ready to hand, familiar to me (Hibernate) -- and used the most commonly deployed SQL database at my employer. It's not quite the all-time winner for worst architectural choices I have made, but it's . . .
Chronicle, Flatbuffers and GDAX
I am certain that my book-building logic has a bug.
The computed bid-ask spread gets out of sync with what I can see on the exchange, and only after a period of time does it revert back to normal. What's happening? With several hundred updates a second, it is impossible to say. But what if I had a record of every single . . .
Building a simple crypto marketdata client
Labor Day's coding project was to figure out how to connect to the GDAX cryptocurrency exchange's websocket feed, building on some work done previously to connect via the REST API. As the latter had used Netty for its HTTP client and Jackson for the JSON support I wanted to do the same for Websockets to be consistent.
GDAX. . .
Higher precision scheduling
I wanted a simple, lightweight scheduler that I could tune up for crypto-currency trading applications. I knew from past reading that a data structure called a hashed wheel timer was worth investigating, and that Netty had one, but I was not aware of anything standalone. So I was happy to find Alex Petrov's . . .
Monadic parser combinators in Java 8
When I was young, foolish, and generating parser code ...
Many years ago I wrote a piece for the now-defunct magazine Dr. Dobb's Journal called "Extreme Parsing" based on SableCC, a parser generator for Java. When I needed to write some parsers for graph description formats recently I decided to look around to see what . . .
Custom building a Kaby Lake-X with optimized I/O
I was off for two weeks, so I decided to take the chance to complete the new server build. I headed over to Newegg, ordered an anti-static wrist strap -- something I neglected on my first build -- and assembled the part list for a server that could handle low-latency performance testing. I decided to target Kaby Lake-X, a big step up from the . . .