Thinking on hiring me?

Please read

Fernando Guillén

a Freelance Web Developer

cabecera decorativa

software development as an artistic expression

Archive for the ‘software’ Category

Jueves, Julio 26th, 2012

Can we come to an agreement?

There were days where JS, CSS and Ruby programmers where each other sat in different tables and in each table we were using different naming convention and it was not a problem.

Well, times have changed, and now there is not three tables any more, we have put the three tables side by side building an only one web developer table, but we still keep the three different naming convention. Which is very damaging for our flabby brain.

I’m moving my text editor from the CSS file to the JS file and back to the Ruby one, and I have to say that my tab changing is very much faster than my mental change. If naming things wasn’t hard enough now we have to switch continuously between formats.

  • CSS: variable-name (hyphen case?)
  • JS: variableName (lower camel case)
  • Ruby: variable_name (snake case)

And when I start seeing things like this:

    $( ".time-ini" ).html( this.timeIni ) ;

I feel very nervous. So please let’s come to an agreement, what about a non-binding poll for starting:

Let’s move CSS, JS and Ruby naming convention to free polls 

I’ll really would like seeing someone with community authority telling something about this.

Note: I know the variable-name option is not possible in JS neither in Ruby but I keep it in the poll for consistence with the article.

Note2: Also I know that the CSS attributes will remain variable-name style, and there is not much we can do about this.

Lunes, Septiembre 5th, 2011

Work in progress (ode to my pet-projects)


I have been standing aside of new clients and projects for the whole summer, there have been two great reasons for this decision. One: I wanted to enjoy the summer, and two: I needed time for my own projects, or better said: my own projects need time from me.

When I’m working for a client I’m really concentrate on which I’m responsible of. I focus very deep in my client needs and I offer the 100% of me to the project I’m being payed for.

If I want to work on my pet-projects I have to free myself. I have to clean my TODO list and open a clean period, without deadlines or external responsibilities.

My pet-projects periods are very important for me. They are one of the reasons I am very grateful of this skills of me that I have become in a profession.

Spending time working in my pet-projects not only makes me feel fulfilled, it also makes me be a better professional. They feed my passion, and keep me alert, they are very hard exercises those push me to my limits.

So, which are these so important pet-projects?, this is a summarized list of all the ‘on developing‘ projects I’m working on.



“The transparent personal website manager”

The first in the list because is the one where I have placed more energy lately.

Vitreous has been born to revolutionize the personal website and portfolio manager systems environment.

Focused in users with a very minimal web experience, print designers, photographers, writers, any kind of content producers, who wants to have a personal (and customizable) website but feel so lazy to deal with the actual available options.

Vitreous is a transparent personal website management. You have not to login in any where, you have not to upload files using webforms, you just have to copy files into your local hard disk, organize them into folders and Vitreous will do the magic.

We are currently in beta version, we are accepting beta testers and we have already some examples to show.

There have been multiple fights to achieve the actual status of the development. The Dropbox API is not as complete as we would desire, defining a versatile metadata system using files has been a complex work, to offer a secure full access to the templates has needed ingenuity and good programming, implement a solid and reliable stand-alone design render engine has turned indispensable.



“The market place for the independent publishers”

This is the oldest still ‘on development’ project I have in my pocket. I have been working on it for the last three years, not very actively of course.

The independent publishers have a lot of difficulties to reach the final readers, there are multiple reasons for this, the most important is the difficult of the distribution.

BookySitter tries to offer a solution for this, offering a possibility to the independent publisher to create his own online book shop, easy, simple and customizable. With small but useful functionalities especially focused in the small publisher needs like bookshops management.

But this is only one side of BookySitter, in the other side BookySitter wants to be a market place for the independent publications, where any reader interested in books made from the heart and not from the pocket can find a reliable catalog.

So what we have is a multi store system with independent and common catalogs. Full customizable templates. Multi-shopping-cart system.

We are still in a very green development status but we have already a shop in production: escrito a lapiz’s shop

We are also open for beta testers. Any independent publishers who is interested in open an online store can talk with us, we will offer our service and support by free.

The Kids Art Gallery

The Kids Art Gallery

“A gallery that respects and assesses the artistic power that have the most creative creatures on the world”

This is the project closest to my heart.

The Kids Art Gallery is an online multi-gallery for children paintings.

This is a very personal initiative with no any profit purpose underneath.

I want to build an online reference for the producers and the lovers (as I am) of this kind of art. I want to build a pleasant interface to navigate and appreciate in every detail children art sample.

The intention is not only build an online gallery but also a place of understanding and comment this contents, inviting psychologists, fathers and children to comment and write about the works of art.

