Efecto menéame en el Marketplace de Windows Phone

El pasado 15 de Septiembre recibí un correo del equipo de Microsoft donde me indicaban que el martes 17 de Septiembre mi aplicación ‘Tengo multas’ iba a ser destacada en el market place de Windows Phone, dicho y hecho, lo pude comprobar gracias a mi aplicación cliente de google analytics, viendo las visitas puede comprobar cómo se habían disparado.

Tengo Multasgoogle analytics client

Entre en el market place y allí estaba mi aplicación ‘Tengo multas’, la primera de todas, que orgulloso me sentí 😉 (Que pena no haber sacado pantallazos para la posteridad).

Ha estado destacada sólo en España (bueno, sólo está disponible en este país ya que consulta contra los diferentes boletines nacionales si alguna multa ha sido publicada para una matrícula y DNI dados) y únicamente por un día.

Entiendo que habrá un equipo de personas y que día a día van destacando diferentes aplicaciones según determinados criterios (número de reviews + calidad de las mismas o lo que sea), ya que yo nunca he realizado promoción de mis aplicaciones (con excepción de la publi que muestro de adduplex), aunque debería promocionarlas más. Así que gracias al elemento humano o artificial (algoritmo, consulta o lo que sea) que haya destacado mi aplicación.

Os muestro gráfico para que veáis como se han disparado las visitas. El día 17, las visitas se han multiplicado casi x10, pasando de 88 visitas del día anterior a 833 del día de autos para ir descendiendo y volviendo a la normalidad poco a poco y volver a las profundidades del abismo, jeje. Qué pena que la publi no termina de despegar en el ecosistema Windows phonero, si no, le podía haber invitado a mi mujer al cine 😉

efectoMeneame

Poco a poco Windows Phone (y su market place) van evolucionando y madurando y eso es muy importante y positivo tanto para desarrolladores como para usuarios, ya cuando se pueda entablar un diálogo o el derecho a réplica para con los usuarios que valoran las apps sin conocer la aplicación o a la ligera o con palabras impropias y sobre todo en aplicaciones que son gratuitas y cuya única finalidad es la de ser útiles y entretener a la gente, será la pera limonera.

Un saludo.

Windows Phone 7 y 8: Live Tiles

Llevaba mucho tiempo queriendo escribir un post sobre los live tiles de Windows phone (tanto para wp7 y wp8),

Pero he preferido esperar a la actualización de mi app ‘google analytics client’ para que podamos ver el código que he utilizado en la misma sobre los live tiles. Os animo a que si tenéis webs o apps con google analytics, os descarguéis la aplicación y podáis comprobar in situ el funcionamiento de los live tiles.

Me he basado en los posts de Javier Suárez Ruiz, Puntos NET, en los oficiales de Microsoft y en el de Nokia developer, con esto he podido dotar de versatilidad a mi aplicación en cuanto a los tan prácticos live tiles que windows phone nos brinda la posibilidad de utilizar de una manera muy cómoda y sencilla.
Mi aplicación utiliza el llamado Flip template (de los 3 posibles que tenemos a nuestra disposición, Flip, Iconic y Cycle templates).

