2013-04-26 00:07

Indio

Con Tato jugamos a un juego de rimas. Por turno, cada uno le dice una frase al otro, y el otro tiene que rimarla. Por ejemplo, "Estoy sentado bajo una sombrilla" / "Me parece que es amarilla". Si no la podés rimar, punto en contra. Ok, no somos exactamente El Cuarteto de Nos, pero es divertido. PERO hay una palabra que está prohibida, porque no tiene rima, que es indio.

Vaya acá un humilde intento de rimar indio, inspirado por algo que recuerdo vagamente de hace décadas.

Me voy a ir al Quindio
escribo yo con mi mano
es un lugar colombiano
que quiero rimar con indio.
Se pronuncia Quindío
me dice la wikipedia
la puta que lo parío
lo mío, es la comedia.

Gracias, gracias, premios de poesía avisen por email.

2013-04-20 22:32

La Cacerola Loca

"Locura es hacer lo mismo una y otra vez esperando resultados diferentes"

—Albert Einstein

Hoy leí en un comentario en un sitio que no merece ser linkeado la pregunta "cómo puede ser que hayan llegado al poder éstos". Bueno, estimado comentarista anónimo de blog político-vedettil, te lo voy a explicar.

La causa inmediada del poder de Cristina Fernandez es, obviamente, que ganó elecciones. Pero a nadie le interesa eso, excepto a los que se la pasan echando en cara del 46% que 54 es más que 46, y que si quieren ser presidentes es buena idea ganar elecciones, pero acá no vamos a caer en ese facilismo. Vamos a ver más para atrás.

Cristina llega a presidenta en gran parte porque la apoya como candidata Néstor. Si bien ella es una persona con un gran historial político, senadora, etc. si no la llevaba Néstor, no hubiera sido presidenta. O tal vez sí, pero de otra manera completamente distinta, igual que si yo no hubiera comprado una Sinclair 1000 no sería programador (a menos que lo hubiera sido por otros motivos). Pero esos otros motivos son ficción, porque no sucedieron. Ella es presidenta por Néstor.

¿Y cómo llegó Néstor a presidente? Llegó porque lo llevó Duhalde, y porque Menem se hizo encima porque se olvidó de ponerse el pañal para adultos, o porque se dió cuenta de que a pesar de ganar la primera vuelta, en la segunda sacaba exactamente los mismos votos porque todos los demás no lo querían.

Así que Néstor ni siquiera llegó por ganar elecciones, llegó porque de los otros dos políticos que podían llegar a ser candidatos, uno (Duhalde) se tenía que ir por dos muertos y el otro (Menem) estaba quemado.

¿Pero cómo puede ser eso? ¿Cómo puede suceder que los tres políticos más populares a nivel nacional en ese momento fueran esos tres? ¡Uno que no se puede presentar, uno que no lo vota nadie, y uno que no lo conoce nadie, y saca menos votos que Memem! Eso no es normal.

Pero claro, pensemos. ¿Por qué Duhalde tenía poder, como para poder empujar a Kirchner como candidato? Por la acefalía del 2001-2002. Acuérdense que a Duhalde ese poder le llega cuando ya todos los demás se habían escapado de ese poder porque quemaba, porque nadie lo bancaba, porque no les daba el cuero, porque no tenían las pelotas de titanio que tiene el hijo de mil putas de Duhalde.

Menem llega porque hubo tal debacle que la gente (bueno, digamos un cuarto de la gente) decía, mierda, el turco era un tremebundo hijo de puta... ¡pero esto fue peor!

Sí, llegamos en el 2003 con esos 3 candidatos por culpa del 2001. ¿Qué pasó en el 2001? El cacerolazo. En el 2001 se hizo pública esa consigna de "que se vayan todos". Y se fueron todos. Bueno, casi todos. Quedó Duhalde, porque el tipo lo bautizaron con teflón, quedó Menem, porque no tenía otra cosa que hacer en la vida, y quedó Kirchner porque a Duhalde se le fué de las manos una represión, murieron dos pibes, dijo "ma sí, me voy a pescar en el gomón", y era lo que había a mano. ¿Se acuerdan cuando decían que era "el chirolita de Duhalde"? ¡Si hasta lo habían bautizado Virolita! ¡Cuánta presciencia política, qué don de adivinación!

