Home » Author Archives: Tomasz Nurkiewicz

Author Archives: Tomasz Nurkiewicz

Java EE developer, Scala enthusiast. Enjoying data analysis and visualization. Strongly believes in the power of testing and automation.

Writing a download server. Part III: headers: Content-length and Range

java-logo

We will explore more HTTP request and response headers this time to improve download server implementation: Content-length and Range. The former signals how big the download is, the latter allows downloading files partially or continue after failure from where we started.       Content-length response header Content-length response header is tremendously helpful for clients that track download progress. If ...

Read More »

Writing a download server. Part I: Always stream, never keep fully in memory

java-interview-questions-answers

Downloading various files (either text or binary) is a bread and butter of every enterprise application. PDF documents, attachments, media, executables, CSV, very large files, etc. Almost every application, sooner or later, will have to provide some form of download. Downloading is implemented in terms of HTTP, so it’s important to fully embrace this protocol and take full advantage of ...

Read More »

How LongAccumulator and DoubleAccumulator classes work?

java-logo

Two classes new in Java 8 deserve some attention: LongAccumulator and DoubleAccumulator. They are designed to accumulate (more on what does that mean later) values across threads safely while being extremely fast. A test is worth a thousand words, so here is how it works: class AccumulatorSpec extends Specification { public static final long A = 1 public static final ...

Read More »

Biological computer simulation of selfish genes

software-development-2-logo

TL;DR: I did a computer simulation of behavior evolution of monkeys, continue reading to see how problem was stated originally in The Selfish Gene. First part shows my Java implementation, second part shows charted results and conclusions. The problem I read The Selfish Gene by Richard Dawkins recently, very wide-opening book despite being 40 years old. While the original text ...

Read More »

CompletableFuture can’t be interrupted

java-logo

I wrote a lot about InterruptedException and interrupting threads already. In short if you call Future.cancel() not inly given Future will terminate pending get(), but also it will try to interrupt underlying thread. This is a pretty important feature that enables better thread pool utilization. I also wrote to always prefer CompletableFuture over standard Future. It turns out the more ...

Read More »

Journey to idempotency and temporal decoupling

java-interview-questions-answers

Idempotency in HTTP means that the same request can be performed multiple times with the same effect as if it was executed just once. If you replace current state of some resource with new one, no matter how many times you do so, in the end state will be the same as if you did it just once. To give ...

Read More »

Retry-After HTTP header in practice

java-interview-questions-answers

Retry-After is a lesser known HTTP response header. Let me quote relevant part of RFC 2616 (HTTP 1.1 spec): 14.37 Retry-After The Retry-After response-header field can be used with a 503 (Service Unavailable) response to indicate how long the service is expected to be unavailable to the requesting client. This field MAY also be used with any 3xx (Redirection) response ...

Read More »

Storing months of historical metrics from Hystrix in Graphite

java-logo

One of the killer-features of Hystrix is a low-latency, data-intensive and beautiful dashboard:                     Even though it’s just a side-effect of what Hystrix is really doing (circuit breakers, thread pools, timeouts, etc.), it tends to be the most impressive feature. In order to make it work you have to include hystrix-metrics-event-stream ...

Read More »
Do you want to know how to develop your skillset and become a ...

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!
Get ready to Rock!
To download the books, please verify your email address by following the instructions found on the email we just sent you.

THANK YOU!

Close