productivity

Git Pull Request Hygiene

It seems that pretty much everyone is using some sort of UI for their git interactions.

Which is obviously fine, until they are about to create a commit, in which case it’s using the “add all changes”-button and commit.

Good PR hygiene starts with keeping your commits small and focused: check your changes and exclude everything that is not part of the UserStory per se.

That’s why I advocate the use of git add --patch which gives you fine-grained control of exactly what you’re going to commit!

8 Jun 2024
git war-story

Synology Setup
How to setup your brand new Synology

You’ve got yourself a brand new Synology. Now you need ssh, git and Docker so you can actually start using it for more than, you know, mere file storage.

1 Jun 2024
synology

Regular Expressions: Tutorial
The absolute minimum amount of regex to learn

The minimum Regex one should know and still be fairly productive.

21 May 2023
regex tutorial cheat-sheet

Regular Expressions: Introduction
A regex intro so gentle it doesn't even contain a regex

You already know regex is a (very) useful skill? Skip to the Tutorial. If not, allow me to convince you…

Some people, when confronted with a problem, think ‘I know, I’ll use regular expressions.’ Now they have two problems. - Jeffrey Friedl’s Blog

Or the XKCD version:

Perl Problems

9 Apr 2023
regex

European Women in Tech 2022
Products built by only men will represent 50% of the world’s population.

Products built by only men will represent 50% of the world’s population.
That’s an issue! Unless you are building, euh…

Within the 20 years of working as a woman in IT, I am used to being part of the minority, female professionals. I graduated as the only female in the class of “Analyst programmer” and never had more than a handful of colleagues with the same gender.

13 Jun 2022
war-story tech-talk

The itenium Bliki

This is what usually is the very first blog post. With links to some new-old posts, migrated from my 2012 blog.

Personal Reference Bliki

Everyone who has worked with me for a while knows I’m really hyped about the Pragmatic Programmers. My original idea back in 2012 was to blog about their pragmatic tips, but this blog has instead turned into more of a “personal reference bliki”.

20 Jun 2019
pragmatic-tips

Autohotkey Debugging

If you are like me, you just started writing Authotkey scripts without ever really taking the time to learn the language properly. This blog post contains some scripts and tools to help you try make some sense of what is going on.

23 May 2019
autohotkey testing debugging

Rubber Duck Debugging

Talk to the Duck

When confronted with a problem, don’t ask the person next to you for help right away, he’s probably doing something important as well!

Instead, first tell the duck about it - out loud. If you don’t get to a solution, start explaining your problem in more and more detail until it hits you. If the mere explanation led to a solution, you avoid unwillingly turning your colleague into a CardboardProgrammer.

27 Feb 2019
debugging

Create a new blog post

This is something for me (or anyone else really) because I keep forgetting all this stuff.

  • Use {: .hide-from-excerpt} to do just that.
  • img size must be 360x300. bigimg is 1400x262.
  • A
  • Pragmatic Tips
25 Feb 2019
meta

Autohotkey DynaRun

Run any Autohotkey script on the web with a single.. Autohotkey hotkey.

17 Feb 2019
autohotkey

Autohotkey Use Case: Submitting a Form

A simple Autohotkey use case you can start using in your application right away:
Filling in an entire form with predefined values.

31 Jan 2019
autohotkey

Programming Mnemonics

Mnemonics - helping developers remember intrinsics since 1973.

A mnemonic
a system such as a pattern of letters, ideas, or associations which assists in remembering something.

12 Jan 2019
cheat-sheet

Yaml tutorial

Everyone happy when the downfall Xml was a fact with the widespread use of Json. Less tags, more data. What’s there not to like. It’s also just so much easier for a human to read.

If it wasn’t so straightforward to parse JSON in the omnipresent JavaScript, Yaml might have had a good chance to take over the world being the most readable data serialization language.

13 Aug 2018
tutorial

Autohotkey Tutorial - hotkeys

First we’ll cover the basic Autohotkey hotkey syntax. Which is arguably already pretty confusing for newcomers in and by itself.

