Exportar datos desde Runtastic

tracking

Recientemente he decidido cambiar de aplicación de seguimiento deportivo migrando de Runtastic a Endomondo. Las razones pueden ser muchas y cada uno tendrá las suyas, pero una de las que más me ha motivado ha hacerlo ha sido que no se permita la exportación de datos (si no utilizas la versión PRO).

Que permitamos que terceros usen nuestros datos … bueno, pero que no nos dejen a nosotros mismos exportarlos y usarlos como queramos, me parece una razón más que importante para dejar de usar el servicio.

Pasos para exportar las actividades de Runtastic

  • Abrir el portal web de Runtastic y dirigirnos a la opción de Historial.
  • Filtrar las rutas que queremos exportar (por año, meses, actividad, …)
  • Abrir la consola de desarrollo de Chrome (pulsar F12)
  • Seleccionar la pestaña Consola
  • Copiar el siguiente código y pulsar intro
var links = []; $('.type > a').each 
( function () { links.push($(this).attr('href')) } ) 

setInterval(function () {
   if ( !links.length) { return; } 
   var link = links.shift(); 
   link += '.tcx'; 
   var newFrame = document.createElement('iframe'); 
   document.body.appendChild(newFrame); 
   newFrame.style = 'width: 1px; height: 1px;'; 
   newFrame.src = link; 
}, 500);

Automáticamente, comenzarán a descargarse cada una de las actividades que tengamos filtradas. El formato en que son descargadas podemos modificarlo eligiendo una de entre las siguientes líneas.

 link += '.tcx';
 link += '.kml';
 link += '.gpx';

Una vez tengamos los ficheros en nuestro equipo, podremos importarlos en el servicio que deseemos. Yo por ejemplo los he importado en Endomondo seleccionando la opción «Nueva práctica > Importar desde archivo»

 

Instalación IceScrum

logo-icescrumTras bastante tiempo trabajando con Jira, toca probar cosas nuevas. En este caso, trabajaremos con Ice Scrum, una aplicación opensource para gestionar proyectos bajo la metolodogía agile con Scrum.

El proyecto libre con las características básicas, http://www.icescrum.org/en/, está publicado en GitHub como repositorio público, en el que todo el mundo puede acceder, contribuir, adaptar, … Así mismo, la empresa kagilum.com se ha encargado de desarrollar algunos plugin bastante interesantes, así como de ofrecer un servicio basado en la nube, para despreocuparte de instalaciones, mantenimientos y demás tareas de administración.

En nuestro caso, vamos a instalar la versión openSource en un servidor propio.

Seguir leyendo

Bash – N entradas más recientes

Objetivo: 

Consultar las N entradas (ficheros, directorios o ambos) más recientes en un determinado directorio para borrar, copiar, renombrar, etc, etc

Etapas:

  • listar los nombres de los elementos
ls -dt
  • filtrar cuantas entradas queremos mantener
  • +N = N entradas más recientes | -N = N entradas más antiguas

tail -n +N
  • ejecutar la orden que necesitemos
xargs FUNCTION

Si concatenamos cada comando con el anterior, obtendremos

# Mantener últimos 3 ficheros de logs del sistema
 ls -dt /var/log/syslog* | tail -n +4 | xargs rm -rf

# Copiar el último backup a un NAS
 ls -dt /tu/ruta/al/backup | tail -n -2 |  xargs -i cp {} /ruta/al/NAS

Definiendo permisos para Subversion

Si necesitamos una gestión de permisos específica para distintos repositorios subversion desplegados sobre el mismo servidor, podemos hacer uso de la librería authz_svn de Apache2

Apoyándonos en esta librería, un fichero de password estandar de Apache (gestionado con htpasswd) y un fichero de definición de privilegios, podremos configurar los permisos de nuestros repositorios SVN del modo tan detallado como necesites.

Seguir leyendo

Extensiones para Selenium webdriver

Si trabajas con Selenium y necesitas tener disponible cierta extensión en el navegador lanzado desde el driver, puedes hacerlo fácilmente añadiendo algunas líneas de código a la configuración del driver utilizado. Para hacerlo más elegante, nada como utilizar distintos profiles

  •  Firefox:
FirefoxProfile firefoxWithExtensions = new FirefoxProfile()
File myExtension = new File("/path/to/extension/extension.xpi");
firefoxWithExtensions.addExtension(myExtension)
  • Chrome:
ChromeOptions chromeWithExtensions = new ChromeOptions();
File myExtension = new File("/path/to/extension/extension.crx");
chromeWithExtensions.addExtensions(myExtension)

Pruebas como validación de la ingeniería del software


Excelente texto donde se pone de manifiesto la verdadera importancia y repercusión de las pruebas de software. Se puede debatir muy mucho sobre la similitud o no de la ingeniería del software contra otras ingenierías, pero lo que si debemos tener claro es que por su propia naturaleza, los métodos y procesos aplicados a un desarrollo software distan en gran medida de los empleados en una ingeniería clásica.

 Durante los últimos miles de años, los ingenieros han desarrollado las matemáticas y física que usan para una solución estructural sin tener que construirlo para ver lo que hace.

Seguir leyendo

Graficas para JMeter – Loadsophia

