Free Software, Free Culture

Here you will find several texts and/or talks I have presented regarding Free Software and Free Culture. Of course, depending on the target audience, some are written in English, some in Spanish. Even a few of them are bilingual!

Aquí encontrarás varios textos y/o ponencias que he presentado relativos al Software Libre y a la Cultura Libre. Por supuesto, dependiendo de la audiencia objetivo, algunos de estos textos están en inglés y algunos en español. Algunos, de hecho, son bilíngües!

Learning from our keyring: What do our PGP keys say about the project?

TitleLearning from our keyring: What do our PGP keys say about the project?
Publication TypeUnpublished
Year of Publication2016
AuthorsWolf G
Refereed DesignationNon-Refereed
Date Published07/2016
InstitutionDebConf 16
CityCape Town
Type of WorkPresentation
Abstract

Since the keyring-maint team started aggressively pushing for the retirement of short, obsoleted PGP keys two years ago, I started trying to get the keyring to "spew" some interesting data for us. Besides just showing the evolution on the number of keys conforming to our current best-practices, I started looking at the ugly entanglement of our keyring's graphical representation, and started hypothetizing what caused certain patterns to appear in its evolution. I am currently starting to do some aging and vitality analysis on the signatures and the keys themselves.

The work I will be presenting is not likely to be a gamechanger for Debian, but it can be an entertaining way to understand social relationships in our project, and can lead us to understand some important turning points — maybe even forsee and prevent issues from arising at all.

URLhttps://debconf16.debconf.org/talks/22/
AttachmentSize
Presentation (PDF)12.06 MB
Sources for the presentation (Emacs org-mode v7 ⇒ LaTeX Beamer)14.51 MB

Cifrado e identidad, no todo es anonimato

TitleCifrado e identidad, no todo es anonimato
Publication TypeUnpublished
Year of Publication2016
AuthorsWolf G
Refereed DesignationNon-Refereed
Series TitleSeminario de ética hacker, seguridad y vigilancia
Date Published02/2016
InstitutionUniversidad del Claustro de Sor Juana
CityMéxico
Type of WorkPresentation
Keywordscrypto, ethics, hacker, Privacy, social
Abstract

Cryptography has a very special place in every hacker's heart — Not the least because it allows assuring the confidentiality of information, but for several other reasons. First of all, cryptography hides an inner mathematical beauty, which is the very essence of hackdom. Second, the same tool that allows for hiding information, also allows for assuring identity beyond any reasonable doubt; in this talk we will also show why this is so important for hackers. And thirdly, we will briefly talk about "onion routing", a specific use of cryptography (a hack on it, of course) that, besides ensuring confidentiality, seeks to ensure anonymacy in this era of pervasive, permanent surveillance.

La criptografía tiene un lugar muy especial dentro del corazoncito de todo hacker — pero no únicamente porque permite asegurar la confidencialidad de la información. Primero que nada, la criptografía esconde una belleza matemática interior, esencia misma del hacker. Segundo, la misma herramienta que nos permite ocultar, también nos permite asegurar la identidad más allá de cualquier duda razonable; en esta plática veremos por qué esto resulta también fundamental para los hackers. Y en tercer lugar, hablaremos del "ruteo cebolla", un uso específico de la criptografía (un hack, claro está) que además de la confidencialidad busca asegurar el anonimato en esta era de vigilancia pervasiva y permanente.

AttachmentSize
Compiled presentation (PDF format)18.09 MB
Source material (org-mode v7 source; export to LaTeX, compile via Beamer)19.94 MB

Libre diseminación y cultura de la remezcla de los objetos digitales frente a la industria cultural

Title Libre diseminación y cultura de la remezcla de los objetos digitales frente a la industria cultural
Publication TypeConference Paper
Year of Publication2015
AuthorsMiranda A, Wolf G
Refereed DesignationNon-Refereed
Conference NameIII Foro Economía y Cultura
Conference Start Date21/09/2015
Conference LocationMéxico DF, México
KeywordsCreative Commons, Cultura de la remezcla, Derecho de autor, Industria Cultural, Propiedad Intelectual
Abstract

Aprender, apropiarse, reelaborar a partir de nuestro contexto cotidiano constituyen un compartimento evolutivo de la psique humana, sobre él se ha construido la cultura y sus artefactos, sin embargo se observa como las nuevas prácticas de producción de objetos culturales basados en su libre circulación y su modificación, intrínsecamente potencializadas por las innovaciones tecnológicas crean un punto de tensión con las prácticas de la industria cultural, la propiedad intelectual, sus mecanismos de financiamiento y la criminalización de quien comparte; resaltando la necesidad de reelaborar los marcos legales para incluir los derechos de quien consume y se apropia de las obras.

URLhttp://economiaycultura.org/
AttachmentSize
Libre_diseminiación_y_cultura_de_la_remezcla.pdf239.33 KB

La Red de Acervos Digitales de la UNAM (RAD-UNAM)

TitleLa Red de Acervos Digitales de la UNAM (RAD-UNAM)
Publication TypeBroadcast
Year of Publication2014
AuthorsWolf G, Miranda P, Chávez G
Refereed DesignationNon-Refereed
Abstract

Pablo Miranda, Guillermo Chávez and I were invited to talk about UNAM's Network of Digital Repositories (RAD-UNAM) at RadioUNAM, for the "Momento Económico" program, aired on November 27 2014. This is the full recording.

Pablo Miranda, Guillermo Chávez y yo fuimos invitados para hablar de la Red de Acervos Digitales de la UNAM (RAD-UNAM) en RadioUNAM, para el programa "Momento Económico", transmitido el 27 de noviembre del 2014. Esta es la grabación completa.

URLhttp://www.radiounam.unam.mx/audios/Series/Momento%20Economico/2014/ME_2014_11_27_Desarrollo%20Regional_J271114_226313.mp3
AttachmentSize
"Momento Económico" (Radio UNAM) 27 de noviembre, 201424.98 MB

Haciendo dinero con Software Libre

Written in...: 
2014

This is, beyond any doubt, one of the weirdest talks I have given.Almost all of my friends know that, if there is a topic I don't know much about (and, I must say, I don't really care much about learning) is the insertion of Free Software in a commercial world. I often criticize the entrepeneuring culture, and my concept of a happy life involves having a stable, long-term employment.Neverhteless, my friends at OS-UPIITA invited me to talk in their conference cycle, expressly asking me to tackle this topic.And in the end, I liked the topic. Besides, the presentation went very smoothly. And most important, the interaction with the attending public was just great. A huge success! :-D

Resumen: 

Esta es, sin duda, una de las pláticas más raras que he impartido.Casi todos mis amigos saben que si hay un tema que no conozco (y, he de decir, que no me interesa conocer) es el de la inserción del Software Libre en el mundo comercial. Critico a los emprendedores, y mi concepto de vivir feliz es tener un empleo estable a largo plazo.A pesar de eso, mis amigos de OS-UPIITA me invitaron a participar en su ciclo de conferencias, encargándome expresamente que desarrollara este tema.Y a fin de cuentas, el tema me gustó. Además, la presentación fue muy agradable. Y, lo que es más importante, la interacción con el público asistente fue de maravilla. ¡Todo un éxito! :-D

AttachmentSize
Source presentation, both in .org format and in the exported .tex LaTeX Beamer10.44 MB
PDF presentation11.7 MB

Bienes culturales libres: ¿Qué y por qué? (¿Y qué papel puedo jugar?)

Written in...: 
2012

I was invited to give this talk at the Cultural and Artistic Interchange Festival (FINCA) at the National School for Plastic Arts (ENAP) at UNAM. In this talk I try to present to plastic artists and graphical designers, through my experience with free software, how permissive licensing models are permeating all cultural expressions, and how they can (and why should they!) get on this and be a part of it, rather than looking at it with distrust.

Resumen: 

Me invitaron a dar esta ponencia para el Festival de Intercambio Cultural y Artístico (FINCA), en la Escuela Nacional de Artes Plásticas (ENAP) de la UNAM. En esta plática busco plantear a artistas plásticos y diseñadores gráficos, a través de mi experiencia con el software libre, cómo las licencias permisivas van permeando a todas las expresiones culturales, y cómo ellos pueden (¡y por que deberían!) aprovechar y participar en ella, más que verla con recelo.

AttachmentSize
Presentación que utilicé (PDF)3.93 MB
Fuentes de la presentación (emacs-org)3.29 MB

Mecanismos emergentes de desregulación en la red

Written in...: 
2012

Throughout the years, since the Internet was opened for commercial use in the mid-1990s (and gave way for the bulk of the population to start using the network, leading to the massification towards the end of the decade) the notion that the cyberspace is a bold new free space, without rules or regulations, ruled for some time. In those years it was common to refer to the Internet as to a «Wild West» where anybody could do whatever they pleased.

Little by little, that apparent lack of laws started to change, be it as laws usually applied to other scopes started being applied, be it because of specific laws regarding online behaviour. We also started seeing the legal difficulties this meant: An almost constant extraterritoriality of each of the parties (and computers) involved in every action.

However, going back to the origins of the Internet as a research network founded by the United States Department of Defense, how this space, by nature highly regulated, became the ideal place for freedom of expression and anonymacy to flourish becomes a natural question.

Today, Internet is migrating towards a model strongly linked to the two large "social networks": Twitter and Facebook. This migration poses important changes in the way we relate to computers — to such a degree it has to be more deeply analyzed. In the third part of this exposition I sketch the main challenges this means to us.

This presentation was prepared for the Agencia Latinoamericana de Información (ALAI) seminar in Quito, Ecuador, 2012-11-22.

Resumen: 

A lo largo de los años desde que Internet se abrió para uso comercial a mediados de los 1990 (y por tanto se dio entrada a la población en general, masificándose hacia fines de dicha década) ha privado la visión de que el /ciberespacio/ es un ámbito nuevo, libre, carente de regulaciones y leyes. Hacia esos años era común referirse a Internet como un nuevo «Salvaje Oeste» en el que cualquiera podía hacer lo que quisiera.

Poco a poco, esa aparente falta de leyes fue cambiando, sea por la extensión de leyes aplicables a otros ámbitos de la vida, sea por leyes específicas a las conductas en línea. Fueron apareciendo también las dificultades legales que suponía este entorno: Una casi constante extraterritorialidad de cada uno de los equipos y personas involucradas en cualquier acción.

