sh + java   301

square/javapoet: A Java API for generating .java source files.
nice joist-ish library for codegen, takes are of auto-imports, etc
august 2018 by sh
framework for writing jdbc drivers, sql parser, etc
execute jdbc queries against in-memory domain objects
programming  java 
july 2018 by sh
lyft/domic: Reactive Virtual DOM for Android.
reactive DOM-ish but with native android views
java  android 
may 2018 by sh
Linux perf Examples
At Kernel Recipes 2017 I gave an updated talk on Linux perf at Netflix, focusing on getting CPU profiling and flame graphs to work. This talk includes a crash course on perf_events, plus gotchas such as fixing stack traces and symbols when profiling Java, Node.js, VMs, and containers.
java  performance 
february 2018 by sh
JEP 247: Compile for Older Platform Versions
use --release to avoid Method flip()Ljava/nio/ByteBuffer; does not exist in class java.nio.ByteBuffer
january 2018 by sh
jayway/JsonPath: Java JsonPath implementation
like jq but a library. need one for xml.
january 2017 by sh
command line arguments via annotations, with support for git-style subcommands.
march 2016 by sh
open source version of google's software proxy, built on top of finagle by ex-twitter folk
scala  java 
february 2016 by sh
Activate Persistence Framework
from same person as quill, does STM with both in-memory and JDBC backends
java  scala 
february 2016 by sh
Beware: java.nio.file.WatchService is subtly broken on Linux | :: (Bloggable a) => a -> IO ()
Note that this issue can only occur if you are registering watches while simultaneously receiving events. If your program just sets up some watches at startup and then never registers/cancels watches again you probably won't be affected

In my implementation, a WatchKey is invalidated if the directory is watches is renamed, so a user of the class has the opportunity to reregister the new path with the correct WatchKey.watchable if they so desire.
december 2015 by sh
proxies on top of grpc, maybe
december 2015 by sh
The long and arduous road to JCenter and Maven bliss « Otaku, Cedric's blog
links to potentially useful maven central docs, for gradle, e.g. gradle-nexus-staging-plugin
november 2015 by sh
HikariCP. Ludicrous speed, go!
QueuedSequenceSynchronizercode is a mash-up of LongAdder and AbstractQueuedLongSynchronizer, taking advantage of the performance of the former and the infrastructure of the later. On Java 7 it falls back to AtomicLong1, but on Java 8 … it’s ludicrously fast.
november 2015 by sh
open source jta transaction manager
november 2015 by sh
Apache Flink: Juggling with Bits and Bytes
- Flink’s active memory management avoids nasty OutOfMemoryErrors that kill your JVMs and reduces garbage collection overhead.
- Flink features a highly efficient data de/serialization stack that facilitates operations on binary data and makes more data fit into memory.
- Flink’s DBMS-style operators operate natively on binary data yielding high performance in-memory and destage gracefully to disk if necessary.
september 2015 by sh
a better compressed bitset
july 2015 by sh
like AutoValue, also from google? has GWT support.
july 2015 by sh
Sometimes you need tuples in Java. Or not. | Java Deep
Which is not true for two reasons:

There is no need for tuples.
There is a built in type in Java that can handle tuple
There is an interface named java.util.Map.Entry that is there just to hold two objects and there is a simple implementation java.util.AbstractMap.SimpleEntry. Thus Java does not misses tuples and neither do I.
april 2015 by sh
A Java Parallel Calamity
Linked by Alex.

Dynamic decomposition has a very narrow performance window:
- It needs a massive volume of easily separable data (aggregate). If you need to sum an array of one million integers, then it is beneficial to decompose the work with Fork/Join.
- It needs a low volume of concurrent requests.

Recursive decomposition has an even narrower performance window:
- needs balanced tree structures (Directed Acyclic Graphs)
- with no cyclic dependencies
- with computation duration neither too short nor too long
- with no blocking
april 2015 by sh
Executors.newCachedThreadPool() considered harmful
avoid newCachedThreadPool()--it's unbounded and uses a synchronous queue. so, lots of threads, even immediately spinning up when under load.
september 2014 by sh
Protocol-agnostic implementation of the Raft consensus algorithm

august 2014 by sh
Never Test Logging
logging is informational, not to fulfill a functional contract. don't test it.

alerting is to fulfill a contract. do test it.
java  programming 
march 2014 by sh
Java inter-thread messaging implementations performance comparison (Synchronized vs ArrayBlockingQueue vs LinkedTransferQueue vs Disruptor) | Handful of sand
LinkedTransferQueue keeps up with disruptor? Always, per Alex Miller, remember SynchronousQueue for thread hand offs.
march 2014 by sh
A Byteman Tutorial | Community
java -javaagent:byteman.jar=script:thread.btm
java -javaagent:byteman.jar=listener:true
$ -l thread.btm
february 2014 by sh
Introducing Wire Protocol Buffers
java-based build tool/runtime that is protocol buffers-compatible
september 2013 by sh
It extends the observer pattern to support sequences of data/events and adds operators that compose sequences together declaratively while abstracting away concerns about things like low-level threading, synchronization, thread-safety, concurrent data structures, and non-blocking I/O.

also see: Hystrix latency and fault tolerance bulkheading library.
august 2013 by sh
Parallel Universe • Erlang (and Go) in Clojure (and Java)
implementation of coroutines on the JVM. does C# async-style rewriting of sync method calls into continuations.
july 2013 by sh
Framework Benchmarks - TechEmpower Blog
But a 40x difference between Vert.x and Ruby on Rails is staggering.
performance  java 
march 2013 by sh
Why I hate Java HTTPClient MaxConnectionsPerHost | Spherical Chicken
causes artificial latency spikes where no resource is actually strained. these aren't expensive oracle connections. punish the backend service and time/brown-out as necessary.
january 2013 by sh
chewiebug/GCViewer · GitHub
graphs verbose GC output from JVM
december 2012 by sh
Netflix/Hystrix · GitHub
fancy implementation of circuit breakers
december 2012 by sh
Netflix/servo · GitHub
JMX/CloudWatch/etc. utilities, looks a lot like ours
december 2012 by sh
logji: F-Bounded Type Polymorphism Considered Tricky
E.g. Foo<T extends Foo<T>>. No silver bullets offered.
scala  java 
december 2012 by sh
Java's Atomic and volatile, under the hood on x86 - Marc's Blog
AtomicInteger is fast when uncontended because the CPU knows it doesn't have to share its cache line. But under contention, sharing kicks in, and the CPUs spend all their time waiting on RAM, as in 10,000x slower.
november 2012 by sh
On the composeability of Hamcrest matchers – Steve Freeman
pulling out features that can be matched against with other matches.
september 2012 by sh
gs-collections/collections/src/main/java/com/gs/collections/impl/map/mutable/ at master · goldmansachs/gs-collections
a map that uses an array of alternating key/value for cache line friendliness, and values are an object[] list.
august 2012 by sh
java - How to avoid a NoRouteToHostException? - Stack Overflow
if you have a lot of connections in TIME_WAIT, you can see some kernel settings to go ahead and reuse them so you avoid running out of ports.
networking  java 
july 2012 by sh
Mechanical Sympathy: Native C/C++ Like Performance For Java Object Serialisation
java serialization -> manual byte buffer (x10) -> unsafe operations (another x10).
july 2012 by sh
« earlier      
per page:    204080120160

Copy this bookmark: