martes, 28 de septiembre de 2010

Fijar una vista para todas las carpetas en Windows XP

En Windows XP tenemos la posibilidad de elegir entre varias vistas distintas cuando estamos utilizando el explorador de archivos: vistas en miniatura, mosaicos, iconos, lista y detalles (se seleccionan en el menú Ver, o en el botón Vistas de la barra de botones estándar).

Cada una de ellas tiene sus particularidades, y el decantarse por una u otra es algo que depende exclusivamente de preferencias personales. En general cada cuál es más interesante en función del contenido de la carpeta que se está explorando. Por ejemplo, la vista en miniatura está muy bien para trabajar con carpetas de imágenes o vídeos.

Por defecto Windows utiliza un tipo de vista concreto (creo que mosaicos) para todas las carpetas del sistema. Si queremos utilizar otra para explorar una capeta no hay más que cambiarla, pero, ¿cómo hacemos que una vista se utilice en todas las carpetas? ¿cómo cambiamos la vista de una carpeta concreta?

En mi caso me gusta trabajar siempre con la vista detalles, que muestra información como el tamaño y la fecha demodificación de los elementos, salvo para la carpeta Mis Imágenes, en la que prefiero la vista en miniaturas.

Para obtener esta configuración no hay más que abrir un explorador y seleccionar la vista que queramos utilizar de forma general. Accedemos después al menú Herramientas - Opciones de carpeta..., y dentro a la pestaña Ver. Lo primero que nos muestra es un cuadro Vistas de carpeta, con un botón Aplicar a todas las carpetas. Si lo pulsamos, la vista seleccionada para la carpeta actual se tomará como vista para todas las carpetas del sistema.

Antes de aceptar los cambios, revisamos las opciones del cuadro Configuración avanzada, en la misma pestaña, y nos aseguramos de que la opción Recordar la configuración de vistas de todas las carpetas está seleccionada. Esto hace que si cambiamos la vista de una carpeta, se vuelva a utilizar cuando volvamos a abrirla. Así podemos aplicar a cada carpeta una vista diferente sin problemas.

Una ayudita adicional: cuando utilizamos la vista detalles, es posible configurar los campos mostrados pulsando con el botón derecho sobre la cabecera; así podemos ver por ejemplo cosas interesantes como la fecha de creación o el propietario.

jueves, 23 de septiembre de 2010

Getting things done!!

Hoy he tenido la ocasión de asistir a una interesantísima charla sobre Getting things done (GTD) dada por D. Joaquín Peña en la ETSII de Sevilla.

GTD es una de tantas alternativas para organizar el trabajo personal (como por ejemplo la técnica pomodoro). Llevo bastante tiempo pensando en aplicar alguna de ellas, y creo que la charla de hoy será el punto de partida definitivo para lanzarme a ello.

Destacando lo que más me han calado, diría que GTD se basa en la idea de que una persona no puede retener en la cabeza todas las tareas pendientes que tiene en su quehacer diario. Este número está limitado a entre 5 y 9 tareas, cuando normalmente tendremos alrededor de 50, si no estamos demasiado ocupados.

Esto hace que caigamos en un estado de estrés, ya que nunca podremos quitarnos la sensación de tener cosas que hacer.

Por tanto, la base del método es el mantener una lista de tareas, en la que recoger todo lo que tenemos pendiente. La lista no tiene que restringirse únicamente al mundo laboral; muy al contrario, debería incluir tareas de cualquier ámbito de nuestra vida: redactar un informe para el jefe, limpiar el coche, pedir cita al médico, comprar un lámpara nueva... eso sí, cada una de esas tareas se encuadra en un determinado contexto. Generalmente todos tendremos al menos dos contextos, el laboral y el personal.

A partir de ahí, el trabajo se realiza siguiendo el ciclo Recopilar - Revisar - Hacer.
  • Recopilar - poner al día la lista de tareas, metiendo las que hayan surgido, y eliminando las que hayan perdido sentido.
  • Revisar - leer tu lista de tareas, y seleccionar aquellas que vayas a hacer.
  • Hacer - ejecutar las tareas seleccionadas.