Currently we are working in the design and the user experience where we have a lot to improve.

In this moment we are accepting new artists so if you know any one please ask me for an invitation code.


“The trade fair stalls manager”

One of the few projects with a very clear business model.

Sitoi is a for rental spaces online manager. Is focused in street markets, trade fairs, parkings, … any situation where there is an space divided in for rental portions.

This project is still in the conceptualize state, but this is the most important part of it. We have defined a very fast, easy and versatile way to publish online spaces for renting.

We are now working in the user interface.


“Data is every where”

When you are not the owner of the data is difficult to follow up and make monitoring of the changes.

ScrapStats allows you to monitor the changes of any data that is accessible for a browser.

With a very simple system based in html scrapping you can register as many data monitors as you need, ScrapStats will take an snap-shot of the data periodically and offer you alerts and charts of the evolution.

We are in alpha status of this project, there is already an operative prototype but we need to improve the user interface.

Space Suckers Chronicles

Space Suckers Chronicles

“You can introduce this space ship where it fits!”

Building a multi-user-text-based-game has been always a murmur in my head. Born as a RMU exercise it is now one of the projects I’m working on.

in S2C you can build space-ships, mines, colonize planets and confront your fleets with the other players ones. Every thing happens in real time, and in a persistent way so even if you are not in front in the computer your fleets and planets are still there living their own lifes.

There is not graphics animation or any other representation of this parallel world rather than the text info you are feeded with.

“It runs on the world’s most powerful graphics chip, imagination.” – Dc. Sheldon Cooper

This project is in alpha version, there is a prototype already working implemented in a three layers infrastructure:

  • The logic
  • The server
  • The client

It is an Open Source initiative.

Now that you know all my ‘on development’ pet-projects you can join me to push any of them that you feel interested in. Just give me a shout and tell me why you are interested and how you can help. Currently my bigger weakness and bottleneck is in the user interfaces development.

Viernes, Julio 1st, 2011

I don’t like end customers

This is not a flash thinking. I have not just waked up angry with something and I just have taken this decision. It has been something cooking very slow.

I remember three years ago talking with one of my respected colleagues about our freelance way of life. I was defending the experience of working with end customer, taking the project from the beginning when it is only an abstract idea, extracting to the customer all the info the project needs, to become one abstract idea in reality, teaching your contracting how to build an internet project is and what it needs.

He was in the other side: he preferred to not deal with all of this.

He had just more experience than me. The time has placed me in the same opinion.

Now I’m starting to generalize so please don’t take offense of my words at least you feel recognized on them.

The history is common and it starts like this: A new email contact achieves to my inbox, someone was looking for a freelance web developer and arrived to this web site and decided to contact me. This history has never had a happy end. Just a waste of time on my side.

These are the mistakes this customer is gonna make:

  • He doesn’t believe there is a relation between quality and price. He thinks all professionals are the same, they just have to find the cheapest one.
  • He is not calculating property the amount of resources that an internet entrepreneurship needs to wake up. He thinks that finding a programmer is enough, no idea about user experience, information architecture, graphics and design, marketing, market studies, usability, SEO, maintenance, servers, customer attention, business model, investors, legal implications, …
  • He overrates his idea. He thinks he has a million dollar idea, but he even hasn’t studied the other players, the competitors. He thinks his idea is the most important part of the project when the reality is that it is worthless without a good development in every sense of the word. He thinks he has the idea very good defined but it is just an abstraction with not definition or analysis at all.
  • He wants it all. Every stupid functionality is indispensable. Not possibility to discern between necessary and desirable. Not possibility to define a first iteration with a basic functionality. Negation of the nature of an internet project: it will ask what it needs, you just don’t know yet.
  • He is not gonna take any responsibility. He thinks his only function in this adventure is to push with the budgets and the timings. He doesn’t accept he has to work, he has to offer answers, solutions, cover no technical tasks, … and do it fast. I need him to be a companion, a partner.
  • He is not gonna take any risk. Really? you are starting up a supposedly great business and you have reserved 1.500 euros to do it real?. This is less than the vegetable store on the corner pays for rent. This is very related with the previous point: one of the biggest responsibilities he is gonna avoid is the obtaining of money. He says he has not to much money and I should understand this issue. What he is telling me is that he just failed in one of his most important responsibilities: the money supply.
  • He doesn’t sell it self. He just writes an email with petitions (usually a budget). He just says he has a great idea and he is expecting me to convince him that I’m the right professional he needs. He doesn’t say anything about him, about his experience in internet entrepreneurship, why should I accept to work with him?, which are his references?.
  • He doesn’t understand his own business model. I know better than him which the possibilities are, even which of them are possible better for his business proposition. I feel scared with his ideas. This is one of the most frustrating situations. He has lost his leadership. He is not an inspiration for me.
  • He asks me for my programming skills and what he is really asking me is to be his CEO. He wants me to build the team, to manage it, to resolve any issue, to be a technical and business consulter. And if for any reason the project doesn’t success like it was supposed to, he will want me to be the responsible.
  • He wants a fixed budget, even if the idea is properly defined and documented (what is unlikely) is literally impossible to know which are gonna be the final needs of the project, or the issues we are gonna find, or the specification modifications we will should face up.

