Groovy 5 adds the extension methods getExtension and getBaseName to the File and Path classes. You can invoke them as properties for a File and Path objects. Also the asBoolean method is added. This mean you can use a File or Path instance in a boolean context. If the underlying file exists true is returned and false otherwise.
Continue reading →
If you want to use AI for coding, there are plenty of tools to choose from.
Popular options include GitHub Copilot, Claude Code, and Gemini.
But what if you’d rather not send your code to external services?
Now that computers are becoming more powerful, is it possible to run a large language model locally and use it as your own coding assistant?
Continue reading →
To get the names of columns in a table or the keys of a record you can use the columns command. The command returns a list of string values that are the column or key names. When the input is table the column names are returned, and when the input is a record the names of the keys are returned.
Continue reading →
Groovy (and Java) support using names for groups in regular expressions. The name of the group is defined using the syntax ?<name> where name must be replaced with the actual group name. This is very useful, because you can use the group name to access the value that is captured by the defined regular expression in a java.util.regex.Matcher object. Groovy supports for a long time accessing a group using the index operator. Since Groovy 5 you can use the name of the group to access the value as well. You can specify the name between square brackets ([<name>]) or use the name as property.
Continue reading →
The build-in HTTP client in Nushell can be used to interact with REST APIs and websites. If the URL you want to invoke has query parameters than you can use the url build-query command. The url build-query command transforms a record or table to URL encoded key/value pairs joined with an ampersand (&). Each key and value is separated by an equal sign (=). The command can expand a key with a list value to separate key/value pairs with the same key if the key is defined in a record.
Continue reading →
The string module contains a lot of useful commands to work with strings. If you want to join several values from a list into a single string you can use the str join command. The command accepts as argument the character(s) to use for joining the values. If you don’t specify the character(s) as argument the default value '' (empty string) is used.
Continue reading →
As a Java Developer who mainly focuses on backend development, I stumbled upon the horde of doing frontend work.
A skill I’m not completely unfamiliar with, but I have to admit, keeping up with everything that happens in the frontend world is something I do lack.
In this blog, I will tell you about the process of my latest iteration in the world of Angular.
Continue reading →
In our TechRadar Spring 2025 edition
we highlighted the IntelliJ HTTP client and Bruno as alternatives to Postman, and also introduced you to Nushell.
This post will focus on the latter.
The goal of Nushell is to take the Unix philosophy of shells, where pipes connect simple commands together,
and combine it with a rich programming language.
Nushell connects both by bringing a rich programming language and a full-featured shell together into one package,
that runs on Linux, macOS, and Windows.
Nushell uses structured data everywhere, for example output of ls command, or REST API calls.
Continue reading →
In the lead-up to today’s Dutch parliamentary elections, we continually witness how political parties defend their own positions, often at the expense of constructive collaboration.
This dynamic is surprisingly familiar to anyone who has worked in a large organization.
The parallels between election campaigns and organizational silos are striking, and both can be damaging to the broader mission.
Just as political parties prioritize their own agendas over national unity, departments within organizations often pursue isolated goals, leading to fragmentation, inefficiency, and missed opportunities.
In both cases, the absence of a shared vision undermines progress.
The way forward lies in working together toward a shared goal, aligning diverse perspectives around a common purpose to create meaningful impact.
Continue reading →
Modern CSS gives us powerful math functions to simplify layout logic that used to require media queries.
One of these is the min() function.
With min() we can define a property that depends on multiple values, and the browser will automatically use the smallest one.
This helps us write more responsive and maintainable styles.
Continue reading →