Sin embargo, partiendo los orígenes de Internet como una red de investigación del Departamento de Defensa de los Estados Unidos de América, se hace natural la pregunta de cómo es que un espacio altamente regulado por naturaleza se volvió el entorno ideal de la libertad de expresión y el anonimato.

Al día de hoy, Internet está migrando hacia un modelo fuertemente basado en las dos grandes "redes sociales": Twitter y Facebook. Esta migración nos plantea importantes cambios en la forma de relacionarnos con las computadoras — A un grado tal que merece un análisis más profundo. En la tercer parte de esta exposición delíneo los principales retos que esto nos significa.

Esta presentación fue preparada para el seminario de la Agencia Latinoamericana de Información (ALAI) en Quito, Ecuador, 2012-11-22.

AttachmentSize
Presentación (PDF)194.56 KB
Presentación (fuentes en Emacs Org-mode)14.38 KB
Parte 1 del video (formato Ogg)10.25 MB
Parte 2 del video (formato Ogg)21.66 MB
Parte 3 del video (formato Ogg)19.82 MB
Parte 1 del video (formato AVI)37.91 MB
Parte 2 del video (formato AVI)79.58 MB
Parte 3 del video (formato AVI)73.18 MB

Empaquetando software para Debian: Herramientas y procesos básicos

Written in...: 
2012

While it is true that there are many non-technical areas where you can contribute to help Debian grow, fact is how to create a Debian package is a recurring question among people interested in getting into Debian. In this talk/tutorial we will see the basic points of packaging, understanding how to build a simple package.

Points to cover:

If we have enough time, I'd like to touch some points on team maintainership (keeping packages in version control systems, schemes and tools for group coordination and communication, etc.)

Resumen: 

Si bien hay muchas áreas no técnicas con las que puedes contribuir con el desarrollo de Debian, la duda recurrente entre los interesados en acercarse a formar parte de Debian es cómo se hace un paquete. En esta charla-tutorial veremos los puntos básicos del empaquetamiento, comprendiendo cómo esta compuesto un paquete sencillo.

Puntos a cubrir:

  • ¿Qué es un paquete?
  • ¿Cuál es el rol de apt? ¿Y de dpkg?
  • ¿Qué necesito para crear un paquete sencillo?
  • Dependencias, recomendaciones, y todo lo que lo rodea

Si nos da tiempo, me gustaría tocar puntos de mantenimiento en equipos (mantener paquetes en sistemas de control de versiones, esquemas y herramientas de comunicación y coordinación en equipo, etc.)

AttachmentSize
PDF presentation189.09 KB
Emacs Org-mode sources for LaTeX Beamer13.13 KB

La mochila viajera — The travelling backpack

TitleLa mochila viajera — The travelling backpack
Publication TypeBroadcast
Year of Publication2012
AuthorsWolf G, Bello L, Ramón E, Taleno A, Ortega J
Refereed DesignationNon-Refereed
Full Text

During DebConf12, and thanks to Fito's kind invitation, a bunch of us were part of a radio program that's transmitted in Managua and Chinandega, «La mochila viajera». This program talks about different viewpoints and problematics about migration, seen from the eyes of Nicaraguans, which share quite a bit with us in Mexico — But at the same time, are very different.
I was invited as part of a research group in UNAM on the topic «Communication, trasmigration and emergent systems». To be honest, I'm way behind schedule with the part of the research I should be doing, but here I very roughly describe (part of) the topic I'm interested in.
The session was quite interesting. Of course, the reason I'm sending this to the blog is mainly that I want to keep it at hand, but I think some of you might find it interesting. Of course, it is in Spanish, so… YMMV ;-)

AttachmentSize
La mochila viajera, 13 de julio del 2012: Migrantes y software libre84.19 MB

Open Access

Written in...: 
2012

And in the academic world... What is Open Access? What is the motivation for it? Does it have any relation to Open Source (that is, Free Software)?

I was invited to talk at the "Digital tools for academic publishing" forum at Instituto de Ingeniería, UNAM. This talk attempts to cover those points.

Resumen: 

Y en el mundo académico... ¿Qué es el acceso abierto (Open Access)? ¿Cuál es su motivación? ¿Tiene alguna relación con el Open Source (esto es, con el Software Libre)?

Me invitaron a presentar este tema en las "Jornadas sobre Herramientas Digitales para Publicaciones Académicas" en el Instituto de Ingeniería de la UNAM. Esta ponencia intenta cubrir estas interrogantes.

AttachmentSize
Slides in PDF format989.99 KB
Slides exported to a HTML overview page21.46 KB
Original sources in Emacs' Org mode793.07 KB

Ciencia, Tecnología, Sustentabilidad, y... ¿Software libre?

Written in...: 
2011

Free Software is a social movement which brings back knowledge production to how it has worked since the beginning of human history. We go through some examples of how information has been shared, along with specialization in the ways of doing so, to see why code is basically speech.

Resumen: 

El Software Libre es un movimiento social que trae de vuelta a la producción de conocimiento a la forma en que ha venido funcionando desde el inicio de la historia de la humanidad. Repasaremos algunos ejemplos de cómo se comparte la información, así como de esquemas que se han empleado una vez que la especialización del conocimiento lo requirió, mostrando cómo el código es sencillamente una forma más de expresión.

AttachmentSize
Presentación "Ciencia, Tecnología, Sustentabilidad y ¿Software Libre?" (PDF)2.79 MB
Presentación "Ciencia, Tecnología, Sustentabilidad y ¿Software Libre?" (fuentes en LaTeX Beamer)2.55 MB

Transitando del Software Libre a la Cultura Libre

Written in...: 
2011

On June 2011, we were invited to the Free Software in Mexico: Reflections and Opportunities in Mexico's Senate. This is the presentation I used.

Some photos from the panel: 1, 2, 3, 4.

Resumen: 

En junio de 2011 fuimos invitados al foro Software Libre en México: Reflexiones y oportunidades. Esta es la presentación que utilicé.

Algunas fotos del panel: 1, 2, 3, 4.

AttachmentSize
Presentation (PDF format)153.41 KB
Presentation (LaTeX Beamer sources)11.67 KB

Entrevista en Canal 22: El movimiento del Software Libre

Written in...: 
2010

In February 2010, I was interviewed –along with other colleagues– for Canal 22's thematic Tuesdays. Here are both the edited program that was aired on March 2, 2010 and the full interview (on the same file as the full interview they held with Fernando Romo).

Full interview downloaded from Canal 22's space in Youtube

Resumen: 

En febrero de 2010, fui entrevistado –así como otros colegas– para los martes temáticos de Canal 22. Aquí están tanto el programa editado, que salió al aire el 2 de marzo del 2010, como la entrevista completa (en el mismo archivo que la entrevista completa que sostuvieron con Fernando Romo).

La entrevista completa fue descargada del Espacio de Canal 22 en Youtube.

AttachmentSize
Program as aired in March 2 2010 - .ogg video163.11 MB
Full interview - .flv (Flash) video157.58 MB

Debian: Su ubicación en el universo de proyectos de Software Libre, y qué emerge de ella

Written in...: 
2010

What characterizes the Debian project? What differentiates it from other distributions? What characteristics emerge from these points? I cover:

I prepared this talk for Quito, Ecuador, May 2010.

Resumen: 

¿Qué caracteriza a Debian como proyecto? ¿Qué lo diferencía de otras distribuciones? ¿Qué características emergen de estos puntos? Analizo:

  • ¿Qué es Debian?
  • Relación de Debian con el Software Libre
  • Motivación primaria de sus desarrolladores
  • Relación del proyecto respecto a otros desarrollos
  • Ciclos de liberación y control de calidad

Preparé esta charla para presentarla en Quito, Ecuador, en mayo de 2010.

AttachmentSize
Presentation (PDF format)378.57 KB
Presentation (LaTeX Beamer sources)66.34 KB

acts_as_catalog, real_fk y acts_as_magic_model — Tres plugins simples para toda ocasión

Written in...: 
2009
I prepared this for a short presentation at RubyCamp UNAM. I present the three Rails plugins I wrote in 2008, acts_as_catalog, real_fk and acts_as_magic_model
Resumen: 
Preparé esto para una presentación corta en el RubyCamp UNAM. Presento los tres plugins de Rails que escribí en 2008: acts_as_catalog, real_fk y acts_as_magic_model
AttachmentSize
Presentation, PDF format269.45 KB
LaTeX sources for the presentation5.3 KB

Bringing closer Debian and Rails: Bridging apparently incompatible cultures

Written in...: 
2008

Ruby on Rails has become a very popular framework for Web-based applications. And, even though Rails itself is neatly packaged and integrated in Debian, supporting Rails applications (specially in a large-scale provider) can prove rather difficult. Besides the core application, we face problems such as handling plugins, concurrent versions, and the like. In this BoF session we discussed the different problems we face, looking towards adequate solutions.
This talk was presented at DebConf 8, Mar del Plata, Argentina.

Resumen: 

Ruby on Rails se ha convertido en un framework muy popular para el desarrollo de aplicaciones Web. Si bien Rails mismo está empaquetado e integrado correctamente en Debian, el manejar aplicaciones Rails (especialmente si se trata de un proveedor de servicios a gran escala) puede ser más bien complicado. Además de la aplicación misma, nos encontramos con problemas como el manejo de plugins, tener disponibles versiones concurrentes de diferentes bibliotecas, y cosas por el estilo. En esta sesión discutimos acerca de los diferentes retos que esto nos trae, buscando llegar a soluciones adecuadas.
Esta ponencia fue presentada en DebConf 8, Mar del Plata, Argentina.

AttachmentSize
debian+rails.pdf160.17 KB
debian+rails.tex6.59 KB

Coordinación de esfuerzos en grupos de desarrollo e integración de Software Libre

Written in...: 
2008

I sent this short article for publication at the Software Gurú magazine. It describes the work we do at Debian's pkg-perl group. This is based on my slightly earlier talk Integrating Perl in a wider distribution: The Debian pkg-perl group, shortened and translated to Spanish.
It was published on the Software Gurú August-October 2008 magazine - You can get the printed version of this text as well.

Resumen: 

