Archive for the 'wadobo' Category

The privatization of democracy

40 years ago, there were no computer networks as we have today. Voting via Internet was not possible, because Internet didn’t exist. Even today, we still vote most of the time as we did traditionally, with the paper ballot. But we have the ballot in one hand, and our smartphone in the other: electronic voting is coming. Hundreds of thousands voted from their computers in Estonia’s general elections in 2011, and most countries have already been experimenting with some kind of electronic voting for some time now. Internet voting is not just a fad, it’s here to stay.

The privatization of democracy

Presenting the issue of the privatization of democracy, during a presentation in MediaLabPrado/Madrid. 12 Nov 2013.

But doing elections is a serious matter, and our whole political, economical, and social system depends on it – and democracy depends on the credibility and the legitimacy of this crucial democratic process. In the traditional paper-based elections, there are observers and independent parties that supervise, verify and carry on the collection of the votes and most importantly, the tally and computation of the results. This simple, transparent, and participative method has proven to be an effective way to ensure that the whole voting process preserves its legitimacy. Small corruptions of one vote here and another there do still happen, but the problem is contained and reduced to the bare minimum.

On the other hand, the state of the art of technology allows an important innovation of the democratic process of voting, and there are some companies that are leading this effort: Sctyl is the most prominent, though not the only one. But make no mistake, tecnology is not neutral, and innovation does not always benefit the public interest.

Let us take one example, that can be extrapolated to most institutional online elections: the European Greens political party is performing the first pan-european primary election, which for practical reasons probably could not be done at all if voting was not done via Internet. It’s no doubt a welcome and praised innovation in the political arena, but the way this election is being carried out means also the privatization of the very important democratic process of electing a political leader that represents millions of people: the source code of the voting system is totally controlled by one company so we lose in independence, and the whole vote-casting and tallying process is controlled by the same company, so we lose control of the very process of democracy.

Contracting an experienced company with a privative solution is the easy way: close your eyes, cover your nose and just pay. On the other hand, it finances and reinforces the position of a multinational that is an unapologetic monopoly in online voting, that proudly asserts in its own website that they control more than 87% of the online voting market. So basically, that’s also the minimum privatization rate of online elections. And that’s not the only risk: when the election process is controlled by a single entity, this provides a much more convenient single point of failure to be attacked by any interested external third party. This could be any government or big company with interests in Europe in the case of the Green Primary. In a post-Snowden era, this is something really worth to take into consideration.

Some people propose as an alternative not to do any Internet or electronic voting at all, and this can really be a solution for a few, right now. But other organizations might still decide to do electronic elections to innovate, and sometimes it might even be the only alternative, like it might be the case for the Green Primaries. We need to ponder and raise awareness of a tough issue, as this is no joking matter: Are we really willing to privatize what currently is a transparent, participative and independent electoral process? Isn’t there another, better way to innovate and do Internet Voting?

At AgoraVoting we try to provide a solution for this problem: our aim is to provide a flexible, trustworthy libre software voting system. By developing this free software project in community we can guarantee independence. And the strength of our system resides in mathematical mechanisms that serve as analogues of traditional election scrutineers (also known as poll-watchers) who oversee and perform elections processes to ensure correctness and thus attain trust from the general public. AgoraVoting replicates the traditional system of multiple election scrutineers in the digital world to ensure that no single party controls the election or the tally. In our system, election cryptographic keys are generated in a distributed fashion by a group of authorities that guarantee the secrecy of the vote and the correctness of the tallying process.

AgoraVoting has already been used in an election in spanish Congress (you can read the details in an article at The Guardian). To maintain and develop a voting system that aims to be trustworthy and cryptographically secure is not an easy task, but one that requires long hours of work. We will never be satisfied with the security of our system, and we already have lots of plans on how to improve it, to make it even more distributed and secure.

But we face some important challenges as well: for example the cryptographer that developed verificatum, the software that does the tally in AgoraVoting has privatized its development so we had to do a fork which is currently in maintenance mode. We need a solution for this, the help from good cryptographers and we might have to start an important crowdfunding campaign to fix this pressing problem. We also still have yet to find funding as we have been working on AgoraVoting in our free time. This is why we’re presently offering AgoraVoting to be used in other elections as a way to finance its development. Designers, usability experts, real cryptographers, testers, developers, translators, good communicators, donators, funding finders: we really appreciate your collaboration, support and ideas.

I’m not a pristine and perfect person who doesn’t suffer any struggle or incur in contradiction sometimes. My computer has a propietary BIOS, and some privative software installed like Google Talk browser plugin, or skype, and for practical reasons we have deployed in some occasion AgoraVoting with privative technology like Google Analytics. But I know that our goal is to make this the exception.

And remember: consider that this is probably the first time you heard about the privatization of democracy, even tough it has already been going on for a while. This is a matter of principles, and I want to be able to say that I raised awareness about this issue and positioned myself according to those principles in this political debate.  And if you value democracy as we do, you’ll find this is a battle worth fighting.

Ágora, democracia directa y federación

Estoy leyendo el libro Direct Democracy de Jos Verhulst & Arjen Nijeboer, y la verdad es que está resultando una lectura muy interesante. En este libro se analiza en detalle los diferentes aspectos de sistemas de toma de decisiones democráticos, y los autores explican su punto de vista con ejemplos y de forma razonada.

Un argumento bastante llamativo que se esgrime en el libro es la estrecha relación entre federalismo y democracia, y hace una defensa del federalismo llegando a afirmar que el federalismo bien entendido empieza en el individuo. Lo cierto es que me ha parecido un punto de vista lógico y en el cual no había pensado antes de forma articulada, pero es una idea que ya había nacido en mí.

