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.

 

Anuncios

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 "";
}