Datepicker fácil en tu web

¿Necesitas un «datepicker»? Con esto quiero decir necesitas introducir un calendario en un formulario web, a día de hoy hay muchos sencillos métodos para hacerlo. Pero estas son las dos más fáciles:

  • Campo date en HTML5: Un campo del formulario definido como de tipo date ya te arregla en gran parte el problema. Tiene el handicap de que cada navegador te saca el calendario con el formato que le da la gana
    <input type="date"/>
  • Calendario datepicker con jQueryUI: Esta opción incluye más opciones de personalización. Lo primero es descargar la librería jQuery y lo siguiente bajar los componentes de jQueryUI necesarios, incluyendo sus estilos. Luego para implantarlo debes cargar las dos librerías en la cabecera del documento, usar un campo input normal (en el ejemplo se llamará #calendario) y un script como el siguiente:
    <script>
    	$(function() {
    		$( "#calendario" ).datepicker({
    			changeMonth: true,
    			changeYear: true
    		});
    	});
    	</script>
    
    <div class="ejemplo">
    
    <p>Date: <input type="text" id="calendario"></p>
    
    </div>
    

En fin, para el caso del jQueryUI tienes muchos más ejemplos en la propia página con las distintas opciones.

Librería para usar MD5 y SHA 1 en Javascript

En fin, me he quedado sin ordenador el fin de semana… pero todavía me apaño para dejar una minientrada.

Hemos hablado ya en el pasado de criptografía y de algoritmos de hash e incluso de cómo usarlos en C o en Java así que hoy nos toca verlo desde otro ángulo. A la hora de usar estos algoritmos de resumen en una web, para almacenar una contraseña por ejemplo, nos podemos encontrar con la duda ¿encripto en el lado del servidor o en el del cliente? En fin, en el lado del servidor no tiene mucha ciencia ya que desde PHP 4 existen funciones MD5 y SHA1 de forma nativa. Pero ¿y si queremos hacerlo en el cliente?. Encriptar en el servidor implica que el mensaje viaje en texto plano desde el equipo hasta él. En cambio encriptando en el cliente esta ya saldrá encriptada del equipo.

Podría tirarme el moco y hacerme el pro copiando aquí un chorretón de código enorme, pero realmente os daré dos opciones:

  • PHP.js: Se trata de una librería libre de javascript que aporta a este lenguaje todas (o gran parte) de las existentes para PHP. Podéis descargarla desde la web oficial del proyecto, donde además podréis personalizar la librería eligiendo las funciones que os interesen (coged sólo lo justo, para aligerar la carga).
  • JSHASH: Esta otra , bajo licencia BSD, está en versión beta y se orienta totalmente al uso de  algoritmos de reducción (incluye además de las dos citadas sha256 y sha512). La recomiendan en varios blogs como muy fiable. Podéis descargarla de aquí, donde también hay tutoriales sobre su utilización.

En fin, con esto ya tenéis dos opciones para generar hashes con facilidad y sin romperos mucho la cabeza.

Diferencias de comandos entre T-SQL y PL/SQL

Esta tarde estuve mirando un poco de PL/SQL porque estoy apuntado en un par de ofertas de trabajo donde piden conocimientos básicos. En principio esta versión de SQL de Oracle  tiene la misma lógica y funciona más o menos igual que Transac SQL, pero hay alguna pequeña diferencia. Por lo que he indagado, algunos comandos cambian de uno a otro, ahí os inserto una lista.

 

CONCATENAR COLUMNAS

T-SQL = +

PL/SQL = ||

COMPROBAR VALOR NULO

T-SQL = ISNULL

PL/SQL = NVL

CONVERSIÓN DE TIPO DE DATO

T-SQL = CONVERT ()

PL/SQL = TO_DATE, TO_CHAR, TO_NUMBER (dependiendo del tipo)

COMPARACIÓN CON EL VALOR NULL

T-SQL = =NULL

PL/SQL = IS NULL

EXTRAER UNA PARTE DE UNA FECHA (DÍA, MES O AÑO) el ejemplo será con año

T-SQL = DATEPART (yy, DATE)

PL/SQL = EXTRACT (Year from DATE)

CREAR UN EQUAL JOIN

T-SQL = SELECT t1.field, t2.field FROM table1 t1 LEFT JOIN table2 ON t2.field = t1.field

PL/SQL = SELECT t1.field, t2.field FROM table1 t1, table2 t2 WHERE t1.field(+) = t2.field

SELECCIONAR UN NÚMERO CONCRETO DE FILAS

T-SQL = SELECT TOP seguido del número de columnas

PL/SQL = SELECT * FROM tabla1 WHERE rownum <= seguido del número de columnas

INCLUIR UN TEXO O UN NÚMERO EN LA SELECT:

T-SQL = SELECT ‘texto’

PL/SQL = SELECT ‘Texto’ FROM dual

ASIGNAR VALOR A UNA VARIABLE

T-SQL = SET var = val

PL/SQL = var := val

IMPRIMIR EN PANTALLA

T-SQL = PRINT ‘texto’

PL/SQL = dbms_output.put_line(“cadena de texto”)

CONDICIONAL IF

T-SQL = IF condicion THEN BEGIN bloque instrucciones END IF

PL/SQL = IF Condicion THEN — END IF;

Luego además, existen algunos comandos propios de TS/SQL y algunas funciones que existen en MySQL o SQL-Server no existen aquí por ser propios de esos gestores, pero grosso modo esto es lo que hay. Espero que os sea de ayuda.

Diseño responsivo con media queries de CSS3

Siguiendo con los artículos de Web Designer wall, continuamos con el tema de las media queries de CSS3, en este caso con otra traducción/explicación de uno de sus artículos.

En este artículo comienza repitiendo lo que ya hablamos en la otra entrada sobre media queries, que el diseño responsivo a día de hoy cobra mayor imortancia por la variedad de resoluciones que pueden usar los usuarios, y que por tanto el aspecto tiene que adaptarse a la ventana. El ejemplo del resultado que se busca conseguir es este.

El conceto, como diría Manquiña (el conceto es el conceto), es el siguiente: La página tiene un contenedor de tamaño fijo (980px) optimizado par una resolución mayor de 1024 px. La media query se utiliza para saber si el tamaño es menor de 980px, en cuyo caso se pasa a un diseño fluido. Y si el caso es que es menor de 650px entonces, directamente se convierte en un diseño con una sola columna.

El marcado HTML es el siguiente, donde se ha creado un contenedor pagewrapper que envuelve cabecera, cuerpo y pie:

<div id="pagewrap">

	<header id="header">

		<hgroup>
			<h1 id="site-logo">Demo</h1>
			<h2 id="site-description">Site Description</h2>
		</hgroup>

		<nav>
			<ul id="main-nav">
				<li><a href="#">Home</a></li>
			</ul>
		</nav>

		<form id="searchform">
			<input type="search">
		</form>

	</header>
	
	<div id="content">

		<article class="post">
			blog post
		</article>

	</div>
	
	<aside id="sidebar">

		<section class="widget">
			 widget
		</section>
						
	</aside>

	<footer id="footer">
		footer
	</footer>
	
</div>

Como hemos comentado miles de veces, el marcado HTML5 no se lleva bien con las veriones de IE anteriores al 9, pero puedes solucionarlo introduciendo esta línea en la cabecera, que enlazan con una librería de javascript que subsanará el problema:

<!--[if lt IE 9]>
	<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

Tras esto toca comenzar con el css, y lo primero es resetar todos los elementos de HTML5 a elementos de bloque:

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { 
    display: block;
}

Y tras esto toca la estructura principal del css. El contenedor principal ha sido fijado en 980px, el header tiene una altura fija de 160px, el contente un ancho de 600px flotado a la izquierda y el sidebar, flotado a la derecha, de 280px.:

#pagewrap {
	width: 980px;
	margin: 0 auto;
}

