«¡No me digas lo que no puedo hacer!»
A la hora de maquetar cualquier diseño web que nos pasen en formato PSD es muy útil tener en formato PNG las capas, recortadas al tamaño del contenido y con fondo transparente. Puede hacerse a mano con cualquier software que soporte la edición de archivos de Photoshop (como Gimp o el excelente Pixelmator) pero resulta mucho más cómodo automatizarlo con Imagemagick:
convert imagen.psd imagen-%d.png
Sí, así de sencillo
He tenido problemas con varios juegos y la PS3 con mi televisión Samsung desde que la compré, y siempre he tenido problemas con la resolución 720p: al entrar en cualquier juego con esa resolución la televisión mostraba un mensaje indicando sin señal o modo no complatible. Curiosamente, tras enchufar y desenchufar varias veces el cable HDMI se llegaba a ver. Pero esta vez, estrenando el nuevo Tomb Raider he sido incapaz de hacerlo funcionar, así que al ver que las soluciones que se comentan en los foros pasan por resetear la PS3 (cosa que intenté varias veces), ¡¿comprar un cable HDMI oficial de Sony?! e incluso jugar directamente a 576i, me puse a probar todas las combinaciones posibles hasta dar con el problema: la Salida color profundo (HDMI). El modo por defecto es automático pero desactivándolo por fin se ve algo a 720p
En 2011 ya comenté cómo instalar Redmine con Apache en subdirectorio pero se trataba de versión 1.2. Hace unos días recurrí a estas instrucciones para instalar la reciente versión 2.2 pero la cosa se complicó un poco: se proporcionan instrucciones oficiales para instalar en un subdirectorio pero aquí, aquí y aquí se habla largo y tendido de que no funciona correctamente.
El problema parece estar en que al indicar el subdirectorio mediante el archivo environment.rb las direcciones de los archivos estáticos se generan correctamente pero no los enlaces de la interfaz. Modificando la configuración para que se generen correctamente, dejan de funcionar los archivos estáticos. Tras probar mil y una opciones, al final acabé haciendo una instalación híbrida: configurar Apache para que sirva los estáticos y realice las llamadas a Redmine mediante un proxy, utilizando el servidor webrick.
Las instrucciones de instalación sugieren instalar una cantidad de dependencias que no es normal (¿para qué demonios necesito compilar una extensión nativa de PostgreSQL si no lo voy a usar?) por lo que mejor realizar una instalación básica en Debian:
apt-get install ruby rubygems apt-get install libmagick9-dev libmysqlclient-dev libsqlite3-dev libpq-dev ruby-dev gem install rails --include-dependencies gem install rake --version=0.8.7 gem install builder --version=3.0.0 gem install bundler coderay fastercsv jquery-rails json mysql2 net-ldap gem install pg rack-openid rmagick sqlite3 test-unit yard gem install jquery-rails --version=2.0.2 gem install mocha --version=0.12.3 gem install mysql --version=2.8.1 gem install shoulda --version=2.11 gem install ruby-openid --version=2.1.8 apt-get remove --purge libmagick9-dev libmysqlclient-dev libsqlite3-dev libpq-dev ruby-dev apt-get autoremove --purge
Una vez instaladas las dependencias, la instalación de Redmine se realiza con los siguientes comandos:
/var/lib/gems/1.8/bin/rake generate_secret_token --trace RAILS_ENV=production /var/lib/gems/1.8/bin/rake db:migrate RAILS_ENV=production /var/lib/gems/1.8/bin/rake redmine:load_default_data ruby script/rails server webrick -e production
Para que los enlaces de la interfaz se generen con el correspondiente subdirectorio hay que modificar el archivo config/environment.rb cambiando la última línea por lo siguiente:
RedmineApp::Application.routes.default_scope = {:path=>'/redmine', :shallow_path=>'/redmine'}
RedmineApp::Application.initialize!
Redmine::Utils::relative_url_root = '/redmine'
Para que los archivos estáticos se carguen correctamente, es necesario modificar el archivo config/environments/production.rb añadiendo la siguiente línea:
config.action_controller.asset_host = "http://ejemplo.com/estaticos"
Habrá que copiar la carpeta public de Redmine para que sea accesible desde http://ejemplo.com/estaticos/redmine, ya que todas las llamadas se realizarán añadiendo el subdirectorio. Por último, la configuración para que Apache realice las llamadas a webrick sería la siguiente:
<Location /redmine> ProxyPass http://localhost:3000/redmine ProxyPassReverse http://localhost:3000/redmine </Location>
Después de realizar todos estos pasos, resulta evidente que un proyecto de la talla de Redmine debería simplificar el proceso para una instalación tan común como esta y tener una documentación más completa al respecto.
Hace más de 5 años que trabajo únicamente desde casa y aunque es algo que me gusta mucho más que trabajar en una oficina, tiene algunos peros. A lo largo de este tiempo he tenido que enfrentarme a ciertas cosas que merman el rendimiento y minan el ánimo, aunque el balance general sea muy bueno.
Aunque cada persona sea un mundo y deba buscar soluciones a sus problemas particulares, los puntos que he comentado son bastante comunes a las personas con las que he podido tratar y que están en la misma situación.
Márcate un horario (y cúmplelo)
Es imprescindible tener un horario regular como un trabajo normal. Lo peor para la productividad es empezar un día a las 10 de la mañana, otro a las 12 y otro sólo por la tarde, aunque realices el tope de horas semanales. Si vives con alguien que tenga un horario de oficina adáptate a él: cuando la persona se vaya a trabajar, empieza, cuando vuelva para.
Lleva el control del tiempo
hay multitud de herramientas que permiten llevar un control del tiempo dedicado a cada tarea (mi opción, Harvest). Es importante contabilizar cada minuto para, al final de la semana o del mes, ver cuánto se ha trabajado en cada proyecto/tarea, cuánto tiempo se ha malgastado entre tareas, cuántas horas de más o de menos se han realizado…
Prioriza tareas
el 99% de las veces no es necesario responder a un correo electrónico o chat a los 2 segundos de recibirlo, así que prioriza las tareas en curso evitando interrumpir el flujo de trabajo por pequeñas tareas que no merecen atención inmediata.
Separa la zona de trabajo de zona de ocio
Dedica una zona de la casa donde puedas tener la sensación que al salir de ahí, se ha acabado la jornada laboral. De lo contrario, acabarás con la sensación de que nunca dejas de trabajar.
Haz descansos periódicos
Sal de la zona de trabajo unos minutos cada 2 o 3 horas, ponte un café, pasea al perro, cualquier cosa que te permita desconectar momentáneamente y estirar las piernas.
Invierte en tu oficina
El uso de productos con un mínimo de calidad es importante, desde una buena silla que no acabe destrozándote la espalda hasta una pantalla que no te queme las retinas. No es necesario realizar una gran inversión, sólo hace falta buscar productos que cumplan ciertos requisitos mínimos.
Aprende fuera de la zona de trabajo
Si tu profesión requiere aprendizaje continuo (en mi caso el desarrollo implica mucho aprendizaje), sal de la zona de trabajo para poder centrarte, escapando de correos electrónicos, chats y demás elementos que no hacen más que desconcentrar y hacer que el aprendizaje sea más lento.
Socializa con personas en 3D
Trabajar en casa no permite tomarse algo con los compañeros de trabajo al terminar la jornada, ni aprovechar para quedar con amigos antes de volver a casa. Por muy antisocial que seas y por mucho que te guste trabajar aislado del bullicio de las oficinas, es necesario salir aunque sea sólo a dar un paseo. De lo contrario llegará un momento en que te hayas pasado semanas casi sin hablar con nadie cara a cara.
No todos valen para esto
Hay ciertas personas que no valen para trabajar en casa porque necesitan gente alrededor, y que se desesperan estando solos todo el día. Si no logras de ningún modo estar cómodo trabajando en casa, acéptalo y vuelve a una oficina. Si no es posible en tu empresa o porque eres freelance hay opciones como el coworking.
Llevaba bastante tiempo utilizando Evernote para la gestión de notas sencillas y estaba muy contento con el servicio. Las aplicaciones nativas para iOS y Android me parecen excelentes y la nueva versión de la aplicación para Mac OS X (la 5.0) ha mejorado enormemente, acabando con los serios problemas de rendimiento que tenía la rama 3.x cuando se tenían muchas etiquetas. Además, la versión web también es bastante buena, aunque los navegadores sufren bastante y a veces se hace lenta.
La posibilidad de añadir a las notas contenido HTML, asociarle una URL, añadirle etiquetas y geolocalización hace que cubra las necesidades para anotar casi cualquier cosa, así que poco a poco se ha ido convirtiendo en la solución a varios de mis problemas.
Encontrar un software decente para la gestión de tareas (compatible con Getting Things Done) es algo que me ha costado mucho. He probado multitud de alternativas pero nunca me encontraba realmente cómodo por lo que al final las tareas se realizaban sin llevar el recomendado registro. Pasé por Wunderlist, Producteev, Astrid, Remember The Milk, Tracks e incluso Redmine para acabar recurriendo a lo más simple: notas sencillas organizadas en carpetas. Al poder crear pilas de libretas, se pueden organizar las tareas de forma muy eficiente:
Personal:
|
Trabajo:
|
Papelera:
|
La lógica es sencilla: cada tarea es una nota en la correspondiente libreta. Se separan las tareas personales de las de trabajo, y una vez finalizadas se mueven a la libreta correspondiente dentro de la pila Papelera. De este modo se lleva un registro detallado de todo lo realizado, quedando categorizado el motivo de la finalización de la tarea. Opté por este sistema porque es más fácil mover una nota a una libreta para cada motivo (descartado, finalizado…) que moverla a una única libreta añadiéndole una etiqueta que indique lo mismo…
El único problema que encontré resultó ser la interfaz de la aplicación de escritorio, ya que la disposición cuadriculada por defecto no me resultaba la más cómoda para la gestión de tareas. Pero como Evernote dispone de varias disposiciones, me llegó con cambiar a Vista de lista para que se pareciera mucho más a un software clásico de gestión de tareas.
Los cambios realizados en Delicious después de que fuera vendido por Yahoo! no gustaron a muchos. Yo seguí utilizando el servicio hasta que la necesidad de gestionarlos desde diferentes dispositivos (teléfono, tablet, portátil…) me hizo buscar aplicaciones. No encontré nada que fuera mínimamente cómodo, por lo que tras buscar alternativas me topé con este post (a través de Life Hacker) en el que se explicaba cómo realizar una migración completa desde Delicious, generando un un archivo XML que Evernote permite importar. El autor proporciona una utilidad programada en Javascript que permite convertir el XML del volcado de Delicious en el archivo Enex que reconoce Evernote.
Otra de las necesidades que tengo es el concepto Read itLater que software como Pocket, Instapaper o Readability permiten gestionar de forma bastante decente. Cada uno tiene sus ventajas pero requiere acceder a otra web o usar otra aplicación más. Además, Evernote dispone de Clearly, una extensión para Firefox y Chrome que permite formatear para lectura cualquier página web (al igual que los servicios que he comentado) con el plus de poder añadirlo directamente a una libreta en Evernote (en mi caso, Lectura) para su posterior lectura en cualquier dispositivo.
En mi caso, lo mejor es que después de leerlo puedo añadir directamente a mis favoritos con sólo mover la nota a la libreta correspondiente. Y para rizar más el rizo, tengo configurada una tarea en IFTTT que al marcar como starred un elemento en Google Reader, cree una nota con el título, dirección y contenido en la libreta Lectura, simplificando el proceso de añadir contenidos a la lista de Read it Later.
En la pila de Personal tengo además varias libretas que me ayudan a organizar más cosas:
En resumen: en vez de utilizar varias aplicaciones para las diferentes necesidades, creo mucho mejor utilizar un buen software que permita centralizar todo de un modo cómodo. Simplemente tener una única interfaz para todo ahorra mucho mucho tiempo…
Delirios de un Informático § Gestionado con WordPress § Alojado en Bitacoras.com § Licenciado bajo Creative Commons