Ir al contenido principal

This is my blog, more about me at marianoguerra.github.io

🦋 @marianoguerra.org 🐘 @marianoguerra@hachyderm.io 🐦 @warianoguerra

mi nombre es mariano y me gusta parsear cosas

por alguna razón me gusta parsear cosas.

así que hoy no es la excepción y termine un proyectito bajo el lema "que pasa si me levanto un poco mas temprano y me pongo mas productivo"

el resultado son dos librerías en dos lenguajes distintos pero que hacen lo mismo.

el resultado es emel y legojs

ambos se encargan de parsear expresiones similares a un selector css (o un selector de jquery) y generar el html de esa expresión.

por ejemplo:

#wrapper > ({welcome } + em.user {username} + strong {!})

genera:

<div id="wrapper">welcome <em class="user">username</em><strong>!</strong></div> 

y así

porque?

 en paginas muy dinámicas normalmente uno necesita generar pequenios snippets de html para actualizar cosas y es un perno usar un template para eso, peor es escribir el html, escapar cosas y cerrar tags.

esto es algo intermedio.

legojs viene con un plugin para jquery que permite traducirlo directamente a nodos dom o a una representación intermedia.

ademas, porque se me dio la gana.

si muriera hoy mi epitafio seria...

"aquí yace otro gil que por N-esima vez fue mordido por un oneliner en el shell intentando iterar por strings con espacios"

mas abajo donde las plantas con el tiempo tapan la inscripción diría:

IFS=$'\n';for line in $(cat archivo.txt);do echo $(printf '%q' $line); done

activista de sillón

edit: agrego links de interes al final del articulo.
edit 1: un link mas (al fondo)

titulo alternativo: activista de teclado



hoy a la maniana vi que hablaban de kony y como era un revuelo en las redes sociales, decidí ignorarlo porque tengo una posición no muy definida sobre el e-activismo o como quieran llamarlo.

pero recién visitando nosequediario digital encuentro que ya llego a los medios masivos así que me fui a ver el video de arriba

recomiendo que lo vean aunque sea a titulo informativo sobre algo que posiblemente este pasando en el mundo.

apenas termine de verlo me pasaron por la cabeza 2 cosas:

1) y ahora que? muy probablemente no haga nada mas que ver este video e indignarme por el hecho.

Quizás lo comparta como estoy haciendo ahora con lo cual siento dos sensaciones, la primera es falso confort de pensar que estoy haciendo un bien al mundo cuando en realidad estoy reshareando un video en un blog efímero.

La segunda es que quizás, aunque yo no haga nada alguien que lo vea por mi simple y egoísta acción pueda llegar a hacer algo o hacer que le llegue a alguien que haga algo.

Y ahí esta el problema, si caemos en la segunda sensación y nos dejamos convencer por eso, lo cual es mucho mas fácil y cómodo que realmente hacer algo entonces nosotros nos sentimos bien con nosotros mismos pero no hacemos gran cosa al respecto.

cuanto disminuyo el hambre con el meme pre internet "come que hay chicos en áfrica muriéndose de hambre", o por un meme similar con los "chicos de biafra" que recién googleo para ver quienes son.

Pero resulta que esto de difundir o indignarse en cajitas de comentarios hace muy fácil sentirse mejor con uno mismo entonces pasa y crece.

Quizás puede lograr el efecto secundario ya mencionado de hacer llegar el mensaje a personas que realmente hagan algo pero no me gustaría que este status de "share-activista", "like-activista", "repin", "repost", "reshare" o "comment"-activista gane un status de aceptable o positivo, estaría bueno que se convierta en algo como "monday morning quarterback" que nos empuje a internar mas en pos de sentirnos mejor con nosotros mismos y ayudar a los demas.

llegas acá cansado de leer mi rant sin estructura y lleno de errores de ortografía y falto de revisión y decís "y cual es la segunda cosa que te paso por la cabeza?", bueno, es un poco retorcida pero se me cruzo y me parece interesante.