Y es que el sistema de votaciones Agora en el que llevo tiempo trabajando un tiempo y tal y como yo lo tengo idealizado, es un sistema fundamentalmente federado. No sólo distribuido, sino específicamente federado. Es decir, una característica principal de Ágora es que permite libremente la formación de grupos por individuos que así lo acuerdan, y en cualquier momento estos grupos pueden cambiar de forma: los individuos que quieran pueden disociarse por iniciativa propia, el grupo puede permitir que otros entren bajo una serie de condiciones. A lo mejor incluso los grupos podrían federarse en niveles superiores.

Como habíamos dicho, la clave en un sistema federado es que la entidad de máxima autoridad es el individuo, puesto que sólo los individuos tienen realmente opinión política propia, sienten y padecen, deciden y sufren las consecuencias de las decisiones. De hecho esta es en realidad una de las razones por las cuales se ensalza al individuo en sistemas como github: es en realidad la única verdadera unidad de acción dentro de un sistema federado. Y añadiría más, en cualquier red social.

Tal y como explican Jos Verhulst & Arjen Nijeboer, frente a un sistema basado en el principio de subsidiariedad, donde se asume la existencia de una autoridad pre-existente que cede ciertas decisiones, acciones o privilegios a entidades o individuos de menor rango, el sistema federativo puede parecer un sistema semejante e incluso hay quien los confunde, pero en realidad son radicamente opuestos. Podemos decir que Github es federado porque es bottom-up, mientras que sourceforge es top-down, y es subsidiario.

En un sistema federado, donde existe libertad de asociación, se reflejan de forma natural las complejas madejas organizativas de la sociedad. Estas complejidad basada en los principios democráticos son los que fomentan una sociedad donde se valora el trabajo, donde las personas demuestran su propia valía, una sociedad de oportunidades como la que Alexis de Tocqueville narra en esos textos que aun políticos de la actualidad citan cuando quieren hablar del sueño americano. Y esos mismos principios son los que pretenden fundamentar Ágora.

Tecnología, empleo y sociedad

Estaba leyendo esta mañana una interesante noticia en slashdot donde se preguntaban si la tecnología es causa de desempleo. Creo que esto es una buena reflexión porque no solemos tenerlo en cuenta, pero que la respuesta claramente es afirmativa. Gracias a la tecnología puedo pedir cita al médico por Internet, las fábricas de coches son automatizadas, y en el campo trabaja mucha menos gente que antes. Tampoco existe ya el trabajo del aguador, del vendedor ambulante de enciclopedias, del lechero, del vendedor de hielo… todos han sido sustituídos por máquinas. Por tanto es causa de desempleo.

La tecnología también es causa de empleo, porque tiene que haber gente programando la web para pedir cita, creando las máquinas que crean coches y manteniéndolas, y lo mismo con las máquinas usadas en la agricultura. Pero el balance neto de empleo es sin duda negativo.

Además no sólo existen menos empleos en balance neto debido a la tecnología, sino que también gracias a ella es posible la deslocalización. Por tanto trabajos que antes se realizaban dentro del propio país, ahora se realizan en el país que más barato pueda salir. Centro de atención telefónica al cliente en Sudamérica, cárnicas del software en la India.

Los efectos de la tecnología pueden ser devastadores en una economía en poco tiempo. Dentro de poco tiempo probablemente saltemos a los coches que se conducen solos. Taxis, autobuses, camiones: todos saldrán más baratos y se perderán miles de trabajos en el sector, y provocará una gran resistencia, incluso con toda seguridad habrá leyes para proteger el sector. Pero ya nadie se acuerda de los vendedores de hielo, que lo traían en barco desde lugares más fríos. Toda esa resistencia a la tecnología es inútil.

No sólo la tecnología ha traído más paro. También otros factores por supuesto han afectado. La sociedad ha cambiado, y la incorporación de la mujer al trabajo ha hecho que muchas mujeres que trabajaban de amas de casa ahora estén en el paro.

Como Ingeniero, o de forma más general, como promotor del avance tecnológico, me dedico a automatizar cosas, solventar problemas que al final se traducen en hacer innecesario el trabajo de otras personas. Mi trabajo es enviar al paro a otras personas.

En la revolución industrial las máquinas comenzaron a realizar trabajos manuales, trabajos físicos. El avance en ese ámbito continúa: la automatización de la construcción de las casas, por ejemplo, parece a la vuelta de la esquina. Sin embargo a principios del siglo XXI, las máquinas están tomando también posiciones, gracias a personas como yo he de añadir, en la realización de trabajos de un carácter menos físico y más intelectual. Se trata de automatizar tareas como las que hace la cajera del supermercado, por ejemplo.

Acabo de exponer algunos planteamientos en términos de la máquina y el avance tecnológicos como enemigos de la humanidad: “Están tomando posiciones”, “eliminando puestos de trabajo”. Y no es para menos. Ciertamente, el avance tecnológico parece imparable pero nadie sabe exactamente hacia donde va a derivar.

Ha habido conocidas obras de ficción como Matrix o Terminator donde las máquinas pasan de servir al hombre a esclavizarlo o someterlo. En realidad, de una manera más sutil pero igualmente pervasiva eso es lo que está ocurriendo. Pero la culpa de esto no es de las máquinas: es del hombre. La tecnología avanza a un ritmo mayor que la política, la filosofía. No hay que intentar parar el avance tecnológico, porque de por sí no es malo, pero hemos de  adaptar la organización de la sociedad a los tiempos actuales.