No esperéis encontraros con un artículo teórico donde explique que es por ejemplo ‘reflexión’ o los live tiles en windows phone (para conocer que son estos conceptos podeis verlo en las webs que he utilizado como inspiración), el post es meramente práctico, por supuesto cualquier duda que tengáis estoy a vuestra disposición (y seguro que yo aprendo más que vosotros, así que adelante 🙂

Comencemos:

CREAR LIVE TILE
* en wp7 sólo tenemos un tamaño (mediano), en wp7.8 y wp8 tenemos hasta 3 tamaños para el Flip template – Small:159 × 159 pixels, Medium:336 × 336 pixels y Wide:691 × 336 pixels
* La idea es crear una imagen o texto, yo lo he hecho con imagen (que será lo que muestre en el live tile) con los datos que necesitemos, esto lo hacemos en la función crearLiveTile7 o crearLiveTile8
* esa imagen la guardamos en el espacio compartido que tenemos en el dispositivo (/Shared/ShellContent/)
* recuperamos la imagen guardada y generamos el live tile con esa imagen, esto lo hacemos en la función generarLiveTile7 ó generarLiveTile8

ACTUALIZAR LIVE TILE EXISTENTE
* Lo mismo que al crear, selecciono los datos a mostrar en el live tile, creamos una imagen o texto (en el ejemplo, he empleado una imagen)
* esa imagen la guardamos en el espacio compartido que tenemos en el dispositivo (/Shared/ShellContent/)
* recuperamos la imagen guardada y generamos el live tile con esa imagen, esto lo hacemos en la función generarLiveTile7 ó generarLiveTile8

Nota: Si desarrollamos para WP7.8 debemos editar el archivo de manifiesto WMAppManifest.xml, para ello en el explorador de soluciones hacemos clic derecho sobre el arhivo WMAppManifest.xml y elegimos la opción “Text Editor”. Justo debajo del elemento debemos añadir:

<AppExtra xmlns="" AppPlatformVersion="8.0">
    <Extra Name="Tiles"/>
</AppExtra>

Y ahora en el código de la aplicación añadimos:

//CREAR Y ACTUALIZAR LIVE TILE
//Tengo una función para conocer si el live tile lo creo para la versión 7.8 u 8 o para versiones previas
private static Version wp7Version = new Version(7, 10, 8858);

public static bool isWp8Version
{
	get
	{
		return Environment.OSVersion.Version >= wp7Version;
	}
}

if (isWp8Version)
{
	//llamamos a la función para el live tile para la versión 7.8 u 8
	crearLiveTile8Small();
	crearLiveTile8Medium();
	crearLiveTile8Wide();
}
else
{
	//llamamos a la función para el live tile para las versiones previas
	crearLiveTile7();
}

//WP7
private void crearLiveTile7()
{
	// generamos el front
	WriteableBitmap bmp = new WriteableBitmap(173, 173);

	bmp.Render(canvasFront, null);
	bmp.Invalidate();

	// lo guardamos en el shared
	using (var store = IsolatedStorageFile.GetUserStoreForApplication())
	{
		var filename = "/Shared/ShellContent/front.jpg";
		using (var st = new IsolatedStorageFileStream(filename, FileMode.Create, FileAccess.Write, store))
		{
			bmp.SaveJpeg(st, 173, 173, 0, 100);
		}
	}

	// generamos el back
	bmp.Render(canvasBack, null);
	bmp.Invalidate();

	// lo guardamos en el shared
	using (var store = IsolatedStorageFile.GetUserStoreForApplication())
	{
		var filename = "/Shared/ShellContent/back.jpg";
		using (var st = new IsolatedStorageFileStream(filename, FileMode.Create, FileAccess.Write, store))
		{
			bmp.SaveJpeg(st, 173, 173, 0, 100);
		}
	}

	// creamos el live tile
	generarLiveTile();
}

private void generarLiveTile7()
{
	StandardTileData tile = new StandardTileData();

	tile.BackgroundImage = new Uri("isostore:/Shared/ShellContent/front.jpg", UriKind.Absolute);
	tile.BackBackgroundImage = new Uri("isostore:/Shared/ShellContent/back.jpg", UriKind.Absolute);
	// le asignamos un nombre único para que podamos actualizar o eliminar el live tile
	string rutaView = "/Views/panDetallePerfil_LandPage.xaml?idLiveTile=1";

	//aquí diferenciamos si creamos o actualizamos el live tile
	//deberemos recogerlo en una variable
	if(bNuevoLiveTile)
	{
		ShellTile.Create(new Uri(rutaView, UriKind.Relative), tile);
	}
	else
	{
		ShellTile foundTile = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains(rutaView));

		if (foundTile != null)
		{
			foundTile.Update(tile);
		}
	}
}

