Skip to main content

Ralsina.Me — Roberto Alsina's website

$HOME is where .bashrc is

I have a con­fes­sion to make. For the last year or so, my main op­er­at­ing sys­tem has been Win­dows 7. Yes, I know, it may come as a shock to some, spe­cial­ly if you have read this which is my post that had most hits in a day ev­er.

How did that hap­pen? What hap­pened to me? What was I think­ing? It's a bor­ing and un­in­ter­est­ing sto­ry.

I joined Canon­i­cal. My old note­book would­n't cut it. My new one would not take Ubun­tu with­out a fight. I said "hey, I will live in a VM!". The VM was dead­ly slow. I had to de­vel­op win­dows soft­ware (yes). Some stuff would not work right on the VM. And slow­ly, things just start­ed pil­ing up in the bare-met­al OS, which was, yes Win­dows 7 Home Pre­mi­um.

As a whole, Win­dows 7 is not hor­ri­ble. Most things work well. What it is, is a desert for a de­vel­op­er. Sure, you can get a plant to grow there, but you have to put a lot of ef­fort in­to it.

So, to­day I in­stalled Kubun­tu Oneir­ic (ab­so­lute­ly no prob­lem now!), gath­ered all the da­ta from the old note­book, the VM, the win­dows in­stal­la­tion, delet­ed win­dows, and moved in­to Lin­ux again, and made Win­dows the VM.

I missed it.

Remaking the 70s

If you have read Cof­fee and I ... well, let's say the 70s fil­ter is prop­er, and that this was a hap­py evening for me.

http://s0.i1.picplzthumbs.com/upload/img/0a/2f/c0/0a2fc0231fe0cb6e4a83ddd6e4e0546061e1997b_wmeg_00001.jpg

Sto­ries don't re­peat them­selves if you don't let them.

Consejos para el charlista tímido

Sor­ry, span­ish on­ly to­day!


De­bo haber dado, en los úl­ti­mos 15 años, unas 80 char­las. O tal vez 50. Qué se yo, no las an­do con­tan­do. Des­de hace un­os cin­co años a es­ta parte, me di­cen que vienen salien­do bue­nas (con al­tiba­jos, por supuesto).

En­ton­ces, in­spi­ra­do por How to be a Py­Con speak­er and do it well acá van una se­rie de con­se­ji­tos para que los que no se an­i­man a dar char­las se ani­men.

Este es el más im­por­tan­te: el públi­co no muerde. En se­ri­o, lo pe­or que vas a es­cuchar es al­go del niv­el de "se ve que es­ta­ba nervioso" o "se perdió un poco en tal parte" o "el tema no me in­teresó mu­cho". En la gran may­oría de los even­tos que he es­ta­do, no hay ningún án­i­mo de agredir al orador. Nadie te va a tirar to­mates. Y al día sigu­iente nadie se va a acor­dar si es­tabas nervioso.

Tenés que saber a quién le es­tás hablan­do. Hacéte un mod­e­lo de co­mo es tu es­pec­ta­dor ide­al. Hacé una char­la que le pue­da in­tere­sar a ese mod­e­lo. Si tratás de hac­er que le guste "a cualquier­a" en­tonces no le va a gus­tar a nadie.

Pen­sá mu­cho el tí­tu­lo. Si tu char­la es para prin­cipi­antes que quier­an apren­der flask, ponele de nom­bre al­go co­mo "In­tro­duc­ción para los que no saben na­da na­da na­da de Flask pero quier­an apren­der un po­quiti­to de co­mo us­ar un mi­croframe­work web que es­tá buenísi­mo". No le pon­gas "Flask: un mi­croframe­work we­b". Ok, no le pon­gas ninguno de los dos, ponele "Flask des­de cero". Yo le pon­dría "Flaska, no me claves, los puñales, por la es­pal­da" pero eso es porque me gus­ta Bot­tle.

No piens­es los slides. Pen­sá lo que querés de­cir. Una vez que lo sabés, partí­lo en, ponele, 10 pedac­i­tos de 3 min­u­tos, y hacé un slide para ca­da un­o. Si no podés hac­er un slide, hacé dos.

Los slides son el menú, no la co­mi­da. Los slides no son la char­la. Si puedo en­ten­der la char­la vien­do los slides, en­tonces o tu char­la es­tá es­ti­rada, o tenés mu­chos slides. Ase­gu­rate que se lean. No im­por­ta tan­to que sean lin­dos: que se lean. Regla: poné los slides en tu note­book, poné el bril­lo en mín­i­mo, y mi­ralo des­de 3 met­ros. Si no lo ves, no se vé.

Cuan­to en­sa­yar, de­pende de ca­da un­o. Yo no en­say­o, pero es porque soy un tara­do. Si en­sayás de­masi­a­do sale medio sin espon­tanei­dad, tal vez. Pero si no en­sayás nada, a ve­ces ni sale. O sea, en­sayá has­ta que te sien­tas có­mod­o, y ahí pará.

Hablá co­mo hablás vos. No trates de hablar co­mo otro, aunque te guste mu­cho mu­cho mu­cho co­mo habla. No trates de ser gra­cioso, si sos gra­cioso va a salir nat­u­ral. No trates de ser in­tere­san­te, si la char­la es in­tere­sante al­can­za.

No ha­gas cosas in­ter­ac­ti­vas a menos que es­tés se­gurísi­mo que no te vas a tra­bar.

No hables de cosas que no te in­tere­sen "porque son im­por­tan­tes" o o "porque al­guien de­bería hablar de es­o".

