<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Bitácora de Vuelo (Publicaciones sobre datos)</title><link>http://blog.taniquetil.com.ar/</link><description></description><atom:link href="http://blog.taniquetil.com.ar/categories/datos.xml" rel="self" type="application/rss+xml"></atom:link><language>es</language><copyright>Contents © 2023 &lt;a href="mailto:facundo@taniquetil.com.ar"&gt;Facundo Batista&lt;/a&gt; CC BY-NC-SA</copyright><lastBuildDate>Mon, 29 May 2023 18:52:03 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Facilitar la instalación distribuida de sensores y actuadores</title><link>http://blog.taniquetil.com.ar/posts/0856/</link><dc:creator>Facundo Batista</dc:creator><description>&lt;p&gt;Uno de los proyectos que tenía anotado de hace rato para volver a jugar un poquito con electrónica era armar un framework para poder instalar sensores (y en un futuro) actuadores por ahí sin tener que preocuparme por cableado, juntar los datos, y varios detalles más.&lt;/p&gt;
&lt;p&gt;El último par de semanas estuve trabajando en una especificación inicial para eso, la puse en el README del proyecto de Github donde voy a ir subiendo todo: &lt;a class="reference external" href="https://github.com/facundobatista/dsaf"&gt;Distributed Sensors and Actuators Framework&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;El framework a grandes rasgos tiene tres tipos de nodos:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Manager: El nodo central con la interfaz administrativa para el operador humano y una API para exponer todo. Permitiría ver toda la data que mandan los sensores, poder interactuar con los mismos, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sensores y actuadores: Los nodos que generan y transmiten la info, o reciben data y actúan acordemente. Acá la idea es tener un hardware basado en ESP32 programado en Python.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Configurador: Es el nodo que configura los nodos distribuidos para que puedan conectarse al Manager. Se usa una sola vez por cada nodito distribuido para que se configure automáticamente.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;a class="reference external image-reference" href="https://github.com/facundobatista/dsaf"&gt;&lt;img alt="La interacción entre los nodos" src="http://blog.taniquetil.com.ar/images/dsaf-system.png"&gt;&lt;/a&gt;
&lt;p&gt;Vayan al proyecto para leer bien el detalle de a qué habilita el nodo central de administración, toda la funcionalidad de los nodos distribuidos y cómo trabaja el configurador, más gráficos, etc.&lt;/p&gt;
&lt;p&gt;¡Se agradecen comentarios!&lt;/p&gt;</description><category>actuador</category><category>administración</category><category>datos</category><category>electrónica</category><category>ESP32</category><category>hardware</category><category>Python</category><category>sensor</category><guid>http://blog.taniquetil.com.ar/posts/0856/</guid><pubDate>Mon, 29 May 2023 18:34:00 GMT</pubDate></item><item><title>¡Carne!</title><link>http://blog.taniquetil.com.ar/posts/0656/</link><dc:creator>Facundo Batista</dc:creator><description>&lt;p&gt;Mi familia es bastante carnívora (como sucede con los argentinos en general). Cuando vivía con mis padres, no tenía mayor injerencia en cómo, dónde o cuando se compraba la carne (aunque existe la anécdota de que yo, de niño, siguiendo una receta, fuí a la carnicería del barrio a comprar "un kilo de ternera", y el carnicero me preguntaba "¿pero qué corte"?).&lt;/p&gt;
&lt;p&gt;Cuando volé del nido, una de las cuestiones que tuve que decidir y hacerme cargo, fue, obviamente ¿dónde comprar la carne?&lt;/p&gt;
&lt;p&gt;No es una pregunta sencilla. Bah, la pregunta es sencilla, lo que no es simple es la respuesta. Para simplificar, voy a contar solamente mi última experiencia.&lt;/p&gt;
&lt;p&gt;A muchos les gusta construir una "relación especial" con el carnicero/a del barrio (no encontré una manera de escribir eso que no suene un poco pornográfico). De esa manera, siempre tratan de conseguir un corte lindo, una mejor atención, etc. Mi problema es que en la zona donde vivo la carne está cara. Eso me llevó a ir buscando precios por un lado, por el otro, y al final terminé en Chalín, un frigorífico que descubrió mi viejo por la zona de Mataderos.&lt;/p&gt;
&lt;p&gt;Mataderos es lejos de casa, sin embargo. Durante mucho tiempo Chalín hacía delivery, con lo cual me traían el pedido a casa (entonces, me resbalaba que fuese lejos). Desde hace un tiempo, sin embargo, no tienen más ese servicio, pero se puede encargar el pedido y pasarlo a buscar. Aunque no podés elegir el pedazo de carne puntualmente (&lt;em&gt;esa&lt;/em&gt; tira de asado, &lt;em&gt;ese&lt;/em&gt; pedacito de vacío), pasar a buscar el pedido tiene la ventaja de que no tenés que hacer la cola.&lt;/p&gt;
&lt;p&gt;¡Y no hacer la cola es importante! Es que en Chalín se junta gente. Normalmente, tenés una espera de dos o tres horas. Pero me ha pasado de ir en una fecha complicada (para las fiestas de fin de año), llegar a las 7:50 de la mañana, y encontrarme con que tenía 270 personas adelante!! Me terminé yendo a las 12:40 :/&lt;/p&gt;
&lt;p&gt;Ahora, ¿tiene sentido ir a buscar la carne hasta allá? De Olivos a Mataderos hay una distancia respetable, y aunque en tiempo no es tanto, hay un gasto de nafta, etc. Una vez, a principio de año, comparé los precios y calculé que, para la compra que había hecho, en Chalín gasté $998, y en la carnicería del barrio habría gastado $1309. Sí, más de 300 mangos de diferencia.&lt;/p&gt;
&lt;p&gt;En fin. El punto es que hace mucho tiempo que compro en Chalín, para el consumo de la casa, para cuando hago asados por un cumpleaños, o mis asados geek. Incluso tengo el historial de precios, desde hace cuatro años y medio, que &lt;a class="reference external" href="https://www.dropbox.com/s/htd5ubhgp6e6pqx/carne.ods?dl=0"&gt;les comparto acá&lt;/a&gt;.&lt;/p&gt;
&lt;img alt="Carne" src="http://blog.taniquetil.com.ar/images/carne.jpeg"&gt;
&lt;p&gt;No dejo de buscar alternativas, sin embargo, por si deja de ser la mejor opción. El otro día un &lt;a class="reference external" href="https://twitter.com/runixo"&gt;conocido que respeto mucho culinariamente&lt;/a&gt; me recomendó el Frigorífico Las Heras, que tienen delivery, y decidí probarlos.&lt;/p&gt;
&lt;p&gt;Tienen varias cajas, paquetes prearmados de opciones. Por ejemplo, yo compré la "Familiar", que traía "cortes de milanesa, picada, y peceto" (según me dijeron por teléfono). Cuando llegó la caja, ví que tenía 3.5kg de picada, los cortes para milanesa eran 1.5kg de nalga, 1.6kg de cuaddrada, y 1.3kg de bola de lomo, y finalmente el peceto, 1.4kg.&lt;/p&gt;
&lt;p&gt;Las principales ventajas de este frigorífico son que te traen el pedido a tu casa, y que viene empaquetado al vacío, super cómodo de manejar y meter en el freezer.&lt;/p&gt;
&lt;p&gt;Pero aunque la carne es un poco mejor que en Chalín, me cobraron $70 el kilo (mientras que en Chalín, a esas cantidades de esos cortes, hubiese tenido un promedio de $51 por kg). Y no hay una diferencia de calidad que amerite esa diferencia de precios.&lt;/p&gt;
&lt;p&gt;Sí, a Chalín la tengo que ir a buscar. ¡Pero compro los cortes que quiero! Finalmente, un detalle no menor: en Chalín &lt;em&gt;siempre&lt;/em&gt; me dieron un ticket AFIP válido, y del frigorífico Las Heras no me trajeron boleta.&lt;/p&gt;</description><category>análisis</category><category>carnicería</category><category>Chalín</category><category>datos</category><category>estadística</category><category>frigorífico</category><guid>http://blog.taniquetil.com.ar/posts/0656/</guid><pubDate>Mon, 18 Aug 2014 23:33:54 GMT</pubDate></item><item><title>Bares, bares, bares</title><link>http://blog.taniquetil.com.ar/posts/0557/</link><dc:creator>Facundo Batista</dc:creator><description>&lt;p&gt;Como comentaba en &lt;a class="reference external" href="http://blog.taniquetil.com.ar/posts/0551"&gt;este post&lt;/a&gt; empecé a hacer sprints pequeñitos en distintos bares, con el objetivo principal de darle continuidad a algunos proyectos (arranqué con CDPedia, y estamos haciendo lindos progresos!).&lt;/p&gt;
&lt;p&gt;Un objetivo secundario de esa iniciativa era evaluar los bares, y este post es para mostrarles los primeros resultados de dicha evaluación. Bah, los resultados no los muestro acá, sino en &lt;a class="reference external" href="http://www.taniquetil.com.ar/homedevel/bares/"&gt;esta nueva página&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Gracias a &lt;a class="reference external" href="https://twitter.com/warianoguerra"&gt;Mariano Guerra&lt;/a&gt; por estilo y javascript para esa página!&lt;/p&gt;</description><category>bares</category><category>datos</category><guid>http://blog.taniquetil.com.ar/posts/0557/</guid><pubDate>Mon, 16 Apr 2012 19:42:09 GMT</pubDate></item><item><title>Inflación</title><link>http://blog.taniquetil.com.ar/posts/0516/</link><dc:creator>Facundo Batista</dc:creator><description>&lt;p&gt;Dos datos con respecto a la inflación en Argentina.&lt;/p&gt;
&lt;p&gt;El primero es sencillo: lo que me cobra el &lt;a class="reference external" href="http://www.aca.org.ar/"&gt;Automovil Club Argentino&lt;/a&gt; por mes por la cobertura para auxilios mecánicos y etcéteras, desde octubre 2005 hasta la fecha (mismo servicio sobre el mismo auto):&lt;/p&gt;
&lt;img alt="Curva ACA" src="http://blog.taniquetil.com.ar/images/inflac2.png"&gt;
&lt;p&gt;El segundo es más complicado. Desde hace un tiempo que compro carne y derivados en la misma carnicería (&lt;a class="reference external" href="https://www.facebook.com/ChalinCarnesPremium/"&gt;Chalin&lt;/a&gt;, en Mataderos: es buena carne, relativamente barata, y me la mandan a casa). Desde hace poco más de un año guardo los tickets que te dan al comprar (donde indican el corte, el precio y el peso, todo muy transparente).&lt;/p&gt;
&lt;p&gt;Con esta info quise hacer también algo que indique los "aumentos de la carne", pero al haber tantos cortes distintos, y al no siempre comprar los mismos cortes, la curva quedaba un enchastre. Entonces lo que hice fue calcular cuanto aumentó cada corte con respecto a la primera vez que lo compré, y luego unificar en cada fecha de compra todos los aumentos de los distintos cortes.&lt;/p&gt;
&lt;p&gt;El resultado es el gráfico siguiente, donde se ve el aumento sufrido con respecto a la compra anterior:&lt;/p&gt;
&lt;img alt="Aumento carne" src="http://blog.taniquetil.com.ar/images/inflac1.png"&gt;
&lt;p&gt;Todos los números crudos en &lt;a class="reference external" href="https://www.dropbox.com/s/htd5ubhgp6e6pqx/carne.ods?dl=0"&gt;esta planilla de cálculos&lt;/a&gt;.&lt;/p&gt;</description><category>Automóvil Club Argentino</category><category>carne</category><category>Chalín</category><category>curva</category><category>datos</category><guid>http://blog.taniquetil.com.ar/posts/0516/</guid><pubDate>Fri, 03 Jun 2011 18:12:18 GMT</pubDate></item><item><title>Datos irreemplazables</title><link>http://blog.taniquetil.com.ar/posts/0239/</link><dc:creator>Facundo Batista</dc:creator><description>&lt;p&gt;Hace un año cambié de laburo, me pasé de &lt;a class="reference external" href="http://www.movistar.com.ar/"&gt;Movistar&lt;/a&gt; a Cyclelogic (EDITADO: &lt;a class="reference external" href="http://www.cyclelogic.com/"&gt;la url no existe más&lt;/a&gt;). Antes de irme de Movistar, obviamente, hice backup de tooooodo lo personal que uno va guardando a lo largo de los años (en el caso de Movistar, fueron seis, muy buenos años, vean &lt;a class="reference external" href="http://blog.taniquetil.com.ar/posts/0171"&gt;acá&lt;/a&gt; para más detalles).&lt;/p&gt;
&lt;p&gt;Toda la info que me llevé estaba separada en tres archivos:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Musica.tar.bz2: Toda la música que fui seleccionando, depurando y corrigiendo en esos años.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;MisDocumentos.tar.bz2: Toda info que fui juntando más o menos personal. Acá dentro, especialmente, estaba el backup de todos los mails de estos años.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;data.tar.bz2: Datos genéricos, de todo tipo, de todo: wallpapers, textos graciosos, fotos raras, incluso rutinas hechas en Python que quería guardar (¡mi primer programa en Python estaba ahí!), algún programejo en Perl, etc.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Antes de devolver la laptop a Movistar, el anteúltimo día de mi presencia allí, bajé estos tres archivos en casa. No daba para bajarlos a CD, ya que pesaban bastante, alrededor de 2 GB cada uno.&lt;/p&gt;
&lt;p&gt;Estos archivos durmieron bastante en mi disco, y un día, que estaba buscando algo que sabía que estaba allí, fui a abrirlos. Oh sorpresa, empezaron a saltar errores físicos en el disco (ya había tenido algunos mensajes de error en el sistema). El problema era que, al tener algunos sectores erróneos, me daba error al descomprimir. Al ser archivos tan grandes, tenía &lt;strong&gt;muchos&lt;/strong&gt; errores en cada archivos, y no pude descomprimir ninguno de los tres.&lt;/p&gt;
&lt;p&gt;Me amargué bastante, porque había perdido toda la data juntada a lo largo de los años. Y me puse a trabajar en alguna manera de recuperar los datos. Hay por ahí algunas herramientas para recuperar archivos comprimidos con el bzip2, pero ninguna cumplía con el cometido (¡¡tenía muchos errores físicos!!).&lt;/p&gt;
&lt;p&gt;Entonces hice dos intentos de recuperarlo por mi mismo. Primero, hice un programita en Python que leía cada archivo sector a sector y lo escribía en otro lado, y si le daba error, volvía a intentar, y volvía a intentar, y volvía a intentar...&lt;/p&gt;
&lt;p&gt;Por otro lado, dije "Promediemos". Entonces copié cada archivo cuatro veces más. Quedaron todos distintos obvio, porque al copiarlo al Linux le da error de disco y copia lo que puede. Pero hice un programa que leía un sector de cada uno de las copias, se fijaba cual era la mayoría, y escribía ese en otro lado.&lt;/p&gt;
&lt;p&gt;El problema era que, por el tamaño de cada archivo, cada uno de las pruebas e intentos tardaba. Tardaaaaaaaaaba. Encima, en esa época, yo estaba dos días en lo de mi viejo (que era donde estaba la computadora), y el resto en casa de Moni, así que no tenía mucha interacción con la máquina.&lt;/p&gt;
&lt;p&gt;La cuestión es que me olvidé de ese tema. Y me mudé. Y traje la máquina. Y revisando lo que tenía, encontré los archivos, una copia dejada por ahí. Y la descomprimí... ¡y no dió ningún error!&lt;/p&gt;
&lt;p&gt;¿Qué fue lo que anduvo de todo lo que probé? No lo sé. Pero funcó. Y recuperé todos los datos, :D&lt;/p&gt;</description><category>backup</category><category>datos</category><category>errores de disco</category><category>Python</category><category>sectores</category><category>trabajo</category><guid>http://blog.taniquetil.com.ar/posts/0239/</guid><pubDate>Wed, 28 Feb 2007 23:45:47 GMT</pubDate></item></channel></rss>