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

Flisol 2013 en TEMUCO!

30 mayo, 2013 at 09:41

El Festival Latinoamericano de Instalación de Software Libre, FLISOL, es un evento que se viene realizando en Latinoamérica desde el año 2005, con el objetivo de dar difusión al Software Libre.

Este año en la ciudad de Temuco, Chile, se llevará a cabado el día Sábado 8 de Junio , Hora 10:30-13:30 para Charlas y 15:00-18:00 Instalaciones. En la Universidad Mayor, Temuco. Pueden ver un mapa de cómo llegar en el link oficial http://temuco.flisol.cl

mail flisol 2013

Javascript as object oriented (javascript class object; class in javascript)

3 noviembre, 2012 at 16:12

El objetivo de las siguientes notas es generar una estructura en JavaScript que nos permita reutilizar de manera limpia las funciones creadas en otros ficheros javascript, para esto reorganizaremos el código intentando aproximarnos al concepto de clase tomando como base su implementación en el lenguaje de programación orientado a objetos PHP. El material que adjunto lo desarrollé para mis alumnos del curso desarrollo web que actualmente dicto, esto dado que no encontré algún documento que describiera una aproximación a la creación de una clase con JavaScript en la web. Abajo adjunto los códigos que use en el documento. Si encuentran un error o algo mal favor reportar a gustavo(arroba)lacosox.org o en el formulario de contacto de esta web, gracias.

DESCARGAR PDF JavaScript como Orientación a Objetos

JavaScript_as_OO_0
Título: JavaScript_as_OO_0 (0 click)
Leyenda:
Filename: javascript_as_oo_0.pdf
Size: 230 KB
src_java_script_as_OO.tar
Título: src_java_script_as_OO.tar (0 click)
Leyenda:
Filename: src_java_script_as_oo-tar.gz
Size: 24 KB