Wednesday, June 1, 2016

FiDiSoHL Chilpancingo 2016

Desde Unix Hasta Linux
Para Terminar con Python
Fiesta de Difusión del Software
y Hardware Libre
Chilpancingo, 2016
Eduardo Cantoral
Department of Mathematics and Physics
Waubonsee Community College
Wednesday 1 st June, 2016

Resumen: Presento una serie de ideas para describir mi camino en la Industria del
Software. Empieza en Lucent en 1999, y aún no termina. Para una descripción más profesional consulte mi CV en:


Ha sido un camino muy interesante, que produce mi programa actual de
crear Máquinas de Información. Empecemos con una cronología.

• Primer curso de Unix: Profesor Gerardo Cisneros Stoianowski en el
Departamento de Aplicación de Microcomputadoras de la UAP. Principios de los 90s.

• Primer empleo de Ingeniero de Software: Lucent de 1999 a 2001

• Último empleo de probador de software: CME Group, antes Chicago
Mercantile Exchange, de 2013 a 2014.

• Primer proyecto independiente de desarrollo de software: Máquinas de
Información, de 2014 hasta ahora.

Conjuntamente con esta carrera, digamos industrial, tengo la parte académica
que empieza en los 60s.

Mi interés en la computación empezó en la ciudad de México. Recuerdo
como a veces que pasaba frente a las oficinas de la IBM en Insurgentes Sur,
en camino a entrenar con las ligas menores de los Pumas de la UNAM, me
imaginaba trabajando con computadoras.

Tomé mi primer curso de programación en la ESIME con el lenguaje
Fortran. Supe que Gerardo Cisneros produjo música con las computadoras
del Centro de Cómputo.

La primera vez que tuve una máquina en mi escritorio fue a principios de
los 80s en la entonces, Escuela de Ciencias Físico Matemáticas de la UAP.
Aunque esa máquina de escritorio no era tan cara como la estación de
trabajo de SUN Microsystems, en la que aprendí UNIX, de todos modos no
hubiera sido tan accesible para mı́ con mi sueldo. Me la podía llevar a mi casa
cerca de la UAP. En colaboración con mis amigos Germán Luna, y Eduardo
Piña, publiqué los resultados de nuestra investigación.

Mi amigo Arturo Fernández Téllez, me enseñó UNIX en la práctica científica
en Fermilab a mediados de los 90s.

Mi amigo desde la escuela de graduados de la Universidad de California en Santa Bárbara Don Summers inventó la primera Máquina de Información que conocí en mi vida.

Llamo a esta máquina E791, pues ese era el experimento en Fermilab, en
el que colaboramos Don, Arturo, y yo.

Como las máquinas de vapor, uno suministra energía de un tipo, y obtiene
otro tipo de energía. En el caso de las equivalentes de información, descubiertas por mi amigo, uno introduce información de un tipo, y obtiene otro tipo de información.

Esta máquina E791, tomó Terabytes de información de Física de Quarks
Charm, y produjo un subconjunto mucho menor de información que ya puede
analizar un físico.

Podemos llamar a esta máquina un filtro de información. Don fue una de las primeras personas en el mundo en usar el protocolo TCP/IP, ya que Santa Bárbara se comunicaba con el laboratorio de Stanford, con la red instalada por el Departamento de Defensa de los Estados Unidos, en los principios de los 70s.

Nadie sabía si la máquina iba a funcionar; pero fue un éxito que produjo una gran cantidad de publicaciones de la Física del Charm. Lo que se le ocurrió a Don, fue conectar un grupo de PCs con TCP/IP, pues la Internet bajó los precios de ese equipo, en los principios de los 90s, cuando corrió el experimento E791.

Después del trabajo académico en la UAP, entré a Lucent como Ingeniero
de Software.

A través de Roberto Vargas, a quien conocí en Lucent, entré al CME
Group.

Capítulo  1
Lucent



La Máquina de Información de Lucent, se llama 5ESS. Su función es
conectar los dos extremos de una conversación telefónica sin necesidad de
operadores. Otra vez: Entra Información, y Sale Información.