I think I have realized that the desirable end customer, the one that knows the domain, who knows the value (and the price) of the quality, who respects me as a professional, who takes risks to stand up his idea, who has the experience to offer justified and well analyzed ideas, who understands his responsibilities, the one that is a really leader and an inspiration, who really believe on his project, he is not calling you in his own name, will be the start-up he has just created to wrap the project who will call you.

This is why my really preferred end customer, which officially are not really end customer, are the Start-Ups.

Sábado, Marzo 5th, 2011

Coding in Berlin

Ruby Room

Today I have comeback from a five months isolation bubble of coding, partnership and teamwork in Berlin.

When I talked by phone with Markus for first time I didn’t expect how wonderful and grateful was gonna be to become the new member of his team.

I just was looking for a position that allow me to work among an small developer team and I found an excited startup very concerned in find the most talented people, I have spent half of a year surrounded by 60 very interesting and friendly people from more than 22 nationalities.

The multidisciplinary team

One thing SponsorPay has confirmed to me has been that it isn’t possible to success in an Internet entrepreneurship if you only focus in technology. From the 60 people of the Berlin SponsorPay’s team only 7 of us are programmers. The big weight of the business is carried by people attending the needs of our customers and users, people thinking in new business ideas, people measuring what is working and what isn’t, people talking to other people about us, …

Of course every of these departments depends in one way or another in our small techie team, as well as we depend in the plugs to work, is a very common mistake to don’t think even in the existence and the necessity of this people as much as the programmers.

You are very wrong if your think behind a successful website there is just code.


This last five months have been stressful and rewarding very just in the perfect balance. I feel like I have been doing anything else but work but in the same time I feel full and not empty.

In any case my stress feeling has never been produced because an slavery schedule or my bosses pushing me, all the opposite, the schedule is based in objectives and not in hours sitting down on the chair, an the objectives for every sprint are decide by all of us with especial respect for the development team previsions.

Technically the projects we are carrying are not specially complicated, the hard part is that every thing is in continuos movement and everyone in the team has to know and to understand what the others are doing.

We have become in a git warriors.

Another hard side of our technology is that it has to deal with a high work load, with an average of 150 requests/second and maximum peaks of 400 requests/second, we have to move any feet very carefully.

The Ruby table

So this is the situation: we are 7 people dancing together in a very dense and moody multiple choreography carrying cups in our hands under an storm trying to not any drop to touch the floor.

This is why they need good dancers and this is why they can be proud of the dance group the already have.

The European Style

Another thing I have felt in my professional experience in this wonderful city is the respect for the talent.

SponsorPay is a company with less than two years wich has already raised more than 10€ Millions of venture capitals.. And of course is not the only startup based in technology business that is protected this way by investors.

What is this money for? To build a good team, talented professionals. They know to obtain this costs money, they know they need it and they know that to choose a regular worked instead a good professional is never profitable.

Why isn’t this happen in Spain? Because there are not experienced business people carrying startups, so all the startups are carried by, possibly, enthusiastic people who is risking his own money to become an idea in a reality, but, sorry I say this, this is not enough. One of SponsorPay’s cofounders, and actual CEO, left his job as CEO of Telefónica Deutschland to push up an small company that was fighting in a very risky and futuristic business model.

When have you seen this in Spain? Do you imagine this guy taking the decision to change his very comfortable, and profitable, chair to put all his expertise and, even most important, all his contacts to drive a tiny and unknown company of uncertain future born in the hands of a twenty-something entrepreneur?

The summary of these last paragraphs is something that is becoming in a ‘meme’ lately: If you are a good professional and you want to find people that appreciates and respects your value run away from Spain.

So, what have I come back to Spain?, you will be wondering… because this and this. Besides, they have offered me the possibility to telecommute :).


But over all and the most important thing I have build in this Berlin experience has been a few really good new friends.

Martes, Agosto 3rd, 2010

Ruby: FibberMailman, mocking the Net::POP3.start




Fibber MailmanLately I’m involved on projects that do a very intensive use of email accounts as input of information.

