Extended Attributes

Posted on : 09-06-2010 | By : Francisco Tufró | In : computers

0

Today I’ve learned something new.
Trying to do a push on a git repository, I got this strange error:
arandela:gitosis-admin nictuku$ git push -f

Counting objects: 5, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 340 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
error: insufficient permission for adding an object to repository database ./objects

fatal: failed to write object
error: unpack failed: unpacker exited with error code
To git@quov.is:gitosis-admin.git
! master -> master (n/a (unpacker error))
error: failed to push some refs to 'git@quov.is:gitosis-admin.git'

Then I’ve started to see what was going on, with an ls I noted something strange:
That @ after the permission on marquete.pub

arandela:keydir nictuku$ ls -la
..
-rw-r--r-- 1 nictuku staff 403 Jun 9 19:12 arandela.pub
-rw-r--r-- 1 nictuku staff 398 Jun 9 19:12 ganchito.pub
-rw-r--r--@ 1 nictuku staff 394 Jun 9 19:16 marquete.pub
-rw-r--r-- 1 nictuku staff 404 Jun 9 19:12 tornillo.pub
..

That’s how I knew the existence of extended attributes, to see them, just type:

arandela:keydir nictuku$ ls -l@
total 64
-rw-r--r-- 1 nictuku staff 403 Jun 9 19:12 arandela.pub
-rw-r--r-- 1 nictuku staff 420 Jun 9 19:12 bob.pub
-rw-r--r-- 1 nictuku staff 405 Jun 9 19:12 fedemika.pub
-rw-r--r-- 1 nictuku staff 398 Jun 9 19:12 ganchito.pub
-rw-r--r-- 1 nictuku staff 395 Jun 9 19:12 hudson@quov.is.pub
-rw-r--r--@ 1 nictuku staff 394 Jun 9 19:16 marquete.pub
com.apple.metadata:kMDItemWhereFroms 234
com.apple.quarantine 85

To remove them:

arandela:keydir nictuku$ xattr -d com.apple.quarantine marquete.pub
arandela:keydir nictuku$ xattr -d com.apple.metadata:kMDItemWhereFroms

Removing them solved the problem, I pushed to my git repo happy as ever…
Shit happens.


Vector graphics with proper anti-aliasing

Posted on : 03-06-2010 | By : Francisco Tufró | In : Uncategorized

0

My friend Juan Vuletich has been working on a stunning project to render svg’s with a great antialiasing technique using DSP.
Check it his results at http://www.jvuletich.org/Morphic3/Morphic3-201006.html
Congrats Juan, this is amazing.


A few ideas for teams that want to become agile

Posted on : 13-05-2010 | By : Francisco Tufró | In : agile + scrum, computers

0

In the world of agile methodologies, we find ourselves facing a constantly-repeating scenario: teams that decide to become agile after more than 2 or 3 months of work.

Certain difficulties arise and need to be overcome in order to accomplish this goal. A few of them come to mind and I wanted to comment on these:

Understanding methodologies and their goals


The agile practices proposed by each methodology or process have a purpose: they attack particular problems and provide solutions to them.

It is vital toward correctly implementing an agile process that the team be accompanied by somebody with experience, who can interpret the needs of the project and its members.


If we talk about Scrum, the role of ScrumMaster is necessary for correctly implementing the process. Many teams that decide to use Scrum designate a person from the team to be ScrumMaster and all they do is read a book and get down to work.
This is not always enough, it is possible that the person designated as ScrumMaster does not interpret the texts properly or that they draw erroneous conclusions based on previous experiences with non-agile methodologies.


In order to ensure a correct implementation, I absolutely recommend hiring a coach for a few months to train the team to work in an agile manner, and having the person designated to be ScrumMaster work alongside the coach during that entire period. One possible alternative (if hiring is not an option) would be to contact people from the local agile communities in gatherings or through mailing lists and describe situations that could be of aid to the team. Agile communities are generally willing to help simply out of love for agile practices.


Many teams fail at implementing Scrum because they lack professional help, and not only that, when they fail they are left with a bitter taste of Scrum and agile methodologies and they end up falling into the old and inefficient project organization models.


In short: hiring or at least keeping close at hand an experienced coach to guide you through the implementation of agile methodologies can determine the team’s success or failure. It is always important to participate in local agile communities.


Implementing continuous integration

Continuous integration is a set of practices that help toward the team’s efficiency and solve frequently encountered problems in a simple way.


Continuous integration may prove difficult to implement correctly if the team lacks experience. The recommendations from point 1 also apply to continuous integration.


Some of the problems and fears that I detected while talking to development teams mostly have to do with automated testing.


NOTE: I am going to take the liberty to use testing and automated testing as synonyms, but bear in mind that they are not the same.


Automated testing of applications is unfortunately not taken into account when educating developers. They are generally used to manually verifying that a piece of code actually does what it should do, which becomes impossible in large projects, resulting in regression problems and a great deal of bugs.