#header {
	height: 160px;
}

#content {
	width: 600px;
	float: left;
}

#sidebar {
	width: 280px;
	float: right;
}

#footer {
	clear: both;
}

Todo esto, así de momento, daría lugar a un diseño estático tal que el de esta demo. Ahora toca la parte divertida: CSS3 Media Queries. Como el HTML5, CSS3 tampoco es que furrule muy bien en IE pre-9, así que de nuevo habrá que tirar de una librería de .js para solventar el problema.

<!--[if lt IE 9]>
	<script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script>
<![endif]-->

La idea es hacer un css externo con las media queries, introduciéndolo en el documento tal que así

<link href="media-queries.css" rel="stylesheet" type="text/css">

Luego vendrán las siguientes líneas para cuando la ventana donde visualicemos sea menor de 980px se aplicarán las siguientes reglas:

  • El contenedor principal se resetea al 95%
  • El contenedor de contenido pasa al 60%
  • El contenedor lateral pasa al 30%

El usar el % hace los contenidos fluídos:

@media screen and (max-width: 980px) {

	#pagewrap {
		width: 95%;
	}

	#content {
		width: 60%;
		padding: 3% 4%;
	}

	#sidebar {
		width: 30%;
	}
	#sidebar .widget {
		padding: 8% 7%;
		margin-bottom: 10px;
	}

}