//WP8
private void crearLiveTile8Small()
{
	// generamos el front
	WriteableBitmap bmp = new WriteableBitmap(85, 85);

	bmp.Render(canvasFrontSmall, null);
	bmp.Invalidate();

	// lo guardamos en el shared
	using (var store = IsolatedStorageFile.GetUserStoreForApplication())
	{
		var filename = "/Shared/ShellContent/frontSmall.jpg";
		using (var st = new IsolatedStorageFileStream(filename, FileMode.Create, FileAccess.Write, store))
		{
			bmp.SaveJpeg(st, 159, 159, 0, 100);
		}
	}

	bCreadoLiveTile1 = true;
	// creamos el live tile
	generarLiveTile8();
}

private void crearLiveTile8Medium()
{
	// generamos el front
	WriteableBitmap bmp = new WriteableBitmap(173, 173);

	bmp.Render(canvasFrontMedium, null);
	bmp.Invalidate();

	// lo guardamos en el shared
	using (var store = IsolatedStorageFile.GetUserStoreForApplication())
	{
		var filename = "/Shared/ShellContent/frontMedium.jpg";
		using (var st = new IsolatedStorageFileStream(filename, FileMode.Create, FileAccess.Write, store))
		{
			bmp.SaveJpeg(st, 336, 336, 0, 100);
		}
	}

	// generamos el back
	bmp.Render(canvasBackMedium, null);
	bmp.Invalidate();

	// lo guardamos en el shared
	using (var store = IsolatedStorageFile.GetUserStoreForApplication())
	{
		var filename = "/Shared/ShellContent/backMedium.jpg";
		using (var st = new IsolatedStorageFileStream(filename, FileMode.Create, FileAccess.Write, store))
		{
			bmp.SaveJpeg(st, 336, 336, 0, 100);
		}
	}

	bCreadoLiveTile2 = true;
	// creamos el live tile
	generarLiveTile8();
}

private void crearLiveTile8Wide()
{
	// generamos el front
	WriteableBitmap bmp = new WriteableBitmap(346, 173);

	bmp.Render(canvasFrontWide, null);
	bmp.Invalidate();

	// lo guardamos en el shared
	using (var store = IsolatedStorageFile.GetUserStoreForApplication())
	{
		var filename = "/Shared/ShellContent/frontWide.jpg";
		using (var st = new IsolatedStorageFileStream(filename, FileMode.Create, FileAccess.Write, store))
		{
			bmp.SaveJpeg(st, 691, 336, 0, 100);
		}
	}

	// generamos el back
	bmp.Render(canvasBackWide, null);
	bmp.Invalidate();

	// lo guardamos en el shared
	using (var store = IsolatedStorageFile.GetUserStoreForApplication())
	{
		var filename = "/Shared/ShellContent/backWide.jpg";
		using (var st = new IsolatedStorageFileStream(filename, FileMode.Create, FileAccess.Write, store))
		{
			bmp.SaveJpeg(st, 691, 336, 0, 100);
		}
	}

	bCreadoLiveTile3 = true;
	// creamos el live tile
	generarLiveTile8();
}