Las máquinas las creamos, compramos y utilizamos primordialmente porque nos son útiles, están a nuestro servicio. El secador de pelo, el móvil, el fregaplatos: todos son instrumentos útiles, que sin embargo han eliminado más trabajos de los que han creado. Esto genera paro, o mejor dicho ociosidad: se puede hacer lo mismo que antes, pero con menos gente. Y eso no es malo per se.

El problema es que la gente en paro no tiene dinero con el que pagar la luz, la comida, el techo donde se cobija. Pero eso no es un problema tecnológico, sino organizativo, social. Ocurre primero que las personas que tienen máquinas trabajando para sí pueden automatizar su negocio y escalarlo para ganar más dinero: así Bill Gates consiguió ser la persona más rica del mundo, por ejemplo. Pero también ocurre el efecto raqueta: debido a que la automatización en nuestra sociedad genera paro y desigualdad (más pobres desempleados, y menos ricos pero con mayor riqueza), también hay menos personas que puedan comprarle licencias de Windows a Bill Gates. No obstante hay suficientes como para que siga siendo rico, y mantener así el status quo, un equilibrio estable.

Algunas soluciones se han propuesta a este problema. Bertrand Russell propuso reducir la jornada laboral a 4 horas en su Elogio a la ociosidad. Otras solución propuest ha sido del tipo proteccionista, que no se acepte la venta de productos hechos con condiciones de esclavitud o indignas. Otra solución bien conocida es la del comunismo, que el pueblo se haga con los “medios de producción” para que así se reparta la riqueza de forma más equitativa. Otra solución propuesta ha sido el capitalismo, donde la mano invisible del mercado resuelve los problemas.

La jornada laboral de cuatro horas es desde luego interesante, pero no suficiente. Cuanto más automatización haya menos horas de trabajo humano serán necesarias y tocarán a menos por persona. Y como sabemos bien en la informática, el mito de los hombres por mes no escala: el trabajo de una persona en diez meses no lo pueden hacer 10 en uno, y el trabajo de una persona a jornada completa no lo hacen dos personas a media jornada: hay que tener en cuenta que se es más eficiente cuanta menos comunicación sea necesaria, por ejemplo. Sin embargo dado que hay pocas personas necesarias, es algo que nos podríamos permitir como sociedad, por tanto limitar la jornada laboral es una medida interesante para reducir la tasa de desempleo, aumentando la ociosidad. Pero probablemente siga habiendo personas en paro y en la pobreza si solo se aplica esta medida.

Las soluciones proteccionistas son limitadas y poco funcionales, si no se realizan de forma adecuada. En vez de prohibir, es mucho mejor aumentar las tasas e impuestos, para fomentar aquello que creemos conveniente. De esa manera si en esos países cuyas importaciones están tasadas mejoran las condiciones de trabajo, bajarán los impuestos y aumentarán sus ventas y por tanto les interesa que dichas condiciones mejoren.

Por otra parte, las soluciones comunistas del tipo “casi todo es propiedad del estado y el estado decide cuantos zapatos hacer al año” claramente no funcionan porque ahogan la iniciativa privada, y las personas se mueven fundamentalmente por intereses personales, por lo que es una estrategia que paraliza a la sociedad.  No obstante en vez de llegar al extremo, se puede aplicar una táctica parecida a la anterior: aplicar impuestos. Eso ya lo hacemos en mayor o menor medida ahora mismo.

Puede que gracias al avance tecnológico gente como Bill Gates gane mucho dinero y mucha gente termine en el paro, generando desigualdad, pero mediante la vía impositiva se reparten parte de dichas ganancias entre la sociedad en la que Bill Gates también convive, permitiendo un equilibrio. Esto es más o menos lo que propuso el New Deal.

Por último, de entre las propuestas mencionadas, la mano invisible del mercado ha demostrado que tiene desde luego la capacidad de fomentar la iniciativa privada. También ha demostrado su capacidad de generar pobreza y desigualdad, en un mundo donde existe el libre movimiento de mercancías pero no de personas, y fomenta la concentración de capital, la corrupción, etc. La fuerza sin control no sirve de nada: el potencial del capitalismo de beneficiar a la sociedad sólo se desarrolla cuando se establecen y hacen cumplir unas reglas de juego ajustadas, claras y justas.

Los desempleados no son gente mala, son personas que nuestra sociedad  tiene capacidad para mantener y la obligación moral de hacerlo, puesto que su desempleo es fruto precisamente de esa sociedad donde viven. Tenemos que encontrar un equilibrio social por el cual las personas de base tengan sus necesidades cubiertas pero se fomente la iniciativa privada para que la sociedad avance, que el esfuerzo esté debidamente recompensado.

No obstante este aumento de la acción del estado para repartir riqueza sólo puede ocurrir si el estado funciona de forma transparente y sin corrupción. De otra manera, los aumentos de impuestos irán a parar a tapar los agujeros que los desmanes políticos han creado. Quizás ni si quiera sea necesario al final aumentar los ingresos del estado; quizás baste realizar acciones más efectivas para conseguir que el coficiente de Gini baje y mantener el estado del bienestar.

Para luchar contra la corrupción es necesario aumentar la transparencia y para evitar que vuelva a ocurrir hay que establecer un sistema de check & balances efectivo, hay que permitir y fomentar que la ciudadanía tome decisiones. En Suiza, si la ciudadanía está en contra de una ley del gobierno, no tiene que esperar cuatro años para votar: pueden unilateralmente convocar un referéndum vinculante específicamente esa ley. Eso es check & balances. Y eso es democracia líquida: porque es una mezcla entre democracia directa y democracia representativa. Y es la clave para una sociedad más viable y justa.

