ago 08

Soy un convencido del uso Evernote como “almacén digital total” desde que lo descubri gracias a ThinkWasabi. Leer el libro de Berto me ayudó a ver su utilidad: en un mundo con cada vez menos papel y más documentos digitales, las carpetas de las que habla David Allen en su libro de GTD para guardar los materiales relacionados con un proyecto se han encarnado en las libretas de Evernote. Evernote te permite acceder a esos trozos de información desde cualquier dispositivo: tu ordenador, el teléfono, etc.

Como consecuencia de este uso, para cada búsqueda de información que hago en Internet para un proyecto, voy creando un conjunto de notas que agrupo en una libreta: notas que redacto yo, páginas web interesantes, artículos que encuentro, etc. Por ej., preparando el viaje que voy a hacer en Septiembre al iOSDevUK me encontré con un montón de páginas abiertas en Safari: información sobre la conferencia, sobre el pueblo donde se celebra, sobre Gales, sobre el Galés (el lenguaje), etc. El caso es que, tras cerrar las petañas con las búsquedas de Google, tenía un montón de información interesante que quería seguir revisando en otro momento. La solución: copiar todas esas URLs a una nota de Evernote. Empecé, y cuando iba por la segunda pensé: “tiene que haber una manera más sencilla de hacer esto”. Gracias a los cielos soy perezoso, y esa noche teníamos una reunión en la NSCoder Night de Sevilla. Allí planteé mi duda, y me respondieron con este script (no recuerdo quien, y me molesta, porque no puedo buscar en mis tweets para encontrarlo), que copia las pestañas abiertas de Safari en una nota de Evernote.

Guardar script como Aplicacion

Guardar script como Aplicacion

Si sigues los pasos de la web (haces click para abrirlo en el editor de AppleScript) puedes guardarlo como una aplicación. Esto te crea un fichero .app, justo como las aplicaciones que instalamos normalmente. Se usa abriéndolo (haciendo doble click sobre el icono, lanzándolo con Spotlight, vamos, como cualquier otra aplicación de tu Mac) y te creará una nota en el Inbox de tu Evernote con todas las pestañas que tengas abiertas en ese momento en la ventana de Safari. Yo antes de lanzarlo cierro las pestañas que no me interesan para la “foto” y uso la opción de menú de Safari Ventana > Fusionar todas las ventanas. Así tengo una sola ventana con los tabs que quiero guardar. Por rizar el rizo de la productividad, tengo asociado en Keyboard Maestro una secuencia de teclas a ambas acciones, así que me resulta muy sencillo.

 

Tagged with:
abr 05

Me paro un momento y miro en lo que estaba trabajando, y los programas que tengo abiertos ahora mismo, y no puedo evitar pensar que soy lo más alejado del minimalismo. Al menos en lo que se refiere al ordenador. Era minimalista cuando no tenía dinero más que para mi querido Amstrad CPC 464 con el monitor fósforo verde, con su unidad de casetes. El único periférico que tenía era un Joystick. Y a usarlo. Pero veía en las películas a gente en países lejanos y extraños, en salas llenas de ordenadores.

Como el programador de Parque Jurásico (que, por supuesto, además de ser el malo, cobarde y torpe, estaba mal pagado y era gordo y feo). Por cierto, si veis de nuevo JP os llamarán la atención dos cosas: una, que están programando fumando, algo impensable en cualquier entorno de hoy en día. La otra, que el sistema de “bug tracking” que usan es una libreta donde van anotando los errores :-)

Volviendo al tema que me traía aquí, en esta mañana he comenzado programando en C, en el IDE Eclipse corriendo sobre Windows 7. Ese Windows 7 está instalado en mi MBP. Por si fuera poco frikismo, he usado el escritorio remoto de Windows para programar esos ejemplos en una ventana del iMac de 27″, que para eso tengo una pantalla grande. Mientras programaba iba actualizando la presentación de Keynote que acompaña al curso, en el iMac. Sonaba la música desde iTunes, donde estaba restaurando mi iPhone 3Gs con una copia de seguridad de ayer: mis niños han borrado algunas fotos en un descuido.