Envié el siguiente artículo corto para su publicación en la revista Software Gurú. Describe el trabajo que hacemos en el grupo pkg-perl de Debian. Esto está basado fuertemente en mi plática Integrating Perl in a wider distribution: The Debian pkg-perl group, reducido y traducido al español.

El artículo apareció en la edición agosto-octubre de 2008 de Software Gurú - Puedes ver también la versión que fue impresa.

Coordinación de esfuerzos en grupos de desarrollo e integración de Software Libre

Gunnar Eyal Wolf Iszaevich

Instituto de Investigaciones Económicas - UNAM

Acercarse a comprender el funcionamiento y la organización de las tareas dentro de las comunidades de desarrollo de software libre es una tarea harto complicada ante quien se acerca con curiosidad, proveniente del mundo del software propietario, desarrollado e integrado centralmente y dentro de compañías que operan como "cajas negras" - Sin exponer sus procesos, sin ofrecer a los clientes una ventana a cada uno de los momentos de su proceso de desarrollo. Comprender cómo funcionan las comunidades de Software Libre es una gran oportunidad para comprender distintas metodologías de ingeniería de procesos, en entornos donde todas las metodologías formales simplemente no tienen cómo ser aplicadas.

El ejemplo que presento se centra en el trabajo que realizo en el grupo de empaquetamiento de módulos de Perl (pkg-perl) para la distribución Debian GNU/Linux - Perl es un lenguaje de programación muy popular, especialmente para las tareas de administración de sistemas y de desarrollo de sitios Web, y uno de sus más importantes recursos es el CPAN (Comprehensive Perl Archive Network), una enorme biblioteca de módulos nacida en octubre de 1996, y que a febrero del 2008 cuenta con más de 13,000 módulos independientes.

CPAN ofrece a sus usuarios, además, herramientas para el desarrollo y seguimiento colaborativo, como un sistema de seguimiento de fallos y un sistema de organización, búsqueda y consulta de la documentación de dichos módulos.

El proyecto Debian, por su parte, es la distribución de software libre, hoy por hoy, más grande del mundo, con más de 15,000 paquetes fuente independientes. Su propósito es presentar una colección coherente, consistente y con un elevado nivel control de calidad.

El reto del grupo pkg-perl es empaquetar (de una manera consistente con las políticas de Debian) y dar seguimiento a los fallos que vayan apareciendo en dichos paquetes. Debian ofrece a sus usuarios un sistema de seguimiento de fallos centralizado a través del cual pueden comunicarse directamente con los "mantenedores" de cada uno de los programas. Son ellos los responsables de determinar, para cada fallo, si cae en el ámbito de la consistencia del sistema Debian (y por tanto debe ser corregido directamente por ellos) o si es relativo a la lógica de uno de los paquetes (en cuyo caso debe ser corregido en coordinación con el autor de dicho programa, para que la corrección "fluya" hacia las otras distribuciones que lo integran y, en general, hacia todos sus usuarios).

Hasta hace unos cuatro años, la norma en Debian era que cada mantenedor fuera responsable exclusivo de los paquetes que le interesaran; en 2003 nació el sistema Alioth, basado en GForge, y ofreciendo de una manera centralizada las herramientas necesarias para un verdadero desarrollo colaborativo, se comenzaron a configurar grupos amplios de mantenimiento de infraestructura - Uno de los primeros en aparecer, ante la iniciativa de Joachim Breitner, fue pkg-perl. El eje fundamental en torno al cual gira el trabajo del grupo es el depósito Subversion, donde mantenemos sobre un esquema de manejo de versiones todos nuestros paquetes, programas y documentos, así como los cambios independientes que vamos realizando sobre de ellos.

Los módulos del CPAN ofrecen varias ventajas para su mantenimiento masivo colaborativo - A diferencia de lo que ocurre en muchos lenguajes, casi la totalidad los módulos están basados en una estructura de compilación ampliamente conocida (ExtUtils::MakeMaker o Module::Build). En primer término, esto permitió la creación de dh-make-perl, un script bastante genérico cuyo objetivo original era simplificar la creación de paquetes Debian directamente a partir del CPAN para ser instalados localmente por los administradores, pero que fue extendido por el grupo pkg-perl para automatizar la creación de paquetes.

Si bien formalmente el grupo pkg-perl cuenta con 70 miembros, en todo momento hay aproximadamente 15 miembros activos. Actualmente, el grupo es responsable por 660 paquetes - Responsable de dar seguimiento a los fallos reportados, de mantenerlos al día (tanto respecto a nuevas versiones producidas por sus autores como respecto a las políticas en Debian, que van cambiando poco a poco reflejando la evolución del proyecto), de realizar operaciones transversales de control de calidad a través de todos los paquetes, y demás.

Para simplificar la coordinación de todas estas tareas, los integrantes del grupo (especialmente Martín Ferrari, de Argentina, Gregor Herrmann, de Austria, y Damyan Ivanov, de Bulgaria) hemos creado un script que compara el estado de los módulos en CPAN, los paquetes en el depósito Subversion, los reportes en el sistema de seguimiento de Debian, y los paquetes publicados en la distribución misma de Debian. Hoy en día, este script es nuestra principal herramienta, brindándonos un reporte de estado condensado y adecuado específicamente a nuestro flujo de trabajo - Y tan útil resulta este resumen que actualmente estamos adecuando este script para que lo utilicen también otros grupos con un enfoque similar; probablemente para cuando este artículo esté impreso, lo estén utilizando ya los grupos de empaquetamiento de Python y Java - habiendo varios más en el horizonte.

En resumen, el ejemplo que aquí presento es sólo uno de tantos - Pero es ilustrativo. Bajo el modelo del software libre, las barreras entre desarrollo e integración se desvanecen, y el contacto directo entre usuario final y los desarrolladores deja de ser una rara ocurrencia, y se vuelve la norma - algo que damos por supuesto en todo momento de nuestros desarrollos.

AttachmentSize
org-comunidad.pdf548.97 KB

Esquemas de licenicamiento de Software Libre

Written in...: 
2008

This is only a first approach, and not a presentation I'd like to regard to as finished. I was asked to present this as part of a panel in Linux World Mexico Conference & Expo 2008: A brief introduction to Free Software licensing schemes.

Resumen: 

Este es tan sólo un primer acercamiento, no es una presentación que yo sienta lista. Me pidieron que presentara esto como panelista en el Linux World México Conference & Expo 2008: Una breve introducción a los esquemas de licenciamiento de Software Libre.

AttachmentSize
licenciamiento_sl.tar_.gz178.09 KB
licenciamiento_sl.pdf429.31 KB

Estrategias de virtualización en Linux

Written in...: 
2008

Virtualization is the technique (or rather, the set of techniques) that allow to share a single computer's resources so that, for the user, it appears as several independent computers. There are several motivations to virtualize our systems, such as:
- Ease of administration (keeping our installations as simple as possible)
- Isolation/security (limiting the damage a potential attacker can achieve to the smallest possible domain)
- Resource control (avoiding a system failure to consume too many resources in others, leading to a denial of service - Or selling our computer resources by volume)
- High availability (transparent service migration between servers for maintenance tasks)

And a very long etcetera.

Virtualization is not a new technique in computer science, not even in the personal computer world - But there are several factors that have led to its rapid popularization in Linux. Now, there are several techniques through which we can get virtualization.

In this talk, I go over the main virtualization technologies currently available (in Linux and in other operating systems), comparing the strongest and weakest points between several of the available methods, and I present some cases, showing how to resolve several needs.

Resumen: 

La virtualización es la técnica (o más bien, el conjunto de técnicas) que permiten repartir los recursos de una sóla computadora para que, ante el usuario, aparezca como varias computadoras independientes. Virtualizar nuestros sistemas puede hacerse por diversas razones, como:

