lunes, 6 de enero de 2014

Nuevo móvil en mis manos, Nokia Lumia 520

Los que me siguen en twitter ya sabrán que he cambiado de móvil. Mi anterior móvil era un Sony Ericsson Xperia Neo que me ha dado un buen servicio durante más de dos años, pero hay cosas que me estaban mosqueando desde hacía tiempo.

La decisión no ha tenido nada que ver con el hardware, sino con el software (android 2.3.6) que lleva. No es que sea un mal sistema operativo. De hecho me encanta programar en Android y le estoy dando mucha caña a la versión 4.X, el problema es que he llegado al límite de este sistema y hay cosas que no me gustan. Reconozco que si me comprase un móvil de gama alta de android no hubiera tenido esos problemas, pero es que yo siempre busco móviles por calidad-precio.

Por comentaros un poco los problemillas que he tenido:

  • Sincronización mala con Google Calendar: Lo que ocurre es deja de funcionar, así de simple. Si el teléfono está recién restaurado a valores de fábrica va bien, pero al tiempo deja funcionar. He localizado una causa por la que falla, aunque no sé si es la única, y consiste en quedarse con poco espacio en la memoria interna del teléfono. Concretamente si el espacio libre mínimo llega al límite definido por el sistema deja de sincronizar. He realizado unas pruebas y son unos 40mb.
  • Otro problema ha sido la sincronización con los contactos de Google mail. Y es que cuando un contacto del teléfono tiene varios números o cuentas de correo, al sincronizar me aparecen varios contactos con la información repartida. Parece una coña, pero es así, y eso sin mencionar que a veces pierde valores. En Google Play encontré varias aplicaciones avanzadas de gestión de contactos que solucionaban el problema, pero vamos, que esto debería funcionar de serie.
  • Lentitud, lentitud y más lentitud. No sé porqué android se va ralentizando según pasan las horas, pero a mí me ocurre. Esto parece ser un problema también en las versiones 4.X, pero en estas es mucho más sencillo matar tareas y con un poco de maña se soluciona. El problema es lo comentado, que mi móvil usaba la versión 2.3
  • Desconexión aleatoria de wifi, etc. Y esto, no he tenido ******* de solucionarlo.

Evidentemente android tiene algunas cosas muy buenas. Y he hecho cosas chulas, como por ejemplo el sistema de sincronización interna que me monté con un servidor propio usando scripts y ftp, lo cual molaba bastante, pero no han sido suficientes para decantar la balanza a su favor. No obstante seguiré usando el terminar para desarrollo, pero como teléfono principal me he pasado a Nokia.

¿Y por qué el Nokia Lumia 520?



Nokia Lumia 520. Un móvil muy bueno con Windows Phone 8

Pues básicamente por Windows Phone 8. Me parece una auténtica maravilla. Es increíble lo fluido que funciona, la interfaz tan limpia, lo optimizado que parece todo… en fin, que los de Microsoft se lo han currado mucho.

Comparando los dos terminales he perdido algunas cosas que molaban mucho, y he ganado otras. Os planteo la siguiente tabla que para vosotros será un poco chorra, pero que mi me parecen cosas a destacar :P


Sony Ericsson Experia NeoNokia Lumia 520
Sincronización No sé porqué a veces deja de funcionar. Va como la seda
Whatsapp La interfaz es muy clara y limpia La interfaz no es tan bonita, y no permite enviar un vídeo previamente grabado con la cámara si es mayor a 12 segundos. Aunqe con el Nokia trimer se pueden acortar, pero no es tan bueno como en android.
Cámara 8 Mpx. Simplemente genial. 5Mpx. Aquí he perdido un poco, y se nota.
Pantalla La pantalla de este terminal es genial. Para mí lo mejor del teléfono. Misma resolución que el otro terminal, pero no se ve tan bien. Es que sony es mucha sony en pantallas y cámaras.
Carpetas Puedo agrupar programas en carpetas. No se pueden crear si no es rooteando, por lo menos por ahora.

En la tabla anterior sólo he planteado lo que realmente me ha llamado la atención. Es verdad que he sacrificado pantalla y cámara, pero he ganado en productividad, y se nota.

Quizás este año me pille un android más moderno también para desarrollo, ya que la programación en android me gusta mucho, pero como teléfono particular Nokia con Windows Phone viene dando fuerte.

Saludos.

martes, 31 de diciembre de 2013

¡FELIZ AÑO NUEVO!

Parece mentira que ya ha pasado otro año más el blog. Este año ha sido muy interesante y ha tenidos algunas anécdotas:

  • Durante el año pasado y parte de este, el post de Lorem Ipsum era el más visitado , jajaja. Incluso recibí algún que otro email dándome las gracias. No sé porqué se posicionó bastante bien en algún buscador y la gente entraba aquí a copiarlo. Por supuesto a los que me escribieron sobre el post les remití a la página es.lipsum.com
  • El perfil de usuarios que visitan el blog sigue siendo en su mayoría de curritos que tienen un problema, visitan el blog y me escriben un email para que les eche una mano. Yo encantado si puedo ayudar.

Este año he tenido más de 3500 visitas, son 3000 más que el año pasado. La verdad es que estoy muy contento con el crecimiento de las visitas e emails recibidos, aunque no me dejéis muchos comentarios.


Incremento de visitas al blog este año.

España y México siguen siendo los países que más visitan el blog, mientras que Argentina ha cedido este año la tercera posición a Colombia.


Los 10 primeros países con más visitas al blog.


Si a un lugar quieres viajar... me debes consultar... soy el mapa... el mapa el mapa el mapa...

Bueno, no os entretengo más. Os deseo a todos Feliz Navidad y año nuevo. ¡Nos leeremos en el 2014!

Saludos.

lunes, 16 de diciembre de 2013

Primera semana de CProject en Google Play

  • Eres un encanto Walker.
  • Este lugar… de lo único que hablamos aquí es de sexo, y de sentimientos…

Estaba viendo el capítulo “Sin Límite de Tiempo” de la octava temporada de Colombo, cuando me he acordado de que hoy se cumplía una semana de la publicación de CProject. Así que me ha dado por conectarme al Dashboard de Google y sacar unos cuantos datos, a ver que tal iba la cosa.

Os pongo dos gráficas bastante simplonas, las que salen por defecto:



No se la ha bajado ni el tato.


Gente que tiene buen gusto y quiere ser productiva, por países

En resumen, según las estadísticas ha habido 8 instalaciones de la aplicación. Aunque me acabo de volver a conectar después de escribir el post y ya me aparecen más de 10, pero para el caso es lo mismo.

Pero tranquilos, que Roma no se conquistó en un día, y además hay buenas noticias. Resulta que cuando publiqué la aplicación el día 10 no aparecía ni en el buscador de Google Play, ni en la parte de las novedades, ni nada. Había que seguir el enlace directo que puse en mi anterior post. A lo largo de esta semana la aplicación ha ido apareciendo e indizándose en el sistema, y ahora los usuarios la pueden localizar. Así que espero que las cifras de descargas aumenten un poquito.

En fin, veremos como acaba este experimento.

Saludos.

martes, 10 de diciembre de 2013

CProject en Google Play


CProject listo para descarga en Google Play

Buenas a todos. Tal como os comentaba en mi anterior post acabo de publicar la aplicación CProject en Google Play en https://play.google.com/store/apps/details?id=com.charlicode.cproject

Os pongo algunas capturas más de la misma:


Vista analítica. No hace falta hacer cábalas para saber que tarea va mal.

Edición de tareas.

Exportación de datos. Puedes exportar toda la información de la aplicación en formato .xls y aplicar un ETL para migrar :D

Vista gannt, con scroll vertical y horizontal.

Ahora mismo la aplicación no está preparada para móviles, sólo para tablets. Durante el año que viene le iré añadiendo más características.

Por ahora tengo pensado:

  • Compatibilidad con móviles.
  • Contextos.
  • Más diagramas.
  • Una nueva vista GTD.
  • Exportación a XML.
  • Y otras cosas chulas que ya os iré comentando.

Por supuesto si alguien quiere algo en concreto que lo comente y lo estudiaré.

Saludos.

sábado, 7 de diciembre de 2013

Avance de CProject, gestión de proyectos en Android. Próximamente en Android Market

Hace más de un año escribía este post en el que os comentaba que estaba realizando una pequeña aplicación que permitía gestionar tareas y sincronizarlas con OpenERP. A finales de 2012 aún no tenía pensado como iba a evolucionar el desarrollo, puesto que en realidad fue un proyecto rápido de cuatro días que preparé para una entrevista.

