Configurar una contraseña maestra en Firefox para proteger las contraseñas guardadas

El navegador Firefox incluye de serie una interesante herramienta llamada Contraseña Maestra (o Master Password) . Si eres de esos que no quieren memorizar un montón de contraseñas de distintos servicios y las almacena en la memoria del navegador puede resultar muy útil.

Imagina que tienes guardada en la memoria del navegador tus usuarios y contraseñas de Facebook, Twitter, Amazon, Netflix… hasta de la web del banco o de Paypal. Si le dejas a alguien ese ordenador podrá acceder a todas estas cuentas. Para eso sirve esta configuración: proteges con una contraseña única todas esas cuentas, de forma que solo tienes que recordar una.

Para activarlo tienes que pulsar el botón de Menú en Firefox, irte a opciones y ahí, en el menú de la izquierda, ir a Privacidad & Seguridad.

Ahora cargará las configuraciones a la derecha del menú. Ahí buscas la cabecera Usuarios y Contraseñas y marcas Usar una contraseña maestra. Eso abrirá un gestor para añadir tu nueva contraseña.

Tras configurarlo tendrás que cerrar y volver a abrir Firefox para que la configuración haga efecto.

Desde esa misma pantalla podrás también modificar la contraseña cuando lo creas necesario.

Crear tablas dinámicas (pivot tables) en la hoja de cálculo de Google Drive

Las tablas dinámicas en un software de hojas de cálculo nos permiten ver relaciones entre datos o delimitar grandes conjuntos de datos. Vamos a ver un ejemplo: yo en mi Google Drive tengo una tabla donde guardo los datos de la lista de discos del artículo de Mis 1001 discos indispensables, donde añado algunos datos extra que son los que utilizo para elaborar las gráficas. Voy a generar una tabla dinámica muy simple, que me va a sacar cuántos discos de cada década hay por cada país.

Veamos los pasos a seguir:

Datos de origen
  • Primero seleccionamos las celdas con los datos de origen. Lo recomendable es poner un encabezado a las columnas para trabajar de forma más clara.
  • En el menú superior hacemos click en Datos -> Tabla dinámica.
  • En el panel derecho (el de la imagen) hacemos click en Añadir junto a Filas seleccionamos el valor que queramos tener, repetimos la opreación con Columnas.
  • En el panel lateral hacemos click en Añadir junto a Valores y escogemos el valor que queremos ver en las columnas, junto a las opciones sobre como queremos que se traten dichos datos.
Resultado final

En cualquier momento puedes desplegar el menú de la derecha para agregar o quitar campos y valores. Para ver los detalles de una celda basta también con hacer doble click sobre ella, esto abrirá una visualización detalla de los valores que contiene.

jQuery: Poner el foco en el siguiente elemento usando una clase

Os cuento: un cliente pide que en un formulario que está rellenando, con varios campos de texto muy pequeños para un solo carácter, el foco salte de forma automática al siguiente campo cada vez que cubre uno. Es decir, en cada evento de levantar la tecla salta al siguiente. La cosa parecía simple usando la función next() de jQuery:

$(".cuadrito").keyup(function() {
  $(this).next('.cuadrito').focus();	
});

La función next() de jQuery salta al siguiente elemento “hermano” que aparezca. ¿Qué quiere decir hermano? Pues que tengan el mismo padre, esto es que estén contenidos en el mismo elemento del DOM. Y por eso esta práctica y elegante solución no me valía, porque resulta que los inputs están dentro de una tabla, de forma que al cambiar de celda cambia el “padre” en el DOM y ya no salta el foco. ¿Qué hacer entonces? Lo solucioné con la función index():

$(".cuadrito").keyup(function() {	            
  var ind = $(".cuadrito").index(this);
  $(".cuadrito").eq(ind + 1).focus();
});

¿Qué hicimos aquí? Creo que en el pasado ya vimos que jQuery nos permite tratar a los elementos como si de un array se tratase. Simplemente estoy mirando en la primera fila qué índice tendría el elemento en el que nos encontramos y, en la siguiente, poniendo el foco en el posterior sumando 1 al índice.

Magnitudes básicas de un circuito eléctrico

No hace mucho veíamos en un artículo sobre Javascript cómo realizar cálculos basados en la ley de Ohm. Esta vez vamos a alejarnos un poco de los lenguajes de programación y a darle un repaso a la física básica ¿Cuáles son las principales magnitudes que podemos medir en un circuito eléctrico?

Diferencia de Potencial:

También llamada tensión o voltaje, indica la diferencia de energía entre dos puntos de un circuito. La diferencia de potencial que existe entre los polos del generador o entre los puntos cualquiera del circuito es la causa de que los electrones circulen por el circuito, si este se encuentra cerrado. Es una medida de la fuerza que hay que comunicar a los electrones para que se muevan y su unidad de medida es el Voltio (V).

Intensidad:

La intensidad sería la cantidad de carga eléctrica que circula por un circuito en la unidad de tiempo, que mediríamos en segundos. La unidad con la que mediríamos la intesidad es el Amperio (A).

Resistencia:

Se trata de la propiedad que tienen los cuerpos para dificultar el paso de la energía. Cuanto menor sea esta mejor conductor será esa sustancia. La resistencia de un conductor depende tanto del tipo de material del que está compuesto como de su longitud y de su sección. Denominaremos estos factores resistividad (ρ), longitud (l) y sección del conductor (S). La unidad de medida de resistencia es el Ohmnio (Ω).

Para calcularla debemos multiplicar la resistividad por la longitud dividida entre la sección. Lo expresaríamos con la fórmula: R = ρ * l / S.

