La cultura Hacker en la Ingeniería de Estructuras

10
4830

¿De qué va esto?

Todos sabemos de la capacidad de almacenar y procesar grandes cantidades de datos que nos brinda tecnología actual. El desarrollo de Internet ha propiciado además la posibilidad de compartir esa información y conocimiento en tiempo real, a niveles inimaginables hace sólo una década. Términos como Big Data, Machine Learning o Inteligencia Artificial van adquiriendo cada vez más significado y presencia en nuestro día a día.

hacker ingeniería de estructuras

Estamos sólo en el principio de esta revolución tecnológica, que supondrá un cambio profundo y radical en la forma de abordar toda actividad que requiera procesar información. En el campo de la ingeniería de estructuras, esta revolución es imparable, dado que permite alcanzar unos niveles de rigurosidad, calidad y flexibilidad en los proyectos, que hace sólo unos años eran impensables.

Extraída del excelente blog: waitbutwhy.com
Extraída del excelente blog: waitbutwhy.com

Debemos formar parte de esta revolución. Pero para dar paso a esta nueva era, es necesario que se produzca una revolución similar en nuestra forma de pensar y trabajar, que permita interiorizar este nuevo entorno digital de generación, procesamiento y transmisión de la información. Se trata claramente de renovarse o morir.

Advertisement

Para guiar esta metamorfosis intelectual, el mejor referente que podemos encontrar es la cultura que surge en la génesis de la informática: la cultura hacker. Esta expresión, que nació de los primeros programadores del M.I.T hacia 1960, aborda los aspectos relacionados con la resolución de problemas mediante aplicaciones informáticas. No obstante, va más allá de todo ello, configurándose como una cultura global del trabajo.

Antes de nada, qué es un hacker, y que no

“El “Jargon File”, es el archivo de la Jerga Hacker (que se puede encontrar en internet),  y contiene un montón de definiciones del término “hacker”, la mayoría basadas en la afición a lo técnico y en el placer de resolver problemas sobrepasando los límites.

Eric Steven Raymond en su famoso “How to become a hacker” (1)  señala  que: “hay quien aplica la actitud del hacker a otras cosas además del software, como la electrónica y la música; en realidad, cualquiera de las ciencias y de las artes muestra esta actitud en su máxima expresión”.

En el libro “La ética del hacker” de Pekka Himanenn, se incluye esta interesante descripción: “También se encuentra la misma actitud (la del Hacker) en cualquier otro ámbito, entre los artistas, los artesanos y los “profesionales de la información”, desde los directores e ingenieros hasta quienes trabajan en los medios de comunicación, o en el mundo editorial y del diseño”.

Steve Wozniak. Cofundador de Apple y sobre todo un verdadero hacker
Steve Wozniak. Cofundador de Apple y sobre todo un verdadero hacker

Más recientemente, una buena definición del concepto Hacker nos la da el profesor del Instituto de Empresa Enrique Dans (@edans): “Un hacker no es ningún villano ni un malvado que se dedica a estropear ordenadores o a entrar en sistemas ajenos… por muy mala prensa que le hayan querido dar, un hacker es simplemente una persona motivada por el descubrimiento, que no puede ver una puerta cerrada sin sentir el deseo de abrirla, y que está dispuesto a esforzarse para entender cómo funciona algo. Decididamente, cualidades con connotaciones notablemente positivas…” .

Los Hackers han dado un nombre a quien se dedica a entrar en ordenadores ajenos y robar información: “crackers”, y este documento no tiene nada que ver con ellos.

Los principios que rigen el trabajo de un Ingeniero Hacker.

En los siguientes 8 puntos, expongo una interpretación personal de lo que considero son los principios y valores de la cultura hacker, aplicados al ámbito de la ingeniería de estructuras.

foto3

1. Plantéate tu trabajo como un reto, sé libre, sobrepasa los límites y rompe con el pasado (ahora más que nunca puedes):

El salto tecnológico que estamos comenzando a dar nos brinda la libertad de poder encarar cualquier proyecto de estructura desde un punto de vista totalmente nuevo, con un flujo de trabajo mucho más flexible y dinámico, y que supone una completa revolución nivel de creación y  optimización de los diseños, así como de coordinación de los mismos con el entorno de la estructura (a veces muy cambiante). Un hacker valora y respeta ante todo la libertad. Pero para serlo, debe dominar las herramientas que le permitan alcanzar el control absoluto y excelencia de aquello en lo que esté ocupado.

foto4

2. Aprende a pensar como un ordenador.

En nuestra época de estudiantes de ingeniería, aprendimos a dominar conceptos matemáticos del siglo XVIII basados principalmente en el uso de variables continuas: las funciones, las derivadas, las integrales, las ecuaciones diferenciales. Nos acostumbramos de esa forma a entender e intentar resolver los problemas desde el punto de vista analítico, en el que la solución era al final una expresión matemática donde todas las variables quedaban totalmente relacionadas. Pero este método de resolución de problemas (fundamental desde el punto de vista conceptual) ha mostrado sus limitaciones muy claramente, en cuanto se incrementa la complejidad de lo que estemos tratando. Si para solventar este problema acudimos a un ordenador, debemos ser conscientes de que éste es capaz de manejar una cantidad más o menos grande de datos, pero siempre FINITA. Por ello, es necesario tener presente la absoluta necesidad de DISCRETIZAR todos y cada uno de los elementos estructurales que estemos analizando (en secciones, puntos, etc…) de forma que trabajemos con un número limitado de datos. Los métodos numéricos actuales que se implementan en todos los programas de cálculo de estructuras se basan siempre en generar esa discretización, la cual debería mantenerse en todo el post-proceso de cálculo.

