Archivo de la etiqueta: Ingeniería

Hernàndez: Software Libre: técnicamente viable, económicamente sostenible y socialmente justo

Software libre: técnicamente viable, económicamente sostenible y socialmente justo
© openlibra.com

Aun en el 2014 existe mucha especulación sobre el Software Libre en general, regularmente por desconocimiento de los ciudadanos sobre él, desconocimiento que bien puede deberse al desinterés en temás tecnológicos por parte de ciudadanos idiotamente cómodos o de aquellos abarrotados por la enajenante explotación productiva, a la existencia de intrincados sistemas de difamación sobre él por ser un modelo alternativo a modelos poderosos y tradicionales o bien por la complejidad tecnológica de su nacimiento. Esta situación llevó a Jordi Mas I Hernàndez, entre seguramente muchos otros casos, a escribir un libro sobre el tema para limpiar de polvo el ambiente.

El libro de Hernàndez recoge varias aristas del Software Libre, desde su historia, pasando por sus creaciones más memorables, sus mitos, su jurisprudencia, sus modelos de negocio, hasta su aplicación en los sistemas públicos de diferentes regiones mundiales. Esto lo hace interesante, puesto que aunque es un libro escrito por un programador, esto no hace que el libro se limite a explicaciones técnicas, sino que desborda esto y avanza hacia una visión integral del Software Libre que envuelve al lector y da solución a un buen número de sus dudas a través de la exposición de conceptos y una amplia casuística.

Como valor agregado al desarrollo de este contenido, el hecho de que el libro haya sido publicado bajo una licencia copyleft, más específicamente una Creative Commons BY-NC 2.0, es una intención que se sube al barco de la distribución del conocimiento para generación de conocimiento. Esto es naturalmente coherente con el contenido del libro y empuja hacia lo que debe ser natural en el conocimiento humano; su dispersión entre y hacia la mayor cantidad de, sino todas, las mentes senti-pensantes. En últimas ¿qué sería del conocimiento si perece en la mente de un egoísta? Nada más que oportunidades invisibles.

Ahora bien, aunque el libro se lleva un buen concepto en tanto erradicador de cortinas de humo en torno al Software Libre, el autor nos queda debiendo un tratamiento más amplio de la dimensión social, aquella misma que puede ser abordada por el Software Libre en aras de la mejora de la calidad de vida de los ciudadanos a través de su empoderamiento sobre la tecnología y de su apertura hacia la mentalidad hacker, llevada a todos los aspectos de su vida de forma que la creatividad horade los sistemas constituidos y anacrónicos que imperan en la cultura y educación modernas.

Este ejemplar hace parte de un buen número de literatura que comprende el amplio universo de la Cultura y el Software Libre, situación que debe ser reforzada con el debate de tal literatura y con la producción de nuevas publicaciones del mismo talante que vayan poniendo al día el conocimiento que se ha construído colectivamente.


Post técnico #6: Una intercepción por clase; el Same interception type cannot be specified twice on the same class

A veces por no leer la documentación de las API surgen errores que nos hacen perder el pelo. Para la muestra un botón: después de llevar un buen rato de desarrollo haciendo un interceptor de EJBs, intenté subir la aplicación y el resultado fue el siguiente:

Grave: Exception while loading the app : Same interception type cannot be specified twice on the same class org.jboss.weld.interceptor.util.InterceptorMetadataException: Same interception type cannot be specified twice on the same class at org.jboss.weld.interceptor.reader.InterceptorMetadataUtils.
buildMethodMap(InterceptorMetadataUtils.java:136) at org.jboss.weld.interceptor.reader.InterceptorMetadataUtils.
readMetadataForTargetClass(InterceptorMetadataUtils.java:43) at org.jboss.weld.interceptor.reader.cache.DefaultMetadataCachingReader$2.
apply(DefaultMetadataCachingReader.java:36) at org.jboss.weld.interceptor.reader.cache.DefaultMetadataCachingReader$2.
apply(DefaultMetadataCachingReader.java:34) at com.google.common.collect.ComputingConcurrentHashMap$
ComputingValueReference.compute(ComputingConcurrentHashMap.java:355)…

