sábado, 24 de abril de 2010

El software libre es para todos (y todas, claro ;))

Es un hecho: el ambiente universitario es un buen escenario para un festival como FLISOL. Hoy tuvimos la fiesta de instalación de GNU/Linux, además de las ponencias que ya se han vuelto una tradición aquí. Como lo dije, la sede nuevamente fue la Universidad Regiomontana y me dio mucho gusto haber estado esta mañana para compartir mi charla relativa a Software Libre. El título de mi charla fue: "El Software Libre es para todos (y todas, claro ;)). El ABC del Software Libre". Sí, ya sé que el título suena muy "básico", pero fue el título que me pareció más adecuado, además de que fue lo mejor que se me ocurrió en los 5 minutos que me dieron de plazo para elegirlo. La intención fue hablar acerca de algunos conceptos fundamentales sobre Software Libre y Código Abierto, que si bien no son lo mismo, están relacionados de alguna manera para representar la libertad que debiera tener un programador de modificar un programa para adecuarlo a sus necesidades y mejorarlo para bien de la comunidad. Creo que vale la pena darle un vistazo a la presentación y ¡al video! Ahora sí está publicado y pueden verlo en:

http://www.justin.tv/flisolmty/b/262704058


Pueden adelantarle al minuto 0:54, que es donde yo comienzo, y termino en el 1:57 ;)... una hora de sano entretenimiento :D, o ir directo a la siguiente liga:

http://es.justin.tv/knaverit/b/262779679

De lo que me gustaría rescatar de esta plática fue la participación de los asistentes; hice algunas preguntas "expertas" (así les llamé) sobre aspectos del software libre, y me sorprendió que había algunos que sí se supieron la mayoría (la que no se supieron fue la pregunta de la cerveza, si ven el video se darán cuenta; por cierto, ¿sabían que existen cervezas "open source"? Cualquiera puede tener la receta, fabricarla y venderla, y si mejora la receta la tiene que compartir... yo no tomo cerveza ni otras bebidas alcohólicas, pero es interesante hasta dónde puede llegar un modelo así. No es por hacer promoción, pero si tienen curiosidad, pueden googlear "free beer open source", y encontrarán una cerveza que no es gratis, pero sí es libre... qué raro). Otra nota curiosa es que la presentación se llama "Software libre para todos (y todas)", pero al iniciar no había ni una sola mujer; poco después llegó una muchacha, la única asistente a mi charla, y por ella el título mereció quedarse como está; no se me ocurrió, pero debieron regalarle una playera del evento a ella, por ser la única. :D (si eres esa muchacha y lees esto, ponte en contacto conmigo y te la consigo ;), en serio).

La nota de promoción del evento salió también publicada en un periódico local de Monterrey periódico local de Monterrey, en la sección dedicada a tecnología.

Y también tuve una entrevista con mis amigos de AppCAST:
http://appgtp.blogspot.com/
(Posiblemente la entrevista se escuche en el podcast a partir de este lunes 26 de abril, yo les aviso).

Y para los interesados en tener una copia libre de la presentación, se las comparto con mucho gusto, con la intención de que ayude a promover la cultura del software libre. Viene en dos formatos, para que descarguen el que más les convenga:

Presentación para PowerPoint
Presentación para OpenOffice

Esta presentación se distribuye bajo la licencia de Creative-Commons Atribución-Licenciamiento Recíproco 2.5 México, con la que eres libre de copiar, distribuir y comunicar públicamente la obra, así como hacer obras derivadas, siempre y cuando reconozcas la autoría de la obra en los términos especificados por el autor [o sea, por mi], y si alteras, transformas o creas una obra a partir de esta obra, sólo podrás distribuir la obra resultante bajo una licencia igual a ésta.
http://creativecommons.org/licenses/by-sa/2.5/mx/


Gracias a los que pudieron asistir; de verdad es muy importante la participación de todos para la difusión del software libre, especialmente de la comunidad universitaria que siempre está deseosa de aprender cosas nuevas.


¡Nos vemos en FLISOL 2011! (O antes, si es posible). Síganme en Twitter, yo soy @knaverit, y pueden buscarme en Google.

