Archivo

Archivo del autor

Recomendación libro sobre patrones de diseño: «Head First Design Patterns»

El libro «Head First Design Patterns» (de la editorial O’Reilly) aunque ya tiene unos años, me parece una de las mejores formas de adentrarse en el mundo de los patrones de diseño.

Cover of "Head First Design Patterns"

Cover of Head First Design Patterns

Los patrones de diseño constituyen un punto fundamental de estudio si quieres programar decentemente.

¿Qué es un patrón de diseño?

Un patron de diseño es una arquitectura específica orientada a resolver un problema conocido, buscando optimizar la calidad del diseño, permitiendo la ampliación del mismo realizando la menor cantidad de cambios en el resto del código.

Como indican en el libro, los patrones de diseño son un conjunto de herramientas que debemos tener en la cabeza para utilizarlas cuando sea apropiado.

¿Por qué «Head First Desing Patters»?
El libro es bastante ameno, sencillo y rápido de leer. Está muy orientado a ejemplos, y va ofreciendo diferentes explicaciones a la resolución de cada problema, de modo que se comprenda bien el por qué de cada diseño. En el capítulo de introducción explican la metodología que han seguido en su redacción,  buscando mejorar la atención del lector para facilitar su lectura (y está bien planteado, por eso se deja leer con facilidad).

Además de patrones de diseño, va acumulando, y demostrando, un conjunto de buenas prácticas en el diseño de aplicaciones orientadas a objetos (que como todos sabemos, se basan en: la encapsulación, herencia y polimorfismo), como por ejemplo:

  • Encapsular lo que varía.
  • Favorecer la composición sobre la herencia.
  • Programar sobre interfaces, no implementaciones.
  • Las clases deben ser abiertas para la extensión, pero cerradas para la modificación.

El libro me parece muy bueno para quien se está iniciando en el estudio de patrones de diseño, o para quien tenga pocos conocimientos sobre el tema, para un progrador senior seguramente se le quedará un poco corto.

¿Qué patrones abarca?

No trata todos los patrones de diseño, pero si los principales. Éstos son los patrones que están incluidos en el libro (os enlazo su definición en la Wikipedia):

Cómo podéis ver no he listado el archiconocido Modelo – Vista – Controlador (MVC), que no deja de ser una combinación de varios de los patrones incluidos en la lista (el libro tiene un capítulo dedicado a la combinación de patrones donde se detalla en profundidad el MVC).

Para programar bien, además de mucha mucha práctica, hace falta leer, leer, y leer… este puede ser un buen libro para empezar.

Anuncio publicitario

La mejor forma de configurar tu cuenta de Gmail en iOS

Considero fundamental mantener mis contactos actualizados en todos los dispositivos que utilizo, ya sean iOS (iPhone e iPad) o mi cuenta de correo electrónico sobre cualquier plataforma (Gmail). De esta forma no tendré problemas por estar en un dispositivo u otro, y de paso, utilizo Gmail como copia de seguridad de mi agenda (no me gusta la opción de guardar estos datos sólo en el iCloud).

Gmail es una buena opción para utilizar como copia de seguridad ya que sus datos pueden exportarse con facilidad y podría utilizar los mismos contactos en prácticamente cualquier plataforma (sin contar con el soporte nativo de Android).

Hace un tiempo escribimos un truco para configurar vuestra cuenta de Gmail en vuestro iPhone o iPad (o iPod) y disfrutar de notificaciones PUSH y actualización de contactos vía OTA («Trucos configuración cuenta Gmail en tu iPhone«) configurando la cuenta como una cuenta de Exchange. Google va a deshabilitar esta opción, de modo que quería otra opción que cumpliese estas premisas:

  • Actualización automática de contactos vía OTA (indispensable).
  • No necesito PUSH en el email (no me aporta nada recibir el correo automáticamente, si lo recibo cada 15 minutos es más que suficiente, y la batería lo agradece). Es más, normalmente utilizo la aplicación de Gmail, con lo que la aplicación nativa de iOS queda para los envíos desde otras aplicaciones.

