Archivo

Archivo de Autor

Citas – La dificultad de programar…

Al menos una de las importantes:

“Any fool can write code that a computer can understand. Good programmers write code that humans can understand. “

Martin Fowler

Categorías:Citas Etiquetas: ,

OS X: Añade a tu Dock tus aplicaciones/documentos/servidores/volumenes recientes

Siempre es útil tener a mano la lista de las últimas aplicaciones o documentos que hemos abierto, en OS X es posible añadir una pila a tu Dock que incluya el listado de los últimos elementos que has utilizado, así como tus favoritos.

Es una única pila, en la que en su configuración puedes seleccionar que debe mostrar (además de su configuración visual):

  • Aplicaciones
  • Documentos
  • Servidores
  • Volúmenes
  • Favoritos

Para añadir esta pila, debes correr estas 2 ordenes directamente en el Terminal, primero se añade la pila:

defaults write com.apple.dock persistent-others -array-add ‘{ “tile-data” = { “list-type” = 1; }; “tile-type” = “recents-tile”; }’

Y finalmente se reinicia el Dock:

killall Dock

El resultado:

En “Herramientas para mejorar tu productividad sobre OS X” tenéis otros pequeños trucos para mejorar vuestra productividad sobre OS X.

Categorías:Recomendaciones Etiquetas: , , ,

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.

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.

%d personas les gusta esto: