Software Development

TCP connections can break silently

Are you thinking of using Microservices? Here’s something you may not know: TCP connections can break entirely silently.

Mockito is Bad for Your Code

Mockito, a tool to make mocking easy, is actively encouraging test code. Here’s why.

Go is a terrible language

Go certainly caught a lot of attention. Let’s look at the bad parts!

Go is an awesome language

Go certainly caught a lot of attention. Let’s look at the good parts!

Building an API-driven software: OpenAPI

Now that we have all the basics covered it is time to implement OpenAPI / Swagger in our project.

Building an API-driven software: Database Access

Since our API-driven software is now running, let’s get started on the database.

Building an API-driven software: Setting up the backend

Let’s start our API driven software by setting up our basics for the backend.

Building an API-driven software: The Plan

Building up a stack with OpenAPI, Spring Boot, SpringFox, React, typescript and Material-UI.

The danger of monocultures

Monocultures already caused the death of one strand of banana. What can we learn from it in IT?

We are at war

There’s an invisible war being waged in the IT industry. A war to find out which way is the best to produce code.

A beginners guide to unit testing

Having anxiety attacks before deployment? Do you keep breaking stuff that already worked? Unit tests are here to help!

Your choice of IDE matters

Your IDE is your best friend when it comes to being efficient. Why do so many people not use it?

What the *** is an IoC container?

Just what in the name of the allmighy bit is an IoC / Dependency Injection container? If find that this confuses a lot of people. Let’s dig into it.

Make all classes final!

I have a pretty radical suggestion for clean code: make all your classes final!

What people misunderstand about OOP

Is OOP dead? Is Functional Programming the future? Some articles seem to suggest so. I would tend to disagree. Let’s discuss!

Security: What is Cross-Site Request Forgery?

Cross-Site Request Forgery is a pretty well known security vulnerability, yet many developers still fail to secure their applications. Let’s discuss this!

Security: What is Server Side Request Forgery?

Cross-site Request Forgery or CSRF is a well known security vulnerability. But what is SSRF?

Why Immutability Matters

I’ve talked about immutable objects in clean code before, but what exactly are they? Why do we use them?

Why should you use interfaces?

I’ve received the same question from a fair number of people: why would you even use interfaces?

Hexagonal React

ReactJS is a workhorse of frontend development, but it doesn’t do so well in terms of S.O.L.I.D. Can we change it by adopting a classic approach?

The Cookie Cutter Architecture

When it comes to business applications, you need an architecture that scales well. This is my take, based on Uncle Bobs EBI.

Why testing is hard

Why do so many developers struggle with testing? Why don’t we all have 9x% test coverage on our code?

Reproducability

Build environments, server setups should be reproducible, even 6 months down the line. How does this work?

The curious case of Interfaces

Interfaces are like internal APIs for your code. So how should you create them?

Structure your program based on Intent, not Architecture

When reviewing code I often see folders like model, view, controller, form, etc. There is a way to make your folder names talk, but this ain’t it.

Injection vulnerabilities: Bobby Tables and Friends

XSS, SQL injection, and other injection-class vulnerabilities can cause some serious damage. Let’s root them out!

One Controller, One Action

How many actions do you put in a controller? 5-6? 20? What would you say if I told you my limit is just one method?

Your marketing tools are killing your site performance

Google Tag Manager is probably the worst thing that happened to the web in the last 10 years. Yes, you read me right. Your shiny marketing tools are murdering your conversions. Wonder why? Read on.

Stop using PHP sessions!

OK, that title may be a little provocative, but PHP sessions have a fatal flaw that make them problematic with modern-day web applications. Let’s take a look.

Functional Object Oriented Programming

Does the title strike you as strange? Do you think functional and object oriented programming are two fundamentally contradicting paradigms? I don’t think so.

Working with Certificates in Java

Let’s face it, the Java crypto API is a mess. It is extremely hard to use, and very confusing. Let’s try and make sense of this sorry excuse for an API.

A few words on null

If you’ve ever seen a NullPointerException in a log, you know how frustrating it can be. You basically have no idea what happened and why. The stack trace is completely useless and you’re left debugging an application that you didn’t necessarily write. What is this and why does it happen? How do you avoid it?

The loose, the strict and the static typing

There seems to be a great deal of confusion in the programming world what loose, weak, strict, static and duck typing actually mean. Let’s go through it and clear a few things up!

Clean Code: Dependencies

Managing dependencies is hard, especially if we are using third party libraries and projects. Let’s talk about splitting our code into layers!

Datastructures 101: Basics

Why would you learn data structures? You won’t need it unless you are a programmer, database engineer or university student… wait, you are? Never mind, keep on reading.

Clean Code: Responsibilities

I heard you want to be a better coder. You want to use reusable pieces, and you want to have an easier time maintaining older code. You may also want to work better in a team and ensure there are less bugs.

Getting started in Object-Oriented Programming

So you’ve been programming for a while, and you are still stumped with what object-oriented programming actually is? Then this may be the guide for you. We’ll take a departure from traditional explanations and look at a new way of explaining OOP.

Introduction to SQL databases Part 2

In the previous episode of our journey we have spoken about the basics of writing an SQL query. However, we did not speak of the limitations you can place on SQL tables.

Introduction to SQL databases Part 1

Whether you are running a web app, a financial system or a game, you need some method of storing your data. SQL allows you to query most traditional databases, like MySQL or PostgreSQL. Let’s take a look.

Proper time handling with PHP and MySQL

Few developers actually know that not only character encodings but also time handling can cause you headaches when it comes to PHP and MySQL. Contrary to popular belief, PHP’s time handling actually works quite reasonably if you know how time actually works. If you don’t, you may be in for a big surprise when you add 3 days to a date and end up with a date 4 days from now. The answer lies within the *NIX time handling.