La forma más sencilla es la siguiente:

  1. Añadir una cuenta de tipo CardDAV para la sincronización de contactos: sincroniza vía OTA toda la información de los contactos, incluyendo las etiquetas personalizadas que defináis en los campos de vuestros contactos (la sincronización vía Exchange no permitía esta opción).
  2. Añadir una cuenta de tipo «Gmail» para obtener el correo electrónico y los eventos del calendario.

Crear la conexión CardDAV

  • Ajustes -> Correo, contactos, calen. -> Añadir cuenta… -> Otras -> Añadir cuenta CardDAV (vuestros datos + servidor: google.com)

Crear la Conexión de tipo Gmail

  • Ajustes -> Correo, contactos, calen. -> Añadir cuenta… -> Gmail (vuestros datos)

Para terminar de cerrar el círculo, también podéis sincronizar a través de CardDAV los contactos en vuestro Mac:

  • Aplicación Contactos -> Preferencias -> Cuentas -> Añadir -> Tipo de cuenta: CardDAV

He probado varios gestores de contactos que unifican la información de los contactos de varios servicios diferentes (como Smartr, Brewster o Cobook), pero ninguno ha conseguido que lo utilice como primera opción en mi día a día (bueno, ni como primera opción, ni nunca).

Como no usar el botón de Inicio del iPhone y hacer que el flash parpadee en las notificaciones (sin Jailbreak)

Quiero comentaros 2 pequeños trucos que encontraréis en las opciones de configuración de iOS.

Como no usar el botón de Inicio del iPhone

Hace ya un tiempo os contamos como hacerlo utilizando Tweaks disponibles cuando habéis realizado el Jailbreak a vuestro iPhone (Como no usar el de inicio de tu iPhone). Existe una opción incluida en el propio sistema que nos añade a la pantalla un pequeño botón que nos despliega un pequeño menú, que contiene entre sus principales funciones realizar la pulsación del botón de inicio:

  • Ajustes -> General -> Accesibilidad -> AssistiveTouch

El botón puede ubicarse en cualquier posición en la parte exterior de la pantalla.

Para el iPad la mejor opción es tener habilitados los Gestos multitarea (Ajustes -> General -> Gestos para multitarea) que nos permiten ir a la pantalla de inicio y navegar entre las aplicaciones sin pasar por el botón de inicio).

Utilizar el flash de la cámara en las notificaciones

Resulta muy útil sobretodo para los que solemos tener el teléfono sin sonido, y se nos olvida activarlo. De esta forma, además de vibrar, el flash parpadeará con las notificaciones:

  • Ajustes -> General -> Accesibilidad -> Parpadeo para alertas

Herramientas para mejorar tu productividad sobre OS X

Tras «Herramientas para mejorar tu productividad sobre Windows«, quiero compartir alguna aplicación igual de interesante para el sistema operativo de Apple.

En estas entradas no he mencionado aplicaciones como Dropbox o Evernote, de las que ya os hemos hablado, si no pequeñas aplicaciones para mejorar el uso del sistema operativo en general.

Tampoco hay ningún lanzador de aplicaciones o buscador de ficheros (para Windows últimamente utilizo FileSeek) ya que Spotlight cumple este cometido perfectamente (bueno, podéis probar QuickSilver por si queréis cambiar o necesitáis alguna configuración extra).

Algunas de las siguientes aplicaciones son gratuitas (biennn!!!) y otras no (¡tampoco pasa nada por pagar por algo que te da una utilidad!).

Mejora Finder: XtraFinder

Añade pequeñas, pero útiles, mejoras al Finder (como pestañas).

Gestor de Ventanas: Moom

Ayuda a cambiar el tamaño de las ventanas automáticamente (mitad izquierda de la pantalla, mitad derecha, superior, inferior…).

Memoria para el portapales: Clyppan

Como era  Ditto-cp para Windows, o Klipper de KDE. Para mi contar con memoria en el portapapeles es algo imprescindible.

Gestor RAM: Memory Clean

No tengo mayor queja con la gestión de memoria de OS X, lo tengo más a modo informativo que otra cosa.

Indicado tarjeta de vídeo en uso: gfxCardStatus

