Learning to use Wholly GraalVM!

Introduction In the post Truffle served in a Holy Graal: Graal and Truffle for polyglot language interpretation on the JVM, we got a brief introduction and a bit of deep dive into Graal, Truffle and some of the concepts around it. But no technology is fun without diving deep into its practicality, otherwise its like Theoretical Physics or Pure Maths ...

Read More »

Invest in a Github Organization!

To start, let me say that Github is the subject here simply because they are the biggest in the open source industry. Github has become the Facebook of software development and that is why it makes sense to focus on it. In the future, a better platform might show up and then this article will apply to that one. A ...

Read More »

Recursion

Recursion is a technique that allows us to break down a problem into smaller pieces. This technique allows us to remove some local side effects that we perform while writing looping structures and also makes our code more expressive and readable. In this post we will see why it is a very useful technique in functional programming and how it can help ...

Read More »

Introducing Interaction-Driven Design

Before reading this post, I strongly recommend you read the two previous blog posts that serve as a foundation to this blog: MVC, Delivery Mechanism and Domain Model and A Case for Outside-In Development. Most software projects become very difficult to maintain and evolve after a period of time. Business is constantly complaining that things take forever to be delivered. Developers complain the ...

Read More »

On Tail Call Optimisation

If you are interested in functional programming as many of our craftspeople are, you will have heard talk about tail recursion. Tail recursion refers to a recursive function call that has been made from tail position. When a function call is in tail position it means there are no more instructions between the return of control from the called function and ...

Read More »

When does a Start-Up need Agile?

I started writing another piece on more economic and agile/software development but it got to long, so right now, an aside… Back in 1968 Peter Drucker wrote: “Large organizations cannot be versatile. A large organization is effective through its mass rather than through its agility.” Last week I presented “Agile for Start-ups” here in London for the third time. Each time I’ve given this ...

Read More »

Adding a “lite” Groovy web console to a Grails war

Suppose you have a Grails application deployed to a server – how would you go about finding out how the application was configured? If you have the source then you can view Config.groovy, BuildConfig.groovy, etc. (in this case I’m talking about a Grails 2 app but these ideas are generalizable to Grails 3+) but that’s often not enough. Grails 2 ...

Read More »

Spring Webflux – Writing Filters

spring-interview-questions-answers

Spring Webflux is the new reactive web framework available as part of Spring 5+.  The way filters were written in a traditional Spring MVC based application(Servlet Filter, HandlerInterceptor) is very different from the way a filter is written in a Spring Webflux based application and this post will briefly go over the WebFlux approach to Filters. Approach 1 – WebFilter The first ...

Read More »

Continuous Delivery friendly Maven versions

A Continuous Delivery pipeline requires predictable software and dependency versions. Snapshot versions, which are common in Maven software projects, contradict the motivation behind Continuous Delivery. In order to update snapshot versions to release versions developers usually edit the pom.xml file by hand or via a plugin such as the maven-release-plugin. However, Maven also offers the possibility to define version numbers ...

Read More »