Posts Tagged: groovylang

The Power of Technical Jargon

Posted by & filed under , , , .

I recently had the chance to reflect over how important jargon can be when building a product and I thought I’d share my thoughts and findings here. A bit of history: a while back (quite a while back now) I helped a small startup (let’s call them Green Media) which operated in digital marketing and online […]

Breaking into open source

Posted by & filed under , , .

I read recently Shubheksha‘s blog post “A Beginner’s Very Bumpy Journey Through The World of Open Source” which describes her initial journeys into the open source world and reminded me a bit of some of my initial adventures into open source. (I even wrote a blog post ages ago — my goodness, literally ages ago […]

Thoughts on Programming and Its Challenges

Posted by & filed under , , .

At the end of another tough week in Netflix I look back at what I have achieved and what has been challenging in achieving it. I do wonder what I do looks like from the outside and I can’t really see how someone would make sense of my job. I sit in front of 3 (sometimes more!) […]

Gotcha When Building Gradle Plugins on Top of docker-java-plugin

Posted by & filed under , .

If you use gradle and docker you must have come across the gradle-docker-plugin. And if you started using it a lot you probably found out that more often than not your builds start using the same boilerplate code to prepare your microservices containers. And if you end up in that situation best thing to avoid boilerplate rubbish […]

Disable PMD Plugin to Run for Test Sources

Posted by & filed under , .

I use PMD in my Gradle builds quite a bit. (Maybe a bit more nowadays that the FindBugs peeps seem to be struggling with that project — see this email from Andrey on this: The issue I had with it is that there is no way to quickly turn off their checks for the src/test/… […]

Of Fibonacci’s Number and Groovy’s Memoization

Posted by & filed under , .

As a developer, chances are every time you hear recursion mentioned you probably also hear of Fibonacci’s number. And in the same breath you probably hear also of stack overflow 🙂 Because — as you get to learn quickly — if you decide to implement Fibonacci’s number via a recursive function, you end up abusing […]

Gradle Multi-module Projects — Centralized Configuration

Posted by & filed under , .

This is a sweet gradle trick for those of you working on multi-module projects, if you are looking to centralize some of the configuration in the parent gradle build, and avoid repeating configuration / build code across sub-modules. Let’s say you have the following gradle project structure (see image below) where project A is the […]

Collection Sorting — Java vs Groovy

Posted by & filed under , .

With the introduction of lambdas in Java (not so) recently, some argue that Groovy lost some of its thunder, as closures are now first class citizens in the JDK. However, as I’m about to show, while lambda’s pushed the Java language a great deal forward, Groovy still makes a lot of things incredibly easy (and […]

A Bit of Lovin’ for the Groovy Object Initialization

Posted by & filed under , .

I’m going to spread some lovin’ today for the widely-used yet less appreciated feature in Groovy which allows creating a Java bean and setting its properties in one line. Especially when dealing with unit tests this saves me a great deal of time and frustration. If you ever worked with “pure” (??) Java beans, then […]

Parallel : Groovy and Java Streams

Posted by & filed under .

This is something that every now and then I have to do: check whether either one or all elements of a collection meet a certain criteria. The standard code initially in Java involved a for loop and iterating through the collection explicitly and checking the condition at each step. Then Apache Commons came on with their […]

Goodies in Groovy from DefaultGroovyMethods

Posted by & filed under , .

If you ever programmed in Groovy language, you probably “enjoyed” (maybe without realising) the joys of DefaultGroovyMethods. What you probably don’t realise is that you can override these methods to customize your classes — and occasionally generate some code that’s not that easy to read. (Do you remember the old C++ way of overriding operators […]

Small Note on gradle’s afterEvaluate

Posted by & filed under , .

If you use gradle and you took the path to write your own gradle plugins (try it, it’s fun!) to make your build process more … “enjoyable”, then this might come in handy one day. I have worked on a few gradle plugins, some of them inside the Netflix Nebula suite, some of them outside Netflix […]

Why You Should Use Default Methods in Java 8 Interfaces

Posted by & filed under , .

With Java 8, Oracle introduced the concept of “default methods” in interfaces (and if you really haven’t heard of this — wtf?? — you can read more here about it: This argue some is a step towards multiple inheritance and as such should be banished from the oh, so pure! Java language. Others point out […]

Netflix Nebula Gradle Plugin and project.version

Posted by & filed under , .

If you use the Netflix OSS Nebula plugin in gradle and you use it for automatic versioning, incrementals etc then you will come across this at some point. (And in the case that some of you have already encountered this, I have to ask why did you not write the blog post I needed when […]