3. Esto va de procesar datos, muchos.

La realidad es compleja, y las estructuras, como parte de esa realidad, también lo son. Esa complejidad se muestra principalmente en la necesidad de tener que utilizar muchos datos para definirlas y analizarlas. La mente humana por si sola siente aversión por la complejidad, y queda fácilmente desbordada cuando se enfrenta a ella. Para sobrepasar esta limitación, nos hemos dotado de unas máquinas con la capacidad de memorizar y procesar enormes cantidades de datos, a una velocidad absolutamente sobrehumana.

El mundo es complejo. Nuestra interpretación del mismo requiere trabajar con muchos datos
El mundo es complejo. Nuestra interpretación del mismo requiere trabajar con muchos datos

En este contexto, es muy útil pensar que un proyecto de estructuras es en esencia un PROCESO de gestión de muchos datos, que consiste en:

  1. Identificar, clasificar y ordenar todos los datos que configuran nuestro INPUT. Tener claro cuáles son los MODELOS (geométrico, estructural) que vamos a emplear, así como el tipo de herramientas informáticas que utilizaremos para su creación.
  2. Conocer y establecer los requisitos y las condiciones de contorno que debe cumplir nuestro OUTPUT. Estas se deben plantear como restricciones y vinculaciones de los datos que configuran nuestros modelos.
  3. Crear un proceso para generar un OUTPUT a partir de un INPUT, cumpliendo los requisitos y las condiciones de contorno. Este proceso de tratamiento de la información debe ser lo más automático y flexible que se pueda. Normalmente, estará formado por bastantes SUBPROCESOS, que se relacionan entre si formando un SISTEMA.
  4. Incorporar el FEEDBACK a nuestro proceso, como método iterativo de mejora del OUTPUT. Por ello, es necesario que nuestro proceso de tratamiento de datos sea lo más automatizable y flexible que se pueda.

4. Trabaja con tablas y aprende a programar.

Desde mi punto de vista, la mejor manera de trabajar con grandes cantidades de datos, es agruparlos en forma de tablas, y aprovechar con ello las enormes capacidades de ordenación, filtrado y procesamiento secuencial que ofrecen las hojas de cálculo actuales. Si además de trabajar con tablas, desarrollas la habilidad de procesar automáticamente esos datos mediante la creación de programas (Visual Basic por ejemplo está disponible en todas las hojas de cálculo Excel), tu potencia de cálculo y gestión de datos aumentará exponencialmente, lo cual repercutirá inmediatamente en la calidad y alcance del trabajo que seas capaz de desarrollar en tus horas de dedicación.

Programar debería ser una habilidad fundamental para cualquier ingeniero de estructuras
Programar debería ser una habilidad fundamental para cualquier ingeniero de estructuras

5. Ningún problema debería resolverse dos veces.

Esta idea se sitúa en el núcleo de la disciplina hacker: “Los cerebros creativos son un recurso valioso y limitado. No deberían desperdiciarse reinventando la rueda cuando hay tantos y tan fascinantes problemas nuevos esperando por allí.” Para cumplir con este propósito, es imprescindible contar con un gran conjunto de subrutinas de trabajo, con las cuales solventar muchos tipos de problemas de procesamiento de datos que aparecen frecuentemente. Todos estamos acostumbrados al típico “copia-pega” para no tener que escribir dos veces lo mismo, lo cual es una aplicación simple, pero muy efectiva, de este principio. Cuando uno se enfrenta a un problema nuevo, y consigue resolverlo, es importante que dicha solución (ya sea un programa, un subproceso, etc…) se incorpore a nuestro catálogo de herramientas de trabajo, para aplicarla de manera automática, una vez se nos presente nuevamente dicho problema.

6. Comparte tus progresos con la comunidad.

Una parte importante de la filosofía hacker es la necesidad de crear y fomentar una COMUNIDAD de ingenieros en la que compartir los progresos y las herramientas de resolución de problemas creadas por cada uno de sus miembros. Es otra consecuencia del principio “Ningún problema debería resolverse dos veces.” Para que voy a perder mi tiempo tratando de solventar un problema, si alguien de mi comunidad ya lo ha resuelto previamente. El prestigio de un hacker dentro de un grupo se mide por la calidad y número de herramientas que resolución de problemas que aporte, así como por ser capaz de resolver los problemas complejos que vayan apareciendo en el grupo. Actualmente, grupos de trabajo de Linkedin, o incluso este mismo blog, se basan en un principio similar, y son una gran forma de incrementar el nivel técnico de todos sus miembros.

7. Los límites a tu trabajo los deberías poner tú, no los programas comerciales que utilices.