Testing helps solve this problem and is a vital organ in implementing continuous integration and, at the same time, is perhaps the practice at which most teams fail and flush everything down the drain.


It is common for projects over 2 or 3 months old to find themselves facing the dilemma of incorporating automated testing because the work implied by testing the code already programmed would stop development for a long time, which is unacceptable.


My recommendation for this scenario is fairly simple and it is based on the idea that something is better than nothing.


I propose that teams do the following: starting today, all new code must be tested. This will allow us to at least begin trusting our new code.


So what happens to old code? It cannot be trusted, clearly. But we can do the following: let us assume that old code works well, and every time the need arises to make a modification, we write tests to verify that piece of old code. This way, you will see how in a short time you will have achieved a very high coverage on the old code.


The experiences I had using this technique made me see that 2 or 3 months after starting to implement it, the application’s coverage approaches 80%, which is not bad at all, and the best part is that there was no additional expenditure in order to reach this percentage.



I have a favor to ask: if anybody implements this, please send me your statistics. All I need to know is the initial coverage status and how long it took you to reach an acceptable percentage (75-90%).


Another issue that makes teams flush agile practices down the drain is the use of TDD. To TDD or not to TDD, that is the question.
TDD requires previous knowledge about test creation. Writing tests that verify the application (and satisfactorily at that) is not an easy task, not easy at all.
My recommendation to teams is that if you do not have experience in writing tests, then seek implementing TDD as an ultimate goal, undergoing an intermediate process in which you make it your business to learn how to write automated tests.


This process should not last longer than 2 months. Achieving familiarity with unit testing frameworks, understanding the use of mocks and stubs, implementing functional and integration tests is something that can take a long time. In fact, I am not too sure that you can ever learn it all, but it is not necessary to be an expert in testing in order to do TDD.


On the other hand, if we are not doing TDD, we have no way to make sure that ALL the important code in our application is being tested. In order to analyze this and detect possible lines of code that are not being tested, we can make use of coverage tools. Each language has its particular coverage tools, and it is up to the team to find one that they like and that suits their needs well.



Thanks marquete for the translation!

Continous Integration session in FCEN UBA

Posted on : 01-05-2010 | By : Francisco Tufró | In : agile + scrum, computers

1

Sorry, this entry is only available in Español.


Tobias Mayer en Argentina

Posted on : 21-12-2009 | By : Francisco Tufró | In : agile + scrum

0

Sorry, this entry is only available in Español.


Environmental Seeder – New Ruby on Rails Plugin by Me

Posted on : 19-11-2009 | By : Francisco Tufró | In : computers, ruby and rails

0

I’ve just released Environmental Seeder, a simple rails plugin to allow seeding databases according to the environment you’re in (for example filling testing, staging and production databases with different data). I’ll paste the README below for you to check out how it works

EnvironmentalSeeder
===================

EnvironmentalSeeder is a simple addition to db:seed to allow loading environment specific data through seeds.rb without
any programming.
Take in account that this task doesn't replace the existing one, just appends the environmental specific seed loading.

Installation
============
Install it just as any other rails plugin

$ script/plugin install git://github.com/franciscotufro/environmental_seeder.git

Example
=======

Just use seeds.rb to store the data that goes into every single environment and use db/seeds/[RAILS_ENV].rb for specific
environment data to be loaded.
For example, a default admin user that should be created on every environment should be put into seeds.rb

db/seeds.rb
--------
User.create(:login => 'admin', :password => 'secret', :password_confirmation => 'secret')

Then, if you want your staging environment to have one post written by admin

db/seeds/staging.rb
----------------
admin = User.find_by_login('admin')
Post.create(:title => "Some data to populate staging environment", :author => admin)

Now, if you run

$ RAILS_ENV=staging rake db:seed
Loading seeds_staging.rb

That's all, you'll have your staging database populated with the admin user and a post, hope you enjoy it!

UPDATE: The guys from rails envy commented my plugin in their 101 podcast.


Algorithmic Composition using an extension of Guido D’Arezzo’s Method.

Posted on : 06-09-2009 | By : Francisco Tufró | In : audio, computers, music, science

4

This video shows one of the last algorithms I’ve been working on.
For you to understand the background of it I’ll explain quickly what’s the Guido D’Arezzo’s method all about, used in his times to teach music composition.
It helped students not to get overwhelmed with the possible choices when composing a melody in the following way (I’ll use an actual music notation not to get you confused.):

The first step is to construct a musical scale. For example we can take two octaves of the C Major scale.

C Major Scale

Now, we can cycle over the vowels matching them one by one with the notes.

C Major with Vowels Relation

Now, taking a text (In his times Guido took religious text in latin) we can generate a relation between vowels and notes in the scale we choose.
Take in account that for every vowel there is more than one option, Guido suggested that the election of the note should be made by the composer, looking for the best combination with the previous ones.

Now, for example with a simple text like “Guido D’Arezzo”, we can make the following melody (I will take always the first available note of the list.):