Aquí os pongo unas capturas de la primera versión. Como se puede comprobar usa por defecto el estilo visual de android. Simplemente le añadí un degradado a los títulos que encontré haciendo una búsqueda por internet (lo siento, no tengo la página).


CProject 2012. Vista de gestión de proyectos

CProject 2012. Vista kanban de tareas. Siento no tener una captura con tareas, no la hice en su momento.

Durante todo un año he ido añadiendo funcionalidades nuevas, ya que el proyecto inicial sólo constaba de una vista para la gestión de proyectos y otra vista kanban para la gestión de tareas. No sólo me enfrenté a retos de programación, sino a decisiones difíciles, como por ejemplo quedarme en casa trabajando mientras el resto de la peña se divertía en la piscina (sólo un rato, después fui, tranquilos :D )


Diseñando características de la nueva versión

Haciendo pruebas con la interfaz de usuario

Además de crear un estilo visual mucho más amigable, actualmente la aplicación tiene una serie de características bastante interesantes, como por ejemplo:

  • Vista gannt: Clásico diagrama Gantt con scroll vertical y horizontal.
  • Vista analítica: Facilita la interpretación de los datos y el estado del proyecto al usuario.
  • Exportación de datos en formato Excel.
  • Etc

Os presento las nuevas pantallas para que las podáis comparar con las anteriores. Como se puede ver, no hay color.


CProject 2013. Vista de gestión de proyectos. Estado actual.

CProject 2013. Vista kanban. Como se puede ver no hay color, literalmente

¿Y por qué os cuento todo esto? Pues porque acabo de empezar el proceso de publicación en Android Market. Actualmente me encuentro en proceso de verificación de datos, fee, etc. y espero que en 2 ó 3 días esté disponible para su libre descarga.

En cuanto esté publicada la aplicación os escribiré unos cuantos post más sobre ella para que podáis conocer las características de primera mano.

Saludos.

domingo, 1 de diciembre de 2013

¿Dónde nació la web?


Placa indicando el nacimiento de la web

Rebuscando en youtube he dado con un curioso vídeo Birthplace of the World Wide Web - Computerphile de Computerphile en el que realizan un tour por el CERN. En el vídeo comentan y enseñan muchas cosas curiosas, como por ejemplo el primer servidor que usaron, lo tétrico que pueden ser algunos pasillos de ese lugar, etc.


Primer servidor usado. NEXT.

Lo que más me ha llamado la atención es que la web se diseñó usando una estructura compleja de tubos anclados en el techo, siendo posible el apagado completo de las webs si fuera necesario :D

Os dejo con el vídeo.


Vídeo cortito pero interensante.

Saludos.

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.

jueves, 24 de octubre de 2013

