Showing posts with label Software Libre. Show all posts
Showing posts with label Software Libre. Show all posts

Tuesday, October 2, 2012

Cuenta Larga Maya y Python


Hoy el blog va a tomar un giro un poco diferente pero este post va relacionado con la carrera que curso, la Licenciatura en Historia. Llegando hoy a clase de México Prehispánico con la Profesora Carmen Molina tuvimos la oportunidad de aprender acerca de la cuenta larga Maya, un tanto complicada pero sorprendente para una civilización prehispánica o “primitiva”, que de primitiva no tiene absolutamente nada, que me hace compararla incluso con lo que hoy conocemos como código binario.

El concepto funciona de la siguiente manera.

Los Mayas usaban múltiplos de 20, de hecho un año tenia 360 días por lo que tenia 18 meses de 20 días, mas 5 días de augurios, lo cual nos da un sorprendente total de 365 días, cosa mas que fascinante, nuevamente, para una cultura que existió hace siglos en el área de la península de Yucatan y Guatemala, al igual que otros fragmentos perdidos por ahí en ese segmento.

Mientras se nos explicaba la cuenta larga me di cuenta que sacar la cantidad es un tanto complicado a mano o calculadora, puede fallar, por lo que me di a la tarea de generar un pequeño pedazo de código en Python, un lenguaje de script que no ocupa compilarse, para correr la cuenta larga y obtener la fecha en el calendario gregoriano. El código lo libero bajo la GPL y espero que le sirva a quien quiera que lo encuentre.

¡Saludos y animo que existe todavía mucho camino por recorrer!

Nota: Para usar este script se ocupa tener instalado Python2.6 o 2.7, de hecho no importa mucho la versión, pero que este disponible y listo en la maquina. El archivo puede ser guardado con el nombre que gusten e incluso aunque no se corra directo de la consola debe funcionar aunque el resultado, si se corre desde Windows, puede desaparecer una vez que se termine de hacer la suma. De igual manera se incluyo un ligero stop por medio de un raw_input para dar tiempo de analizarlo, adicionalmente los comentario explican que es cada cosa. El script puede ser copiado así como se muestra y ser pegado en un notepad o cualquier parecido y debería funcionar como tal aunque no se da ninguna garantía por aquello de problemas de compatibilidad pero con todo gusto se me puede hacer saber cualquier problema y tratare de ayudar a solucionarlo. Como nota final solo hay que salvarlo con la terminación .py para que el interprete de Python lo corra como debe ser.

El archivo puede ser nombrado como sea, en este caso lo nombre cuentalarga.py

  1. def cuenta_larga():  
  2.     print """ 
  3.     Este script calcula la cuenta larga Maya y la convierte al Gregoriano.  
  4.     Es un aproximado que da unicamente el anyo, no da mes ni dia. 
  5.     Dentro del codigo se contiene el comentario de como funciona el codigo. 
  6.     """  
  7.     baktun = input("Baktun: ")  
  8.     katun = input("Katun: ")  
  9.     tun = input("Tun: ")  
  10.     uinal = input("Uinal: ")  
  11.     kin = input("Kin: ")  
  12.     baktun = baktun*144000  
  13.     katun = katun*7200  
  14.     tun = tun*360  
  15.     uinal = uinal*20  
  16.     kin = kin  
  17.     # Las cantidades manejadas son dias, un baktun es 144000 dias, un katun es 7200,  
  18.     # un tun 360, un uinal es 20 y los kin son unidades individuales. Todas estas se  
  19.     # suman bajo la variable de gTotal para despues ser dividas entre 365, que es la  
  20.     # cantidad de dias que tiene un anyo comun, para asi generar una cantidad en   
  21.     # anyos gregorianos que despues se resta contra 3115, que es la epoca de la   
  22.     # antiguedad Maya. En teoria una vez que sale el numero si genera un numero  
  23.     # negativo, es decir marca -X este tendra el signo de menos removido y en lugar  
  24.     # de marcar d.e.C. marcara a.e.C. como debe corresponder por ser previo a la   
  25.     # epoca que nosotros demarcamos como la era Comun.  
  26.     gTotal = baktun+katun+tun+uinal+kin  
  27.     print gTotal  
  28.     gregoriano = gTotal / 365  
  29.     print gregoriano  
  30.     maya = gregoriano - 3115  
  31.     if "-" in str(maya):  
  32.         a = str(maya)  
  33.         final = a.replace("-","")  
  34.         print final, "a.C."  
  35.     else:  
  36.         print maya, "d.C."  
  37.         stop = raw_input("Presiona cualquier tecla para terminar...")  
  38.   
  39. cuenta_larga()

