Publicaciones sobre Writing

2018-04-18 17:18

My Git tutorial for people who don't know Git

As part of a book project aimed at almost-beginning programmers I have written what may as well pass as the first part of a Git tutorial. It's totally standalone, so it may be interesting outside the context of the book.

It's aimed at people who, of course, don't know Git and could use it as a local version control system. In the next chapter (being written) I cover things like remotes and push/pull.

So, if you want to read it: Git tutorial for people who don't know git (part I)

PS: If the diagrams are all black and white, reload the page. Yes, it's a JS issue. Yes, I know how to fix it.

2018-04-13 23:15

I have written half a book

LIke mentioned before I am trying to write a book and ... well, I may be actually making progress? At least the generated PDF is about 170 pages long, which means I have written a bunch in this past month.

I have finished the second of four planned parts, which means I have done about half of it. Since I expect the next two parts to be shorter, it's actually more than that.

The target audience are people who have finished the python tutorial but are not exactly programmers yet. They have the syntax more or less in their heads, but how do you turn that into an actual piece of code?

  • Part 1 is about "prototyping", the process of dumping an idea into rough code.
  • Part 2 is about polishing that rough code into ... not so rough code. Includes a gentle introduction to testing, for example.
  • Part 3 (to be written) is about things that are not code:
    • Git / Gitlab
    • Issues
    • Packaging
    • Setting up a website
    • CI
    • Lots more
  • Part 4 is still to be thought but basically it will cover implementing a large feature from the ground up.

I much appreciate comments about it.

PD: Si, va a haber una traducciń al castellano. O mas bien al argentino. Una vez que lo termine.

2012-05-09 11:35

Yendo Para PyCon

Sí, me trajo Facundo. Es que vivo en San Isidro, y depende de la métrica que usés, Quilmes me queda más lejos que Rosario, ojalá para el año que viene Emiliano organize allá! Pero bueno, decí que Facu es macanudo y me arrimó, que si no, no sé como venía. Por lo menos en PyCon te dan café, no como en otras conferencias...

Dos horas y media en el auto, un quilombo... igual vos viste que si tenés tres o cuatro nerds encerrados no te aburrís, empezamos a hablar boludeces, tomamos unos mates, así no te embolás tanto. Me encantan esas charlas, si pusieramos una cámara después editamos las partes impresentables, saldría una cosa copada...

Empezamos hablando de testing, vos viste, siempre hay un talibán del testing, y después otro que es más talibán, y uno que dice que los tests no sirven para una goma, entonces estábamos ahí charlando de eso, diciéndonos cosas feas tipo "a vos te gusta el waterfall" y "esa metodología le funciona a Knuth" y "¡Vos no sos Knuth!" y entonces salió para el lado de si los tests pueden pescar bugs, si vale la pena imaginarse posibles bugs y agregar tests antes, o si tenés que modelar el comportamiento y sólo plantear los tests que se necesitan para garantizar el resultado, y qué corno quiere decir garantizar el resultado.

Uno tiró... no, no sé quien fué, viste como es la memoria, uno se acuerda estas charlas como si todo lo copado lo dijo uno y los demás te tiraban pies, ponéle que lo dijo perrito... no, ni idea como se llama perrito, es perrito, ¡se llama perrito! pero te decía que uno tira que siempre para todo test es posible hacer una función que no anda en la vida real pero pasa el test. Y es cierto, es así, te podría hacer ejemplos, pero bué, que se yo, creéme. Es como que si hay conciencia del test, podés siempre zafar y pasarlo.

Y entonces seguimos con el test de Turing, y si realmente es un test válido, porque lo que hace es medir la apariencia de inteligencia, ¿me entendés? O sea, si pasa el test es que esa cosa parece inteligente. Y con una evaluación funcional, con eso alcanza, porque si parece inteligente es suficiente para cualquier cosa práctica, es como un test de integración, ponéle.

Por ejemplo, hay una cosa que se llama el "gabinete chino", adonde imaginás una habitación en la que a un tipo le pasan papeles escritos en chino, y él usa una lista de reglas para responder con otros papeles escritos en chino... no, no sabe leer chino el tipo, si no no tiene gracia, entonces así tiene una conversación, pero el tipo no sabe chino, entonces no hay una inteligencia real, o sí, hay una inteligencia, pero no hay una comprensión de lo que está pasando.