2) que pasaría si todo este video sea un fake y que luego de movilizar a tanta gente se diga "miren que manipulable es la gente, que poco que chequea hechos y como se encolumna atrás de una causa o se indigna sin ir mas allá del primer video que le ponen al frente", por la talla de las personas que aparecen en el video creo que seria difícil de que este sea el caso, pero seria un interesante ejercicio de manipulación masiva y posterior destape de la maleabilidad de las masas ante videos de youtube bien hechos.

Entre las preguntas que se me cruzan esta la siguiente:

cuantas personas van a buscar otras fuentes de información para confirmar que esta persona efectivamente existe, que esto realmente esta pasando o que la perspectiva presentada es centrada?

de los que lo hagan, cuantos van a ir a wikipedia? estoy de acuerdo en la calidad de wikipedia, pero podría darse que se modifique temporalmente el articulo, aunque luego se elimine o corrija muchas personas van a tomar eso como una confirmación de lo que vieron y puede que nunca mas busquen información extra para confirmar que lo que les dijeron es al menos aproximado a la realidad.

muchas mas no van a ir a contrastar la información a ningún lado, quizás algunos se unan a algún grupo de facebook relacionado a la causa.

a lo que voy es, si bien he visto cosas muy interesantes salir de movidas sociales y creo que como en otros casos acá se aplica la ley del 89:10:1 me parece que hay mucho lugar para mejorar y evitar ser manipulados o hacer que causas interesantes se diluyan en miles de microcausas.

conclusión: a pesar de pensar bastante al respecto, todavía no tengo una opinión formada acerca del e-activismo, lo único que espero es que sea útil, pero todavía me siento un poco hipócrita al compartir causas por medios electrónicos y volver a lo que estaba haciendo sin dedicarle mas tiempo.

firma: otro activista de sillón.

links (no digo que este de acuerdo con todos los links, solo que son miradas de distintos puntos respecto al tema):

Scala, sbt, scalatest and scct for code coverage testing

Scala, sbt, scalatest and scct for code coverage testing

simple guide on how to setup a scala project using sbt and sbt-scct plugin to have code coverage on tests using scalatests.

the code for this is at my repo here:

https://github.com/marianoguerra/me/tree/master/code/scala/sbt-scalatest-scct

ingredients

  • scala 2.9.1
  • sbt 0.11.2
  • sbt-scct 0.2
  • scalatest 1.6.1

how to

create a file called build.sbt if you don't have one already, you need to add the following parameters (you can use build.sbt as a starting point)
scala version:

scalaVersion := "2.9.1"

load scct settings:

seq(ScctPlugin.scctSettings: _*)

add scalatest to your dependencies:

libraryDependencies ++= Seq(
"org.scalatest" % "scalatest_2.9.0" % "1.6.1" % "test"
)

create a file called project/plugins.sbt if you don't have one already and add the following:

resolvers += Classpaths.typesafeResolver

addSbtPlugin("ch.craven" % "scct-plugin" % "0.2")