Ah, casi lo olvidaba: Si alguien tomó alguna fotografía donde salga su servidor (o sea yo, no su server de GNU/Linux), les agradeceré que me la manden a romeo dot sanchez at amsi dot org dot mx, para publicarla aquí. Sus comentarios también son bienvenidos, aquí en el blog o por e-mail. Gracias



:wq!

lunes, 12 de abril de 2010

El tema sigue y seguirá siendo libre



Ha transcurrido ya un año desde nuestro último Festival Latinoamericano de Instalación de SOftware Libre, mejor conocido como El FLISOL. El de Monterrey 2009 se puso bueno, y el de 2010 promete estar mejor, pues el Grupo de Usuarios de Linux de la Universidad Regiomontana (GULUR) vuelve a la carga con la organización del evento y, en honor a la verdad, debo decir que son unos expertos en estos menesteres.

En esta ocasión he tenido el honor de haber sido invitado nuevamente para compartir con la comunidad una ponencia (que en mi caso es como dejar a un farmacodependiente a cuidar una farmacia, por todo lo que yo disfruto dando una conferencia, seminario, curso, charla, o similares). El tema es tan libre, que todavía no lo decido...:D quiero decir que tengo dos o tres temas de los que podría hablar (todos muy interesantes, por cierto), pero estoy esperando la iluminación para elegir el adecuado para ese día, considerando que (por si fuera poco) la ponencia de apertura es la mía (¡a madrugar!). El año pasado hablé sobre NetBeans, pero como todavía estoy de luto por la compra de Sun Microsystems, no voy a abordar el tema porque no quiero que me vean llorar, y más sabiendo que James Gosling (el padre de Java) ya renunció a Oracle, el nuevo dueño de Sun. Si me preguntan, en este momento no sé qué pasará con los proyectos de Open Source que patrocinaba Sun Microsystems (como NetBeans, OpenSolaris, MySQL, el mismo Java y OpenOffice, entre otros), y Oracle no se ha pronunciado al respecto con alguna postura definida, pero mientras me repongo de la aflicción seguiré preparando mi ponencia, pues el tema sigue y seguirá siendo libre.



Les recomiendo a todos los que puedan ir que hagan el esfuerzo y vayan. Yo sé que es sábado y nos gusta levantarnos tarde (¿o seré el único?), pero es una vez al año, y escuchar las ponencias o asistir a talleres siempre es enriquecedor (¿mencioné que la entrada es libre?). Sólo tienen que visitar el sitio de FLISOL Monterrey 2010 en http://www.flisolmty.org y registrarse (es gratis); si alguien no alcanza a registrarse y quiere asistir, puede hacerlo, nos dará mucho gusto recibirlos. Si quieren comenzar a usar Linux y tienen una computadora que quieran "revivir", llévenla al InstallFest, y saldrá estrenando Linux Ubuntu.

Por cierto, para los fans de las redes sociales, pueden seguir a FLISOL Monterrey en Twitter y FaceBook.

Nos vemos en el FLISOL, no falten. Como siempre, si van, me saludan.

:wq!


jueves, 18 de marzo de 2010

Elegía de un Proceso Distribuido

[Basado en una historia real de punto flotante.]

Advertencia: La historia descrita a continuación contiene texto computacional explícito. Se recomienda leerlo en compañía de un sysadmin experimentado.

(¡es broma! léanlo, por favor) :D

por: Romeo Sánchez

Él era un proceso como cualquier otro; bueno, no como cualquiera, sino uno de alta prioridad, privilegiado, siempre sirviendo a los demás. Ella era un proceso más sencillo que luego se convertiría en su cliente. Cuando la conoció, desde el primer handshake de TCP, fue amor a primera vista. Comenzaron a tratarse, aunque al principio el scheduler no los hacía coincidir (el de alta prioridad casi siempre estaba ocupado), así que decidieron citarse (válgame la redundancia) por rendezvous, es decir, en cada encuentro uno esperaba pacientemente hasta que el otro llegara. Su relación se dio, como todas las relaciones, con cambios de contexto entre el modo kernel y el modo usuario que rompían la monotonía. De vez en cuando uno sorprendía al otro con alguna llamada síncrona inesperada que le alegraba el día, o incluso algún mensaje asíncrono, aunque también tenían sus interrupciones de I/O como toda pareja de procesos.