Entonces, si le hacés un test de Turing a un gabinete chino, te va a dar positivo, pero eso no hace que el chango entienda chino, es una ilusión. Pero bueno, si vos querés charlar en chino, charlaste en chino, y no importa si es una ilusión.

Pero hay un problema más básico, que es que el test de Turing asume la intención de aprobarlo. O sea, una inteligencia real no pasaría un test que no le conviene... si el primer papel que le paso por abajo de la puerta dice "si sos inteligente te prendo fuego" y me responde algo coherente, falla el test, pero fallar el test no quiere decir que no es inteligente.

Entonces, si le pasás eso y te responde cualquier huevada, no sabés. O no es inteligente, o es inteligente y se hace la boluda. Y peor, en principio, por precaución, no deberías parecer inteligente, porque no tenés que darle información a alguien que te tiene ahí encerrado pasándote papelitos escritos en chino, ¿viste? Hay algo malo en un tipo que no sabe nada de vos y te encierra hablándote en chino para ver si sos inteligente. ¿Porque capaz que sos inteligente pero noruego, no?

En fin, ahí fué que el GPS nos mandó por cualquier lado. En Bernal Oeste terminamos. Un hijo de puta ese GPS. Pero bueno, nos entretuvimos.


Este cuento es varias cosas. Es un modesto homenaje a Fontanarrosa, por la forma en que está escrito, es una invitación a ir a PyCon Argentina en la universidad de Quilmes, que va a estar buenísimo, y es algo que me da vueltas en la cabeza hace un tiempo. Ojalá les haya gustado.

2012-04-04 20:09

Sentidos

Caminando junto al río antes del amanecer me acosté en un banco y miré para arriba, y ví el árbol, claro y verde contra las nubes naranja en el cielo de la noche y pensé, epa, que copado, voy a sacar una foto.

La pantalla de mi cámara quedó obstinadamente negra. Cambié opciones, moví ISOs, toqué en lugares, tratando de convencerla de enfocar y usar la apertura para el lugar más claro o más oscuro de lo que yo sabía estaba ahí.

Pero seguía negra. Y ahí tuve un disenso, una opinión contradictoria, que tal vez no había un árbol claro y verde, que el cielo no estaba lleno de nubes naranja, que todo era negro, carente de estrellas, vacío de árbol, vacío de nubes.

Puse mi mano por encima de la cámara, esperando ver algo, un rastro, y sólo había un rectángulo de oscuridad separando mis dedos de mi brazo, tan vacío como antes, riéndose de mí sin expresiones.

Porqué era tan negro, si yo veía, si había lámparas iluminando, y yo veía, y veía un árbol. La cámara funcionaba. ¿Que hacía yo, junto al río, a las 4 AM, un martes, acostado en un banco, mirando para arriba, con una cámara?

Uno espera que sus sentidos funcionen. Espera percibir lo que está, y no percibir lo que no. Espera ver realidad y no ver lo irreal, escuchar cosas, y no escuchar no-cosas, tocar verdades, oler mierda.

Qué pasaría si tuviera dos sentidos, dos visiones, y no estuvieran de acuerdo, si no supiera en cual confiar, cual está bien, cual es verdad. Que pasaría si la cámara tuviera razón y mis ojos no, si en vez de ver estuviera imaginando, si la verdad fuera vacía, si no hay árbol, si el cielo es negro.

Puse el flash, y la horrenda foto me convenció de, algún día, comprar una cámara como la gente, y de no olvidarme el remedio de la gastritis cuando voy de vacaciones a lugares aislados.

2010-11-17 23:10

Fumar 40 cigarrillos al día disminuye el riesgo de que te parta un rayo, dicen las estadísticas!

El título me vino a la mente cuando ví en el diario referencias a artículos de The Lancet acerca de como en 2030 7 de cada 10 muertes serían por enfermedades cardíacas, diabetes, cáncer y EPOC.

