Crear una gráfica de dispersión con LibreOffice Calc

Toda buena hoja de cálculo tiene una utilidad de creación de gráficas y LibreOffice no va a ser menos. La suite ofimática libre nos permite crear, con su programa Calc, gráficas para dar color y hacer más visuales nuestras representaciones de datos.

Dispersión datos

Lo primero es meter los datos en las dos columnas. Para nuestro ejemplo vamos a hacer una gráfica que muestra la relación entre la distancia recorrida y el tiempo invertido, que mostrará la evolución de la velocidad. La columna X muestra el tiempo invertido y la columna Y la distancia recorrida en dicho tiempo. En dicha gráfica podremos comprobar como el cansancio va haciendo que en cada intervalo se vaya recorriendo menos distancia.

Tras insertar los datos lo siguiente es irnos al menú Añadir->Objeto->Gráfica y en los distintos modelos que podemos elegir escogemos Dispersión:

Asistente gráfica 1

Tras eso escogemos el rango de datos seleccionando las dos columnas donde hemos metido los datos. En el siguiente paso, donde hay que confirmar las series, ya nos debería traer los valores por defecto de ambas columnas. En caso contrario tendrías que seleccionarlas también.

Asistente Gráfica 2

Finalmente le damos un título a la tabla y también a ambos ejes de la misma, para que sea evidente su función.

Asistente de la gráfica 4

Y tras completar todos los pasos ya tenemos nuestra gráfica de dispersión lista y podemos visualizarla.

Gráfica evolución

El Bandcamp de la Quincena: The Heartwood Institute – Secret Rites

Un manto de oscuridad se cierne sobre nosotros en esta calurosa mañana de verano, este Secret Rites encapota los cielos.

Es posible que el nombre de The Heartwood Institute no te diga mucho, se trata de un proyecto musical de electrónica oscura que lleva muy activo, publicando múltiples EP, singles y discos desde 2015. Nos llegan desde Cumbria, en el norte de Inglaterra y nos trae a un veterano de la música electrónica: Jonathan Sharp.

Sharp tiene a sus espaldas una larga carrera que comienza a principios de los años 90, usando durante estos años los alias de Bio-Tek, Datura, Gunhed, Lashtal, New Mind, Nova, Psionic, Tyrophex 14, VENTZodiac, lo que complica un poco seguirle la pista y seguir sus múltiples cambios de estilo, ya que aunque se ha movido siempre dentro de la música electrónica ha orbitado entre géneros más agresivos, como en sus inicios con New Mind allá por 1991, acercamientos a sonoridades góticas como en Cyber-Tec y el puro industrial con Hexedene.

The Heartwood Institute

Inspirado por lo gris de los cielos de su ciudad, lo agreste de sus montes y por el cine de terror italiano de los 70 y las películas de folk horror inglesas de esa misma época (valga como ejemplo esa portada cargada de brujería que se ha currado Nick Taylor, de Spectral Studio) en este Secret Rites no encontraremos la agresividad de antaño, no veremos ese sonido industrial intenso y machacón. Con este proyecto, este The Heartwood Institute, lo que encontramos es música electrónica old-school ambiental y oscura, más en la onda de una banda sonora de Lucio Fulci cargada de sintetizadores analógicos.

The Heartwood Insitute nos ofrece en este trabajo un paseo por universos y ambientes inquietantes, música que mantiene una tensión constante y una oscuridad perpetua.  Un viaje al lado más oscuro de la mente de Jonathan Sharp.

fping: Una herramienta de ping «vitaminado» para Linux.

Todos conocemos ping, una utilidad diagnóstica que comprueba el estado de la comunicación del host local con uno o varios equipos remotos de una red IP por medio del envío de paquetes ICMP de solicitud (ICMP Echo Request) y de respuesta (ICMP Echo Reply). Hoy vamos a ver cómo funciona fping, un programa que nos permite ampliar las posibilidades que tiene el ping standar de Linux.