Si dispones de 2 tarjetas gráficas en tu equipo, esta aplicación te permite controlar su uso. En mi caso lo tengo como algo meramente informativo, ya que lo dejo cambiar automáticamente. Me sirve para estimar mejor el uso de la batería que me queda disponible.

Modifica la hora y el calendario en la barra del sistema: Day-O

Simple, pero personalizable calendario para tu barra del sistema (me gusta  bastante más que el del sistema).

Elimina datos innecesaros: Monolingual

El sistema y sus aplicaciones contienen un montón de datos de diferentes idiomas, y ocupan espacio innecesario. En mi caso, he eliminado todos los idiomas menos el español y el inglés, y esto me ha liberado 3.57GB. Además, también te permite eliminar la información de arquitecturas que no se correspondan con la tuya, en mi caso sólo he dejado Intel, e Intel 64 bits, y esto me ha liberado otras 500MB (liberar en total unos 4GB por datos que jamás vas a utilizar está muy bien).

The Hobbit y la resistencia al cambio

Somos «animales de costumbres», no nos gusta salir de nuestra zona de confort, modificar la manera en que hacemos las cosas. Tampoco nos gustan los cambios en como percibimos el mundo que nos rodea. Nuestro propio cerebro se encarga de que obviemos mucha de la información que tenemos a nuestro alrededor y la rellena con lo que espera que haya.

Hay un pequeño grupo de personas más propensas a los cambios, a probar todo lo antes posible. Esos que cuando cambian la interfaz de Gmail lo aceptan rápidamente y buscan como sacarle partido lo antes posible, o cada vez que actualizan una aplicación del teléfono (o tableta, o pc…) tienen un cosquilleo ante las posibles novedades que incluye… no es que su cerebro no realice esa tarea de autorellenado, ni que sean más inteligentes (ni más tontos…), supongo que simplemente gana la curiosidad. En este grupo de personas se agrupan en los innovadores,y en los «early-adopters», que no son ni un 20% del total:

Fuente: Wikipedia

Un ejemplo recurrente de esto es cada vez que Facebook (o el ya mencionado Gmail) hace algún cambio en el funcionamiento de cualquiera de sus múltiples interfaces. Siempre hay una oleada de quejas, que tras 7-10 días ya se van olvidando, y cuando se genera la siguiente modificación, se inicia de nuevo el proceso.

Vivo esto en mi día a día laboral: reimplementas un sistema, tras darle muchas vueltas, has reducido el nº de pantallas, has mejorado las búsquedas, has optimizado la visualización de la información, has aprovechado mejor el espacio, has conseguido reducir los tiempos de espera, y aún así los primeros 7-10 días son un mar de quejas… luego empieza a llegar el periodo de aceptación, y finalmente se termina por valorar los cambios positivamente, pero el proceso de asimilamiento siempre está ahí (incluso se llega a recordar acciones «mágicas» que antes se podían hacer, sin que nunca hayan existido).

Para reducir este choque, una de las máximas de las metodologías ágiles de desarrollo de software (las de mayor aceptación hoy en día) consiste en involucrar mucho al usuario final en el proceso de desarrollo, lo que aumenta su identificación con el nuevo sistema (lo conoce mejor, lo siente más como algo suyo) y además se consigue mejorar el producto final gracias a esta retroalimentación constante.

Caso de «The Hobbit»

Con The Hobbit han dado un pasito hacia delante en el uso de la tecnología en el rodaje de películas de cine aumentando el número de imágenes por segundo de 24 a 48.  Hoy en día el cine se rueda a 24fps por tradición. Ésta se inició para ahorrar costes utilizando la menor cantidad posible de celuloide, manteniendo la fluidez mínima necesaria en la imagen. Por fin, alguien se anima a romper con este esquema tradicional, completamente innecesario hoy en día y, como era de esperar, ha suscitado opiniones enfrentadas (os recomiendo «El hobbit, la mejora tecnológica, y la tenaz persistencia de la costumbre» de Enrique Dans).

Hay quien ha percibido una bajada de calidad tras le mejora técnica (que en realidad lo que ha producido es un aumento de calidad). La costumbre… la resistencia al cambio… pude ver la película en formato digital a 48fps y en 3D, y me encantó (y eso que entraba con mala opinión del 3D).