En general, cualquier plan de pruebas contemplará al menos tres hitos o fases intermedias claramente diferenciadas. Una fase inicial de preparación del entorno necesario, programación de los scripts, configuración de las herramientas necesarias, etc. El siguiente punto será la propia ejecución de las pruebas siguiendo el plan diseñado y finalmente, habrá una fase de análisis y reporte de datos, en la cual se deberá analizar todos los datos obtenidos durante las ejecuciones anteriores y presentarlos de manera que aporten la mayor información posible.

Para esta fase final de análisis y reporte de resultados se pueden utilizar multitud de herramientas y formatos. Por la naturaleza de este tipo de pruebas, quizás la manera más intuitiva y fácil de analizar los resultados sea dibujando estos gráficamente. En pruebas de rendimiento muchas veces se obtiene más información analizando la tendencia y progresión del test que conociendo un valor concreto. Para ello, Loadsophia nos ofrece una manera fácil, gratuita y cómoda de obtener buenas gráficas.

 ¿Qué es loadosophia?

Básicamente un servicio de análisis de resultados de pruebas de rendimiento y generación de gráficas. A partir de los datos extraidos de herramientas como Apache JMeter o Apache Benchmark podremos obtener una serie de gráficas útiles para nuestro informe final.

 ¿Cómo funciona?

Seguir leyendo

Modularizar con JMeter

En esto del desarrollo, es por todo conocidos que dividir, importar, reutilizar, … son acciones que nos reportarán un gran beneficio en el futuro, haciendo que nuestro código sea mucho más simple, se mantenga de una manera más sencilla, se eviten inter-dependencias, etc. Trabajando con JMeter en proyectos de cierto tamaño, es normal que el plan de pruebas de rendimiento empiece a crecer a poco que diseñes unos cuantos workflows o tengas numerosas peticiones a tu sistema.

En estos casos, es muy útil identificar aquellos escenarios genéricos que utilices en múltiples sitios, bien sea configuración para distintos escenarios, un conjunto de peticiones que siempre deben hacerse conjuntamente y en el mismo orden, o cualquier otro que consideres reutilizable.  Una vez identificados estos casos, podemos crear un pequeño repositorio de funciones que posteriormente podrás incluir en cualquier punto de tu plan de pruebas, así, si algo cambia, solo tendrás que tocar en un sitio, reduciendo el trabajo y sobre todo la posibilidad de cometer errores.

Cómo modularizar en JMeter

Haremos uso de un par de controladores. El primero de ellos, “Controlador simple”, nos servirá para agrupar todos aquellos recursos que queramos reutilizar, este será nuestro pequeño repositorio. Solo añade un controlador simple, desactiva su ejecución y bajo el, añade los módulos que quieras tener disponibles en el resto del plan de pruebas, utilizando también controladores simples

jmeter_1

Una vez tengamos nuestro repositorio creado, cuando necesitemos incluir ese “trozo” de código en nuestro plan de pruebas, bastará con añadir un “Controlador de módulo” y seleccionar el módulo que queramos incluir en ese punto, quedando el plan de pruebas como sigue.

jmeter_2

Además, tal y como se hace para el resto de controladores, si necesitas añadir alguna particularidad en un determidado punto, bastará con añadir como hijo del controlador aquel elemento que necesites, de modo que sus valores sobrescribirán a los definidos en el módulo importado. Por ejemplo, en la imagen anterior podemos ver como se ha añadido un elemento de configuración de cabecera HTTP, cuyos datos sobrescribirán a los definidos en el módulo inicial.

Con estos pequeños cambios, conseguiremos tener un plan de pruebas mucho más simple y facil de mantener.

Analizando el campo de batalla. Navegadores.

browser_fightDurante el desarrollo de una aplicación web, hay multitud de cuestiones que debemos tener presentes para que el resultado de la misma sea el mejor posible. Entre requisitos de cliente, de infraestructura, de usabilidad, etc, debe aparecer definido el target que va hacer uso de nuestra aplicación. Este target deberá ser usado para llevar a cabo un análisis acerca del uso y características de los navegadores y dispositivos a los que habrá que prestar mayor atención.

La primera idea que se nos viene a la mente es buscar estadísticas del uso de distintos navegadores para así priorizar nuestros esfuerzos, y dar la mejor respuesta a aquellos más utilizados. Como primera aproximación está bien, pero … hay cosas que puntalizar:

Seguir leyendo

¿Confías en tu equipo?

Quizás el nexo de unión entre personas más difícil de crear y más fácil de romper. Durante la evolución del ser humano, la confianza en los demás y en sí mismo ha sido un requisito imprescindible para su supervivencia. Sinceridad, credibilidad, honestidad son aspectos que promocionan esta relación de confianza.

Si nos centramos en cómo la confianza puede afectar a nuestro propio trabajo así como al funcionamiento de tu empresa podemos abordarla desde distintas perspectivas:

Confianza en uno mismo

Debemos ser honestos y conocer nuestras capacidades, nuestros límites. Nadie puede juzgar mejor que nosotros mismos si el trabajo que estamos desarrollando es el mejor que podemos hacer. Solo con nuestras acciones podremos obtener la confianza de los demás en nuestro trabajo. Ser persistente, disciplinar y conocer el objetivo a cumplir contribuye a aumentar la confianza en uno mismo.

Confianza en el equipo

Seguir leyendo