Para instalarlo, en un sistema de la familia Ubuntu/Debian, basta con teclear lo siguiente:

sudo apt-get install fping

¿Qué cosillas nos aporta fping? Veamos:

  • Lanzar un ping a varias IP a la vez: Basta con pasar como parámetro las direcciones IP separadas por un espacio y fping lanzará un ping a cada uno y nos responderá con el estado de cada IP.
  • Lanzar un ping a un rango de IP: Similar a lo anterior, pero en lugar de definir manualmente una lista de IP le damos dos valores para que compruebe todo entre ellos. Para hacerlo la sintaxis es fping -s -g y las dos direcciones IP separadas por un espacio. fping a rango
  • Lanzar un ping a toda la red: También podemos definir una máscara de red para que fping envíe ping a todos los equipos de la misma. En este caso la sintaxis fping -g seguido de la red que queremos revisar (en mi caso sería fping -g 192.168.1.0/24) dará una vuelta a vuestra red mandando pings a todas las direcciones.
    fping a toda la red
  • Carga direcciones desde un fichero: Supongamos que tenemos un fichero que se llama ListaIP.txt, pues con fping podemos cargar esa lista y recorrerla. Bastaría con hacer un fping < ListaIP.txt
  • Redirigir la salida a un fichero: Esto realmente no es una característica de fping sino que es algo general de Linux. Ya sabes que añadiendo el carácter > seguido de un nombre la salida de un comando se guarda en ese fichero. Por ejemplo fping -g -r 1 192.168.1.0/24 > red.txt crearía un fichero con ese nombre con el resultado de ese comando.

En este enlace puedes ver la documentación para exprimir a fondo todas las opciones de fping.

Reciclar un móvil viejo en una cámara de seguridad wifi.

En fin, parece que el primer artículo sobre cómo dar una segunda oportunidad a un viejo móvil gustó. Si vimos la posibilidad de convertirlo en una consola portátil hoy vamos con algo más práctico: una cámara wifi.

Si quieres una cámara de seguridad es posible que esta no sea la mejor opción y que debas invertir en opciones más profesionales, pero ¿como monitor para bebés? ¿o para monitorizar a una persona enferma o que requiere cuidados y atención constantes? ¿o para ver cómo está nuestra mascota? Son muchos usos prácticos que podemos dar a una cámara wifi.

Lo primero será hacernos con un soporte para colocar nuestro teléfono, puede parecer una chorrada pero es fundamental que esté bien orientada la cámara. Podemos comprar un trípode o un soporte o, si nos animamos, fabricar uno. Aquí os dejo unas ideas para la última opción. También nos hará falta un cargador, ya que usarlo como cámara consume muchos recursos así que lo mejor es que esté permanentemente enchufado.

Alfred

Y ahora lo que necesitamos es instalar un app de cámara de seguridad en nuestro teléfono. Hay varias opciones, yo he decidido optar por la Cámara de Vigilancia Wifi Alfred, una aplicación que está disponible para Android e iOS y que ha sido desarrollada por Alfred Labs Inc. ¿Por qué? Por cuatro motivos:

  1. Tiene una versión gratuita bastante completa.
  2. Es sencillo de configurar.
  3. Es compatible con teléfonos bastante antiguos.
  4. Tiene las mejores valoraciones en el Play-Store.

Para utilizarlo necesitaremos, como es lógico, dos dispositivos: nuestro móvil viejo, que será el que haga de cámara, y un dispositivo (o varios) que usaremos como visor, ya sea otro móvil, un tablet o a través del navegador de nuestro PC usando su app de visor web (por cierto, si tenéis un bloqueador de publicidad no os dejará desde el navegador, tenéis que desactivarlo). También hará falta una cuenta de Google, que nos permitirá sincronizar ambos dispositivos.

Alfred Visor Web

