Versión 0.3 final del proyecto BDCUT_CL y el nuevo script de auto-generación

27 enero, 2018 at 16:53

En Diciembre de 2017 logramos terminar la versión 0.3 final de nuestra base de datos de códigos territoriales para Chile o también conocida como la mejor Base de Datos de Regiones y Comunas de Chile disponible hasta el momento de forma libre.

Esta nueva actualización tiene 2 mejoras importantes:

  1. Actualización de la base de datos de códigos territoriales, incluyendo la nueva región de Nuble. Nueva división, que entrará en vigencia el día 6 de septiembre de 2018.
  2. Posibilidad de generación automáticas de múltiples formatos de Base de datos, a partir de una sola fuente única.

Debemos agradecer a Gustavo Alfredo Marín Sáez, quien colaboró con el diseño y código inicial del script generador de formatos.

 

Lista de cambios.

 

Script para generar archivos en diferentes formatos

La introducción de este script supone una notable mejoría en el momento de generar nuevos formatos de la Base de datos, ahora es posible que nuevos desarrolladores generen las pautas para nuevos formatos  y estos sean fácilmente actualizables cada vez que sea necesario.

Lista de Archivos en formatos independientes y el script de generación.

El script principal se llama csv_to_sql.js Pero no solo puede transformar de formato CSV a SQL, sino que puede interpretar cualquier formato fuente con instrucciones en JSON para dar como salida el archivo final en el formato deseado. Lamentamos no haber tenido el tiempo para cambiarle de nombre.

Este csv_to_sql.js  está escrito en Javascript (por qué este lenguaje?, no lo sé, habría que preguntarle a Gustavo Alfredo Marín Sáez)  y para ejecutarlo se le debe entrar una archivo con las instrucciones para el nuevo formato y el archivo maestro de la BBDD que está en CSV.

Aqui un ejemplo

node csv_to_sql.js formatos/postgres.json ../BD/PosgreSQL_utf8/BDCUT_CL__PosgreSQL_utf8__generado.sql ../BD/CSV_utf8BDCUT_CL__CSV_UTF8.csv

Como sabemos que escribir todos esos comandos no tiene clase, hemos generado un makefile para automatizar la actualización de todos los arhivos, de esta forma solo debe ejecutar desde tu terminal favorita algo como esto:

cd bdcut-cl/SCRIPT/
make clean
make all

Si tienes más ideas, estamos atentos en la página del proyecto en Github

 

 

10 años de ediciones en OpenStreetMap, 6 ciudades de Chile 2007 -2017

12 septiembre, 2017 at 11:49

Mediante la ayuda del script https://github.com/MaZderMind/osm-history-renderer logré generar este video time lapse con datos de 10 de años de ediciones en la Base de datos de OpenStreetMap, se pueden ver como 6 ciudades de Chile prácticamente partieron de la nada y gracias a miles de voluntarios se logró construir un mapa libre de Chile.

Te recomiendo seguir el tutorial oficial: https://github.com/MaZderMind/osm-history-renderer/blob/master/TUTORIAL.md

Para generar la animación de la zona de Concepción, también puedes especificar el espacio de tiempo (periodo) que quieres las animaciones, en este caso quiero todos los años disponibles. (los datos más antiguos datan del 2007)

./osm-history-renderer/renderer/render-animation.py -s /opt/OSM/osm-mapnik-style/osm.xml --bbox -73.1104946,-36.8467274,-73.004837,-36.7949211 --label "%d.%m.%Y" --label-gravity SouthEast -x 1920x1080 -S days=+14 -f Concepcion

Generar un video de las pantallas generadas
ffmpeg -r 10 -f image2 -i Concepcion/%010d.png -crf 0 -pix_fmt yuv420p Concepcion.mp4

Si quieres editar el video en un mac, es posible que tengas algún problema con el codec de video, por lo que es necesario recodificar nuevamente el video con el siguiente comando

ffmpeg -i Concepcion.mp4 -pix_fmt yuv420p Concepcion_2007_2017__2.mp4

Después que tienes las animaciones individuales, el resto es pasarlo a post-producción con tu editor de videos favorito.

Disfrútenlo en HD.

Quieres descargar el video? sigue este link: https://www.flickr.com/photos/dalacost/36274330474

Debilidades de Strava y mi colección de Hack tools

15 marzo, 2017 at 10:46

