Automágica: durante 2017 estoy trabajando bastante en Automágica, mi software para editar libros: Más información - Posts relacionados

Breve historia de la Cultura Hacker

Encontré en la biblioteca del programa radial Red-Handed la traducción de este ensayo de Eric Raymond. Leí el original en inglés hace unos años y me gustó mucho, dejo el link para que puedan leerlo: http://g.1asphost.com/radiored/textos/historia-cultura-hacker.html

Algunas de las personas que crecieron en la cultura de los Auténticos Programadores permanecieron en activo hasta bien entrados los 90. Seymour Cray, diseñador de la gama de supercomputadoras Cray, fue uno de los mejores. Se dice de él que, en cierta ocasión, introdujo de principio a fin un sistema operativo de su invención en una de sus computadoras, usando los conmutadores de su panel de control. En octal. Sin un solo error. Y funcionó.

...

El MIT, aunque hizo uso de la PDP-10 como todo el mundo, tomó un camino ligeramente diferente; rechazó por completo el software de DEC para ella y construyó su propio sistema operativo, el legendario ITS, cuyo significado, Sistema de Tiempo-compartido Incompatible, da una pista bastante buena sobre la actitud de los hackers del MIT.

...

Ken Thompson echó de menos el entorno Multics y comenzó a realizar pruebas, implementando una mezcla de sus características y algunas ideas propias en una vieja DEC PDP-7 rescatada de la basura.

Otro hacker llamado Dennis Ritchie inventó un nuevo lenguaje llamado C para usarlo en el embrionario Unix de Thompson. Al igual que Unix, C fue diseñado para ser ameno, flexible y no imponer límites.

...

Así estaban las cosas en 1980: tres culturas cuyos bordes se solapaban pero estaban agrupadas en torno a tecnologías muy distintas. La cultura de las PDP-10 y ARPANET, ligada a LISP, a MACRO, a TOPS-10, a ITS y al SAIL; la gente de Unix y C con sus PDP-11, sus VAXen y sus conexiones telefónicas rudimentarias, y una anárquica horda de entusiastas de los primeros microordenadores, decididos a acercar el potencial de las computadoras al pueblo.


de regreso en la Internet

Después de 3 semanas de estar off-line hoy volví a la internet :-) Es bueno estar de vuelta. Espero en estos días postear algunas cosas que tenía planeado antes de desconectarme.


Compilando el primer ping

En el año 1983, Mike Muuss , codificó en una tarde y compiló sobre 4.2a BSD UNIX la primera versión del programa ping (hoy este programa está prensente en practicamente todas las computadoras). Hoy, 22 años más tarde, voy a compilar su código en mi máquina (i686) usando el sistema operativo Debian GNU/Linux.

En la web se proveen lo archivos necesarios en el archivo ping.shar, del cual se pueden obtener los arcihvos ejecutando sh ping.shar. Para poder compilarlo hice algunas modificaciones en Makefile y en ping.c.

El acceso a los códigos fuente de los programas que uno usa es algo muy útil, ya que le permite a uno conocer realmente como funcionan las cosas y aprender.


If you don't... you SHOULD: 3 Lecturas Recomendadas

1) Nanni Search: aprenda prolog programando un juego: http://www.amzi.com/AdventureInProlog/a1start.htm.

2) Beating de Avegarages: la historia de dos nerds que triunfan en los negocios en internet programando en Lisp, un lenguaje de programación desconocido en la industria pero estrella los laboratorios de IA: http://www.paulgraham.com/avg.html.

3) SQL for web nerds: aprenda SQL de la mano del delirante Philip Greenspun del MIT: http://philip.greenspun.com/sql/.


El Capitán Julio César

Estos días me estuvo visitando mi amigo Joel Lorenzatti, estudia filosofía en la Universidad Nacional de Rosario y vino a exponer un trabajo en unas jornadas que ser realizaron aca en Santa Fe.

Le interesa la lógica, así que le estuve mostrando el lenguaje de programación Prolog, y escarbando entre algunos códigos que escribí, encontré uno muy lindo llamado El Capitán Julio César y es un ejercicio del tipo de encontrar múltiples caminos dadas algunas condiciones.