Luego tocará hacer el media query para tamaños menores de 650px, con una única columna:

  • header = resetear la altura a auto
  • searchform = lo mandamos a una posición absoluta, a 5px del borde superior
  • main-nav = se reseta su posición a estatic
  • site-logo = lo mismo
  • site-description = lo mismo también
  • content = devolvemos el ancho a auto
  • sidebar = ponemos el ancho al 100% y quitamos la propiedad de flotado
@media screen and (max-width: 650px) {

	#header {
		height: auto;
	}

	#searchform {
		position: absolute;
		top: 5px;
		right: 0;
	}

	#main-nav {
		position: static;
	}

	#site-logo {
		margin: 15px 100px 5px 0;
		position: static;
	}

	#site-description {
		margin: 0 0 15px;
		position: static;
	}

	#content {
		width: auto;
		float: none;
		margin: 20px 0;
	}

	#sidebar {
		width: 100%;
		float: none;
		margin: 0;
	}

}

Finalmente tenemos la versión para menos de 480px, pensada para el iPhone. Implica evitar el zoom que automáticamente hace Safari sobre el texto y toquetear el menú de navegación principal:

@media screen and (max-width: 480px) {

	html {
		-webkit-text-size-adjust: none;
	}

	#main-nav a {
		font-size: 90%;
		padding: 10px 8px;
	}

}

Ahora toca el truquito para imágenes flexibles, con un pequeño hack para que funcione en IE8 (el width: auto\9; de la línea final):

img {
	max-width: 100%;
	height: auto;
	width: auto\9; /* ie8 */
}

Con los vídeos va igual, menos para Safari, dode max-width no va con vídeos (con fotos sí, extraño). Finalmente, y siguiendo con el iPhone de los huevos, toca metar una meta-tag de escala inicial, ya que el iPhone tiende a modificar las páginas para adaptarlas a la pantalla del dispositivo:

<meta name="viewport" content="width=device-width; initial-scale=1.0">

Y con esto está el tutorial terminado, en el artículo citado podrás encontrar además todo el código y las imágenes de la página de ejemplo. Un placer el haberos traducido esto, y todavía me queda al menos una tercera entrada sobre diseño responsivo. Esta semana creo que la cosa va a andar chunga para conectarme mucho rato, así que igual tarda hasta el viernes o sábado. O igual lo puedo hacer mañana, a saber. En todo caso, un saludo.

CSS3 Media Queries