Calculando potencia y energía

En base a lo visto arriba podríamos calcular cuánta es la energía consumida por un aparato eléctrico en una unidad de tiempo. Esto sería la potencia del aparato.

Potencia:

La mediríamos en Watios (W).

Tenemos dos fórmulas para calcularla: multiplicar el voltaje por la intensidad o multiplicar el cuadrado de la intensidad por la resistencia. La primera fórmula la expresaríamos como P = V * I y la segunda sería P = I2 * R

Energía eléctrica:

Y acabaríamos con la energía consumida por un circuito eléctrico medida en Julios (J).

Podemos calcularla multiplicando la potencia del circuito (que acabamos de ver cómo calcular) por el tiempo que está en uso (en segundos). La fórmula para esto la expresaríamos como E = P * t

¿Y saber esto para qué me vale?

Es la típica pregunta de adolescente ¿para qué me vale saber esto si no voy a ser electricista? Pues por ejemplo entenderlo te ayudará a calcular qué potencia necesitas contratar para tu casa en tu contrato de la luz, o a calcular cuántos paneles solares necesitarías en caso de querer ponerte a producir tu propia energía.

En España el grueso de la factura depende de la cantidad de potencia contratada. La potencia contratada vendría a ser la cantidad de watios que podemos estar consumiendo a la vez en nuestra casa, que lo puedes entender como la suma de la potencia de todas las luces y electrodomésticos que podemos estar utilizando a la vez. Puedes leer más sobre el tema de la contratación de energía en este blog.

¿Cómo forzar que la instrucción “net use /delete” no nos pida confirmación para desmontar una unidad de red?

Vamos con un tip rápido sobre sistemas operativos. Si en Windows queremos desmontar una unidad de red desde un script utilizaremos el comando net use con el parámetro /delete. El problema es que este nos pedirá confirmación, por lo que si es una tarea automatizada se quedará esperando la respuesta ¿Cómo podemos forzar que se desconecte la unidad? Pues con el parámetro /y después del /delete.

La cosa sería más o menos la siguiente:

#Así para desmontar todas
net use * /delete /y

#Cambiando * por el nombre de la unidad 
#desconectamos solo esa
net use x: /delete /y

La opción /y hará que se interprete “yes” como respuesta por defecto a todas las peticiones de confirmación.

SQL-Server: Usar CASE en una cláusula ORDER BY

La ordenación de resultados en una consulta SQL suele ralentizar la respuesta de la consulta, aunque en muchos casos necesitamos tener nuestro resultado ordenado. Hoy me veía con este caso particular, en una aplicación que conecta con una base de datos de SQL-Server: en una pantalla se muestran una serie de líneas de deuda, algunas haciendo referencia a tratamientos ya realizados y otras a tratamientos pendientes. En caso de que estén realizados habría que ordenarlos por fecha de realización, en caso de que no estén realizados sería por fecha de creación.

Para eso podemos utilizar una sentencia CASE en la cláusula ORDER BY:

SELECT 
  FechaCrea,   
  Concepto,
  Precio,
  ImportePagado,
  Realizado,
  FechaRealizado 
FROM 
  vistaPagos  
WHERE 
  Precio > 0 
ORDER BY 
 CASE Realizado WHEN True THEN FechaRealizado  
 ELSE FechaCrea END;  

Veamos ahora otra posibilidad de uso del CASE: cuando queremos que la consulta reciba un parámetro con el campo por el que ordenar los resultados:

SELECT 
  FechaCrea,   
  Concepto,
  Precio,
  ImportePagado,
  Realizado,
  FechaRealizado 
FROM 
  vistaPagos  
WHERE 
  Precio > 0 
ORDER BY 
CASE @OrdenaPor 
   WHEN 'Fecha' THEN FechaCrea
   WHEN 'FReal' THEN FechaRealizado       
 END,
CASE @OrdenaPor 
   WHEN 'Precio' THEN Precio
   WHEN 'Pendiente' THEN ImportePagado   
 END
;  

¿Por qué hay dos CASE separados en el segundo ejemplo? Bueno, CASE necesita que los tipos devueltos en la expresión sean compatibles. En el primer caso devolverá fechas, en el segundo devolverá importes. En caso de que no se cumpla ninguna de las condiciones devolverá un null, así que no debería hacer fallar la consulta.

Utilizar el comando expr para hacer operaciones

El comando expr del terminal de Linux nos permite evaluar una expresión y pintar su resultado. De esta forma podemos usarlo para ejecutar operaciones aritméticas o de comparación.

$ expr 15 + 3
$ expr 15 % 3
$ expr 15 \* 3
$ expr 15 – 3
$ expr 15 / 3

En el ejemplo de arriba puedes ver los ejemplos para suma, operación de módulo, multiplicación (ese caso requiere usar el carácter \ para escapar el asterisco que usamos como símbolo de multiplicación), resta y división.

¿Limitaciones? Pues que solo nos permite operar con números enteros: únicamente acepta enteros como parámetros y tan solo devuelve enteros como resultado

Otra cosa que nos permite expr es ejecutar operaciones de comparación:

$ expr 15 = 3
$ expr 15 != 5
$ expr 15 \> 3
$ expr 15 \< 3
$ expr 15 \<= 3

Devolverá 1 en caso de que la comparación sea verdadera y 0 en el caso contrario. De nuevo el carácter \ será necesario para escapar los caracteres de mayor y menor en las comparaciones.

No solo podemos usarlo desde el terminal para operar, expr también puede resultar de utilidad invocado dentro de alguno de nuestros scripts.