But we don’t stop there as after adding more and more hotkeys, it will also become harder and harder to think of new key combinations that are somehow still memorable. There is only so much you can do with the # (Windows) key etc.

Time for some creative hotkey combinations! ‘Advanced Hotkeys’ covers code snippets on how to run different scripts on single, double or triple key presses as well as how to differentiate between long(ish) key presses or mouse clicks. And more…

Example

; Single line hotkey
^#D::MsgBox Pressed Control + Win + D (%A_ThisHotKey%)

; Control + Win + C: Multi line script
^#C::
Run, notepad.exe
WinWait, Untitled - Notepad, , 3
Send, Dear sir,{enter}{enter}
Return
2 May 2018
autohotkey

Advanced Windows Explorer

A listing of handy but less known shortcuts in Windows Explorer and some Autohotkey examples on how to add extra functionality.

Open Windows Explorer, the most direct way:

Win + E : Open Windows Explorer


22 Apr 2017
autohotkey powershell windows

Pragmatic Tip 2: Think! About Your Work

Turn off the autopilot and take control. Constantly critique and appraise your work.
— The Pragmatic Programmers

2 Dec 2012
pragmatic-tips

Pragmatic Tip 1: Care About Your Craft

“Why spend your life developing software unless you care about doing it well?”
— The Pragmatic Programmers

Yet Another Blog

Scott Hanselman said “Now, go write, create, commit.”. It took a while but here we are, blogging about “Programming and stuff”. I will be writing about languages and platforms I’m working on or learning about, solutions to problems I’ve struggled with and really any CS related topic I’m otherwise curious about.

1 Dec 2012
pragmatic-tips

dev-setup

Can you reset my mac
Recover your mac without password

A friend got himself a second-hand iMac but couldn’t log in because he didn’t have the Apple Account credentials.

Me with computer science degree as Jessica Jones and relative looking at me to fix their computer as Killgrave meme

1 Dec 2024
tutorial

Git Hooks with Husky v9
Avoid pushing changes that break the build with githooks and Husky.

typicode/husky : Git hooks made easy 🐶 woof!

8 Sep 2024
git

Frontend Track Setup
Setup your machine for the itenium Frontend Track

Q: How do you install Node?
A: Well, you don’t!

You install NVM (Node Version Manager) because every project uses a different versions and they are not always that compatible!

31 Aug 2024
tutorial windows testing debugging

Build your own MacroPad
Michiel's latest hands-on workshop

Last Thursday we built our own MacroPad at itenium. During this session the focus was on learning to solder and putting everything together, all under the supervising eye of Michiel.

5 Oct 2023
fun tech-talk

VSCode: Editor Settings and Shortcuts

VSCode Editor

Pragmatic Tip 22: The editor should be an extension of your hand; make sure your editor is configurable, extensible, and programmable.

17 Jul 2019
cheat-sheet tutorial pragmatic-tips

Pragmatic Tip #22 : Use A Single Editor Well
A Sublime Goodbye

VSCode Editor

Pragmatic Tip 22: The editor should be an extension of your hand; make sure your editor is configurable, extensible, and programmable.

As a long time Sublime user, the infrequent updates and missing support for new-ish stuff started to become quite apparent. Like all plugin maintainers have turned to Visual Studio Code.

And so I finally decided to leave Sublime Text 3 behind. Welcome Visual Studio Code, the new goto editor.

17 Jul 2019
cheat-sheet tutorial pragmatic-tips

Git Hooks with Husky

Update for Husky v9
A lot has changed in Husky since this blog post. See the 2024 update of this article instead!

Avoid pushing changes that break the build with githooks and Husky.

typicode/husky : 🐺 Git hooks made easy

13 Apr 2019
git

Exotic Git Snippets

Some git commands and scripts that come in handy from time to time.

5 Apr 2019
git

Git Assume Unchanged

Ideally one would create a new gitignored file to configure an application to fit his local development environment but when you do have to revert to modifying a committed configuration file, at least there is “git assume unchanged” to avoid committing your changes in these files accidentally.