\

We have made a relation between the text’s vowels and a melody.
My algorithm is based on this idea to generate the melodies, but using another scale, and some magic for rhythm.
Here is a video with a demonstration of what you can achieve with this kind of algorithms…


When being 1337 is that easy…

Posted on : 18-07-2009 | By : Francisco Tufró | In : computers

0

From Francisco Tufro's Blog

Peliculas

Posted on : 29-04-2009 | By : Francisco Tufró | In : music

0

La gente de proyecto under subió el video del primer corte difusión de “Para cambiar el mundo”. La canción es “Películas” y fue realizado por Poderosa.


Software Libre y Capitalismo

Posted on : 26-04-2009 | By : Francisco Tufró | In : computers, science

0

Software Libre y Capitalismo

por Francisco Tufró


Tabla de Contenidos


Palabras Preeliminares

Primero que nada quería agradecer a mi hermano Manuel Tufró que sin él hubiese sido imposible la realización de este documento, a la Prof. Susana Mezzano que tanto me incentivó para realizarlo y a toda la gente que día a día aporta a la comunidad del software libre.


Introducción

Las nuevas tecnologías se han convertido en los últimos tiempos en una de las áreas privilegiadas de la investigación científica. Por un lado, millones de dólares son invertidos anualmente en la búsqueda de nuevos desarrollos o aplicaciones. Este fenómeno es especialmente verificable en lo que hace a la informática. Por el otro, diversas disciplinas como las ciencias cognitivas e incluso la filosofía intentan brindar interpretaciones del impacto de los nuevos fenómenos informáticos, no solo a nivel económico, sino también cultural. De forma esquemática se pueden plantear dos posiciones en lo que hace a la critica de las nuevas tecnologías. Estas dos posturas fueron descritas por Umberto Eco (en su caso haciendo referencia a la naciente televisión) [1] como “Apocalípticos” e “Integrados”, es decir, aquellos que ven en la innovación tecnológica un apocalípsis de la cultura tal y como la hemos entendido en los últimos siglos y los que consideran a las nuevas tecnologías como una panacea que resolverá por si sola todos los problemas. En este trabajo se intentará un abordaje crítico que no condene ni celebre a priori a los avances tecnológicos, sino que ponga de manifiesto sus potencialidades y sus aspectos negativos.

Desde la decada del 80 las empresas dedicadas a la informática han aparecido ante la opinión pública como el punto máximo del capitalismo y a la vez la punta de lanza de una renovación en las formas de producción. Pero, ¿Es posible que en el corazón mismo de la informática estén latentes formas de organización que cuestionen algunos principios básicos de la forma de producción capitalista?

El objeto específico de este trabajo es analizar los principios que organizan al llamado movimiento del software libre, principios que, como se verá, necesariamente exceden lo puramente técnico. Las características de este fenómeno serán revisadas a la luz de ciertas categorías utilizadas por diferentes pensadores, filósofos y sociólogos, que intentan describir al capitalismo avanzado y a la vez proponer otras formas de pensamiento que permitan distanciarse de dicho sistema y pensar nuevas maneras de construcción de lo social. Por ello, otro núcleo importante será la tematización de la relación entre técnica, sociedad y ética, con vistas a construir interpretaciones no reduccionistas.

[ Arriba ]


Capítulo 1: ¿De qué hablamos cuando hablamos de GNU/Linux, Free Software u Open Source?

El Free Software y el OpenSource son dos corrientes que plantean principios de acción aplicables a la tecnología informática y su relación con las prácticas sociales. Se diferencian de otras corrientes hegemónicas por plantear una reflexión filosófica y Ética que va más allá del simple planteo de desarrollo comercial y ganancia empresarial. El GNU/Linux es la expresión concreta de esta filosofía en el campo de los sistemas operativos y aplicativos de computadora.

Para entender la situación que originó toda esta corriente debemos situarnos en la realidad que se vivía hace unos cuantos años allá por los ‘70. En esos tiempos las computadoras venían acompañadas de su software y el negocio de los fabricantes era vender el hardware y no sus sistemas operativos. En esa época no era difícil encontrar software gratis acompañado de sus fuentes. Esta política generó un ambiente de cooperación entre los usuarios de computadoras de la época que podían entonces intercambiar información y rutinas libremente. Se debe tener en cuenta que los usuarios eran universidades, centros de desarrollo, grandes empresas y entidades gubernamentales.

Hacia los años ‘80 la situación fue cambiando bastante debido a que los fabricantes comenzaron a ver en el software un gran negocio, de hecho hoy día es más redituable que el hardware. La situación originada fue la siguiente: los departamentos de las universidades y centros de desarrollo utilizaban casi en forma exclusiva workstations y computadoras aún más grandes corriendo sistemas operativos UNIX. Cada vez que se decidía un cambio de modelo de computadora se debía no solo adquirir la computadora, sino también el sistema operativo y las herramientas de desarrollo para el mismo. Los precios eran muy altos debido al impacto del costo del software. A todo esto debe agregarse que los fabricantes ya no proveían los fuentes y que el intercambio de información que se vio en los ‘70 quedó bloqueado con motivos de estrategia comercial.