- Facilidad de administración (mantener nuestras instalaciones tan sencillas como sea posible)
- Aislamiento/seguridad (limitar el daño de un atacante potencial al dominio más reducido posible)
- Control de uso de recursos (evitar que un fallo en un sistema consuma demasiados recursos en otros, llevando a negación de servicio - O venta de servicios de cómputo por volumen de recursos)
- Alta disponibilidad (migración transparente de servicios entre servidores para tareas de mantenimiento

Y, claro, un largo etcétera.

La virtualización no es una técnica nueva en el cómputo, ni siquiera en el mundo de las computadoras personales - Pero hay varios factores que han llevado a que en los últimos años se haya popularizado rápidamente en Linux. Ahora bien, hay varias técnicas que nos brindan virtualización.

En mi plática revisaré las principales metodologías de virtualización actualmente disponibles (en Linux y en otros sistemas operativos), comparando los puntos más fuertes y más débiles entre los métodos comparables, y presento brevemente algunos casos, mostrando cómo resolver diversas necesidades.

AttachmentSize
virt.tex33.71 KB
virt.pdf526.13 KB

Monitoreo de redes con Munin

Written in...: 
2008

Munin is an easy, rich, configurable, extensible, autodiscovering system- and network- monitoring framework. I explain what it is, how to deploy it and how to implement custom plugins.

Here you will find two presentations, one as a wider Munin introduction (munin.pdf and its source, written in 2008) and one more (munin_pg.pdf and its source, updated, extended but with many bits shortened, written in 2011) focused on PostgreSQL monitoring, as well as the accompanying article (munin-pg.pdf and its source) for the PostgreSQL presentation.

Resumen: 

Munin es un sistema de monitoreo de redes y de sistemas sencillo, rico, configurable, extensible, capaz de autodescubrimiento. Explico qué es, cómo desplegarlo, y cómo implementar plugins a la medida.

Encontrarás dos presentaciones: Una es una introducción más general a Munin (munin.pdf y su fuente, escrita en 2008) y una más (munin_pg.pdf y su fuente, actualizada, extendida pero con varios recortes, presentada en 2011) enfocada en el monitoreo de PostgreSQL, así como el artículo que la acompaña (munin-pg.pdf y su fuente).

AttachmentSize
General presentation (2008)2.82 MB
Sources for the general presentation (2008; LaTeX Beamer)2.02 MB
PostgreSQL-oriented presentation (2011)2.5 MB
Sources for the PostgreSQL-oriented presentation (2011; LaTeX Beamer)1.63 MB
PostgreSQL-oriented article (2011)462.42 KB
Sources for the PostgreSQL-oriented article (2011; lyx)283.83 KB

Software Libre y la Construcción Democrática de la Sociedad

Written in...: 
2008

[ updated on December 2009 ]

The Free Software movement has traditionally been seen mainly as a technical movement, working towards a common knowledge body, expressly focused towards operating computer systems. We are presenting it, however, as one of the triggerers -and as one of the clearest success cases- of the Free Knowledge movements.

We explore how the Free Software movement's ideary, born as an ideological movement in the mid 1980s, corresponds with the historical logic of the scientific development that has evolved all along mankind's growth, and is presented as a mechanism that should reempower the scientific and technological development that has brought us through millenia of civilization. We tackle the ideological posture of Free Software, exported and widened towards other areas of human knowledge, generating a cascade of innovative ideas, emphasizing on knowledge production.

We go through some examples, characteristic of the knowledge society, where we can develop some basic characteristics of freedom in a modern, democratic society through Free Software: Trust, privacy, anonimacy and individual freedoms.

This work -still perceived by us as to be a work in progress- was first presented in Congreso Internacional de Software Libre y Democratización del Conocimiento, organized by Universidad Politécnica Salesiana in Quito, Ecuador, October 2008

Resumen: 

[ Actualizado en diciembre del 2009 ]

El movimiento del Software Libre ha sido visto tradicionalmente como un movimiento eminentemente técnico, orientado a la creación de un cuerpo común de conocimiento expresamente enfocado hacia la operación de sistemas de cómputo. Nosotros lo presentamos, en cambio, como uno de los detonantes, y como uno de los casos más claros de éxito, de los movimientos por el Conocimiento Libre.

Exploramos cómo el planteamiento del movimiento del Software Libre, nacido como movimiento ideológico a mediados de los 1980, corresponde con la lógica histórica del desarrollo científico a lo largo del crecimiento de la humanidad, y se nos presenta como un mecanismo que nos ayuda con el desarrollo científico y tecnológico que nos impulsó a lo largo de milenios de civilización. Abordamos la propuesta ideológica del Software Libre es exportada y ampliada otras areas del conocimiento humano generando una cascada de ideas inovadoras que hacen énfasis en la producción de conocimiento.

Revisamos además algunos ejemplos, anclados en la sociedad del conocimiento, en que a través del Software Libre podemos desarrollar características básicas de la libertad en una sociedad moderna y democrática: La confiabilidad, la privacidad, el anonimato, las libertades individuales.

Este trabajo -que vemos aún como un trabajo en proceso- fue presentado por primera vez en el Congreso Internacional de Software Libre y Democratización del Conocimiento, organizado por la Universidad Politécnica Salesiana en Quito, Ecuador, octubre de 2008.

AttachmentSize
Original article as presented in late 2008 (ODT format)40.25 KB
Presentation (PDF format)2.87 MB
LaTeX Beamer sources for the presentation (plus photos and graphics)2.53 MB

Integrating Perl in a wider distribution: The Debian pkg-perl group

Written in...: 
2007

Perl modules are very well organized in CPAN: They can usually be easily found and, thanks to tools such as the CPAN shell, they are easy to install and update even by novice users. However, when people start using Perl systems (as opposed to using Perl for writing such systems), asking them to take care of the dependencies or having them worry about different distribution architectures is a pain that should be spared from them.
In my talk, I will describe how Debian (and other Free Software distributions) addresses this problem by packaging a large subset of the CPAN archive, what is the task and scope of Debian pkg-perl team, some of the tools we use - and, most importantly, what is the best way for us to interact with you, the upstream authors' community - regarding our bug tracking systems, regarding module building and dependencies information, etc.
I presented this talk at YAPC::Europe 2007, Vienna, August 2007.

Resumen: 

Los módulos de Perl están muy bien organizados en el CPAN: Son fáciles de encontrar, y, gracias a herramientas como el shell de CPAN, son fáciles de instalar y actualizar hasta por usuarios novatos. Sin embargo, cuando la gente no involucrada comienza a utilizar sistemas basados en Perl (en contraposición con utilizar Perl para escribir dichos sistemas), pedirles que se preocupen de cubrir las dependencias o que tengan en mente diferentes arquitecturas de distribución de software es una molestia por la que debemos evitar que pasen.
En mi plática, describo cómo Debian (y otras distribuciones de Software Libre) lidian con este problema, empaquetando un amplio subconjunto del archivo CPAN, cuál es la tarea y misión del equipo pkg-perl de Debian, algunas de las herramientas que utilizamos - y más importante que todo lo demás, cuál es la mejor manera en que podemos interactuar con ustedes, la comunidad de autores - respecto a nuestros sistemas de seguimiento de fallos, construcción de módulos, información de dependencias, etc.
Presenté esta plática en el YAPC::Europe 2007, Viena, agosto de 2007.

AttachmentSize
integrating_perl_in_distro.lyx45.81 KB
integrating_perl_in_distro_-_presentation.pdf226.52 KB
integrating_perl_in_distro.pdf187.29 KB
integrating_perl_in_distro_-_presentation.tar_.gz9.29 KB

Participación en proyectos de Software Libre: Aspectos técnicos y sociales

Written in...: 
2007

This talk is heavily based on QA in Free Software projects; it has basically been reformatted, rearranged and updated. So yes, if it sounds familiar... it is because it is so.

Resumen: 

Esta plática está basada fuertemente en Control de calidad en proyectos de Software Libre; básicamente, fue reformateada, reacomodada y actualizada. Así que, si el contenido te parece similar, es porque lo es.

Ruby on Rails: Porque hay mejores maneras de cortarse las venas que escribiendo PHP

Written in...: 
2007

The Web development framework "Ruby on Rails" has gained adepts with an impressive speed. What brings this success on? Ruby is a very comfortable and expressive language, and clearly a young language. Even being quite a nontypical language at a first look -to say the least-, after not such a long time, it becomes just natural and we start wondering how we managed to go by without it. But Ruby's comfortability is nothing but the first step towards Rails. Rails' complete style keeps in the programmer's mind the best way to go through the easiest path - And I mean long-term easiest path. It is strictly built adhering to the Model-View-Controller pattern. Another fundamental point is that it is defined as strongly opinionated software: Phrases such as "Convention over Configuration", "Don't Repeat Yourself", and others will lead us to understand why Rails has empowered Ruby's growth. With this talk, I want just to present this environment to the audience. I do not show off the typical -and, in my opinion, ridiculous- demonstrations on how complete systems can be built in just minutes, but I will present some of the main points that getting in touch with Rails has most impacted my way of working, both inside Rails and in other languages and frameworks

Resumen: 

El framework de desarrollo para Web "Ruby on Rails" ha ganado adeptos con una velocidad de miedo. ¿Qué hay detrás de este éxito? Ruby es un lenguaje muy cómodo y expresivo, claramente jóven. Si bien es bastante curioso al primer acercamiento -por decir lo menos- pasa mucho tiempo hasta que se vuelve natural, y comenzamos a preguntarnos qué hacíamos antes de él. Pero la comodidad de Ruby es sólo el primer paso a favor de Rails. El diseño completo de Rails mantiene en mente la manera correcta de llevar al desarrollador por el camino más rápido - pero más rápido a la larga. Está construido adhiriéndose estrictamente a cada paso el patrón Modelo-Vista-Controlador. Otro punto fundamental de Rails es su filosofía: Frases como "Convención sobre configuración", "No te repitas", y otras por el estilo nos llevan de la mano a comprender el por qué del crecimiento del lenguaje. Con mi plática quiero meramente presentar este entorno a la audiencia. No voy a hacer las típicas -y en mi entender ridículas- demostraciones de cómo se pueden crear sistemas completos en veinte minutos, sino a presentar algunos de los puntos principales que han impactado mi manera de trabajar -tanto dentro de Rails como en otros lenguajes y marcos- desde que estoy en contacto con Rails

SmbGate

Written in...: 
2006

SmbGate is a little program written in Perl (using the Embperl framework) that allows users to connect to their home directories in a SMB server (be it Samba running on an Unix-like environment or Windows). It implements read-only access, using a Web-based interface.

Resumen: 

SmbGate es un pequeño programita escrito en Perl (usando el framework Embperl) que permite a los usuarios conectasre a sus directorios raiz de un servidor SMB (sea Samba sobre algún Unixoide o Windows), implementando acceso de sólo lectura, sobre una interfaz Web

AttachmentSize
SmbGate-1.0.tar_.gz488.25 KB

Aprovechando a Debian para la administración de sistemas

Written in...: 
2006

Beyond what the Debian policy gives us, a highly coherent system in which everything is in its place and works as it should (for what we the system administrators are really thankful for), we can find a great amount of tools for easing the homogeneity in the administration both in the planning of its package management system as in many packages we have at our disposition. We will go through this, as well as the process of creating .deb packages, beyond the basic instructions. This talk was originally prepared for CICOL, June 2006

Resumen: 

Más allá de lo que ya nos dan las políticas de Debian, un sistema altamente coherente en el cual todo está en su sitio (lo cual bendecimos los administradores de sistemas), tanto en la planeación de su sistema de paquetes como en varios paquetes que tenemos a nuestra disposición encontraremos una gran cantidad de herramientas para facilitar la homogeneidad en la administración de sistemas. Revisamos algunas de ellas, así como el proceso de creación de paquetes .deb, más allá de las instrucciones básicas. Preparado originalmente para el CICOL, junio 2006

Analizadores morfológicos aplicados al lenguaje natural, aplicaciones para búsqueda de información

Written in...: 
2005

Almost everybody has faced the need to store a large amount of human-generated information (specifically, extense texts) and later ease the need to search on it. There are many techniques we can use, but we often miss the most powerful ones.
Human spoken or written language is known as natural language. In this talk I present some techniques that allow us to process it to make it easier and simpler its analysis, and make more efficient searching on it, specially based on the Snowball project and its application to databases through PostgreSQL's TSearch2 module.

Resumen: 

Casi todos nosotros nos hemos topado con la necesidad de almacenar una gran cantidad de información generada por humanos (me refiero principalmente a textos extensos) y facilitar posteriormente la búsqueda sobre de ella. Hay muchas técnicas a las que podemos recurrir - pero no siempre acudimos al lugar correcto para buscarla.
El lenguaje hablado o escrito por un ser humano se conoce como lenguaje natural. En esta plática presentaré algunas técnicas que nos permiten procesarlo para hacer más simple y efectivo su análisis y más eficaces las búsquedas sobre de él, específicamente basándome en el proyecto Snowball y su aplicación a las bases de datos a través del módulo TSearch2 de PostgreSQL.

Software Libre: Un modelo alternativo para la producción de conocimiento

Written in...: 
2005

This talk is basically the result of mixing What is Free Software and Quality Assurance in Free Software projects, emphazising in the knowledge production aspects related to Free Software. This talk was first given at the UNAM Economical Research Institute, April 12, 2005.

Resumen: 

Esta plática es básicamente la mezcla de ¿Qué es el software libre? y Control de calidad en proyectos de Software Libre, enfatizando en los aspectos relativos a la producción del conocimiento que propone el Software Libre. La plática fue impartida por primera vez en el Instituto de Investigaciones Económicas el 12 de abril del 2005.

Control de calidad en proyectos de Software Libre

Written in...: 
2004

How is Quality Assurance handled in Free Software projects? Even more, what does Quality Assurance mean in the Free Software world? The Debian project is analyzed as an example. This talk was prepared to be presented in CLEI2004, Arequipa, PerúForman parte los siguientes archivos:

You might also find interesting the Participation in Free Software projects: Technical and social aspects talk, heavily based on this one, reformatted and updated.

Resumen: 

¿Cómo se maneja el control de calidad en los proyectos de Software Libre? Más aún, ¿qué significa el control de calidad en el mundo del software libre? Analizamos como ejemplo al proyecto Debian. Plática preparada para presentarla en el CLEI2004, Arequipa, Perú.
Forman parte los siguientes archivos:

Puede serte también de interés la plática Participación en proyectos de Software Libre: Aspectos técnicos y sociales, fuertemente basada en esta, reformateada y actualizada.

Programación orientada a objetos con Perl

Written in...: 
2004

Perl is one of the most popular languages today. Many people, however, do not think it is a good language to do objet-oriented programming, that it is a difficult task to do it or similar things, and leve Perl for tasks that are just too simple. In this tutorial I present an introduction to object-oriented programming in general, and show how to use this technique in Perl.

Resumen: 

Perl es uno de los lenguajes más populares hoy en día. Mucha gente, sin embargo, no cree que sea bueno al utilizar programación orientada a objetos, que es difícil lograrlo, o algo por el estilo, y relegan a Perl a tareas demasiado simples. En este tutorial doy una introducción general a la programación orientada a objetos, y enseño cómo utilizar esta técnica en Perl.

Aspectos sociales del Software Libre

Written in...: 
2003

What social characteristics can define the Free Software developers? Are we really a homogeneous group? Which problems can appear when facing a global project? How can we avoid them? I analize mainly the Debian project, comparing a bit with the OpenBSD and Ximian/Gnome projects.
This talk was prepared for the 2003 GULEV conference.
It is available as:

Resumen: 

¿Qué características sociales definen a los desarrolladores de Software Libre? ¿Somos realmente un grupo homogéneo? ¿Qué problemas principales pueden darse al enfrentarnos con un proyecto mundial? ¿Cómo los evitamos? Analizo principalmente al proyecto Debian, comparando un poco con los proyectos OpenBSD y Ximian/Gnome.
Esta plática fue presentada en la edición 2003 del Congreso GULEV.
Está disponible como:

Breve introducción a los sistemas de manejo de paquetes / Brief introduction to package management systems

Written in...: 
2002

A presentation prepared for Días de Software Libre, confernce organized by Melix at CUCEI (Guadalajara, May 2002). Here I talk about what are package management systems, why are they needed in modern operating systems, the main characteristics
for the main package management systems, and briefly explain how to create .deb (Debian) packages.
This talk is available as:

Resumen: 

Plática que preparé para los Días de Software Libre, organizado por Melix en el CUCEI (Guadalajara, mayo 2002). Hablo primero acerca de qué son y por qué son necesarios los sistemas de manejo de paquetes en los sistemas operativos modernos, menciono las principales características de los principales sistemas de paquetes, y explico brevemente cómo crear paquetes en formato .deb (para Debian).
Esta plática está disponible en dos formatos:

EOT - Expire Old Threads

Written in...: 
2003

Copyright (c) 2003, 2005 Gunnar Wolf - gwolf@gwolf.org

RATIONALE

I started using mutt as my mail reader a couple of months ago. One of the features I most liked about mutt is that the messages are by default sorted by thread - this really helps following a long conversation in a very active mailing list!

In order to have the threading as complete as possible, I started archiving all my old messages - of course, as mutt users do, I now save each mailing list to a different folder. Life was great.

Life was not perfect, though. After a couple of weeks, some of my mailing lists had too much traffic, and -at over 2000 archived messages- mutt took some time to open them. I am currently using mbox-formatted mailboxes - switching to maildir might have solved the problem for a couple of weeks, but it would happen again. I did not want to artificially cut my mailbox at a specific date, as I would lose all the benefits of my beloved threads.

I came across the fine and overwhelmingly complete Mail::Box Perl module, and I found how easy would it be to move old threads to a different mailbox, instead of moving individual messages.

USAGE

Usage is quite straightforward - first of all, as usual:
eot -h
will give you a list of EOT's options, all of which are optional (but usually you will want to specify at least -f and -F).

The valid options are:

  1. eot -f <from_mailbox> -t <from_type> -F <to_mailbox> -T <to_type> -p <period>
  2. All arguments are optional.
  3. opt description default
  4. ======================================================================
  5. -f Which source mailbox to use mailbox
  6. -t What format is this mailbox in (mbox, maildir, mh) mbox
  7. -F Which destination mailbox to use mailbox.arch
  8. -T What format is this mailbox in (mbox, maildir, mh) mbox
  9. -p Period of time to declare a thread as old, in days 7
  10. -v Whether to report work statistics to STDOUT 0

-f and -F refer to a mailbox - either to a file (if it is a mbox mailbox) or to a directory (if it is a maildir or MH mailbox) in the local directory, or the full (or relative) path to the mailbox in question.

-t and -T refer to the kind of mailbox to open - mbox, maildir or mh.

-p indicates how old (in days) should the last message in a thread be for the whole thread to be considered inactive.

If -v is not specified, EOT will run quietly. If -v is specified, a short summary will be reported after running.

LICENSE

EOT is licensed under the GNU GPL version 2 or higher, at your option.
The full text of the GNU GPL can be found here.

REQUIREMENTS

EOT is written in Perl, and therefore requires Perl (version 5 or higher) to be installed. Additionally, EOT requires the following Perl
modules:
Mail::Box (tested with 2.038)
Date::Parse - part of TimeDate (tested with 1.1400)

You can find them at the CPAN. If you use a Debian system, they are resepctively in the libmail-box-perl and libtimedate-perl packages.

AUTHOR

EOT was created by Gunnar Wolf (gwolf@gwolf.org) in May 2003. You
can use it freely for whatever you want as long as you abide by the
GNU GPL license.

DOWNLOAD

Ok, so I got you interested? ;-)