The use of mail in an automatic process is always a pain in the ass because of the huge casuistic and also for the difficulty to test it.

Nothing we can do with the first problem but for the second one here is my propose of a very simple Ruby Gem to mock the Net::POP3.start petition so you can simulate the emails that a real POP3 petition could find:

FibberMailman the mock for the Net::POP3.start.

Just charge a bunch of raw mails in an strings array and send them to the FibberMailman.lie_to_me method like this:

require 'fibber_mailman'
raw_mails = [ "/fixtures/mail1.raw_mail" ) ), "/fixtures/mail2.raw_mail" ) ),
FibberMailman.lie_to_me( raw_mails ) do
  <your code that uses the Net::POP3.start on any point>

Every petition to the Net::POP3.start method into the inside block will be feed with fake emails built from the raw mail strings.


Miércoles, Mayo 6th, 2009

Ruby: EuRuKo 2009, new dose of inspiration.

This weekend is the EuRuKo 2009, a very concentrate juice of Ruby programmers. 230 tickets were sold withing 3 days almost two months ago.

I am one of the big bunch of people that is on charge of the organization of this edition, I am helping on whatever is in my hand, I am very proud of have been the developer of the registration application, with the help of very big mind people. You can download and use the code on the github repository.

I also sent a design proposal for the t-shirt conquest. Of course Marze was there for putting me on my place :)

EuRuKo 2009 t-shirt proposal

Of course I’ll be there this weekend, I love to attend such events. It’s not because I like the talks, or because I learn a lot.. it’s not that. I love and need the energy that flutters there. It’s some kind of battery recharger. A new dose of inspiration. Company, Cooperation, … Pride of Craftsman.

See you there people!

Jueves, Enero 22nd, 2009

Como linkar a la última versión de un fichero en GitHub

Sino conoces github no sigas leyendo.. y échale un vistazo, sino es el caso igual te interese este truquito que he descubierto trasteando.

Resulta que si quieres compartir un link de un fichero de un proyecto en github puedes navegar por los ficheros llegar al que quieres compartir y copiar el link que muestra la página, algo como esto:

Y bien, funciona, o eso parece.. pero no, porque entonces estarás compartiendo el estado congelado del fichero en un commit determinado osea que cuando tus amigos sigan el link dentro de unos diás, después de unos commits, seguirán viendo la misma versión ya anticuada.

El truco para compartir un link que siempre tenga la última versión disponible es sustituir el identificador del commit por el alias de ‘último commit‘ que es ‘HEAD‘, tal que así:

Ahí queda :)

Miércoles, Mayo 7th, 2008

‘Software como poesía’ en el DorkBot del Viernes en Madrid.

Que la creación de software es un tipo de expresión artística es una de las visiones que tengo de esta mi profesión. Profundizando un poco: las líneas de código son literatura que cuentan una historia con sus personajes, sus acciones, su nudo, su desenlace. Puede incluso acercarse a la poesía por su ritmo, su rima, su cadencia…

Interesante charla pues la que nos presenta Santiago Gala en el DorkBot de este Viernes:

“Software es poesía”: Un poco de teoría y algunos ejemplos sobre cómo el software, como cualquier otro sistema de signos, es utilizable para el arte. Expresión, interpretación y transgresión en el software.

Para ver la lista de charlas completa, lugar, hora y demás.

Vía lista de correo de DorkBot Madrid. (La página web más desactualizada y difícil de enteder de la Internet) .. es broma :P

Jueves, Marzo 13th, 2008

Munin la bestia parda del monitoreo de servicios

Asistí a una de las aulas The Cocktail sobre Munin.

Me quedé impresionado, ahora mismo acabo de terminar de instalar y me ha costado 15 minuntos.

Es la gran bestia parda:

1) Apenas requiere configuración.

2) Permite sistema de nodos y master.

3) Monitorea cosas que nisiquiera entiendo como es capaz de monitorear.

4) Te autodetecta todo lo que tiene el servidor y se pone a monitorearlo todo sin que le tengas que explicar nada.

Increible, una joya.

Jueves, Marzo 6th, 2008

Glabels, generador de etiquetas para Linux

glabelsApunto aquí esta aplicación para que no se me olvide.

Muy curiosa y útil en la oficina.

¿Cuántas veces nos hemos pegado con el Open Office para tener plantillas para imprimir etiquetas para sobres y demás?

Ahora con Glabels todo es mucho más sencillo.

También sirve para tarjetas de visita.

a Freelance Web Developer is proudly powered by WordPress
Entries (RSS) and Comments (RSS).

Creative Commons License
Fernando Guillen's blog by Fernando Guillen is licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License.