En 1983 Richard Stallman, que desarrollaba tareas en el departamento de Inteligencia Artificial del MIT, decidió iniciar un titánico proyecto con el objetivo de restaurar aquel ambiente de los años ‘70. Como toda computadora necesita un sistema operativo para funcionar el proyecto comenzó por allí.

Para Stallman el software no sólo debe ser gratis sino también “libre”, es decir que el que adquiere un software debe poseer la libertad de modificarlo para acomodarlo a sus necesidades, esto implica en forma directa que el software debe ir acompañado de todo su código fuente. Esto es aún más “raro” si se lo compara con la norma actual. Las grandes empresas como  Microsoft, Apple, Symantec, es decir las que proveen la mayor parte de aplicaciones de computadoras personales, eventualmente podrían estar de acuerdo en volver gratis su software o parte de él y solo cobrar por los servicios pero difícilmente aceptarían entregar sus fuentes. Dar a conocer el código de los programas significaría perder el control sobre el monopolio y la dependencia que genera en los usuarios. De hecho estas compañías basan su éxito no en la libre competencia que tanto pregonaba Adam Smith en sus estudios sobre el capitalismo sino en la creación de un mercado cautivo. Como respuesta a esta política de las grandes corporaciones nace la llamada FSF (Free Software Foundation).

Con esta filosofía Stallman inicia la creación de un nuevo sistema operativo llamado GNU, que significa “GNU’s Not Unix” y como se puede ver es una definición circular. El nombre se pronuncia gñu (la g es casi muda), muy similar al nombre del animal (Ñu) que es el emblema del proyecto. Gracias al esfuerzo de miles de voluntarios que trabajaron (se estima que el FSF está  integrado por alrededor de 300.000 programadores), y continúan trabajando en el proyecto, es que hoy en día todas las herramientas que deben acompañar a un sistema operativo del estilo de Unix han sido desarrolladas por GNU/FSF.

Richard Stallman explica cuáles son los principios fundamentales de la FSF y el proyecto GNU:

  • “El usuario tiene libertad para ejecutar el programa, con cualquier propósito.
  • El usuario tiene la libertad para modificar el programa para adaptarlo a sus necesidades. (Para que esta libertad sea efectiva en la práctica, el usuario debe tener acceso al código fuente, porque modificar un programa sin disponer del código fuente es extraordinariamente dificultoso.).
  • El usuario tiene la libertad para redistribuir copias, tanto gratis como por un canon.
  • El usuario tiene la libertad para distribuir versiones modificadas del programa, de tal manera que la comunidad pueda beneficiarse con sus mejoras.”[2]

Dentro de este movimiento podemos encontrar también distintas posiciones. Por un lado Stallman como vimos propone el desarrollo libre de software a partir de la posibilidad del usuario de acceder públicamente al código fuente. Sin embargo la idea central de Stallman parte de la existencia de un grupo reducido de programadores, una elite que desarrolla el software que después será liberado. El usuario realiza las modificaciones para adaptar este software a sus necesidades y eventualmente difunde las modificaciones realizadas. Hay otras posiciones más radicalizadas: por ejemplo Eric Steve Raymond propone, en un texto titulado “La Catedral y el Bazar”[3],  otra forma de desarrollo de software libre. Su idea implica una cierta concepción de autor colectivo ya que enfatiza el hecho de que un programa debería ser liberado a la comunidad de programadores lo más rápido posible, para así generar un grupo de interesados que se involucren participativamente en el diseño de programas incluso en las instancias primeras.

El finlandés Linus Torvalds se muestra en términos generales de acuerdo con los postulados de Raymond. Sin embargo, partiendo de una visión del hombre un tanto individualista, enfatiza no tanto el aspecto de la creación colectiva sino más bien de la delegación de las tareas. Con todo Linus Torvalds aconseja: “Libere rápido y a menudo [el código fuente], delegue todo lo que pueda, sea abierto hasta el punto de la promiscuidad”.

Estas diferentes posiciones presentan diversas implicancias filosóficas y potencialidades de cambio que serán analizadas más adelante.

[ Arriba ]


CAPITULO 2: Software Libre y Software Propietario