Después de indagar en la web y encontrar soluciones como por ejemplo que las anotaciones @PostConstruct o @PreDestroy estaban repetidas en alguno de los beans manejados por el contenedor, sospeché sobre la anotación @AroundInvoke (que en últimas era la única herramienta nueva había sido incluida en el último desarrollo) y revisé su documentación, en donde encontré la respuesta:

A class must not declare more than one AroundInvoke method

El caso era que en el código había una sola clase con cuatro métodos empleando la anotación @AroundInvoke. Grave error. Separándolos en cuatro clases diferentes el problema se solucionó (si alguien conoce una mejor forma de solucionarlo, por favor no deje de comunicarnoslo).


Herramientas incomunicativas

Cuando se trata de trabajar en un equipo de personas que tienen la posibilidad de compartir el mismo espacio, algo sencillamente práctico es poder comunicarse con ellos directamente, sin intermediarios. Esto permite conocer a los otros miembros del equipo, entablar una comunicación ágil y sincera y solucionar los problemas en equipo. Esto funciona así más o menos bien para organizaciones pequeñas, en las cuales los miembros se conocen debido a que las relaciones a establecer son pocas. Es como un pueblo pequeño donde todos se conocen con todos, los chismes vuelan y las solidaridades son efectivas.

Este tipo de organización, comunicada por el término de la distancia, mantiene relaciones humanas progresistas y genera niveles de gobernabilidad debido a la alta cantidad de información veraz suministrada a los directivos por la interacción entre todos los participantes del todo orgánico, incluyendo a los mismos directivos. La comunicación es exitosa y los esfuerzos gerenciales se centran en la producción y no tanto en la manutención del sistema.

Sin embargo, existe una tendencia moderna dirigida a la utilización de tecnología per se, sin que la organización se piense primero como sujeto tecnológico autónomo y único. Es decir, los grupos sociales adquieren tecnología para sí por el simple hecho de que esta existe y ofrece un servicio, sin primero reflexionar sobre la utilidad real de dicha herramienta para el grupo. Esto conlleva a que la agrupación termine inventando necesidades que no tiene con el único fin de disfrutar de las mieles de la tecnología. Así, una persona compra un smartphone y termina convirtiéndose en un As del correo electrónico y las redes sociales, algo que no necesitaba ser antes y que sin duda ahora le quita tiempo para ser lo que realmente debe ser.

Pero enfocando esta realidad en el tema planteado al inicio del texto -la comunicación- se pueden ver situaciones en las que estas herramientas tecnológicas, principalmente las de la información y la comunicación, resquebrajan las relaciones entre los miembros de la organización, relaciones que permiten la comunicación. El tiro le sale por la culata a los implementadores de estas tecnologías. Un caso concreto (y recurrente): Se tiene una empresa pequeña, pero localizada en varios países o ciudades, en la cual sus miembros se comunican directamente de forma personal. Las directivas imponen una medida mediante la cual exigen que la comunicación entre sus empleados (solicitud de información y/o servicios internos) se establezca a través de una herramienta tecnológica para tal fin, que además servirá a las directivas para medir el nivel de producción de sus empleados, pues se encuentran en otro país o ciudad y no tienen control (en forma probatoria) del trabajo desarrollado por sus subalternos. Poco a poco las relaciones de comunicación existentes desaparecen y las solicitudes de información no sólo se hacen más engorrosas, sino que tienen una respuesta mucho más lenta. El sistema pasa de ser una agrupación armoniosamente anárquica a ser una agrupación sosamente burocratizada, en una acción que podríamos denominar reaccionaria, fascismo corporativo que busca el control centralizado de todos los componentes del sistema, pues nace de la desconfianza hacia el otro y se ve directamente permeada por la irracionalidad e inmadurez tecnológica de la cual es inconsciente su ejecutor por cuenta del mismo hecho mencionado anteriormente: un abandono completo de la dimensión filosófica de la organización.

Para impedir esto, sin ánimo de querer ser pretencioso en saber exactamente como solucionar el problema, se deben tener como pilares de las decisiones gerenciales dos elementos: 1. las relaciones humanas deben mantenerse personales, sin intermediarios (tecnológicos) que las tergiversen, exceptuando situaciones particulares temporales y 2. la organización es un ser pensante que debe enmarcarse en los ámbitos de la auto-eco-organización, por lo tanto toda decisión de importación de recursos para sí debe basarse en una situación de necesidad y poder y no de capricho o intromisión directa del medio al interior de sus fronteras orgánicas. Siguiendo estas dos líneas, las medidas directivas serán mucho más sensatas y acunadas en la realidad.