La verdad es que no hace mucho Web designer Wall me ha salvado el culo en el tema del diseño responsivo (hacer que una web se adapte al tamaño de la ventana). Tras mucho tiempo rompiéndome la cabeza, tirando de jQuery y Javascript con pirulas cosa mala para lograr modificar el tamaño del texto, las posiciones de las imágenes… un coñazo y además ineficiente y poco compatible entre navegadores (menos mal que para móviles jQueryMobile me safaba muchas veces), pues tras mucho tiempo, como te iba diciendo, me encuentro este artículo, que ya tiene un par de años y me quedo como «coño, así es más fácil«. La siguiente explicación es una medio traducción/adaptación/explicación del tema, ya que se que en muchos casos lo que buscáis en este blog es una explicación en castellano de algo que ya hay en inglés. Espero que os sirva de ayuda.

Bueno, empezando desde un principio ¿por qué es importante el diseño responsivo? Porque los tiempos en los que el usuario visualizaba webs en su ordenador, con un rango de pantallas que solía oscilar entre las 14 y las 20 pulgadas en el 90% de los casos, ya pasó, es una reliquia de la década pasada, como MySpace, las PDA’s o que en la liga de fútbol española pueda ganar algo un equipo que no sea Madrid o Barcelona. Ahora te puedes encontrar desde el que usa una tele con una definición de 2560px al que lo ve en su teléfono móvil con una de 320px. Los tamaños fijos son un coñazo, y el usar porcentajes para todo… no siempre funciona, porque el tamaño de la fuente o las imágenes no se adaptan, y a veces hay que usar posicionamientos absolutos y te da la risa. CSS2 permitía diferenciar entre una hoja de estilos para la impresión y otra para la presentación en pantalla. CSS3 nos permite ir más allá, nos permite conocer el tamaño de la ventana/pantalla del dispositivo y aplicar un estilo diferente para cada pantalla. Voy a aprovecharme del artículo antes citado y enlazarte aquí con un ejemplo donde verás cómo funciona esto.

Visto esto, aquí tienes la explicación del cómo se hace, sacada del mismo artículo:

Max Width
En este caso el css se aplicará si trabajamos con una resolución de un máximo de 600 pixeles:

@media screen and (max-width: 600px) {
  .class {
    background: #ccc;
  }
}

Si quieres enlazarlo a una archivo CSS distinto, puedes hacerlo poniendo esta línea en la cabecera del documento:

<link rel="stylesheet" media="screen and (max-width: 600px)" href="small.css" />

Min Width
Al contrario que en el ejemplo de arriba, en este caso se especificará un tamaño mínimo para utilizar este estilo (en este caso, se aplicará a toda las resoluciones mayores de 900px).

@media screen and (min-width: 900px) {
  .class {
    background: #666;
  }
}

Media Queries múltiples
Tienes también la opción de utilizar dos valores a la vez, máximo y mínimo, para que el estilo se aplique a los comprendidos entre esos valores. En este caso, entre 600 y 900 px.

@media screen and (min-width: 600px) and (max-width: 900px) {
  .class {
    background: #333;
  }
}

Max device
Finalmente está la opción de adaptarlo a la máxima resolución del dispositivo. Los ejemplos anteriores hacen referencia al tamaño de la ventana/area de visualización, mientras que este se referiría a la resolución máxima que pueda mostrar el teléfono/ordenador/tableta en cuestión.

@media screen and (max-device-width: 480px) {
  .class {
    background: #000;
  }
}

En el artículo original arriba referenciado podéis encontrar también código para adaptarlo específicamente para iPad y iPhone4. No tiene mucha ciencia, podréis ver los ejemplos de código pinchando allí, además hay páginas de ejemplo al final.

Lo interesante está en uno de los puntos finales, donde comentan que, como siempre, va a haber problemas con Explorer. Bueno, no hay que ser 100% injusto con Microsoft, en principio Explorer 9 va bien, pero en las versiones anteriores la cosa ya no va por ningún lado. Dan varias soluciones, pero yo recomiendo la del plugin de jQuery para hacer furrular las media queries, que está en este ejemplo. Hay varios artículos más sobre diseño responsivo en esta página, así que intentaré próximamente meter un par de estas medio traducciones.

Crear un USB arrancable con un linux usando Lili USB Creator

