Valkertown Blog

Redirección a el nuevo blog en 5 segundos...

miércoles, octubre 26, 2005

Continuación: Sobre GNU/Linux y OpenSource:


Notas preliminares



WTFPL: Licencia divertida

Para apoyar mi Rant: I love CLI aquí esta la prueba:
Microsoft para su nuevo windows decidio añadir un shell que tiene un aspecto muy sofisticado y realmente me gusta la idea de poder contar con un shell en un futuro Windows, según lo que lei en el articulo parece ser un shell muy competente a ver si por fin Windows se vuelve un SO decente.

Otro apoyo más para el presente articulo queda este:
Barrapunto: Un paso más en el libre acceso a la información, esta clase de esfuerzos son los que deberian ser apoyados por todos.

Más links:
Kiko Calendario AJAX, es muy bonito y ayuda a organizar y tener la información en todo lado.

Artístico



Bueno siguiendo la tradición de publicar algunos de los trabajos de Sabbath, esta
esta pequeña animación de flash elaborada por 3ID3R y Sabbath:
Nina
Gotas


Continuación:Sobre GNU/Linux/BSD y Open Source


¿Por qué GNU/Linux/BSD?


Esta respuesta debe tener en cuenta la naturaleza de las personas, pues estos entornos son mucho más aptos para quienes desean conocer y aprovechar sus herramientas más allá del simple uso, es por esto que el valor de estos entornos va más allá que simples herramientas gratuitas.

El motivo por el cual en GNU/Linux/BSD he aprendido mucho más de lo que hubiese aprendido si siguiera usando Windows es el simple hecho de la disposición de la información; algunas veces esto mismo causa problemas a quienes recién llegan a estas plataformas desde Windows u otro SO y en general de un ambiente Cerrado.

A pesar de que Windows, como principal ejemplo, es muchas veces más conocido que GNU/Linux/BSD la información disponible y las herramientas para realizar actividades verdaderamente productivas son excluyentes entre sí.

Si es cierto que existen muchos IDEs(Integrated Design Enviroment) para cada propósito, estas son en sí excluyentes poco colaboradoras y quieren que sus usuarios se encierren en las funcionalidades que estas ofrecen, en sí la mayoría de los entornos cerrados pretenden eso, es su naturaleza.

Cada vez que me encuentro con un sistema de estos, soportando desarrollos complejos, veo un gran rompecabezas a medio armar con fichas que no encajan por que no pertenecen al gran propósito de la implementación. He de anotar que yo soy Ing. Electrónico y los sistemas que se desarrollan como tal no solo se tratan solo de firmware/software, el hardware, su diseño e interacción con firmware/software hacen parte del problema.
A diferencia del software el diseño de hardware no es posible realizarlo bajo el esquema de ensayo y error, los costos son muy altos para desperdiciar recursos de esa forma, es por esto que me interesa tanto un entorno de desarrollo globalmente integrado.

Modelo *nix



¿Cómo obtener un ambiente realmente integrado?. La respuesta viene desde el modelo *nix para hacer funcionar la herramienta que es el computador.
Este modelo se basa en la idea fundamental, Divide y vencerás, pues todos los *nix son una gran comunidad de pequeños programas, pequeñas herramientas que su único propósito de existencia es cumplir una única tarea de la forma más eficiente posible, y *nix se encarga de proveer los mecanismos para que estas pequeñas herramientas se comuniquen entre ellas.

Es así como se trabaja bajo *nix, se buscan, escogen y reunen todas las herramientas necesarias para realizar una tarea, al final igualmente se arma un rompecabezas, sin embargo el rompecabezas encaja, por que esta diseñado para hacerlo y existen los mecanismos para hacerlo.

Es por esto que es posible incluir e integrar todas las etapas de un diseño, p.e top-down, coherentemente y de forma que todas las herramientas que componen las etapas compartan información entre ellas y se generen mecanismos de verificación eficientes.

¿Por qué no?



Está bien, existen muchas razones por las cuales usted no deba usar estas plataformas y las que se me ocurren las voy a enumerar


  1. Realiza labores artísticas Hay que admitirlo somos pobres en esta area

  2. La pereza es su mayor motivación y perder el tiempo no le importa

  3. Su trabajo no es importante así que, ¿Qué importa? , si lo pierde ante un virus/falla del sistema :P

  4. Entiende computador por consola de vídeo-juegos



Si esperaban alguna motivación técnica, me alegro al informarles que aún no encuentro la primera.

Algunos aspectos más técnicos



Ya fuera del aspecto "filosófico" del asunto, existen unas ventajas técnicas algo particulares que he decidido tratar por separado.

En mi caso particular como Ing Electrónico y desarrollador de hardware/firmare principalmente las herramientas de naturaleza abierta presentan esta característica muy favorable para desempeñar esta labor. Esto dada la cantidad de tiempo que se ahorra en la producción y entrenamiento en N compiladores diferentes para cada procesador sobre el que se quiere trabajar, lidiando con nuevos bugs, metodologías e IDES diferentes.
Adicionalmente en esta clase de desarrollo es raro encontrar una plataforma de firmware o diseño de hardware que cumpla con todas las exigencias de un proyecto de mediana complejidad y ni hablar de uno de gran complejidad, esto y que no cueste cantidades prohibitivas de dinero.
Así esta alternativa siempre será la mejor por la capacidad de entrar en las entrañas del sistema para modificarlo y adaptarlo al proyecto en especifico.
Es así como en mi grupo de trabajo e investigación no solo hemos modificado el SO sobre el cual corren muchos de nuestros desarrollos, adicionalmente hemos modificado compiladores y programas de EDA(Electronic Design Automation) para acomodarlos a las necesidades de los proyectos y gustos particulares.

Al final todo esto se traduce en un equipo de desarrollo eficiente, capaz de producir prototipos en algunos días y proyectos terminados de gran calidad en algunos meses.

Debo aclarar que esto no es solo resultado de las herramientas, es resultado de un largo proceso de estudio y selección y lo que presento aquí son las conclusiones a las que hemos llegado después de dicho trabajo.

Eso es... por ahora, ¿Preguntas? ¿Comentarios?

Algunos temas que quisiera discutir luego:



  • OpenDesktop, DBUS: Me gusta su filosofía y DBUS tiene capacidades excelente para la integración.

  • Jabber: Quiero mostrar con código por qué Jabber es mucho más atractivo que cualquier otro IMS.

  • Python/Perl/Lisp: De alguna forma estos lenguajes me impresionan más allá de lo que pueden hacer, la experiencia que se obtiene al aprender a realizar un par de códigos con ellos.

  • Cli Magic: Sobre este tema, me gustaría mostrar un poco más algunas idea sobre como extender las capacidades de la Linea de Comando usual y acomodarla para un uso sofisticado y eficiente de ella, esto incluiría algunas ideas sobre key-bindings en algunos manejadores de ventanas y programas habituales.


EOT


$vic -V this-post