De mamertos y (r)evoluciones necesarias

No es difícil encontrarse por ahí con aquella persona que en el mundo de la cotidianidad se le conoce como “mamerto”. Fácilmente identificable por su discurso, rebosante de ideales progresistas anti-capitalistas, apoyado por frases de odio contra su contendiente social: el burgués, amparado en la teoría marxista y, si se cuenta con suerte, en algunas citas a autores importantes del orbe filosófico y crítico mundial e histórico, quizá Althusser, Habermas, Nietszche, Martí, Mariátegui, Marcuse, Fals Borda, Hegel, Galeano, Kant, Zuleta…quizá. Pero lo cierto es que el mamerto es identificable única y exclusivamente por esto: su discurso. Y es preocupante. Si bien el primer paso para cambiar el mundo es entenderlo, conocerlo y reconocerlo, ese no es el último. A esto le sigue la acción, es decir, la transformación en sí de la realidad a la que se pertenece, de la realidad a la que se critica.

La marcha, un arma de doble filo, dependiendo de la organización real de sus ejecutantes

Es en este sentido que se puede decir que el mamerto ha hecho de la izquierda algo fastidioso, pues habla, habla, y hablablablabla de la revolución, de las garantías a los derechos de los trabajadores, del imperialismo, de la represión del Estado…pero no más, no toma acciones estratégicas y contundentes contra tal Estado, contra tal Imperio, o peor, la acción que toma es de carácter efervescente, temporal y superflua: la marcha. Claro está, el problema no es la marcha (la cual puede ser un mecanismo de acción muy poderoso), el problema es la recurrencia de la misma, ¡¡sin que se logre nada!! Así, la lectura que hacen los que aun no son de izquierda se traduce en un desgano y desconfianza hacia aquellos que parecieran tener razón, pero que pragmáticamente no tienen efecto alguno y, como tal, son inútiles; fastidian hablando siempre de lo mismo, de cómo cambiar el mundo, pero no son capaces de hacer nada por tal cambio….¡¡Queremos acción, carajo!!

Si Queremos cambios, hay que actur sobre la realidad. Eso el Che lo tenía claro, por ello murió.

El nuevo revolucionario no puede caer en la mamertería. El nuevo revolucionario (Guevarista auténtico, si se nos da la gana) debe trascender el rol de pensador, convirtiéndose en un actor social, coherente, ejemplar, que tiene un discurso claro sobre su realidad, pero que también le mete mano a esa realidad, se involucra en su transformación, se compromete con el cambio…de lo contrario será consumido por la burocracia pseudosindical o de cualquier otro tipo. Una joyita aquí: el discurso debe ser moderno; no se puede esperar que el indiferente se una a la causa (o siquiera la comprenda) si se le habla en débiles términos de dinosaurios que recalcan siempre lo mismo pero que no proponen nada de nada. Ejemplo de ello es “el capitalismo debe morir” o “a las calles a tumbar al gobierno” (gobierno que ya está en línea) o “nuestros derechos están siendo pisoteados”…todo eso ya lo sabemos maestro, lo que queremos son hechos, no parafernalia verborreica. Por eso, debemos empezar a hablar de hacktivismo, de relaciones de poder en la red mundial, de apropiación tecnológica (es decir, de los medios de producción de la actualidad), de alternativas de desarrollo glocal, de agro-producción tecnificada…hermano, hay que meterle la academia, la universidad y la investigación a esta joda, no sólo la crítica. Pero ojo, sin crítica no se le puede meter lo otro, sino nos vamos de culo. En conclusión, la izquierda no sólo necesita escritores, sino que además necesita pedagogos, ingenieros, técnicos….y cerveza, porque el camino es largo.