private void generarLiveTile8()
{
	// preguntamos si ya tenemos valores para los tres tamaños
	if (bCreadoLiveTile1 && bCreadoLiveTile2 && bCreadoLiveTile3)
	{
		string rutaView = "/Views/panDetallePerfil_LandPage.xaml?idLiveTile=1";

		//aquí diferenciamos si creamos o actualizamos el live tile
		//deberemos recogerlo en una variable
		if(bNuevoLiveTile)
		{
			// primero creamos el live tile por el metodo tradicional
			// y despues mas abajo lo actualizamos mediante reflection
			ShellTile.Create(new Uri(rutaView, UriKind.Relative), new StandardTileData()
			{
				/*Title = "iconic tile",
				BackTitle = "iconic tile",
				BackContent = "iconic tile",
				BackgroundImage = new Uri("/Assets/logo202x202.png", UriKind.Relative),
				BackBackgroundImage = new Uri("/Assets/logo202x202.png", UriKind.Relative),
				Count = 8*/
			});
			var tileToUpdate = ShellTile.ActiveTiles.Last();
		}
		else
		{
			var tileToUpdate = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains(rutaView));
		}

		Type flipTileData = Type.GetType("Microsoft.Phone.Shell.FlipTileData, Microsoft.Phone");

		Type shellTile = Type.GetType("Microsoft.Phone.Shell.ShellTile, Microsoft.Phone");

		var UpdateTileData = flipTileData.GetConstructor(new Type[] { }).Invoke(null);

		//SetProperty(UpdateTileData, "Title", "Título");
		//SetProperty(UpdateTileData, "Count", 19);
		//SetProperty(UpdateTileData, "BackTitle", "Título Atrás");
		//SetProperty(UpdateTileData, "BackContent", "Contenido.");
		//SetProperty(UpdateTileData, "WideBackContent", "Contenido para el tile en tamaño ancho.");

		Uri smallBackgroundImage = new Uri("isostore:/Shared/ShellContent/frontSmall.jpg", UriKind.Absolute);
		Uri backgroundImage = new Uri("isostore:/Shared/ShellContent/frontMedium.jpg", UriKind.Absolute);
		Uri backBackgroundImage = new Uri("isostore:/Shared/ShellContent/backMedium.jpg", UriKind.Absolute);
		Uri wideBackgroundImage = new Uri("isostore:/Shared/ShellContent/frontWide.jpg", UriKind.Absolute);
		Uri wideBackBackgroundImage = new Uri("isostore:/Shared/ShellContent/backWide.jpg", UriKind.Absolute);

		SetProperty(UpdateTileData, "SmallBackgroundImage", smallBackgroundImage);
		SetProperty(UpdateTileData, "BackgroundImage", backgroundImage);
		SetProperty(UpdateTileData, "BackBackgroundImage", backBackgroundImage);/*opcional*/
		SetProperty(UpdateTileData, "WideBackgroundImage", wideBackgroundImage);
		SetProperty(UpdateTileData, "WideBackBackgroundImage", wideBackBackgroundImage);/*opcional*/

		shellTile.GetMethod("Update").Invoke(tileToUpdate, new Object[] { UpdateTileData });
	}
}

private static void SetProperty(object instance, string property, object value)
{
	var method = instance.GetType().GetProperty(property).GetSetMethod();
	method.Invoke(instance, new object[] { value });
}

Y este será el resultado que obtendremos:

2013-07-03_093816 2013-07-03_093837 2013-07-03_093850

Batalla Naval: 4º clasificado en el Megathon Windows 2013 a nivel nacional:

Quien lo iba a decir, todo lo que empezó siendo un fin de semana de hobby programación amateur rodeado de gente como yo, con ganas de compartir experiencias e ilusión por hacer aplicaciones chulas pero sobre todo que sean de interés, ha terminado en un cuarto puesto en la final nacional.

El fin de semana del megathon, cuando terminamos el juego de Batalla Naval, mi compañero Luis y yo comentamos que no perdíamos nada por presentarnos a la competición nacional del megathon, pero éramos muy conscientes que entre todos los cientos o miles de participantes en los diferentes megathones locales habría mucho nivel, además algunos de los participantes gente con mucho renombre, pero aun así nos presentamos.

Luis tomó el control del proceso de presentación en el market y yo me olvidé del asunto, hasta que un buen día Luis me comentó que habían salido los resultados y habíamos quedado 4tos en la competición, no me lo podía creer, sabía que la app nos había quedado de lujo pero 4tos a nivel nacional, vaya!!.

Cuando comprobé la lista de aplicaciones ganadoras del Megathon y ver nuestra app allí fue un subidón. Incluso el diario ABC publicó una noticia al respecto.

Esto ha significado mucho para mí, ya que para nada me esperaba que un fin de semana de hobby como fue el megathon en Logroño iba a suponer quedar 4to a nivel nacional.

Batalla Naval

Batalla Naval

Del #Megathon ha salido una nueva aplicación para Windows Phone, se llama Batalla Naval y es es un juego de hundir las posiciones de los barcos enemigos para uno o dos jugadores.

