viernes, 3 de octubre de 2014

Humor por reemplazo (¿grado uno?)

Sé que hay gente que ha estudiado con cuidado el humor y la lógica en el humor. Acá solo escribiré un poco sobre algo que llamo humor de grado uno: Reemplazar algo en una frase conocida por algo que cambie el contexto. Algo hace click. Y es chistoso cuando la broma es nueva para uno.

La frase que motivó este post es esta: “All my chess games end when one knight stands”, sacada de un comentario de Reddit. No tiene tanto sentido más allá de sacar algo fuera del contexto, pero me gustó mucho.

Algunos ejemplos vistos en Twitter:


Terminemos con uno que me gustó mucho:


Este tipo de humor es muy frecuente. Pero deja de ser divertido si el patrón que se usa es muy común. Se podría analizar más, para ver qué hace un reemplazo más interesante que otro.

domingo, 28 de septiembre de 2014

Año sabático

Hace un mes terminó el año en el que no trabajé (no mucho).

No me dediqué al ocio.

Estuve estudiando dos cosas: trading algorítmico y Bitcoin.

No es la primera vez. Hace muchos años tuve un año en el que me dediqué a estudiar por mi cuenta, financiado por mi mamá. Es algo que he intentado repetir más, pero no había lograrlo más de tres meses seguidos.

Con respecto al trading, aprendí bastante. Es un tema interesante, aunque se siente muy impersonal. Uno solo ve que se manda un 'bid', o un 'ask', y no se ven las risas o lágrimas que hay detrás de la ejecución de una orden. Trabajé con FOREX, y es impresionante el volumen que tienen los pares más populares. No creo en el análisis técnico. Creo que no estaba lejos de lograr algo rentable, pero por ahora me cansé. Trabajar en esto cansa bastante, y además no seguí trabajando con una amiga, con la que estudié bastante, y trabajar solo me da pereza. No sé si retome el tema. Tal vez el otro año, aunque no depende solo de mí. Me hace falta trabajar con ella.

Una anécdota interesante con el trading es que el programa MT5 no simula bien los ticks. Yo estaba trabajando con segundos, no con minutos, y el MT5 simula los segundos con una curva predecible. Encontramos una estrategia que explotaba eso, pero no es interesante en la vida real. Lo que al parecer hace la gente es usar la versión anterior (la 4), con la que es posible hacer backtesting con ticks reales importados de un archivo.

El MT5 usa objetos, pero el diseño no es bueno. Mi amiga hizo un diagrama de clases y el asunto rayaba en lo cómico. Yo no creo que la gente que hace trading algorítmico use MT5 (por lo menos, no usan mucho las clases que ellos diseñaron).

Con respecto a Bitcoin aprendí un montón. Estudié bastante el protocolo y creo que el futuro es descentralizado. Con un amigo lanzamos un servicio sencillo que casi nadie usa, pero me alegra haber llegado a lanzarlo. A pesar de ser algo simple no es trivial. Aprendí bastante.

Y ahora estoy ocupado otra vez. No he logrado concentrarme tanto como quisiera. Pero todo pinta bien.

domingo, 7 de septiembre de 2014

You might want to use noatime.

This is not a new issue.

From http://lwn.net/Articles/244829/ (Ingo Molnar):
Atime updates are by far the biggest IO performance deficiency that Linux has today. Getting rid of atime updates would give us more everyday Linux performance than all the pagecache speedups of the past 10 years, _combined_.
This comment is about 7 years old and noatime is still not a default option (nor relatime). Tracking access time makes sense in many scenarios, not not too much for a desktop user.

Really. Usually a lot of disk reads are cached and even for them the OS has to write to the disk. It is stupid.

If you are not using noatime, and you don't need to track access times for your file-system, you're causing your disks a lot of avoidable pain (and you are wasting time).

I just enable it and if something breaks because of this, it deserves to break. My guess is that many developers run their systems with the noatime option set.

sábado, 6 de septiembre de 2014

Use Freenode with SSL

Update: XChat is dead and the new project is HexChat (a fork).

I always have to look for this image. So let's put it here. If you do not use SSL everything you do (including sending your passwords) will be sent in clear (unencrypted) text.


jueves, 4 de septiembre de 2014

Claro no te ayuda

Actualización: Hoy 10 en la mañana instalaron el internet. 9 días después.

-----------------

Hace unos días llamé a Claro Colombia para solicitar un enlace de Internet.

Al teléfono me dijeron que yo estaba en DataCrédito y que tocaba poner el enlace a nombre de otra persona. La atención fue pésima y la persona que me atendió fue grosera y no me quiso explicar más.

Por cosas que he hecho recientemente sabía que no estaba en DataCrédito, así que para verificar pagué en http://midatacredito.com y en efecto no estaba reportado. Ahí perdí unos 25.000 pesos.

Luego llamé a quejarme y me dijeron que me arreglarían el problema. Esta es parte de la llamada donde me dijeron que me llamarían (la que está en el video que sigue). Llamada del 1ro de septiembre de 2014. Tengo la llamada completa donde dicen cuál es el problema y que sí es un error de ellos.