PD: Mensajito para los partidos políticos de izquierda: No pretendan atribuirse la vocería del pueblo, pueblo al que ustedes no representan (pues ustedes ni son pobres, ni viven en Candelaria La Nueva…a lo más son reprimidos) y ni siquiera conocen; el pueblo, ahora comunidad global, de manifiesta socialmente a través de los movimientos sociales, únicos elementos organizativos sociales claros de anti-burocracia, pro-democracia participativa y elementos propositivos (y ejecutores) de caminos hacia el socialismo. Los partidos políticos están sólo para representar una vía de participación formal en el Estado por parte de tales movimientos, Estado que a propósito es más burgués de la revolución francesa y que parece estar influenciando en ese sentido a los partidos dizque izquierdistas.


Ensuciarse las manos

“…se ponen corbata y creen que la vida es verdad” Jaime Garzón

No es de extrañarse que en nuestro lugar de trabajo nos encontremos con un ingeniero de sistemas pedante, que imparte órdenes y que no se mezcla con los programadores, probadores y demás obreros contemporáneos. El argumento es sencillo: “yo estudié cinco años … sé mucho más que un técnico ” complementado con “los técnicos hacen el trabajo sucio … yo pienso”. Si supieran estos personajes lo importante que es “hacer el trabajo sucio”.

Tomar esta actitud es trabajar sobre la mentira, sobre espejismos: si no se entabla un proceso de comunicación y trabajo con y entre las bases, si no se vive ese proceso, entonces ¿cuál es el mundo que se supone piensa el ingeniero? ¿el idílico mundo de las ideas de Platón? El ingeniero es uno de los máximos frentes marxistas de las profesiones modernas, pues él no debe limitarse a comprender el mundo, como bien es tarea de los científicos, filósofos, entre otros, sino que además debe transformarlo. Pero esta transformación no será la requerida por las condiciones históricas y estructurales de la realidad si lo que hace justamente el ingeniero es alejarse de ellas envuelto en su nube de ego. ¿Qué mundo está comprendiendo? ¿El que le venden las revistas europeas (si es que las lee)?

Como lo hiciera notar Thomas Khun, y bien lo comprendieran los estudios CTS y la IAP, no es posible hacer ciencia por la ciencia; esta se enmarca siempre en una sociedad que la concibe, permeada de intereses económicos, políticos, ideológicos, entre otros muchos propios de las dinámicas sociales. Por esta misma razón, o se hace ciencia desde las clases opresoras (para actuar sobre la sociedad en procura de mantener al Leviatán) o se hace ciencia desde lo popular y se solucionan efectivamente las necesidades de la sociedad (contra los intereses de los “señores del mundo”). Esto implica que el ingeniero debe ensuciarse las manos como actuar revolucionario, pues en el compartir, así como en el debate, es donde se encuentran nuevos (y verdaderos) caminos. Y con este “ensuciarse las manos” me refiero a que el ingeniero de sistemas (que es sobre quien directamente realizo esta crítica) debe, en primera instancia, comprender el trabajo de los obreros de su profesión; debe ensuciarse las manos programando, cableando, realizando pruebas, administrando bases de datos, diseñando. Esto lo hará un verdadero líder e ingeniero, pues comprenderá la realidad de aquellos a quienes tiene bajo su responsabilidad y podrá pensar sobre la realidad inmediata a él (no la de Japón, Estados Unidos o la Unión Europea) y actuar sobre ella de manera mancomunada con los que a ella pertenecen.

Pero no es esto suficiente. En segunda instancia es necesario también que el ingeniero se involucre con la sociedad como tal, con quienes tienen las necesidades inminentes, sean de abastecimiento alimentario, de cobertura educativa, de seguridad, de comunicación intercomunal o de cualquier otro tipo. Con esto me refiero a que el ingeniero no puede vivir encerrado en el burgués mundo de los autos convertibles serie A, de los hoteles cinco estrellas, de los apartamentos estrato +5, de los restaurantes de La Fragata, de los vuelos en primera clase. Allí no está la realidad, allí no están los problemas del mundo; ese es el mundo de Alicia. El ingeniero es el que se “ensucia las manos” mezclándose con la gente, interesándose por sus problemas y planteando las soluciones a los mismos……es más, construyendo esas soluciones con la comunidad misma (con la guayabera y las bermudas puestas). Es allí donde cobran sentido los cinco años, y no detrás de un escritorio.

Ensuciarnos las manos