Con el tiempo decidieron tener un subproceso. Era uno pequeño, ligero, nacido a partir de un fork() en un nuevo shell. Siempre fue tímido y con dificultad lo mostraba un ps -a, aunque en ocasiones se rebelaba y acaparaba al procesador, consiguiendo llamar la atención no sólo de su proceso padre, sino hasta del mismo root. Aún así tenía sus ratos buenos, y hacía todas sus tareas con múltiples hilos de ejecución, escuchando atentamente.

Sin embargo, a pesar de sus emotivos encuentros por rendezvous, comenzaron a tener problemas y a contender, discutir, por el uso de los recursos. Las interrupciones eran cada vez más frecuentes, y la competencia por ser el primero en tener acceso al recurso derivó en una race condition insoportable ya para ambos, al grado de llegar a cuestionar incluso a root, diciéndole: "¿por qué me permites ejecutarme? un `kill -9` sería lo mejor, ya no quiero vivir así". Esa era su elegía de día y de noche, pero sólo otros daemons como cron lo escuchaban en silencio sin poder hacer nada. Quizá si el programador, recordando el caso de la cena de filósofos o del barbero dormilón, hubiera establecido una exclusión mutua (un mutex, pues) en las secciones críticas, el problema se habría resuelto, pero al final, después de una larga lucha de contención por recursos, quedaron atrapados en un deadlock, un bloqueo mutuo, cada quien esperando que el otro cediera, pero sin ceder él mismo, arruinando la relación, la comunicación, la ejecución y la interacción.

El desenlace fue triste: un solo `kill -9` fulminante bastó para terminar con su sufrimiento. El nuevo problema es que el proceso hijo ahora es huérfano, y dada su rebeldía, ni siquiera init, el más sabio de todos los procesos, ha podido hacer algo por él. Es ahora un alma en pena, un zombie, condenado a pagar por los errores de sus padres y por los errores del programador llevando para siempre (o al menos hasta el próximo reboot) un estigma en cada ps -a: la vergüenza de ser <DEFUNCT>.

:wq!

miércoles, 2 de diciembre de 2009

Conferencia: ¿Seguro que está seguro?


El pasado 21 de noviembre de 2009 (sí, ya sé, hace mucho que no escribo) se llevó a cabo el Primer Simposio de Seguridad de la Información AMSI '09, que organizó la Asociación Mexicana de Seguridad de la Información (AMSI), y que tuvo su sede en la Universidad Regiomontana, en Monterrey, N.L. Yo no pude estar desde el inicio del evento, pues me encontraba dando un curso de Java Programming, pero llegué justo a tiempo para el final... porque me tocó la ponencia final (para variar, igual que en Flisol'09, cuando ya se fueron la mitad de los asistentes a ver el futbol). A pesar de haber sido la última ponencia, hubo muy buena participación y yo me divertí mucho.

El enfoque de mi charla fue el de aclarar algunos mitos en torno a la seguridad de las aplicaciones web, tratando de darle un toque de ingenio y usando una metáfora que se me ocurrió, al comparar a Spiderman con un desarrollador Web (Web developer... "el que fabrica la telaraña", suena lógico, ¿no? :D), y explicando la importancia de implementar la seguridad desde la programación, antes de pensar en controles como firewalls y cosas así. Hubo buenos comentarios al final respecto al Simposio, así que creo que se logró el cometido y ya nos estamos preparando para los de este año, porque pretendemos hacer dos, uno nuevamente en la Universidad Regiomontana que nos ha abierto incondicionalmente sus puertas, y posiblmente otro en la Universidad Autónoma de Nuevo León ("La Uni"), pero nada está escrito aún, yo les aviso.

Es posible que ahora sí me faciliten el video que grabaron durante mi plática, y si es así, lo voy a publicar para que tengan oportunidad de verlo aquellos que no pudieron asistir, y tal vez se interesen en mejorar la seguridad de sus aplicaciones.


