TutorialesOctober 26, 2005 9:31 pm

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:

NinaGotas

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
TutorialesOctober 24, 2005 2:19 pm

Actualización, Sobre GNU/Linux y OpenSource

Notas Preliminares

Bien una actualización de MagicTerm pues ahora verifica la existencia de pyserial durante la ejecución de setup.py y del programa principal para notificar al instalador/usuario sobre esta dependencia si no se cumple.

Les recuerdo a todos los usuarios de Slackware que siempre es mejor crear bdist en ves de instalar directamente pues este proyecto al igual que muchos otros sufre de bastantes actualizaciones y en cada una de estas si no se tiene el cuidado de remover la instalación pueden quedar archivos “zombies”.

Si existen interesados, quizá podría escribir un pequeño how-to para crear paquetes de Slack y como convertirlo en una costumbre muy deseable para tener un sistema coherente.

Ahora ya termine de repartir el montón de discos de Ubuntu que me han llegado, aun están perdidos otros 100 y desafortunadamente desde hace algunos días estos han quedado algo obsoletos, espero que las nuevas versiones lleguen pronto para volver a regalarlas y seguir motivando a muchas personas a disfrutar de la libertad de usar Linux.

Para todos mis colaboradores en la “evangelización” les recomiendo tener este enlace a la mano para ayudar a las personas que hemos iniciado con Ubuntu ya que la mayoría de nosotros tenemos muy poca experiencia con esa distribución: Ubuntu Starter Guide

Sobre GNU/Linux/BSD y Código Abierto

Para muchas personas les resulta sorprendente, quizá, el hecho de mi gran terquedad sobre el uso de GNU/Linux y toda clase de herramientas libres en cuanto a casi todos los aspectos en los que me desempeño como estudiante y como profesional; sin embargo ahora quiero darles una respuesta concreta de mis motivadores personales a esta actitud y por qué creo que más personas deberían compartir mi experiencia personal.

¿Por qué?

Francamente no recuerdo bien la primera ves que aprendí a programar, mi recuerdo más antiguo es relacionado con el TRS-80 mejor llamado trash80, un computador personal basado en un precioso procesador Z80 de 8bits, no recuerdo que modelo en particular era, sin embargo al que tenia acceso no tenia ninguna capacidad fuera de un editor/”compilador” de Assembler de Z80 y TinyBasic.
Dicho computador tenia capacidad de almacenamiento externo pero nunca tuve acceso a tal cosa por lo que el código que se escribía quedaba en RAM y al reiniciarse/apagarse el aparato todo el código se perdía. Es por esto que aún hoy 13 años después recuerdo linea a linea el código de Pong en TinyBasic.

Luego vino un 386, luego un 486, un Pentium100… sin embargo al principio apareció DOS, en el cual la primera ves que encendí ese aparato lo único que sabia era dar dir y ver el listado de archivos. Pronto esa instalación quedo destruida y tuvo que ser reparada.
Pasaron los años y la mayor desgracia que me pudo suceder llego, Windows95 y una interfase de usuario increíblemente complicada para mi simple mente de CLI, no era como cuando existían los Windows anteriores que rara ves yo arrancaba. Este Windows suprimía totalmente la linea de comandos y cada cambio en la configuración requería caminos interminables en muchos menús; pronto recupere mi linea de comandos para cambiar la configuración de este Windows y finalmente me adapte.
Con los años la decepción solo crecía, afortunadamente mi hermano me presto un día un Slackware Linux 8.0 y desde ese día recibí la libertad anhelada de ese maldito sistema operativo llamado Windows.

Desde que apareció la primera ves Windows 95 en mi computador siempre me pregunte si no existía nada más; en Internet aparecía Gnu/Linux yBSD pero nunca tuve acceso a Internet lo suficientemente rápido para hacer una descarga de alguno de estos y usar Windows día a día era en si, una tortura.

Ciertamente no llevo mucho tiempo como usuario de GNU/Linux, cerca de 5 años, y considero que han sido mis años más productivos de toda mi vida. Realmente
extraño todos esos años en los que Windows más que ayudarme a progresar se presento como un obstáculo, impidiendo que información valiosa llegara a mí.
Las tecnologías que hasta ahora estoy descubriendo, los lenguajes de programación que ahora me apasionan han estado ahí desde antes que yo tuviese acceso a un computador. En estos años de uso de Linux he aprendido
más de todos los temas que me apasionan que en 8 años de uso de DOS y Windows.
Ahora para muchas personas soy un experto en Linux(Aunque yo realmente no me considero como tal), a veces me siento en algún IRC en los salones de Slackware a resolver preguntas de las personas que llegan, en foros y a muchas otras personas sobre temas de programación y electrónica; pero lo que yo sé en este instante no se compara con todo el conocimiento que abarca una instalación de GNU/Linux, GNU/BSD, no se trata de un computador ni de un tema del conocimiento en particular y la pregunta que me plantee hace 2 años fue ¿Por qué?.