You can download version 1.1 of EOT here.

Resumen: 

Copyright (c) 2003,2005 Gunnar Wolf - gwolf@gwolf.org

RAZONES

Comencé a usar mutt como mi lector de correo hace un par de meses. Una de las características que más me gustaron de mutt es que los mensajes normalmente aparecen ordenados por hilo - esto ayuda realmente a seguir una conversación larga en una lista muy activa!

Para preservar el hilado de los mensajes, decidí archivar todos mis mensajes viejos - claro, tal como acostumbran hacer los usuarios de mutt. Cada lista va para un folder diferente, y la vida es bella.

Sin embargo, la vida no era perfecta. Después de un par de semanas, algunas de mis listas tenían tanto tráfico -con más de 2000 mensajes archivados- que a mutt le tomaba demasiado tiempo ya abrirlos. Y si bien parte de la culpa puedo echársela a que uso buzones en formato mbox, el cambiar a maildir no haría más que posponer este mismo problema por un par de semanas. Y no quería cortar artificialmente el buzón cada cierto tiempo, pues perdería los beneficios de mis queridos hilos.

Me encontré con el maravilloso y tremendamente completo módulo de Perl Mail::Box, y me dí cuenta que mover hilos completos era muy simple, así que escribí este programita que expirara hilos en vez de mensajes individuales.

USO

El uso es muy simple. Antes que nada, como siempre:
eot -h
te dará una lista de las opciones de EOT, todas ellas opcionales (aunque usualmente querrás especificar al menos -f y -F).

Las opciones válidas son:

  1. eot -f <from_mailbox> -t <from_type> -F <to_mailbox> -T <to_type> -p <period>
  2. All arguments are optional.
  3. opt description default
  4. ======================================================================
  5. -f Which source mailbox to use mailbox
  6. -t What format is this mailbox in (mbox, maildir, mh) mbox
  7. -F Which destination mailbox to use mailbox.arch
  8. -T What format is this mailbox in (mbox, maildir, mh) mbox
  9. -p Period of time to declare a thread as old, in days 7
  10. -v Whether to report work statistics to STDOUT 0

-f and -F se refieren a un buzón -un archvio si es tipo mbox o un directorio si es tipo maildir o MH- en el directorio local, o un path completo o relativo al buzón en cuestión.

-t y -T indican el tipo de buzón a abrir - mbox, maildir or mh.

-p indicates how old (in days) should the last message in a thread be
for the whole thread to be considered inactive.

Si no especificas -v, EOT correrá en silencio. Si especificas -v un
corto resumen de actividad aparecerá después de correr.

LICENCIA

EOT is está cubierto por la GNU GPL versión 2 o superior, a tu discreción.
El texto completo de la GNU GPL puede ser encontrado aquí.

REQUISITOS

EOT fue escrito en Perl, y por tanto requiere Perl (versión 5 o
superior). Además de esto, EOT requiere de los siguientes módulos de
Perl:
Mail::Box (probado con 2.038)
Date::Parse - parte de TimeDate (probado con 1.1400)

Puedes encontrarlos en el CPAN. Si usas un sistema Debian, están respectivamente en los paquetes libmail-box-perl y libtimedate-perl.

AUTOR

EOT fue creado por Gunnar Wolf (gwolf@gwolf.org) en mayo del 2003. Puedes usarlo libremente para el propósito que sea, siempre que te
atengas a la licencia GNU GPL.

BAJARLO

Ok, veo que te interesó ;-)

