Articles

A List of Posts

Articles feature image
Pere Villega bio photo

Pere Villega

If at first you don’t succeed; call it version 1.0

Email

Twitter

LinkedIn

Github

2017


Finch post at Underscore blog

This is just a short entry to make you aware of a new post by yours truly at Underscore’s blog.Many thanks to Undersc...

2016


Learning Shapeless

Shapeless is a type class and dependent type based generic programming library for Scala. It had its origins in sever...

Free Monads and Stockfighter

StockFighter is a game by Patrick McKenzie (Hi Patrick!) and others that makes you compete in a virtual Stock Exchang...

Free Monads using FreeK

My previous post on Free Monad implemented a few DSL using Free Monads. The same day I published it I discovered Free...

On Free Monads

The concept of Free Monad is becoming popular, or at least I’ve seen plenty of mentions about it in the Scala Functio...

Monkey Island Battles and WebKit

Have you heard about AWS Lambda? Do you like Monkey Island? Are you into Insult Sword Fighting? Then, come along, thi...

2015


Scala Exchange 2015 Day Two

Scala Exchange 2015 is on! I will be updating this entry with summaries on the talks I attended. Typos a plenty, be w...

Scala Exchange 2015 Day One

Scala Exchange 2015 is on! I will be updating this entry with summaries on the talks I attended. Typos a plenty, be w...

Emacs and Scala in Mac OS X Yosemite

After hearing a lot about the benefits of using Emacs to code in Scala, I’ve decided to give it a go and also to docu...

Scala REPL

One of the things people love about Scala is the REPL. I have to be honest;I never paid too much attention to it as I...

Using Docker in Heroku

Heroku has announced beta support for Docker containers running in its platform. As I have some time in my hands, I’v...

Wearables: Google vs Apple

After a weekend wasted in bed (food poisoning sucks) I’ve spent some hours catching up with tech news. And I’ve found...

QCon London - Microservices

Yesterday I was at QCon London thanks to Gumtree.I’ve posted a summary of the talks I attended in Gumtree developer’s...

Real-Time Analytics With Apache Storm - Done!

And Real-Time Analytics with Apache Storm it’s over. Kinda. But it has been a fun road to travel.When I say ‘kinda’ i...

Real-Time Analytics With Storm - Lesson 2

I just finished the second lesson of Real-Time Analytics with Apache Storm. At this stage I should be able to underst...

Game Development Using Unity3D

I think that most software developers have a secret desire: to build their own game. Unfortunately the golden times o...

Machine Learning at Coursera

And more work in the data science world. I’ve joined yet another Coursera class: Machine Learning. Yes, I might be ov...

Mining Massive Datasets

As part of my efforts to understand more of the data science world, I’ve joined another Coursera class: Mining Massiv...

Real-Time Analytics With Apache Storm at Udacity

Marc Andreessen famously said that Why Software Is Eating the World. There is a lot of truth in this but if we think ...

Hystrix at Gumtree

Happy new year! After many months, busy with the responsive Gumtree project, I wrote another post for our developer b...

2014


Meetup: Building a Developer Centred Company Culture

I wrote another post for Gumtree developer blog. I attended a meetup in StackCareers office in London. I’ve attended ...

ReactConf and ORM future

I’ve been pretty busy lately at Gumtree, but I still got time to publish some posts in our Dev Team blog.The first on...

Java 8 is coming

It’s March and Java 8 is coming soon. A delayed and very expected release of Java with plenty of new tools: lambdas, ...

Builder Pattern and Inheritance in Java

At Gumtree we are currently doing some changes to the back-end of the site. To that aim we have spent some weeks buil...

Raspberry Pi as NAS with Samba

This year I’ve bought a Raspberry Pi. I’ve wanted to play with it for a long time, but it was one of these things you...

Twilio and Play Framework

Another year, more technology to test :) Busy as I am in Gumtree, I’ve been able to test some interesting stuff. You ...

2013


Gumtree blog is live