En la actualidad la enorme mayoría de los usuarios de software del mundo (sean individuos o empresas)  utilizan el llamado “Software Propietario”. Éste presenta varias características:

  • Tienen licencias, las cuales están limitadas por usuarios y son pagas. Estas licencias restringen las libertades de los usuarios a usar, modificar, copiar y distribuir el software.
  • El desarrollo, programación y actualización de este software solo lo hace la empresa que tiene los derechos. Como sucede con los productos Microsoft (Windows, Office, etc) Estos ocasiona retrasos tecnológicos y poca creatividad en los productos.
  • En el software comercial se suele esconder y mezquinar los avances y descubrimientos tecnológicos entre las empresas que lo desarrollan.
  • El futuro del software que compró el usuario depende de una empresa comercial.
  • Muchas veces con estrategias comerciales se suele hacer que los usuarios actualicen su software, sin que exista una necesidad verdadera de ello, consiguiendo de esta forma hacer que el usuario invierta en nuevas licencias, la mayoría de las veces innecesarias.

Resumiendo, y sin entrar en mayores detalles en lo que hace a las empresas comerciales, los principales obstáculos que enfrenta el usuario individual de software propietario no tiene que ver con el dinero (ya que la piratería es, dentro de todo, tolerada) sino con cuestiones que se relacionan con la creatividad, flexibilidad de las herramientas, dependencia de las grandes corporaciones y sus estándares cerrados que generan una situación monopólica en la cual se controla el desarrollo de las innovaciones tecnológicas. El software libre apunta hacia este objetivo, ya que libre no significa gratis, confusión corriente producida por la mala interpretación de la palabra inglesa “free”. Stallman escribió, con el objetivo de aclarar esta ambigüedad, un texto en el cual explica que la utilización dada a la palabra “free” remite a la idea de “freedom”, es decir, libertad. [4]

El software libre (o al menos la mayor parte de él) presenta las siguientes características:

  • Esta licenciado bajo la GPL (General Public Licence, o Licencia General Pública), la cual no está limitada por usuarios, y garantiza las libertades de usar, modificar, copiar y distribuir el software por parte de los que lo utilicen.
  • En el desarrollo de este software pueden intervenir cualquier persona, empresa u organización del mundo. Lo cual genera una gran avalancha de ideas innovadoras, posibilitando grandes avances tecnológicos en estos productos.
  • Los avances y descubrimientos tecnológicos son diarios, y se encuentran en internet de forma gratuita. La principal meta del software libre es compartir los avances tecnológicos con la comunidad de usuarios.
  • El usuario no depende de una sola empresa, ya que el software que implementó puede ser mantenido y modificado por cualquiera en el mundo, esto lo garantiza la licencia GPL.
  • El software libre tiene la costumbre de seguir siendo compatible de manera retroactiva, tanto en software como en hardware. No obliga al usuario a cambiar de tecnología, ya que no persigue los mismos fines económicos (en general) que el software propietario.

Este último punto también es fundamental, ya que nos permite pensar al GNU/Linux como parte de una nueva forma de relacionarse entre las personas que no sigue el modelo del mercado capitalista. El modelo capitalista tiende a subsumir todo tipo de relación al fin último instrumental de la ganancia y la reproducción del capital [5]. Es por ello que las grandes corporaciones informáticas, en tanto pilares del proceso de globalización que comenzó a acentuarse en los últimos 30 años, subordinan la innovación y la creatividad a la ganancia, administrando las mismas de tal manera que no se permita el surgimiento de proyectos alternativos. Las características del software libre lo transforman en potencialmente contrahegemonico en caso de ser utilizado y explotado hasta las últimas consecuencias. Siempre existe el peligro de una desvirtuación y una reabsorción del mismo por el capitalismo ya que los principios del software libre también pueden ser interpretados desde un punto de vista individualista y conservador. En la próxima sección serán desarrolladas estas y otras implicancias filosófico-políticas de la utilización del software libre.

[ Arriba ]


Capítulo 3: Las potencialidades del GNU/Linux

La tecnología no es neutral. La utilización que se da a cualquier innovación tecnológica está determinada por una matriz social que preexiste a la técnica y en la cual ésta se inserta, tomando así un determinado sentido. Esto quiere decir que, en términos generales, la tecnología no puede ser usada para cualquier fin. Las finalidades de la técnica dependen de las características de la formación social que le sirve de contexto. En el caso de las tecnologías surgidas con la primera y segunda revolución industrial, su objetivo fue, según Murray Bookchin [6], el de la producción ilimitada, sin que ningún límite ético pusiera trabas al accionar tecnológico. Con la así llamada revolución informática ocurrió algo similar: una serie de innovaciones que potencialmente podían servir para lograr una comunicación mucho más horizontal y democrática que la que permiten los otros medios masivos (prensa, tv, radio) fue utilizada para inyectar nueva vida a un capitalismo en crisis. Josep Weizenbaum [7] afirma que el ordenador digital llegó en el momento histórico justo para evitar una crisis terminal del capitalismo, ya que al final de la segunda guerra mundial los gobiernos y las empresas se encontraron enfrentados a tareas de cálculo sin precedentes en la historia humana, lo que hubiera llevado a una parálisis de no ser por la aparición de la informática y su enorme capacidad para procesar datos.