Estados de la materia, sistemas de control de versiones y de toma de decisiones

La diferencia entre un sólido y un líquido es que un sólido como por ejemplo un cubito de hielo se compone de partículas con una estructura férrea, inamovible, debido a unas fuertes atracciones electromagnéticas, mientras que en un líquido como el que encuentras en un vaso de agua, las partículas están menos fuerte unidas y por tanto pueden fluir, es decir las partículas que conforman la materia se pueden desplazar unas sobre otras con gran facilidad y rapidez. Te puedes beber el agua porque no está congelada.

La diferencia entre un sistema de control de versiones tradicional y un sistema de control de versiones distribuido es que uno tradicional como subversion tiene una estructura definida, jerárquica, sencilla y clara, a la cual hemos de adaptar nuestro flujo de trabajo sea cual sea, mientras que un sistema de control de versiones distribuido como git tiene una naturaleza amorfa y versátil, donde no existe una jerarquía ni una estructura pre-establecidas, donde la herramienta se puede amoldar a tu forma de trabajar en cada momento. Subversion se comporta como un sólido, y git fluye como el agua.

La diferencia entre una forja de software a la vieja usanza como SourceForge y una forja social y distribuida como github también es clara: Sourceforge tiene una estructura sólida y de hecho se basa en sistemas como subversion, mientras que github tiene una estructura amorfa y podríamos decir que líquida, y se basa en git. Para conseguir esa versatilidad o liquidez que caracteriza a github, sus creadores no sólo se han basado en git, sino que han utilizado toda una capa social que le aporta gran dinamismo y fluidez, y han puesto el foco en el desarrollador porque al final es quien participa en github, resultando en un sistema menos focalizado en proyectos y centrándose en las diferentes personas que los componen, aportándole así un carácter distribuido.

Hay que recalcar que para que la mencionada liquidez de github sea efectiva sus creadores han facilitado todo tipo de colaboración entre desarrolladores: forks, merge requests, commit reviewing, un sistema de actividad típico de redes sociales, de notificaciones, y en general habilitando todo tipo de interacciones de gran efectividad para que el código fluya. Y sin embargo, por debajo de todo eso, sigue teniendo el único objetivo de mantener y controlar código, igual que sourceforge.

En cuanto a los sistemas de toma de decisiones es hora también de dar un salto a lo social, líquido y distribuido, y esa es una cuestión prioritaria en Ágora Ciudadana. Sigue siendo un sistema para la toma de decisiones, como también lo son otros sistemas de votaciones, pero se diferencia de ellos en lo siguiente:

  • Ágora NO tiene una estructura jerárquica, férrea y definida, sino que es amorfo, cambiante y versátil: ágora es un sistema líquido y por ello no es de extrañar que abandere la democracia líquida.
  • Ágora NO está enfocado en votaciones concretas (NO es “el sistema usado para el referéndum 15 de octubre”), en partidos concretos (NO es “el sistema de votaciones del Partido Pirata”), ni en estructuras concretas (NO es “el sistema de votaciones sobre el Congreso de los Diputados”), sino que pone el foco en las personas que forman parte de todo el proceso que es la toma de decisiones. Esto conlleva una descentralización, y un dinamismo que eclosiona en forma de red social. Con Ágora es fácil pensar en global y actuar en local.
  • Ágora NO está enfocado sólo a votaciones. Esa es la parte última y muchas veces indispensable y hasta ahora más visible de un sistema de toma de decisiones, pero no la única ni forzosamente la más importante. Se acabó el monopolio de las votaciones.