Pero si en el 2001 no se hubieran ido todos, alguno hubiera quedado. Y si quedaba alguno, Duhalde no era presidente, Kirchner no era candidato, Menem era jubilado, y en las elecciones del 2003 quién sabe qué hubiera pasado.

Entonces ver ahora a la misma gente saliendo de vuelta a la calle, diciendo las mismas cosas, en la misma pose, demonizando a la política como si ellos tuvieran una idea de con qué reemplazarla, es gracioso. Bah, gracioso si no te jode que haya tanta gente que no se da cuenta que está haciendo lo mismo, una y otra vez, esperando un resultado distinto. Si no te jode que salir a decir "que se vayan todos" y "que se acabe la política" es, literalmente, una locura.

"Todo lo que digas parece más inteligente si se lo atribuís a Einstein"

—Albert Einstein

2013-04-16 10:26

Here's a very big gun, there's your foot: PHP support in Nikola

I am a very big proponent of static site generators. I would not have bothered writing Nikola otherwise. But there is always that feeling that maybe there is some little thing which is hard to implement, like a contact form.

And let's face it, the easiest way to solve some of those things is by sticking a few lines of PHP in your HTML.

So, if you really want to, you can do it. I think Nikola (github master) is the first static site generator that supports php code. Here's how:

  1. Add php to your page_compilers (because I will never put it there by default):

    post_compilers = {
        "rest": ('.txt', '.rst'),
        "markdown": ('.md', '.mdown', '.markdown'),
        "textile": ('.textile',),
        "txt2tags": ('.t2t',),
        "bbcode": ('.bb',),
        "wiki": ('.wiki',),
        "ipynb": ('.ipynb',),
        "html": ('.html', '.htm'),
        "php": ('.php'),
    }
    
  2. Add php posts or pages to your post_pages:

    post_pages = (
        ("posts/*.txt", "posts", "post.tmpl", True),
        ("posts/*.php", "posts", "post.tmpl", True),
        ("stories/*.txt", "stories", "story.tmpl", False),
        ("stories/*.php", "stories", "story.tmpl", False),
    )
    
  3. Create a php post:

    nikola new_post posts/foo.php
    
  4. Put php in there:

    <!--
    .. date: 2013/04/16 09:57:09
    .. title: php test
    .. slug: foo
    -->
    
    <?php
    Print "Hello, World!";
    ?>
    

Build the site as usual, and you should end up with a page with PHP extension, that has that PHP in the "content" area, so it will follow your site's theme. Of course you can't do things like add HTTP headers and such, but hey, read the title.

2013-04-15 11:04

Nikola version 5.4.4 is out!

Yes, version 5.4.4 of Nikola, my static site/blog generator is just published at the usual place, including the following improvements:

Features

  • New Japanese translation.
  • Nikola check exists with 1 if there is an error
  • New HIDE_UNTRANSLATED_POSTS option that ensures you don't have mixed-language pages (Issue #373)
  • New theme "site-planetoid" for use with the planetoid plugin.
  • New 'retired' tag for posts that should no longer be in feeds.