Yo quedé a paz y salvo con Telmex (antes de ser Claro Colombia) en 2010 y tengo el paz y salvo.

El 3 de Septiembre me dijeron que sí era necesario mandar el paz y salvo. Aunque antes me habían dicho que no. Pedí más ayuda en Twitter (donde me habían atendido antes) y me contestaron sin contexto, como si fuera la primera vez que les hablara.


En ese momento me molesté. Y es 5 de septiembre y no me han resuelto.

Subí un video a Youtube que estuvo disponible unos minutos. Yo lo pude ver, y tengo un testigo que también pudo. Luego dejó de estar disponible y Youtube me dice que no lo pudo procesar, y eso es imposible, porque lo alcanzamos a ver. Sería feo pensar que me lo censuraron, pero eso es lo que parece. Todavía no puedo afirmarlo con certeza pero eso es lo que parece. Yo uso HTML5 y nunca más instalaré Flash, entonces para concederle el beneficio de la duda a Youtube, subí otra vez el video acá, usando instrucciones viejas que he usado antes. Sería muy extraño que deje de aparecer, pero pasó. Acá lo subí otra vez para asegurarme de que usé el video que codifiqué con las instrucciones.

Subí el video a Vimeo también (y espero que algún día lo procesen, que lento es).

Para terminar, es feo que no haya buenos competidores para servicio de Internet y que uno tenga que rogale a Claro para que le instalen a uno Internet en su casa. Me dicen que otros proveedores tienen un servicio mucho peor.

Me han contado que el camino más efectivo es una queja en la Superintendencia de Industria y Comercio. Ya radiqué la queja.

Espero no terminar llamando y gritando como la pobre señora Patricia.

No es aceptable que un problema que se puede arreglar en horas les tome días.

Además, me están discriminando abusivamente con la mala excusa de que es culpa del sistema.

jueves, 28 de agosto de 2014

pylint for Python 3 in Ubuntu 14.04

The steps to get pylint for Python 3 in Ubuntu 14.04 are:
  • sudo aptitude install python3-pip
  • sudo pip3 install pylint
  • /usr/local/bin/pylint your_file.py
By the way, today is the day I stop caring about Python 2. I will use Python 3 for my new programs.

martes, 19 de agosto de 2014

Listo el tocadiscos

Quería un tocadiscos. Compré el primero que vi y no lo pensé mucho. Creo que es suficiente para escuchar el disco que me regalaron y muchos más.


Ahora puedo irme a locales a cazar discos baratos. Lo bueno con la música es que a uno le puede gustar algo que no le interesa a los demás.

lunes, 4 de agosto de 2014

Generating a Bitcoin Vanity Address



There is good (fast) software to build vanity addresses.

I wanted to build something easy to audit. And I got what I wanted, but it is very slow.

Here it is : generate_vanity_address.py, in case you want to waste some CPU cycles.


lunes, 21 de julio de 2014

Quiero un tocadiscos

Quiero un tocadiscos.

Hace unos años jamás lo habría pensado pero ahora existe el deseo.

La imperfección es bonita. Casi todas las copias de una canción digital son el mismo archivo. Así es por diseño. Casi todas las copias, si no existieran los benditos rayos cósmicos y otros azares.

Todos los discos son sutilmente diferentes.

Lo mortal es bonito. Es bonito aprovechar las cosas mientras duran.

Un disco que me regalaron. No tengo donde escucharlo.

Creo que lo he escrito antes: Un defecto humano es querer que lo bueno dure mucho, que dure por siempre.

Nos fijamos más en las arrugas que en las historias de los viejos. Les preguntamos más por los achaques que por las alegrías pasadas que ellos quieren compartir.

La aguja no suena igual cuando es nueva que cuando ya está un poco gastada.

Lo mismo pasa con el acetato. Nuevo funciona de una forma. Con el tiempo surge un ruido de fondo que el cerebro aprende a filtrar.

Uno aprende a enfocarse en lo bonito que todavía suena y no en el ruido blanco que el tiempo permite.

Quiero esa imperfección en mi sala.

Es fácil explicarle a un niño o a un adulto curioso como funciona un tocadiscos.

Quiero un disco que tenga que cuidar. Uno que no dure por siempre. Nada dura por siempre. No me parece malo.

Quiero un tocadiscos.

jueves, 1 de mayo de 2014

Expected value of random walk

I found this nice answer where a guy draws a random walk that simulates the stock market.

The remarkable thing is that he talked about the expected distance of the one dimensional random walk from the starting point, after N steps.

It is different from the average distance (taking signs into account), that should be 0.

So, the expected (absolute) distance from the origin (see 1 and 2) is:


And this surprised me. Yeah, you even get PI there.

The math seems nice, I haven't checked it all :-)

Here is a quick simulation: expected_distance.cc.

Here is the output for 1000 steps:

$ ./random_walk_distance_1000_steps 
Theoretical average distance: 25.2313
Empirical average distance: 25.0942

$ ./random_walk_distance_1000_steps 
Theoretical average distance: 25.2313
Empirical average distance: 25.1914

$ ./random_walk_distance_1000_steps 
Theoretical average distance: 25.2313
Empirical average distance: 25.2604

It checks out. I'm glad I know this now.