Dejo el código fuente para que quien quiera lo pruebe.



¿Es el software un arte?

Con esta pregunta empieza el primer capítulo de un libro llamado Programando como es debido, es parte de una colección publicada a mediados de los 80' llamada Biblioteca Básica Informática. La primera vez que me crucé con estos libros estaba en la escuela secundaria, el padre de un amigo los tenía y también estaban en la biblioteca de mi escuela. Era entretenido hojearlos, una especie de paleontología de la informática :-)

En Santa Fe, en una casa de canje de libros en el centro (25 de Mayo, entre Crespo e Hipólito Irigoyen) pueden conseguirse algunos de los libros de esta colección por $2. Tengo algunos en mi biblioteca. Mientras estudiábamos, un amigo tomó uno y empezó a leer. Es muy interesante prestar atención, sobre todo en los tiempos que corren, a lo que se pensaba hace 20 años:

"¿Es el software un arte? Esta pregunta, realmente crucial, afecta hoy en día no sólo a los usuarios, sino también a una gran cantidad de empresas interesadas en transformar esta actividad artesanal en indutria. The art of programming: así se titula el talismán para el programador, una monumental enciclopedia del Software, escrita por Knuth, uno de los genios en esta materia. En sus muchos tomos el autor pasa lista, explicándolos y clasificándolos, a la mayor parte de los tipos de algoritmos usados en la programación. Muchas veces ocurre que principiantes y semiexpertos copian un procedimiento de una revista o un libro, que a su vez, está recogido de esta fuente sagrada del software.

No hay que escandalizarse por ello. Además, auqneu esto sirva desde un punto de vista general. Es muy difícil, cuando se tiene un problema particular, encontrar una receta adecuada precisamente para nuestro caso. Quizá exista en algún sitio (casi está ya todo inventado en este mundo), pero ¿dónde? En estos casos no queda más remedio que arreglárselas solos. Por desgracia, a menudo surge la inquietante pregunta: si, estoy dispuesto, ¿por dónde empiezo?

En la programación, efectivamente, hay ocasiones en las que la flexibilidad y la libertad de acción se traducen en tragedia, peor incluso que la del célebre asno que, puesto delante de dos montones de heno, se murió de hambre por no saber por cuál decidirse. En el caso del software, más que de dilema se debería hablar de multidilemas (dilemas super ramificados); las reglas (sentencias, bucles, GOTO) en realidad son pocas, pero ¿cómo se pueden combinar adecuadamente? Que nosotros sepamos, hasta ahora nadie ha conseguido hacer otra cosa que no sea proporcionar ejemplos, recomendando que, en casos semejantes, se procesa "por analogía" [...]

En definitiva, ¿quiere todo esto decir que el software es un arte? Según nuestro punto de vista sí, a pesar de los desesperados esfuerzos para producirlo de manera, incluso, "automática", mediante los más dispares métodos [...]

En los casos inéditos o, lo que es lo mismo, en nuestros problemas reales, estamos otra vez como al principio: la pantalla (o la impresora) permanecen inactivas: necesitan una idea, lo mismo que nos ocurre a nosotros.

Como muchos ya saben, la idea de partida, ésa que puede llegar mediante la intuición creativa, por obra y gracia de la meditación trascendental, o por cualquier otro medio por raro que pueda parecernos, se llama algoritmo, término que deriva del nombre del matemático árabe Al-Khuwarizmi. Un algoritmo es un conjunto de reglas o formas de actuar para la resolución de un problema.

[...]

Los especialistas ofrecen infinidad de variantes de este esquema (N del R: algoritmos para pensar algoritmos), pero en todas ellas hay un punto en común: el comiendo es buscar un Algoritmos Resolutorio, y éste es el punto más delicado de todo el proceso.

Sin embargo, no queremos desanimar a los que se acercan por primera vez a un ordenador. El sogware es un arte, pero también se puede aprender; para las personas con fuerza de voluntad se trata de un desafío exitante y estimulante."


Fourier 2: new feature!