Este llamado relevador o switch telefónico, no usa PCs, sino estaciones
de trabajo, como las de Sun Microsystems. Es esencial en esta aplicación
que no haya desconexiones, por lo que el costo es mayor. Sin embargo se
usan protocolos de comunicación similares, inventados por Lucent. Además
se inventó el sistema operativo UNIX, escrito con el lenguaje C, justo para
esta aplicación de telefonía digital.

Ingresé al grupo Robust Process Automation (RPA), inventado por mi
amigo Joe Lennert. La idea que tuvo Joe, fue observar como un operador
del 5ESS hacı́a su trabajo, y diseñó una máquina virtual usando el Shell
inventado por David Korn, para automatizar ese trabajo.

El sistema funcionó tan bien que mandó varias patentes, tuve la fortuna
de participar en el trabajo que llevó a la patente Computer file transmission

Para no confundir esta simple narración, una cosa es el software del 5ESS,
y otra, el software usado para manejar este monstruo de más de medio millón
de líneas de código. El grupo RPA estaba encargado de administrar el primer
software, usando el segundo.

Las ideas de Joe permitieron construir un “sistema operativo”, sobre el
Unix disponible en las estaciones de trabajo Sun, en las que trabajábamos.
Esta es la Máquina de Información, que usaré en mi aplicación mencionada al final de esta plática.

Como parte de mi trabajo en Lucent, mi supervisora me encargó investigar la industria de buscadores que apenas empezaba. Obviamente no me di cuenta del papel esencial que jugaría Google y su navegador Chrome. El mismo Eric Raymond no se dio cuenta cuando escribió "La Catedral y el Bazar" a principios de este siglo veintiuno. Claramente Google inventó otra Máquina de Información.

Después de Lucent, el siguiente trabajo con software del que escribo aquí, fue en el llamado CME Group.

Capítulo  2
CME Group


Si bien en Lucent hice trabajo de desarrollador de software, como indica
el tı́tulo de mi plática, en el grupo financiero, que antes se llamaba Chicago
Mercantile Exchange, y ahora CME Group, desarrollé trabajo de Software
Tester, o como podemos decir en español: Verificador de Software.

El objetivo del grupo al que ingresé era verificar el software de Falcon.
Esta Máquina de Información, fue escrita por un joven en Nueva York, que
notó la ineficiencia de la Bolsa de Valores allá. Se tiene un llamado libro,
donde están todas las ofertas de compra y de venta de acciones, los operadores, de forma manual, escribían las transacciones hechas.

Ya cuando entré a CME, el software habı́a avanzado, y a mı́ me tocó
verificar que el tipo de transacciones que se intentaba realizar, realmente
sucedía.

Por ejemplo, quieren comprar acciones de Pemex para muchos años.
Antes de la privatización de esa empresa no se podía hacer éso. Ahora ya es
posible, y es necesario cambiar las instrucciones que se le dan a un emulador
de Falcon, para realizar tal contrato. Fui el primero que hizo una prueba con
muchos meses, de ese tipo.

CME usa Red Hat Linux y servidores instalados por Oracle. También emplea egresados de las universidades de la India, que conocen Linux, pues este sistema operativo es usado mundialmente. Ustedes en Guerrero pueden saber tanto o más que los amigos hindúes.

Capítulo 3
Python

Finalmente quiero hablarles de mi futuro, y mi regreso a la academia en
la Universidad Autónoma de Guerrero.

En Lucent, estuve en el Comité Organizador del “9th Software Symposium” en abril del año 2000.

Durante el evento tuve la fortuna de conocer a Eric S. Raymond, me
encargaron su alojamiento en un hotel cercano a la sede del Simposio, después
de recogerlo del aeropuerto O’Hare de Chicago. Fue Raymond quien en
una plática con David Korn, nos invitó a los presentes a que aprendiéramos
Python, por su carácter interactivo, y su organización en el llamado análisis

Como indico arriba en Fermilab usé la primera, en Lucent usé la segunda
Máquina de Información en mi vida. En CME usé la tercera. Ahora estoy
trabajando en mi contribución en esta serie de máquinas.

Pueden leer algunas ideas en el sitio Hands: Pen and Tablet Project.

Algunas de las fechas indicadas ahí ya son obsoletas.

El objetivo de este proyecto es diseñar y construir una pluma inteligente.