Sunday, September 23, 2012

La pequeña computadora que pudo


Nací en 1995, en aquellos tiempos yo era el mejor de mi estirpe y no tenia competencia y fui creado por una mano hábil, mucho mas hábil que la de la mayoría de los que hoy en día se encargan de reparar a mis hermanos.

Cuando me dieron vida fue emocionante, estaba usando lo ultimo en tecnología incluyendo el sistema operativo mas nuevo que en ese momento se encontraba en el mercado. Era tanto como una herramienta de trabajo como un centro de entretenimiento y diversión, yo lo era todo para mi dueño y así fue durante mucho tiempo. Vi como continuamente producía increíbles trabajos para la Universidad a la que el asistía, pasamos incontables horas trabajando en sus deberes y nunca le falle, jamas, y cuando había tiempo nos divertíamos por muchas mas horas sin fin, me toco ver mundos fantásticos que están mas allá de la imaginación humana, peleamos contra incontables adversidades y salimos victoriosos, tanto en cielo, mar y aire como en el espacio y el infierno, aprendimos y crecimos juntos, incluso viví el auge de lo que se conocía como el Internet, por medio del teléfono, una red miles de mis hermanos se encontraban conectados y por primera vez pudimos yo y mi dueño hablar con una infinidad de personas que incluso se encontraban al otro lado del mundo, era increíble y fantástico.

Pero todo cambio drásticamente al darse la vuelta a la la década, el siglo, el milenio, comenzó el auge increíble de las computadoras y el internet cada vez se volvía mas impresionante, pude leer todos los avances tecnológicos que se encontraban ya entre nosotros y lo que venia, era aterrador por que yo me estaba quedando atrás y no había nada que pudiera hacer por mas mantenimiento que se me proporcionara o aumentos, simplemente no podía mantenerme a la par con las maquinas que estaban saliendo al mercado y para finales del 2000 fui desconectado y no supe mas de nada.

Tiempo después recuerdo haber desaparecido en la oscuridad, no sabia cuanto tiempo había pasado ya que mi batería interna había muerto hacia tiempo y perdí la cuenta en algún punto del cual ya no tengo memoria, para reaparecer en las manos de un nuevo dueño, no sabia quien era pero tenia una mirada fija en mi y hablaba mucho acerca de darme nueva vida, que no importaba si existían maquinas mas nuevas que yo siempre habría un uso para mi aunque mi dueño original mencionaba que eso sonaba como algo trillado y que si ya no tenia utilidad que debía desecharse sin mas pensarlo, que el progreso es prioridad hoy en día y que no debían de perder un solo segundo, aquella persona que hablaba no sonaba como la persona que yo había conocido hace tiempo pero todo cambia con el curso del tiempo, incluso yo.

Antes de ser conectado otra vez pase primero por una mesa donde me limpiaron, una década de polvo volaba por los aires, me pusieron nuevas partes y cambiaron algunas de las que ya tenían por lo que parecían ser piezas mas nuevas, al menos nuevas en el contexto de la época en la que se manufacturaron. Cuando me dieron luz me encontraba algo asustado, no sabia que esperaba de mi aquella persona pero tenia confianza en que si me había arreglado y preparado era por algo, y en efecto al momento de darme luz me di cuenta que estaba en el 2005 cuando el puso la fecha manualmente. De ese punto me encontré invadido de una cantidad absurda de programas pesados, la mayoría de estos se veían inútiles o simplemente sosos, no sabia por que me ponían esta carga encima o por que se desesperaba aquella persona, solo podía hacer una parte del trabajo a la vez y me costaba bastante seguir el paso de todo lo que se me pedía, definitivamente no estaba en mi mejor momento y algo de abuso físico se hizo esperar, mi culpa no era realmente pero aquel hombre no parecía importarle.