Assume Unchanged

# Git assume a file
git update-index --assume-unchanged fileName

# And unassume with
git update-index --no-assume-unchanged fileName
18 Feb 2019
git

Developing with LocalDb

Tutorial on how to use LocalDb as a lightweight Sql Server substitution for development purposes.

8 Oct 2018
sql tutorial

Git-NumberedAdd for PowerShell

After copying file paths from git status output and pasting them after a git add quite a few times by now, I’ve written a small PowerShell script to manipulate the working directory and staging area with fabricated indexes.

30 Aug 2018
git powershell product

Less for your git pager

A git diff or git log starts the less program. Perhaps not the fanciest tool but more powerful than you might expect.

This post details the arguments that can be passed to less and also how to navigate once less is running. Things not relevant for git are omitted.

Your current configuration:

git config --get core.pager

If this returns nothing, there is room for improvement there!

TL&DR:

Configure something sensible:

# Short version
git config --global core.pager "less -eFiJM~ -j3 --tabs=3"

# Not so short version
git config --global core.pager "less --LONG-PROMPT --tabs=3 --quit-at-eof --quit-if-one-screen --tilde --jump-target=3 --ignore-case --status-column"
h : See all less commands.
18 Aug 2018
git

PowerShell and Git for the colorblind

My PowerShell, Posh-Git and .gitconfig color configuration because of some red-green troubles with the default configurations.

21 Apr 2017
powershell git

Managing Environment Variables with PowerShell

Working with environment variables in Windows is as easy as:

Win + Pause > "Advanced system settings" > "Environment Variables..."

After which you get a tiny, unresizable, form where you can view and manage them. Something better eventually arrived with Windows 10 but still, PowerShell :)

Use Autohotkey to open the window with Left Alt + Pause:

LAlt & Pause::Run % "rundll32 sysdm.cpl,EditEnvironmentVariables"
12 Apr 2017
powershell windows

PowerShell profiles

Reload PowerShell profile

. $profile
11 Apr 2017
powershell windows

Package Manager Console Entity Framework 6 Migrations profile

This tutorial is about adding the following functionality to the Entity Framework Migrations CLI:

  • Execute commands against the project containing the migrations by providing the most likely -Project parameter value
  • Allow updating the database using a numeric TargetMigration (-2 = migrate to the third last migration)
10 Apr 2017
powershell

Synchronize Additional Folders With Dropbox Using Junction on Windows

Dropbox is great! I’m pretty sure you’ve already heard of it but for those who have not: It allows you to synchronize about 2 gig (and up to 16 gig with some effort) worth of documents, pictures or other files between your different computers, laptops or other mobile devices. The files are kept on your machine(s) and in the cloud, but they are also accessible from anywhere with a browser and shareable with everyone you’d like.

4 Mar 2013

Notepad++ double click PHP variable including the $ sign

Built-in in Notepad++ since 2016:

Settings > Preferences > Delimiter > Add you character as part of word > $

7 Dec 2012

Notepad++ Bookmarks

In many text-editors there are means to easily jump with the cursor between different points in the code and this is no different in Notepad++. Bookmarks have their own margin where they can be toggled with a mouse click.

4 Dec 2012

dotnet

Testing Internal Methods
Testing internal methods of a class

Typically you want to write tests only for public methods. You want to avoid writing tests for private methods so that when you change the implementation, your tests remain green and you can do that ruthless refactoring without having to worry about introducing new bugs.

8 Dec 2024
testing

Database Auditing with EntityFramework and SQL Server
Keep track of what's happening

Keeping track of database changes in SQL Server with EntityFramework, let’s go over your options with sample implementations.

All code with some UnitTests can be found at the Github repository.

26 Oct 2024
tutorial sql

.NET Testing Frameworks
Comparing NUnit, xUnit and MSTest

Comparing .NET Testing Frameworks.

xunit/xunit : Community-focused unit testing tool

nunit/nunit : NUnit Framework

