Ernesto Garbarino's Articles and Posts

Fermat vs Eratosthenes

Fermat vs Eratosthenes

Benchmarking the generation of prime numbers using Fermat's Little Theorem and the sieve of Eratosthenes in Haskell.

Ernesto Garbarino - April 2, 2017

The Issue of Pricing Software Using T-shirt Sizes

The Issue of Pricing Software Using T-shirt Sizes

The T-shirt size model is convenient for pricing software but it may cause problems if used incorrectly.

Ernesto Garbarino - March 10, 2017

My Case for 70 Columns and 2 Spaces

My Case for 70 Columns and 2 Spaces

The ideal number of columns and whether to use tabs or spaces are frequent topics of debate among programmers. In this post I justify my preference for 70 columns and 2 spaces.

Ernesto Garbarino - February 15, 2017

Automate Your Expenses Without Telling Your Employer

Automate Your Expenses Without Telling Your Employer

In this post I show how I automated my expenses using Expensify and Greasemonkey.

Ernesto Garbarino - December 4, 2016

Exploring Event Sourcing and Related Patterns in Haskell

Exploring Event Sourcing and Related Patterns in Haskell

In this article we explore the Event Sourcing Pattern and its cousins (Retroactive Event, Parallel Models and Materialised View) using a Haskell model to investigate the implications of implementing said patterns and the challenges that arise from their use. In particular, we note that the Retroactive Pattern is difficult to implement in an efficient manner whenever the possibility of inserting an arbitrary number of "missed" events between existing events is desirable.

Ernesto Garbarino - October 9, 2016

Command and Query Responsibility Segregation (CQRS) Pattern

Command and Query Responsibility Segregation (CQRS) Pattern

The Command and Query Responsibility Segregation (CQRS) Pattern is a solution to the problems that are inherent to the Create, Read, Update and Delete (CRUD) approach to data handling. We use Haskell to explore the problem scope and proposed solution described by the pattern.

Ernesto Garbarino - August 28, 2016

Compute Resource Consolidation Pattern

Compute Resource Consolidation Pattern

The Compute Resource Consolidation Pattern is used to reduce costs by consolidating tasks when computational units are charged uniformly even in spite of low usage.

Ernesto Garbarino - August 14, 2016

Docker FAQ

This is a Docker tutorial written in a Frequently Asked Questions (FAQ) style.

Ernesto Garbarino - July 23, 2016

Vim for Microsoft Notepad Users

Many people abandon their Vim learning efforts because they fail to become productive quickly enough. The lowest common denominator form of behavioural expectation from a new text editor may be, arguably, embodied by Microsoft Notepad. This article provides a 1:1 mapping of Microsoft Notepad's functions to Vim so that Vim newcomers can feel quickly at home. Vim-specific bells and whistles are avoided to keep focused on the stated goal.

Ernesto Garbarino - October 18, 2015

Procurement Concepts

A list of procurement concepts.

Ernesto Garbarino - December 2, 2014

The Procurement Process

An overview of the procurement process in IT.

Ernesto Garbarino - December 1, 2014

Is Santa Buying Software This Year?

An essay on why software is not a regular capital good and why it should be treated differently in outsourcing arrangements.

Ernesto Garbarino - December 1, 2014

Integration Strategy

A high-level methodology to devise an integration strategy for an organisation.

Ernesto Garbarino - December 10, 2013

Front-End Integration CBA

A simple methodology to build a business case for an integration programme by performing a cost benefit analysis on the organisation's front-end systems.

Ernesto Garbarino - November 1, 2013

SOA Critique

A collection of essays about the SOA hype.

Ernesto Garbarino - August 29, 2013

Header Data in Messaging

An account of the type of data that is typically included on headers when using messaging systems.

Ernesto Garbarino - August 28, 2013

Business Integration Principles

An introduction to Business Integration and how it differentiates from SOA.

Ernesto Garbarino - August 8, 2013

Simple Object Access Protocol (SOAP)

An overview of the SOAP specification.

Ernesto Garbarino - July 18, 2013

Web Services Description Language (WSDL)

An overview of the WSDL specification.

Ernesto Garbarino - July 12, 2013

How Transactions Work

An overview of how transactions work in high-level terms.

Ernesto Garbarino - July 12, 2013

Political Agendas in Integration/SOA

A number of principles that apply whenever an Integration/SOA project abides to a political agenda as opposed to genuine business and technical benefit.

Ernesto Garbarino - April 1, 2013

Security in Business Integration

High-level overview of security dimensions and components.

Ernesto Garbarino - March 12, 2013

Message Exchange Patterns (MEPs)

An overview of the most common Message Exchange Patterns (MEPs) applicable to the Business Integration and SOA domains.

Ernesto Garbarino - February 1, 2013

Service Reusability KPI

A brief account on what a reusability KPI is in SOA.

Ernesto Garbarino - December 15, 2012

Enterprise JavaBeans (EJB) Guide

A guide to the old Enterprise JavaBeans (EJB) framework.

Ernesto Garbarino - September 17, 2004

Java 2 Guide

A concise guide to the Java 2 Programming Language. Every feature of the language is compulsively tested with examples.

Ernesto Garbarino - July 9, 2003

Numeric Systems

An overview of numeric systems.

Ernesto Garbarino - December 7, 2002