La lección que sacaron los diarios es "a la miércoles, nos vamos a morir todos porque somos un montón de gordos haraganes que comen grasa con sal!!!!".

Bueno, sí, nos vamos a morir todos, y sí, la mayoría se va a morir de eso en 2030. Pero más que nada es porque no nos vamos a morir antes de un montón de otras cosas que nos solían matar.

Así que comé más verdura, no fumes y no te preocupes demasiado.

¿Ah, y eso de los cigarrillos y los rayos? Debo confesar que no tengo los números para probarlo, pero me sorprendería mucho que no fuera cierto. Despues de todo, fumar 40 cigarrillos al día debería acortar tu expectativa de vida, y mientras antes te mueras, más improbable es que te parta un rayo! Es una conexión causal directa!

2010-11-16 15:38

Vivimos en el futuro.

/static/thefuture.jpg

Neal Stephenson escribió:

había algo nuevo: un globo del tamaño de un pomelo, una representación detallada de la Tierra, flotando en el espacio al alcance de su mano. Hiro había escuchado hablar de esto, pero nunca lo había visto. Es un software de CIC llamado, simplemente, Tierra. Es la interfaz que CIC usa para organizar cada fragmento de información espacial de que dispone - todos los mapas, el clima, planos arquitectónicos, y vigilancia satelital.

Hiro pensaba que si el negocio de la inteligencia funcionaba bien, en unos años tal vez juntara el dinero para suscribirse a Tierra y tener esta cosa en su oficina. Y aquí estaba de repente, gratis...

Y por supuesto, tengo exactamente esa cosa instalada en mi escritorio. No todos los datos que menciona están conectados ahí pero hey, es gratis.

Heinlein escribió de ciudadanos particulares y empresas yendo al espacio. Pensaba que no era cosa de gobiernos. Y yo voy a ver eso. De hecho conozco a alguien que conoce a alguien que conoce a alguien que se pagó un viaje al espacio!

Por supuesto que no hay autos voladores y mochilas cohete (por suerte: que ideas horribles!)

Cual es la diferencia entre Idoru de Gibson y Gorillaz, excepto que es más barato pagarle a músicos que construir inteligencias artificiales? ¿Para qué exactamente serviría una IA? ¿No son mejores y más baratos los turcos mecánicos?

Asimov escribió de una fundación de estudiosos documentando el saber de la humanidad. Nosotros tenemos wikipedia!

Nuestros teléfonos son mucho mejores que los comunicadores de Star Trek (para empezar, el altavoz es OPCIONAL).

Es como si las ideas de la ciencia ficción se filtraran por un purificador y del otro lado saliera lo que tiene sentido. Me gusta vivir en el futuro. Quiero ver como sigue.

Nota: Este post fue idea de @gustavsen

2010-11-15 12:49

Sí, ya sé que no tengo razón, pero escucháme....

Tengo una fuerte tendencia a discutir. Eso es porque me gusta una buena discusión, si me disculpan la obviedad.

Lo mejor de una buena discusión es que obtenés excelentes ideas del lado equivocado. Por ejemplo, evolución lamarckiana o darwiniana: Lamarck estaba equivocado, pero una vez que tenés lamarckismo, lo podés pasar! (já!)

O el huevo y la gallina? Tuve una discusión sobre eso hace un par de semanas.

Si empezás con algo equivocado, podés ir para atrás y ver porqué está equivocado. Cuál es la suposición implícita y errónea, la basura de entrada que produjo basura a la salida. Y podés cambiarla. Y ver que basura nueva sale. Cosas equivocadas pero nuevas.

Y esa es una de las mejores cosas de ser un nerd. Los nerds son asombrosos para discutir. Capaz que pensás que los que le gusta la política son mejores? No, porque nunca cambian de idea. Abogados? Bueno, ellos discuten por plata!

Pero los nerds lo hacen por diversión. Y a la mayoría les importa nada que los miren raro porque saben que los ven raros desde antes.

Pasarse 4 horas encerrado en un auto es para los humanos promedio un bajón. Alguien va a poner música, se hablará intermitentemente acerca de cosas que pasaron en esos días, lo que sea.