Esta forma de trabajo te permite concentrarte al máximo en las tareas que has elegido hacer, olvidándote hasta el próximo ciclo de todo lo demás.

Este es el punto de partida. Hay muchas ideas y recomendaciones adicionales, pero de momento mi lista sólo tiene una tarea: hacer mi lista de tareas.

miércoles, 22 de septiembre de 2010

Experiencias con ITIL - El CAU

Tras la introducción que hice con mi punto de visto sobre la implantación de ITIL en los departamentos de informática, voy a contar algunas experiencias relacionadas que he tenido en mi vida laboral.

Uno de los elementos que suelen ponerse en funcionamiento en primer lugar es el Centro de Atención a Usuarios, o CAU. Teóricamente, la función de éste es servir como "interfaz" entre los usuarios y el servicio, de forma que todas las peticiones deberían ser recibidas por el CAU, de acuerdo a los medios establecidos.

Ante una petición de servicio, el CAU llevará a cabo una evaluación, tratará de ofrecer una solución definitiva o, si no está capacitado para ello, un workarround (magnífico palabrejo para referirse a una solución temporal, o apaño, en lenguaje coloquial). Posteriormente, si no ha podido dejar fino el tema, escalará la petición a segunda línea, donde los técnicos se pelearán a fondo con el problema, pero eso ya es otro tema.

Cuando se trabaja con un CAU, lo ideal es establecer unas líneas de comunicación entre este y los usuarios. Por ejemplo, un Sistema de Gestión de Incidentes (una aplicación a través de la que los usuarios pueden registrar peticiones, y esperar a que les contacten), un número de teléfono, etc.

Sin embargo, comentábamos el otro día que lo correcto es estudiar las circunstancias de cada servicio, y adaptar ITIL a nuestras necesidades. Si estamos prestando servicio en una macro-empresa con miles de trabajadores repartidos por el mundo, es lógico y necesario implantar ese mecanismo de comunicación. Sin embargo, si nuestro grupo de usuarios se reduce a unas decenas de compañeros, lo más probable es que el CAU pierda en gran parte su sentido. Cualquier usuario preferirá presentarse directamente en el puesto del técnico de turno, y comentarle en persona su problema para que se lo resuelva sobre la marcha.

La pregunta es, ¿hay que ser estrictos con este tema, y obligar a los usuarios a seguir los cauces de comunicación establecidos? Pues ni tanto ni tan poco. Es normal que los usuarios tiendan a hacer las peticiones directamente, pero lo que no se debe dejar de lado es que el servicio debe prestarse de forma ordenada. Eso implica que todas las peticiones deben ser registradas en el sistema de Gestión de Incidentes implantado, y que deben ser atendidas de acuerdo a las pautas establecidas (prioridades, colas, etc.). En ningún caso se debería permitir que un usuario recibiese una atención más rápida por el hecho de haber ido a hacer la petición en persona. En este caso sí hay que ponerse firmes y decirle a quien toque que se toma nota de la solicitud, y que se le informará cuando corresponda.

Claro que sin exagerar, o acabaremos llegando al conocido extremo de meter al departamento de informática en un sótano apartado del mundo y pasarle la comida a través de un tubito para que no puedan comunicarse con el resto del universo.

lunes, 20 de septiembre de 2010

rownum mayor que...

Cuando trabajamos con consultas en Oracle, disponemos de la pseudo-columna rownum. Se le llama pseudo-columna porque aunque no sea una columna de nuestra tabla, Oracle la añade al resultado de la consulta, poniéndola a nuestra disposición, si la queremos.

El valor obtenido es un número que indica el orden en el que Oracle selecciona la fila de la tabla. Generalmente esta pseudo-columna se utiliza en consultas con una cláusula de ordenación, para obtener los N primeros registros según el criterio de ordenación indicado. Por ejemplo:

select * from (select * from empleados order by salario) where rownum < 10

Es lo que en otros SGBD se consigue con TOP.

