You are browsing the archive for Daniel Lombraña González.

17000 Volunteers Contribute to a PhD

- August 12, 2015 in Planet

Doing a PhD is laborious, hard, demanding, exhausting... Your thesis is usually the result of blood, sweat and tears. And you are usually alone. Well, what woud you say if I tell you that a researcher got helped by more than 17 thousand volunteers?

Read the rest of this entry →

The Art of Graceful Reloading

- July 1, 2015 in Planet

The holy grail of web developers is to do deployments without interrupting your users. In this blog post I explain how we have achieved it using uWSGI Zerg Mode for our Crowdcrafting servers.

Read the rest of this entry →

Auto-translating PyBossa using PyBossa

- June 8, 2015 in Planet

How do you translate properly your product into different languages? More importantly, how do you do it involving your own community?

The answer is easy: using a crowdsourcing solution like PyBossa.

Translating PyBossa using PyBossa

Since the creation of PyBossa, I've translated it to Spanish. Other languages, like French, were added by a volunteer. However, these translations usually get outdated as PyBossa was updated with new strings. These solo efforts, usually end up in a translation that's not updated, and you end up with a mix of translated strings.

For these reasons we decided to eat our own dog food, and I created a crowdsourcing project to translate PyBossa using PyBossa. Why? Because PyBossa uses the open standard Gettext for its translations, and each string could become a task in a PyBossa project.

Also I loved the idea that anyone, even without an account, can help in the translation. The current platforms usually need an account to just translate a few strings, and that's usually too much for users who want to see the product they use in their own language. Obviously some people will add fake translations, but that's not an issue as the crowd will help to clean the bad ones and keep the best one.

As I started working on it, I realized this could be very useful not only for me and PyBossa but also to anyone using the Gettext technology in their projects. Thus, I created a PyBossa template project that anyone can re-use and adapt today to translate their own projects.

The Translation Template Project

The template can be used in any PyBossa server, so if you don't have one, don't hesitate and go to Crowdcrafting to create an account and start using it.

The translation template is very simple. It has been designed to have two phases:

  • The Translation: 3 people translate the same string.
  • The Voting: 5 people vote for the best translation of the 3 translations.

The most voted, it's the one that it's going to be used as the final translated one.

As you can see the community of your project would be involved in translating but also in selecting the best translation for them. This will ensure that your audience will have a better understanding about the text you write, leading to better results in engagement.

1. The Translation phase

The first thing you need to do is to download the template. Then, install the required tools (see the README file for more information), and you will be ready to start translating your project.

Then, all you have to do is get your PO file (it's a text file with the string to get translated from for example English to Spanish). Once you have it, you will pass it to PBS -our PyBossa command line tool- that will convert untranslated strings to tasks for your PyBossa project:

pbs add_tasks --task-file=messages.pot --tasks-type=po --redundancy=3

This will add the untranslated strings as tasks to your PyBossa project. Each string will be shown to 3 different people, so you get 3 translation for your own project. You can increase or reduce it as much as you want. It's up to you to decide.

When all the strings have been translated, you can move to the next phase if you want: the voting phase.

2. The Voting phase

In this phase, the 3 previous translations will be shown to people and they'll select the best one for them. The most voted one will be the final translation for that string.

How do you move from one phase to the next one? As simple as this. First we create the voting project:

pbs --project project_voting.json create_project
pbs --project project_voting.json update_project

Secondly, we get the translated strings and pass them to the new voting project:

pbs --project project_voting.json add_tasks --task-file=/tmp/translations_voting_tasks.json --redundancy=5

Then, 5 people will vote on which is the best translation. When all the strings have been curated by your community, in other words when the project is completed, all you have to do to create the final translation file is running the following command:


Copy the new created file into your translations project, and you'll be done! As simple as that.

Firefox extensions

Yes, PyBossa also supports Firefox extensions. Thus, if you are writing a Firefox extension and you want to translate it to different languages, you can use PyBossa too. It's pretty similar and you have all the documentation about it here.


With our PyBossa translation template anyone can translate their open source project with their community, involving them not only in the translation but also curating which is the best translation for every string.

Thus, don't get lost in translation anymore!

uWSGI, or why you don’t need Varnish

- March 5, 2015 in Planet

As a web developer one of my main goals is performance. In this blog post I explain how we have boosted the performance of Crowdcrafting without touching the PyBossa code or adding any extra layer to our stack.

Read the rest of this entry →


- February 25, 2015 in Planet

At Crowdcrafting we take really seriously shipping code. For this reason, we've created a very simple web service (it's our own software robot) that automatically deploys for us any Github project with Ansible playbooks and posts the status of the deployment in our Slack chat channel.

Read the rest of this entry →

Crowdcrafting stack

- February 10, 2015 in Planet

Putting all your heart in what you do makes the difference. Why? Because as the Baron says in the movie, The Cat Returns, the creation is given a soul.

Read the rest of this entry →

3 steps to build a successful team

- February 6, 2015 in Planet

How do you build a successful team? Moreover, how do you do it when you don't have any idea about recruiting? This is my story about how I've built the amazing team behind Crowdcrafting and PyBossa.

Read the rest of this entry →

Video pitching one day of my life

- November 26, 2014 in Planet

Video pitching is an art. Why? Because you want to be remembered, not just thrown away into the pool of boring-nothing-new videos basket.

Read the rest of this entry →

Makers vs Craftsmen

- October 31, 2014 in Planet

Makers are getting a lot of press coverage lately. However, I haven't read any article about the craftsmen: people who also build things with their hands and tools.

Why these articles do not write about carpenters, sculptors, turners, etc.? Is it because they don't consider them makers?

Read the rest of this entry →

Year in review as a Shuttleworth Fellow

- September 22, 2014 in Planet

One year ago I started a fellowship that changed my life.

One year later, the Shuttleworth Foundation has renewed my fellowship for another year. Amazing!

Read the rest of this entry →