microsoft/testfx : MSTest framework and adapter

13 Mar 2024
testing cheat-sheet

Xamarin.Forms vs .NET MAUI

On the 8th of November 2022 .NET 7 was released, including .NET MAUI (.NET Multi-platform App UI). In this blogpost we will investigate the differences between Xamarin.Forms and its successor.

16 Apr 2023

EPPlus: No longer free to use in a commercial setting

Version 4.5.3.3 is the last version of EPPlus you can use without a license for commercial use.

9 Mar 2023
excel

.NET Regex Tutorial

Not nearly as confusing as it is in JavaScript.

using System.Text.RegularExpressions;

bool mach = Regex.IsMatch("input", @"\w+", RegexOptions.None);
Match match = Regex.Match("input", @"\w+");
IReadOnlyList<Match> matches = Regex.Matches("input", @"\w+");
string result = Regex.Replace("input", @"(\w+)", "$1");
19 Apr 2019
cheat-sheet regex

Debugging in Visual Studio

Basic Shortcuts

F5 : Start debugging
Control + F5 : Start without debugging
Shift + F5 : Stop debugging
Control + Shift + F5 : Stop, rebuild and start debugging
Control + Alt + P : Attach to process


Control + Alt + Break : Break (Debug > Break All)
F10 : Step over
F11 : Step into
Shift + F11 : Step out
Control + F10 : Run to cursor
Control + Shift + F10 : Set next statement
Alt + Num * : See current statement


24 Feb 2019
tutorial cheat-sheet debugging

NSubstitute Tutorial

The creators of NSubstitute craved a mocking framework with comparable capabilities to the alternatives but with a shorter, more succinct syntax. They have not failed to do so and I loved the NSubstitute syntax right away.

12 Aug 2018
tutorial testing

Excel formulas cheat sheet

Companion to the EPPlus series, specifically to Part 2: Formulas.
Covering the EPPlus syntax and implemented functions.

28 Mar 2018
excel cheat-sheet

Create Excels with C# and EPPlus: Miscellaneous

Miscellaneous features

EPPlus can do a whole lot more for you. This post covers some interesting stuff that didn’t really fit anywhere else.

2 May 2017
excel tutorial

Create Excels with C# and EPPlus: Import

IEnumerable objects

Exporting data to an Excel doesn’t get easier than this

using (var package = new ExcelPackage())
{
	var sheet = package.Workbook.Worksheets.Add("IEnumerable");
	var data = new[]
	{
		new {Name = "A", Value = 1},
		new {Name = "B", Value = 2},
		new {Name = "C", Value = 3},
	};
	bool generateHeaders = true;
	sheet.Cells["A1"].LoadFromCollection(data, generateHeaders);

	// Overwrite headers with something fancier
	sheet.Cells["A1"].SetHeaders("Name", "Value");
	package.SaveAs(new FileInfo(@""));
}
1 May 2017
excel tutorial

NSubstitute vs Moq

Comparing NSubstitute syntax with Moq, probably the most used mocking framework out there at the moment.

moq/moq4 :

nsubstitute/nsubstitute :

30 Apr 2017
tutorial testing

Create Excels with C# and EPPlus: Formulas & DataValidation

In case your users want to continue working with the Excels after generation.

Not a problem for EPPlus. Instead of calculating values and writing them to an excel, leverage the power of Excel formulas.

27 Apr 2017
excel tutorial

Create Excels with C# and EPPlus: A tutorial

Version 4.5.3.3 is the last version of EPPlus you can use without a license for commercial use.
See some alternatives if that is a dealbreaker for you!

26 Apr 2017
excel tutorial

.NET Number and Date Formatting

A cheat sheet with everything there is to know about formatting the primitive types, DateTimes and TimeSpans in .NET.

20 Apr 2017
cheat-sheet

VB.NET vs C# Syntax differences

A cheat sheet outlining the syntax differences between VB.NET and C#. This post is written specifically for advanced C# developers with little to no VB.NET knowledge who need to do some VB.NET coding.

