jueves, marzo 29, 2012

miércoles, marzo 28, 2012

cuanto demoraste?


me llevo entre 15 y 20 minutos, probé varias, lo loco es que una valía excepto para los últimos dos valores :D

martes, marzo 20, 2012

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.

viernes, marzo 16, 2012

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

viernes, marzo 09, 2012

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):

viernes, marzo 02, 2012

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.

Seguidores

Archivo del Blog