He terminado con C y me he pasado a WordPress. Arrancando una máquina virtual VMWare de Bitnami, que ya tiene un entorno WP completo sobre Linux, me he dedicado a crear un nuevo sitio para migrar una vieja web que hice hace ya la tira en Typo3. Es decir, instala plugins, widgets, temas, escribe posts, importa información, etc.

Ahora toca pensar en el próximo curso de Java EE que tengo que impartir a finales de mes. Java, Servlets, EJBs, JBoss, Eclipse de nuevo (aunque ahora en su “sabor” Java). Tendré que ojear un libro, que tengo en formato CHM (formato típico de Windows en otra época). Y luego, un poco de Objective C para comenzar un proyecto iPad que me han encargado. Tengo cosas que leer de UML…

Es por este desbarajuste de trabajo que tengo, con tantas tecnologías, frameworks, lenguajes, herramientas y entornos distintos por lo que amo a mis dos Macs. Necesito ser anti-minimalista, ya que si lo fuera no podría hacer la mitad de las cosas que hago. Esta es la razón de haber ampliado mi iMac a 12 GB de RAM. Aún así, procuro no instalar nada si ya tengo una aplicación que hace más o menos lo mismo, que si no acabas con un montón de aplicaciones similares que no acabas de dominar en profundidad.

Bueno, sigo, que quiero ir terminando. Que no hace mucho me comentaron que a lo mejor tengo que aprender CLIPS:-)

abr 20

Etiquetas de un lenguaje imaginario de marcas, tatuadas: hay que ser Geek!

Hasta ahora, cuando he tenido que montar un equipo de trabajo (normalmente equipos de informáticos), se me ha dado bien porque he sido muy Patton, y eso es algo que cualquiera que piense en dirigir equipos de Geeks debería aprender. Quiero compartir algunas cosas que he aprendido, por experiencia y con muchos dolores:

Motivación

  • los informáticos necesitan de otras motivaciones, además de la pasta (que encima en España tampoco es para volverse locos). Dar las gracias por un trabajo bien hecho no cuesta nada y surte efectos increíbles. Es el “palmadita-power”.
  • para un informático el último ordenador es normalmente lo que para el resto es un cochazo. Es un elemento motivador muy importante. Si les das el mejor equipamiento posible, les estás diciendo: “mira qué importante eres para mí”. Por desgracia al revés también funciona esto, así que cuidado con el equipamiento basura. No hay nada más frustrante que tener que aguantar presiones para entregar algo y ver cómo el ordenador que tienes delante se desangra intentando compilar algo con Eclipse.

Gestión del equipo

  • hay que aplaudir los éxitos de tu equipo en público y vender sus progresos hasta la extenuación ante los estamentos superiores. Y las broncas, en privado. Sentido común, ¿no?.
  • mis hombres son cojonudos. Yo tengo el monopolio de las críticas sobre mi equipo. El resto del Universo que se queje a mí, y yo ya me encargaré de poner orden si es necesario. Pero eso de ir directamente contra alguien de mi equipo, ni en broma. Si yo estoy de gestor de personas, mid-management o como lo quieras llamar, hablas conmigo.
  • Enfoca a tu equipo y explícale qué necesita el cliente. Recuerda que son Geeks, y en ocasiones estarán obsesionados con conseguir que el código CSS de la web sea 100% estándar, aunque eso no lo pida ni lo pague el cliente. Lo que quiere el cliente es ver las fotos más grandes. No dejes que se obsesionen con un problema técnico, si no es parte de la solución o si hay otra disponible más sencilla: que apliquen la ley de
  • Explica las razones de las decisiones. Si decides eliminar tal o cual servicio, o tirar a la basura código porque si no no llegáis a la entrega, explícalo hasta que tu gente lo entienda y acepte. No des pie a murmuraciones.