Está basado en el clásico juego de hundir la flota. Hay un tablero a tu disposición donde tus navíos de guerra y submarinos son puestos aleatoriamente, mediante un sistema de turnos seleccionas una casilla del tablero de tu oponente y si en esa casilla sólo hay agua el turno cambia, si por el contrario dañas o hundes un barco enemigo continúas el turno hasta que falles.

El juego no termina hasta que todos tus barcos y submarinos, o los de tu oponente, son hundidos.

¡Piensa bien tu estrategia!

La verdad que me he quedado sorprendido de poder hacer un juego en solo dos días, yo sólo no habría podido, menos mal que contaba con la gran ayuda de @luissagasta y entre los dos hemos podido hacer un juego chulo. Tan chulo que ha resultado ser el ganador del #Megathon de Logroño!!

16fc13c4-c70f-4e16-a458-aff67030c41b

607d3a9f-5a3d-4e9a-acfe-43afd9ee4e7c

3fdeb415-5005-458a-8905-729b1a8dc02b

bd5eb9dd-67f2-4df8-b637-3e87e829edca

854805e1-7f9e-4568-bfd3-081ac5a775dd

#megathon 2013 en Logroño

Este finde ha sido el #megathon 2013 en un montón de ciudades españolas, yo he estado en el de Logroño, organizado por @RiojaDotNet
Me lo he pasado pipa, han sido 3 días a tope y súper intensos, lo mejor, la gente, gente que comparte mi misma afición, hacer realidad ideas que pasan por mi cabeza y que nos ayuden en nuestro día a día.
El Megathon, consiste en desarrollar una app en un fin de semana, bien de manera individual, bien en equipos, mi plan era el de disfrutar a tope, por lo que me daba un poco igual la app, aunque sí que quería que fuese para móvil.
Hice equipo con @luissagasta, un autentico crack del desarrollo, y lo hemos dado todo para que por lo menos la aplicación fuese funcional, nos hemos centrado en el reparto de tareas y si salía un error gordo pasábamos al XP (xtreme programming) hasta solucionar el error, al final y con un poco de suerte hemos podido terminar las funcionalidades mínimas propuestas y nos ha quedado un juego chulo.
A la hora de elegir la aplicación, los dos coincidíamos en buscar alguna novedad que presentase WP8 frente a su antecesor, barajamos el uso de lentes, speech y bluetooth, quedándonos con esta última, íbamos a hacer un jueguillo que fuese por turnos mediante bluetooth, nos pusimos manos a la obra y decidimos que completar un juego de barcos era factible en el tiempo que teníamos, definimos un poco la lista de tareas y la organización del trabajo y nos pusimos a ello, disfrutamos haciéndolo e incluso tuvimos tiempo para dormir!! 😉
La presentación también salió muy bien, no aparecieron ni Murphy ni el efecto demo (que si algo sale mal saldrá mal) y a la gente le gustó. A ver que tal la placa cerbuino que dan a los ganadores locales de la app.
Además la organización ha sido de 5 estrellas, yo sólo me he encargado de trabajar en la app y disfrutar con la gente, lo demás lo ha provisto @RiojaDotNet (gracias @asiertarancon, @mdquel, @os_jimenez y @juanvalert), nos ha suministrado energía (alimentación) + sabiduría (cualquier duda que hemos tenido la han resuelto brevemente demostrando que son unos cracks y que saben de que va todo esto).

Os pongo algunas fotos del evento:

20130412_20130414_MegathonWP8_Logroño_2 20130412_20130414_MegathonWP8_Logroño_1
20130412_20130414_MegathonWP8_Logroño_520130412_20130414_MegathonWP8_Logroño_720130412_20130414_MegathonWP8_Logroño_820130412_20130414_MegathonWP8_Logroño_3

20130412_20130414_MegathonWP8_Logroño_9

Tenemos que repetir!!

Busco Libros

Encuentra el libro que quieres leer, busca directamente en la 
base de datos del Ministerio de Cultura de España. 
Tendrás acceso a todos los libros editados desde el año 1972.

