Algunos avances en el plan.

Seguimos con el plan comenzado hace 2 años, y aparcado porque la vida se va llenando de circunstancias que nos alteran nuestros propósitos. La principal circunstancia que lo alteró, aunque formaba parte de éste, ha sido que finalmente terminé la carrera. Y no sólo he terminado el Grado en Ingeniería Informática. Además, aprovechando convalidaciones y haciendo semestres hasta con 8 asignaturas, estoy a falta del TFG de terminar una segunda titulación, el Grado en Técnicas de Aplicaciones de Software.

Como parte de querer seguir creciendo como artesano del software y, además, por la espinita clavada de no haber terminado la ingeniería superior en informática en su día, también me he matriculado para el próximo semestre del Máster en Ingeniería Informática. No era mi preferido, pero es el único de los que oferta la UOC en modalidad online que es habilitante para el reconocimiento para el ejercicio de la profesión de Ingeniero Informático y permite el acceso a colegiarme. Me hace gozo poder poner en LinkedIn que soy Ingeniero ;P.

Código Limpio – Capítulo 1

Os pongo en situación. He comenzado un plan para ser mejor desarrollador. Recordar que somos aprendices eternos, aunque mi objetivo con este plan es llegar a ser un maestro. Uno de sus apartados es la lectura de libros técnicos. Comenzamos con el primer capítulo del primer libro técnico de los seis que espero leer en lo que queda de año, a uno por mes. ¿Qué nos cuenta el tío Bob en el primer capítulo de Código Limpio?

Básicamente se limita a preguntar a distintos expertos del mundo del desarrollo de softwate qué es para ellos el código limpio. No os haré espoiler. Os recomiendo darle un repaso y ver que opinan maestros de la talla de Bjarne Stroustrup, Grady Booch, «Big» Dave Thomas, Michael Feathers , Ron Jeffries y Ward Cunningham. Y tras la aportación de éstos, da a conocer su opinión sobre la maestría en el desarrollo de software, aclara que veremos código correcto y código incorrecto, y como transformar el código incorrecto en correcto, y deja muy claro que somos responsables de nuestro código.

En esta última afirmación estoy completamente de acuerdo. Si un programa falla, somos complices de ese fallo, somos responsables, somos los principables acusados y finalmente, somos los culpables. Puede haber sido por dejadez, por desconocimiento, por prisas debido a los tiempos de entrega imposibles… Siempre, tendremos nuestra porción de responsabilidad.

Para cerrar el capítulo nos invita a seguir la regla del Boy Scout para ser mejor programadores y para evitar algunos problemas futuros (no confundir con El último Boy Scout: «el agua moja, el cielo es azul y las mujeres tienen secretos»). La regla reza lo siguiente: «Deja siempre el campamento más limpio de como lo encontraste».

Con esto nos indica, que cada vez que desarrollemos alguna porción de código, pasemos por allí leyendo algo, simplemente estemos intentando averiguar como está implementada una determinada funcionalidad, hagamos un pequeño cambio que deje mejor el código que como lo encontramos. Puede ser un pequeño cambio nombre de variable, eliminar complejidad ciclomática en unos cuantos ifs anidados, extraer un método de otro demasiado extenso… Up to you.

Os espero en el próximo capítulo, pero eso ya será otra historia…

Tenemos un plan

«Está leyendo este libro por dos motivos. Por un lado, es programador. Por otro, quiere ser mejor programador.»

Con esta frase comienza el primer capítulo de Código Limpio (Clean Code), el famoso libro de Robert C. Martin (Uncle Bob), coautor del Manifiesto Ágil.

Por tercera vez, comienzo la lectura del libro. Las otras dos veces no pasé del quinto y del tercer capítulo respectivamente, ambas intentonas en inglés. Veremos en esta ocasión si, entre el compromiso de ir relatando en el blog mi aventura, y proceder a su lectura en castellano, conseguimos terminarlo y esta porción del plan se cumple.

Porque el querer leer el libro, y asimilar sus conocimientos, forma parte de un plan. Un plan concebido muchas veces, pero casi nunca ejecutado, o con una ejecución pésima. Un plan, con un único objetivo, que bien define la primera frase del primer capítulo, a saber, soy programador y quiero ser mejor. Alcanzar la maestría.

El plan está formado por distintas acciones: leer determinados libros, seguir determinados cursos online, aprender nuevas tecnologías y metodologías, terminar la carrera, resucitar el blog (aunque tener uno sea ya anticuado) y realizar algunos pet projects.

