Ir al contenido principal

Ralsina.Me — El sitio web de Roberto Alsina

Mi primer código python

En 1996 era in­mi­nen­te el año de Li­nux en el es­cri­to­rio, y esa fie­bre es­ta­ba im­pul­sa­da por una de las me­jo­res apli­ca­cio­nes open sour­ce de la épo­ca: Ly­X.

LyX era (es) al­go así co­mo un pro­ce­sa­dor de tex­to don­de uno es­cri­bía y ge­ne­ra­ba La­TeX, que des­pués pro­du­cía otra co­sa con la que uno im­pri­mía. Pe­ro me voy por las ra­ma­s, LyX es­ta­ba bue­no por­que usa­ba uno de los pri­me­ros toolki­ts bue­nos y li­bres: XFor­ms.

Bue­no, en rea­li­dad no era li­bre, por­que era só­lo pa­ra uso no co­mer­cia­l.

Y no era tan bue­no tam­po­co, pe­ro lo es­tá­ba­mos com­pa­ran­do con Mo­tif así que era mu­cho más li­bre y mu­cho me­jor que esa co­sa.

De pa­so: el úl­ti­mo re­lea­se de XFor­ms es de agos­to del 2009.

En ese mo­men­to, un yo de 25 años es­ta­ba ena­mo­ra­do de Py­thon 1.3. Así lo des­cri­bí:

Python 1.3

It's a beau­ti­ful ,free, lan­gua­ge. Get it from ftp://­ftp.­p­y­tho­n.org http://www.­p­y­tho­n.org

Sí, Py­thon 1,3. En­ton­ce­s, yo que­ría usar es­te toolkit en C que usa­ba LyX y es­te lin­do len­gua­je que es­ta­ba apren­dien­do, y que­ría usar las dos co­sas al mis­mo tiem­po.

Co­rrí (no ca­mi­né) has­ta mi fiel Sla­ckwa­re 3.0 ELF en mi 486­DX2 y em­pe­cé a ha­ckea­r. En un fin de se­ma­na te­nía al­go que an­da­ba.

In­clu­si­ve em­pe­cé a es­cri­bir el san­to grial de las apli­ca­cio­nes de es­cri­to­rio, una ver­sión GUI de Pi­ne, usan­do py­thon y su mó­du­lo IMAP (p­y­thon mai­le­r, o Py­M):

//ralsina.me/static/im1.jpg
//ralsina.me/static/im2.jpg

Li­be­ré la ver­sión 0.1 al­pha el 13 de ma­yo de 1996... y unos me­ses más tar­de Ma­tthias Ettri­ch em­pe­zó KDE, en­contré Qt y nun­ca más pen­sé en XFor­ms.

Has­ta es­te me­s.

Por mo­ti­vos que no vie­nen al ca­so, men­cio­né PyM en la lis­ta de co­rreo de PyAr el otro día y... bue­no, fun­cio­na­ría to­da­vía py­x­for­ms?

Y sí, fun­cio­na!

Me ba­jé los fuen­tes de py­x­for­ms-0.1-al­pha de al­gun lu­gar de la in­ter­ne­t, ins­ta­lé XFor­ms 1.0.9s­p2 (sí, el re­lea­se de ha­ce tres me­s­es), por su­pues­to que ya te­nía py­thon 2.6.4 ins­ta­la­do, hi­ce un se­tu­p.­p­y, edi­té 10 lí­neas de có­di­go y...

im1

Sí, fun­cio­na. Se pue­de ba­jar es­ta ver­sión 0.2 (nom­bre có­di­go "C­thulhu was he­re") aquí ape­nas 13 años des­pués de la 0.1.

No, no en­tien­do las es­qui­nas re­don­dea­das ex­tra­ña­s, ni por­qué el cur­sor se ve ra­ro y vie­jo cuan­do en­tra a las ven­ta­nas de la apli­ca­ció­n.

Es MUY chi­qui­to y rá­pi­do, eso sí.

Ho­nes­ta­men­te, es útil pa­ra al­guien? No creo. Me sor­pren­de que al­go que es­cri­bí en 1996 to­da­vía fun­cio­ne? Mu­cho­!.

Propaganda para los alérgicos a la matemática

No es que sean nú­me­ros di­fí­ci­le­s, pa­ra na­da, son sen­ci­lli­to­s, pe­ro pen­se­mos es­te:

Frá­ve­ga tie­ne un avi­so que en no­viem­bre por un día to­dos los elec­tro­do­més­ti­cos y de­más SON GRA­TIS.

