LINUX FILESYSTEMS, PART 3 – JOURNALIZED FILESYSTEM – AIRBAG FOR SERVER CRASH

Posted Leave a comment

This blog article details how a brutal interruption of a write operation can corrupt a whole filesystem and how a journal provides a protection against such incomplete writes. 3.1 Consequences of uncomplete writes When you write a file, the underlying filesystem is actually doing two different kinds of write operations: metadata and data writes. For […]

PEER TO PEER – HOLE PUNCHING

Posted Leave a comment

This article should only give you a little introduction to the hole punching process and not a complete composition of all technical details. First I want to show you why peer to peer (P2P) networks are very important for many Internet applications.One of the most important P2P applications is Skype, originally named “Sky peer-to-peer”, but […]

THE IMPORTANCE OF HASHING PASSWORDS, PART 1: CRYPTOGRAPHIC HASHES

Posted Leave a comment

Many applications store passwords for user authentication. Using an appropriate password hashing algorithm can efficiently protect the stored passwords even when the persisted password hashes get stolen by an attacker. Unfortunately many developers assigned with the task to implement a persistent password storage lack the necessary cryptographical background knowledge to choose a strong password hashing […]

THE COMMAND AND QUERY RESPONSIBILITY SEGREGATION (CQRS) DESIGN PATTERN

Posted Leave a comment

Introduction The ‘Command and Query Responsibility Segregation’ (CQRS) design pattern is based on the “Command-Query Separation” (CQS) principle from the book “Object-Oriented Software Construction“ by Bertrand Meyer (1988) and was first mentioned by Greg Young and Udi Dahan in 2010. This pattern has produced a lot of excitement and hype but the principle behind it […]