La pregunta que nos formulamos ahora es ¿Se pueden invertir los términos? Es decir ¿Es posible intentar cambiar aspectos de la matriz social capitalista a partir de la utilización de ciertas innovaciones técnicas? En principio creemos que sí, ya que, como afirma Mark Malloch Brown (administrador del PNUD), “Lo mismo que la educación, la tecnología es el motor, y no solo la consecuencia, de una mejoría en las condiciones económicas y sociales” [8]. Estas bellas palabras solo pueden convertirse en realidad si se actúa con referencia a principios éticos que no pueden ser los del capitalismo corporativo. Philippe Rivière, autor del artículo del cual fue extraída la anterior cita, asevera que “Cuando baila en brazos del mercado, la ciencia ya no sabe responder a las necesidades esenciales” [9]. Debería tratarse entonces de una práctica científica desinstitucionalizada, lo que Bookchin llama una “Técnica Libertaria”, liberada de las burocracias. Claro que la realización de este ideal supone una sociedad y una sensibilidad libertaria. En este mismo sentido apuntan los desarrolladores de software libre: por las características puramente técnicas de este tipo de herramientas informáticas es potencialmente posible otra forma de interacción, diferente a la que proponen las grandes corporaciones. Pero esto no alcanza por si solo para garantizar la consumación de dicha posibilidad. Son necesarios ciertos elementos que exceden lo puramente técnico. Los planteos éticos y filosóficos sostenidos por la comunidad GNU demuestran la conciencia que existe de esta necesidad.