¡Es cier­to! Por un día en no­viem­bre, no te co­bran un pe­so por na­da. To­do tie­ne un pre­cio de $0.

Por su­pues­to no sa­be­mos que día es. Se de­ci­de al azar des­pués de fin de me­s.

Y... ok, no te de­vuel­ven la pla­ta, te dan un va­le por el mis­mo mon­to, a usar en Frá­ve­ga.

En­ton­ce­s, aun­que pa­re­ce una pro­mo­ción enor­me du­do que Frá­ve­ga gas­te al­go de di­ne­ro en ella, ex­cep­to lo de im­pri­mir los car­te­le­s.

¿Cuán­to cues­ta?

Asu­mien­do un día al aza­r, y que es­ta cam­pa­ñs no atrae ven­tas nue­vas es 1/30 de las ven­tas men­sua­le­s.

Y co­mo en vez de di­ne­ro te dan cré­di­to a usar en Frá­ve­ga, en rea­li­dad es un "2­x1". Gas­tás en no­viem­bre, ob­te­nés el se­gun­do "gra­tis" en di­ciem­bre.

En­ton­ce­s, lo que real­men­te pa­sa es que 30 per­so­nas gas­tan, po­ne­le, $1000 en un hor­no, y Frá­ve­ga tie­ne que dar­les 31 hor­no­s.

Es de­ci­r, que es el equi­va­len­te a un des­cuen­to del 3.33%. O sea, ven­der el horno a $967.67.

¿Qué? ¿Un des­cuen­to del 3.33% no te sue­na tan in­creí­ble? ¡Por su­pues­to que no! Se apro­ve­chan de que la ma­te­má­ti­ca no es in­tui­ti­va.

Siem­pre hay que acor­dar­se: cuan­do veas nú­me­ros en un avi­so, es pa­ra con­ven­cer­te de com­pra­r. La ma­yo­ría de las ve­ce­s, no es tan buen ne­go­cio co­mo pa­re­ce. Es­te es ex­tra­or­di­na­rio por­que es muy dis­tin­to "to­do gra­tis por un día!" de "un 3.33% de des­cuen­to por un me­s!"

De pa­so, el cos­to pa­ra Frá­ve­ga es más pa­re­ci­do a $600 por un horno de $1000:

Frá­ve­ga com­pra dos hor­nos (ge­ne­ro­sa­men­te di­ga­mos que los pa­ga ¿$1800?) y ob­tie­ne $1000.

Pe­ro ese dé­fi­cit de $800 cuen­ta contra el im­pues­to a las ga­nan­cias que es 35% así que le vuel­ven $280.

Y si com­pra­ron los hor­nos por $900 ahí hay $314 de IVA. Y co­mo ven­den los dos por $1000 les dá $140 de IVA a fa­vo­r.

En­ton­ces esos $1000 son $580 des­pués de los im­pues­to­s.

Sí, cuan­do ga­nás pla­ta, los im­pues­tos ha­cen que ga­nes me­no­s. Cuan­do per­dés pla­ta, al­gu­nos im­pues­tos ha­cen que pier­das me­no­s. Es­ta par­te pue­de es­tar muy equi­vo­ca­da, des­de ya ;-)

Myckey Mouse explica los problemas del Large Hadron Collider

Eso tal vez sue­ne ri­dícu­lo, pe­ro es real­men­te bas­tan­te ra­zo­na­ble, una vez que se pien­sa un po­co.

Em­pe­ce­mos con lo ob­vio:

Su­pon­ga­mos que uno via­ja ha­cia el pa­sa­do y ma­ta a su abue­lo. En­ton­ces no exis­te. Y no pue­de via­jar ha­cia atrás en el tiem­po. Y eso es una pa­ra­do­ja.

Pe­ro tam­bién es­tá la an­ti-­pa­ra­do­ja:

Su­pon­ga­mos que uno no via­ja ha­cia atrás en el tiem­po. Por­que no lo sal­vo, mi abue­lo se mue­re. Er­go, no exis­to.

Eso no es una pa­ra­do­ja, pe­ro su­pon­ga­mos que el via­je en el tiem­po es po­si­ble: eso sig­ni­fi­ca que po­dría vol­ver atrás en el tiem­po, sal­var a mi abue­lo, y ha­cer po­si­ble mi pro­pia exis­ten­cia, por lo tan­to per­mi­tién­do­me sal­var­lo.

Eso es una anti pa­ra­do­ja.