Una circunstancia que se da con mucha frecuencia en la actualidad, es que la capacidad de análisis y resolución de los problemas estructurales, queda limitada para muchos ingenieros a las características del software que se esté utilizando. Existen en la actualidad muchos programas, a priori fáciles de manejar, pero que presentan funcionalidades muy limitadas y poco configurables. Suelen ser además bastante opacos en el sentido de que realmente no se puede saber qué es lo que el programa está haciendo con los datos que hemos introducido.  Esto limita mucho la capacidad de acción de los ingenieros, y suele generar una tendencia a desarrollar las mismas soluciones estándar, para muchos problemas diferentes que requerirían un análisis más particularizado. Desarrollar una gran capacidad de gestión de datos (como hemos comentado en los puntos anteriores), brinda al ingeniero la libertad de no tener que acudir a ese tipo de programas, pudiendo afrontar cualquier problema estructural con mucha más libertad, empleando para ello programas de tipo mucho más general, o incluso creando los suyos propios.

8. Crea y comparte tus propios programas.

Ayuda a mejorar los de otros. En la línea de lo indicado en los puntos anteriores, crear y compartir tus propios programas con la comunidad, permitiendo además que otros puedan revisarlos y mejorarlos, es la esencia de la cultura hacker. El desarrollo de una prestigiosa comunidad de ingenieros hackers, provista de un gran background de programas estructurales de código abierto que continuamente se estén revisando y mejorando, es algo que internet hace perfectamente posible hoy en día. Actualmente ya hay varias iniciativas de este tipo (2), y son de esperar muchas más en el futuro. Estamos por tanto ante una gran oportunidad que la tecnología nos brinda hoy a los ingenieros, para incrementar nuestro nivel técnico a título personal, y nuestro prestigio (en horas bajas en la actualidad) como profesionales altamente cualificados al servicio de la sociedad.

(1) “How to become a hacker” de Eric Steven Raymond, “http://www.catb.org/esr/faqs/hacker-howto.html“, también disponible en español http://biblioweb.sindominio.net/telematica/hacker-como.html

(2) “Hacking structural analysis. Join the crew”. Luis Perez Tato https://drive.google.com/file/d/0By6686RnvsQzUTZHb2txNVJhT2M/view?usp=sharing


¿Quieres ser el primero en leer nuestros artículos?

Déjanos tu nombre y un email válido, y nosotros te avisaremos cuando hayan novedades en Estructurando

Flecha-roja

10 Comentarios

  1. Buen artículo Carlos:

    Antes de nada me gustaría recalcar que si bien los límites del software hoy por hoy son prácticamente indefinibles nos encontramos con un cuello de botella que es la capacidad del ingeniero en sí.

    Mucha gente que se dedica al análisis estructural, no tiene claros los conceptos más básicos de cálculo de estructuras, así bien, pueden manejar un software de cálculo por elementos finitos con facilidad no son capaces de entender muchos de los resultados que este le expone.

    Desde mi punto de vista si el ingeniero quiere adaptarse a esta nueva ola ha de aprender antes de querer subirse al tren y más en España, donde las universidades están llenas de profesores que no están capacitados para enseñar de una manera eficiente este tipo de nuevas tecnologías aplicadas a la construcción y donde nos encontramos un atraso en la enseñanza.

  2. Gracias por la cita Carlos.

    El «post» me ha gustado mucho. Estoy completamente de acuerdo en la necesidad de aprender a programar y en ese sentido creo que el que tenga la paciencia de migrar (al menos parcialmente) a casi cualquier variante de Unix verá su esfuerzo largamente recompensado por la gran cantidad de soluciones que encontrará a su disposición. Esa es al menos mi experiencia.

    Estoy completamente de acuerdo en que hay una enorme cantidad de trabajo por delante (optimización, análisis de fiabilidad, nuevos materiales, instrumentación,…) y que debemos ser parte activa en el avance en todos esos campos.

  3. A minha me quedan claras las afirmaciones que nos brinda em artículo. Es fundamental para nosotros de área tecnológica reflejionar sobre lo muchos llaman el 4o paradigma, sobre la intensiva cantidad de fatos, pero del punto de vista de lá libertar, de lá creacion, que por exemplo nos permite em software livre. O sea, acuerdo la Cultura hacker.

  4. Les pido desculpas pq soy brasileno. Mais smartphone está em pt-BR. Por supuesto, caminha las palabras a mis idioma. En el início de post lo quiso decir “A mi me…”. Gracias, desde Brasil.

  5. la programación eleva considerablemente la capacidad para resolver problemas, analizar información, cruzarla entre diferentes programas, automatizar tareas repetitivas etc. Lo malo es que se considera una habilidad exclusiva de los informaticos y muchos civiles y de otras áreas desconocen sus beneficios y aplicaciones. Me he encontrado compañeros de maestría que me han preguntado q para q me servirá la programación si no es de nuestra área, total desinformación. El que no sepa programar en esta generación sera visto como se veía a los analfabetas generaciones atrás.

Responder a carlosolleropena Cancelar respuesta

Please enter your comment!
Please enter your name here

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.