Fourier es una pequeña aplicación que escribí cuando estudiaba Series de Fourier en la materia Comunicaciones de la facultad. hasta hoy sus principales características incluían: gráficas ondas cuadradas, trenes de pulsos y dientes de sierra; más la posibilidad de solapar gráficas para compararlas.

Hoy publiqué en la casa de Fouier una versión mejorada que perminte, luego de graficar una señal compuesta por N armónicas, descomponerla en las N armónicas senoidales que la forman, y luego recomponer.


El que tendría que haber sido mi Primer Post

Escarbando el archivo histórico de los blogs de algunas personas, uno ve que el post más viejo es uno titulado Primer Post :-) Bien, este sería mi Primer Post si no hubiese posteado nada antes ;-)

Me acostubré al término post hace mucho tiempo ya, es un término lindo y como todos, tiene su historia. Se remonta a los tiempos de los reyes, las princesas y los dragones. En la plaza del poblado había un gran poste, y cuando el Rey quería comunicarle algo al pueblo, uno de sus servidores clavaba un papel en el poste, posteaba la noticia.

Una de las cosas que más me gustan de Internet es que uno puede escribir y todos leer, por eso siempre me pareció muy atractiva la idea de llevar un web log. Espero sea entretenido y mis visitantes se entretengan leyendo tanto como espero hacerlo yo escribiendo.


El Derecho a Leer

Este cuento lo leí por primera vez hace algunos años ya. El autor es rms, fundador del proyecto GNU.

Este artículo fue publicado en el número de febrero de 1997 de Communications of the ACM (Vol. 40, Número 2).

(de "El camino a Tycho", una colección de artículos sobre los antecedentes de la Revolución Lunar, publicado en Luna City en 2096)

Para Dan Halbert el camino a Tycho comenzó en la universidad, cuando Lissa Lenz le pidió prestado su ordenador. El de ella se había estropeado, y a menos que pudiese usar otro reprobaría su proyecto de fin de trimestre. No había nadie a quien se atreviera a pedírselo, excepto Dan.

Esto puso a Dan en un dilema. Tenía que ayudarle, pero si le prestaba su ordenador ella podría leer sus libros. Dejando de lado el riesgo de ir a la cárcel durante muchos años por dejar a otra persona leer sus libros, la simple idea le sorprendió al principio. Como a todo el mundo, se le había enseñado desde la escuela primaria que compartir libros era algo malo y desagradable, algo que sólo los piratas harían.

Además, no había muchas posibilidades de que la SPA (la "Software Protection Authority", o Autoridad de Protección del Software), no lo descubriese. En sus clases de programación Dan había aprendido que cada libro tenía un control de copyright que informaba de cuándo y dónde fue leído, y quién lo leía, a la oficina central de licencias (usaban esa información para descubrir piratas, pero también para vender perfiles personales a otras compañías). La próxima vez que su ordenador se conectase a la red, la oficina central de licencias lo descubriría. Él, como propietario del ordenador, recibiría el castigo más duro, por no tomar las medidas adecuadas para evitar el delito.

Lissa no necesariamente pretendería leer sus libros. Probablemente lo único que ella necesitaba era escribir su proyecto. Pero Dan sabía que ella provenía de una familia de clase media que a duras penas se podía permitir pagar la matrícula, sin pensar en las tasas de lectura. Leer sus libros podía ser la su única forma de terminar la carrera. Entendía la situación; él mismo había pedido un préstamo para pagar por los artículos de investigación que leía (el 10% de ese dinero iba a parar a los autores de los artículos, y como Dan pretendía hacer carrera en la universidad, esperaba que sus artículos de investigación, en caso de ser citados frecuentemente, le dieran los suficientes beneficios como para pagar el crédito).

Más tarde, Dan descubrió que hubo un tiempo en el que todo el mundo podía ir a una biblioteca y leer artículos, incluso libros, sin tener que pagar. Había investigadores que podían leer miles de páginas sin necesidad de becas de biblioteca. Pero desde los años 90 del siglo anterior, tanto las editoriales comerciales, como las no comerciales, habían empezado a cobrar por el acceso a los artículos. En el 2047, las bibliotecas de acceso público eran sólo un vago recuerdo.