It’s been a busy couple of months. I recently moved from Dublin to London to start working at Gumtree (and loving it ...

On Learn Startup and Personal Waste

I recently finished reading The Lean Startup, a (relatively) new approach on development and innovation on software c...

Enums to JSON in Scala

Scala gives the developer the possibility of using Enumerations. If they should be used or if Case Classes are better...

Breaking the 1000ms Time to Glass Mobile Barrier

Mobile is the new king and HTML 5 allows developers to, at last, build once and run everywhere: tablets, phones, desk...

Scala in 2018

ScalaDays 2013 happened this past June and the presentations are available at Parleys. If you go to the ScalaDays 201...

Using Ansible to deploy Play Framework apps in EC2 instances

TL;DR: Clone Ansible for Play Framework to automate the task of deploying Play 2.x projects from a git repository int...

Using Redis PubSub with Play 2.1.0

Last week I was experimenting a bit with Redis and its Publish-Subscribe module. The idea was to try to implement a c...

Executing Jasmine Tests in Play 2.0.4

Christmas break is over, and on a whim I started to check AngularJs. If you haven’t tested it yet, do it. I’ve toyed ...

2012


Iteratees and Play 2

From time to time I like to test some new functionality of Play 2.0. Creating a tiny for-fun project allows me to see...

Learning Scala in Coursera

Scala is growing, a lot. The (relatively) recent investment of $14M in the company ensures that the language will be ...

Responsive Design and Mobile First

Mobile browsing is becoming the norm. With the advent of devices like the new iPad or the Nexus 7, predictions that m...

It's Back

It’s been a while, but the domain is live again! There was some unfortunate incident which wrecked the domain and lef...

2011


Scala: Move Forward

Soon Java 7 will be released. A bit delayed, yes, but it’s here. Even so the question lingers: is it enough? I believ...

Java 7: What's New

Java 7 will be released soon, so it’s time to check what’s new. The official announcement is here. A list of the new ...

2010


GSOC 2010

During this time I did not update the blog, I was finishing my GSOC 2010 project. You can find more technical details...

Java Vector is Obsolete

Today I was working with a unit test class for my Google Summer of Code project. Launching the test raised a concurre...

Estatut de Catalunya: a Review

Let’s spur some controversy! Outside Spain very few know about the reality of Catalonia. For those of you who don’t k...

How to Heal and Prevent Computer Injury(RSI)

As somebody who spends too many hours in front of a computer I’ve developed some injuries in my tendons, specially in...

Sonar and Hudson

Due to my current work at Google Summer of Code 2010 I’ve been setting up a small CI system for my personal use. Yes,...

I'm from Barcelona

I’m from Barcelona. This simple and straightforward fact always raises expressions of incredulity amongst the people ...

MyNet

One of the many reasons I’ve been out-of-contact these past weeks (and barely posting) is that I’m finishing my Maste...

GSOC 2010: Testing

During this time I did not update the blog, I was finishing my GSOC 2010 project. You can find more technical details...

Renaming Files

I’m the proud owner of a Lacie Big5 to store my files, which amount to almost 2 Tb right now. Lately I’ve had some co...

EJB Concepts and Services

This page contains a brief summary of EJB 3.0 Services and related concepts. It only gives basic information, for mor...

Java Persistence API

This page contains a brief summary of Java Persistence API (JPA). It only gives basic information, for more details a...

Message-Driven Beans

This page contains a brief summary of EJB 3.0 Message-Driven Beans (MDB). It only gives basic information, for more d...

2009


Ubuntu Server Maintenance

This guide will show some basic stuff you might need to maintain an Ubuntu server. You might not need all of them, bu...

Redmine on Ubuntu 9.04 with NGinx

Originally I wanted to install Launchpad on my server to manage my projects. As of 17th of August of 2009, Launchpad ...

Web Application Tools

When developing your own web application, specially if you want to earnmoney with it, some information is priceless. ...

Moved and Lost

So, the blog has been migrated. Sadly, due to format issues and my sloppiness, several posts have been lost. Like in ...