Continua…

EOT

Enlaces y noticiasOctober 21, 2005 9:06 am

Algunos links:

  • SwarmSketchDibujos Colectivos, quedo debiendo más links relacionados
  • CrapHound Novelas publicadas bajo CC, muy interesantes
  • Systers Hermanas, comunidad femenina sobre tecnología
  • LinuxChix.org Comunidad Femenina de usuarias Linux

EOT

EléctronicaOctober 19, 2005 9:51 pm

Tal como lo esperaba el port de AVR-LUA funciona, con un pequeño defecto, me quede sin RAM simplemente la RAM interna no es suficiente. Es de esperarse que se presente este inconveniente por lo que ya mande cotizar las tarjetas de desarrollo con la RAM extendida para poder avanzar con todos los proyectos que dependen de esto.

EOT

Cosas que me pasan...October 14, 2005 8:12 am
Odio MSN, Flash, Animated Emoticons, Flash Emoticons, Nudges, Voice Chat, Video Chat!!
Me gusta el texto plano, sin decoraciones. Máximo soporto MAYÚSCULAS y strong en
una conversación. Aunque uso bastante los emoticons, sinceramente me gusta más como
se ven como letras que como imágenes.

herulor:Bien… ya que fui invitado a incluir ‘personal comments’… hate hate hate hate hate hate hate cada una de las cosas en la lista anterior. :P . Long live to talk

Más del rant. Odio mi ISP porque no me deja usar ni PINE ni MUTT para mi correo, así que tengo que usar Thunderbird y ya se quedó enano, el maldito se ha vuelto demasiado lento con la cantidad de RSSs y Listas de correos a las que estoy inscrito. Además, no hace nada que ya no supiera hacer en PINE o MUTT y en comparación con mail a la hora de escribir correos es tan lento…
La causa: Me bloquea el puerto 25 saliente y si quiero hacer relay en el server de ellos POP-before IMAP; sin embargo, hasta ahora todos los intentos de hacer esto con PINE o MUTT han sido una desgracia…
Me gusta thunderbird, me gusta la interfaz, pero me gustaba más cuando no tenía menos de 300MB de información en correos, ahora ya no :S. Lo que más odio es tener que esperar a que termine de arrancar para escribir un correo.

No hay nada como:

$mail
>m
TO: Anyone@anywhere
Subject: Wathever

blah, blah blah

EOF aka C^D

NOT-RANT:

Me gusta la idea del Avatar en los IM.