Because some things are just so similar but still confusingly different in VB.NET vs C#…

Along the way we’ll make some amazing discoveries like:

  • There are things VB.NET just can’t do (pointers, …)
  • There are a few cases where VB.NET code is shorter than its C# counterpart (gasp!)
  • VB.NET defaults are not what you might expect from a strongly typed language due to its VB6 legacy (Option Strict, Explicit)
  • There is some VB.NET only stuff that comes in handy from time to time
15 Apr 2017
cheat-sheet

javascript

Angular 17 - What's new?
Not just a rebranding!

Angular 17 has landed with a rebranding, and an a new documentation home which now also offers an interactive learning experience, but what else is new?

There are a plethora of improvements such as:

  • hydration graduated from developer preview
  • standalone APIs is now the default
  • new @angular/ssr package
  • improved SSR functionality
  • the Signals API is mostly out of developer preview (effect() remains in it)
  • new afterRender and afterNextRender lifecycle hooks
  • Vite & esbuild are now the default for new projects
  • experimental view transition support
  • automatic preconnect in the image directive
  • defer loading of the animations module
  • style and styleUrls as strings
16 Feb 2024
angular

React Component Profiling
Extensive guide on React performance optimalization in a real-world application

Serious rendering performance troubles in confac, our internal React invoicing app. It reads the entire database in memory 😲 and works pretty much exclusively on the frontend with the Redux store, so it’s not the db that is the performance bottleneck for once 😜

Worst case scenario on the /monthly-invoicing page is a whopping 10s wait time for a single screen to become responsive. Not good.

6 Oct 2023
react war-story

The itenium Slack Meme Bot® : with AI?
Implementation was easy enough. Is ChatGPT up for the task?

A few hours of fun, playing around with Docker, Cron, Node, Shell and a FileServer. Can ChatGPT do this too? And maybe in less time?

To be honest, I am very biased against ChatGPT but still hoping, very hard, that it can just do this, so that I can start using it for simple stuff, POCs and more!

5 Jul 2023
product fun

The itenium Slack Meme Bot® : Implementation
How was the Slack Meme Bot implemented?

How does the Slack Meme Bot work, technically?

4 Jul 2023
product fun

The itenium Slack Meme Bot® : Installation
Use your meme collection to liven op your Slack channel

You want to post memes to Slack but who has time for that?
Time to automate this to avoid scrolling through your entire collection whenever it is time to post one!

3 Jul 2023
product fun

What chart library to use in React?
A quick comparison of the most popular React Charting frameworks

The question “What chart library to use in React?” came about when I had to actually find one to introduce in a project. As suggested by a colleague, I created this blog post with the results of my research, maybe saving others from having to do the same.

17 May 2023
react

JavaScript Testing: Jasmine to Jest
What you need to know when switching to Jest

Jasmine vs Jest

When you search “Jasmine vs Jest”, you get a lot of high level comparisons which might be helpful when you have yet to write your first test. This is no such article, this is the article that answers the question

What are the actual syntax and API differences between Jasmine and Jest?

Head to the bottom of the article for the tl;dr difference table or for the slick VSCode integration.

1 Apr 2023
tutorial testing


AVA Tutorial

avajs/ava : 🚀 Testing can be a drag. AVA helps you get it done.


A concurrent test runner from the Andromeda galaxy. If I was to stray from Jasmine then it could only be for a project Sindre Sorhus is working on :) The screenshots on the project site promised extensive assertion failure output with clean stack traces and built-in Promise, async/await, Observable and React component support. So I tried it out and yup, AVA delivered.

Get Started

# Install
npm init ava

# Run tests
npx ava --watch --verbose
24 Apr 2019
testing tutorial

Vue.js Tutorial

vuejs/vue : Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

Why Vue

  • 100k+ ⭐: So many people can’t be wrong
  • Declarative rendering with a cool, terse syntax
  • Low learning curve
  • Reactive and composable view components
  • Optional official vue-router and vuex (statemanagement)
  • @vue/cli: Scaffold project with optional support for TypeScript, PWA, CSS Pre-processors, Linters, Tests, …
  • Automatic dependency tracking
  • Virtual DOM
  • Supports IE9+