Tu papel

  • el coordinador, jefe o líder de un equipo de informáticos debe estar para solucionarles a ellos los problemas, pero no para hacer las cosas. Tu trabajo son los problemas de tu equipo. Busca al mejor equipo y dales las mejores herramientas y ellos se encargarán de resolver tus problemas.
  • si quieres respeto, además de autoridad, debes estudiar lo suficiente para entender, por encima, los problemas a los que se enfrenta tu equipo. Este trabajo es muy, muy difícil. Intelectualmente agotador. Y encima, cada 10 años casi todo ha cambiado. Por eso, que tu equipo vea que les entiendes, y que tienes cierto manejo técnico es impagable. En una ocasión me comentaron casi con lágrimas en los ojos que en una empresa el CEO hacía cambios al código fuente y subía versiones al SVN. De acuerdo, de acuerdo: las horas de un CEO son muy caras para hacer eso, eso no es su trabajo… o quizás sí: en esa empresa todos los programadores ven al CEO como su compañero y saben que en cualquier momento les puede leer su código. Ojo con los CEOs listos.
  • tú no eres el delantero. Ni el portero. Ni el defensa. Eres el entrenador y muchas veces, el utilero. Ellos meten los goles. Seleccionar a los mejores y hacer que funcionen como equipo es tu triunfo.

Reuniones

  • Si puedes, sé borde en las reuniones: pregunta sin miramientos si hay algún problema. Cuando comience la lluvia de llantos, hazles que te manden por correo una lista con tres puntos imprescindibles para mejorar su trabajo, excluyendo temas salariales. Te sorprenderá ver que hay un factor común enorme, y que dando flexibilidad en los horarios, teletrabajo (que para eso están las VPNs) y mejores equipos  la moral del equipo sube como la espuma.
  • Siempre que puedas, no las tengas. Si las tienes, que alguien de tu equipo tome notas y las suba a un sitio compartido. Revísalas e intenta cumplir lo que pactes con ellos. Si no puedes cumplirlo todo, vete.

Y, casi por último, que algo esté claro: tú estás ahí para coordinarles, motivarles, guiarles, o llámalo como quieras: mandar. La última palabra la tienes tú. Pero escúchales y habla con ellos. Aprenderás un montón.

dic 05

Hace algún tiempo que vengo usando para organizar mis tareas EasyTask. Empecé a interesarme por el método GTD hace un par de años, como ya comenté, y he continuado leyendo y evolucionando en el método. A raíz de los post de Berto sobre productividad en Thinkwasabi y teniendo el iPhone en mis manos, empecé a buscar un sistema GTD que fuera portable. Mucha gente en el mundo Mac usa Things. Yo no lo he probado pero, la verdad, me parecía caro: tienes que pagar por la versión de escritorio y luego por la versión iPhone. Mucha tela para mí.

ToDo's: la clásica lista de cosas por hacer

ToDo's: la clásica lista de cosas por hacer

Comencé con ToDo’s, una pequeña lista de tareas que puedes ir tachando. Pero no tenía la potencia suficiente. Yo quería contextos, proyectos, etc. Vamos, lo mínimo para hacer GTD. Y me encontré en el iPhone con EasyTask. La estuve usando unos meses (es gratis) y acabé pagando los 20 $ que cuesta la versión de escritorio. EasyTask, que está ahora en su versión 2.6 debe aún mejorar muchos pequeños problemas que tiene, tanto de usabilidad como bugs. He intercambiado algunos correos con la empresa y su desarrollador para informarle de los fallos. Están trabajando en ello (desde Septiembre), pero aún no hay nueva versión. Bueno, el caso es que la uso a diario, y me sirve para organizarme.

El problema es que ahora utilizo dos ordenadores a la vez: mi MacBook Pro para programar con XCode, leer el correo, ver los Feeds, etc. y mi PowerMac G5 para iTunes, iPhoto, iMovie, ver películas, descargar cosas, etc. Y en ambos quería tener instalado EasyTask, lógicamente con las tareas sincronizadas. Y es aquí donde entra en juego Dropbox.

El menú de Dropbox en la barra de menús de mi Mac

El menú de Dropbox en la barra de menús de mi Mac