Había formas de evitar los controles de la SPA y la oficina central de licencias, pero también eran ilegales. Dan había tenido un compañero de su clase de programación, Frank Martucci, que consiguió un depurador ilegal, y lo usaba para evitar el control de copyright de los libros. Pero se lo contó a demasiados amigos, y uno de ellos lo denunció a la SPA a cambio de una recompensa (era fácil tentar, para traicionar a sus amigos, a estudiantes con grandes deudas). En 2047 Frank estaba en la cárcel; pero no por pirateo, sino por tener un depurador.

Dan supo más tarde que hubo un tiempo en el que cualquiera podía tener un depurador. Incluso había depuradores libremente disponibles en la red. Pero los usuarios normales empezaron a usarlos para saltarse los controles de copyright, y finalmente un juez dictaminó que ese se había convertido en su uso práctico. Eso quería decir que los depuradores eran ilegales y los programadores que los habían escrito fueron a parar a la cárcel.

Obviamente, los programadores necesitan depuradores, pero en el 2047 sólo había copias numeradas de los depuradores comerciales, y sólo disponibles para programadores oficialmente autorizados. El depurador que Dan había usado en sus clases de programación estaba detrás de un cortafuegos para que sólo se pudiese utilizar en los ejercicios de clase.

También se podía saltar el control de copyright instalando un núcleo del sistema modificado. Dan llegó a saber que hacia el cambio de siglo había habido núcleos libres, incluso sistemas operativos completos. Pero ahora no sólo eran ilegales, como los depuradores: no se podía instalar sin saber la clave de root del ordenador, cosa que ni el FBI ni el servicio técnico de Microsoft te darían.

Dan llegó a la conclusión de que simplemente no podía dejarle su ordenador a Lissa. Pero no podía negarse a ayudarle, porque estaba enamorado de ella. Cada oportunidad de hablar con ella era algo maravilloso. Y el hecho de que ella le hubiese pedido ayuda podría significar que sentía lo mismo por él.

Dan resolvió el dilema haciendo algo incluso más increíble, le dejó el ordenador, y le dijo su clave. De esta forma, si Lissa leía sus libros, la oficina central de licencias pensaría que quien estaba leyendo era él. Seguía siendo un delito, pero la SPA no lo detectaría automáticamente. Sólo podrían saberlo si Lissa lo denunciaba.

Si la universidad descubriese que le había dado su clave a Lissa significaría la expulsión para los dos, independientemente de para qué hubiese usado ella la clave. La política de la universidad era que cualquier interferencia con sus métodos de control sobre el uso de los ordenadores era motivo para una acción disciplinaria. No importaba si se hubiera hecho o no algún daño, el delito era el hecho de dificultar el control. Se asumía que esto significaba que se estaba haciendo algo prohibido, y no necesitaban saber qué.

En general los estudiantes no eran expulsados por eso -no directamente-. En su lugar se les prohibía el acceso a los ordenadores de la universidad, lo que inevitablemente significaría reprobar todas sus asignaturas.

Dan supo más tarde que ese tipo de políticas en la universidad empezaron en la década de 1980, cuando los estudiantes comenzaron a usar ordenadores masivamente. Antes de eso, las universidades tenían una actitud diferente: sólo se penalizaban las actividades dañinas, no las que eran meramente sospechosas.

Lissa no denunció a Dan a la SPA. Su decisión de ayudarle llevó a que se casasen, y también a que cuestionasen lo que les habían enseñado cuando eran niños sobre el pirateo. Empezaron a leer sobre la historia del copyright, sobre la Unión Soviética y sus restricciones sobre las copias, e incluso sobre la constitución original de los Estados Unidos. Se mudaron a Luna, donde se encontraron con otros que de la misma forma intentaban librarse del largo brazo de la SPA. Cuando empezó el Levantamiento de Tycho en 2062, el derecho universal a leer se convirtió en uno de sus objetivos fundamentales.

Fuente:

http://www.gnu.org/philosophy/right-to-read.html