19 Apr 2019
tutorial

Moment.js Tutorial

Moment.js is a legacy project, now in maintenance mode. In most cases, you should choose a different library.
See some alternatives at the end of this post.


Proceed at your own peril

Moment.js is a mutable wrapper with a fluent interface for the native JavaScript date object (property _d). Use .toDate() to convert back to a JavaScript date.

19 Apr 2019
cheat-sheet tutorial


JavaScript RegExp Tutorial

A cheat sheet for the regex syntax in JavaScript.

MDN RegExp Guide

TL&DR

/^$/.test(''); // boolean
'ok'.replace(/(o)(k)/g, '$2$1');
// Other replacements:
// $$ (literal), $& (all), $` (before), $' (after), $<name>

const matchG = 'aaa'.match(/a/g);
matchG == ['a', 'a', 'a'];

const matchNoG = 'str'.match(/(st)r/);
matchNoG == Object.assign(['str', 'st'], {groups: undefined, index: 0, input: 'str'});
matchNoG == /(st)r/.exec('str');
5 Mar 2019
cheat-sheet regex

Array.prototype for .NET developers

The Array.prototype functions have been available for a long time but it’s since Arrow functions that “Linq lambda syntax”-like functionality is available in JavaScript.

This blog post explains the most common functions by comparing them to their C# equivalents.

A basic example:

// JavaScript
const result = [0, 1, 2, 3, null]
    .filter(x => x !== null)
    .map(x => x * 10)
    .sort((a, b) => b - a);

expect(result).toEqual([30, 20, 10, 0]);

// C#
var result = new int?[] {0, 1, 2, 3, null}
    .Where(x => x != null)
    .Select(x => x * 10)
    .OrderByDescending(x => x)
    .ToArray();
24 Feb 2019
cheat-sheet tutorial

Angular Pipes

Pipes: Chainable, declarative display-value transformations to use in your Html.

This post covers:

  • All Builtin Angular pipes (json, async, string, array, i18n)
  • How to install different locales (currency, decimal, date, percent)
  • How to generate, implement and test your custom pipes
  • Some examples of custom pipes (ngx-pipes and angular-pipes)

An example:

<!-- This does exactly what you'd think -->
{{ value | uppercase }}
20 Feb 2019
angular cheat-sheet tutorial

Angular Road Trip

Today I want to blog about my Angular(2 - 6) experiences the past years.

After 3 years of desktop development I’ve started with Angular 2+ in july 2016, when it was still in beta.

Back then

Back then the landscape was a lot more difficult than it is today.

22 Oct 2018
angular war-story

JavaScript Testing: Jasmine plugins

What would we be without some extra plugins. There are over 1000 Jasmine npm packages and we’ll cover them all here.

6 Aug 2017
tutorial testing

JavaScript Testing: Jasmine customization

Make your Jasmine experience even more luscious with custom matchers and global convenience methods.
Mock global variables in your modules with jasmine.getGlobal().pi = 3.14.

5 Aug 2017
tutorial testing

JavaScript Testing: Jasmine async syntax

Need to test async code? No problem for Jasmine. There is done() to inform Jasmine a test has finished running.

With jasmine.clock(), the value of new Date() can be manipulated.

31 May 2017
tutorial testing

JavaScript Testing: Jasmine Spies

Spies, the Jasmine implementation for mocks featuring spyOn & spyOnProperty as well as jasmine.createSpy(Obj) and how to inspect calls made.

30 May 2017
tutorial testing

JavaScript Testing: Jasmine syntax

The basic example contains the general test suite structure and the two most used matchers toBe() (===) and toEqual() (deep compare), followed by all the other matchers that come out of the box.

To finish some helpers for your workflow: how to only have certain tests run and how to exclude tests.

30 May 2017
tutorial testing

JavaScript Testing: Getting started with Jasmine