Trabajar en la nube no mola nada :(

Como está de moda, y como muchos productos están saliendo con opción de trabajar directamente en la nube (Google Docs, Office 360, etc) me propuse hace unos días intentar trabajar así. Para ello decidí escribir una entrada en mi blog, la cual estaba muy currada, directamente en modo borrador.

La entraba iba a tratar sobre un problema que me salió con Jasper Reports en java al cual me costó muchas horas encontrar solución. Ya estaba acabada, simplemente estaba releyendo todo antes de publicar cuando sucedió lo inesperado...


Soy idiota, lo sé :(

Y es que soy idiota. Trabajar en la nube no mola. Al recargar la página del borrador... ¡estaba en blanco!

En fin, esto me servirá de lección. A partir de ahora todo a Word y después al blog, nada de hacer las cosas en modo borrador.

:(

domingo, 20 de octubre de 2013

Mi relación con Nokia y Symbian S60

Hace un mes Microsoft compró la división de móviles y servicios relacionados de Nokia. Durante este tiempo se han publicado muchas noticias relacionadas con esto, como por ejemplo como se han visto afectadas las acciones de las dos empresas, que nokia dejará de dar soporte a symbian el 1 de enero de 2014, etc. También he visto por algunos blogs (lo siento, perdí los enlaces) historias de usuarios comentando lo satisfechos que fueron con algunos modelos de nokia. La más interesante para mí ha sido una que comentaba justo lo contrario, lo malo que fue un modelo E51 y lo mágico que fue el primer iPhone.

En mi caso tuve dos modelos de nokia: una ngage y un 3650. Mi historia con nokia es un tanto especial, ya que está relacionada con la programación y tiene algunas cosas divertidas. Espero disfruten conociendo esta parte de mi vida tanto como yo escribiéndola.


Corría el año 2004 ó 2005, y yo estaba terminando la carrera de informática en la Universidad de Huelva. Como muchos jóvenes en esos años, soñaba con tener una consola Xbox. La había visto funcionando en un piso de unos amigos de la facultad, y alucinaba con sus gráficos. Mi modesto K6-2 a 500 Mhz no daba la talla respecto a juegos, aunque para compilar aplicaciones, investigar y hacer la carrera iba más que sobrado. Entre semana daba clases particulares de programación a compañeros de la carrera con dificultades en las materias relacionadas, y los sábados por la mañana daba clases de física de 2º de bachiller (COU) a una vecina de mis padres. Así que poco a poco iba ahorrando.

Al contrario de la creencia popular, los informáticos también ligamos, y yo tenía novia (en el año 2006 le hice el update a esposa, aunque eso es otra historia). Mi novia trabajaba de cara al público en una empresa (no voy a dar datos), y el problema que tenía era que si un cliente o clientes entraban a cinco minutos del cierre no lo podías echar, había que atenderlos. Así que era habitual que muchos días yo estuviera en la puerta de su empresa, esperándola, hasta las 10 ó las 11 de la noche siendo su salida a las 8 de la tarde.

Un día al fin tuve el dinero suficiente, y me fui al hipercor a comprar la Xbox. Creo recordar que costaba unos 120€. El caso es que cuando iba a pagarla, se me ocurrió, ¿y si compro una portátil y así las horas de espera de mi novia, las hago más entretenidas? Así que solté la Xbox, y me fui a mirar las game boys advance que tenía expuestas. Supongo que el vendedor se dio cuenta de la situación, y se me acercó. Obviamente no recuerdo al pie de la letra la conversación, pero fue más o menos así:

- Vendedor (V): ¿Puedo ayudarte en algo?

- Yo (Y): Quería llevarme una game boy

- V: No están mal, pero yo me llevaría lo último que ha salido, una ngage

En eso momento se me vino a la cabeza el anuncio de la ngage que había visto esa semana en la tele .


(Lo siento, no encontré la version en español, pero creo que era este)

Le pedí que si me podía hacer una demo de la consola, que si me gustaba me la llevaba puesta. Estuvo como 15 minutos contándome funcionalidades, poniendo juegos, etc. Me la compré con un pack de fútbol, y me llevé el Ashen suelto. Flipé con ese juego. Con el tiempo conseguí tener muchos más juegos, aplicaciones, etc.


Mi ngage y los juegos que tengo.

Esa es la primera parte de la historia. Muy común, que podría haberle pasado a cualquiera. Ahora os contaré como se relaciona todo con la programación.

Pasados unos meses acabé la carrera. Como la mayoría de los jóvenes que acaban, lo primero que hice fue apuntarme a una bolsa de empleo en prácticas que ofrecía la universidad. Los requisitos eran ser estudiante a falta de X (no recuerdo) asignaturas para acabar, o estar en el primer año de carrera terminada. La bolsa funcionó y recibí tres ofertas, en este orden:

  1. La primera oferta fue del ayuntamiento de Mazagón o de una empresa relacionada, no recuerdo. Me ofrecieron 4 horas de trabajo al día, ganando unos 400 €. La oferta no estaba mal, pero yo vivía en Sevilla, y con el alquiler del piso perdería dinero. Tampoco quería ir y venir todos los días desde Sevilla, así que la rechacé.
  2. La segunda oferta era de una cooperativa de fresas de la provincia de Huelva. Las horas y el importe eran similares. El problema y lo que me tocó las narices fue que me dijeron que dos días en semana había que hacer horas extras, y que no me las pagarían. Así que no me pareció bien.
  3. La última oferta fue para trabajar un buffet de abogados en Huelva capital. Hablé con una persona que me dijo que estaban incorporando firma digital al buffet, y quería un ayudante para su informático. Todo iba bien, me gustaba de lo que hablaban, hasta que me dijeron que tendría que trabajar 8 horas al día, pero que el contrato sería sólo de cuatro. Les dije que no me parecía bien, que si quería que hiciera las ocho horas pues que me hicieran el contrato de ocho, pero el tío se puso bastante chulo conmigo, a soltar que había muchos deseando coger las prácticas, que yo era un privilegiado por haberme llamado, etc. Evidentemente rechacé la oferta.

A continuación llamé a la facultad, les conté lo que me habían dicho, les dije el nombre del buffet, y les pedí que me dieran de baja de la bolsa de práctica.

Me encontraba en una situación un poco jodida, porque no tenía experiencia, y buscar prácticas sin estar en la bolsa no era lo habitual. Así que se me ocurrió, ¿y si me hago yo mis propias práctica y consigo experiencia de programador? Y la segunda pregunta fue… ¿y eso como se hace?

Después de darle vueltas, busqué en la red si había información sobre como programar para móviles. Me compré un libro de J2ME y durante una semana le dí caña, pero yo quería algo más. Tenía la ngage comprada, así que busqué sobre el tema, y di con un libro. Lo compré a través de Amazon.


Libro de desarrollo de Nokia Symbian Serie 60

Mis padres fliparon un poco cuando le dije que había comprado un libro, que iba a hacer un juego, y que había rechazado las prácticas. Pero he de decir que me apoyaron en todo.

Así que me puse manos a la obra. Busqué un compilador, monté el sdk, y empecé migrando prácticas de turbo pascal a c++ con symbian.

Justo tras acabar los primeros “Hola mundo” hice un parón de una semana. En esa semana me informé sobre donde vender el juego, que papeleo me implicaba, hice un plan de desarrollo de unos 9 meses, monté un viejo Pentium 120 con osdos warp 3 para ayudarme en algunas tareas y volví a programar.

Todo estaba en marcha.

Continuará…

domingo, 22 de septiembre de 2013

Madrid 2020 in the world :D

Después de la derrota de la candidatura de España como sede de los juegos 2020, mi fuentes RSS se están inundando de parodias sobre el tema. Ayer vi un vídeo que me hizo mucha gracia, sobretodo el comentario final de Mariano.



Ana Botella - In The World (Botella's Mix) from Javi Fer

Y es que aquí nos tomamos las derrotas con mucho humor. Y si no que se lo comenten a los del Mundo Today, con el genial artículo Madrid 2020 se celebrará en Tokio.

Saludos.

jueves, 19 de septiembre de 2013

Quick Fix en eclipse... Unsupported IClasspathEntry kind=4

Hoy me ha pasado una de esas cosas que dan un poco por saco, sólo un poco, aunque en teoría no afectan al proyecto en el que estoy trabajando. El caso es que tengo un proyecto maven y eclipse me está indicando que tiene un problema en el pom.xml y que debo realizar un quick fix.

Hasta ahí todo correcto, nada nuevo. Lo que me molesta es que después ejecutar dicho quick fix eclipse muestra un error Unsupported IClasspathEntry kind=4 y aunque el aviso de error desaparece, vuelve a aparecer si reinicio eclipse. Como siempre hago, he buscado por internet y he dado con varias soluciones (1 y 2 ) que no me han funcionado y una explicación con algo más de detalle del problema.

Después de varias pruebas he dado con una solución que a mí me funciona :D

Consiste en crear una configuración en maven con los parámetros eclipse:clean eclipse:eclipse y ejecutarla. Por supuesto no he tenido que quitar naturaleza de maven, ni reimportar, etc. Y al reiniciar eclipse… sigue funcionando :D

Saludos

viernes, 13 de septiembre de 2013

OpenCms Days 2013


OpenCms Days 2013 logo.

Todos los años se realiza un evento llamado OpenCms Days en el que se reúnen profesionales del sector tecnológico para hablar de OpenCms y temas relacionados.

Lo interesante de esta reunión, aparte de que Alkacon de la mano de Alexander Kandzior presenta las novedades de la futura versión de OpenCms (este año será la novena), es que distintos profesionales de diferentes empresas explican en conferencias sus casos de éxito, integraciones con otras tecnologías, etc.

Este año hay dos ponencias que me llaman mucho la atención:

Gradle based OpenCms build and automatic setup

Esta conferencia sera impartida por Tobias Herrmann, desarrollador de Alkacon. Y lo que presenta es la nueva forma de construir los módulos y el propio OpenCms usando Gradle en lugar de Ant. He de confesar que no conocía Gradle hasta hace muy poco, pero una vez echado un vistazo parece un buen cambio.

Social Connect for OpenCms Portal

Esta segunda conferencias será impartida por Helmut Manck, CEO de eonas: IT-Beratung und Entwicklung. En principio esta conferencia no me llamó mucho la atención, ya que la descripción es algo tan machacado como incorporar contenidos sociales a OpenCms. Lo que me ha hecho cambiar de opinión ha sido que al final de la descripción de la conferencia se da a entender que dichas integraciones las hacen usando JSR 286: Portlet Specification 2.0. ¿Y qué es un portlet? En la wikipedia vemos que se lo han currado mucho escribiendo todo este tocho, pero yo voy a hacer un mini resumen: Es una aplicación independiente dentro de otra aplicación. Vamos, que mola mucho.

En fin, estoy ansioso porque publiquen las conferencias, espero que no me decepcionen.

Enlaces de interés:

OpenCms Days.

Conferencias.

Saludos.

domingo, 8 de septiembre de 2013

Menú contextual en ListView no funciona... Desactivar el foco de los items del ListView

Hace casi un año escribí una entrada en la que ponía como hacer un menú contextual para elementos de un ListView. El otro día intenté realizar mi propio ejemplo, y no funcionaba en la nueva aplicación que estoy desarrollando. No obstante la miniaplicación que usé de ejemplo para sicha entrada funcionaba correctamente.

Después de mucho comerme la cabeza, y de muchísimas búsquedas en san google, dí con esta entrada.

Lo que comenta el autor, es que si los items del ListView tienen elementos con "foco activo", en mi caso botones, hay que desactivar dicho foco para que funcione el menú contextual. En resumen, que a cada botón le he tenido que añadir el código:

android:focusable="false"

Esta tontería me ha tenido varios días liado :( . Menos mal que el personal comparte las cosas, y que existe http://stackoverflow.com.

Saludos.

miércoles, 21 de agosto de 2013

Eclipse Juno a pantalla completa.

Buscando por internet como poner eclipse Juno a pantalla completa, me encuentro con este interesante post de stackoverflow en el comentan que hay un plugin de eclipse para hacer eso. Una vez instalado usando Crtl + F11 eclipse estará a pantalla completa, pero no es multimonitor. Saludos.

martes, 23 de julio de 2013

Tonterías varias que mejoran la usabilidad de una aplicación android

Este post lo iré actualizando con pequeños tips rápidos que voy usando en las aplicaciones.

Hacer que por defecto no salga el teclado en una vista con campos de edición:

// Se pone dentro del método onCreate:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

Volver a atrás pulsando el icono principal de la actividad (el superior izquierdo)


@Override
 public boolean onOptionsItemSelected(MenuItem item) {
  super.onOptionsItemSelected(item);
  switch(item.getItemId()){
      
   case android.R.id.home: 
    this.finish(); 
   break; 
   
  }
  return true;
 }

Bloquear el tipo de pantalla (horizontal vs vertical)

En el archivo AndroidManifest.xml, en la declaración de la actividad que queramos forzar:

android:screenOrientation="landscape"  // En este caso la pantalla siempre será horizontal

Fuentes:

Aquí encontré como fijar el giro de pantalla. Aunque tiene más explicaciones interesantes.


jueves, 18 de julio de 2013

Lista select con spinner en android

Acabo de necesitar hacer una lista de selección para mi aplicación en android. Como en otras ocasiones, encontré la respuesta en un blog conocido.

El primer paso consiste en crear los valores que se mostrarán. Dichos valores se almacenan en un fichero arrays.xml situado en la carpeta values.

En mi caso los valores los he referenciado a través del fichero string.xml


 

   
       @string/kanbanlist1
       @string/kanbanlist2
       @string/kanbanlist3
   
    

Después en el layout de la actividad pertinente, escribimos un "spinner" que referencia a los valores sabiendo que "entries" son las entradas del select, y "prompt" el título que muestra el popup.




Sólo nos queda recuperar el valor desde la actividad. A continuación el resultado final.


Lista select.

Popup que sale al pulsar sobre el select

Recuperación del valor:

// Recupera el valor:
Spinner spinnerKanban = (Spinner) findViewById(R.id.editTaskListNumber);
long valueSpinter = spinnerKanban.getSelectedItemId();
valueSpinter++;  // El spinner comienza en 0, pero mis comparaciones de valores en 1 :D
// Operación a realizar con el valor.

Saludos.

Related Posts Plugin for WordPress, Blogger...