Para terminar mi plática, quiero expresarles lo que he aprendido después
de estos casi treinta años.

Los sindicatos son necesarios para desarrollar software. Si no hay seguridad en el empleo, no se pueden emprender las investigaciones y desarrollos necesarios para construir estas máquinas. En ninguno de los dos lugares con fines de lucro aquí citados, tuve las condiciones para pensar con más cuidado, lo que se estaba haciendo, y poder avanzar más eficientemente. Perdí la oportunidad de realizar en las empresas, el trabajo que estoy realizando ya que estoy jubilado.

En conclusión pues, después de varios años de experiencia, y de la observación de la necesidad de conectarse para afrontar los problemas colectivos, creo lo siguiente.

Actualmente hay herramientas disponibles que requieren atención del
usuario. Los costos van desde dinero a tiempo, y en ocasiones los dos. En
ese sentido la situación que nos interesa en esta Fiesta, no es tan diferente
de lo que se hacía antes. Algunas ideas obtenidas de la época descrita aquí,
es decir de 1990 a la fecha, son:

• Mayor libertad para crear
• Necesidad de conectarse
• Énfasis en la autonomía del aprendiz

Los invito a unirse a este gran esfuerzo mundial, que está cambiando las
capacidades colectivas de hombres y mujeres en todos lados.

Gracias. Están todos invitados a mi esfuerzo para crear una pluma inteligente. En particular quiero agradecer a Joel Torres Leyva, por la iniciativa de auspiciar eventos como este por varios años ya. Como colaborador de Hands: The Pen and Tablet Project, quiero agradecer a José Soto Pérez, además de la magnífica traducción de la nota de Eric Raymond. La Catedral y el Bazar.

En este esfuerzo debemos ver que el pasado es fijo, pero el futuro incierto. Existen leyes naturales que nos permiten mandar un artefacto casi fuera del Sistema Solar, me refiero al Pioneer 10. Sin embargo no sé como predecir si Google Chrome seguirá siendo el buscador más usado en todo el mundo.

Sin embargo creo que si mis esfuerzos no llevan a inventar y construir una pluma inteligente, de todos modos se hará realidad. Los relojes de Apple no han sido muy exitosos hasta ahora, pero espero que las tabletas, los teléfonos, y las plumas, tendrán cada vez más circuitos electrónicos.

Hasta ahora recuerdo que empecé mis estudios como Ingeniero en Comunicaciones y Electrónica de la Escuela Superior de Ingeniería Mecánica y Eléctrica, del Instituto Politécnico Nacional.

Habrá una pluma inteligente con circuitos integrados.

Presentación:
https://drive.google.com/file/d/0ByH64cyuNreRWGhLUTdYc01ENjg/view?usp=sharing

Después de la plática se me quedaron las siguientes notas en el tintero.

El trabajo en RPA que eventualmente llevó a una patente a mi nombre y de mis amigos se refiere a paquetes. Lo menciono al principio de mis videos, pero no lo explico en ninguno. Lo haré aquí.

Cada video era de un minuto y fracción. En total subí trece o catorce. El primero está en inglés porque es el idioma que hablamos mi mujer y yo, que somos los únicos en la casa. Ahí por el octavo perdí la cuenta. Ahora les explico como la patente resuelve ese problema.

Se rompe un archivo en pedazos, o paquetes, y se enumeran. Al final al recibirse, la máquina virtual que funciona en los dos lados de la comunicación, los pone en el orden correcto. Si la línea se llega a desconectar, de todos modos se puede poner todo correctamente. Me gané mil dólares por ese trabajo, además de mi sueldo. Más bien los mil dólares eran para ceder los derechos a la empresa, Lucent Technologies.

El trabajo en CME es en Linux porque la gente de finanzas no quiere pagar por software privativo, por la misma razón traen trabajadores desde la India, para pagar menos. El diseño de Falcon lo patentó una burócrata del gobierno, que se dio cuenta que el muchacho de Nueva York no había patentado su trabajo.

Google usa la arquitectura de Don Summers, sin pagarle un quinto, porque Don no patentó su Máquina de Información.

Los del 1% se roban lo más que pueden de los del 99%.


Thursday, September 17, 2015

The HandsBook: PTP

In these early stages of the project, a book was started to better communicate and develop it.