Lili USB Creator, abreviatura de Linux Live USB Creator, es un software gratuito para Windows que permite crear un usb arrancable de Linux fácilmente, desde un archivo .zip, una imágen .iso, un cd-rom o hasta descargando desde una red.

El primer paso, claro está, es descargar el software desde su página oficial. Una vez instalado necesitas una distribución de Linux (he hecho la prueba con Wifiway, Lubuntu 12.04, Debian 6.0 y Galinux, todos desde .iso menos Galinux, que tenía un cd que me habían regalado cuando empecé el ciclo) y un USB con el tamaño suficiente. La interfaz es muy intuitiva: Selecciona el dispositivo USB, la «fuente» (el archivo donde esté la distribución de Linux), espera mientras comprueba la validez de la misma, tienes la opción de «Tamaño de persistencia» para Virtual Box (que no he podido probar porque en Windows Vista/Windows 7 no va) y, tal vez el punto que requiere una poca de explicación, el paso de las opciones:

  1. Ocultar archivos creados: Bueno, esto requiere poca explicación. Si quieres crearlos como archivos ocultos puedes, si no pues será visibles en Windows.
  2. Formatear dispositivo en FAT32: Borrará los datos que tengas en el pendrive y formateará este como FAT32. Recuerda que el tamaño máximo de archivo en este formato es de 4GB y de volúmen creo que la propia Microsoft no recomienda usarlo en volúmenes mayores de 32 gigas (aunque en teoría podría abrirlos de 2TB). El caso, que si es un pen de 4GB es recomendable, y si es mayor pasad de todo.
  3. Activar Iniciar LinuxLive en Windows: Si seleccionas esta opción te permitirá virtualizar el Linux desde Windows sin necesidad de que instales un software de virtualización en tu equipo. Aunque tiene un poco de trampa, como te explico más abajo.

En fin, tras esto el paso 5: pulsáis el botón de creación y a vivir.

Una vez creado tenéis dos opciones: usarlo como USB arrancable o virtualizar en vuestro Windows (si lo habéis elegido como opción en el punto 3 del paso 4).

Para usarlo como USB arrancable tenéis que entrar en la BIOS, o en equipos más modernos en la selección de arranque (generalmente pulsando F2 o F8 durante la primera fase del arranque, antes de que empiece a cargar el SO), y con el USB puesto elegir Arranque desde USB (obviamente la opción estará en inglés). No todas las placas base que tienen USB te permiten arrancar desde él, así que igual no tienes esta posibilidad.

Una vez arrancado podrás elegir si quieres probarlo en modo Live, para testearlo en tu equipo sin hacer cambios, si quieres ejecutar un test de memoria o si quieres instalarlo como tu nuevo sistema operativo. Bueno, las opciones que tendrías también desde un cd de arranque, vamos.

Si habéis elegido la opción de LinuxLive en Windows debéis entrar en el pen y buscar la carpeta VirtualBox, dentro tendrás dos ejecutables: Virtualize_this_key.exe y VirtualBox.exe. El primero lanza el Linux de golpe, ejecutado a través del Virtual Box y el segundo abre la interfaz completa de Virtual Box. Ya decía arriba que lo de «sin necesidad de tener instalado un software de virtualización» era un poco trampa, porque lo que hace este programa es meterte en el pen una versión portable de Virtual Box con la que trabajar.

En cualquier caso, se trata de una buena herramienta de creación de USB de Linux desde Windows, que merece la oportunidad de que la pruebes.

P2P ¿Qué es? ¿Por qué quiere cargárselo la industria del copyright? ¿por qué no hay que permitírselo?

Una red P2P, o peer to peer, es lo que podríamos traducir como red de pares o red punto a punto. Se trata de una red para compartir información donde los servicios no funcionan con la estructura típica de cliente/servidor sino como varios nodos que se comportan como iguales entre sí, permitiendo que un archivo puede descargarse a la vez desde varios nodos. Existen varias topologías de red P2P pero no es objeto de este artículo.