Hace 1 año exactamente que publiqué estos script en Github ( https://github.com/dalacost/strava_hack_tools ) y no había tenido mucho tiempo para hablar de ello. La idea de fondo detrás de este script ( strava_traces_downloader.py ), la cual es permitir múltiples descargas de muchos tracks de ejercicios en Strava de forma rápida y sencilla, con un solo comando.

Hay que destacar que Strava si tiene un API bastante desarrollada, que permite acceder a un montón de datos, pero eso está disponible principalmente para los usuarios logeados. Es decir si no tienes una cuenta de strava no tienes mucho que hacer.

 

En Strava no puedes bajar los GPX de otros usuarios si no eres Premium, pero si reconstruirlos ilegalmente.

Es el primer problema que tienen los usuarios cuando quieren de alguna forma poder tener en su poder y manipular las rutas, ya sea por que desean tener una copia en sus gpx, teléfonos o algo más.

Lo que te encuentras cuando no eres usuario Premium y ni hablar si no eres Usuario.

Esto es algo que en lo personal no le encuentro mucho sentido, pues esta supuesta «seguridad» se ve afectada por una de las mejores «habilidades» de la plataforma, los mapas interactivos. Como muchos programadores ya sabrán, al utilizar las APIs más comunes de mapas interactivos, normalmente se requiere que se precarguen los puntos de las lineas o polígonos en algún lugar, de preferencia oculta al usuario. Y Aquí está lo interesante de todo esto, pues si los puntos existen, entonces ya podemos comenzar a reconstruir el archivo original del track.

Una solución para evitar este problema es cargar estas líneas como imágenes, pero pienso que no lo hacen por que reduce notablemente la interacción con el usuario. En resumen, es una ventaja para nosotros.

Los mapas interactivos tienen los puntos definidos en algún lugar, en este caso en el XML streams, con lo que podremos reconstruir el GPX

Suena sencillo no? Unir toda esta información que está en el mismo mapa para reconstruir manualmente nuestro track original con la información mas o menos verídica. Y es que no solo podemos tener los puntos sino que con algo de trabajo podríamos reconstruir totalmente el GPX original (Algo que todavía no he completado al 100%).

El resto de la información necesaria.

 

En Strava los registros son correlativos, ups..

Algo que me llamó la atención y que facilita notablemente la manipulación masiva de información en strava, es que los registros son correlativos a partir de su ID, el truco está en la URL.  Tanto las actividades como los números de los Atletas son correlativos.

mi actividad ha sido la numero 857millones! impresionante. Cambia el número manualmente y será más impresionante.

Si nos pusiéramos a trabajar con esto podríamos tener un montón de cálculos, solo por decir algunos podríamos tener el numero de actividades por día/hora/mes/etc…  número de usuarios activos x día, etc.. Lugares del mundo donde tienen más usuarios, etc … un sin fin de información que Strava no comparte pero que potencialmente está disponible.

Lo mismo sucede con las URL correspondiente a las fichas de los Atletas, con lo que también se podría acceder potencialmente a un montón de información de cada uno.

Los invito a hacer una prueba y cambiar el número de su actividad o el numero de su Atleta por el inmediatamente siguiente.

strava_traces_downloader.py

Este Script en resumen aprovecha estas 2 debilidades en un solo script de multiples funciones :), Reconstruye el archivo GPX a partir de estos datos disponibles, evidentemente sin necesidad de ser Premium, ocasionalmente cuando no estas logeado la cantidad de puntos disponibles es menor, en algunos casos puede llegar a ser 100 puntos máximo. Por lo que es recomendable utilizar un usuario de Strava para descargar el track.