Cuando instalemos el dispositivo en nuestro teléfono nos pedirá que lo configuremos como visor o como cámara. Elegimos la opción que corresponda, nos conectamos con la cuenta de Google y le damos permisos ya que, como es lógico, necesitará tener acceso a la cámara para poder grabar.

Desde el visor tendremos múltiples opciones: rotar la imagen, realizar una captura de pantalla, grabar un fragmento de vídeo, activar el flash… en general opciones bastante estándar en este tipo de aplicaciones. La más revolucionaria es la de detección de movimiento, que hay que activar tanto en el dispositivo como en el visor y que saca una foto cuando detecta algo moviéndose; aunque también es muy útil la función de ahorro de energía, que mantiene la pantalla del móvil apagada para reducir el consumo de batería.

¿Merece la pena? Bueno, el precio de una cámara de estas, de gama baja/económica, anda por los 50 o 60 euros. Así que si necesitas una y tienes un viejo teléfono criando polvo en un cajón puede ser una muy buena idea.

 

Distintas formas de invertir una cadena de texto en Linux.

Vamos a hablar un poco más sobre programar scripts en Linux y veamos cómo podemos invertir una cadena con distintos métodos:

Empezamos con lo más sencillo, usar la función rev:

echo holiii | rev

Usando el comando sed dos veces, junto con tac, también podemos hacerlo:

echo holiii | sed 's/./&\n/g' | tac | sed -e :a -e 'N;s/\n//g;ta'

Ya os podéis imaginar que si podemos hacerlo con sed es que también podemos hacerlo con awk, en este caso con la función substr() y un bucle for con el que recorreremos la cadena de fin a principio pintando cada letra:

echo holiii | awk '{ for(i=length;i!=0;i--)x=x substr($0,i,1);}END{print x}'

Y no podría faltar el tradicional script de shell. El principio es el mismo que con awk: recorrer la cadena del final hacia el inicio pintando cada elemento

#!/bin/bash
a="holiii"
len=`echo ${#a}`
while [ $len -ne 0 ]
do
        b=$b`echo $a | cut -c $len`
        ((len--))
done
echo $b

Instalar Visual Studio Code en Ubuntu

La versión ligera del popular editor de código de Microsoft hace tiempo que está disponible para diversos sabores de Linux. En principio bastaría con descargar el fichero .deb de la última versión e instalarlo desde el gestor de paquetes, lo que se encargaría ya de instalar el software, las dependencias y añadiría los repositorios. Pero hay gente que ha experimentado problemas en algunas versiones de Ubuntu para hacerlo de la forma simple. ¿Solución? Descargar el paquete .deb de la web e instalar desde línea de comandos.

#El nombre del fichero
#variará según la versión
#que descarguemos
sudo dpkg -i nombredelfichero.deb

#Instalamos dependencias
sudo apt-get install -f 

#Este código agrega
#los repositorios
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'

Introducción al álgebra booleana: ¿Qué es?

El álgebra booleana es una estructura algebraica que esquematiza las operaciones lógicas, tomando su nombre de George Boole quien fue el primero en definirla como parte de un sistema lógico en 1847, en un intento de utilizar las técnicas algebraicas para tratar expresiones de la lógica proposicional.

El Álgebra de Boole es un conjunto “A”, provisto de dos operaciones binarias AND, OR, una operación unaria NOT y dos elementos 0 (Falso) y 1 (Verdadero), de forma que para todos los elementos a, b y c del conjunto A, se cumplen los siguientes axiomas:

Asociatividad:
a OR ( b OR c ) = ( a OR b ) OR c
a AND ( b AND c ) = ( a AND b ) AND c

Conmutatividad:
a OR b = b OR a
a AND b = b AND a

Absorción:
a OR (a AND b)=a
a AND (a OR b)=a

Distribuitividad:
a OR (b AND c)=(a OR b) AND (a OR c)
a AND (b OR c)=(a AND b) OR (a AND c)

