miércoles, 13 de noviembre de 2013

XML to XSD, y más utilidades geniales vía online

Actualmente me encuentro desarrollando una aplicación en Android que debe generar unos xml muy complejos. Para ello dispongo de varios xml de ejemplo. El problema principal radica en que no tengo los xsd, así que me estoy montando mis propios xsd a mano o con tareas ant.

Hacer esto es bastante tedioso, y no sé porqué no se me ocurrió antes buscar en internet si alguien había programado ya una herramienta que lo hiciera. De hecho he encontrado esta web. Desde esta web no sólo se pueden obtener xsd, sino base64, limpiar html, etc. Como suelo hacer cuando encuentro alguna web que me gusta, acabo de añadirla al pie de mi blog :D

Saludos.

martes, 5 de noviembre de 2013

Coaching, pensamiento positivo y cafés

Los lunes ando muy liado, y es que en mi empresa estamos haciendo un curso de coaching grupal… vamos, una serie de ejercicios, tareas y reflexiones tanto a nivel individual como cooperativo. En teoría todo esto nos va a ayudar a conocernos mejor, ser mejores personas, tener un objetivo común, etc. La Wikipedia lo explica muy bien :)

Evidentemente el curso está dirigido por un equipo de profesionales que nos guían y nos ponen los deberes. Certificados en coaching todos ellos.

La verdad es que mola. Mola mucho. Mola tanto que si hacemos una búsqueda en internet con términos como coaching grupal, coaching de equipo, etc, hay un montón de gente feliz.


¡La gente que hace coaching es super feliz!

¿Y de verdad funciona el coaching? Pues no lo sé, porque acabamos de empezar. El primer día fue rápido, y el segundo se me hizo un poco largo, pero muy interesante. El coaching sirve sobre todo para enterarte de qué opinan tus compañeros, ver cómo afrontan las situaciones, conocer sus opiniones y sacar a relucir la verdadera personalidad de cada uno.

Enterarme de que la empresa había contratado un curso de coaching me hizo gracia. Desde hace meses escucho el podcast de Jorge Fernandez, Pensamiento positivo. A mí me van estos rollos. Así que me llevé una grata sorpresa. Y es que el coaching desde mi punto de vista sirve para aprender a ver el lado bueno a todo y de todos.

Actualmente estoy en un equipo muy bueno. Tenemos gente de mucho talento, y estamos haciendo buenos productos. Creo que todos somos muy buenos profesionales, pero diferentes. Tenemos una buena visión, y creo que los clientes se benefician de ello.

Evidentemente todo en esta vida se puede mejorar, y espero que dentro de unas semanas seamos un equipo mejor. Si el coaching sirve para esto, bienvenido sea. Yo por mi parte le voy a dar una oportunidad.

Saludos.

domingo, 3 de noviembre de 2013

Mi relación con Nokia y Symbian S60 (parte 2)

Una vez un amigo me digo que nunca escribiera “continuará”, “parte 1 “ o similar en un post, ya que según él lo normal es no tener tiempo para escribir la continuación. Cuando escribía para xnoccio me pasó, y aquí he intentado estirar el tiempo para continuar con la historia Mi relación con Nokia y Symbian S60.

Tal como os comentaba, tenía un plan de negocio, preparé un viejo ordenador Pentium 120 con os2 warp, y me puse a currar. Al principio fue bastante duro, ya que partía de cero. Nunca había trabajado en un proyecto similar, no tenía experiencia ni nadie que me ayudara.

El primer paso fue decidir qué tipo de juego quería hacer. Personalmente me apasionan las aventuras tipo Myst, así que la elección fue fácil. Desarrollé un motor gráfico que permitía meter imágenes de fondo, sprites encima y diálogos. Además permitía meter lógica condicional para poder acceder (o no) a ciertas partes del mapa. En unos meses tuve lista una versión beta. La cual he recuperado y subido a youtube.


Versión beta de las chronicas de Ludwig s60. Disculpad la calidad de la imagen, pero fue grabada con una “creative webcam video blaster” hace más de 8 años :D

También he recuperado un trozo del código en c++ , el relacionado con el vídeo.


/*
* ============================================================================
*  Name     : CLudwigAppUi from LudwigAppUi.cpp
*  Part of  : Ludwig
*  Created  : 01/09/2005 by Carlos G. González
*  Implementation notes:
*     Initial content was generated by Series 60 AppWizard.
*  Version  :
*  Copyright: 2005
* ============================================================================
*/