Puedes bajar la versión 1.1 de EOT aquí.

Fundamentos de programación en Perl

Written in...: 
2002

A little tutorial I gave at Talleres de Linux en la UPN in August 2002, trying to teach the main elements of Perl programming.

Resumen: 

Un pequeño curso que impartí en agosto del 2002 en los Talleres de Linux en la UPN, cuyo objetivo es enseñar los principales elementos de la programación en Perl.

Licencia

Este tutorial fue escrito originalmente por Gunnar Wolf. Las versiones ampliadas o actualizadas del mismo serán publicadas en http://www.gwolf.org/soft/curso-perl
El texto, parcial o completo, de este tutorial puede ser copiado, modificado, redistribuído, incluído en otras obras o utilizado de cualquier manera siempre y cuando se reproduzca este aviso.
El autor no se responsabiliza de la veracidad, aplicabilidad, utilidad, ni de ninguna consecuencia derivada directamente o indirectamente de este texto.

1. Objetivos

Dar un panorama general del lenguaje de programación Perl para quien aún no lo conoce, mostrando sus principales características y las tareas para las que más frecuentemente es utilizado.

2. Introducción conceptual a Perl

  • Un lenguaje natural comprensible por la computadora
    • Un lenguaje natural ofrece gran riqueza de expresión,sintáctica y semánticamente - ¡Perl permite hasta escribir poesía!
  • Orígenes y objetivos del lenguaje
    • En 1987(8?): Lenguaje pegamento
    • Herdero de C, awk, sed, ksh, csh...
    • No nos obliga a seguir un paradigma específico, pero permite implemntar a casi cualquiera
    • Altamente extensible
  • Filosofía y frases comunes en el lenguaje
    • TIMTOWTDI - Hay más de una manera dehacerlo.
    • Hubris, impatiences, laziness
    • Perl makes easy things easy, and difficult things possible
  • ¿Dónde encontrar documentación?

3. Variables

  • Escalares: $escalar
  • Arreglos: @arreglo
  • Hashes: %hash
  • Breve mención de lo que hay más allá (*glob, \$var, ${$var}, espacios de nombres, variables/funciones anónimas, arreglos multidimensionales, estructuras de datos, closures, etc.)

4. La verdad... ¿Qué es la verdad?

  • Es verdadero todo lo que no sea falso
  • Es falso el valor indefinido (undef)
  • Es falso el número 0
  • Es falsa una cadena vacía ('')
  • Es falsa la cadena '0'

5. Estructuras de control

  • Condicionales
      1. if <i>expr</i> {
      2. (...)
      3. } elsif <i>expr</i> {
      4. (...)
      5. } else {
      6. (...)
      7. }
    • (...) if <i>expr</i>
    • unless
    • <i>expr</i> and (...)
    • <i>expr</i> or (...)
    • <i>expr</i> ? (...) : (...)
  • Ciclos
      1. while (<i>expr</i>) {
      2. (...)
      3. }
      1. until (<i>expr</i>) {
      2. (...)
      3. }
      1. do {
      2. (...)
      3. }while/until
      1. for (<i>expr1</i> ; <i>expr2</i> ; <i>expr3</i>) {
      2. (...)
      3. }
      1. foreach <i>$var</i> (<i>lista</i>) {
      2. (...)
      3. }
  • Control de flujo
    • last
    • next
    • die
    • redo
    • continue
  • Pseudociclos
    • map {} ()
    • grep {} ()
    • sort {} ()

6. Operadores

  • Aritméticos: +, -, *, /, %, **, ++, --
  • Comparación: <, <=, ==, >=, >, lt, le, eq, ge, gt, <=>, cmp
  • Asignación y correspondencia: =, =>, +=, -=, *=, /=, etc.

7. Cadenas y otras literales

  • undef
  • Literales numéricas, constantes
  • Cadenas simples: '...', q(...)
  • Cadenas con interpolación: &quot;...&quot;, qq(...)
  • Cadenas resultado de ejecución: `...`, qx(...)
  • Otras maneras de referirse a cadenas: qw(...), qr(...)
  • Here docs

8. Ámbito de las variables

  • Variables globales y el opcional use vars, our
  • Variables locales (local)
  • Variables léxicas (my)

9. Uso de funciones

  • Creación y llamada de funciones
    • sub funcion { (...) }
    • &funcion(), funcion(), &funcion, funcion
  • Paso de parámetros y valores de resultado, por valor y por referencia
    • Arreglo default @_ y por qué
    • return
  • Funciones locales: my $func = sub {...}
  • Entregando múltiples datos, estructuras

10. Manejo de archivos

  • open estilo tradicional
    • Sintaxis: open (FILE, expr) (entre otras...)
    • Modos de apertura de archivos
      • < (default)
      • >
      • >>
      • +<
      • | (antes, después)
    • Creando aliases de STDIN y STDOUT: '-' y '>-'
    • Ver: perldoc -f open, perldoc opentut, perldoc perlipc
  • Sintaxis orientada a objetos - IO::File
    • Mayor flexibilidad en modos de apertura (modos de apertura de open y de sysopen, permisos)
    • Manejo automático de archivos temporales usando el constructor new_tmpfile
  • Importante: Siempre manejar condiciones de error
  • Leyendo y escribiendo de archivos:
    • print ARCH 'algo';
    • Eligiendo hacia dónde imprimir:
      print { $ok ? STDOUT : STDERR } 'texto'
    • <ARCH> y su comportamiento en diferentes contextos

11. Bibliotecas y módulos

  • Prinicipios básicos de la reutilización de código
    • Cualquier problema se puede partir en problemas pequeños una y otra vez. Conviene reunir los pedazos de código (funciones) que contribuyan a la solución de un problema específico, para poderlos aplicar fácilmente en otras ocasiones
    • Compartir código es bueno, y es mejor compartir recetas sencillas y específicas que productos completos y potencialmente más difíciles de aplicar
  • Bibliotecas
    • Las bibliotecas son simplemente pedazos de código que son incluídos en el programa en tiempo de ejecución, cuidando de no incluirlas más de una vez.
    • Una biblioteca es un archivo normal de Perl, situado en algún directorio mencionado en @INC, y con sufijo '.pl'. Por ejemplo:
      require 'biblioteca';
      busca a biblioteca.pl en @INC, y evalúa al primero que encuentre.
    • Si la expresión solicitada es un bareword, Perl asume que estamos intentando llamar a un módulo mediante require, busca el archivo con extensión .pm, y traduce '::' por '/' en la búsqueda del archivo.
    • Las funciones de bibliotecas típicamente entran al espacio de nombres actual.
    • Al crear una biblioteca, es importante que el resultado de la evaluación sea verdadero, por lo que es sugerido que su último comando sea 1;
  • Módulos
    • Son la evolución natural de las bibliotecas, dando un paso hacia la orientación a objetos (de hecho, los objetos son implementados como módulos) adaptándose a los cambios introducidos en Perl 5. Además de los requisitos de las bibliotecas, los módulos llevan algo de información extra para facilitar interoperar con ellos.
    • Todos los símbolos del módulo están restringidos a un espacio de nombres definido (y por convención, el espacio de nombres se llama igual que el módulo). El usuario tiene la opción de importar algunos de estos símbolos a su espacio de nombres, normalmente usando Exporter.
    • Los módulos, a diferencia de las bibliotecas, son incluídos en tiempo de compilación.
    • Son invocados con el comando use módulo lista, donde módulo necesariamente es un bareword, y lista es la lista de símbolos a importar.
      Es equivalente a:
      BEGIN {require módulo; import módulo lista}

Mayor información:

  • perldoc perlmodlib
  • perldoc -f require
  • perldoc -f use