Complementación:
a OR NOT a = 1
a AND NOT a = 0

Como en una computadora digital hay sólo dos posibilidades, usar el 0 o bien el 1 para representar el objeto más pequeño e indivisible, el álgebra booleana se convierte en una de las herramientas fundamentales de la computación y de la electrónica. Todos los datos se reducen finalmente a combinaciones de bits y los circuitos electrónicos permiten que estos recursos de almacenamiento se comuniquen entre sí. Un bit en una parte de un circuito se transmite a otra como voltaje. Por ello se necesitan dos niveles de voltaje: un voltaje alto que comunique el 1 y un voltaje bajo que comunique el 0. Fue Claude Shannon, en 1938, el primero en darle esta utilidad para simplificar circuitos conmutadores.

Operación AND.
La operación AND es exactamente igual a una multiplicación normal por lo cual sus reglas son las siguientes:

  1. Solamente si todas las entradas son 1 la salida será 1.
  2. Cuando una o más entradas sean 0 la salida será 0.

En el caso de una compuerta AND en un circuito electrónico esta opera en tal forma que su salida es ALTA sólo cuando todas sus entradas son ALTAS. En todos los otros casos la salida de la compuerta AND es BAJA.

Operación OR:
La operación OR es básicamente una suma y sus reglas son las siguientes:

  1. Produce un resultado de 1 cuando cualquiera de las variables de entrada es 1.
  2. Produce un resultado de 0 solo cuando todas las variables de entrada son 0.

En el caso de una compuerta OR opera en tal forma que su salida es ALTA si la entrada A, B o ambas están en un nivel lógico 1. La salida de la compuerta OR será BAJA si todas sus entradas están en el nivel lógico 0.

Operación NOT:
La operación NOT también se conoce como inversión o complementación, básicamente nos devuelve el valor complementario al que tengamos. Es decir, si A es igual a 0 entonces NOT A sería uno 1.

En el caso de un circuito electrónico NOT este siempre tiene una sola entrada y su nivel lógico de salida es contrario al nivel lógico de esta entrada.

Evitar el mensaje de error «No está permitido guardar cambios» cuando intenta modificar una tabla en SQL Server

A veces al realizar ciertas modificaciones sobre una tabla, como cambiar el tipo de datos o la precisión de una columna, el orden de la mismas o al agregar una nueva recibimos un mensaje de error de SQL-Server que nos dice que «No está permitido guardar cambios porque no se permiten cambios que obliguen a crear tablas de nuevo«. ¿Hay alguna forma de modificar esto y permitir el cambio? Sí, hay dos opciones.

La primera es no utilizar la interfaz gráfica para hacer la modificación sino usar instrucciones SQL. Si por ejemplo queremos cambiar la precisión y permitir valores nulos en una columna de la tabla podríamos hacerlo así:

alter table Clientes alter column ObservacionesCliente nvarchar(500) NULL

Otra solución es desactivar la opción de Impedir guardar cambios que requieren volver a crear tablas en el entorno gráfico. En el menú Herramientas, hacemos click en Opciones y, dentro de ese menú, vamos al submenú Diseñadores. Allí desactivamos la opción Impedir guardar cambios que requieren volver a crear tablas y, a continuación, hacemos click en Aceptar para guardar los datos. Os dejo una captura de dicho menú:

SQL-Server Opciones Diseñadores

El Bandcamp de la Quincena: Lewis Floyd Henry – Mashups LP Volume #1

Nos ponemos urbanos, nos ponemos callejeros y nos vamos a las calles de Londres para esta entrega de El Bandcamp de la Quincena.

Ya sabéis que yo soy de los que están hartito y mucho de las bandas tributo que andan por este mundo vampirizando la obra de otra gente para hacer caja, eclipsando a la chavalada (y no tan chavalada) que intenta sacar adelante un proyecto propio. Pero tampoco es ser hater por ser hater, siempre añado una coletilla «Si al menos hicieran alguna cosa creativa, interesante y distinta con las versiones, ir más allá de ser una fotocopia, la cosa cambiaría.» Y aquí tenemos un ejemplo de eso, de alguien haciendo versiones pero haciendo algo que va más allá de clavarlas. En este Mashups LP Volume #1 los clásicos del rock y del hip hop se dan la mano de manera obscena y descarada.

Lewis Floyd Henry Mashups

Si alguien quiere hablar de «autenticidad» con el señor Lewis Floyd Henry lo lleva complicado. Este hombre se lleva ganando la vida como artista urbano una larga temporada, tocando en las calles de Londres cuando no está de gira por recintos más cómodos y apropiados. Al igual que nuestro amigo Billy Lobster, Lewis Floyd Henry es una banda de un solo hombre. Si Walt Whitman decía que contenía multitudes dentro de si Lewis Floyd contiene un power trío, hace ruido como tres pero es uno solo, se encarga de la guitarra, de la batería, canta y toca la harmónica. En su ya larga discografía suele moverse por la revisión de finales de los sesenta, maridando blues eléctrico, psicodelia y folk rock, picando de Captain Beefhart, Nick Drake, los primerizos Rolling Stones, los dos Becks (tanto Jeff como el más joven que no es Jeff) y, sobre todo, un Jimi Hendrix que es tanto influencia musical como estética, pero en esta entrega de mashups orbita entre el rock duro y el metal mezclado con sus referentes del hip hop.

¿Es rapear Juicy de Notorius BIG en medio del Ace of Spades de Motorhead un sacrilegio? Alguno dirá que sí, pero ¿estamos para defender esto con ortodoxia religiosa? ¿Acaso las siglas AC/DC no casan bien con las de ODB? Pero fusionar rap y rock tampoco es que sea tan raro, ¿no? Ya lo hicieron Anthrax con Public Enemy o Aerosmith con Run DMC, ya hubo una explosión del rap-metal en los 90 ¿Pero rapear por encima de un tema de Nick Drake? Lo curioso es que realmente suena bien, hasta mi madre lo bailaba mientras escribo esto.

La producción es mínima, si me dicen que lo ha grabado con el mismo ampli de 30 watt con el que se le ve en Youtube tocando en la calle me lo creo. ¿Es este Mashups LP Volume #1 una obra maestra o revolucionaria? No, pero es un experimento gamberro muy divertido. No es lo que recomendaría como primer opción para acercarse a su música, ahí diría que mejor empezar con Sonic Rodeo, pero sí como un muy buen recurso para pinchar en una fiesta.

Calculadora de Ohm en Javascript

La ley de Ohm fue postulada por el físico y matemático Georg Simon Ohm, es una ley básica de los circuitos eléctricos. Nos dice que la diferencia de potencial V que aplicamos entre los extremos de un conductor es proporcional a la intensidad de la corriente I que circula por él. Introduce la noción de resistencia eléctrica R: el factor de proporcionalidad que aparece en la relación entre diferencia potencial e intensidad.

En este ejemplo vamos a hacer una función de Javascript que puede recibir tres parámetros y, según el que reciba vacío, devolverá un resultado u otro valiéndose de la fórmula general de la ley de Ohm, que resumimos en la fórmula V=R*I.

function calculadoraOhm(V,R,I){
  //si la diferencia potencial va vacía
  //en ese caso calculamos el voltaje.
  if(V==""){
    return parseFloat(R)*parseFloat(I);
  }
  //si la resistencia va vacía
  //en ese caso calculamos el voltaje.
  if(R==""){
    return parseFloat(V)/parseFloat(I);
  }
  //si la intensidad va vacía
  //es la que calculamos.
  if(I==""){
    return parseFloat(V)/parseFloat(R);
  }
  //si no va nada vacío devuelve una cadena vacía.
  return "";
}