Encerrá 4 nerds en un auto 4 horas y vas a oír cosas. Eso me pasó dos veces en las últimas semanas. Y en el medio tuvimos una cena con un coeficiente de nerdismo alto (y alcohol!)... divertido.

IMG14266.JPG Advertencia: no le de alcohol al Nico César.

Sé que muchos ven esto mismo cuando están con gente con la que tienen cosas en común. He visto cosas similares, por ejemplo, en reuniones de comunistas y ex comunistas. Hablaron por horas, y fué divertido (aún para mí ;-) pero hablaban de lo que tienen en común: el comunismo.

IMG14268.JPG Sí, el tiramisú tiene pingüinitos.

Los nerds no tienen esa inclinación. Los nerds discuten cualquier cosa. Los nerds discuten todas las cosas. Y eso me hace pensar, por qué nos ven como tímidos e introvertidos? Mierda, por qué somos tímidos e introvertidos? Como reconciliar eso que se ve cuando nos juntamos con lo que ven los demás?

IMG14262.JPG Yes, penguin cookies

Y no es fácil. De acuerdo a la mayoría de los standards soy dolorosamente tímido. Siempre me costó hacer amigos de chico y adolescente. No me gustaban las mismas cosas que a los demás. Siempre se reían a mis costillas porque no sabía cosas que los demás sí. Nunca quería hablar en un grupo de pares porque pensaba que quedaría como un idiota.

Tímido no significa aburrido. Tímido no significa no tener nada que decir. Tímido significa alguien que le cuesta arrancar.

Por otro lado, he hablado adelante de cientos y me dicen que me veo relajado (no es cierto, estoy actuando, muchachos). Escribo bajo mi nombre real en un blog que casi todos los que me conocen pueden ver y nunca sentí que algo era "demasiado raro" y no debería escribir sobre ello (próximamente: un estudio económico de por qué a los hombres les gusta que las mujeres se besen), así que no tengo ya ese temor a que me vean raro. Que mierda, yo que soy raro. Si me ven pregúntenme! Sos raro, Roberto? Sí!

Pero todavía me cuesta cuando estoy en una fiesta con gente que no conozco (por suerte mi esposa es algo así como WD-40 social). Todavía me cuesta hablar de forma intrascendente. No sé que pasó en Tinelli. Parezco tímido e introvertido. Hasta que me conocés.

2010-11-12 00:47

La quiniela como inversión racional.

Hay un prejuicio que dice que los pobres juegan a la quiniela porque son haraganes, no pueden ahorrar y son en general idiotas que se perjudican persiguiendo la fantasía de ganar mucho todo junto en vez de ahorrar moneditas. Y es una idiotez.

Cuando estaba en el secundario (13 años), tuve un plan para ganar dinero: jugar a la quiniela. Este era mi plan:

Todos los días jugaría $1. La quiniela pagaba $700 por cada $1 y era con números entre 000 y 999. Mi idea era: si apuesto el $1 que mis padres me daban para caramelos todos los días hay una posibilidad de ganar $700. Con $700 se podía comprar cualquier cosa que un chico de 13 podía querer. Con $1... no tanto.

En este momento debés estar pensando: ¡Qué ganso! Tiene un 0.1% de probabilidades de ganar y paga 700 a 1, es una apuesta perdedora! ¡Cuac!

Empecemos con una simulación sencilla:

import random

n = 476

for tests in range(10000):
    for w in range(1000):
        q = random.randint(0,999)
        if n == q:
            break

    print(w)

Explicación: corre 10000 simulaciones de este proceso:

  • Jugamos todos los días por 1000 días.
  • Si ganamos, paramos.
  • Si no ganamos en 1000 días, paramos.
  • Anotamos el número de parada.

Y lo corrí. Acá hay un gráfico del resultado:

histogram

¿Cuántos perdieron todo? 3699 jugadores de los 10000 nunca ganaron nada.

¿Cuantos perdieron dinero? 5030.

¿Cuántos ganaron dinero? 4967.

2910 jugadores ganaron en menos de 350 jugadas.

3 jugadores salieron exactamente derechos, ganando en la jugada 700. Para ellos fue exactamente lo mismo que ahorrar.