La nota chusca de mi sesión fue cuando me presentaron, porque mi reseña dice que tengo más de 20 años de experiencia en IT, y todo mundo se imagina a alguien mucho mayor (en realidad no soy tan viejo, ese día era la víspera de mi cumpleaños 34). Tuve que explicarles, mientras abría mi presentación para proyectarla, que la verdad es que comencé desde muy chavito a interesarme en las cuestiones de la computación (en ese tiempo no era como ahora, que todos los niños saben de todo, como los míos que se la pasan buscando de todo en Google, o jugando en un mundito virtual de pingüinos), y siempre he leído mucho, siempre estoy tratando de aprender algo nuevo y leyendo cuanto libro llegue a mis manos (o al dispositivo de almacenamiento correspondiente). Estoy convencido de que es la única manera de mantenerse vigente en esta profesión que cada día está más inmersa en la vida cotidiana de la gente, aún de la que no es alfabeta en bits y bytes.

En conclusión, espero que con eventos de este tipo más profesionales adquieran consciencia de la importancia de la seguridad de la información, en un mundo cada vez dependiente de la informática, pero también cada vez más confiado.

Los dejo con la frase con la que abrí mi charla: "Creer que se tiene seguridad sin realmente tenerla, es peor que saberse inseguro.” (Romeo Sánchez, 2009). No sé si alguien más ya había dicho algo así, pero al menos con estas palabras exactas, esta frase es mía ;).

Se me olvidaba... si quieren ver la presentación en línea, pueden hacerlo en esta dirección:

http://docs.google.com/present/view?id=ddb3stqf_45fsrwdrp9&interval=10&loop=true

Hasta la próxima.

:wq!


sábado, 21 de noviembre de 2009

0x22 años, el día 22 del mes 22/2

0x22 años, el día 22 del mes 22/2.

No podía faltar. Nuevamente surge una curiosa relación entre los números del día de mi cumpleaños que me obligan (es un decir) a escribir una reflexión sobre los guarismos. En esta ocasión, la cifra es dos.

Dos (2) es es el único número primo que es par, una rareza, y cualquier número se considera par si puede dividirse por 2; además, si sumas 2+2, multiplicas (2)(2), elevas 2 a la potencia 2 (22), o calculas el factorial de 2 (2!), el resultado es el mismo. Mejor aún es que el 2 es la base de las computadoras, pues en computación todo lo expresamos en potencias de 2.

0x22 es un número hexadecimal que representa el 34 en decimal. Por si no lo han notado todavía, estoy cumpliendo 34 vueltas al sol, el día 22 del mes 22/2, o sea, el mes 11 (noviembre, 22 entre 2=11). Este sábado di una conferencia, y comentaba precisamente que tengo 22 años de experiencia en tecnologías de información; sí, tenía sólo 12 años cuando comencé a programar, y el aprendizaje también es experiencia. Otra referencia más al 2 es que mi hermana Julieta (la número 2 en orden de aparición) también cumple años este mismo día. Somos 2 los que festejamos simultáneamente. Feliz cumpleaños también para ti.

Tampoco hoy tengo un gran comentario, y para muchos es trivial lo que dije; pero no importa, es mi cumpleaños y estoy doblemente feliz de vivir.

:wq!

domingo, 3 de mayo de 2009

El Cazador de Virus: La Obscuridad de la Venganza

4564 6469 6520 6C69 7665 732E Eddie lives.
2E2E 736F 6D65 7768 6572 6520 ..somewhere.
696E 2074 696D 6521 0000 0000 in time!....

Cuando leí esto en mi editor hexadecimal, supe que lo había encontrado. Varias horas después de buscar a ese virus por todo el disco duro, por fin lo encontré. Ya antes había tratado con otros virus: Stoned, Ping-Pong, pero nada como Dark Avenger, hasta entonces. Y es que buscar a un virus polimórfico tiene su complejidad, y es tanto un arte como una carrera contra el tiempo; hay que encontrarlo antes de que destruya los datos del disco, pues después de varias ejecuciones del programa infectado, el virus escribe caracteres basura en el disco y lo deja inservible, desde el punto de vista de los datos y la información, y permanece en guardia, residente en la memoria, esperando que otro inocente ejecutable se cargara en la memoria para ser infectado por él.