12. Módulos pragmáticos (pragmas)

  • Un pragma define el comportamiento del compilador frente a determinadas circunstancias
  • Los pragmas se activan con use pragma, pero a diferencia de los módulos, pueden ser desactivados con no pragma.
    Esta activación/desactivación es léxica - es efectiva para el bloque o el paquete (dependiendo del caso) en el que fue declarada, no para el flujo lineal de la ejecución.
  • Algunos de los pragmas más utilizados son constant, diagnostics, integer, lib, vars, warnings
  • Mayor información:

    • perldoc perlmodlib
    • Páginas de manual específicas de cada pragma

    13. Prácticas importantes de seguridad

  • Uso del pragma strict
    • vars: Evitar variables no declaradas, sin ámbito o sin calificación de espacio de nombres completa.
      No permite el uso de variables declaradas con local - únicamente con use vars, our, my, o nombre completo ($main::var)
    • refs: Evitar referencias simbólicas - Por ejemplo:
      1. $var = 'valor';
      2. print $$var; # Si no usamos strict, imprime $valor
    • subs: No permite el uso de barewords (palabras sueltas) - exige que las llamadas a funciones se expliciten, ya sea anteponiendo el signo & o especificando una lista de parámetros entre paréntesis (aunque esté vacía).
  • Reporte de warnings (por switch/variable, por pragma)
  • Nunca dejar cosas sin revisar
  • Mayor información:
  • 14. (Embarrada de) conceptos importantes pero más avanzados

    • Objetos
    • Bloques especiales que modifican el flujo
      • BEGIN
      • END
      • Método DESTROY
    • Interacción con CGI
    • Interacción con bases de datos
    • Programación orientada a redes con sockets

    IPManage

    Written in...: 
    2003

    A system I wrote while working for FES Iztacala. It helps a network administrator on his tough job relating MAC and IP addresses, generating configurations for the DHCP server and for ARP.
    Several years later, already working at IIIEc UNAM, I practically re-wrote it from scratch, cleaner, with an object-oriented layer, using the Template Toolkit for the presentation, and as an Apache module (with mod_perl). Both versions are useful and usable - here you have both. Both are, however, in a "snapshot" state, lacking smaller bits of functionality and documentation.
    IPManage (2003, CGI-oriented edition)
    IPManage (2007, OOP, mod_perl-driven edition)

    Resumen: 

    Un sistema que hice cuando trabajé para la FES Iztacala. Ayuda a los administradores de redes en su ardua labor relacionando direcciones IP y MAC, generando configuraciones para el servidor de DHCP y ARP.
    Varios años más tarde, ya trabajando en el IIEc UNAM, prácticamente lo re-escribí completo, más limpio, con una capa orientada a objetos, utilizando Template Toolkit para la presentación, y como módulo de Apache (con mod_perl). Ambas versiones son funcionales y usables - Aquí están ambas. Ambas están, sin embargo, en un estado de "snapshot", con pequeñas omisiones en lo que concierne a funcionalidad y documentación.
    IPManage (versión de 2003, orientada a CGI)
    IPManage (versión de 2007, OOP, basada en mod_perl)

    Introducción a Debian GNU/Linux

    Written in...: 
    2002

    In this presentation, I explain what is Debian GNU/Linux, and what makes it be what it is. I presented it for Departamento de Seguridad en Cómputo's GASU seminar, May 2002.

    The following files are very old, dating from the 2002 seminar I gave this talk at. Anyway, in case you are interested:

    Resumen: 

    En esta presentación muestro qué es Debian GNU/Linux y por qué es lo que es. La presenté para el Seminario GASU del Departamento de Seguridad en Cómputo, mayo del 2002.

    Los siguientes archivos son ya muy viejos, de la primera vez que presenté esta plática, en el seminario GASU, julio del 2002. Como sea, por si te interesan:

    Perl 6 o los Nueve Jinetes del Apocalipsis

    Written in...: 
    2002

    This talk was prepared for Congreso GNU/Linux 2002, prepared by GULEV in Veracruz, December 2002. Here I talk about the process leading to the creation of this new version of Perl, and the main changes we can expect for this language.
    I wrote the presentation in Magicpoint; you can download the source Magicpoint file, or if you prefer, open the presentation converted to HTML.

    Resumen: 

    Esta la preparé para el Congreso GNU/Linux 2002, preparado por el GULEV en el puerto de Veracruz, en diciembre del 2002. Presento a qué proceso de desarrollo sigue la i creación de esta nueva versión de Perl, y qué cambios principales podemos esperar para este lenguaje.
    La presentación la hice en Magicpoint; puedes bajar el archivo fuente Magicpoint, o si prefieres, ver la presentación convertida en HTML

    Razones para preferir y exigir desarrollos libres en sistemas informáticos gubernamentales

    Written in...: 
    2003

    Free Software has many advantages against propietary software in many areas. However, when we talk about the government, this goes soon beyond convenience - It is necessary that, if a government dependency hires or carries a given development, it should demand that the license it is made on is free and it is built over a free infrastructure. I gave this talk in Mexico city's Government's Encuentro de Informática de Otoño 2003, explaining the reasons for these demenads.

    Resumen: 

    Si bien en muchas áreas el software libre presenta amplias ventajas frente al software propietario, en el gobierno esto deja de ser simple cuestión de conveniencia - Es indispensable que, si una dependencia de gobierno va a contratar un desarrollo o llevarlo a cabo, exija que sea con licencia libre y sobre una infraestructura libre. Esta plática, que presenté en el Encuentro de Informática de Otoño 2003 del Gobierno del Distrito Federal, explica las razones.

    TEPATCHE - OpenBSD automatic system patcher / Parchador Automático de sistema OpenBSD

    Written in...: 
    2003

    RATIONALE

    OpenBSD is a stable, robust and secure operating system. Systems administrators running OpenBSD tend to be also more security conscious than administrators running other operating systems. Nevertheless, patching an OpenBSD system can be a tedious process for many people. If a person manages multiple OpenBSD servers, patching each of them can be a long and repetitive task, ideal for automatization.

    Tepatche will periodically check the FTP site we indicate it to, and if there is a new patch to be applied, downloads, applies, builds and installs it. Tepatche mantains a small status database to know in what is the status of each of the system's patches.

    REQUIREMENTS

    NOTES

    USAGE

    Tepatche consists of one program file (/usr/local/sbin/tepatche), a configuration file (/etc/tepatche.conf) and a data directory (/var/db/tepatche/). The configuration file has the following fields:

    With this file in place, Tepatche can be run simply with no arguments, just /usr/local/sbin/tepatche. I suggest you to run it from your crontab (see man crontab(5)). I suggest running it once a day, at most once an hour - please don't flood ftp.openbsd.org with requests every minute ;-)

    STATUS FILE

    Tepatche keeps the information it needs about the state of the system in the 'statusfile' (by default, located at /var/db/tepatche/statusfile). This is a plain-text file following the format:
    &lt;descriptor&gt;::&lt;status&gt;
    Where 'descriptor' is an alphanumeric string, and 'status' is a valid status number. Valid status numbers are:

    The descriptor is usually in the form <arch>/<num>_<description>.patch - It states the architecture for which it was created, the consecutive patch number, a very short description on what it does, and the '.patch' suffix. This is the standard nomenclature followed by the OpenBSD team. a sample name would be:

    common/001_sshafs.patch

    This shows that the patch will be applied to all architectures (common), it is the first patch produced for this release (001), and it fixes a problem related to 'sshafs'.

    If you want to modify this file (of course, always AT YOUR VERY OWN RISK), you can follow this conventions to let Tepatche know the new status of the patch. For example, in the 3.1 release a very dangerous bug appeared in OpenSSH. The OpenBSD team advised to upgrade to OpenSSH 3.4, overwriting the /usr/src/usr.bin/ssh directory. Later, they published a patch (common/006_sshpreauth.patch) to fix the vulnerability for people who prefered not to upgrade. Many people already have the 3.4 tree installed, and the patch files to be applied. You should then edit /var/db/tepatche/statusfile and replace

    common/006_sshpreauth.patch::10

    by

    1. common/006_sshpreauth.patch::4</pre>
    2. <h3>TO DO</h3>
    3.  
    4. At least:
    5. <ul>
    6. <li>Make output more friendly (half-done)</li>
    7. <li>Handle error cases more reliably (half-done)</li>
    8. <li>Add a <i>non-paranoic</i> option (maybe?)</li>
    9. <li>Add some more levels to the statusfile, explaining the reasons for a failure</li>
    10. <li>Add a tool to easily edit the statusfile from the command line (maybe?)</li>
    11. <li>Add some extra accepted commands for the builder (checking them with regexes)</li>
    12. <li>Re-sync this page with the Spanish translation :)</li>
    13. <li>Handle different transfer protocols (i.e., CVS over SSH)</li>
    14. <li>Test, test,test</li>
    15. </ul>
    16. <h3>DOWNLOAD</h3>
    17.  
    18. You can get your Tepatche (currently at version 0.85) <a href="/files/tepatche-0.85.tar_.gz">right here.</a>
    19. If you are interested in reading the article I wrote on it for the <a href="http://www.samag.com/articles/2003/0312/">December 2003 issue of Sysadmin</a>, you can find it <a href="/files/tepatche_sysadmin.txt">here</a>.
    20.  
    21. <h3>WHY TEPATCHE?</h3>
    22.  
    23. Tepache is a popular, slightly alcoholic drink in Mexico, where I live and where this program was devised. Tepache is the result of fermenting pineapple in water. Quoting from <a href="http://www.fao.org/docrep/x0560e/x0560e09.htm" title="http://www.fao.org/docrep/x0560e/x0560e09.htm">http://www.fao.org/docrep/x0560e/x0560e09.htm</a> :
    24.  
    25. <cite>Tepache is a light, refreshing beverage prepared and consumed throughout Mexico. In the past, tepache was prepared from maize, but nowadays various fruits such as pineapple, apple and orange are used. The pulp and juice of the fruit are allowed to ferment for one or two days in water with some added brown sugar. The mixture is contained in a lidless wooden barrel called a &quot;tepachera&quot;, which is covered with cheese cloth. After a day or two, the tepache is a sweet and refreshing beverage. If fermentation is allowed to proceed longer, it turns into an alcoholic beverage and later into vinegar. The microorganisms associated with the product include Bacillus subtilis, B. graveolus and the yeasts, Torulopsis insconspicna, Saccharomyces cerevisiae and Candida queretana (Aidoo, 1986). </cite>
    26.  
    27. If you are curious, you can find recipes to prepare tepache (in Spanish) at <a href="http://www.chi.itesm.mx/chihuahua/arte_cultura/cocina/bebidas/tepache.html" title="http://www.chi.itesm.mx/chihuahua/arte_cultura/cocina/bebidas/tepache.html">http://www.chi.itesm.mx/chihuahua/arte_cultura/cocina/bebidas/tepache.html</a> and <a href="http://mexico.udg.mx/cocina/bebidas/tepache.html</p>
    28. <p>I" title="http://mexico.udg.mx/cocina/bebidas/tepache.html</p>
    29. <p>I">http://mexico.udg.mx/cocina/bebidas/tepache.html</p>
    30. <p>I</a> found a recipe in German (I cannot tell if it is right or not ;-) ) at: <a href="http://www.mexiko-lindo.de/rezepte/getraenke.htm</p>
    31. <p><h3>THANKS</h3></p>
    32. <p>First" title="http://www.mexiko-lindo.de/rezepte/getraenke.htm</p>
    33. <p><h3>THANKS</h3></p>
    34. <p>First">http://www.mexiko-lindo.de/rezepte/getraenke.htm</p>
    35. <p><h3>THANKS</h3></p>
    36. <p>First</a> and foremost, I want to thank the OpenBSD team for the incredible amount of work they have thrown into this great project.
    37.  
    38. On a smaller scale, Tepatche would not have been possible without the help of <a href="http://www.openbsd.org.mx/">OpenBSD México</a>.
    39. In this specific project, I recieved great help from <a href="http://www.openbsd.org.mx/%7Ealex/">Alex Juárez</a>, <a href="http://www.openbsd.org.mx/%7Ecesar/">César Yáñez</a> and <a href="http://www.openbsd.org.mx/%7Eheinz/">Karl Heinz Holtschmit</a>.
    40.  
    41. Of course, I want to thank my workplace, <a href="http://www.iztacala.unam.mx/"> UNAM FES Iztacala</a>, for granting me time to work in security and Free Software for already three years - and I expect many more.

    Resumen: 

    RAZONES

    OpenBSD es un sistema operativo estable, robusto y seguro. Los administradores de sistemas que corren OpenBSD tienden a ser mas conscientes de la seguridad que los administradores corriendo otros sistemas operativos. En ocasiones, parchar un sistema OpenBSD puede volverse un proceso tedioso para muchas personas. Si una persona se encarga de muchos servidores OpenBSD, el parchar cada uno de ellos puede ser una tarea larga y repetitiva, ideal para automatizarla.
    Tepatche revisará periódicamente el sitio FTP que se le indique, y si hay un nuevo parche que pueda ser aplicado, lo descarga, aplica, compila e instala. Tepatche mantiene una pequeña base de datos de estado para saber en que estado se encuentra cada uno de los parches del sistema.

    REQUISITOS

    • Una instalación completa de OpenBSD (incluyendo el código fuente en /usr/src y los fuentes del kernel en /usr/src/sys). Tepatche fue probado con OpenBSD versión 3.1, pero mientras se diseñaba, los parches para el 2.9 y 3.0 también fueron estudiados y, como el formato es el mismo, deben de funcionar. Es importante mencionar que la versión 2.9 y versiones mas viejas ya NO SON MANTENIDAS, no hay nuevos parches que sean liberados para ellos. Es importante que se haga una actualización en caso de que estes corriendo una versión vieja.
    • Tepatche usa el módulo de Perl Net::FTP. Puedes instalarlo desde los ports (p5-libnet) ó desde CPAN. Tepatche fue diseñado y probado con p5-libnet-1.0901, la versión de los puertos 3.1.

    NOTAS

    • Tepatche esta liberado bajo la licencia BSD - Leer el archivo COPYING
    • Este es código EXPERIMENTAL. A mi me funciona. Sin embargo, es código hecho para ser corrido como root y para modificar binarios vitales del sistema, y un error de programación puede llevar a consecuencias desastrosas.
    • Tepatche asume que los parches publicados en el ftphost especificado son confiables. Si el ftphost (normalmente ftp.openbsd.org o uno de sus espejos) fueran comprometidos, cualquier cosa pudiera pasar. Si Tepatche instala un parche comprometido, puees revertirlo con la opción de parche -R (ver man patch(1)). Hay que notar que Tepatche no correrá cualquier comando que encuentre en un parche, solo los que reconozca... pero hay mucho espacio ahí.
    • Si el aplicar un parche requiere una compilación del kernel, el administrador del sistema DEBE HACERLO MANUALMENTE. Tepatche parchará los fuentes, pero compilar el kernel involucra muchos pasos que requieren que se opere manualmente.
    • Tepatche SOLAMENTE parchará el sistema base - Si usas ports extra, estos NO serán parchados. Por favor véase las notas referentes a los ports y a la auditoría de seguridad en: http://www.openbsd.org/ports.html

    USO

    Tepatche consiste en un archivo de programa (/usr/local/sbin/tepatche), un archivo de configuración (/etc/tepatche.conf) y un directorio de datos (/var/db/tepatche). El archivo de configuración contiene los siguientes campos:

    • ftphost: Servidor FTP a conectarse (ej: ftp.openbsd.org)
    • ftpdir: La base del directorio FTP para los parches (ej: /pub/OpenBSD/patches/3.1)
    • ftppasv: Donde el modo pasivo FTP es requerido (1) o no (0)
    • ftplogin: usuario y password para ingresar (separado por una coma, ej: anonymous, gwolf@gwolf.cx)
    • archs: Lista separada por comas de arquitecturas a descargar (ej: i386, common) Por favor, recuerda incluir common!
    • patchdir: Donde los parches serán almacenados en nuestra computadora (ej: /var/db/tepatche)
    • statusfile: Localización del archivo de estado (ej: /var/db/tepatche/statusfile)

    Con este archivo en su lugar, Tepatche corre simplemente sin argumentos, solo /usr/local/sbin/tepatche. Sugiero que lo corras desde tu crontab (ver man crontab(5)). Sugiero correrlo una vez al día, cuando mucho una vez por cada hora - por favor no inundes ftp.openbsd.org con peticiones cada minuto ;-)

    ARCHIVO DE ESTADO

    Tepatche mantiene la información que necesita acerca del estado del sistema en el 'statusfile' (por default, en /var/db/tepatche/statusfile). Este es un archivo de texto plano con el siguiente formato:
    &lt;descriptor&gt;::&lt;status&gt;
    Donde 'descriptor' es una cadena alfanumérica, y 'status' es un número de estado válido. Los números válidos son:

    • 1: nuevo - El parche acaba de ser bajado.
    • 2: aplicado - El parche ya fue aplicado al árbol de fuentes
    • 3: construído - Los binarios relevantes ya fueron generados en el árbol fuente
    • 4: instalado - Los binarios fueron ya instalados en su lugar. El parche ya fue completamente instalado.
    • 5: kernel - El parche requiere recompilar el kernel. Cuando tepatche llega a este estado, el parche fue aplicado, pero aún no ha sido construído..
    • 10: error - Ocurrió un error en algún punto del proceso de parche

    El descriptor usualmente llevará el formato <arch>/<num>_<description>.patch - Indica la arquitectura para la cual fue creado, el número consecutivo de parche, una muy corta descripción acerca de su función, y el sufijo '.patch'. Esta es la nomenclatura estándar que sigue el equipo de Open:BSD. Un nombre ejemplo podría ser:
    common/001_sshafs.patch
    Esto indica que el parche será aplicado a todas las arquitecturas (common), que es el primer parche producido para esta versión del sistema (001), y que corrige problemas relacionados con 'sshafs'.
    Si quieres modificar este archivo (claro está, BAJO TU PROPIO RIESGO), puedes seguir estas convenciones para indicar a Tepatche el nuevo estado del parche. Por ejemplo, en la versión 3.1 de OpenBSD apareció un bug muy peligroso en OpenSSH. El equipo de OpenBSD sugirió actualizar de inmediato a OpenSSH 3.4. Posteriormente, para la gente que no actualizó, publicaron un parche (common/006_sshpreauth.patch). Mucha gente ya instaló el árbol de 3.4, con lo que modificaron manualmente el directorio /usr/src/usr.bin/ssh lo cual hace necesario editar /var/db/tepatche/statusfile y reemplazar
    common/006_sshpreauth.patch::10
    por
    common/006_sshpreauth.patch::4

    POR HACER

    Al menos:

    • Hacer la salida mas amigable (a medio-hacer)
    • Manejo mas confiable de errores (a medio-hacer)
    • (tal vez) incluir un mecanismo de compilación del kernel
    • Probar, probar, probar

    DESCARGAS

    Puedes obtener Tepatche (actualmente version 0.85) Justo aqui.
    Si te interesa leer el artículo publicado en la edición de diciembre del 2003 de SysAdmin, aquí lo tienes.

    ¿POR QUE TEPATCHE?

    Tepatche es una bebida ligeramente alcohólica en México, en donde yo vivo y donde el programa fué concebido. Tepache es el resultado de
    fermentar piña en agua. Tomado de http://www.fao.org/docrep/x0560e/x0560e09.htm :
    Tepache es una bebida ligera, refrescante preparada y consumida en todo México. En el pasado, el tepache era preparado con maíz, pero en la actualidad varias frutas como la piña, manzana y naranja son usados. La pulpa y el jugo de la fruta son puestos a fermentar por uno o dos días en agua con algo de azucar morena. La mezcla es puesta en barriles de madera sin tapa llamados "tepacheras", que se cubren con trapos queseros. Después de uno o dos días, el tepache es una dulce y refrescante bebida. Si se deja fermentar por mas tiempo, se convierte en una bebida alcohólica y después en vinagre. Los microorganismos asociados con el producto incluyen al Bacilo Sutbtilis, Torulopsis insconspicna, Saccharomyces cerevisiae y Candida queretana (Aidoo, 1986).
    Si eres curioso, puedes encontrar recetas de como preparar tepache (en español) en http://www.chi.itesm.mx/chihuahua/arte_cultura/cocina/bebidas/tepache.html o http://mexico.udg.mx/cocina/bebidas/tepache.html

    AGRADECIMIENTOS

    Primero y sobre todo, quiero agradecer al equipo de OpenBSD por la increíble cantidad de trabajo que hay puesto en este proyecto.
    En menor escala, Tepatche no hubiera sido posible sin la ayuda de OpenBSD México. En este proyecto específico, recibí una gran ayuda de Alex Juárez, César Yáñez y Karl Heinz Holtschmit.
    Por supuesto, quiero agradecer a mi lugar de trabajo, UNAM FES Iztacala, por permitirme en trabajar en seguridad y software libre por casi 3 años - Y espero sean muchos mas.

    Tutorial de programación en shell (bash / bourne) / Shell (bash/bourne) programming tutorial

    Written in...: 
    2002

    Tutorial (not completely finished) I gave together with Rodrigo Galladro at Congreso Nacional de Software Libre (CONSOL 2002). There are many aspects in this tutorial that are just outlined, but I hope you find it useful.
    You can grab the source LyX document; it is available also translated to HTML and as a PDF document.
    As a complement, you might be interested also in the advanced Bash tutorial outline I prepared for a talk in late 2007; it is based on Octavio Ruiz (Tacvbo)'s tutorial. It only mentions the points I went over, but still, it can be a useful compendia.

    Resumen: 

    Tutorial (no del todo terminado) que dí junto con Rodrigo Gallardo en el Congreso Nacional de Software Libre (CONSOL 2002). Hay bastantes aspectos de este tutorial que quedaron únicamente delineados, pero aún así, espero que sea de utilidad.
    Puedes bajar el documento fuente en LyX; puedes también consultarlo traducido a HTML u como un documento PDF.
    Como complemento, puede interesarte también el delineado para un tutorial de Bash avanzado que preparé para una plática a fines del 2007; está basado en el tutorial de Octavio Ruiz (Tacvbo)'s. Sólo delínea los puntos que cubrí, pero de todos modos puede ser un compendio útil.

    What is Free Software?/¿Qué es el Software Libre?

    Written in...: 
    2003

    I have given this talk on a number of places. It answers a couple of very important questions, that for many people seem to be obvious: What is Free Software? What lies behind our movement? What implications does it have?
    Of course, I try to give it a different emphasis, ellaborating on Free Knowledge, on software being an expression of science.

    Resumen: 

    Plática que he impartido en varios lugares ya que atiende a una duda que mucha gente puede dar por obvia: ¿Qué es el software libre? ¿Qué hay detrás de nuestro movimiento? ¿Qué implicaciones tiene?
    Intento, claro está, responder estas dudas dando un énfasis diferente del más común; elaboro sobre del Conocimiento Libre, y en el software como una expresión de la ciencia.