Ape­nas uno per­mi­te que el via­je en el tiem­po sea po­si­ble, la so­lu­ción a las pa­ra­do­jas es ob­via: no se pue­de cam­biar el pa­sa­do por­que el fu­tu­ro no te de­ja. La "fac­ció­n" del fu­tu­ro que tra­ta de pre­ser­var el pa­sa­do siem­pre ga­na, por­que el pa­sa­do es fi­jo.

En­ton­ce­s, si yo via­jo ha­cia atrás en el tiem­po pa­ra ma­tar a mi abue­lo de un ti­ro en la ca­be­za, otra per­so­na del fu­tu­ro va a apa­re­cer de­trás mío y me va a des­ar­ma­r. O me ma­ta­rá ape­nas ten­ga la idea en pri­mer lu­ga­r.

O tu ne­ne va a vol­car una co­ca en tu má­qui­na del tiem­po.

El me­ca­nis­mo exac­to usa­do pa­ra evi­tar que me con­vier­ta en una pa­ra­do­ja es des­co­no­ci­do pa­ra mí por­que pro­vie­ne de mi fu­tu­ro, y yo aún no lo al­can­zo.

Vol­vien­do al LH­C: si en el fu­tu­ro se co­no­ce el via­je en el tiem­po, y se save que el LHC pue­de des­truir el mun­do­[1]_ en­ton­ces tal vez al­gún tu­ris­ta tem­po­ral de­ci­dió ver co­mo se ves­tía la hu­ma­ni­dad an­tes de la era de hie­lo, vie­ne al 2009, se co­me un san­dwi­ch y es­pan­ta un pa­ja­ri­to que de­ja car un pe­da­zo de pan en la ma­qui­na­ria.

Lo que por su­pues­to me lle­va al me­jor pro­gra­ma de via­je en el tiem­po de la TV: "La ca­sa de Mi­ckey Mou­se".

Si no se tie­ne un nie­to, hi­jo o so­brino de 4 o me­no­s, pro­ba­ble­men­te no se­pas qué es, pe­ro és­te es un re­su­men de ca­da mal­di­to epi­so­dio.

  1. Su­­ce­­de al­­go "ma­­lo" (Goofy se res­­fría)

  2. Se pro­­­po­­­ne una so­­­lu­­ción (Da­r­­le a Goofy so­­­pa Mi­n­­nie­s­­tro­­­ne)

  3. Un ideo­­­gra­­ma vo­­­la­­dor de un ra­­tón lla­­ma­­do Tood­­les mues­­tra una co­­­le­c­­ción de he­­rra­­mien­­ta­s:

    • Ba­s­­­tón de ca­­­ra­­­me­­­lo gi­­­gan­­­te

    • Pa­­­ti­­­nes

    • Ca­­­na­s­­­ta de pi­­c­­­nic

    • Su­­­bi­­­ba­­­ja

  4. Su­­ce­­de otra co­­­sa "ma­­la" (Pe­­dro quie­­re la so­­­pa)

  5. Las he­­rra­­mien­­tas son exa­c­­ta­­men­­te lo que se ne­­ce­­si­­ta pa­­ra re­­so­l­­ver los pro­­­ble­­mas pre­sen­­ta­­dos y lo­­­grar la so­­­lu­­ción pro­­­pues­­ta (se pue­­de usar el su­­bi­­ba­­ja pa­­ra mo­­­ver la ro­­­ca gi­­gan­­te que blo­­­quea el ca­­mi­­no)

Es­to es ob­via­men­te un ca­so del fu­tu­ro evi­tan­do que su­ce­da al­go. ¿Si no, co­mo po­dría Tood­les sa­ber que he­rra­mien­tas se ne­ce­si­tan an­tes de que sean ne­ce­sa­rias? No hay ma­ne­ra de adi­vi­nar que una ro­ca gi­gan­te blo­quea­ría la ca­ña­da por la que Mi­ckey y Min­nie tra­tan de es­ca­par­se de Pe­dro! 2

En­ton­ce­s, ca­da vez que pien­sen en pre­ven­ción de pa­ra­do­ja­s, re­cuer­den a Mi­ckey y sus ami­gos y di­gan "Oh Tood­le­s!"

1

No, no creo que el LHC va­ya a des­truir el mun­do

2

Ese seg­men­to mues­tra un com­ple­to des­co­no­ci­mien­to del fun­cio­na­mien­to de la pa­lan­ca.


Contents © 2000-2021 Roberto Alsina