Estos son los pilares en los que se sustenta Ágora, y de los cuales ya se pueden sacar diferentes conclusiones, en las que no entraré en este post. No obstante he de decir que la implementación técnica ahora mismo (accesible en se encuentra aun lejos de cumplir con estos ideales. Y sin embargo ya apunta maneras hacia lo social, lo distribuido, lo líquido. En el futuro estos trazos se irán convirtiendo en grandes pilares que, esperemos, marquen un antes y un después en la toma de decisiones colectivas.

Akademy-triggered random thoughts about the future

I’m writing this text during a flight from Helsinki to Brussels on my way home from Akademy. I had a good and quite interesting time in there and I can say that I’m proud to be a member of the vibrant community called KDE.

When I was a child I wanted to be an inventor, and I was always thinking about new inventions, doing experiments and discovering things on my own. Then I discovered that with a single computer you can make happen any idea you have in your mind and convert it into reality, and that’s how at an early age I started to develop software.

KDE is all about ideas, about innovation, so I feel at home in here because people are open minded and like to think about future. I had lots of discussions about these topics: how is the future of KDE could or should be, where are we heading, what is the current situation and also brainstorming sessions about how far can technology go and how free software could anticipate this.

Currently and in the short-mid term, the biggest struggle of the KDE community and the free software in general are privative web services. Richard Stallman has warned us about this problem for a some time now, and I think it’s definitely true. This Akademy I have seen lots of people using web services like Google docs, Gmail for emails and chattting, facebook, linkedin, spotify, grooveshark, etc. I’m not pointing fingers here: this is just an increasing reality and I am part of those too.

We need to accept and agree that web services are here to stay and what we should do is to try to, first integrate them as much as possible in our ecosystem and to promote free software web services like owncloud, because it’s our only chance to remain relevant and not lose too much the field. We at Wadobo are ready to install it in our own server for example. The Free Software movement is already part of the history of Internet, and if we want to remain being part of it we need to adapt to the changes.

In a not so distant future, about three to five years, things will probably start to change, and I argue that we are going to see an invasion of Internet into reality. Yes, I’m thinking about immersive reality and gadgets like Google glasses. My friend and also Wadobo fellow Dani had a crazy brainstorming about this topic during Akademy and I think we ended up both convinced about the very broad possibilities that this new Internet bring to us.

It’s a really interesting exercise to think about the possibilities that devices like Google glasses bring, how they can enter into our life, and the implications and repercussions of all that. Basically the idea is that will have some a pair of glasses that also act as computer display, showing information over reality at all times. As simple and powerful as that.

We have seen that kind of stuff in science fiction: Dragon Ball Z, Terminator, and many more. The key thing is to make the glasses to correctly show contextual information on the go, transparently, pervasively when you actually need it and with having to do anything, just pointing your eyes/head which is something that you already do all the time in your life.

The main focus of this technology is to be a passive contextual interface. This is the business model of Google ads: they appear here and there in web pages showing related information to you. To achieve that the glasses will analyze the information sources it has (geolocalization via GPS/wireless signals, the camera pointing to what you see, other near devices, etc) to analyze the current situation in a rapid manner. Google is an information company, and if they succeed they will suddenly have so much more information about us that it will be quite scary:

    • They are already doing some steps in this direction. For example, the automatic subtitles service in Youtube could probably be applied in the future for real time translated subtitles and all people could understand each other no matter what language they use.
    • Also the advertisements business model will jump to reality: as an advertiser you could for example be able to superpose your ad about your shiny new car over old cars, or blank empty spaces. Talk about contextual and immersive advertisement.
    • The cards we use with our name and nickname on it in events like akademy won’t be needed any more: that information will be over-layered in your t shirt, or above your head. These kind of applications will probably appear in two ways: to be used in reduced contexts, and also as general purpose social networks with support for groups, etc. The next new facebook will definitely be born in here. This will take social networks to the next level. Parents will love to be able to as a glance always know where their children are, because their position will have appear to them superposed in the glasses as an indicator. This will probably also happen when you speak with someone, along with information about the call (time, cost, etc).
    • These glasses also will be regarded by ecologists as a very good invention, because you won’t need to buy any screen at all anymore. No need for screen at your workstation at work, another for your laptop, another for TV, no need to any kind of projector for presentations or at the cinema. It will be much more cost effective also. Big screen makers should be worried, their business model is going to change dramatically to the small ones and many companies will suffer this transition. Wearable computing will make our whole current computer experience change: TV, mobile phones, tablets, ebooks, workstations, laptops all will be affected. Maybe the people in the future will think about our current era as something clunky and unhealthy, where to use the computer you needed to use all these big and crazy devices, the same way we now think about cities of early 19th century as very unhealthy, filled with dirty things, smoke and non-efficient.
    • People will have their life recorded and this will bring webcams to whole new level. People will share their life on the net on live and they will have it stored completely. You will be able to attend to Akademy and do a guided tour in Tallinn through the glasses of David Faure for example. You will be able to go through a timeline of your whole life, zoom in and revive the experience you had.

This will also affect to transparency and behavior in public. Car accidents will usually be recorded from the point of view of different people and it will be much easier to judge what really happened. There will probably be a site where people will tag illegal behavior (robbery, bad parking in zebra crossings etc) and this of course will affect how people behave in public. You will also be able to easily report if traffic lights are not working and providing proof of it.

  • Services like Google street view will be also revamped: they will instantly be updated with the images of everyone’ glasses. The whole street view will be available everywhere, in 3d, and instantly updated. In the end this will allow you not only to see the world in the eyes of someone else, but to virtually move around any place in the world in real time.


And this is a small list of what currently our imagination let us reach. Some of the things written here might never happen, some will happen sooner than others, and many new original ideas did not enter the list. Most of these things won’t be possible with the first immersive reality glasses available either. But you can see now this that we are talking about is something new and interesting, which most probably will get it’s own name. For me, it’s the Realnet, because of how close is this network to reality.

Akademy-es 2012 – I go too!

Just a quick note, I’m about to take the plane from Seville to Zaragoza together with my collegues at Wadobo to attend to Akademy-es 2012

Yay! See you there folks.

PD: We’ll miss you this time Antonio Larrosa!

Wadobo Startup Manifiesto


Wadobo Startup es el nombre propuesto para un modelo de empresa tecnológica que persigue dar rienda suelta a la iniciativa individual y la autogestión dentro de la empresa, y poco sorprendentemente es el modelo que hemos decidido recientemente seguir ahora en mi empresa, Wadobo. La tesis fundamental detrás de este modelo es que de la iniciativa individual, guiada exclusivamente por el interés personal en desarrollar proyectos, surgen oportunidades empresariales. El modelo evita forzar situaciones indeseables como por ejemplo intentar que todo el equipo de desarrollo encuentre un producto en el que todos crean, porque eso al final produce que el equipo escoja como proyecto de la startup el mínimo común denominador que termina siendo un producto mediocre en el que el equipo no cree, y un producto nunca saldrá adelante si ni siquiera la gente que lo promociona cree en él. Además ese tipo de situaciones provocan que los emprendedores que trabajan en ese producto no estén contentos en el trabajo porque no hacen lo que les gusta, y eso redunda en problemas internos.

En una Wadobo Startup no existen títulos como CIO, CEO, CTO, ni nada parecido. Cada uno trabaja en lo que le interesa dentro de lo posible, todo el mundo está al mismo nivel, y normalmente eso lleva a un tipo de empresa tipo Cooperativa o SLL.

Ahora sigue la descripción somera de una serie de etapas por las que una empresa que siga el modelo Wadobo Startup suele seguir:

Paso 1: Etapa embrionaria

En la primera etapa embrionaria de Wadobo Startup nos encontramos con un grupo reducido de entorno a 2-5 de personas con perfil informático e intereses comunes, gente con la suficiente iniciativa y coraje como para montar una nueva empresa y con el objetivo de trabajar en lo que les gusta. Se comienza normalmente con uno o dos clientes puesto que se da por hecho que para montar una empresa, lo primero que hay que tener son clientes, y en un principio muy probablemente no se generarán suficientes ingresos como para que todos los emprendedores vivan de la empresa.

Y así comienzan muchas empresas que terminan derivando en meras consultorías. Pero Wadobo Startup va un paso más allá. La consultoría es en esta primera etapa la fuente de ingresos de la Startup, y posiblemente la dedicación en la empresa será prácticamente total a los proyectos de consultoría que vayan surgiendo con el objetivo de conseguir la máxima financiación inicial, afianzar clientes y básicamente lanzar la empresa adelante.

Cuando se habla en esta primera etapa de dedicación completa “en la empresa”, no nos referimos a jornada completa necesariamente. Puede que algunos de los fundadores esté aun terminando los estudios, o puede que esté trabajando a jornada parcial o completa en otra empresa por cuenta ajena. Por tanto con “dedicación completa” nos referimos al tiempo dentro de la dedicación posible que cada fundador tiene para con la empresa.

En esta etapa es usual que los miembros de la empresa tengan una o varias ideas de productos que les gustaría lanzar al mercado, pero dado que cuentan con financiación cero, la dedicación a ese o esos productos es más bien esporádica.

Paso 2: Etapa I+D

Esta segunda se caracteriza porque se tiene una cartera de clientes básica y afianzada, y todos los trabajadores de la empresa que sigue el modelo Wadobo Startup ya viven únicamente de la empresa, y por tanto han dejado las otras empresas donde trabajaban para ganarse el pan para ahora dedicarse de forma exclusiva a la startup y por tanto se cuenta con más tiempo disponible por parte de los trabajadores en la empresa.

Al alcanzar esta etapa se tiene la posibilidad o mejor dicho tentación de, dado que hay una mayor masa de horas de trabajo disponible, aumentar las horas de dedicación de desarrollos a medida porque es la forma más fácil de que la empresa gane más dinero a corto plazo. Con el objetivo de conseguir un colchón monetario que permita pagar sueldos de unos 6 a 12 meses, es normal que se aumente la dedicación a productos a medida.

No obstante, una Wadobo Startup diverge de una consultoría típica en este punto, puesto que una vez conseguida cierta bonanza económica y cierto flujo de dinero recurrente mediante el desarrollo a medida, se opta por limitar las horas dedicadas a ello y se aumenta el tiempo dedicado a productos propios, que también podemos llamar I+D, que suele estabilizarse entorno al 50% del tiempo de dedicación en la empresa en esta etapa.

El desarrollo de productos internos no se entiende como la necesidad crear un producto viable que pueda hacer que la empresa viva de ello, como en modelos de empresa tradicionales o incluso como ocurre en modelos de empresa menos tradicionales como el Lean Startup que se fundamenta en un desarrollo iterativo para encontrar la viabilidad del producto lo antes posible.

En Wadobo Startup, el desarrollo de productos internos es totalmente anárquico y consiste es que cada persona dedica tiempo al proyecto que le resulte más interesante, y la rentabilidad no es relevante. Esto permite una libertad y rapidez que fomenta la innovación, permite abandonar proyectos que pierden interés a la vez que permite abordar otros proyectos sin que estimaciones, modelos de negocios, planificaciones, y planes que no se van a cumplir se interpongan en las decisiones.

La anarquía descrita para I+D redunda en que a nadie se le dice lo que tiene que hacer, hoy puedes trabajar en una cosa, mañana en otra, y no hay ningún problema con que sea así. Los productos que están en fase de I+D no son rentables de forma directa ni tienen porqué serlo, y sin embargo serán la principal fuente de ingresos en un medio/largo plazo porque generarán oportunidades.

Notas sobre la dinámica de trabajo

Para conseguir esta dinámica de trabajo es indispensable contar con personas que sepan adaptarse a ella. Como se dijo anteriormente en la empresa no existen títulos y todo el mundo está al mismo nivel. Nadie dentro de la empresa te dice qué tienes que hacer, ni en la parte de I+D ni siquiera en la parte de desarrollos a medida: se trabaja de forma colaborativa.

Debe existir una forma de hacer un seguimiento al desarrollo de los proyectos, y esto es de forma iterativa. Reuniones semanales para hablar de lo que cada uno ha estado haciendo y lo que planea hacer, con una estimación de cuanto tiempo cree que le va a dedicar a cada cosa. Luego se cuentan las horas de trabajo en un worklog con varios objetivos: que de media todo el mundo dedique el mismo tiempo en la empresa, para poder contar el tiempo dedicado a desarrollo a medida, y para tener información útil sobre la dedicación en los diferentes grupos de desarrollo en I+D.

El modelo de desarrollo se basa en la estructura física y horaria del software libre: la única restricción es las horas de trabajo que de media se dedica semanalmente, pero esas horas se pueden dedicar a lo largo de la semana como uno quiera y ya sea trabajando desde casa o en la oficina. El trabajo es descentralizado, enfocado en lo que te interesa o en la parte de desarrollo a medida que se acuerde y con las mínimas distracciones necesarias. Se suele acordar una franja horaria de trabajo en la que todos están disponibles para fomentar la comunicación.

Paso 3: Producto con éxito

Tarde o temprano, si se realiza bien el paso 2 de I+D, es muy posible que uno de los proyectos desarrollados tenga éxito y por tanto atraiga bastante foco de atención en la empresa, lo que redundará en su éxito. El éxito no se mide necesariamente por la cantidad de ingresos que genera, sino que puede haber otras métricas como la cantidad de gente que lo usa y con qué asiduidad.

Por ejemplo, un buscador online desarrollado como proyecto de I+D que se haga muy conocido puede tener mucho éxito pero a lo mejor aun no tener un modelo de negocio claro. Eso no es un problema; todo proyecto que atraiga la atención de los consumidores es un potencial negocio y por tanto se puede considerar un éxito comercial en potencia.

No existe ninguna necesidad de forzar encontrar un modelo de negocio en un producto. Puede que en un buscador gratuito con millones usuarios dirija a muchos a pensar que si se le cobrase tan sólo un euro a los usuarios del buscador se conseguiría un negocio redondo, pero a lo mejor eso lo que consigue es precisamente todo lo contrario; lo recomendable por tanto es redundar en la calidad del servicio, continuar innovando y seguir investigando pero teniendo en cuenta las posibilidades comercial del producto, y si realmente es un producto que la gente quiere, se encontrará tarde o temprano una forma de rentabilizar el producto razonable, como por ejemplo que el buscador siga siendo gratuito pero rentabilizarlo poniéndole publicidad lateral contextual y poco intrusiva (en modo texto).

Una vez conseguido un producto con éxito y un modelo de negocio redondo, es posible que convenga estructurar parte del tiempo de los empleados en la empresa para que se dedique a dicho producto, contratando a más gente debido a las necesidades de crecimiento y/o restando tiempo al desarrollo a medida que ya no resulta necesario.

Es muy importante no abandonar el espíritu inicial emprendedor en esta etapa. Es posible que la empresa crezca pero debe continuarse en fomentar el trabajo en pequeños grupos de trabajo, aprovechar la mayor financiación disponible para aumentar la felicidad de los trabajadores en la empresa y utilizar esos recursos para permitir quedadas en persona de vez en cuando, etc.

En esta etapa la empresa si quiere posiblemente pueda dejar de realizar desarrollos a medida puesto que es una línea de trabajo que sólo sirvió de financiación y ya resulta innecesaria, y así pueda dedicarse completamente a productos internos e I+D, siempre manteniendo grupos de trabajo para el mantenimiento del producto o productos estrella que da de comer a la empresa, que básicamente toma el lugar de los desarrollos a medida con respecto a ser la principal fuente de ingresos.


En la siguiente presentación de cómo funciona Github como empresa se explica cómo Github internamente está orientada a la felicidad, a conseguir una empresa en la que mole trabajar, y es muy parecido a cómo creo que debería funcionarse con respecto a la línea de negocio de un producto que consiga tener éxito y esté asentado (paso 3):

La forma de trabajar en Valve es totalmente anárquica y equivalente a la que se propone para el tiempo de Productos/I+D en el modelo Wadobo Startup (del paso 2 y 3):

He de reconocer que no me he leído la carta entera, pero la parte de “Happiness is a healthy disregard for the impossible” es oro, pues explica cómo realmente el trabajo de I+D ha servido en Google:

Carta para inversores de Mark Zuckerberg que habla de cómo funciona su empresa “The hacker way”:

Manual del nuevo empleado de Valve:

The Server in the middle problem and solution

At the beginning of 2009 I posted a story in this very same blog where I proposed the creation of a web encryption framework to add support for end to end encryption in the web browser.

As it turns out, in 2010 I did my Computer Science final project about this subject, successfully implementing an HTML extension in KHTML that fixed what during one talk I was giving on the subject I coined to be the Server in the middle problem (project memory in spanish, code in github).

The solution I developed is just a proof of concept and not a final proposition. It basically extends the div element and input type=text element by adding two attributes, encryption=”gpg” and encryption-key=”<keyid>”, so that a div containing a gpg ascii encoded encrypted text is automatically decrypted shown the plaintext, and when a form with an encrypted input type=”text” element is sent, the data is automatically encrypted.

The key point about this proposition is twofold:

  1. The security it provides is website-independent, you only need to trust the web browser.. It’s not possible using javascript, the DOM, CSS or any other tactics to access to the contents of the plaintext.
  2. It’s easy to implement as an HTML extension that  could be standardized.

This is what makes the proposal differ from other approaches like the deceased FirePGP Mozilla Firefox extension, the javascript API that some web browsers like Mozilla Firefox provide for cryptographic primitives, or javascript libraries like Slow AES that currently provide cryptographic support for some websites that uses them.

I have spent this weekend updating the code to work in recent KDE versions and creating an ready-to-go usb live opensuse-based [1] appliance called “Server in the middle” that shows Sweeetter, a microblogging application that allows users to exchange messages using the aforementioned HTML extension. Check it out! it’s for you to test it =)

