-
Java
Writing a download server. Part IV: Implement HEAD operation (efficiently)
HEAD is an often forgotten HTTP method (verb) that behaves just like GET, but does not return body. You use…
Read More » -
Core Java
Writing a download server. Part III: headers: Content-length and Range
We will explore more HTTP request and response headers this time to improve download server implementation: Content-length and Range. The…
Read More » -
Enterprise Java
Writing a download server. Part II: headers: Last-Modified, ETag and If-None-Match
Caching on the client side is one of the foundations of World Wide Web. Server should inform client about validity…
Read More » -
Enterprise Java
Writing a download server. Part I: Always stream, never keep fully in memory
Downloading various files (either text or binary) is a bread and butter of every enterprise application. PDF documents, attachments, media,…
Read More » -
Core Java
How LongAccumulator and DoubleAccumulator classes work?
Two classes new in Java 8 deserve some attention: LongAccumulator and DoubleAccumulator. They are designed to accumulate (more on what…
Read More » -
Enterprise Java
Spring: injecting lists, maps, optionals and getBeansOfType() pitfalls
If you use Spring framework for more than a week you are probably aware of this feature. Suppose you have…
Read More » -
Software Development
Biological computer simulation of selfish genes
TL;DR: I did a computer simulation of behavior evolution of monkeys, continue reading to see how problem was stated originally…
Read More » -
Core Java
CompletableFuture can’t be interrupted
I wrote a lot about InterruptedException and interrupting threads already. In short if you call Future.cancel() not inly given Future…
Read More » -
Enterprise Java
Journey to idempotency and temporal decoupling
Idempotency in HTTP means that the same request can be performed multiple times with the same effect as if it…
Read More »