Probably the most widely used JavaScript testing framework.

This tutorial covers installation, configuration and execution only. For the Jasmine syntax, see parts 2 to 4!

29 May 2017
tutorial testing

design

KISS and Decorators
Decorators: a powerful and often misused design pattern

I picked up a UserStory to make a small adjustment.

The story was simple enough as was the required change but… Looking at the code, how was it supposed to work? It looked like it just.. Shouldn’t…

Took some time but I found out, the behavior of the software was defined in the IOC registration, at startup, with Autofac.

3 Sep 2024
war-story

Bootcamp: 3D Modelling
A little internal 'best screenshot' competition!

For our bootcamp this year, Tom Pauwaert introduced us to the Unreal Engine. We started from the course materials of Emiel Sleegers to build a landscape inspired by the grandeur of ancient Rome and Greece.

25 Mar 2024
fun

Book review: Tidy first?
Cute, fuzzy little refactorings that nobody could possibly hate on

Kent Beck, who certainly isn’t an unknown name in the software development world recently published this book, which is based upon his newsletter with the same name.

Price: €39.99 for the eBook
Publication date: October 2023
Publisher: O’Reilly Media, Inc.
Pages: 99
ISBN: 9781098151249

24 Dec 2023
book-review

First Hack
... If you can call it that much.

A long, long time ago, when games like Utopia and Planetarion were all the rage, I started playing Ambar (since down) with a few friends. This could be the story of why one should have an IT-guy in the team.

27 Jan 2021
fun war-story

CQRS and CRUD
A Loving Relationship

A ramble against CQRS

A lot of interesting articles have been published about Command Query Responsibility Segregation.

This is a mere rant. Not necessarily against CQRS per se, but against when it is being applied in spite of Martin Fowlers cautionary words:

For some situations, this separation can be valuable, but beware that for most systems CQRS adds risky complexity.
Martin Fowler (CQRS Article)

19 Sep 2019
war-story

DateStart + DateEnd
And Their Evil Relatives

ValueObjects

A ramble against objects containing DateStart & DateEnd pairs of properties.

Some of their equally evil relatives:

  • DateStart & TimeSpan or Day/Month only in DateTime, etc.
  • decimal Money & string Currency
  • decimal X/Y and/or Width/Height

This is the case for the ValueObject:

A small simple object, like money or a date
range, whose equality isn’t based on identity.
— Martin Fowler

19 Jun 2019
war-story

Robocode Tutorial

robo-code/robocode : Build the best - destroy the rest!

Robocode is a programming game, where the goal is to develop a robot battle tank to battle against other tanks in Java or .NET. The robot battles are running in real-time and on-screen.

18 Jun 2019
fun

Robocode Installation & Debugging

robo-code/robocode : Build the best - destroy the rest!

Robocode is a programming game, where the goal is to develop a robot battle tank to battle against other tanks in Java or .NET. The robot battles are running in real-time and on-screen.

18 Jun 2019
fun

trends

European Women in Tech 2023
Beyond Algorithms: Explainable AI

(And of course, this blog is written with the help of AI)

In the ever-evolving world of technology, the European Women in Tech in Amsterdam shed light on some crucial insights and perspectives. From the wise words of Elisabeth Theophille, who emphasized the importance of embracing change and enjoying the journey, to the valuable lessons learned from industry leaders like Heineken, Ikea, and ING, the event provided a unique opportunity to explore the complexities of digital transformation and AI.

This blog post delves into the key takeaways from the event, highlighting the importance of responsible AI, organizational transformation, the role of data-driven decision-making, and Ikea’s contribution to the realm of Explainable AI.

19 Oct 2023
war-story tech-talk

Quality Assurance @ itenium
Current Trends in Q&A Engineering and How Itenium Can Help

As technology continues to advance at an exponential rate, the field of quality assurance (Q&A) engineering is constantly evolving. One of the current trends in Q&A engineering is the increased use of automation. As the complexity of software applications continues to grow, so does the need for efficient and reliable testing methods. Automated testing can help speed up the testing process, improve accuracy, and reduce costs. With the use of advanced tools and techniques, automated testing can also be customized to fit the specific needs of each software project.