La carrera, bendita carrera, aquella que comencé a cursar en 1996, si mal no recuerdo. Este paso comencé a darlo en serio hace tres semestres. Recién terminado este que nos ocupa, me encuentro con media carrera justa, 120 maravillosos créditos ECTS. Depués de númerosos cambios de plan, de titulación, de universidades, confío que esta vez será la definitiva, así lo parece.

¿Qué libros, cursos, tecnologías, metodologías y pet projects serán? Pues ya veremos. Serán otras historias.

Me cuelo en À Punt Ràdio

El pasado lunes 8 de febrero de 2o21 participé para À Punt Ràdio en el programa Línia de fons d​e Gustavo Clemente. Estuve hablando de mis inicios en el fútbol americano, del panorama actual en mi club Valencia Firebats, del Team Spain Femenino y de la SUPER BOWL LV.

Quisieron aprovechar mi experiencia como jugador en clubes como Museros Bous y Valencia Firebats, como entrenador principal en la sección femenina y entrenador asistente en la junior y en la senior, y como entrenador de la línea de ataque de la selección nacional femenina para charlar durante un rato sobre uno de los deportes más apasionantes que existen.

Podéis escucharlo aquíMi intervención a partir del minuto 37.

Nuevo vídeo de iFab

El iFab UPV ha publicado un vídeo para promocionar la quinta edición de su Máster en Tecnologías Interactivas y Fabricación Digital que organiza el Departamento de Dibujo de la Facultad de Bellas Artes de la Universitat Politècnica de València, y en el que participo como profesor de un par de asignaturas.

En el máster colaboran Sendemà Edición y Desarrollo Tecnológico S.L.,
FabLab VLC, MIT MassachusettsWacom Co. Ltd, entre otros. Está dirigido por Francisco Berenguer y coordinado por Rubén Tortosa.

Podéis verlo a continuación:

Máster en Tecnologías Interactivas y Fabricación Digital

Se ha abierto hace poco el periodo de inscripción para la 5ª edición del Máster en Tecnologías Interactivas y Fabricación Digital que se imparte en la UPV y del cual participo como profesor de dos módulos.

ifab
Máster en Tecnologías Interactivas y Fabricación Digital

Las distintas titulaciones a las que os permite optar son:

  • Máster en Tecnologías Interactivas y Fabricación Digital (60 ects) +Info
  • Diploma de Especialización en Tecnologías Interactivas (30 ects) +Info
  • Diploma de Especialización en Tecnologías de Fabricación Digital (30 ects) +Info
  • Experto Universitario en Tecnologías Interactivas y Fabricación Digital (30 ects) +Info

Los módulos que imparto son:

  • Fundamentos de la programación I: Programación orientada a objetos con Java
  • Publicaciones digitales: Taller práctico de desarrollo de Apps

 

De nuevo me cuelo en CVRadio

Una vez más hice acto de presencia a través de las ondas de CVRadio en el programa Esports CV Nit d​e Paco Lloret y Víctor Martí, pero esta vez para hablar de fútbol americano. En concreto del partido de seminal de LNFA Serie A que ibamos a disputar en Reus dos días después y que enfrentaría a mi Valencia Firebats contra Reus Imperials.

Podéis escucharlo aquí. Mi intervención a partir del minuto 56.

Espoiler: Se perdió las semis.

Vuelvo a participar en CVRadio

Repitiendo la experiencia de dos días antes, el pasado miércoles 17 de mayo de 2o17 participe para CVRadio en el programa A Ciencia Cierta d​e Antonio Rivera dentro de la sección de la tertulia (El Ágora) junto a José Blanca y José Luis Rodríguez Navarro. Estuve hablando sobre seguridad, virus, el ciberataque que tuvo lugar el viernes anterior y que afectó a más de 70 países, hackers, NSA…

Podéis escucharlo aquí. Mi intervención a partir del minuto 32.

A ciencia cierta - CVRadio
A ciencia cierta – CVRadio

Notificaciones Push iOS

Con la nueva versión de sistema operativo 8.0 nos hemos encontrado que ha cambiado la forma de registrar un dispositivo para que pueda recibir las notificaciones vía Push.

Para ello primero definiremos un flag con el que poder comprobar en que versión de sistema operativo está corriendo nuestra aplicación:

#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)

Y posteriormente añadiremos el método correspondiente para registrar el dispositivo para notificaciones Push:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Let the device know we want to receive push notifications
    if (SYSTEM_VERSION_LESS_THAN(@"8.0")) {
        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
         (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
    } else {
        UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];
        [[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];
        [[UIApplication sharedApplication] registerForRemoteNotifications];
    }
    if (launchOptions != nil) {
        NSDictionary *dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
	if (dictionary != nil) {
            NSLog(@"Launched from push notification: %@", dictionary);
	}
    }
    return YES;
}