Una vez listo, después de un día o dos, me pusieron nuevamente a la venta en un mercado horrible y oscuro, la gente que pasaba se veía interesada en comprar algo pero siempre regateaba en todo momento, ende asumí que no eran gente de mucho dinero, y paso un buen tiempo, tal vez días, para que la gente se interesara en mi pero no había compradores por lo que me volví en un juguete barato de entretenimiento y musica popular, no hacia nada mas que estar así todo el día y esperar mi hora, si es que en algún punto llegaba.

Pasaron meses y el absurdo precio que me habían dado, incluso yo estaba consciente de que era bastante alto, comenzó a bajar lentamente hasta que alguien tuvo suficiente valor, al menos yo lo considero así, para comprarme y darme uso nuevamente... aunque realmente me hubiera gustado que no fuera así. Mi nuevo propósito era simplemente el de ocio, viajar por internet, ver pornografía, bajar programas de manera ilegal, cosa que me recordaba que mi sistema operativo tampoco era legal, y llego el punto donde mi disco duro quedo tan saturado que ya no pude hacer nada mas que chillar en dolor y agonía, cosa que no pareció importarle mucho a mi actual dueño y el cual parecía interesado únicamente en abusar de mi.

Para mi poca fortuna, tal vez sea lo contrario ahora que lo pienso, alguien irrumpió en su casa y me llevo junto con algunas otras chucherías que habían por ahí, realmente creo que lo que tenia mas valor entre todo eso era yo cosa que era decir mucho. Aquel que me había robado me dio un nuevo uso del cual no había pensado antes, mi nueva tarea era llevar las cuentas de movimientos de drogas y mantener a mi dueño y a sus compañeros en contacto con otros miembros de su organización. Asi dure bastante tiempo, uno o dos años, hasta que un grupo de policías llego a desmantelar la operación y a mi me llevaron a un almacén donde me convertí en nota de evidencia y claro yo tenia toda la información de los movimientos por lo que mi disco duro se fue, algunas otras partes también de hecho, y lo que quedo de mi fue a dar a un callejón donde me quede abandonado, no por mucho tiempo, pero no para que me dieran un nuevo uso si no para desarmarme. Lo que quedo de mi era la tarjeta madre, mi cuerpo, pero ya no había nada mas, todo había sido arrancado y quede sobre una bolsa de basura en una calle donde esperaba mi ultima hora.

Nuevamente alguien tuvo la decencia de llevarme, raptarme, a este punto ya no estaba interesado en saber que es lo que seria de mi, en especial desde que me encontraba en este estado de decadencia completa.

El resultado fue bastante diferente al que esperaba.

Primero me limpiaron, de suciedad, basura, bichos muertos, cosas que no quiero describir, para después prepararme con nuevas partes, realmente nuevas y de punta, muchas de estas incluso quemaban y hacían que me sobre calentara, también mi procesador se encontraba mas caliente de lo normal pero funcionaba mas rápido, lo bueno fue que para contrarrestar todo esto mi nuevo dueño tuvo la decencia de enfriarme correctamente con varios ventiladores en un armazón bastante amplio. Me sentía renovado aunque no comprendía que querían de mi cuando yo ya tenia casi 20 años de antigüedad, lo se por que cuando me conecte a Internet nuevamente, uno bastante veloz, vi que tanto habían cambiado las cosas y cuanto tiempo había pasado desde la ultima vez, el 2012 es un mundo bastante increíble y sorprendente para mi, una computadora construida en 1995.

Mi nuevo sistema operativo era muy ligero, demasiado ligero, pero mi dueño se encargo de hacerlo de esta manera por que no ocupaba tanto de mi, o al menos esa fue mi primera impresión hasta que me toco ver por primera vez en un largo tiempo una gran cantidad de actividad, mas de la que llegue a ver con mi dueño original, y no tuve ningún problema en hacer todo lo que se pidió de mi, pude recordar viejos tiempos de hecho y eso me hizo bastante feliz todo gracias a algo conocido como software libre que proporciona exactamente lo que ocupas, no me ahoga ni me exprime pero si me da espacio para trabajar tantas cosas como necesite. Hoy en día ya no estoy en la cima pero eso no importa, mi dueño sigue cuidando de mi y me alegra saber que todavía puedo ser de alguna clase de utilidad por muy poco que sea.

The Atlantean Thrones and the Valve

I can’t sleep, again. I see them all over me, figures that look like demons, human with horns of all kinds, twisted and spiraling in differ...