SSL was the first step for securing the web. End to end encryption is the next, and it will allow cloud applications like web chats, web mails, and even office apps in the cloud with privacy being orthogonal to the servers used. When you chat using gmail with your peers using HTTPS, there’s someone else listening: it’s Google. It’s the server that is in the middle by design. When a Los Angeles employee sends an email to another peer using Gmail, it ain’t Google’s business.  Perhaps if an end-to-end encryption scheme as proposed was available as a standard, Google would offer it in Gmail for businesses and for geeks like us ;-), and certainly other service providers would.

I will say it again: what I proposed is just a proof of concept. We could perhaps encrypt whole forms in a similar manner, or  use a secure sandbox inside which plaintext data can be freely manipulated, but whose details are well known to the browser, are being recorded and the user can see in a details dialog, similar to the details of HTTPS connections in current web browsers, and the data going out from the sandbox is encrypted in a controlled and secure way.

The issue of privacy in the web will arise sooner or later. All the applications are jumping to the web wagon and some applications just need to be secure. It’s not only cryptonerds that need to take this seriously. Big companies that need their data to be secure will either continue using old-fashioned software, or request something better than we have now. This has already happened sooner than you might think (1999). Thus, we need to take this seriously, and begin standardizing and developing similar solutions to the one proposed for the shiny future that is about to come.