resolvers ++= Seq(
"scct-repo" at "http://dimbleby.github.com/maven",
Resolver.url("Typesafe repository", new java.net.URL("http://typesafe.artifactoryonline.com/typesafe/ivy-releases/"))(Resolver.defaultIvyPatterns)

then create some tests like the one under src/test/scala/ar/com/marianoguerra/CalcSpec.scala

then start sbt and run:

coverage:doc

after the test ran open the report with your browser:

firefox target/scala-2.9.1/coverage-report/index.html

and you are done!

note that I left one if branch without testing so you can see how it looks.

proyecto mc combo

desde hace bastante tiempo ando buscando una excusa para practicar/mejorar/aprender las siguientes herramientas:


hace tiempo que venia pensando entre aprender racket o clojure, ninguno me terminaba de atraer (excepto los proyectos overtone y music as data de clojure).

y mirando no se por donde me tope con el lenguaje de programacion kernel, que tiene unas ideas muy interesantes atrás, por un tiempo pensé que no tenia ninguna implementacion (ya que era simplemente una tesis de una persona) hasta que me tope con klisp, una implementacion de kernel hecha por un chico de buenos aires.

mi primer ayuda al proyecto fue ayudarlo con la pagina klisp.org, después se me ocurrió una forma para juntar varias cosas que quería ejercitar.

así que me decidí a hacer bindings de zeromq para klisp.

el proyecto a pesar de tener 3 días ya sirve para crear sockets y mandar y recibir información, solo me faltan implementar 3 funciones* que no son esenciales.

el siguiente paso es darle forma de librería, documentar y limpiar un poco y ponerme a ver como hacer que klisp sea un ciudadano de primera clase en mongrel2 (supongo que requerirá algún otro binding)

sin mas vueltas, el proyecto esta acá:

https://github.com/marianoguerra/klisp-zmq

espero que lo disfruten, saludos a mi mama que me esta mirando desde casa

* de allí la expresión: mas fácil que escribir bindings para zeromq

estoy usando duckduckgo (de nuevo), dale una probada!

este es un post un poco de marketing, un poco informativo.

hace una semana estoy usando duck duck go

las razones se resumen en:

  • la competencia es buena
  • mas privacidad
  • no me gusta que google este en todos lados

si bien ya intente anteriormente, esta vez parece que se queda, las razones para ello con respecto a las otras veces son:

  • la calidad de búsqueda mejoro bastante (aunque no es como google)
  • bangs (puedo buscar directamente en youtube, wikipedia, google, google images) desde la misma caja de búsqueda a un ctrl + k de distancia.
como digo, si bien en algunos casos durante el día busco en google cuando no encuentro algo en los primeros intentos, sucede que es lo suficientemente bueno para el 90% de las búsquedas.

cosas que todavía pueden mejorar:

  • como ya dije, calidad de búsqueda en algunos casos (por ejemplo errores cripticos de programación)
  • velocidad de carga de los resultados

así que te invito a hacerle el aguante a duck duck go, acá tenes algunas razones mas:

para cerrar: si, muchos bullet points :D

snowboard en los alpes (Oberstdorf)

desde que empece a hacer streetboard (por alla por mis 14 anios de edad) siempre dije que iba a aprender a hacer snowboard en los alpes, no se de donde salio la idea pero siempre lo dije.


hoy les puedo decir que cumpli la promesa :D


fuimos con unos amigos el sábado a la maniana, 3 de ellos hicieron un curso para principiantes de ski, el otro ya sabia así que se fue a andar por ahí y yo hice el curso de principiante de snowboard.


tuvimos la suerte que los dos días estuvieron despejados, también tuvimos la "suerte" de la ola polar, por lo que el primer día aprendí a hacer snowboard a -21 C de mínima, con una mínima a la noche (cuando ya estaba en la cucha) de -28.


en resumen, si bien el streetboard me ayudo en tema de equilibrio y no tener tanto miedo, la técnica para frenar y doblar si bien visualmente similar, técnicamente es muy distinta, lo que hacia que mi cuerpo intentara aplicar conocimientos previos que no aplicaban al nivel de fricción y la ausencia de ruedas, concluyendo en caídas de todo tipo.



otra cosa a notar es la cantidad de fuerza que hice con las piernas, puede ser un poco por no saber tanto otro poco por la falta de ejercicio, pero había puntos en el que mis piernas no respondían mas, resultando en las ya mencionadas visitas periódicas al suelo.


lo positivo es que para el principio del segundo día ya dominaba lo básico y pude estar todo el día tirándome de una pista para principiantes para mejorar lo aprendido.




lindo dia en stuttgart

mire por la ventana y pensé "que lindo día" tenia la cámara en la mesa, así que salí, subí la montania mas cercana y saque algunas fotos.

el día sumaria mas puntos si no hiciera -14 en este preciso instante*










* nota para referencias, soy cordobés, -14 no es tanto si hay sol y no hay viento, prefiero -14 así que -3 con viento.