TKeyResponse CLudwigAppUi::HandleKeyEventL(
    const TKeyEvent& aKeyEvent,TEventCode aType)
    {

	TInt iavanzado = 0;
	if(aType != EEventKeyDown)
       return EKeyWasNotConsumed;
    


     switch(aKeyEvent.iScanCode){

		case EStdKeyUpArrow:


				// Para el control del habla múltiple
				if (iAppContainer->ihabla == 1)	
				{
					if (iAppContainer->iEscenaa == 3) // Cabaña
					{
						if (iAppContainer->iguion[0] == 0)
						{
							iAppContainer->iguion[0] = 1;
							break;
						}else
						{
							iAppContainer->iguion[0] = 2;
							iAppContainer->ihabla = 0;
							iAppContainer->imapaactivo = 1; // Activo el mapa al empezar.
							break;
						}
					}  // Fin de la cabaña
						
					else if (iAppContainer->iEscenaa == 4) // Bosque
					{
						if ((iAppContainer->iPosicion.iX == 2) && 
							(iAppContainer->iPosicion.iY == 8) &&
							(iAppContainer->iBa == iAppContainer->iBs))

						{

							if (iAppContainer->ife[0] == 0)
							{
							if (iAppContainer->iguion[1] == 0)
							{
								iAppContainer->iguion[1] = 1;
								break;
							}else
							{
								iAppContainer->iguion[1] = 0; // Por si quiero repetir
								iAppContainer->ihabla = 0;	
								if (iAppContainer->imapacondi == 1)				
									iAppContainer->imapaactivo = 1;	
								break;
							}

							}


						} // Fin de la posición de Ludóvico
					}  // Fin del bosque 

					else if (iAppContainer->iEscenaa == 5) // Ciudad
					{
						if ((iAppContainer->iPosicion.iX == 5) && 
							(iAppContainer->iPosicion.iY == 1) &&
							(iAppContainer->iBa == iAppContainer->iBw))

						{

							
							if (iAppContainer->iguion[3] == 0)
							{
								iAppContainer->iguion[3] = 1;
								break;
							}else
							{
								iAppContainer->iguion[3] = 0; // Por si quiero repetir
								iAppContainer->ihabla = 0;	
								if (iAppContainer->imapacondi == 1)				
									iAppContainer->imapaactivo = 1;	

								iAppContainer->ife[3] = 1;
								break;
							}

							


						} // Fin de la posición de Baldovino


Los meses pasaron y al final obtuve un juego bastante decentillo. En esa época, no había plataformas de pago como itunes, android market, etc. Así que para distribuirlo me uní a la comunidad developer de Handango. No recuerdo a qué precio salió a la venta, pero sí algunas de las condiciones. La más molesta era que los juegos debían llevar un código de activación, y el control debía hacerlo el desarrollador, no el vendedor.

Así que desarrollé un simple programa en c++ en el que dado un imei devolvía la clave. Cualquiera que lo lea podrá ver que es un poco tonto, pero es que ya llevaba meses y no tenía muchas más fuerzas ni ganas, lo que quería era publicarlo.

//-------------------------------------------------
// Programa creado por Carlos Gonz lez Gonz lez
//
//   Generador de claves para el juego Ludwig
//-------------------------------------------------

#include 
#include 
#include 



void main(void)
{
   int imei[18];

   clrscr();

   printf("\n*******************************************************\n");
   printf("*                                                     *\n");
   printf("*    LL      UU   UU DDDD   WW W WW  III   GGGGGGGG   *\n");
   printf("*    LL      UU   UU DD  D  WW W WW   I    GG         *\n");
   printf("*    LL      UU   UU DD   D WW W WW   I    GG         *\n");
   printf("*    LL      UU   UU DD   D WW W WW   I    GG   GGG   *\n");
   printf("*    LL      UU   UU DD  D   W W W    I    GG    GG   *\n");
   printf("*    LLLLLLL UUUUUUU DDDD     WWW    III   GGGGGGGG   *\n");
   printf("*                                                     *\n");
   printf("*******************************************************\n");


   printf("\n\n\n Introduzca n£mero IMEI a registrar: ");

   


   for (int j=0;j<18;j++)
   {
      imei[j] = getche();
      if ((j == 1)||(j == 7)||(j == 13)) printf("-");
   }

   printf("\n El n£mero de registro es: ");

   putchar(imei[13]);
   putchar(imei[8]);
   putchar(imei[9]);
   putchar(imei[12]);
   putchar(imei[11]);
   putchar(imei[10]);


   printf("\n Pulse una tecla para continuar");
   getch();


}

Una mañana me desperté y me había llegado un email de Handando. El juego estaba a la venta. Unos días más tarde me llegó otro email, había vendido una copia y el comprador se ponía en contacto conmigo para obtener la clave. Le respondí con la clave solicitada. Parecía que todo iba bien, pero… Handango decidió cambiar la política de claves. Me enviaron un email diciendo que tenía que hacer ciertos cambios a la aplicación, entre ellos para facilitar el control y que el juego dejaba de estar a la venta mientras no aplicase los cambios…

Desde hacía unos meses trabajaba en Viavansi, y no tenía tiempo para nada. Así que así terminó mi aventura como desarrollador de juegos symbian.

Como anécdota os dejo unos cuantos enlaces que acabo de buscar por la red:

Quedan muchas cosas por contar sobre este tema, pero creo que como homenaje a nokia está bastante bien. Desde hace un tiempo estoy desarrollando una aplicación en Android que espero ver a la venta en breve, y con suerte con un poco más de éxito que esta.

Saludos.

Related Posts Plugin for WordPress, Blogger...