Las ventajas de las redes P2P sobre la estructura cliente/servidor para la descarga de archivos de gran tamaño se pueden ir adivinando sólo con ver el concepto de la propia red. Se trata de redes muy robustas, mientras que en la estructura cliente/servidor la caída del segundo deja el sistema inutilizado, en una red de pares es complejo que todo el sistema se venga abajo, la caída de un nodo no provoca la caída del sistema. Este punto nos lleva a la siguiente ventaja: la descentralización permite una enorme escalabilidad, cuántos más nodos conectados mejor funciona la red y esto sin necesidad de una enorme inversión en infraestructura, ya que el cliente hace a su vez de nodo. Incluso se pueden montar enormes bases de datos sobre una red P2P para ahorrar costos en un servidor central, con todas las ventajas que esto comporta para proyectos científicos (claro que cuando estos están auspiciados por la inversión privada su nivel de oscurantismo haría que fuera más propio llamarlos alquímicos).

A la hora de hablar de servicios famosos, BitTorrent o eMule son redes P2P mixtas, donde existe un servidor central que administra los recursos y funciona como concentrador pero que, en caso de caída, no es indispensable ya que podría pasar a funcionar como una red P2P pura. Por su parte Ares o GNUtella son redes P2P puras.

En los últimos días ha surgido por varios medios el rumor de que la industria del Copyright americana ha pedido al senado que aprueben el cierre de estos servicios para compartir archivos como ya hicieron con Megaupload, al comprobar que el cierre del servicio de Kim DotCom no les sirvió para paliar las descargas. Su nueva pretensión es acabar con este tipo de redes, en parte con la idea de limitar la cantidad de descargas y por otra con la de crear sus propias redes, bajo su control, como forma de distribución manejada por estas empresas con total control sobre los contenidos descargables. En resumen, ellos se lo guisan, ellos se lo comen. Y no sólo estas presiones al gobierno (que no se cuánto tienen de ciertas y cuánto hay de factible en intentar capar el sistema) están siendo su única arma, pues no hace muchos meses Microsoft inyectó dinero a una empresa rusa que diseñaba un software para ralentizar redes de pares (lamento no poder aportar enlaces ahora mismo pero estoy falto de tiempo para buscarlos, si rebuscáis por blogs como Alt 1040 encontraréis información sobre el tema).

¿Por qué esto es malo? Pues mayormente porque, como ya he dicho en muchas ocasiones, está guerra por el copyright no es tanto por el dinero que puedan perder supuestamente con las descargas como por su interés en controlar totalmente la distribución de contenidos. Para que sólo se venda lo que ellos quieran vender, porque en un sistema de distribución digital libre el disco autoproducido tiene el mismo número potencial de compradores que el lanzamiento de la gran discográfica (en el sistema tradicional no, porque el pequeño autor no podrá llegar a los grandes centros de distribución), en este sistema la película independiente está tan accesible como el gran superestreno. Y es que aunque sea cierto que la mayor parte de los usuarios utilizan estas redes para descargar material bajo licencias privativas, matar el P2P es matar una sistema ideal para la distribución de software libre o de obras creadas fuera del sistema de Copyright, ya que como afirmaba antes no requieren el costo extra de un gran sistema de servidores. Los que habitualmente descargamos distribuciones de Linux podemos dar fe de la diferencia de velocidad que se logra al hacer la descarga desde P2P (sistema de distribución muy habitual en este mundillo) o al hacerla desde un servidor directamente (y eso que suele haber muchos mirrors).

Por todo lo arriba expuesto queda claro lo nocivo de las intenciones de la industria, y que será necesario volver a pararles los pies, como con la PiPA, la SOPA y la ACTA.

Mejorar el rendimiento de la batería en Ubuntu

Entrada que se me antojaba sencilla mientras me recupero de destructivo fin de semana currando en el Pardiñas Rock, y que por problemas con máquinas virtuales, configuración de Windows y caídas constantes de la red (Carrefour Mobile, si llueve pierdes la mitad de la cobertura… menos mal que en Galicia llueve poco). ¿Cómo optimizar el rendimiento de la batería en Ubuntu Linux?