29 Jun 2023

Functional Analysis @ itenium
Unleashing the Power of Functional Analysis: A Guide for Success

A functional analyst is responsible for analyzing and understanding the functional requirements of a software system. They work closely with stakeholders, such as clients or end-users, to identify their needs and translate them into functional specifications that can be used by developers to build the software.

29 Jun 2023

Java @ itenium
We've got some of the best Java Brewers in town

In the world of software development, Java has long been one of the most widely used programming languages. Its versatility and reliability make it a popular choice for a wide range of applications, from mobile apps to enterprise software systems. However, staying up-to-date with the latest trends and developments in Java can be a challenge, especially for busy development teams with tight project deadlines.

29 Apr 2023

.NET @ itenium
.NET Magicians in the House

As we look ahead to 2023, the world of .Net development is evolving rapidly. There are several new trends that are emerging and are set to dominate the industry in the coming years.

29 Mar 2023

java

Vaadin: Translation Oopsie
A deep dive into an interesting translation issue

At a client where I worked on a Vaadin application that had to be upgraded from Vaadin version 8 to version 22, we encountered an interesting issue regarding the way translations were done in the application.

22 May 2023
war-story

security

Security Bootcamp Prep
Start our game of capture the flag with an edge

The next iteration of the itenium Security Bootcamp is at the Michigan Technology Conference 2024. Its vulnerable applications will be running for the duration of the conference: exploit the vulnerabilities (hack!?) and submit captured flags in the Portal website.

Here is how those that will participate can prepare themselves.

If the term SQL Injection does not ring a bell, you may want to start by reading up on that and other vulnerabilities such as: XSS, CSRF, OWASP, …

16 Mar 2024
tutorial hacking

The Security Bootcamp
Strengthen Your Organization's Defenses with our Security Bootcamp

The Security Bootcamp is a transformative training program designed to empower your IT department with hands-on cybersecurity skills, enhance team collaboration, and instill a culture of security consciousness. Participants engage in hacking challenges, problem-solving, and teamwork, ultimately growing as protectors of your digital assets.

4 Oct 2023
hacking

Hacking Tool: sqlmap
Database takeover tool

sqlmap is a CLI tool for automated discovery of SQL injection vulnerabilities in web applications.

What

sqlmapproject/sqlmap : Automatic SQL injection and database takeover tool

3 Oct 2023
tutorial hacking

Hacking Tool: hydra
Brute force login cracker

Show how easy it would be to gain unauthorized access to a system remotely.

What

Hydra is a brute-force tool to perform dictionary attacks against protocols such as Ftp, Http(s), Cisco, Oracle, Postgres, SMTP, Telnet, SSH and many more.

vanhauser-thc/thc-hydra : hydra

2 Oct 2023
tutorial hacking

Hacking Tool: nmap
The free Network Mapper

Before Trinity could take down the electric grid, she had to find an attack vector. Her hack started with… nmap!


And then used an actual SSH exploit. Nmap can obviously do more than tell you whether SSH is on port 22 ;)
1 Oct 2023
tutorial hacking

docker

Docker + Mongo: a guide
Load data with js or sh

How to load some initial data after spinning up a mongo with Docker.

If you want to follow the examples:

git clone https://github.com/itenium-be/Docker-Mongo
cd Docker-Mongo
docker compose up -d --build

# After fiddling, force re-creating the mongos:
docker compose down -v
docker compose up -d --build
18 Aug 2024
synology mongo

databases

QA TechEvent: SQL Training
Gamification - our internal SQL competition

This month our QA TechEvent was “SQL Training”. Goal was to score most points by solving more and more complex SQL exercises against three datasets: countries of the world, teachers + departments (postgres) and the football worldcups (sql server).

Which country scored the most owngoals? Read on to find out!

Special SQL Skillset Taken meme

3 Oct 2024
sql product fun