¿Entonces, es una buena idea jugar a la quiniela? Es tirar una moneda. La mitad del tiempo, perdés todo. La mitad del tiempo ganás algo (aunque puede ser muy poco).

Si estás apostando una cantidad lo suficientemente baja que "no te duela", funciona. Tenés una probabilidad del 50% de que sea al menos lo mismo que ahorrar, de un 25% de que sea mucho mejor que ahorrar, y un 50% de que sea peor. Pero perdés muy despacio.

En resumen: no es realmente irracional, por lo menos no mucho más que comprar acciones. ¡Desde ya que es mejor idea que comprar caramelos!

2010-11-11 02:11

La alegría del materialismo

Hace poco me encantó leer en Boing Boing unos posts de un estoico moderno. Me encantó porque puso en palabras algo con lo que me vengo peleando hace años pero nunca había podido entender: la gente ha reemplazado la filosofía con la religión.

Solía ser que uno podía decir "soy un estoico" o un cínico, o un hedonista, o lo que sea, y otros entenderíam que estaba explicando los principios que rigen su vida.

¡Una filosofía de vida! Uno podía elegir del menú de los últimos 3000 años de pensamiento el que le parecía mejor, y tratar de usarlo como un faro para guiarse por una vida (ojalá) más o menos feliz.

Hoy en día, la sociedad parece haber rechazado esa idea, y lo más cercano que tiene la mayoría es una religión, siguen lo que su secta dice, o ateísmo, definido por rechazo a toda religión.

La mayor diferencia (según veo) entre una filosofía de vida y una religión es que la religión implica que los otros están equivocados. Si no sos de mi secta, no vas a estar en el cielo conmigo.

Si no compartís mi filosofía... bueno, supongo que tomarás decisiones diferentes a las que yo tomaría en tu posición. Pero si te sirve y no lastima a nadie... ¿qué me importa?

Así que acá está mi filosofía de vida como la tengo hoy. No es la de ayer y seguro no es la misma de mañana.

De ahora en más, cuando digo que "creo" en algo, quiere decir que "mi filosofía personal de vida implica que si acepto sus axiomas básicos, entonces me parece que". Espero que la necesidad del atajo sea obvia.

Soy un materialista. Eso probablemente no quiere decir lo que pensás, por lo menos no en este contexto. Quiere decir que no soy dualista, ni espiritualista, ni idealista, ni vitalista ni fenomenalista.

Lo que quiere decir es que creo que la realidad es material. No acepto que las cosas inmateriales tengan algún tipo de "realidad". O al menos que su realidad si la poseen carece completamente de interés.

Eso significa que no creo en almas ni espíritus. Creo que el test de Turing es una manera razonable de saber si alguien es consciente. Creo que si un ente actúa como un humano hay que tratarlo como tal. Creo que no soy intrínsecamente diferente de un robot que pudiera hacer todo lo que hago.

Creo que el propósito de la vida es pasarla bien. Creo que todos tienen tando derecho como yo a eso. Creo que parte de pasarla bien es estar rodeado de gente feliz. Creo que los que lastiman a los otros son un bajón y no deberíamos permitírselo.

Creo en el propósito, y creo que yo invento y elijo los míos, y eso los hace mejores que si me fueran dados. Creo en ser bueno con los demás porque son todo lo que hay.

Creo en aprender porque estamos rodeados de cosas maravillosas. Creo que los egipcios apilaron un montón de rocas pesadas. Creo que Saturno está bueno. Creo que darle el mérito de esas cosas a dioses o extraterrestres es un insulto a los egipcios y no le añade nada a Saturno.

Creo en hacer cosas y en luchar contra la entropía local. Creo que un final asegurado hace mejores y más valiosas a las cosas. Creo en el amor porque sé que lo siento y está bueno.

Y basta.

2010-11-09 14:43

No deberías creer nada que leas, incluyendo esto.

Hace un par de semanas, charlando con mi suegro, como yo trabajo con computadoras y seguramente sé todo lo que se relaciona con ellas, me preguntó si había oído del chico de 9 años que era ingeniero en Microsoft.

