JDriven Blog

Kotlin Kandy: Transform Map Keys Or Values With mapKeys And mapValues

Posted on by  
Hubert Klein Ikkink

Sometimes you want to transform only the keys in a Map, or only transform the values. Kotlin has two useful methods to achieve this: mapKeys and mapValues. You can use mapKeys to transform the keys of the map while keeping the values the same. With mapValues you can transform the values of the map while keeping the keys the same. Both methods accept a lambda function as asrgument of type Map.Entry and must return the new key or value. In order to transform the keys or values and add the result to an existing Map you can use the methods mapKeysTo and mapValuesTo. The first argument is the existing (mutable) Map and the second argument is the lambda function.

Continue reading →

Nushell Niceties: Wrapping External Commands With def --wrapped

Posted on by  
Hubert Klein Ikkink

The def keyword in Nushell is used to define a custom command. By adding the --wrapped flag you can tell Nushell to accept unknown flags and arguments and pass them on as strings. In the command parameters you use a "rest" parameter defined by …​ to capture the remaining arguments. Then in the command body you use the spread operator …​ to expand them again. This is very useful when you want to create a small wrapper around an external command with lots of options, but without having to define all those options yourself.

Continue reading →

AI's Impact on Team Dynamics (Part 3) Collaboration & Healthy AI Use

Posted on by  
Erik Pronk

In the previous part, I discussed how AI impacts learning and team effectiveness, highlighting the tension between speed and deeper understanding. While AI offers clear advantages, it also introduces new risks for long-term team health.

In this final part, I focus on how teams can consciously integrate AI while preserving collaboration, psychological safety, and strong team dynamics.

Continue reading →

AI's Impact on Team Dynamics (Part 2) Learning, Speed & Trade-offs

Posted on by  
Erik Pronk

In part one, I explored how AI is subtly changing team dynamics through isolation and echo chamber effects. While AI makes individual developers more productive, it can also reduce the natural collaboration that strengthens teams.

In this part, we take a closer look at what this means for learning, knowledge transfer, and the balance between speed and depth in software development.

Continue reading →

AI's Impact on Team Dynamics (Part 1) Isolation & Echo Chambers

Posted on by  
Erik Pronk

This blog kicks off a three-part series based on my article “AI’s Impact on Team Dynamics,” originally published in a special edition of JavaPro magazine for JCON Europe 2026, titled Java in the Age of AI. You can find the full magazine here.

In this first part, I explore how AI is already reshaping the way we collaborate as teams and the less visible effects that come with it.

Continue reading →

Nushell Niceties: Check Semantic Version Is A Match

Posted on by  
Hubert Klein Ikkink

In a previous blogpost you can learn about the semver command in Nushell to transform a string value into a semver type. The command has a subcommand match-req. You can use this command to check if a version matches part of the semantic version parts. The result is a boolean value. The version to compare with doesn’t have to defined fully, but could exist of only the major, minor or patch parts. The value you pass can also be used to check if a version is greater or smaller than a given version. A range with a lower and upper version to match on can be defined as well. The boundary values are separated by a comma.

Continue reading →

Considerations on cognitive load and organisational structure in sociotechnical systems.

Posted on by  
Martijn Ras

In this article we present our rule of thumb for the sizing of solutions based on what an organisation can handle. Our primary goal is to make you aware of cognitive load theory and sociological considerations on organisational structure. Be aware that these are somewhat fuzzy theories, which are still debated and do not provide us with definitive answers. We are still convinced that taking these ideas into consideration helps in making organisations more effective. With our rule of thumb we hope to provide organisations a tool for conversation around how to effectively organize flows of work, without overloading and burning down teams.

Continue reading →

Nushell Niceties: Sorting Version Values With Semver Ordering

Posted on by  
Hubert Klein Ikkink

The semver Nushell plugin can be used to work with string values as semver type as you can see in a previous post. You can use the semver sort command to sort string values with ordering rules for semantic versions. With natural ordering of string values a value of 10.0.1 is placed before 2.1.0, but if you use semver sort the ordering will be correct. The command will look at all the parts of the semver type. So a major version of 2 is placed before 10. If the major version part is the same than the minor part is used for ordering and so on. To sort in descending order you can use the option --reverse or the short option -r.

Continue reading →

Lazygit

Posted on by  
Ronald Koster

Arguably the most popular version control system is Git. Many developers use the command-line version alongside a Git plugin in their favorite IDE. Now those work just fine, but did you know there is also a very nice TUI (Text-based User Interface, alternately Terminal User Interface) for Git called Lazygit. It is a very cool tool. Read on for more information.

Continue reading →

shadow-left