News 'n' Updates | bitacora.lmn.md2019-07-25T03:44:14+00:00https://blog.cyberpunk.net.ar//bitacora.lmn.mdJekyll v3.8.5a quien le escribimos?2017-11-03T00:00:00+00:00https://blog.cyberpunk.net.ar//a-quien-le-escribimos<p>ultimamente, a veces, me encuentro escribiendo algo en algun servicio 3rd party (gmail, twitter, etc) y luego borrando el contenido de mi mensaje.
ese autoguardado, quien lo lee? [0]</p>
<p>[0] voy a asumir que existe aunque pueda probar que no (porque un grado de paranoia a veces suele ser practico)</p>
Algofive2017-03-22T00:00:00+00:00https://blog.cyberpunk.net.ar//algofive<p>El pasado 17 de Marzo de 2017 se festejaron los 5 años de <a href="https://algorave.com/">Algorave</a> y participamos con esta performance:</p>
<p><a href="https://www.youtube.com/watch?v=ZZ0z9M18eug"><img src="https://img.youtube.com/vi/ZZ0z9M18eug/0.jpg" alt="wareware - Algofive" /></a></p>
W.W.2017-03-05T00:00:00+00:00https://blog.cyberpunk.net.ar//ww<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>NO labor-saving machine,
Nor discovery have I made;
Nor will I be able to leave behind me any wealthy bequest to found a hospital or library,
Nor reminiscence of any deed of courage, for America,
Nor literary success, nor intellect—nor book for the book-shelf; 5
Only a few carols, vibrating through the air, I leave,
For comrades and lovers.
</code></pre></div></div>
<p>No Labor-Saving Machine <br />
Walt Whitman (1819–1892)<br />
Leaves of Grass<br />
1900</p>
Arte Electrónico argentino2016-07-24T00:00:00+00:00https://blog.cyberpunk.net.ar//arte-electronico<h1 id="creando-un-sitio-de-arte-electrónico-argentino">Creando un sitio de “Arte Electrónico argentino”</h1>
<p>Hace unas semanas vi que <a href="http://cristianreynaga.com/">Cristian Reynaga</a> había publicado un <a href="https://github.com/cristianReynaga/Dataset-Arte-Electronico-Argentino">Dataset de Arte Electrónico argentino</a> que utilizo para un <a href="https://vimeo.com/76021448">documental</a> que estaba realizando, por lo que me pareció una buena idea armar una aplicación que permitiese consultar estos datos de una manera cómoda.</p>
<h2 id="interfaces-para-desarrolladores">Interfaces para desarrolladores</h2>
<p>Para llevar a cabo esta tarea decidí utilizar <a href="https://golang.org/">Golang,</a> un lenguaje desarrollado por Robert Griesemer, Rob Pike y Ken Thompson. Las razón? simplemente hacia tiempo un amigo hablo maravillas del lenguaje y quise darle una oportunidad haciendo un proyecto <em>serio</em>. Por supuesto que no lo escribí de cero, sino que utilice <a href="https://gin-gonic.github.io/gin/">Gin-gonic,</a> un framework web hecho en este lenguaje.
Del sitio del framework:</p>
<blockquote>
<p>Gin is a web framework written in Go (Golang). It features a martini-like API with much better performance, up to 40 times faster thanks to <a href="https://github.com/julienschmidt/httprouter">httprouter</a>. If you need performance and good productivity, you will love Gin.</p>
</blockquote>
<p>En efecto. No solo es rápido como aplicación, además permite escribir aplicaciones web (en este caso una API RESTful) en muy poco tiempo, inclusive para gente como yo que viene de otros lenguajes como Python (interpretado, de tipado dinámico, a diferencia de Golang que es compilado y de tipado estático). Adicionalmente utilice <a href="https://github.com/go-gorp/gorp">Gorp</a>, un ORM<em>-ish</em> para facilitarme la vida con las consultas.</p>
<p>En cuestión de unos días le di formato al CSV para poder importarlo sin mayores problemas a una base de datos en SQLite, arme al prototipo inicial (<em>v1</em>), generé un contenedor de <a href="https://www.docker.com/">Docker</a> para su <em>deployment</em> y estaba publicado y funcionando.</p>
<p>La aceptación de la gente también fue bastante positiva, por lo que hasta ahora se puede hacer un balance bastante positivo de una aplicación escrita en tres días para probar un lenguaje :-)</p>
<p>Por supuesto, el código de la API está disponible en <a href="https://github.com/lvm/api-dataset-arte-electronico-argentino">Github</a>.</p>
<p>##Interfaces para <em>humanos</em></p>
<p>A pesar de que la API estaba funcionando bien y había tenido buena aceptación, aquellos que no están familiarizados con consultar datos haciendo <em>requests *y *parseando</em> estos resultados, realmente no iban a poder hacer uso de esta información por lo que me puse a hacer la pata restante: Un front-end para directamente visualizar los datos.</p>
<p>En este caso utilicé <a href="http://emberjs.com/">Ember.js,</a> un framework en JavaScript para <em>aplicaciones web ambiciosas</em>. Sobre este framework no tengo demasiado para decir, excepto que me parece <strong>mucho</strong> mas cómodo que <a href="https://angularjs.org/">Angular</a> y mas completo que React.js (que del modelo MVVM, solo cuenta con la <strong>V</strong>iew), por lo que no lo pensé demasiado al elegir uno.
Para comenzar el proyecto, en lugar de instalar <a href="https://ember-cli.com/">ember-cli</a> directamente en mi computadora, elegi utilizar al contenedor de Docker <a href="https://github.com/danlynn/ember-cli">danlynn/ember-cli</a> junto con <a href="https://github.com/frank06/ember-blueprint">ember-blueprint</a> y en unos instantes tenia un <em>esqueleto</em> listo para desarrollar la aplicación.</p>
<p>Nuevamente, gracias a la excelente documentación de <a href="http://emberjs.com/">Ember.js,</a> en cuestión de dias tenia al sitio web listo para publicar, inclusive con un diseño *relativamente decente *:-)</p>
<p>En este caso el código también está disponible en <a href="https://github.com/lvm/site-dataset-arte-electronico-argentino">Github</a>.</p>
<p>##Automatizando tareas</p>
<p><em>o ¿Por que realizar manualmente tareas que se pueden hacer solas?</em></p>
<p><strong><em>Deployando</em> con Docker Hub</strong></p>
<p>En el caso de la API, simplemente fue necesario crear la [<em>receta](https://github.com/lvm/api-dataset-arte-electronico-argentino/blob/master/Dockerfile) *para generar al binario que haría las veces de *servidorcito</em> utilizando la <a href="https://hub.docker.com/_/golang/">imagen oficial de Golang</a> como base.
Teniendo todo listo, simplemente asocié mi cuenta de Github en <a href="http://hub.docker.com/">Docker Hub</a> y cree un <a href="https://hub.docker.com/r/lvm23/api-arte-electronico-argentino/">Automated Build</a> que, si todo funciona correctamente, nos genera una imagen lista para descargar y ejecutar:</p>
<blockquote>
<p>docker pull lvm23/api-arte-electronico-argentino</p>
</blockquote>
<p><strong>Integración continua con Travis</strong></p>
<p>Por el otro lado, si bien <a href="http://emberjs.com/">Ember.js</a> es super genial, necesitamos compilar la aplicación para poder <em>servirla</em> como cualquier sitio <em>estático *y que mejor que <a href="https://travis-ci.org/">Travis-CI</a> para llevar a cabo esta tarea?
En este caso, fue necesario crear un archivo <a href="https://github.com/lvm/site-dataset-arte-electronico-argentino/blob/master/.travis.yml">*.travis.yml</a> *junto con un <a href="https://github.com/lvm/site-dataset-arte-electronico-argentino/blob/master/deploy-to-ghpages.sh">script</a> que ejecuten las acciones necesarias para *deployar</em> nuestra aplicación y publicar automáticamente en Github Pages al crear un nuevo tag (de otro modo, con cada <em>push</em> se generaria un nuevo build).</p>
<p>##En resumen</p>
<p>En cuestión de una semana pude desarrollar un sitio desde <em>atrás</em> hacia <em>adelante</em> con herramientas súper prácticas con la idea de poder facilitar el acceso a la información y que sirva de referencia para futuros proyectos :-)</p>
<p>##Hipervinculos relacionados</p>
<ul>
<li>
<p><a href="http://arte-electronico.cyberpunk.com.ar/">Sitio de Arte Electrónico argentino</a></p>
</li>
<li>
<p><a href="http://api.arte-electronico.cyberpunk.com.ar/">API pública de Arte Electrónico argentino</a></p>
</li>
<li>
<p><a href="https://github.com/cristianReynaga/Dataset-Arte-Electronico-Argentino">Dataset del sitio</a></p>
</li>
<li>
<p><a href="https://github.com/lvm/site-dataset-arte-electronico-argentino">Código del FrontEnd del sitio</a></p>
</li>
<li>
<p><a href="https://github.com/lvm/api-dataset-arte-electronico-argentino">Código del BackEnd del sitio</a></p>
</li>
<li>
<p><a href="https://hub.docker.com/r/lvm23/api-arte-electronico-argentino/">Contenedor de Docker del BackEnd del sitio</a></p>
</li>
<li>
<p><a href="https://travis-ci.org/lvm/site-dataset-arte-electronico-argentino">Builds del FrontEnd del sitio</a></p>
</li>
</ul>
Hanlon's razor2016-07-22T00:00:00+00:00https://blog.cyberpunk.net.ar//hanlons-razor<blockquote>
<p>Don’t assume bad intentions over neglect and misunderstanding</p>
</blockquote>
<p>Entiendo que muchas veces algunas cosas salen mal por desconocimiento que por maldad, pero en situaciones como esta no puedo evitar que es al reves sino no tiene sentido.</p>
entrevistas2016-06-07T00:00:00+00:00https://blog.cyberpunk.net.ar//entrevistas<p>Me resulta extraño, casi complicado, tener que resumir <em>10 años</em> de mi vida en 30 minutos.</p>
docker-pablodraw2016-04-30T00:00:00+00:00https://blog.cyberpunk.net.ar//docker pablodraw<p>Hace alrededor de un mes que estoy utilizando bastante <a href="https://www.docker.com/">Docker</a> (realmente es <em>muy</em> practico) y una de las imagenes que me hice fue para utilizar <a href="http://picoe.ca/products/pablodraw/">PabloDraw</a>, un editor de ANSI/Ascii.<br />
Considerando que probablemente le resulte util a otras personas, pense en publicarla en <a href="https://hub.docker.com/">hub.docker.com</a>, sin embargo me encontre con un problema: <code class="highlighter-rouge">Repository does not exist</code>, para solucionar esto solo necesitamos <em>taggear</em> la imagen con el nombre <code class="highlighter-rouge">${user}/${repo}</code> y listo.</p>
<p>La imagen la pueden descargar ejecutando:</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ docker pull lvm23/pablodraw
</code></pre></div></div>
<p>y luego:</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -v /tmp/asc:/asc -e DISPLAY=unix$DISPLAY --name pablodraw pablodraw
</code></pre></div></div>
i3-wm2016-03-28T00:00:00+00:00https://blog.cyberpunk.net.ar//i3 wm<p>Despues de anios de utilizar <a href="http://xfce.org/">XFCE</a> como mi <code class="highlighter-rouge">DE</code>, pense en cambiar por un <code class="highlighter-rouge">tiling WM</code>. Primero retome a <a href="https://github.com/conformal/spectrwm">spectrwm</a> ya que es liviano y el archivo de configuracion es bastante sencillo, a diferencia de <a href="https://awesome.naquadah.org/">awesome wm</a> que con cada version cambia el archivo de configuracion (o al menos eso solia suceder), pero no lograba sentirme <em>comodo</em> asi que antes de volver a <a href="http://xfce.org/">XFCE</a> decidi pedir recomendaciones y todos (?) me dijeron lo mismo: <a href="https://i3wm.org/">i3wm</a>.<br />
Primero no entendia bien el razonamiento detras de muchas cosas de este <code class="highlighter-rouge">wm</code> (que no exista <code class="highlighter-rouge">alt-tab</code>, el orden de los <code class="highlighter-rouge">workspaces</code>, etc) hasta que finalmente me cayo la ficha y todo tuvo sentido. Habiendo pasado aproximadamente un mes utilizando este <code class="highlighter-rouge">wm</code>, creo que es el reemplazo definitivo.</p>
<p>Mi configuracion actual esta disponible en un <code class="highlighter-rouge">gist</code> de <code class="highlighter-rouge">github</code>: <a href="https://gist.github.com/lvm/a9c77c57854c50182dbe">~/.i3/config + ~/.i3status.conf</a></p>
glas2015-11-19T00:00:00+00:00https://blog.cyberpunk.net.ar//glas<p><img src="http://i.imgur.com/JqoXoWd.png" alt="" /></p>
<p>Luego de haber publicado <a href="http://23chambers.itch.io/a-murder-of-chairs">mi primer juego</a>, este 6-11 publique otro mas: <a href="http://23chambers.itch.io/glas">glas</a>.<br />
A diferencia del anterior, en este proyecto trabaje bastante mas: Tiene 5 niveles + 1 intro + 1 outro; tiene menu y preferencias personalizables que se guardan entre partidas; finalmente tambien tiene soundtrack: <a href="http://chaitrarecords.bandcamp.com/album/dislocated-mountain">Dislocated Mountain</a> por un duo llamado <a href="http://chaitrarecords.bandcamp.com/">Dislocations</a>.<br />
Respecto al jueguito, cito al README:</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Have you ever wondered what it feels like to wander in the sky?
</code></pre></div></div>
<p>Se puede descargar de <a href="http://23chambers.itch.io/glas">aca</a> para GNU/Linux (32b y 64b), Windows (32b y 64b), y OS X (Universal).</p>
a murder of chairs2015-10-04T00:00:00+00:00https://blog.cyberpunk.net.ar//a-murder-of-chairs<p><img src="http://i.imgur.com/0wV4dKf.png" alt="" /></p>
<p>Publique mi primer <em>juego</em> en <a href="http://itch.io/">itch.io</a>, llamado “A murder of Chairs”.<br />
Es un juego bastante simple, donde el objetivo no era hacer un mega-juego sino desarrollar algo con Unity en modo <em>first-person</em> y esto fue el resultado. Realmente me sorprendio la comodidad de Unity para desarrollar juegos (sobretodo en 3D) por lo que -dependiendo del tiempo disponible- ire haciendo/publicando mas cosas.<br />
Respecto al jueguito, cito al README:</p>
<p>It’s a nightmarish level/scene based on Meshuggah’s video of <a href="https://www.youtube.com/watch?v=qc98u-eGzlc">Bleed</a> plus a side of Hitchcock’s <a href="https://www.youtube.com/watch?v=lCxR7dlavwg">The Birds</a> movie</p>
<p>Se puede descargar de <a href="http://23chambers.itch.io/a-murder-of-chairs">aca</a>.</p>