Bugfixes

  • Added post data as a uptodate check for mustache (Issue #456)
  • Rebuild post pages when the post's translation list changes (Issue #458)
  • Handle "-h" (Issue #460)
  • Added correct help for console command (Issue #460)
  • Escape twittercard data (Issue #452)
  • Added missing "twittercard" in story template
  • Added support for per-language tags (Issue #450)
  • Fix wrong path splitting (Issue #434)
  • Remember locale even when set_locale failes (Issue #446)
  • Decode path argument in new_post (Issue #442)
  • task_indexes had missing config dependencies (Issue #441)
  • Removed bogus links to slides assets that were removed
  • Compressed files were seen as unknown by "nikola check"
  • local search and mustache plugins must be disabled by default (Issue #437)
  • Avoid failure if there are no tags and USE_GZIP is enabled (Issue #439)
  • Fix aspect ratio detection in Vimeo videos (Issue #440)
  • Blogger importer was passing wrong options to "nikola init" (Issue #408)

2013-04-12 20:38

My very own Roger Ebert anecdote

It was around the time "The Blair Witch Project" was a thing so it must have been in 1999 or 2000, that when I was reading Roger Ebert's "Movie Answer Man" column, I thought, hey, I may have something to say about this.

I emailed him about how the "found footage" genre was old, citing 1980's Cannibal Holocaust, and even going back to Edgar Allan Poe's "Arthur Gordon Pym" which is (of course) a found manuscript. We exchanged a few emails, he was always thoughtful, polite, willing to have a nice conversation. He eventually asked about what was the best possible time to visit Buenos Aires, I said spring or fall, suggested that he may be interested in attending BAFICI, and eventually it petered out.

So, not much as anecdotes go, but it made me realize I had been reading his reviews and articles (and later his blog and his twitter feed) for over 15 years.

I remember seeing him do a cameo in a lame TV show (the one with the guy that has a magical dog that brings him tomorrow's newspaper or something), and thinking, hey, I know that guy, sort of.

Now that he's dead, it seems he was, for everyone, the same he was for me, gracious, friendly, interesting.

He was the kind of guy who wrote reviews for Deep Throat and co-authored a Russ Meyer movie, and was always ready to say that a movie was crap yet good crap because there are degrees of crap, and you have to take crap in its own terms.

I'll miss the guy.

2013-04-10 21:00

Security Cargo Cults

Earlier I mentioned a hack I use when I need to get a clean browser quick. Here it is again:

rm -f ~/.config/ralsina/devicenzo.conf
curl https://devicenzo.googlecode.com/svn/trunk/devicenzo.py | python

Since that got posted on reddit (no, not linking it), it triggered "interesting" arguments. Basically many were shocked (shocked) about running arbitrary internet code locally in this manner. It's insecure. While I am by no means a security expert, at least I know I am ignorant.

Let's examine that insecurity claim a little, in the context of what I was proposing. I am trying to tell people "here's a small web browser that requires no setup and since it's not your main browser, you can nuke it and reset its state easily before running it, like this".

So, what's wrong with doing it that way, according to the commenters:

It's insecure because you can't see the code before running it because it's piped.

Well, that makes it exactly as insecure as every unsigned binary you ever downloaded. Or, let's be honest, every shell script, python script, perl script etc you have ever downloaded. Or you audit them?

Who exactly is being prevented from auditing it by having it presented this way? Is the intersection of "people who can audit this script" and "pople who don't understand pipes" not empty?

For those who can audit, this makes no difference. For those who can't audit, this makes no difference.

It would be better if I provided a hash of the file to know it's not tampered

And how would you know the hash is not tampered? Wat you want, really is a digital signature of the script.

If you trust google (and usually, people do), then you know that:

  1. The script was uploaded by me (check the history of the file)
  2. The script has not been tampered from the repo (since it's a secure connection and yes, there is a hash of the revision)

If you don't trust google, then you don't know who uploaded it, and if you don't trust me, you don't care who uploaded it, even if it's signed (because it's signed by someone you don't trust).

How does the user know it's not malware?
He doesn't. Life is like that.
Why should the user trust you?
He shouldn't. OTOH, were he so inclined, he can check who wrote it, and that I am a real person, with a long history of sharing code online and no claims of ever pushing malware.
This is more insecure because it downloads on every run
You don't need to run malware more than once, anyway. So, not much of a difference.
This propagates bad habits
So does Dunkin' Donuts, and noone posts about it at reddit. But in any case, sure, it's a bad habit. Big deal.

So, is it secure? Hell no! Is it significantly less secure than installing a random PPA you see mentioned in a forum? Maybe slightly. Is it less secure than running random unsigned binaries? Hell no. Is it less secure than downloading and running it? No. Is it less secure than building a random thing from source? Hell no.

But is it less secure than the other realistic ways in which I can give you a 100+ line chunk of python code that works as a web browser? I don't think so.

In the context of "here's the code for it, it can do this", this is not significantly insecure. It's more or less as insecure as the alternatives. With the advantage that, if you want, you can audit it. It's 128 lines of code (assuming you trust Qt and PyQt and Python, etc)

So there.

2013-04-10 16:06

El motivo de la visita de la presidenta al papa, según la UCR

"Se ve que la visita de la Presidenta al Papa no sirvió de nada [...] Son absolutamente irrespetuosos. Dicen que no van a aceptar ninguna modificación y hablan de democratizar"

—José Cano, jefe del bloque de senadores de la UCR

Por fin alguien en este país que destapa la olla, que muestra la entretela de la política, que bate la justa, que canta las cuarenta, que cacarea donde alguien, sí, esta vez puso el huevo.

Me saco el sombrero, es más, me saco el cuero cabelludo ante José Cano, ínclito senador radical y su capacidad, cual Mr. Músculo parlamentario, de sacar toda la suciedad que el oficialismo esconde.

¿Porque ya saben, el motivo por el que la presidenta fue al Vaticano? Para que los radicales tengan más senadores puedan así cambiar los proyectos de la mayoría. O tal vez para que no les hagan nana en los sentimientos. Entonces, para la próxima elección de senadores, vote Viggo Mortensen / Aragorn. Haga feliz a un papa.

2013-04-10 10:23

Forget about "incognito mode", use a throwaway browser!

It's not because I wrote it (ok, yes, it's because I wrote it) but if you ever need a "clean" browser, without cookies etc for tests, you can do worse than using my Devicenzo like this:

rm -f ~/.config/ralsina/devicenzo.conf
curl https://devicenzo.googlecode.com/svn/trunk/devicenzo.py | python

The first line removes all configuration, cookies, etc, you may have and the second one downloads the latest version (don't worry, it takes about 2 seconds) and launches it.

And voilá, a completely fresh out-of-the-box, webkit-based browser, with no previous history, cookies, or configuration, fairly feature-complete.

Note

this requires you having python and PyQt already installed (which is why devicenzo itself is so tiny)

2013-04-08 21:57

Carrió es así y piensa eso, vótenla si quieren

Spanish-only because it's about argentine politics


"Es maravilloso lo que está pasando aunque sea muy difícil y aunque haya muertos"

“La tragedia de La Plata es una tragedia más. No hubiera pasado nada si no el número de muertos no hubiera sido tan importante. En consecuencia esos muertos desde una mirada son los que se lleva Dios para que algo pase [...] Algo pasó muy grave ¿y que es lo tan grave? ¿La lluvia? No. ¿La inundación [...]? No."

"¿Por favor esto no hay medios no? Jajajaja"

—Lilita Carrió

¿Qué pasa cuando vos pensás que todo lo que pasa pasa por un motivo? ¿Qué pasa cuando vos estás convencido de que sabés ese motivo? Pasa esto. Pasa que hablás de los muertos de hace dos días mientras te cagás de risa y contás chistes.

Después de todo, se murieron, sí, pero se murieron porque dios, que es bueno, quiere que Lilita sea presidenta, ¿no? O algo así. Ese creer que todo tiene un motivo es la raíz de la absoluta incapacidad de empatizar de Lilita en este caso.

Porque tiene tres opciones, puede creer que a veces pasan cosas malas por casualidad y dios no tiene nada que ver, y se hacen peores por impericia, o por negligencia, o puede creer que ese dios en que ella cree hizo algo malo, o puede creer que en realidad es algo bueno, pero ella es la única que lo ve.

Claro, se murieron 50, 60 personas, o las que sean, pero es bueno, porque va a hacer que cambie algo (y no, no va a hacer que cambie un carajo nada importante).

Y entonces la gente que vea esto, porque por suerte alguien lo grabó, y vea que Lilita se caga de risa mientras habla de los muertos, y cuenta chistes, y dice que es maravilloso aunque se hayan muerto, pobrecitos, sepa lo que piensa Lilita.

Porque Lilita sí, piensa que todo lo que pasa tiene un motivo, y cree que ella es la que nos va a salvar a todos, y que todo lo malo que pase va a llevarla a ese 60% del que habla al principio, y que detrás de todo lo que pase está dios, que quiere que ella sea presidenta.

Tenemos una cosa a favor, eso sí, nosotros, los que sabemos que dios no existe, que la lluvia no la manda el tata dios, que las inundaciones son una combinación de una lluvia de la puta madre y falta de obras, y sabemos que Lilita está como una cabra.

Podemos verla hablar, escuchar lo que dice, y escribir, decirle a nuestros amigos, o lo que sea, Lilita es así. Lilita cree eso. Lilita cree que es maravilloso que se mueran 60 personas porque eso la va a ayudar a ganar elecciones. Y si te murieras vos también le vería el lado bueno.

Y ni siquiera es cierto. Porque Lilita no rompe más el 1% ni aunque caiga un meteorito. Porque Lilita es así, y Lilita cree eso.

Vótenla si quieren.

Contents © 2000-2019 Roberto Alsina