Les dejo algunas imágenes y pueden encontrar más detalles en el sitio del proyecto en GitHub (https://github.com/dalacost/strava_hack_tools)

Bajando un Track reconstruido de una actividad específica. Sin hacer Login.

 

Si bajas la actividad con tus datos de usuario de Strava puedes tener la posibilidad de bajar más puntos, en este caso 6916puntos v/s 6375 sin login.

 

Descargando todo el rango de actividades a partir de su id, en este caso desde la XXX08 a la XXX20, algunas fallan pues esas actividades no están disponibles, son privadas o fueron borradas.

 

Los invito a descargar el https://github.com/dalacost/strava_hack_tools y ver que pueden hacer todos los datos.

 

Nueva cara para Lacosox.org después de mucha agua bajo el puente.

20 noviembre, 2015 at 17:01

Hoy hemos completado el primero de muchos cambios que queremos darle al sitio en nuestro retorno a la publicaciones. Sabemos que ha pasado un montón de tiempo sin publicar nuestros experimentos y aventuras, y si que se han acumulado varias para comentar, estamos seguros que muchas de ellas les gustarán.

El primero de los cambios que hemos realizado es migrar completamente nuestro sitio web desde el viejo drupal 5.x a wordpress. Seguramente muchos no comprendían por que teníamos Drupal anteriormente y la razón era bastante sencilla, en la época en que creamos este sitio, simplemente wordpress parecía más un sistema de juguete, algo muy lejano a que hoy es, un sistema robusto, profesional y sencillo. (si, llevamos mucho tiempo con este sitio, desde que publicamos nuestros primer post por allá en el 2008. Un poco más de 7 años, como pasa el tiempo!).

A medida que pasen las semanas mejoraremos el estilo del sitio hasta dejarlo como nos gusta.

Uno de los puntos negativos de esta migración es que varios de los viejos links a nuestros post ya no estarán disponibles, evidentemente por que eran links de drupal y ahora manejaremos los links de forma más intuitiva. Sin embargo, aun podrán encontrar todo lo que busques en el cambio de búsqueda clásico que siempre ha estado en la misma esquina superior 🙂 (Algunas cosas nunca cambiarán). Esperemos que Google no tarde en leer los nuevos links… De todas formas los links directos a archivos de manuales o comprimidos se mantienen tal cual. (eso para el caso de archivos enlazados desde otros sitios).

Que disfruten el nuevo sitio.

Servilletero y Reloj de Lego Modelos Lacosox.

20 mayo, 2014 at 16:43

En algún momento de locura pensé que podría juntar tantas piezas lego como para armar un mueble… la verdad es que al poco andar me dí cuenta mis finanzas no podrían soportar tan digno proyecto, ya que mi estimación del mueble lego tomaría al menos unos 22.000 bloques de 4×2. y solo había logrado reunir unos 2.900 bloques aprox. Por lo que a ese ritmo seguramente tardaría unos años en acumular todo el material. (para obtener esa cantidad de bloques gasté unos $70.000 pesos chilenos [USD $140 aprox]).

Dado que ahora tenía un montón de piezas lego sin uso, ¿qué podría hacer con ellas?. Pues me faltaba un servilletero asi que manos a la obra!.

servilletero_lego_modelo_lacosox

Icreible servilletero modelo Lacosox.

Este servilletero está construido con 2 placas base de 10×20 (compradas en China, 5x10USD), varios bloques blancos de 4×2 (de segunda mano) y algunas piezas planas (compradas en China, 100 x 7USD). Quedó del tamaño perfecto para servilletas tradicionales 11x11cm, capacidad máxima 50 servilletas.

Por otro lado, mi reloj de pared que mecánicamente funcionaba perfecto, estéticamente presentaba un pequeño rayón, por lo que decidí construir uno nuevo, evidentemente también de legos.

reloj_modelo_lacosox_final_5

Delirante reloj de pared modelo Lacosox.

El reloj fue construido con 700 bloques aprox. de varidos tamaños, formas y colores. Más el motor chino del reloj que estaba antes en la pared.

Mira las imágenes de como se construyó, te pueden ser útiles si quieres construirte uno. Podrás ver que en un inicio probé algunos colores que luego descarté, además utilizé un molde para guiar las posiciones donde estarían los números.

reloj_modelo_lacosox_2 reloj_modelo_lacosox_3 reloj_modelo_lacosox_4 reloj_modelo_lacosox_5 reloj_modelo_lacosox_6 reloj_modelo_lacosox_7 reloj_modelo_lacosox_final reloj_modelo_lacosox_final_3 reloj_modelo_lacosox_final_4

 

Mis 5 Años colaborando en OpenStreetMap

8 abril, 2014 at 16:54

Debo confesar, que cuando descubrí OpenStreetMap por allá en el 2009, de inmediato me pareció una idea genial. En esa época a raíz de algunos proyectos que desarrollaba comencé a investigar las apis de cartografías web que existían, que de hecho eran bastante menos desarrolladas de lo que son hoy en día y por otro lado las soluciones profesionales eran demasiado costosas para la realidad que vivía. OpenStreetMap me ofrecía una nueva idea, compartir la información y aprovechar la que otros compartían…

Hace unos meses estaba realizando una de mis habituales contribuciones cuando me encontré por casualidad con este sitio ( http://hdyc.neis-one.org/ ), prepara un resumen acotado de las actividades durante la vida de cierto usuario. y UUU! justo se cumplían 5 años desde mi primera edición en OSM!

¿Qué hice en 5 años?

  • He ayudado a mapear varios pueblos pequeños completos, principalmente en la Región de la Araucanía, Chile. Destacando Temuco (que no es pequeño) y Curacautin.
  • Más de 115.000 cambios! Principalmente en caminos, edificios, nombres y direcciones.
  • Aunque me centrado en los datos de Chile, ocasionalmente también he colaborado a otras comunidades que han solicitado ayuda como Colombia, Bolivia, Panamá, etc. Es lo bonito de estar comunicados!

Entre otros datos que pueden ver en el resumen.

5_years_of_OSM