Table of Contents:


  • Introduction: From Motion to Notion 
  • Art as a prerequisite of STEM fields
  • Inner conversations lead to pseudo-code
  • Activities which end up in final programs.
  • Conclusion
Description

The Pen and Tablet Project (PTP) uses the Embodied Cognition philosophy. Concepts do not fall down from the sky, they enter the brain through the senses. Not only that, in the PTP, we emphasize the use of hands to direct neuronal connections, and the planned hand activities that lead to these brain structures.

At an anecdotal level, I can report my children's homeschooling activities during the past thirty years. The oldest one listened to a Fairy Tale tape at age three, and went ahead to produce a negative of it. That is, the bad witch became the good witch, and so on. The work was intense, listening to the tape several times, and then taping the new version. The younger one spent hours moving toys on the floor, and videotaping scenes one at a time, using stop motion. Thus developing the important notion of discrete steps. Eventually during high school, he did well in a programming class using Java.

Inner conversations do occur. Lev Vygotsky discovered the role of society in directing the child to eventually have full fledged inner conversations. The mentor leads the learner to pseudo-code.

At a later stage, once structured, computer languages are mastered, the student run final programs through their Pen and Tablet devices at servers in the Cloud.

This book presents work done over more than thirty years now. This is the time to put down on paper the results.  Based on hypotheses, more work is proposed to further the aims of the PTP. Central ideas of this work are the reality of Information (Jacob Bekenstein), and Knowledge (David Deutsch).

Thursday, September 3, 2015

From OLPC to Computer Clusters: PTP

Hands: Pen and Tablet Project (PTP) is a continuation of work done in Chilpancingo, Guerrero, Mexico, at CIMATE.

There are several threads in the work. One is the use of Open Source, hardware, and software, and another is to delve into Mathematics Education. Professor Nicholas Negroponte, started the visionary One Laptop per Child (OLPC) project. As I remember at that moment, there were no affordable  Asus computers for the Third World. Guerrero is one of the poorest states in Mexico. We used Sugar on a stick. Professor Negroponte spearheaded the birth of affordable computers. Thin Clients (Smart Phones), and Fat Servers (PC clusters).

There are two concurrent development at play here. Clusters and portable computing. Now the portable is already moving into the wearable; one can envision a Smart Pen, which will revolutionize the interaction with clusters of computers, better known as The Cloud.

Don Summers, my friend  from UCSB worked in experiment E791 at Fermilab, which I joined in 1994. The Experimental High Energy Physics Group of UCSB, even since 1973 , when I got there, already used the Internet, to communicate with the Stanford Linear Accelerator Center (SLAC) laboratory: from Santa Barbara to Menlo Park. Don used TCP/IP since then. By the time he got to Fermilab he was an expert in that communication protocol. E791 collected 20 Terabytes, of data. The group decided to pursue, at least, two lines of approach, to build a supercomputer, or to connect PCs already in the market with TCP/IP. Professor Summers, succeeded in the second approach, saving the collaboration a big expense.

Nowadays Google, and CME Group, at least, use this invention. Cheap Supercomputers.

Hands (PTP) is a project connecting, as much as possible, The Cloud, with the Smart Pen. The PTP starts with the hypothesis, that we develop our abstract abilities, with concrete hand gestures, and manipulations. From Motion to Notion. Young people first draw on an electronic tablet, with an electronic pen, like the ones from Wacom.  Then use Turtle Geometry, by Hal Abelson, until the concept of breaking down a task in steps, is constructed in the nervous system.

The PTP is just starting.

Thursday, August 20, 2015

Hello World!

This "Hands" space has the purpose to lead you from hand motions to programming notions.

There is an Origami blog on the list to the right.

Here you can find a tutorial by Hongyi Wan on Origami Fractal Flower.

Using time lapse, Mr. Wan takes us through the steps in a different time scale, increasing our power.

The way mathematical abstractions are created, is through the motion of our hands. Since we are in pre-school, our elders take us through a fun series of games, to control our hands, what is called  motor coordination.

At the end, I want to take you to computer programming.

Here is a simple Hello World! program in Python.

Python 2.7.9 (default, Apr  2 2015, 15:33:21)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print('Hello World!')
Hello World!
>>>