Llevo tiempo diciendo que no me gusta demasiado ir al cine por la falta de calidad de la imagen, en un televisor normalito en casa se podía conseguir una imagen mucho mejor. Durante los 10 primeros minutos de película tenía la sensación de que los movimientos estaban a cámara rápida, pero una vez acostumbrado a ese cambio, la sensación era de realmente tener a los personajes delante a unos pocos metros de mí (casi como si fuese un teatro).

Normalmente luchando contra los cambios no hacemos más que retrasarlos, y empeorar su proceso de asimilación… no tengamos miedo a los cambios, cada cambio en realidad supone una oportunidad de mejora.

Sobre el iPhone 5 y la innovación

Muchas son las voces tachando de chasco el anuncio del último iPhone por parte de Apple. Creo que el mayor problema es la pérdida de perspectiva de quien emite estas opiniones…

Es rigurosamente cierto que el iPhone 5 no es más que una versión vitaminada, con la pantalla un poquito más grande y con la novedad de la conexión LTE, del modelo anterior. ¿es eso una decepción? en absoluto, es lo normal.

Obviando rumores fuera de toda lógica, que atentan ante las limitaciones de la tecnología actual, lo único que se podría echar en falta es la inclusión de la tecnología NFC en el dispositivo… pero mucho me temo, que lejos de suponer un lastre para el dispositivo (en comparación con los modelos que ya disponen del chip NFC y funcionan sobre Android), supone un lastre para la implantación de la tecnología… no nos engañemos, los terminales que ya cuentan con esta tecnología no la aprovechan para casi nada… La idea principal para utilizar estos chips es para realizar pagos de manera rápida y segura, dejando de lado las tarjetas de crédito.

¿por qué Apple no ha incluido todavía chips NFC en sus dispositivos?

No es un problema técnico, es más bien problema de definición de negocio, ni está definida como podría utilizarse con el fin de realizar los pagos, ni Apple debe tener muy claro como meter la cuchara para llevarse su parte (el pago con tarjetas de crédito está más que implantando en todo el mundo, y prácticamente son 2 actores los que se llevan la mayor parte, Visa y MasterCard, y tristemente tanto los clientes como los establecimientos estamos obligados a tragar con sus condiciones y decisiones ya que son un estándar de facto… [ver nota al final]).

¿por qué no hay mayor nivel de innovación por parte de Apple?

Porque no lo necesita. El iPhone es un producto maduro, con una cuota de mercado importante, con una cuota de los beneficios del mercado abrumadora, y con el mayor porcentaje de fidelidad del mercado. Mientras se mantengan estas variables, no necesita provocar ninguna nueva disrupción tecnológica (ya lo hizo en su lanzamiento).

Apple ha provocado varios cambios enormes en el sector de la tecnología durante los últimos años, lanzados desde la innovación y la calidad de sus productos (mostró que se podía hacer mucho dinero sólo con productos de gama alta):

  • Lanzamiento del iPod: ya existían otros reproductores con memoria flash en el mercado, pero lograron que el iPod se convirtiese en el principal actor, y definitivamente cambiase la forma de consumo (y de compra) de contenido musical (a la larga digital). ¿alguien se acuerda del Mini-disc?
  • Lanzamiento del iPhone: si Bill Gates desde Microsoft consiguió llevar un PC a cada casa, Steve Jobs desde Apple logró llevar un «PC» a cada bolsillo (en ambos casos, personalmente esta es la principal aportación al mundo de la tecnología que les atribuyo).
  • Lanzamiento del iPad: el dispositivo perfecto entre el móvil y el PC… el nicho que nos faltaba para optimizar el acceso a la información digital en cada situación.

Para los usuarios es una pena estar abocados al lanzamiento de un nuevo modelo de año en año, en el que «simplemente» se aumenta su rendimiento y poco más (aquí quiero separar el lanzamiento del iPhone 4, el primero que disparó la calidad de las pantallas, cambio que ya se ve reflejado en los demás dispositivos de la competencia, y está llegando también a las computadoras). La única forma de evitar esta tendencia es a través de la competencia, si se dejan de líos con las patentes, en este sentido podemos tener años interesantes por delante (Android ya está maduro, y Microsoft está apostando mucho por este sector).