Por si alguien no lo conoce, Dropbox es un servicio que te permite tener gratis 2GB de ficheros subidos “en la nube”. Funciona en Linux, Mac y Windows (hay que instalar un programa) y crea una carpeta llamada Dropbox en tu directorio de usuario. A partir de aquí, fichero que tires en tu Dropbox se sube a Internet y aparece en todos los ordenadores donde lo tengas instalado. Se acabaron las llaves USB. Pero Dropbox tiene muchos más usos. Ayer, escuchando el podcast iCharlas en un capítulo dedicado a Dropbox se me ocurrió la idea para solucionar mi sincronización de EasyTask.

La idea es sencilla: buscar la carpeta donde EasyTask guarda sus datos, moverla a Dropbox y luego crear un enlace simbólico que apunte a la nueva ubicación y que haga creer a EasyTask que todo sigue igual. Esto hay que hacerlo en todos aquellos equipos en los que quieras las sincronización. Lo explico paso a paso y luego hablamos del enlace simbólico.

  • instala en todos los ordenadores la misma versión de EasyTask. Así estamos seguros de que no vamos a tener problemas con los formatos de los datos. En EasyTask en Help -> Check for Upgrade nos indica la versión que tenemos.
  • cierra todos los EasyTask. Que luego venimos con los problemas :-)
  • te vas al primer equipo (en mi caso el MacBook Pro) y buscas la carpeta Library > Application Support que está dentro de tu carpeta de usuario. Debe contener muchas carpetas con los datos de tus aplicaciones. Una de ellas será la de EasyTask.
  • mueve esta carpeta EasyTask a tu carpeta Dropbox
  • ahora, la carpeta EasyTask está en Dropbox, y no en Application Support. Abre la aplicación Terminal (lo más sencillo es con Spotlight, pulsas CMD+Espacio y escribes Terminal)
  • Una vez en el terminal, hay que ir a la carpeta Application Support y crear el enlace a la carpeta EasyTask que, recordemos, está ahora en Dropbox. Para ello, escribe:
Tesla:~ dfreniche$ cd Library/Application\ Support/
Tesla:Application Support dfreniche$ ln -s /Users/dfreniche/Dropbox/EasyTask/ .
ln: ./: File exists
Tesla:Application Support dfreniche$ ln -s /Users/dfreniche/Dropbox/EasyTask/ EasyTask
Tesla:Application Support dfreniche$
$ cd Library/Application\ Support/
$ ln -s /Users/dfreniche/Dropbox/EasyTask/ EasyTask

Bueno, ya tenemos el enlace creado en el primer equipo. Podemos comprobarlo mirando en el Finder la carpeta Library > Application Support. Debe tener este aspecto:

Ahora EasyTask es un enlace simbólico

Ahora EasyTask es un enlace simbólico

Ya estamos terminando. Queda ahora abrir EasyTask y comprobar que todo funciona OK. Cambiamos de ordenador y la idea ahora es, en cada equipo en el que tengamos EasyTask + Dropbox instalado:

  • borrar la carpeta EasyTask de Application Support
  • crear un enlace a la nueva carpeta que debe aparecer en Dropbox

Esto se consigue con un poco de Terminal:

$ cd Library/Application\ Support/
$ rm -rf EasyTask/
$ ln -s /Users/dfreniche/Dropbox/EasyTask/ EasyTask
$ ls -l EasyTask
lrwxr-xr-x  1 dfreniche  staff  34  4 dic 12:51 EasyTask -> /Users/dfreniche/Dropbox/EasyTask/

Espero que os sirva este truco. Cuidado con lo que hacéis y, antes de empezar, copiad la carpeta EasyTask a otro lado “por si las moscas”.

Antes de terminar, he quedado antes en explicar por encima qué es un enlace simbólico. Vamos a ello. Un enlace simbólico no es mas que un alias que le indica al S.O. que el fichero o carpeta que se busca no está ahí, sino en otro sitio. Es una forma perfecta de tener aparentemente duplicadas dos carpetas en el sistema de ficheros que están sincronizadas. Realmente sólo hay una y la otra carpeta es un enlace simbólico. Vienen de serie en todos los UNIX (Linux, Solaris, Mac OS X) y, sorprendentemente, también en Windows.

Tagged with:
preload preload preload