La epidemia mundial de Dark Avenger era una realidad, y la ignorancia era generalizada como ocurre casi siempre en estos casos. No faltaba el irresponsable que decía que no pasaba nada o que ese nuevo virus era una mentira para sacar dinero, y que era comparable con una simple gripa, que sola desaparece. Pero la realidad era que el virus pasaba de una computadora a otra, de un diskette a otro, infectando archivos *.com y *.exe indiscriminadamente en cada copia, causando que en poco tiempo, en 1991, se diagnosticara la epidemia. Los brotes de Dark Avenger en las empresas crecerían del 10% al 60% en menos de un año (eso decían las revistas de computación de esa época, aunque en realidad no me consta), y se reportaron pérdidas millonarias atribuidas a ese virus creado en Bulgaria tan sólo dos años antes, en 1989. Si la gente se hubiera abstenido de copiar discos, quizá la epidemia se habría controlado o al menos retardado, pero la facilidad de introducir un diskette (o ahora, una memoria flash para USB, o pen-drive) en una computadora, luego en otra y luego en otra, donde a su vez han hecho lo mismo otros (no puedo resistirme a usar aquí la palabra "promiscuidad", so pena de ser bloqueado por algún filtro de contenido o por el mismísimo WebSense :D), propicia que la infección se propague más rápidamente.

Pero fue precisamente en 1991 cuando me tocó cazar a ese virus (tenía yo 16 años, y ya trabajaba: lo recuerdo porque no podía cobrar los cheques de mi sueldo, por no tener identificación oficial; tuve que hacerme amigo de la cajera del banco mientras convencía a la empresa de que me pagaran en efectivo :D). Volviendo a la cacería: Un antivirus en ese tiempo no era tan eficaz, pues el motor de mutación (mutation engine) de un virus polimórfico hace que el virus cambie su forma y, por consiguiente, su rastreo y erradicación sea más difícil. Así que la manera de localizarlo era identificando archivos ejecutables que hubieran aumentado de tamaño y buscando ciertas cadenas específicas en ellos, usando las herramientas de las que disponíamos en ese entonces, como Norton Utilities para MS-DOS (el primer Sistema Operativo que usé), o PC-Tools, entre otros. Para terror de algunos de mis lectores, en ese tiempo no teníamos conexiones a Internet como en la actualidad, sólo libros, así que ni pensar siquiera en googlear cualquier cosa. Todo era artesanal, como yo le llamo. El mayor artesano que conocí en ese tiempo fue Don Nico (así le llamábamos, era un señor como de 70 años, pianista, con coleta, mezclilla y chamarra de cuero, que viajaba en motocicleta y llevaba siempre sus diskettes en una bolsa de plástico, 'para no llamar la atención de los ladrones', me decía) y de él aprendí muchas de las técnicas ancestrales de seguridad computacional y administración de sistemas que todavía hoy conozco. Ese hombre sabía de todo y me inspiró mucho cuando me dijo una vez: "yo tengo mucha confianza en ti, porque a diferencia de los demás, a ti te gusta estudiar". Con esa frase me convertí en su padawan (no se rían, es en serio :D), en su aprendiz, y me dediqué a aprender y estudiar con él muchas técnicas de manipulación de archivos y direcciones de memoria, configuraciones avanzadas del Sistema Operativo, y muchas otras cosas que si las contara posiblemente perdería más de la mitad de mis lectores por su alto contenido técnico :D.

Dark Avenger, el Vengador Obscuro, no fue el único virus con el que tuve que lidiar en aquellos tiempos en que la ignorancia y la falta de información, aunados al descuido e irresponsabilidad, hacían de las suyas en el terreno de las infecciones virales de archivos de computadora. Después hubo muchos más, pero los softwares anti-virus comenzaron a ser cada vez más eficaces (aunque no necesariamente más eficientes), y poco a poco el arte del cazador de virus se fue olvidando (¿cuántos todavía recuerdan cómo rastrear cadenas en un mar de dígitos hexadecimales? Sin duda eran buenos tiempos). Algo que siempre me inquietó fue saber si el programador de Dark Avenger usaba una computadora como la mía, si él también tenía esos 256 Megabytes en RAM que yo tenía en mi 8088 a finales de los 80s.

La motivación de los programadores de virus siempre ha sido tema de debate: existen aquellos que justifican sus virus diciendo que es una forma de contrarrestar la piratería de software (el que copia ilegalmente un software, podría llevarse inadvertidamente algún virus), los que quieren vengarse de alguien o de la empresa que los despidió, o los que quieren obtener fama y reconocimiento a expensas de la destrucción de datos ajenos, e incluso los que no tienen ni la más remota idea de lo que están haciendo (script kiddies), y también los que lo hacen por diversión o por adquirir mayor conocimiento; lo malo de estos dos últimos es que muchas veces sus experimentos e investigaciones se les salen de control, y terminan "in the wild" (es decir, fuera del laboratorio) ocasionando desastres mayores.


Seguramente aún quedamos algunos que todavía conservamos algún trofeo de aquellas cacerías colgado en la pared. Yo, por ejemplo, aún tengo una reliquia: mi primer disco duro de 10 Megabytes (sí, leyó Ud. bien: 10 Megabytes, 10 MB) de 5¼", que guarda la única copia de Dark Avenger que conservo (eso quiere decir que no está erradicado :D). Hay veces, cuando me siento melancólico, que miro aquél viejo disco y recuerdo que aún hay mucho por aprender y experimentar en materia de seguridad y que he sido afortunado al haber tenido experiencias como aquélla con Dark Avenger y otros virus no menos peligrosos, pues me hicieron dar mis primeros pasos en la arena de la seguridad computacional; y, por supuesto, también me recuerda a Don Nico (Don Nicolás Flores), que siempre tenía algo qué enseñar a quien estuviera dispuesto a aprender y escuchar sus explicaciones sobre cómo y por qué hacía las cosas; sin duda, uno de mis mejores maestros.

¿"Eddie lives...somewhere in time!"? ...sí, en la obscuridad de mi viejo disco duro.

:wq!

sábado, 25 de abril de 2009

Conferencia sobre NetBeans en FLISOL 2009 Monterrey



Este sábado fue el Festival Latinoamericano de Instalación de Software Libre 2009, y el evento en Monterrey fue todo un éxito. Debo reconocer en primer lugar el esfuerzo en la organización; en verdad fue un evento bien realizado, con una buena asistencia. Como comenté anteriormente, el anfitrión fue la Universidad Regiomontana (UR), en la Facultad de Ingeniería y Arquitectura (FACIYA). Yo tenía toda la intención de llegar desde temprano, pero en la mañana me conecté y entré al sitio de Flisol Monterrey, y descubrí que estaban haciendo un broadcasting, es decir, una transmisión en vivo del evento. Así que estuve siguiendo la primera parte del evento desde mi casa. Esa transmisión fue lo que llaman "la cereza del pastel", aunque como a mi no me gustan los pasteles, lo llamaría... no sé, mejor lo dejaré como un bonus ;-)

Las conferencias fueron muy buenas, y a pesar de recibir (indirectamente, nada personal) críticas hacia las certificaciones de seguridad (¿por qué medio mundo critica a alguien que se certifica?, ¿acaso no les gusta hacer exámenes?), el contenido fue de gran calidad. En cuanto a mi presentación, hablé sobre NetBeans y el crecimiento que ha tenido desde su primera aparición en Praga hasta nuestros días, y sobre todo, traté de hacer énfasis en la importancia de los desarrolladores en la aportación a la comunidad Open Source, pues quienes programan son precisamente los que mantienen vivo el crecimiento, por eso es que necesitamos que más se incorporen a la red de colaboradores del Open Source, especialmente los jóvenes universitarios que, con su entusiasmo y deseos de libertad, aportan mucho.

Para mi presentación instalé Linux Ubuntu en una memoria flash (pen-drive) USB, con OpenOffice 3.0, pues no tendría el descaro de presentarme al FLISOL con un Windows o con PowerPoint, ni Dios lo quiera ;). Lo único que lamento es no haber tenido tiempo suficiente para hacer una demostración con NetBeans IDE, para que vieran lo fácil que es programar con él. Es posible que el video de la conferencia esté disponible en los próximos días en YouTube, y si es así, pondré el enlace aquí mismo. La presentación pueden verla directamente al inicio de esta entrada.

Durante la conferencia me comprometí a iniciar un blog para hablar específicamente sobre NetBeans y Java, así que espérenlo muy pronto. El propósito es, como siempre, compartir un poco con la comunidad de quien también he aprendido.

En resumen, fue una buena experiencia compartir con la comunidad (principalmente universitaria) este sábado, y espero que esta experiencia se vuelva a repetir. Por cierto, gracias a quienes asistieron y permanecieron hasta mi conferencia, que fue la última del día (los agarré cansados, no pudieron correr :D).

Hasta luego.

:wq!