¿Ha olvidado Apple la innovación?

No creo. Esperemos a ver que tienen planeado para la televisión, ahí es donde puede llegar la próxima gran disrupción en el sector de la tecnología (y ya iba siendo hora, no se me ocurre otro «cacharro» que haya permanecido durante tanto tiempo sin ningún gran cambio).

A nivel de dispositivos móviles, creo que el campo donde más se puede avanzar es a nivel de Software (tanto los sistemas operativos en sí como las aplicaciones) y en lo que a Hardware se refiere, la batería: quien consiga una batería que ofrezca una duración digna, provocará un gran salto (si me quedo sin batería ni puedo pagar con mi móvil, ni utilizarlo para encender el coche, ni para abrir la puerta de casa…).

Nota: en el caso Wikileaks el gobierno estadounidense solicitó a Visa, MasterCard y Paypal para evitar que las donaciones realizadas a favor de Wikileaks llegasen a su destinatario… y las 3 empresas cumplieron esta petición, de forma que el gobierno estadounidense logró decidir en qué y en qué no podían los ciudadanos del resto del mundo gastar su dinero.

Citas – Invertir o invertir en tu personal…

Leído en Twitter:

CFO asks CEO: «What happens if we invest in our people, and then they leave us?» CEO: «And what happens if we don’t, and they stay?»

@lmpombob

Categorías: Citas Etiquetas: ,

Estadísticas de tu uso de Facebook por Wolfram Alpha

Hace unos días que Wolfram Alpha nos permite obtener un buen análisis de nuestra información en Facebook. Es interesante echarle un vistazo a estos números:

  • Estadística por tipo de uso (cambio de estados, subida de imágenes…)
  • Distribución semanal de las acciones
  • Quienes comentan y comparten más contigo
  • Distribución semanal de las acciones provocadas por aplicaciones
  • Estadística sobre genero, sexo, estado y geografía de tus contactos.

Para realizar el análisis basta con ir a esta dirección, hacer click en «Analyze My Facebook Data» y seguir los pasos que se os van indicando, es un proceso muy rápido, no se tarda ni 5 minutos.

A modo de comparación, voy a poneros mis grafos de contactos de Facebook, y de LinkedIn (hace un tiempo os escribí sobre la aplicación InMaps de LinkedIn, que nos permite generar estos gráficos) :


Y este es mi grafo de contactos de Facebook:

Teniendo en cuenta que los contactos son bidireccionales, a parte la diferencia en número (casi el doble en LinkedIn), parece que mantengo grupos de contactos algo más aislados unos de otros en Facebook.

Acabo de hacer mi donación a la Wikipedia #keepitfree!

En 1993 nació un proyecto con el objetivo de convertirse en la fuente de información digital de referencia como por entonces lo eran sobre el papel la Enciclopedia Británica o la Larousse. Desarrollado por la mayor corporación del momento a nivel tecnológico, Microsoft, basada en el modelo tradicional de contratar expertos y comerciar con los contenidos, parecía una apuesta segura… en el 2001 se inició otro basado en las aportaciones de sus usuarios, sin que cobrasen nada por ello (sin contratar expertos), el primero de ellos era la Encarta de Microsoft, y el segundo la Wikipedia… sobra mencionar el destino de cada uno de ellos.

En el blog si hay algo en lo que hemos insistido es en la tremenda oportunidad que tenemos gracias a Internet, y en gran medida a iniciativas como la Wikipedia, de aprender, de acumular conocimiento, y de compartirlo con los demás… somos sin ninguna duda la generación con mayor cantidad de información a nuestra disposición, ya depende de cada uno querer sacarle partido.

¿es la Wikipedia fiable?

Sí. Contiene algunos errores, también (hay estudios comparándola con la enciclopedia británica y la tasa de errores era muy parecida o incluso menor), pero con una importante diferencia, si encuentras algún error, lo puedes corregir. Hay editores que son más exigentes que otros a la hora de evitar la publicidad encubierta, o la información con algún sesgo… pero en líneas generales el contenido es fantástico (por ello en la mayoría de nuestras entradas hay enlaces a la Wikipedia para quien quiera conocer mejor algo de lo que citamos).