Y en este punto es donde uno se ve tentado de ir más allá, y utilizar el rownum para paginar nuestras consultas. Es decir, para obtener, por ejemplo, del décimo al vigésimo empleado con mayor salario.

select * from (select * from empleados order by salario) where rownum <20 and rownum > 10

Sin embargo, nos llevamos la sorpresa de que esta consulta no devuelve datos. Explicar por qué es ligeramente complicado, pero lo intento.

Cuando ejecutas esa consulta Oracle obtiene la ristra de filas, y asigna a la primera el valor rownum=1. Entonces, evalúa la condición para esa fila, y como 1 no está entre 10 y 20, la elimina del resultado. Entonces, vuelve a comenzar el proceso, asignando de nuevo el valor rownum=1, a la que realmente era la segunda fila obtenida. Lógicamente, la condición vuelve a no cumplirse, la segunda fila es eliminada, y el valor rownum=1 es asignado a la tercera fila. Así hasta que nos hemos quedado sin nada.

¿Significa eso que no podemos utilizar una condición de tipo rownum mayor o igual que... en una consulta? Pues no, existe una forma de realizar esta comprobación. Para ello necesitamos que la pseudo-columna evolucione y se convierta en una columna con todas las de la ley. Si realizamos la siguiente consulta

select rownum rnum, empleados.* from (select * from empleados order by salario) empleados

obtenemos la tabla empleados ordenada por salario, con una columna (ya no pseudo-columna) rnum añadida, que asigna un número secuencial a cada una de las filas ordenadas. Por tanto, si sobre esta consulta obtenemos sólo los registros con rnum entre 10 y 20, tenemos lo que queríamos.

select * from (
select rownum rnum, empleados.* from (select * from empleados order by salario) empleados
) where rnum < 20 and rnum > 10

Es importante fijarse en que la consulta original, en la que se obtienen todas las filas de la tabla ordenadas, debe ser siempre la primera en ejecutarse, sin añadir nada. Si por ejemplo intentásemos hacer:

select * from (
select rownum rnum, empleados.* from empleados order by salario empleados
) where rnum < 20 and rnum > 10

Estaríamos obteniendo rnum y ordenando en la misma sentencia. Lo que pasaría entonces es que la ordenación se haría después de asignar los rnum, por lo que estaríamos asignando los secuenciales a las filas sin seguir el criterio de ordenación. La consulta devolvería registros, pero no los que nos interesan.

Para los políglotas, pongo un enlace bibliográfico y todo:

martes, 14 de septiembre de 2010

Google Chrome: Session Manager

Una de las cosas que más me gusta de Google Chrome es la cantidad de plugins que se le pueden añadir para hacer su uso más cómodo. El último que he descubierto es el Session Manager.

Este plugin tiene un funcionamiento muy simple, ya que lo único que hace es almacenar las páginas que tienes abiertas en tu navegador, para que puedas restaurarlas posteriormente. Puede que en un principio no parezca una función demasiado práctica, pero tiene bastantes utilidades.

Por ejemplo, lo primero que hago todas las mañanas al llegar al trabajo es abrir varias ventanas del navegador: el correo de mi empresa, el del Organismo en el que trabajo, y el sistema de gestión de incidentes, como mínimo. Pues con esta herramienta no tengo más que abrir una ventana de Chrome, y seleccionar mi sesión "A currar un poco". Automáticamente se me abrirán las ventanas (o pestañas) con las páginas que necesito.

De la misma forma se podrían tener configuraciones para tareas cotidianas: abrir las cientos de miles de redes sociales a las que estamos suscritos para ver nuestros mensajitos, los periódicos que te gusta consultar, foros técnicos, etc. etc.

Otra situación habitual en mi caso es la que me hace dejar el ordenador encendido de un día para otro, simplemente porque tengo decenas de páginas abiertas que estoy consultando durante mi trabajo, a las que he accedido tras varias búsquedas, y no quiero perderlas para continuar con ellas. Pues ahora no tengo más que guardar mi sesión, y podré continuar exactamente por donde iba cuando quiera. Además así ahorraremos un poco de energía, que siempre es recomendable.