En fin, hace tiempo que tenía esto pendiente tras un debate con un Windolero que me decía que con el sistema de Mr. Gates la batería rinde más que con Linux. Realmente esto no es así, aunque si eres usuario de Ubuntu pueda paracerlo. El problema del rendimiento de la batería está en las derivaciones de Ubuntu (y no en todas, en Lubuntu, con LXDE, no he notado problemas de rendimiento, aunque tampoco he profundizado), no en todos los Linux, y no es complejo arreglarlo.

En todo caso, antes de meternos en configuraciones un consejo, válido además tanto para equipos Linux como para Windows: Si no usas el wifi ni el bluetooth no los tengas conectados, consumen muchísima batería.

Ahora vamos con cuestiones más técnicas: uno de los problemas de Ubuntu es que no diferencia entre si está instalado en un portátil o en equipo de sobremesa, lo cual hace que no haya un sistema de optimización de energía por defecto para este tipo de equipos. La solución no es compleja, y comienza por editar /etc/default/acpi-support y añadir al final ENABLE_LAPTOP_MODE=true y, tras esto, instalar laptop-mode-tools, ya sea desde el repositorio con un sudo apt-get install laptop-mode-tools o desde su página web. Luego en /etc/laptop-mode/conf.d/ puedes encontrar diversos archivos de configuración que tocar para lograr mejor rendimiento de la batería.

En Hotfixed recomiendan también instalar PowerTop, un software que te avisa de qué componentes están consumiendo más energía y cómo optimizarlos o desactivarlos. Con esto lograrás un menor consumo, aunque yo no lo he probado personalmente.

Añado por aquí que también he leído que existe un problema de rendimiento cuando el equipo tiene dos tarjetas gráficas: una NVIDIA y una integrada. Parece ser que el proceso Optimus, que tira de la NVIDIA sólo cuando hace falta toda la potencia gráfica y si no utiliza la integrada, en Linux no funciona, por lo que siempre recurre a la NVIDIA. ¿La solución? Parece que Bumblebee arregla esto, pero sólo para los casos de NVIDIA con Optimus. No he tenido oportunidad de comprobarlo, en este caso hablo de oídas.

En fin, con estos consejillos lograréis que vuestra batería en Ubuntu tenga la misma vida que con Windows, o incluso más.

Consejos de seguridad para usar Facebook de forma responsable.

Si en su momento ya hice una entrada de consejos de seguridad generales en la red para proteger la privacidad de tus cuentas, ahora toca uno específico para Facebook.

  • No añadas a lo loco a gente que no conoces, hay muchas cuentas que pretenden hacerse pasar por una persona que quiere amistad o sexo para luego estafarnos o extorsionarnos.
  • Si tienes que aceptar a alguien por «compromiso» puedes dejar a esa persona con acceso limitado para que solo vea lo que pones como público. Y recuerda que el que compartas algo solo para tus contactos no garantiza al 100% que esto no pueda acabar siendo visto por alguien que no querías que lo viera, así que si dudas mejor no compartas.
  • Usa siempre una contraseña fuerte. Lo mejor es que uses un gestor de contraseñas. Si no quieres usarlo entonces recuerda: nunca menos de 11 dígitos y con mayúsculas, minísculas, números y símbolos. Aunque no hayas detectado ningún ataque, cámbiala al menos cada cuatro meses. Y si sospechas que se ha visto comprometida, no pierdas ni un minuto en hacerlo. No la compartas con otras personas y no utilices para FB la misma que para el correo electrónico que tengas asociado.
  • Si usas un equipo en una ubicación pública (cibercafé, centro social, instituto, universidad, biblioteca), o en el ordenador de otra persona, cierra siempre la sesión. No basta con cerrar el navegador, la sesión persiste, y aunque confiéis en la buena fe de la otra persona, ello no implica que la seguridad de su equipo no esté expuesta. Por eso, antes de cerrar el navegador, id a Salir de vuestra cuenta (en el menú de vuestra cuenta).
  • Ojito con el phishing. Comprobad en la barra de direcciones que la dirección es correcta, y que no sea http://www.facbook.com o http://www.bacefook.com o similar. Hay páginas con direcciones que suenan parecidas a la de Facebook creadas expresamente para robar tus datos, fíjate bien en la dirección.
  • Cuidado con los permisos que te piden la aplicaciones. Todo el caso de Cambridge Analítica vino de ahí, de aplicaciones que accedian a datos de terceros por culpa de usuarios que no tenían cuidado a la hora de unirse a estos juegos o tests.
  • Usa la navegación segura. Cuando la utilizas toda la transmisión de información se cifra, haciendo más complejos ciertos ataques. Para activarla debes hacerlo desde el apartado de Seguridad de la Configuración de Cuenta, donde basta marcar la casilla de Usar Facebook a través de una conexión segura siempre que sea posible y luego guardar los cambios. Si está activada verás como en la dirección el procolo cambia de http a https.
  • Si monitorizas la actividad de tu cuenta puedes saber si se ha accedido desde un dispositivo que no es el tuyo. En la sección de Seguridad de tu cuenta podéis ir a Notificaciones de inicio de sesión para que, si se accede desde un dispositivo que no haya sido usado antes para entrar a tu FB, te lo notifique al correo electrónico. También puedes comprobar ahí qué sesiones están activas, y saber si alguien más está conectado a tu cuenta.
  • Y otro punto que repito del anterior: Cuidado con la geolocalización, se pueden cruzar tus datos con los de otras redes y aplicaciones para saber dónde vives, por dónde te mueves…