Una primera potencialidad consiste en el hecho de que las nuevas tecnologías, sumadas a los principios éticos que defienden los usuarios y desarrolladores de GNU/Linux, brindan la posibilidad de organizar las relaciones entre los mismos de una manera que rompa con las formas de relaciones jerárquicas que imponen las corporaciones multinacionales. Estas relaciones pueden plantearse a semejanza de lo que los filósofos Gilles Deleuze y Félix Guattarí llaman “rizoma” [10]. El rizoma es una imagen que estos filósofos utilizan para oponerse a la metáfora de la raíz, figura central de toda la lógica clásica. La raíz (o estructura arbórea) opera a través de divisiones binarias y jerárquicas que se van desprendiendo de un tronco principal. El rizoma por el contrario se asemeja a una red, sin jerarquías, sin punto de inicio ni final. Cualquier punto del rizoma puede ser conectado con cualquier otro. Si en la estructura arbórea existe filiación y enlaces preestablecidos, en el rizoma hay alianzas y relaciones infinitas entre un punto y otro cualquiera. No es un sistema centrado jerárquico, con memoria organizadora o un comando central. Por eso mismo el rizoma no puede ser quebrado ya que se reconstruye desde cualquiera de sus segmentos. El nuevo medio de comunicación conocido con el nombre de “Internet” responde en principio a las características del rizoma, en oposición a los medios masivos como la televisión, la radio, la prensa, el cine, etc. Estos últimos funcionan según una estructura arbórea y jerárquica, ya que existe un punto central que es el origen de las emisiones y múltiples puntos de recepción que están subordinados a aquel punto central en el sentido de que no pueden modificar aquello que es emitido, deben limitarse a consumirlo. Las características técnicas de internet rompen con esta lógica ya que brindan la posibilidad de utilizar un mismo canal como soporte de comunicaciones de ida y vuelta entre dos puntos determinados, además de permitir enlazar una multiplicidad de puntos que son a la vez emisores y receptores. Negri y Hardt observan que internet es el ejemplo principal en la actualidad de una estructura de red democrática: “Un número indeterminado y potencialmente ilimitado de nodos interconectados se comunican sin ningún punto central de control. (…) El diseño original de la internet fue ideado para resistir un ataque militar. Como no hay un centro y casi cada parte puede operar como un todo autónomo, la red puede continuar funcionando aún cuando parte de ella haya sido destruida” [11]. Estos autores consideran que esta potencialidad rizomática de internet es lo que dificulta tanto el control de la misma, como se ha evidenciado en el último tiempo con el caso del conflicto entre el gobierno chino y el buscador de información “Google”: el gobierno de la Republica Popular de China había decidido bloquear toda conexión con el mencionado sitio, a través del control de los paquetes de información enviados por internet. Entonces los integrantes del staff de Google establecieron una conexión intermedia a través de otro sitio web (http://www.alltooflat.com). Los usuarios chinos podían conectarse con este sitio y a través de él utilizar el google sin acceder directamente. De esta manera el control del gobierno fue burlado y la prohibición finalmente debió ser levantada.[12]

Sin embargo como se dijo anteriormente, no alcanza con las características puramente tecnológicas para alcanzar la forma de relación rizomática. Deleuze y Guattari observan que el rizoma puede correr el riesgo de ser re-estratificado, convertido en una estructura arbórea. Ese riesgo existe en internet a partir de la utilización puramente comercial de la red. Es decir, por más que técnicamente es posible que cada usuario de internet sea un emisor, en la práctica, si la red es utilizada como un medio masivo más, existirán siempre puntos de emisión privilegiados (los sitios más importantes del mundo) que funcionan como un centro de emisión poderoso e incontestable. Un ejemplo de esto es la práctica que realizan los servidores de acceso a internet vía cable, que permanentemente modifican la dirección IP (Internet Protocol) del usuario para evitar que el mismo se establezca como centro emisor, a menos que el usuario pague una determinada cantidad de dinero. Los sistemas operativos GNU/Linux han sido desarrollados de manera que facilitan contrarrestar estas practicas debido a su orientación hacia el desarrollo de redes horizontales y personalizadas según las necesidades del que las utilice.

Un segundo aspecto que merece ser mencionado tiene que ver con la posibilidad de pensar nuevas formas de propiedad. En el software propietario todavía funciona una categoría ligada al capitalismo industrial: La del autor o propietario intelectual. Los programas son desarrollados por múltiples programadores que son los que crean e innovan pero a la vez no son más que empleados de la empresa que finalmente registra a su nombre un producto determinado, impidiendo además que el mismo sea modificado y mejorado por otras personas. Al igual que en las fabricas, los trabajadores no se sienten dueños de aquello que producen, es decir, están alienados. Nuevamente, lo que en la fábrica era técnicamente imposible (la comunicación horizontal entre todos los obreros a través de sus herramientas de trabajo) se vuelve posible por los avances tecnológicos. La difusión de la producción a través de redes lleva a cuestionar la noción de propiedad privada. Hardt y Negri observan que “el fundamento de la clásica concepción moderna de propiedad privada es, en cierta medida, disuelto en el modo postmoderno de producción”. La propiedad privada sigue funcionando como categoría jurídica universal, sin embargo “no puede evitar volverse un concepto cada vez más abstracto y trascendente, cada vez más separado de la realidad” [13]. Quizás Hardt y Negri se muestran demasiado optimistas en este pasaje, pero los principios del software libre son un primer paso en el sentido de proponer un nuevo régimen de propiedad y sobre todo una nueva noción de autor, que tiene que ver con un autor colectivo y con una obra nunca concluida y siempre en proceso de recreación, mejora y avance.

Estas potencialidades solo podrán ser cumplidas si se respeta el principio rizomático de construcción múltiple y horizontal. El software libre puede transformarse así en una herramienta para construir una globalización desde abajo, lo que sería una verdadera contraglobalización, es decir, una globalización controlada por esa figura aún no demasiado bien definida: la multitud [14]. Este principio de construcción desde abajo no es aceptado por todos aquellos involucrados en el desarrollo de software libre. En el texto “La Catedral y el Bazar” [15] Raymond describe dos tendencias dentro de la producción del software libre. Por un lado afirma que Linux se parece a un bullicioso bazar, conformado por una multitud de individuos con propósitos y enfoques diferentes que aportan en pie de igualdad a la conformación de una totalidad siempre cambiante. Pero por otra parte denuncia la existencia de ciertas posiciones que propugnan la existencia de una élite de programadores encargados de construir el software de mayor envergadura como si fuera una catedral, es decir, “debía ser cuidadosamente elaborado por genios o pequeñas bandas de magos trabajando encerrados a piedra y lodo, sin liberar versiones beta antes de tiempo”[16] . Esta postura, si bien cuestiona la propiedad del software, reproduce la figura capitalista del autor individual. Lo que Raymond constató en la práctica es que el estilo bazar enriquece enormemente el resultado del proceso de construcción y fortalece el movimiento Linux con una rapidez inimaginable.

[ Arriba ]


Conclusión: Cooperación versus expropiación

Hemos visto las potencialidades de cambio del software libre. Por su forma de estructuración rizomática se plantea como un desafío a las jerarquías que impone el modo de producción capitalista (entre ellas la distinción entre productores y consumidores). Por la naturaleza de los aportes de los usuarios a través del “estilo bazar” vemos surgir una nueva forma de propiedad y sobre todo formas de creación colectiva que desafían lo establecido. El software libre se plantea como una forma de comunicación horizontal ente iguales. En este sentido otra de sus grandes potencialidades es la de lograr una articulación de la actividad de los hackers en una producción alternativa. Este tipo de software puede tener la virtud de transformar al cracker en hacker: así como los anarquistas planteaban la integración de los marginales en un proyecto de cambio, la cooperación entre crackers/hackers modifica de manera cualitativa la actividad de los mismos. Se conoce con el nombre de cracker a aquel que utiliza sus conocimientos informáticos con fines destructivos o perjudiciales (ingresar a un sistema y modificar o eliminar sus datos). La actividad del cracker entraría dentro de lo que Michel De Certeau llama actividades del orden de la táctica: “Llamo táctica a un cálculo que no puede contar con un lugar propio (…) No dispone de una base donde capitalizar sus ventajas (…) La táctica depende del tiempo, atenta a coger al vuelo las posibilidades de provecho. Lo que gana no lo conserva” [17]. La actividad táctica es aquella que no está integrada a un proyecto orgánico, por eso no tiene un espacio propio en el cual capitalizar sus victorias. Se trata de prácticas que aprovechan un saber local para golpear en el momento oportuno, pero sin por ello presentar una alternativa global. A las tácticas se oponen las estrategias que tienen que ver con el cálculo de las relaciones de fuerza realizadas desde un sujeto de voluntad y poder (una empresa, un ejercito, una ciudad, una institución científica), es decir un proyecto colectivo de construcción y no de destrucción. La actividad del cracker puede ser transformada de su pura negatividad en una práctica constructiva al sumarse a un proyecto de cooperación como el que propugna el software libre. Se opera así la transmutación del cracker en hacker: el objetivo del hacker es la investigación y la experimentación con vistas a lograr innovaciones. Su actividad se plasma en productos colectivos. La actividad individual y destructiva se transforma en cooperación constructiva.

Pero también encontramos que todas estas potencialidades no están garantizadas por la existencia misma de un dispositivo técnico. El capitalismo siempre se caracterizó por su capacidad para absorber y subsumir formas no capitalistas, incorporarlas y de esta manera utilizarlas en beneficio propio. Si hoy las formas de producción tienden a configurarse como cooperación en red, la explotación capitalista asume ahora la forma de la expropiación de la cooperación. Las prácticas del software libre corren peligro de ser capturadas por el mercado y terminar siendo un buen negocio orientado. Incluso alguien tan vinculado al software libre como Richard Stallman considera a este tipo de software como una nueva y revolucionaria forma de “servicio al cliente”. Esta estrechez de miras en relación con las potencialidades que posee este movimiento nos permite considerar la posibilidad de que las nuevas formas de cooperación que plantea, en tanto son altamente productivas, terminen siendo utilizadas para generar nuevas y mayores ganancias. Son necesarios entonces principios éticos que trasciendan lo puramente tecnológico y permitan pensar a estas innovaciones técnicas como una herramienta para la modificación de la matriz social, la misma matriz que es responsable del sentido que adquiere la técnica actualmente en nuestra sociedad.

[ Arriba ]


Bibliografía

Bookchin, Murray, Ecología de la libertad, traducción propia de la cátedra de Informática y sociedad de la Facultad de Ciencias Sociales, UBA, 1999.

De Certeau, Michel, La invención de lo cotidiano – 1. Artes de hacer, México, Universidad Iberoamericana, 1996.

Deleuze, Gilles y Guattari, Félix, Mil Mesetas, Pre-textos,Valencia, 1988.

Eco, Umberto, Apocalípticos e Integrados, ed. Lumen, Barcelona,1999

Hardt, Michael y Negri, Antonio, Imperio, ed. Paidos, Barcelona, 2002

Raymond, Eric Steve, “La Catedral y el Bazar”, publicado en españolen: http://www.sindominio.net/biblioweb/telematica/catedral.html

Rivière Philippe, “Tecnologías y desarrollo”, en Le Monde Diplomatique, número 26, Agosto de 2001.

Stallman, Richard, “The GNU Project”, en AAVV,  Open Sources, O’Relly & Asociated, 1999. Publicado en español en: http://www.gnu.org/gnu/thegnuproject.es.html

Weizenbaum, Josep, La frontera entre el ordenador y la mente, ed. Pirámide, Madrid, 1978.

[ Arriba ]


Referencias

[ 1 ] Eco, Umberto, Apocalípticos e Integrados

[ 2 ] Stallman, Richard, “The GNU Proyect”

[ 3 ] Raymond, Eric Steve, “La Catedral y el Bazar”

[ 4 ] Stallman, Richard, op. cit.

[ 5 ] Hardt, Michael y Negri, Antonio, Imperio, cap. 4.1: “Declinación y Caída del Imperio”

[ 6 ] Bookchin, Murray, Ecología de la libertad

[ 7 ] Weizenbaum, Josep, “La frontera entre el ordenador y la mente”

[ 8 ] Citado por Rivière Philippe, “Tecnologías y desarrollo”, en Le Monde Diplomatique, número 26, Agosto de 2001, página 32.

[ 9 ] Ibidem

[ 10 ] Deleuze, Gilles y Guattari, Félix, Mil Mesetas

[ 11 ] Hardt, Michael y Negri, Antonio, Op. Cit., cap 3.4: “Posmodernización, o la informatización de la producción”

[ 12 ] Consultar en: http://www.alltooflat.com/geeky/elgoog/

[ 13 ] Ibidem.

[ 14 ] Hardt, Michael y Negri, Antonio, Op. cit.

[ 15 ] Raymond, Eric Steve, Op. Cit.

[ 16 ] Ibidem

[ 17 ] De Certeau, Michel, La invención de lo cotidiano – 1. Artes de hacer, México, Universidad Iberoamericana, 1996.

[ Arriba ]


Valid XHTML 1.0 Strict