Me gusta el 1337 no porque sea (001, simplemente las letras y los símbolos son bonitos.

Un llamado a la conveniencia, no importa si usa Windows o lo que sea, siempre existirá un cliente para Jabber. Algunos clientes de jabber en win son bastante bonitos. Pandion y Gush los recuerdo, pero existen muchos más.

Me gusta usar más de un programa para todo, por ejemplo:
navegadores: firefox, opera, links, links -g, lynx, dillo, elinks.
editores: emacs, vim, ed, jed, pico, gedit…

BACK-TO-RANT:

Al final después de escribir esto, me doy cuenta del verdadero motivo del rant:

deepspawn:Odio que se me imponga una herramienta o forma de hacer las cosas

Conclusión:

Un llamado a la conveniencia, para muchos he tratado de mostrarles que existe un mundo verdaderamente más sencillo que el point and click y que se relaciona con la línea de comandos aka CLI, se llama: teclado

El teclado es el dispositivo de entrada más sofisticado que conozco, sólo hay que pensarlo un momento para darse cuenta, pero hay que pensarlo:

¿Cuántos clicks por minuto se pueden dar? ¿Qué tan complejas son las tareas que se realizan con un puntero?
Si bien es una buena herramienta para quienes realizan trabajos artísticos, no es un “mouse” la mejor opción elegida por ellos pues resulta demasiado inconveniente, para eso existen los apuntadores tipo lápiz.
Es mas, los ilustradores y diseñadores más hábiles que conozco no sólo utilizan el apuntador.

Ahora hay que preguntarse, ¿cuánto tiempo pierdo mientras suelto el teclado y agarro el apuntador? ¿Cuánto tiempo me demoro “navegando” por menús interminables que me hacen buscar la misma opción una y otra vez porque es terriblemente difícil recordar no sólo el nombre de lo que quiero encontrar, sino también su ubicación espacial?.

deepspawn:Actualmente tengo 3709 programas, cerca del 25% de los cuales uso con regularidad (lo he medido) pero francamente estoy seguro que el esfuerzo que realizo es mucho menor al que mencioné anteriormente

Luego viene otro de los problemas que he podido encontrar en las “dichosas” GUI que dicen simplificar las “tediosas” tareas de teclear comandos: resulta que estas [dichosas] GUI son excesivamente complicadas para una persona que no está acostumbrada a ellas; para la muestra un botón, sólo hay que ponerme a mí o a Herulor frente a una de estas GUIs para probar cuán ineptos somos al hacer uso de ellas. La información llega en paralelo, pero para m’i y creo que para la mayoría de personas -en esto me apoya Herulor- es imposible o sumamente improductivo distribuir la atención, y cuando se hace disminuye el rendimiento y aparecen los errores.

herulor:Y que conste que no fui consultado previamente sobre la comunicación personal referida en el párrafo anterior. Está bien, estoy de acuerdo y sí lo apoyo :p
deepspawn:Si alguien encuentra una forma más simple para quemar un DVD que:
$growiso -Z /dev/hdX /inputdir

tiene que decirme cómo.

Al final, las GUIs y las imágenes no facilitan el trabajo, ese no es su propósito; lo que se logra con ellas es eliminar el aprendizaje permanente, lo que hacen es crear un sistema ineficiente de continuo re-aprendizaje de la misma tarea una y otra vez, así que lo que queda es “Que no se pierde tiempo memorizando una cantidad de comandos y combinaciones de teclas, sino que se puede perder tiempo una y otra vez”, da una falsa sensación de facilidad a cambio de la productividad, a cambio del tiempo.

Ahora algo sobre la CLI. Siempre se dice que resulta excesivamente complicado el uso de una línea de comandos, que gran mentira!!!, no existe una forma más simple de interactuar con un computador, ¿por qué? Porque es lenta, es lineal, ante cada comando existe una sola respuesta en múltiples lineas, pero sólo es una respuesta congelada en el tiempo, se puede retroceder a leerla con calma, la línea de comandos espera que se haya procesado la información antes de continuar, o en cualquier caso se puede obligar o hacer un log al respecto. El uso de la línea de comandos es una conversación con el computador.

Otro mito de la línea de comandos es que se tiene que memorizar cada uno de los comandos, que gran mentira!!!, cualquier usuario medio avanzado de CLI puede corroborarlo.
¿De dónde nace este mito? De Windows, de DOS, nunca ha tenido una línea de comandos decente ni sofisticada, es primitiva y gracias a esto da la impresión de que todas son así.
Un usuario avanzado de línea de comandos no recuerda, busca, pero no busca él personalmente para eso existen herramientas y mecanismos. Se trata del dispositivo de entrada y como éste se relaciona directamente con la línea de comandos, es cierto que las secuencias de teclas pueden llegara ser tan complejas como los menús (a la emacs, por eso la interfaz de VI y ED es superior); sin embargo, generalmente el número de teclas disponibles es suficiente para que la mayoría de los bindings queden como máximo en una secuencia o combinación de dos teclas.
Se llama complejidad 1, acceso directo a la función que se quiere. Cuando se mecaniza ni siquiera se piensa en lo que se hace; no se trata de interrumpir el flujo de ideas como sucede con un apuntador y un GUI. A pesar de ser más simple y que el flujo de información sea mucho menor que en imágenes, el teclado->CLI->texto se presenta de una forma mucho más continua y “natural”.

Los modos gráficos no son inútiles, pero para mí está sobrevalorado el aspecto gráfico sobre la funcionalidad.

deepspawn: Y sí, me importa mucho la apariencia gráfica de mi escritorio en mi box, pero se trata de escoger las herramientas adecuadas. Cualquiera que haya tenido la oportunidad de verme trabajando sabe de que estoy hablando.
deepspawn:: Realmente existe mucho más, la verdad es más profunda de lo que puedo escribir aquí, me quedan muchas ideas sueltas. Alguien que se anime comentar?
herulor:Ok… si os ha dado mucha lata leer toda esta parrafada :ducks:… El resumen es GUI != eyecandy… Bueno, seriamente, el problema viene a estar en dos puntos: Primero, la herramienta adecuada para el trabajo a realizar; segundo, cuál es el control que tiene uno sobre la tarea que realiza dadas la cantidad de información que tiene que interpretar y la cantidad de acciones que debe realizar en una u otra interfaz Cualquier otra cosa debiera decirla en un Comment real… si me animo :p

EOT