Y recuerda que Facebook genera millones pero para el usuario es gratis. Piensa ¿De dónde sale la pasta? La minería de datos es uno de los grandes negocios de esta década, así que supón que lo más probable es que comercien con ellos, y ya los tenga alguna empresa china o estadounidense.

Tres herramientas libres para el cifrado de archivos

Como llevo unos días estudiando temas de seguridad (firma electrónica, VPN, algoritmos de encriptación, funciones de resumen…) es un buen momento para una corta entrada sobre herramientas para cifrar tus archivos. Voy a recomendar las que creo que son las tres mejores herramientas para encriptar tus archivos.

  • GPG o GNU Privacy Guard: Es la versión libre de PGP, y podéis descargarla desde este enlace. No sólo es ideal para el cifrado de archivos locales, e incluso de sistemas de discos enteros, sino también para el encriptado de comunicaciones. Permite el uso de pares de claves, firmas con tiempo limitado y esquemas de cifrado varios. Aunque en principio funciona en línea de comandos, existen varios plugins y entornos gráficos para el mismo, tanto en Linux como en Windows o MacOS.
  • True Crypt: Una de las más poderosas herramientas del mercado, se trata de una herramienta on-the-fly, que descrifa los archivos cuando los abres y los vuelve a cifrar cuando no están en uso. True Crypt es libre, gratis y está disponible para Linux, MacOS y Windows desde su web oficial. Está fuertemente optimizado para que la diferencia entre trabajar con un volumen cifrado y uno sin cifrar sea la menor posible. Permite cifrar tanto archivos como unidades enteras de disco, crear discos de seguridad virtuales y hasta crear volúmenes ocultos para mayor seguridad.
  • AxCrypt: En el caso de AxCrypt la utilidad es mayormente la de cifrar archivos sueltos o carpetas. Está disponible aquí para Windows y se integra en la shell del SO para que, con sólo hacer click derecho sobre un archivo, ya tengas la opción de Encriptar/Desencriptar. Permite además crear archivos autoextraíbles para transportarlos y transferirlos de forma segura, sin tener que tener instalado AxCrypt en el otro equipo.

Conste que si la idea es simplemente encriptar un archivo, el compresor 7zip te da la posibilidad de utilizar AES-256 para codificar el paquete ZIP, con lo que tus archivos estarán totalmente seguros.

En fin, con estas tres aplicaciones, no hay excusa para tener tus datos más confidenciales expuestos.