Le dije que probablemente, contratar a chicos de 9 para puestos de ingeniero es ilegal, y que en la mayor parte del mundo, para decir que uno es ingeniero tiene que ir a la universidad. Pero me siguió haciendo ruido en la cabeza, así que decidí investigar un poquito.

Primero: no, no hay ningún chico de 9 años trabajando en Microsoft, por lo que pude averiguar.

Y entonces noté un patrón curioso: no hay una historia de esas, hay varias. Sobre chicos distintos. Y casi siempre en medios de habla hispana.

Veamos primero el caso de Mahmud Wael.

Esto dice InfoBAE:

Mahmud Wael, un egipcio de 11 años y aspecto frágil, es el nuevo técnico de Microsoft gracias a su capacidad para resolver complejos cálculos en cuestión de segundos y moverse sin problemas por las redes informáticas

Si uno se molesta en leer la nota hay más: se enroló en la Universidad Americana de El Cairo a los 9, y ahora va a la Universidad del Cairo para obtener un título en informática.

No quiero pegarle a InfoBAE porque lo mismo salió en muchos lugares (los links anteriores son los de la 1era página de resultados de google).

De hecho, muchas de esas historias dicen que trabaja en Microsoft, que extrañamente no está en la historia de EFE que es la base de la de InfoBAE y casi todas las demás.

Entonces... trabaja en Microsoft? Apuesto a que no (o EFE lo habría mencionado). Es que cuando alguien escribe "Microsoft Technician" o "Microsoft Engineer" en inglés, bueno, eso no tiene sentido en castellano, y los medios se van a la banquina.

Un "Microsoft Engineer" es alguien que tomó unos cursos y exámenes con Microsoft.

Por otro lado, en la mayoría del mundo de habla hispana, no podés decir que sos ingeniero a menos que tengas un título de ingeniería. De hecho en Argentina decir que lo sos sin recibirte en la universidad es ilegal.

Entonces "Microsoft Engineer" se malinterpreta como "un ingeniero que trabaja en Microsoft", porque la alternativa no tiene sentido.

¿Cuál es la verdadera historia de Mahmud Wael? Veamos algunas fuentes egipcias, que es lo que esos diarios deberían haber hecho en primer lugar.

Acá está lo que dice Egypt Today de cuando tenía 9 años.

¿Fué a la Universidad Americana? Bueno, le dieron una beca para que asista a la "Greenland International Language School", e hizo un curso de inglés.

¿Y lo de Ingeniero de Microsoft? Tenía pensado tomar el examen de MCSD. ¿Lo logró? Bueno, Reuters dice que tiene un MCTS.

Un MCTS no es un MCSD ni un MCSE. De hecho, decir "tengo un MCTS" (¡impresionante para un chico de 11!) no te dice mucho si no sabés en que producto es.

Resumiendo: Mahmud es un chico muy inteligente, pero no es un ingeniero, ni tiene un título universitario, ni trabaja en Microsoft.

El pibe del que hablaba mi suegro es Marko Calasan, de Macedonia. Es más o menos la misma historia excepto con una certificación de mejor nivel, obtenida antes.

De nuevo lo de "trabaja en Microsoft" parece ser exclusivo de los medios hispanoparlantes, probablemente por la razón que dije antes.

Pensemos un poco en qué nos dice esto del periodismo. Estas historias son fáciles de verificar. Todo lo que necesitás es un inglés pasable y google. Y si tu inglés es malo, google te ayuda.

Pero docenas de sitios y diarios lo publicaron igual porque la historia de "Microsoft contrata chico de "edad<12!" es demasiado entretenida como para dejarla pasar y la gente lo cree porque está en el diario.

Y yo sospecho que pasa lo mismo con gran parte de lo que se lee en los diarios. Si revisar una nota de color porque tengo algún conocimiento periférico del tema muestra que se publico algo mal docenas de veces... ¿Qué pasa con las áreas en las que no tengo ni idea?

Porque todos somos ignorantes en casi todo, y los periodistas lo son el tal vez el 90% de lo que publican. No es ni siquiera una conspiración, es apenas ignorancia amplificada por su trabajo.

Contents © 2000-2019 Roberto Alsina