## Book Review: Version Control With Git

Your first encounter with GIT as a version control tool may be quite intimidating, especially if all you had been using so far was something simpler like Sub...

Your first encounter with GIT as a version control tool may be quite intimidating, especially if all you had been using so far was something simpler like Sub...

Today I was debugging some interaction between one of our products and Twitter 1.1 API protected by OAuth 1.0a . As it happens, I was using Fiddler to have a...

Antonio Vidal has translated this post into Spanish: you can find it here. Dependency injection is a very simple concept: if you have an object that interac...

Building Reduce and Map from the Ground Up with F# Today I've found myself reading again the excellent paper Why Functional Programming Matters, where ...

I thougth I'd just share a couple of Visual Studio C# code snippets to implement disposable classes, based on the well known .NET dispose pattern. You can...

Take-Away If you are in a hurry, here's the take-away: Pros: You can carry lots of technical books with you, without breaking your shoulder. The e-ink is e...

It was exactly 2 years ago. I was embarking on the biggest change in my career as a software developer. Coming from about 10 years of development for Motoro...

Go to Part 1 Controlling the Life Cycle of your Objects In the previous post we did not concern ourselves with the lifecycle of the object returned fr...

What Is Ninject There are several Inversion of Control (IoC) containers for .NET to pick from (such as Castle Windsor, Structure Map and Microsoft Unity, jus...

2011 brings us yet another Project Euler problem to tackle: this time is Problem 18 one of the most interesting that I have solved so far: By starting a...

Project Euler problem 17 turned out to be quite an easy one. If the numbers 1 to 5 are written out in words: one, two, three, four, five, then there are 3 +...

It's time for another Project Euler exercise. This time around it is problem 16: 215 = 32768 and the sum of its digits is 3 + 2 + 7 + 6 + 8 = 26. What is th...

With Project Euler Problem 15 we approach the fascinating world of graphs (but, as we shall see, only in a very tangential fashion): Starting in the top le...

Project Euler Problem 14 introduces the fascinating Collatz Conjecture: Take any natural number n. If n is even, divide it by 2 to get n / 2, if n is odd mu...

In this blog post I interview Davide Varvello, currently working as XP coach at 7Pixel. I've had the pleasure to work with Davide for a couple of years durin...

Now that with F# (and .NET 4.0 in general) we have support for big integers through the BigInteger type, Project Euler problem 13 has become a trivial one: ...

After a brief digression with an RPN Calculator, here we are again with a new Project Euler problem: The sequence of triangle numbers is generated by adding...

While continuing my journey in F#, after playing with Project Eulero problems for a few weeks, I have come across another excellent excercise site which ...

Project Euler Problem 11 is an interesting one; when addressed with a functional approach it lends itself to be solved using function composition. Let's h...

Project Euler Problem 10 asks a very simple question, again dealing with prime numbers: Calculate the sum of all the primes below two million.

This is the third post on a small series about transferring large files with WCF using streaming : File Transfer With WCF File Transfer With WCF: Part II Fi...

Project Euler Problem 9 introduces the interesting mathematical concept of Pythagorean Triple. Let's have a look at the question: A Pythagorean triplet is...

After two easy problems, it's now time for Problem 8. At first, this problem also seemed to me more complex than it really is. Let's have a look at the que...

Project Euler problem 6 is one of the easiest that I have encountered so far. Also, Problem 7 is quite easy to solve once you have a function for prime nu...

Yet another episode in my attempts to solve Project Euler problems. Enter problem number 5: 2520 is the smallest number that can be divided by each of the nu...

Project Euler problem number 4 asks the following: A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-di...

Continuing with my journey learning F# I have tackled Project Euler problem number 3, which asks: The prime factors of 13195 are 5, 7, 13 and 29. What is th...

In my journey to learn F#, I have recently discovered the Project Euler site, which is a wonderful collection of small algorithmic problems which you can sol...

Have been hit by the functional programming bug yet? If you read around the blogsphere and listen to podcasts lately, you've surely been exposed to the rev...

When it comes to the number of arguments to pass to a function, Uncle Bob is pretty clear. Quoting from Clean Code: The ideal number of arguments f...

Since you are reading this blog I assume that you are a software developer, or more in general a "knowledge worker" as Peter Drucker refers to the person “w...

Floating Points and Rounding Errors. Working with floating points number can sometimes provide some (un)pleasant surprise, since many real numbers do no...

The following is an example of a service containing both generic method calls and generic types. public interface IContainer<T> { IEnumerable<I...

Why Should You Care About Podcasts There are many ways to keep up to date to what’s going on in the software community. Blogs, books, magazines, conferenc...

Introduction Almost 10 years ago now I used to be a Java developer in Motorola. After a long hiatus in the embedded systems and a job change, I have come ...

The new year has just started and it's time for me to share my professional life resolutions for the upcoming year. Through books, articles, blogs, podcasts,...

It's been a little more than 6 months that I have started blogging and it's already time to look back and have a small retrospective. All in all, it's bee...

If you ask people familiar with Object Oriented Design which are the most important concepts of the paradigm to them, you will surely hear things like class...

I recently embarked on a journey to read (or re-read) all the great classic books in the software literature. The Pragmatic Programmer is one of those books...

This is the third post of a series on the Service Locator pattern. In the first post I described how to create a basic service locator for your C# applicatio...

The Problem of Circular References Recently I had to model a tree-like structure using a variation of the GoF composite design pattern and to pass this ...

In my previous post Service Locator Pattern in C#: A Simple Example I introduced a fairly basic implementation of this pattern. In this post I will addres...

In my current project I have found myself needing to parse a CSV file coming from a legacy C++ application. This is a fairly common task, and in the pas...

This is the second post on a small series about transferring large files with WCF using streaming : File Transfer With WCF File Transfer With WCF: Part II F...

A Service Locator is a common design pattern that allows decoupling clients of services (described by a public interface) from the concrete class implement...

This is the first post on a small series about transferring large files with WCF using streaming : File Transfer With WCF File Transfer With WCF: Part II Fi...

I love shortcuts. I really do. So with some excitement I have found a few in the Visual Studio Editor that may come handy once in a while. These are the sh...

The Liskov Substitution Principle This is the third post on a mini-series about Microsoft Code Contracts and why you should use it to write more robust and r...

In a previous post we introduced Microsoft Code Contracts, and got an idea of what Design by Contract (DBC) is all about. It's now time to introduce anothe...

Design by Contract was first introduced by Bertrand Meyer, creator of the Eiffel programming language, in his seminal book Object-oriented Software Constru...

According to the Wikipedia, a ghostwriter is a professional writer who is paid to write books, articles, stories, reports, or other texts that are officially...

Coding standards is one of those topics which can easily create endless discussions between developers (Steve McConnell prefers the term religious wars in...

I have started my career as a programmer learning (and loving) the Emacs editor; later I used for quite some time the VI editor on a remote server. ...

Hello everybody and welcome to my blog! I have been thinking about starting a blog for some time now, and the new job that I have landed has turned out to...