[1] BTW, SUSE Studio rocks!

QMLPart: enabling a declarative web

As some of you already know, I started last year with some university friend Wadobo, a spanish-based free software startup. Lately we’ve been working with QML and now that I know it, it’s really nice. Some weeks ago I was with danigm (also from Wadobo) and we were talking about how nice it is to do mobile applications in QML, and how web applications are taking over desktop applications more and more. Do you know GTK already has an HTML/JS frontend? Demo here. BTW, Gnome guys have been working on something similar to QML too, ClutterScript.

And then the idea came out of the blue. QML could be (in my dreams 😉 the successor of HTML. I know, sounds crazy doesn’t it? That’s because it is crazy. So anyway, I wanted to test the concept, and today I coded this litle KPart called QmlPart that simply loads a .qml file into the KPart. The code is really minimal and it works beautifully, both in Konqueror and in rekonq, and loads fine both local and remote QML files and remote files, even if the QML application is divided in multiple files.

I am really surprised how easy it was to do this KPart. I uploaded to wadobo’s web server the Qt Declarative examples and most of them work out of the box with QmlPart. Here is a screencast:

Why would we want to make the web declarative? Because QML is much more powerful than HTML/CSS. Those of you that know QML will probably agree. HTML doesn’t even have a proper way to create column or row layouts. All kind of animations, transitions, states are easy-peasy in QML. And its object orientation is quite powerful, as they have properties, inheritance, etc. The web of 2011 can be much easily done in QML than in current web technologies.

What would be the path of action? This is just a proof of concept, and it might end here. Or it might not. If we get serious, we would first try to agree in a standard for a declarative web (talk to Gnome/ClutterScript guys), work in including this standard in web browsers, create a library in Javascript that allows loading declarative files as HTML/JS as a fallback for browsers without native declarative web support, and that way we can attract people to the platform, and then we would have something.

Either way, I had my fun today with this little kpart and all those crazy ideas around it. Mission accomplished.

Cloud development

As always, it’s been a while since I wrote something here. Anyway, I’m going to present here a new concept:  cloud development. First of all I must say: the people of Cloud9 IDE (Mozilla bespin/skywriter has been merged into that) are already working on something similar to my idea, but not quite the same.

The idea behind Cloud9 IDE is being able to develop javascript collaboratively  using only the web browser. It even supports debugging, but that’s because the browser actually can run javascript code itself. They plan to support syntax highlighting for more languages. They of course have a chat for those connected to the ide, and changes occur live to the code for everyone connected at the same time.

Gobby/Kobby are native (gnome, kde) collaborative editors which use the infinote protocol for collaborative editing. So you connect to a infinote server, and then you can see the files in that session, edit them, add/remove files, and chat with your colleagues.

None of those solutions provide real general purpose “cloud development” for me.  These are the features I¡m looking for:

  • The server side is a bunch of machines in a cloud configuration which provide an API.
  • The server side provides compilation for languages like C/C++.
  • The server side provides inexpensive VMs that can be easily cloned/forked.
  • When you create a new project in the cloud, a new VM is given to you, and you can configure it as you like. There you install the deps for your project development, download the source code, etc.
  • The server side has an rich API and has knowledge of high level concepts like:
    • VMs that can be forked, and cloned, for creating new live sessions.
    • Compilation, which can be done quickly and distributedly in the cloud.
    • Execution, to be able to see and control remotely the execution and debugging of gui applications.
  • The client side could as well be web app like with cloud9 ide, or it could be a native standalone application with “cloud development” support (Kdevelop, Eclipse, whatever..)

A simple cloud computing use case:

An Amarok developer configures a cloud development vm for trunk. Then he forks it, and creates a git branch in which he starts working in a new feature for amarok. This feature might need new libraries, difficult to compile. He doesn’t know much about how to use this library and it’s giving him headaches: he asks in the irc channel of #lib, and gives a link to clouddevelopment:// and the developer of libx sees the problem in the system while the amarok developer sees live how it’s getting resolved.

Then he posts in his blog about his new feature, and some other amarok developers think it’s really cool and connect to the feature branch’s live session and improve a bit the code, effortesly.
As you can see, this would mean,  among other things:

  • No more “person1: it’s broken! person2: it works here”.
  • No more pastebin: just connect to the live session and see (and even fix) the problem yourself.
  • Configure the VM once, and then everyone can use it.
  • You don’t need to install all the deps in your system.
  • If your computer breaks, you don’t lose the data and configuration.
  • You can access to different development environments that might require different versions of the same libs from your own computer, no dependency hell guaranteed, and no extra local disk usage.
  • Compilation can be really fast and the speed of it would not depend on how powerful your computer is:  you can have preconfigured already in the VMs an icecream+ccache set of computers.
  • You could develop for KDE in Mac OS X within Linux, or Windows, or whatever you want.

Of course this is just an idea… and I don’t currently have time for making it happen, but… wouldn’t it be nice? I thought I had to share it =)