Hablá fuerte, aunque ten­gas mi­cró­fono. Cuan­do hablás fuerte hablás más claro y pau­sa­do.

Tenés que saber cuan­to tiem­po te que­da. To­do el tiem­po.

Tenés que ten­er dos o tres pun­tos para ter­mi­nar la char­la. Cuan­do se te va aca­ban­do el tiem­po, la ter­minás en el que mejor te quede.

"Decíles lo que les vas a de­cir, decílo, y decíles que les di­jis­te"

Si no sabés, ad­mití­lo. Si gui­tar­reás, decí "estoy gui­tar­re­an­do, per­o...". Si es­tás nervioso decí "me es­toy me­an­do", si te perdiste tirá to­do a la mier­da y uníte al cir­co Ro­das (o pedí un se­gun­do para or­denarte).

Ponéle on­da a la parte de pre­gun­tas y re­spues­tas. No pon­gas cara de "no en­tendiste una go­ma de lo que di­je", porque ca­paz que es cul­pa tuya.

Rompé to­das las re­comen­da­ciones que te dí si te parece que va a fun­cionar mejor. Por ejem­plo, ca­paz que querés ten­er 100 slides y pasar uno ca­da 10 se­gun­dos. O no querés ten­er slides. O querés ten­er slides que hablan de otra cosa. O querés ten­er slides que pasen so­los. O querés ten­er slides in­ter­ac­tivos y ac­tu­ar Min­go y Aníbal con­tra los fan­tas­mas.

Y la más im­por­tante (si, ya sé que di­je que la otra era lo más im­por­tan­te, no jo­das): fol­lowup. In­vitá­los a char­lar cuan­do te vean en el pasil­lo. De­já tu mail, blog, twit­ter o lo que sea. In­vitá una cerveza. La char­la en sí sirve has­ta ahí, es mejor si de la char­la sacás un ami­go.

Garbage Collection Has Side Effects

Just a quick fol­lowup to The prob­lem is is, is it not? This is not mine, I got it from red­dit

This should re­al­ly not sur­prise you:

>>> a = [1,2]
>>> b = [3,4]
>>> a is b
False
>>> a == b
False
>>> id(a) == id(b)
False

Af­ter al­l, a and b are com­plete­ly dif­fer­ent things. How­ev­er:

>>> [1,2] is [3,4]
False
>>> [1,2] == [3,4]
False
>>> id([1,2]) == id([3,4])
True

Turns out that us­ing lit­er­al­s, one of those things is not like the oth­er­s.

First, the ex­pla­na­tion so you un­der­stand why this hap­pen­s. When you don't have any more ref­er­ences to a piece of data, it will get garbage col­lect­ed, the mem­o­ry will be freed, so it can be reused for oth­er things.

In the first case, I am keeping references to both lists in the variables a and b. That means the lists have to exist at all times, since I can always say print a and python has to know what's in it.

In the second case, I am using literals, which means there is no reference to the lists after they are used. When python evaluates id([1,2]) == id([3,4]) it first evaluates the left side of the ==. After that is done, there is no need to keep [1,2] available, so it's deleted. Then, when evaluating the right side, it creates [3,4].

By pure chance, it will use the exact same place for it as it was using for [1,2]. So id will return the same value. This is just to remind you of a couple of things:

  1. a is b is usu­al­ly (but not al­ways) the same as id(a) == id(b)

  2. garbage col­lec­­tion can cause side ef­­fects you may not be ex­pec­t­ing

Sacrifices & Rock & Roll

Sor­ry: eng­lish on­ly be­cause my kbd is act­ing up an typ­ing is a chore.


Here I am, writ­ing in a place of evil so deep they charge you $56 (that's pe­sos) for a tiny sand­wich and a bot­tle of wa­ter: the Gi­an­ni & Vit­to­rio café at Cór­do­ba Air­port.

It's like Mor­dor, ex­cept the wa­ter is kin­da-­sor­ta-s­light­ly-­cold, and I car­ry no rings. And there is very lit­tle la­va. But the evil... the evil is dense, as it can on­ly be at air­port­s, Mi­nas Morgul, and per­haps the choripán place near Lisan­dro de la Torre sta­tion (which I strong­ly rec­om­mend).

But why do I do it? Be­cause I have al­ready failed. I will not post ev­ery­day this year. I may not even be close. But I will post as much as I can. And I prom­ise it won't be filler about why I did not do a re­al post.

So, on­to the meat of this post we go.

It's in­evitable that air­ports will have ex­pen­sive and bad food. It will be ex­pen­sive be­cause there are a lim­it­ed num­ber of sell­er­s, and get­ting to be one of them is ex­pen­sive. Since they can charge what­ev­er they wan­t, they have no in­cen­tives to pro­vide qual­i­ty or ser­vice.

Plus, they own a cap­tive cus­tomer base, since you are locked there, and there is no place to go out­side the air­port eti­her.

That is clas­sic gov­ern­men­t-­man­dat­ed mar­ket dis­tor­tion, with the air­port man­age­ment as the gov­ern­men­t, and you play­ing the role of you. This kind of clear ex­am­ples are good be­cause they show cap­i­tal­ism and free mar­ket ad­vo­cates ac­tu­al­ly have a de­cent point when they re­mark on the de­fects of im­per­fect mar­ket­s.

OTO­H, I don't see any com­mu­nists around here op­press­ing me, I see on­ly hap­py cap­i­tal­ists tak­ing my mon­ey.

PS: it seems there was a tor­na­do here to­day.


Contents © 2000-2024 Roberto Alsina