Podrás localizar libros por ISBN, autor, título y editorial.

Todo ello de una manera simple, intuitiva y sencilla.

La información mostrada en la presente aplicación 
es obtenida del Ministerio de Educación, Cultura y 
Deporte del Gobierno de España y 
está gestionada por la Agencia Española del 
ISBN (http://www.mcu.es/libro/CE/AgenISBN.html).

* Base de datos de libros editados en España:

Esta base de datos contiene referencias bibliográficas de los 
libros editados en España desde 1972, 
año en que nuestro país se unió al sistema ISBN. 
Está gestionada por la Agencia Española del ISBN. 
Los datos los proporciona el propio editor al tramitar y 
remitir a la Agencia el impreso de solicitud del ISBN.

Contiene las referencias de las publicaciones monográficas 
editadas en España que llevan ISBN, 
tanto disponibles como agotadas, editadas 
en distintas lenguas y diferentes soportes. 
Es una base de datos viva que diariamente 
incorpora nuevos registros.

* Base de datos de editoriales:

Esta base contiene datos de todas las editoriales españolas que 
están o han estado en activo desde 1972 hasta la actualidad, 
así como autores-editores, entidades, empresas, etc. 
que publican esporádicamente. 
Es una base de datos viva ya que diariamente 
incorpora nuevos editores que se dan de alta 
al solicitar el ISBN para las publicaciones que editan.

Espero que te sea de utilidad.

Busco Libros

BuscoLibros_ScreenShot1_es BuscoLibros_ScreenShot2_es
 BuscoLibros_ScreenShot3_es BuscoLibros_ScreenShot4_es
 BuscoLibros_Icono_300x300_es

Acabo de recibir mi nuevo lumia 800

Me lo ha enviado Nokia directamente, os explico como ha sido el proceso,

en Mayo de este año me apunté de casualidad a un concurso llamado reto smartfighters, donde indicaban que todas las aplicaciones nuevas publicadas en el market de Windows Phone entre junio y septiembre y que se apuntasen al reto smartfighter, serían evaluadas por un grupo de expertos y repartirían premios a tutiplé entre los ganadores.

En aquel entonces estaba trabajando en una app que es un cliente sencillo de analytics, el cual necesitaba para ver de un vistazo las métricas básicas de todas mis aplicaciones (aunque también sirve para webs).

La subí, la gente de Microsoft me la aprobó, y la apunte al reto, pero como tengo memoria de pez, pues con los días se me olvido que me había apuntado a dicho reto, la vida siguió su camino y de repente en Octubre recibí un mail de los organizadores del reto, indicándome que habían evaluado mi aplicación y que para premiar el esfuerzo realizado me iban a obsequiar con un flamante lumia 800 y la promoción de la app por 2 semanas.

No me lo podía creer, hombre, es una pena que no haya sido un móvil con Windows Phone 8, pero la verdad es que no me importa, ya he estado salseándolo y va genial, y además con el valor añadido de poder utilizar las aplicaciones exclusivas de Nokia (como el navegador gps que es de lo mejorcito que hay en el market).

La verdad es que así da gusto hacer aplicaciones!!

https://i0.wp.com/allaboutwindowsphone.com/images/reviews/lumia800/800-m.jpg

Google Analytics Client

Analytics client es un cliente de Google analytics con el que vas a
poder conocer en tiempo real (siempre y cuando estén disponibles en Google
analytics) el uso que están haciendo los usuarios de tu web o aplicación
móvil.

Analytics client tiene un panel que es totalmente personalizable,
donde podrás seleccionar que métricas deseas ver según las necesidades que
tengas. También podrás seleccionar si al iniciar la aplicación quieres
actualizar las métricas de todos tus perfiles o prefieres hacerlo
manualmente. En este panel y para cada perfil por separado, podrás
actualizar los datos, ver el detalle del perfil para acceder a más métricas,
ver eventos y crear el live tile.

* Asimismo, podrás ver estadísticas detalladas de cada perfil, datos
demográficos, eventos, gráficas.
* La aplicación es multiusuario por lo que puedes cambiar entre usuarios
rápidamente sin necesidad de andar introduciendo contraseñas.
* Podrás anclar al inicio y ver estadísticas desde la pantalla de inicio de
tu dispositivo. Tienes 2 maneras de crear el live tile, bien accediendo
directamente al detalle del perfil, bien actualizando los datos en el propio
live tile. Podrás tener tantos live tiles como perfiles tengas, incluso
varios live tile por perfil dependiendo de la dimensión temporal que quieras
(día, mes, hora…), y en cada live tile podrás ver las métricas que
quieras!
* Podrás elegir entre diferentes dimensiones temporales para ver las
estadísticas de tu sitio web o aplicación móvil.
* Podrás ver eventos para conocer que acciones llevan a cabo los usuarios en
tu página.

La contraseña de analytics, necesaria para obtener el código de autorización
de Google no se guarda en la aplicación.
Esta aplicación en ningún caso hará uso de los datos introducidos con fines
comerciales ni promociónales.

En definitiva, se trata de una aplicación enfocada a conocer en tiempo real
el uso que los usuarios hacen de tu web o aplicación móvil.

Espero que la disfrutes.

Google Analytics Client

Solar Weather

Si quieres conocer en tiempo real lo que está sucediendo en el sol, esta es tu aplicación!.
Gracias al satélite Advanced Composition Explorer (ACE), a la sonda Solar and Heliosferic Observatory (SOHO) y a los satélites gemelos Solar TErrestrial RElations Observatory (STEREO) podemos conocer de primera mano que está pasando en el sol, y además lo podemos ver en nuestro dispositivo móvil desde cualquier lugar y en cualquier momento, es increíble!.

Todos los datos son suministrados por la NASA.

La versión 1.0 abarca los datos e imágenes suministrados por el satélite ACE, que son:
* SWEPAM – viento solar.
* Magnetómetro.
* EPAMe – electrones de baja energía.
* EPAMp – protones de baja energía.
* SIS – protones de alta energía.

Espero que sea de vuestro agrado y sirva para conocer mejor al astro rey.

Solar Weather

Scrum Planning Poker

Encontrarás está aplicación útil ya que
* permite conocer el esfuerzo acumulado del sprint.
* permite modificar y / o eliminar estimaciones del sprint.
* permite modificar el valor de la carta que has votado.
* una vez que has votado, automáticamente se pone boca abajo para que el resto del equipo no conozca tu estimación. Haciendo tap con el dedo mostrarás la carta.

Cada vez es mayor el uso que hacen las empresas de las metodologías ágiles
para una mejor gestión de sus procesos productivos. Scrum es una de las
metodologías más aplicadas y aceptadas. Una de las tareas de scrum es la de estimar la pila de productos del sprint y para ello se utiliza el método de planning poker o valoración de expertos, donde las partes técnicas implicadas en la ejecución y éxito del esfuerzo realizan una estimación de lo que costará realizar la tarea.

El cometido de la presente aplicación es justamente ese, que podamos realizar las votaciones.

En la pantalla principal tenemos todas las cartas posibles, y además podemos ver cuanto esfuerzo tenemos reservado en el sprint.

Al seleccionar una carta, aparece boca abajo, y al hacer tap con el dedo la mostraremos al resto del equipo de trabajo.

Podremos modificar su valor (en el caso de que finalmente hayamos seleccionado otro valor para la tarea) y aceptar la carta. Una vez aceptada la carta, el valor de ésta pasará a sumarse al esfuerzo del sprint.

Asimismo en la pantalla principal si hacemos tap en el esfuerzo del sprint aparecerá un listado de estimaciones, pudiendo modificar o eliminar cada uno de ellos, o incluso resetear el valor del sprint a 0.

El icono de la aplicación y la imagen de inicio han sido obtenidas de la web:
http://www.scrumshortcuts.com

A disfrutar de la aplicación scrumeando 😉

Scrum Planning Poker