¿por qué realizar una donación?

La mejor descripción sobre porqué hacer una donación que he leído por ahora fue hace unos días en Twitter:

El mensaje oficial de Jimmy Wales (fundador de la Wikipedia) es:

Un mensaje del fundador de Wikipedia, Jimmy Wales

Google puede tener cerca de un millón de servidores. Yahoo tiene alrededor de 12.000 empleados. Nosotros tenemos 679 servidores y un equipo de 138 personas.

Wikipedia es el quinto sitio web en la red y es usado por 492 millones de personas diferentes cada mes, con miles de millones de vistas de páginas.

Comerciar es bueno, la publicidad no es algo malo, pero no tiene lugar aquí. No en Wikipedia.

Wikipedia es algo especial. Es como una biblioteca o un parque público. Es como un templo para el pensamiento. Un lugar al que todos podemos ir a pensar, a aprender, a compartir nuestros conocimientos con otros.

Cuando fundé Wikipedia, pude haberla creado como una compañía lucrativa, con anuncios publicitarios, pero decidí hacer algo diferente. A lo largo de los años, hemos trabajado bastante para no gastar de más. Cumplimos nuestra misión, sin desperdiciar nuestros limitados recursos.

Si todas las personas que leen este mensaje donaran ₡2.500, sólo tendríamos que recaudar fondos un día al año. Pero no todos pueden donar o están en disposición de hacerlo, y está bien que sea así. Cada año el número de personas que deciden donar es justo el necesario.

Este año, por favor considera hacer una donación de ₡2.500, ₡5.000, ₡10.000 o la cantidad que puedas para proteger y mantener Wikipedia.

Gracias,

Jimmy Wales

Fundador de Wikipedia

Aunque me gusta más éste, más corto, y evocando lo que más me gusta de Internet (también de Jimmy Wales):

«Imagina un mundo donde cada persona del planeta tuviera acceso libre a la suma de todo el conocimiento humano.»

Me gusta imaginar ese mundo, quiero vivir en ese mundo. No hay que donar mucho, cada uno lo que pueda/quiera… digamos 1 entrada de cine, 1 café del Starbucks, 1 copa en el lugar de moda… gastamos más dinero del que nos damos cuenta en nimiedades, no cuesta nada colaborar en algo así.

Categorías: Internet, Varios Etiquetas: ,

Estudiar en España se ha vuelto un lujo…

Actualmente estoy cursando un máster (Ingeniería del Software para la Web) en la UAH. Su carga lectiva es de 60 créditos ECTS, es decir, un curso completo de universidad. Mi plan es llevarlo a cabo dividiéndolo por la mitad en 2 años para no morir en el intento de compaginarlo con el trabajo, y como hice la matrícula del primer curso con los precios del año anterior, puedo exponeros el aumento del coste de la educación pública en Madrid (el precio del crédito es fijado por la comunidad de Madrid) del 2010 al 2012.

Nada más hacer la matrícula ya comenté mi opinión en Twitter:

Quiero dar más detalles. Este es el coste de cada una de las matrículas, correspondientes a los años 2010, 2011 y 2012 (todo son créditos en primera matrícula):

  • 2010: 30 créditos (más gastos de secretaría, y apertura de expediente): 985€
  • 2011: 30 créditos (más gastos de secretaría, y apertura de expediente): 1232€
  • 2012 : 30 créditos (más gastos de secretaría): 1955€ (este no es el precio definitivo, ya que la CAM no ha publicado el coste final de cada crédito para el curso 2012/2013, así que posiblemente será mayor)

Quitando los gastos de apertura de expediente de los 2 primeros años (30€), vemos que el coste de una matrícula del 2010 en el año 2012 ha pasado a costar más del doble. Estas cifras se corresponden  con sólo la carga lectiva de medio curso, así que estudiar en Madrid se ha convertido en un lujo (a nivel de coste al menos), unos 4000€/curso (sólo de matrícula).

Ya se que en «España Utópica» divagué un poco al respecto, pero si esto forma del camino para salir de la crisis, parece un camino que es mejor no recorrer.

A %d blogueros les gusta esto: