Posts Categorized: Tech

API World Conference 2018

Posted by & filed under , , , , .

I’ve tweeted enough about this during the conference itself so you would have seen all of these images before, but if you want a “no subtitles” image-only version here it is — going through the images they actually do tell a story themselves to be fair! Many thanks to Hilton hotel San Jose for hosting […]

The eternal issue about Object.hashCode() in Java

Posted by & filed under , .

Have you heard of hashCode() and equals() in Java and the eternal discussions around this? And you know by now the implications of having a messed up relationship in between hashCode and equals so you make sure every time you implement a class with an equals() you have to make sure hashCode() follows suit right? […]

network pc monitors

Parallel RxJava and Spock Oddity

Posted by & filed under , .

I use RxJava a lot nowadays — back in the day before I joined Netflix I was struggling with it a bit and mostly watched from the sideline but nowadays I find myself pulling in that dependency in a lot of the Java code I’m writing. And I also use the Spock framework a lot […]

network pc monitors

Interesting Java Jersey + RxJava finding

Posted by & filed under , .

It so happens that in a few of the apps I work on here in Netflix we use Jersey libraries inside a Tomcat container. As such I use the JSR annotations a lot safe in the knowledge that Jersey will take care of all the plumbing work and deal with routing and serialization/deserialization so I […]

iStock_blog write keyboard

Anti-pattern for testing RxJava code

Posted by & filed under , .

This is an obvious one but I find myself so often using it and every single time it means I have to spend extra time debugging my test / code until I realize that I’ve fallen for the same mistake again. I’m using RxJava here and using Groovy and Spock framework for testing — and […]

About composition and delegation in the Groovy language

Posted by & filed under , .

When dealing with OOP languages, composition over inheritance has been the preferred approach for a while now as it offers a greater flexibility in most cases. Before you start, I’m not going to get into that dispute whether one should opt for inheritance or not, enough to say that there are cases where composition is […]

Little-known yet useful Java annotation: ConstructorProperties

Posted by & filed under , .

I’ve discovered this recently while looking into some issues caused by the Jackson libraries in one of my Java applications. If you use Jackson I’m sure you are by now familiar with some of the annotation they supply — such as @JsonProperty and @JsonCreator — and it was dealing with these that got me to […]

RxJava: Some Usage of Observable.zip

Posted by & filed under , .

Here’s  classic problem when dealing with a web app: you get a HTTP request to your app with a set of parameters. You need to hit a datastore to retrieve some record based on those parameters. You also need to create a (log?) entry somewhere about receiving this call — whether it’s for monitoring purposes […]

Using Optional in Java to check for null

Posted by & filed under , .

I see the need for null in Java still, but since the Optional class was introduced I think some of the usages of null can be eliminated by employing some of the capabilities of the Optional class. I will explain in this post a nice way you can implement checking for null in Java by […]

Common mistake when dealing with Reader in Java

Posted by & filed under , .

I’ve encountered this one a few times and came across again recently and thought it relevant to deserve its own post, so here it is. If you have done any I/O in Java you likely came across the Reader class, unlike the InputStream class(es) which deal with bytes, the Reader makes the transition into reading […]

Dependency overload … or laziness?

Posted by & filed under , .

This is something that started bugging me back in the maven area — when I switched from the likes of Ant as a build tool, which was relying on the user being explicit about a lot of things and doing a lot of the grunt work for it, to the maven world. Now maven was […]

Nicer implementations using Java streams

Posted by & filed under , .

I am not entirely sold on the performance of the Java streams but I will accept they are getting much better compared to the first cut, we now have parallel streams and all sorts, and also it provides a (nicer) functional approach to coding. I’m not going to go into the whole dispute of whether […]

Beware of Governator’s @Configuration annotation

Posted by & filed under , .

If you read some of my posts dealing with dependency injection in Java you have probably figured it out (and I even stated it in clear) that I use Netflix Governator’s a lot. Especially as I revealed in one of my previous posts because Google Guice doesn’t support out of the box the likes of […]