lunes, 6 de agosto de 2018

Smart Robot Car - Arduino - IR Control

He montado un smart Robot Car que funciona con la placa Arduino Uno Rev.3. El código para Smart Robot Car - Arduino - IR Control  del youtube Armuino pueden descargarlo aquí


Las piezas venían en un kit que compré a través de Aliexpress. Hoy no volvería a comprar este kit ¿Por qué?. Las instrucciones que no eran muy claras,solo se referían al montaje básico de los motores, ruedas y chasis, sin hacer ninguna referencia a Arduino, tampoco había  un CD con ejemplos de código para Arduino y hasta tuve que comprar alguna pieza y también  las 3 baterías LIPO 18650 3,7V y 6000mAh que alimentan los motores DC del Smart Robot Car para proteger las 3 baterías LIPO de sobrecargas o descargas y evitar que se dañen, compré un protector de placa para este tipo de baterías con este fin.

El Smart Robot Car utiliza 2 motores DC que necesitan un mínimo de 3V  para su funcionamiento. Y un elemento imprescindible: el módulo L298N, del cual dejo una excelente y detallada explicación en este 
artículo y que permite el funcionamiento de varios motores DC.

Este módulo L298N tiene elementos de protección como diodos, un regulador de voltaje LM7805. El módulo L298N dispone de un jumper. Sin el jumper admite voltaje entre 12V y 35V pero yo no lo he quitado. De este modo, el módulo permite recibir un voltaje de entrada en torno a un rango de entre 6V y 12V (Yo he usado 3 baterías LIPO que suman un voltaje total de 11,1V).El módulo L298N suministra un voltaje de salida de 5V al microcontrolador Arduino y a los diferentes pines a los que hay conectados elementos del circuito. El resto del votaje alimenta los motores DC.

Cada batería LIPO tenía su portabaterías individual y lo que hice fue soldar las puntas de los cables de las portabaterías entre sí para conectar las baterías en serie y también al protector de placa como muestro en el esquema gráfico que muestra las conexiones de los diferentes elementos del circuito.

La placa de Arduino y el módulo sensor receptor de infrarrojos IR que permite al microcontrolador recibir las instrucciones básicas de parar, avanzar , retroceder, girar a la izquierda y girar  a la derecha a través de varios botones de un  mando de control remoto IR.

El circuito también dispone de un interruptor de botón que permite encender y apagar el circuito.
Esquema de montaje del circuito del Smart Robot Car con sus conexiones


En este artículo voy a poner el código del Youtuber Armuino para un Smart Robot Car - Arduino - IR Control. Yo he hecho unas pequeñas modificaciones al código para reducir considerablemente las revoluciones por minuto de los motores. De no hacerlo, el coche coge mucha velocidad y después resulta complicado pararlo con la ayuda de un mando a distancia IR porque con el giro, la distancia o algún obstáculo no recibe la señal.

La velocidad de un Smart Robot Car alimentado por 3 baterías LIPO 18650 3,7V y 6000mAh es considerable y he hecho una pequeña molificación al código y elegí una velocidad de 75 revoluciones por minuto en vez de 180 o 255 como he visto en algunos ejemplos para los diferentes movimientos de avanzar, retroceder,girar a la izquierda y a la derecha. Ahora bien, usted puede configurar diferentes valores para estos movimientos sí así lo desea.

Ejemplo de cambio de la velocidad en revoluciones por minuto para los motores DC para la función que permite mover el coche hacia adelante:
void moveForward(int speed) //Función que mueve el coche hacia adelante
{
//  Establece una velocidad en rpm con valores de 0 a 255 para los motores DC
  speed = 75; // velocidad a 75 rpm
  moveStop();
 
  // turn on motor A
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  // turn on motor B
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
  // set speed within a possible range 0~255
  analogWrite(enA, speed);
  analogWrite(enB, speed);
}

Un agradecimiento especial al youtuber Armuino porque sus vídeos en Youtube me han ayudado mucho a la hora de montar este modelo de Smart Robot Car y por el código. Armuino dispone de varios vídeos de este modelo Smart Robot Car que funciona con el módulo de ultrasonidos que evita los obstáculos con control remoto a través de IR, Bluetooth; un joystick y un módulo de RF. Visiten el canal de Youtube Armuino si así lo desean.

Un saludo a todos.

lunes, 30 de julio de 2018

El increíble caso del neurocirujano que visitó el cielo

Cómo calcular el tiempo de recarga de una baterías de Ni-Cd y Ni-Mh

Nota: Estos cálculos sólo están indicados para recargar las baterías de Ni-Cd y Ni-Mh utilizando un cargador simple, excluyendo a las baterías de Li-Po, Li-Ion y Li-FePO4

Vamos a calcular el período máximo aceptable para que su batería pueda permanecer recargándose y con ello evitar daños a su batería por exceso de carga.

La fórmula estándar más utilizada internacionalmente es la siguiente:

A / B * C = X
A = Amperaje de la batería (capacidad de carga) 
B = Salida de amperaje del cargador (salida del cargador) 
C = 1,4 (En el artículo he leido  que usan el valor 1,2 pero en otras webs he leido 1,4, es un factor que tiene en cuenta la pérdida de energía durante la carga)
X = Tiempo de recarga en horas.

A continuación se muestra un ejemplo: 

1 - Batería de 500 mAh 
1 - Recarga de 250 mAh

Cálculo: 

500/250 * 1.4 = 2,8 (O sea, 2 horas 48 minutos de tiempo de recarga)


Consejos

En la primera carga, compruebe si la batería se está calentando mucho. En caso afirmativo,  retire la batería y considérela recargada para evitar daños.

¡Nunca confíe plenamente en el amperaje que aparece en el cargador! Normalmente, los cargadores simples son regalos cedidos por los fabricantes y no hacen un control  exhaustivo sobre la calidad de los mismos, por lo que se llaman cargadores "simples".

El cálculo sólo funciona con la batería totalmente descargada. Seguro.

Nunca recargue la batería más que el tiempo estimado por el cálculo. Si se sobrepasa, seguramente su batería se quemará.

El cargador simple no es automático, no enciende la luz al terminar de recargar y no corta la salida de energía cuando la batería está llena. Por eso, use el "cargador simple" con cautela.

Mucho cuidado con el voltaje de su ciudad. Evite conectar un cargador con voltaje 110v en una toma de red 220v..

Shell script en BASH con una lista de comandos de ImageMagick

He hecho un Shell script en Bash con una lista de comandos de ImageMagick lo pueden descargar haciendo click en este link, espero que les guste.

ImageMagick es un conjunto de utilidades de código abierto1​ para mostrar, manipular y convertir imágenes, capaz de leer y escribir más de 200 formatos.​ ImageMagick es publicado bajo la Licencia Apache.

Características

El software consiste principalmente en un conjunto de utilidades de línea de comandos para manipular imágenes. ImageMagick no tiene una Interfaz gráfica de usuario propia como Adobe Photoshop o GIMP. Sin embargo, incluye una interfaz de X Window llamada IMDisplay y una API para diversos lenguajes de programación. El programa usa los números mágicos para identificar el formato de las imágenes.

Algunas aplicaciones Web como MediaWiki, phpBB, y vBulletin, pueden usar ImageMagick para generar miniaturas en reemplazo de GD. También es usado por otros programas como LyX para convertir imágenes. ImageMagick también integra una API de Perl llamada PerlMagick,3​ además de otras APIs gráficas.

Conversión de formatos

Una de las características básicas de ImageMagick es la de convertir imágenes a diversos formatos de manera precisa.

Manipulación de color y Paleta de colores

El número de colores en una imagen puede ser reducido arbitrariamente usando Cuantificación y esto se hace de manera inteligente seleccionando el color más prominente en un conjunto de pixeles de la imagen. Nótese que muchas otras aplicaciones de manejo de imágenes no son compatibles con una paleta de colores de un número arbitrario de colores. Si, por ejemplo, se reduce una imagen de 13 colores a través de ImageMagick, algunas aplicaciones la abrirán correctamente, pero otros la verán como corrupta.

Una capacidad relacionada es la posterización, que también reduce el número de colores de una imagen. La diferencia con la cuantificación de color estándar es que la paleta final se seleccionan sobre la base de una ponderación del color prominente de un conjunto de pixeles de una imagen, mientras que la posterización crea una paleta de colores suavemente distribuida en todo el espectro en la imagen. Mientras que con la cuantización de color estándar, todos los valores de color finales son los que se encontraban en la imagen original, mientras que los valores de color en una imagen de póster puede no haber estado presente en la imagen original, pero se encuentran entre los valores de color original.

Tramado

Un control preciso se proporciona para el Tramado que se produce durante los cambios de color y el sombreado, incluyendo la capacidad de generar tramados de semitonos.

Reescalado de video

Desde el lanzamiento de marzo de 2011, ImageMagick agregó soporte para Reescalado de Video o Seam Carving. Esta característica permite, por ejemplo, ajustar el aspecto de una imagen 16:9 a una de 4:3 sin distorsionar la imagen final.

OpenCL

ImageMagick puede usar OpenCL, obteniendo aceleración por hardware de la GPU para el procesado de imágenes.

Distribución

ImageMagick es multiplataforma, y corre en Microsoft Windows y sistemas basados en Unix, incluyendo Mac OS X, Linux, Solaris, y FreeBSD. El código fuente puede ser compilado para otros sistemas como AmigaOS 4.0 y MorphOS.

Software relacionado

GraphicsMagick es una bifurcación de ImageMagick 5.5.2 creada en 2002, enfatizando la estabilidad de la API e interfaz de usuario de los lanzamentos multiplataforma. GraphicsMagick emergió tras diferencias irreconciliables de los desarrolladores.

Shell script en BASH con una lista de comandos de ImageMagick

#!bin/bash
# Nombre: imagemagick.sh
# Autor: viriato
# Origen: comunidad exdebian.org
# Lenguaje: BASH
# Licencia: GPL
# Propósito: manipulación de imágenes con ImageMagick
# Dependencias:
# Código:
# Fuentes: https://www.imagemagick.org/script/index.php
clear
function menu {
echo
echo 'SCRIPT CON UNA LISTA DE COMANDOS IMAGEMAGICK'
echo
echo '__________________________MENU____________________ '
echo
echo 'Lista de opciones:'
echo
echo '1)  Redimensionar una imagen usando porcentajes'
echo '2)  Redimensionar una imagen usando pixels'
echo '3)  Comprimir una imagen modificando su calidad'
echo '4)  Rotar una imagen'
echo '5)  Añadir texto a una imagen'
echo '6)  Creación de un imagen thumbnail o copia en miniatura'
echo '7)  Recortar una imagen con crop'
echo '8)  Cambiar el formato a colección de imágenes'
echo '9)  Conversión de una imagen en otra utilizando resample'
echo '10) Convertir una colección de fotos en un documento PDF'
echo '11) Extraer imágenes de un documento PDF'
echo '12) Poner bordes de color sólido o con cierto grado de transparencia a una imagen'
echo '13) Poner borde en 3D trasparente'
echo '14) Efecto implode con una imagen'
echo '15) Usar efecto monocromo en una imagen'
echo '16) Usar efecto paint en una imagen'
echo '17) Usar efecto wave en una imagen'
        echo '18) Usar efecto vignette en una imagen'
        echo '19) Usar efecto sepia en una imagen'
        echo '20) Usar efecto negate en una imagen'
echo '21) Usar efecto foto Polaroid en una imagen'
echo '22) Usar efecto motion-blur en una imagen'
echo '23) Modificar el brillo y el contraste en una imagen'
echo '24) Usar el efecto blur en una imagen'
echo '25) Usar el efecto sharpen en una imagen'
echo '26) Hacer flip o invertir una imagen de arriba a abajo'
echo '27) Hacer flop o invertir una imagen de izquierda a derecha'
        echo '28) Obtener información detallada de la imagen'
        echo '29) Usar el GUI de ImageMagick' 
        echo '30) Conocer los colores utilizados en una imagen'
        echo '31) Unir varias imágenes dentro de una  imagen'
        echo '32) Disolver una imagen sobre otra imagen'
        echo '33) Usar efecto charcoal en una imagen'
        echo '34) Añadir texto a una imagen mediante una marca de agua'
        echo '35) Salir del script'
}
function write_option {
echo
echo 'Escribe una opción de 1 a 35:'
read write_option
}
# 1) Redimensionar el ancho y el alto de una imagen en porcentajes
function option_01 {
 clear
 echo
 echo 'REDIMENSIONAR EL ANCHO Y EL ALTO DE UNA IMAGEN EN PORCENTAJES'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión (P.e: image.jpeg):'
 read  old_image
 echo
 echo 'Introduce el valor del ancho de la imagen en porcentaje (P.e: 50):'
 read  width
 echo
 echo 'Introduce el valor del  alto de la imagen en porcentaje P.e:50):'
 read  height
 echo
 echo 'Introduce el nombre de imagen redimensionada con la extensión:'
 read  new_image
 echo
 convert $old_image -sample $width%x$height%  $new_image
}
# 2) Redimensionar el ancho y el alto de una imagen en pixels
function option_02 {
 clear
 echo
 echo 'REDIMENSIONAR EL ANCHO Y EL ALTO DE UNA IMAGEN EN PIXELS'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión (P.e: image.jpeg):'
 read  old_image
 echo
 echo 'Introduce los valores de ancho y alto de la imagen en pixel (P.e:720x576):'
 read  widthxheight_values
 echo
 echo 'Introduce el nombre de imagen redimensionada con la extensión:'
 read  new_image
 echo
 convert $old_image -resize $widthxheight_values  $new_image
}
# 3) Comprimir una imagen modificando su calidad
function option_03 {
 clear
 echo
 echo 'COMPRIMIR UNA IMAGEN MODIFICANDO SU CALIDAD'
 echo
 echo 'ADVERTENCIA: ESTE COMANDO SOBRESCRIBE EL ARCHIVO ORIGINAL'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión (P.e: image.jpeg):'
 read  image
 echo
 echo 'Introduce el valor de la calidad de imagen (P.e: 85):'
 read  quality_value
 echo
 mogrify -quality $quality_value $image
}
# 4) Rotar una imagen
function option_04 {
 clear
 echo
 echo 'ROTAR UNA IMAGEN'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión (P.e: image.jpeg):'
 read  old_image
 echo
 echo 'Para rotar hacia la derecha indica el número de grados como un número positivo (P.e: 90)'
 echo 'Si quieres rotar hacia la izquierda indica el número de grados como un número negativo (P.e: -90)'
 echo
 echo 'Introduce el valor de rotación:'
 read  rotation_value
 echo
 echo 'Introduce el nombre de imagen redimensionada con la extensión'
 read  new_image
 echo
 convert $old_image -rotate $rotation_value $new_image
}
# 5) Añadir texto a una imagen
function option_05 {
 clear
 echo
 echo 'AÑADIR TEXTO A UNA IMAGEN'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión (P.e: image.jpeg):'
 read  old_image
 echo
 echo 'Introduce el tipo de fuente (P.e: helvetica):'
 read  font_name
 echo
 echo 'Introduce el color de la fuente (P.e: white):'
 read  color_font
 echo
 echo 'Valores posibles de gravity: northwest, north, northeast, west, center, east, southWest, south, southeast'
 echo
 echo  'Introduce el valor de gravity (P.e: center):'
 read  gravity_value
 echo
 echo 'Introduce el tamaño de la fuente (P.e: 36):'
 read  pointsize_value
 echo
 echo 'Introduce los valores de annotate (P.e: +0+50):'
 read  annotate_value
 echo
 echo 'Introduce el texto (P.e: vacaciones de verano):'
 read  text
 echo
 echo 'Introduce el nombre de imagen comentada con texto con la extensión (P.e: image.jpeg):'
 read  new_image
 echo
 convert $old_image -font $font_name -fill $color_font -gravity $gravity_value -pointsize $pointsize_value -annotate $annotate_value "$text" $new_image
}
# 6) Creación de una imagen thumbnail o copia en miniatura 80x60 a partir de una imagen. Este tamaño no es real del todo, puesto que ImageMagick advertirá que la imagen puede quedar deformada y automáticamente la ajustará
function option_06 {
 clear
 echo
 echo 'CREACIÓN DE UNA IMAGEN THUMBNAIL O COPIA EN MINIATURA 80x60'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión (P.e: image.jpeg):'
 read  old_image
 echo
 echo 'Introduce el nombre de la imagen thumbnail o copia en miniatura:'
 read thumbnail_image
 echo
 echo 'Introduce el ancho y el alto de la resolucioón de la imagen thumbnail (P.e: 80x60):'
 read widthxheight_values
 convert $old_image -sample $widthxheight_values  $thumbnail_image
}
# 7) Recortar una imagen con crop
function option_07 {
 clear
 echo
 echo 'RECORTAR UNA IMAGEN CON CROP'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión (P.e: image.jpeg):'
 read  old_image
 echo
 echo 'Hay que especificar el ancho y el alto de la imagen y las coordenadas X e Y y que toman como referencia el ángulo superior izquierdo de la imagen'
 echo
 echo  'Width (ancho): 640'
 echo 'Height (alto): 480'
 echo 'coordenada X:   50'
 echo 'coordenada Y:  100'
 echo
 echo 'Sintaxis: convert -crop 640x480+50+100 old_image new_image'
 echo
 echo 'Introduce los valores de crop siguiendo el ejemplo de la sintaxis:'
 read crop_values
 echo
 echo 'Introduce el nombre de la imagen final con la extensión (P.e: image.jpeg):'
 read  new_image
 echo
 convert $old_image -crop $crop_values  $new_image
}
# 8) Cambiar el formato a la colección de imágenes con el comando mogrify y el modificador -format:
# Reducir tamaño imagen PNG: convert input.png -background white -alpha remove -alpha off -resize 256 -quality 0 +dither -colors 255 output.png
# Reducir tamaño imagen JPG: convert input.jpg -resize 700 -quality 50 output.jpg
function option_08 {
 clear
 echo
 echo 'CAMBIAR EL FORMATO A LA COLECCIÓN DE IMÁGENES CON EL COMANDO MOGRIFY Y EL MODIFICADOR -FORMAT:'
 echo
 echo 'Introduce el formato de imagen que desee para transformar una coleccion de imagenes'
 read  image_format
 echo
 echo 'Introduce el formato de la colección de imágenes'
 read  image_ext
 echo
 mogrify -format $image_format *.$image_ext
}
# 9) Conversion de una imagen en otra utilizando resample
function option_09 {
 clear
 echo
 echo 'CONVERSIÓN DE UNA IMAGEN EN OTRA UTILIZANDO RESAMPLE'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión (P.e: image.jpeg):'
 read  old_image
 echo
 echo 'Introduce el nombre de la imagen final'
 read  new_image
 echo
 echo 'Introduce los puntos por pulgada (ppp o dpi) (P.e: 72):'
 read  resample_values
 echo
 convert $old_image -resample $resample_values  $new_image
}

# 10) Convertir una colección de fotos en un documento PDF
function option_10 {
 clear
 echo
 echo 'CONVERTIR UNA COLECCIÓN DE FOTOS EN UN DOCUMENTO PDF'
 echo
 echo 'Introduce el formato de la colección de imágenes' 
 read  image_ext
 echo
 echo 'Introduce el nombre del documento que almacenar la colección de las imágenes'
 read  document
 echo
 convert *.$image_ext $document.pdf
}
# 11) Extraer imágenes de un documento PDF
function option_11 {
 clear
 echo
 echo 'EXTRAER IMAGENES DE UN DOCUMENTO PDF:'
 echo
 echo 'Introduce el nombre del documento PDF sin la extensión que contiene las imágenes:'
 read document
 echo
 echo 'Introduce el nombre de la extensión de colección de imagenes del documento PDF:'
 read image_ext
 convert $document.pdf image%04d.$image_ext
}
# 12) Poner borde de color sólido o con cierto grado de transparencia a una imagen
# Para saber los colores disponibles para bordes, fondos y textos tenemos el comando -list color
function option_12 {
 clear
 echo
 echo 'PONER BORDE A UNA IMAGEN DE COLOR SÓLIDO O CON CIERTO GRADO DE TRANSPARENCIA' 5x5
 echo
 echo 'Introduce el nombre de la imagen original con la extensión:'
 read old_image
 echo
 echo 'Introduce el nombre de la imagen con borde con la extensión:'
 read new_image
 echo
 echo 'Introduce el color del borde:'
 read color_name
 echo
 echo 'Introduce el ancho y el alto del borde (P.e: 5x5):'
 read widthxheight
 echo
 convert -bordercolor $color_name -border $widthxheight $old_image $new_image
}
# 13) Poner borde en 3D transparente.
# Para bordes algo más elaborados podéis usar las opciones de -mattecolor y -frame con los modificadores -bordercolor y -border.
function option_13 {
 clear
 echo
 echo 'PONER BORDE A UNA IMAGEN EN 3D TRANSPARENTE'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión:'
 read old_image
 echo
 echo 'Introduce el nombre de la imagen con borde con la extension:'
 read new_image
 echo
 echo 'Introduce el ancho y el alto del borde (P.e: 5x5):'
 read widthxheight
 echo
 convert $old_image -raise $widthxheight  $new_image
}
# 14) Usar efecto implode en una imagen
function option_14 {
 clear
 echo
 echo 'USAR EFECTO IMPLODE CON UNA IMAGEN'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión:'
 read old_image
 echo
 echo 'Introduce el  valor del efecto implode (P.e: 0.5):'
 read implode_value
 echo
 echo 'Introduce el nombre de la imagen final con la extensión:'
 read new_image
 echo
 convert $old_image -implode $implode_value $new_image
}
# 15) Usar efecto monocromo en una imagen
function option_15 {
 clear
 echo
 echo 'USAR EFECTO MONOCROMO EN UNA IMAGEN'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión:'
 read old_image
 echo
 echo 'Introduce el nombre de la imagen con el efecto monocromo:'
 read new_image
 convert $old_image -monochrome $new_image
}
# 16) Usar efecto paint en una imagen
function option_16 {
 clear
 echo
 echo 'USAR EFECTO PAINT EN UNA IMAGEN'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión:'
 read old_image
 echo
 echo 'Introduce el  valor del efecto paint (P.e: 5):'
 read paint_value
 echo
 echo 'Introduce el nombre de la imagen final con la extensión:'
 read new_image
 convert $old_image -paint $paint_value $new_image
}

# 17) Usar efecto wave en una imagen:
function option_17 {
 clear
 echo
 echo 'USAR EFECTO WAVE EN UNA IMAGEN'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión:'
 read old_image
 echo
 echo 'Introduce el  valor del efecto wave (P.e:10x50):'
 read wave_values
 echo
 echo 'Introduce el nombre de la imagen final con la extensión:'
 read new_image
 echo
 convert $old_image -wave $wave_values $new_image
}
# 18) Usar efecto vignette en una imagen
function option_18 {
 clear
 echo
 echo 'USAR EFECTO VIGNETTE EN UNA IMAGEN'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión:'
 read old_image
 echo
 echo 'Introduce el  valor del efecto vignette (P.e: 100x100):'
 read vignette_values
 echo
 echo 'Introduce el nombre de la imagen final con la extensión:'
 read new_image
 echo
 convert $old_image -vignette $vignette_values $new_image
}
# 19) Usar efecto sepia en una imagen
function option_19 {
 clear
 echo
 echo 'USAR EFECTO SEPIA EN UNA IMAGEN'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión:'
 read old_image
 echo
 echo 'Introduce el  valor del efecto sepia (P.e: 80):'
 read sepia_tone_value
 echo
 echo 'Introduce el nombre de la imagen final con la extensión:'
 read new_image
 echo
 convert $old_image -set colorspace RGB -sepia-tone $sepia_tone_value% $new_image
}
# 20) Usar efecto negate en una imagen
function option_20 {
 clear
 echo
 echo 'USAR EFECTO NEGATE EN UNA IMAGEN'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión:'
 read old_image
 echo
 echo 'Introduce el nombre de la imagen final con la extensión:'
 read new_image
 echo
 convert $old_image -negate $new_image
}
# 21) Usar efecto foto Polaroid en una imagen
function option_21 {
 clear
 echo
 echo 'USAR EFECTO FOTO POLAROID EN UNA IMAGEN'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión:'
 read old_image
 echo
 echo 'Introduce el  valor del ángulo para la foto (P.e: 0):'
 read  angle_value
 echo
 echo 'Introduce el nombre de la imagen final con la extensión:'
 read new_image
 echo
 convert $old_image -polaroid $angle_value $new_image
}
# 22) Usar efecto motion-blur en una imagen
function option_22 {
 clear
 echo
 echo 'USAR EFECTO MOTION-BLUR EN UNA IMAGEN'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión:'
 read old_image
 echo
 echo 'Introduce los valores de radio,sigma y ánglulo de la imagen (P.e: 30x30+30):'
 read  motion_blur_values
 echo
 echo 'Introduce el nombre de la imagen final con la extensión:'
 read new_image
 echo
 convert $old_image -motion-blur $motion_blur_values $new_image
}
# 23) Modificar el brillo y el contraste en una imagen
function option_23 {
 clear
 echo
 echo 'MODIFICAR EL BRILLO Y EL CONTRASTE EN UNA IMAGEN'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión:'
 read old_image
 echo
 echo 'Introduce los valores de brillo y contraste de la imagen (P.e: 30x70):'
 read  brightness_contrast_values
 echo
 echo 'Introduce el nombre de la imagen final con la extensión:'
 read new_image
 echo
 convert $old_image -brightness-contrast $brightness_contrast_values  $new_image
}
# 24) Usar el efecto blur en una imagen
function option_24 {
 clear
 echo
 echo 'MODIFICAR EL EFECTO BLUR EN UNA IMAGEN'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión:'
 read  old_image
 echo
 echo 'Introduce los valores de blur de la imagen (P.e: 0x1.5):'
 read  blur_values
 echo
 echo 'Introduce el nombre de la imagen final con la extensión:'
 read  new_image
 echo
 convert $old_image -blur $blur_values  $new_image
}
# 25) Usar el efecto sharpen en una imagen
function option_25 {
 clear
 echo
 echo 'MODIFICAR EL EFECTO SHARPEN EN UNA IMAGEN'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión:'
 read  old_image
 echo
 echo 'Introduce los valores de sharpen de la imagen (P.e: 0x3.0):'
 read  sharpen_values
 echo
 echo 'Introduce el nombre de la imagen final con la extensión:'
 read  new_image
 echo
 convert $old_image -sharpen $sharpen_values $new_image
}
# 26) Hacer flip o invertir una imagen de arriba a abajo
function option_26 {
 clear
 echo
 echo 'HACER FLIP O INVERTIR UNA IMAGEN DE ARRIBA A ABAJO'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión:'
 read  old_image
 echo
 echo 'Introduce el nombre de la imagen final con la extensión:'
 read  new_image
 echo
 convert $old_image -flip $new_image
 echo
}
# 27) Hacer flop o invertir una imagen de izquierda a derecha
function option_27 {
 clear
 echo
 echo 'HACER FLOP O INVERTIR UNA IMAGEN DE IZQUIERDA A DERECHA'
 echo
 echo 'Introduce el nombre de la imagen original con la extensión:'
 read  old_image
 echo
 echo 'Introduce el nombre de la imagen final con la extensión:'
 read  new_image
 echo
 convert $old_image -flop $new_image
}
# 28) Obtener información detallada de la imagen
function option_28 {
 clear
 echo
 echo  'OBTENER INFORMACIÓN DETALLADA DE LA IMAGEN'
 echo
 echo  'Introduce el nombre de la imagen para obtener información:'
 read  image
 identify -verbose $image
}
# 29) Usar el GUI de ImageMagick
function option_29 {
 clear
 echo
 echo 'USAR EL GUI DE ÍMAGEMAGICK'
 echo
 echo 'Introduce el nombre de la imagen:'
 read image
 echo
 display $image
}
# 30) Conocer los colores utilizados en una imagen
function option_30 {
 clear
 echo
 echo 'CONOCER LOS COLORES UTILIZADOS EN UNA IMAGEN'
 echo
 echo 'Introduce el nombre de la imagen:'
 read image
 echo
 identify -list color $image
}
# 31) Unir varias imágenes dentro de una  imagen
function option_31 {
 clear
 echo
 echo 'UNIR VARIAS IMÁGENES DENTRO DE UNA IMAGEN'
 echo
 echo 'Introduce la lista de imágenes (P.e: 01.png 02.png...04.png)'
 read image_list
 echo
 echo 'Íntroduce "-append" si la quieres unir en posicion vertical'
 echo 'o  "+append" la quieres unir en posicion horizontal:'
 read sign_append
 echo
 echo 'Introduce el nombre de la imagen'
 read new_image
 echo
 convert $image_list $sign_append $new_image
}
# 32) Disolver una imagen sobre otra imagen
function option_32 {
 clear
 echo
 echo 'DISOLVER UNA IMAGEN SOBRE OTRA IMAGEN'
 echo
 echo 'Íntroduce una imagen:'
 read image
 echo
 echo 'Introduce la imagen de fondo:'
 read wall_image
 echo
 echo 'Introduce el valor de dissolve (0-100) (P.e: 20):'
 read dissolve_value
 echo
 echo 'Valores posibles de gravity: northwest, north, northeast, west, center, east, southWest, south, southeast'
 echo
 echo 'Introduce el valor de gravity:'
 read gravity_value
 echo
 echo 'Introduce el nombre de la imagen final:'
 read new_image
 echo
 composite $image -dissolve $dissolve_value -gravity $gravity_value  $wall_image $new_image
}
# 33) Usar efecto charcoal en una imagen
function option_33 {
 clear
 echo
 echo 'USAR EFECTO CHARCOAL EN UNA IMAGEN'
 echo
 echo 'Íntroduce una imagen:'
 read  old_image
 echo
 echo 'Introduce el valor radius del efecto charcoal (P.e: 0.5):'
 read charcoal_radius
 echo
 echo 'Introduce el nombre de la imagen final:'
 read new_image
 echo
 convert $old_image -charcoal $charcoal_radius $new_image
}
# 34) Añadir una marca de agua con texto a una imagen
function option_34 {
 clear
 echo
 echo 'AÑADIR UNA MARCA DE AGUA CON TEXTO A UNA IMAGEN'
 echo
 echo 'Introduce las dimensiones de la imagen con la marca de agua (P.e: 400x200):'
 read widthxheight
 echo
 echo 'Introduce el nombre de la fuente (P.e: helvetica):'
 read font_name
 echo
 echo 'Introduce el valor del tamaño de la fuente (P.e: 25):'
 read pointsize_value
 echo
 echo 'Introduce el valor de espaciado entre las letras del textoo (P.e: 1):'
 read kerning_value
 echo
 echo 'Valores posibles de gravity: northwest, north, northeast, west, center, east, southwest, south, southeast'
 echo
 echo 'Introduce el valor de gravity:'
 read gravity_value
 echo
 echo 'Introduce el color de la sombra de la fuente (P.e: black):'
 read color_01
 echo
 echo 'Introduce los valores de annonate para la sombra de la fuente (P.e:330x330+0+0):'
 read annotate_values_01
 echo
 echo 'Introduce el texto de la marca de agua:'
 read text
 echo
 echo 'Introduce el color de la fuente (P.e: white):'
 read color_02
 echo
 echo 'Introduce los valores de annonate para la fuente (P.e:330x330+2+2):'
 read annotate_values_02
 echo
 echo 'Introduce el valor de dissolve (P.e: 20):'
 read dissolve_value
 echo
 echo 'Introduce el nombre de la imagen sin marca de agua:'
 read old_image
 echo
 echo 'Introduce el nombre de la imagen que llevará la marca de agua:'
 read new_image
 echo
 convert -size $widthxheight xc:none -font $font_name -pointsize $pointsize_value -kerning $kerning_value -gravity $gravity_value -fill $color_01 -annotate $annotate_values_01 "$text" -fill $color_02 -annotate $annotate_values_02  "$text" water_mark_image.png && composite -dissolve $dissolve_value% -tile water_mark_image.png $old_image $new_image && rm water_mark_image.png
}
# 35) Salir del script
 function option_35 {
 echo 'Salir del script'
}
write_option=0
go_out=35
while [ $write_option -ne $go_out ];
do 
   clear
   menu
   write_option
   
   if [ $write_option -ge 1 ] && [ $write_option -le 35 ];
   then
      clear
      case $write_option in   # Acciones para las diferentes opciones del menú
         1)
         option_01
         ;;     
         2)
         option_02
         ;;
         3)
         option_03
         ;;
         4)
         option_04
         ;;
         5)
         option_05
         ;;
         6)
         option_06
         ;;
         7)
         option_07
         ;;
         8)
         option_08
         ;;
         9)
         option_09
         ;;
         10)
         option_10
         ;;
         11)
         option_11
         ;;
         12)
         option_12
         ;;
         13)
         option_13
         ;;
         14)
         option_14
         ;;
         15)
         option_15
         ;;
         16)
         option_16
         ;;
         17)
         option_17
         ;;
         18)
         option_18
         ;;
         19)
         option_19
         ;;
         20)
         option_20
         ;;
         21)
         option_21
         ;;
         22)
         option_22
         ;;
         23)
         option_23
         ;;
         24)
         option_24
         ;;
         25)
         option_25
         ;;
         26)
         option_26
         ;;
         27)
         option_27
         ;;
         28)
         option_28
         ;;
         29)
         option_29
         ;;
         30)
         option_30
         ;;
         31)
         option_31
         ;;
         32)
         option_32
         ;;
         33)
         option_33
         ;;
         34)
         option_34
         ;;
         35)
         option_35
         ;;
      esac
   else
      echo '¡No ha introducido una opción correcta!'
   fi
   echo
   echo 'Pulse una tecla...'
   read
done

Ejemplos de uso:

1) Instalar ImageMagick desde el terminal en modo root:

# apt install imagemagick

2) Copia el script en la siguiente ruta /usr/local/bin/imagemagick.sh para poder ejecutarlo desde cualquier directorio

3) Concede permisos de ejecución en modo root:

#chmod + x imagemagick.sh

4) Ejecuta el script en modo usuario:

$ bash imagemagick.sh

 Fuentes:

https://www.imagemagick.org/script/index.php
https://es.wikipedia.org/wiki/ImageMagick

viernes, 20 de julio de 2018

¿No puedes abrir un documento xlsx con Excel después de instalar Microsoft Office 2010? Ésta es la solución

He tenido que instalar Microsoft Office professional plus 2010 en Windows 10. Soy detractor de esta suite de offimática, no es software libre y aún por encima hay que pagar la licencia. 

Pues bien, después de instalar Microsoft Office Professional Plus 2010, Excel no era capaz de abrir de los archivos con extensión .xlsx.

Despues de buscar en Internet, descubrí la solución y la comparto con todos los que me lean: 

Hay que seguir estos pasos:

Haz correr la aplicación : regedit

Ahora hay que buscar : HKEY_CURRENT_USER ==>Software ==>Microsoft ==>Windows ==>
CurrentVersion ==> Explorer ==> FileExts ==> .xlsx ==> OpenWithProgrids  y llegado a este punto, debes hacer click con el botón derecho del ratón y add New ==> Binary Value ==> name the binary value as ===> Excel.Sheet.12

Llegado a este punto, conseguirás abrir el archivo .xlsx pero a mí me sucedió que no podía visualizar el contenido.

Abre Excel, vete a la sección de "Opciones", dentro de esta sección, eliges "avanzadas" y una vez ubicado en "avanzadas", tienes que buscar las opciones de General y desmarcar la opción "Omitir otras aplicaciones que usen intercambio dinámico de datos..... "

Dejo esta solución por si la necesito algún día para ayudar otra vez al usuario que me la pidió.

Personalmente, estoy muy contento con Libreoffice y no volvería a Microsoft Office ni aunque me lo regalasen. No tengo nada en contra del software privativo pero si en contra del software que necesita licencia y que implica pagar una fuerte suma de dinero por hacerte con ella.

Fuentes:

martes, 3 de julio de 2018

Iñaki Urdangarin está en prisión pero no vive en una prisiòn

Alguien que trabajaba en las cloacas del estado español hizo una predicción y se cumplió: "No esperes gran cosa, es un pez gordo y los peces gordos no van a la cárcel o si van es por poco tiempo. Lo más probable, es que esté en prisión durante unos meses a lo sumo y después de una revisión, quede libre por buena conducta. Irá a la cárcel para hacer ver que "la justicia es igual para todos". Después de montar el paripé,adiós muy buenas. Nos tratan como borregos y los borregos no cuentan, tenemos los que nos merecemos".

El Juancarlismo  que todo lo podía y que se sentía omnipotente, intocable e impune intentó hasta el último momento presionar y rebajar la condena de Urdangarin y evitar que fuera a prisión. ¿Qué quienes presionaron con más fuerza hasta el final? Los reyes eméritos Juan Carlos y Sofía. 

Pero al régimen y sobre todo a los reyes Felipe y Letizia les interesaban mantener esa vieja falacia que asegura que "La justicia es igual para todos". Para ellos, lo importante era salvar la imagen de una institución que agoniza y les permite pegarse la vida padre.

¿Iñaki Urdangarin está en la cárcel? Sí, pero como si no lo estuviera No deja de ser irónico que la legalidad española reconozca el derecho a un preso a tener una celda para él solo, algo que no se cumple en la realidad. Muchas celdas son ocupadas por 2 presos. Sin embargo, Iñaki Urdangarin no solamente tiene una celda para él, sino que tiene todo un módulo dentro de la prisión para él solo y no comparte celda con otros reos. 

El módulo de 450M2 en que permanece Iñaki Urdangarin es un palacete del que no tiene que preocuparse de nada ni de nadie. El arquitecto que diseñó ese módulo ha confesado que su celda de 12 M2 es en realidad un apartamento que dispone de cocina, sala de estar, televisor de plasma y 2 luminosos patios. Los funcionarios de prisiones denuncian trato de favor pero con la boca pequeña. No se crean demasiado los testimonios de algunos funcionarios y trabajadores de la prisión, pues toda la información que sale de esa carćel está controlada por las cloacas del estado español, que trabajarán para hacer ver que Iñaki Urdangarin sufre muuuuucho.
Por descontando, el menú que come Iñaki Urdangarin dudo que sea carne de presidio. Los militares del 23F que acabaron en prisión por una intentona golpista disponían de mayordormo particular, y degustaron opíparas comidas de jamón ibérico, marisco, vinos de reserva. Ni pasaron frío; porque tuvieron hasta calefacción propia. ¿Acaso creen que Iñaki Urdangarin no recibe ese trato de VIP como los golpistas que no son miembros de la Familia Real? Probablemente ese trato de VIP sea mucho mayor.

He leído comentarios de algunos ilusos por Internet que soñaban con qué Iñaki Urdangarin acabaría rodeado de otros reclusos y sufriría agresiones y hasta violaciones, la típica broma macabra de la "pastilla de jabón" y "las duchas". Quiero que sepan que Iñaki Urdangarin si acabase en un módulo compartiendo vida con los demás, presos, el estado español ordenaría infiltrar a varios agentes de los servicios secretos como presos para que hiciesen de guardaespaldas. La infiltración de espías como presos, funcionarios de prisiones, etc, es muy habitual. ¿Qué hacen agentes  del servicios secretos en una prisión fingiendo ser presos por delitos que no cometieron? Realizan labores de vigilancia, información,intriga,manipulación etc. ¿Y en el peor de los casos? Pues se dedican a insultar, amenazar, coaccionar, agredir o incluso a asesinar a una víctima de espionaje. También puede que se dediquen a sembrar cizaña y azuzar a otros presos contra sus víctimas de espionaje con el objetivo de causar daño. Algunos Suicidios que son asesinatos, agresiones que parecen peleas espontáneas que no son tal, asesinatos en grupo, violaciones en las duchas. La misma escena se produce en hospitales, donde agentes se infiltran entre enfermos (físicos o mentales), enfermeros e incluso médicos. Una espía me contó: "La agencia de Inteligencia tiene infiltrados en todas partes: en las comisarias, en las cárceles, en los hospitales, en los juzgados...En cualquier sitio donde a veces, acaban algunas de sus víctimas". Después de saber esto: ¿Creen que si Urdangarin conviviese con otros presos comunes iba a tener algún problema? Además, a Urdangarin jamás le tocaría aguantar presos violentos o conflictivos. Si hace falta el estado sobornaría a presos para que le lamiesen el culo a cambio de favores penitenciarios y pequeñas sumas de dinero.

Para un royal, estar en prisión en estas condiciones sigue siendo una gran putada, pero para mí, esto no es estar en prisión, esto es lo más parecido a vivir en un palacete. Eso sí es cierto que Urdangarin está en prisión; porque he leído la teoría de más de uno que lo pone en duda. Vete tú a saber si Urdangarin  en vez de estar en prisión, permanece escondido en una mansión, riéndose de todos nosotros. Como alguien dijo por ahí. "Nadie le ha visto entrar en la cárcel". Todo se podría solucionar con el uso de un "doble" que simule su presencia en el presidio. Una hipótesis que puede parecer fantasiosa, descabellada y un tanto arriesgada. ¿Se imaginan que se descubriese algo así? El escándalo sería mayúsculo.

El barrio judío más ultraortodoxo de Jerusalén

domingo, 1 de julio de 2018

"Pionyang tomará nota": EE.UU. prepara a sus militares para combates subterráneos




El Ejército de EE.UU. asignó más de 500 millones de dólares al entrenamiento y equipamiento de sus soldados para luchar en instalaciones y ductos bajo tierra.

El Ejército de EE.UU. ha lanzado una ambiciosa campaña destinada a preparar a sus militares para combates subterráneos, revela un artículo de Military.com. Expertos consultados por RT señalan que estos planes podrían apuntar a un posible escenario de confrontación con el Ejército norcoreano.

Según confirmaron fuentes militares al medio estadounidense, a fines del año pasado, el Ejército aprobó asignar alrededor de 572 millones de dólares para entrenar y equipar a 26 de sus 31 brigadas de combate para luchar en instalaciones subterráneas, como existen bajo densas áreas urbanas en todo el mundo. Asimismo, el Ejército sometió a revisión su enfoque para el combate subterráneo, y publicó en noviembre un nuevo manual de capacitación dedicado a ese entorno.

Un soldado de EE.UU. en Gamberi (Afganistán), el 15 de diciembre de 2014. / Lucas Jackson / Reuter

Para este nuevo tipo de guerra, las unidades de infantería necesitarán aprender a desplazarse de manera efectiva, comunicarse, romper obstáculos pesados y atacar a las fuerzas enemigas en laberintos subterráneos, que van desde corredores confinados hasta túneles tan anchos como calles residenciales. Por otro lado, los soldados necesitarán nuevos equipos para operar en las difíciles condiciones subterráneas.

“Cada megaciudad tiene alcantarillas y pasos subterráneos y cosas por el estilo, así que vamos a ponernos al día un poco”, comentó al portal el coronel Townley Hedrick, comandante de la Escuela de Infantería en el Centro de Excelencia de Maniobras del Ejército en Fort Benning, Georgia, EE.UU.

Con los ojos puestos en Corea del Norte

Una evaluación estimó el año pasado que hay alrededor de 10.000 instalaciones militares subterráneas de gran escala en todo el mundo, que están destinadas a servir como ciudades alternas bajo el suelo, señaló a Military.com una fuente del Ejército. A ello añadió que este nuevo esfuerzo se convirtió en una prioridad urgente, porque más de 4.800 de esas instalaciones están ubicadas en Corea del Norte.
Marines de Corea del Sur y EE.UU. durante un ejercicio militar en Pohang (Corea del Sur), el 12 de marzo de 2016. / Kim Hong-Ji / Reuters

El nuevo manual del Ejército subraya que, además de sus instalaciones subterráneas de misiles nucleares, Corea del Norte tiene la capacidad de mover miles de efectivos a través de túneles profundos debajo de la frontera con Corea del Sur. “Corea del Norte podría transferir 30.000 soldados fuertemente armados por hora“, alerta el manual.

La analista política rusa Irina Lantsova, especialista en Corea del Norte y del Sur, confirmó en declaraciones a RT que en Corea del Norte existe “una red ramificada de túneles subterráneos, que se usa con fines militares, incluso en el marco del programa de desarrollo de armas nucleares”, y que representa una parte importante de la capacidad de defensa del país.

“Los planes de EE.UU. podrían afectar al curso de la solución pacífica”

Vladlímir Vinokúrov, jefe del Centro de Análisis Militar y Diplomático y Previsiones, opinó que estos planes militares de Washington “solo pueden explicarse por una posible confrontación entre EE.UU. y el Ejército de Corea del Norte”. 

En la misma línea, Lantsova advirtió que durante la reciente escalada de tensiones, Washington “consideró varias opciones de ataque contra Corea del Norte”, incluida una operación terrestre. “Naturalmente, bajo un escenario de este tipo, las tropas estadounidenses deberían estar listas para luchar en la capital del país y bajo tierra”, explicó la analista, para agregar que, a pesar del relajamiento en las relaciones, “sería extraño si el Pentágono rechazara su plan de invasión”.

Por otro lado, la experta aseveró que “la noticia sobre el entrenamiento de las ‘tropas subterráneas’ en EE.UU. es provocadora”, y consideró que Pionyang “tomará nota de esta información”.

“No creo que ahora las autoridades de Corea del Norte vayan a discutir abiertamente con Washington, pero los planes agresivos de los estadounidenses bien pueden afectar el curso de la solución pacífica” a las tensiones en la península coreana, concluyó Lantsova.


"Intentan engañarnos": La Inteligencia de EE.UU. cree que Pionyang aumenta la producción nuclear

En los últimos meses Corea del Norte ha estado intensificando su producción de uranio enriquecido para armas nucleares en varios sitios secretos, según fuentes familiarizadas con las evaluaciones de Inteligencia.

La Inteligencia de EE.UU. cree que Corea del Norte ha incrementado la producción de combustible para armas nucleares en varios sitios secretos en los últimos meses y trata de ocultar esas instalaciones mientras busca más concesiones en negociaciones nucleares con la Administración Trump, revela NBC News citando a una docena de funcionarios estadounidenses familiarizados con las evaluaciones de Inteligencia.

El líder norcoreano, Kim Jong-un, y su esposa, Ri Sol-ju,
visitan una fábrica de cosméticos en Sinuiju (Corea del Norte).

Según las fuentes de la cadena, a pesar de los recientes avances diplomáticos, en los últimos meses Pionyang ha venido intensificando su producción de uranio enriquecido para armas nucleares, las cuales considera esenciales para su supervivencia.

Aunque los norcoreanos han detenido las pruebas nucleares y de misiles, "no hay evidencia de que estén disminuyendo las reservas, o de que hayan detenido su producción", afirmó un funcionario con conocimiento de los últimos informes de Inteligencia. "Existe una evidencia absolutamente inequívoca de que están tratando de engañar a EE.UU.", añadió.

Otros cuatro funcionarios familiarizados con los informes también confirmaron que Corea del Norte podría estar tratando de engañar a EE.UU.

"Hay muchas cosas que sabemos que Corea del Norte ha intentado ocultarnos durante mucho tiempo", subrayó un oficial de Inteligencia norteamericana.

"Estamos observándolos de cerca"

Según la NBC, desde hace tiempo se sabe que Corea del Norte tenía al menos una instalación no declarada para enriquecer combustible nuclear, aparte del centro nuclear de Yongbyon. La última evaluación de Inteligencia de EE.UU. concluye que hay más de un sitio secreto, sostienen las fuentes consultadas.   

"Se está trabajando para engañarnos sobre el número de instalaciones, el número de armas, el número de misiles", denunció un alto cargo de Inteligencia estadounidense, para advertir que "estamos observándolos de cerca".

Estas evaluaciones parecen contradecir las afirmaciones del presidente de EE.UU., Donald Trump, quien tuiteó después de su histórica cumbre del 12 de junio con Kim que "ya no había una amenaza nuclear por parte de Corea del Norte".


Ver galería de fotos y el link de la noticia aquí: https://actualidad.rt.com/actualidad/279100-inteligencia-eeuu-corea-nuclear

Impactante documental sobre la Dark Web


La mayoría navegamos en la surface web, la web superficial con links indexados por los buscadores más famosos (Google, Bing, Yahoo, Duck Duck Go, etc) y que supone un 10% de links del conjunto total; pero hay una Deep Web que representa el 90% de contenidos diversos que los grandes buscadores no incluyen en sus motores de búsqueda y que se  alojan en lo que se conoce como Deep Web. Dentro de la Deep Web, podemos hablar de la Dark Web: la web con contenidos prohibidos por las leyes y que incluye la venta ilegal de órganos, de drogas, pasaportes falsos y armas, webs donde puedes efectuar la contratación de los servicios de sicarios y piratas informáticos que ofrecen software experimental, virus, troyanos además de servicios de hacking contra ciudadanos y empresas por encargo. En caso de que quieras contratar los servicios de un pirata informático, puedes usar un intermediario y darle el dinero hasta que el pirata informático demuestre que ha realizado el encargo.La criptodivisa Bitcoin ya se usa menos en favor de otra criptodivisa llamada Monero que es más complicada de rastrear.  Abundan los ladrones, estafadores y extorsionadores que se aprovechan de los usuarios por su debilidades o poca experiencia,en la Dark Web aparecen datos robados a multitud de ciudadanos incluidos los datos de tarjetas de crédito que son ofrecidos al mejor postor, es lo que se conoce como "carding".

Por desgracia los adictos a la pornografía infantil y a las películas snuff campan a sus anchas por la Dark Web, algunos de ellos ocupan altos cargos y tienen alto poder adquisitivo. Se estima que el contenido de la Deep Web es un 10% del total de la Red.  La visualización de películas snuff pueden costar miles de euros y se visionan en webs privadas de pago a las que se accede por contactos conecedores de estos contenidos y donde encontrarlos  a través de foros y chats. El simple visionado de una película snuff es un delito tipificado en el artículo 189 en el código penal de España. Un criminólogo asegura que unos policías que trabajan en estos casos han visualizado una snuff movie llamada "Daisys destruction"  y lo califican como el video más horrendo de la Dark Web.

Un guía introduce a los reporteros al mundo del hacking, usa un router Wi-Fi que funciona con una  tarjeta SIM, el guía recomienda comprarla en un lugar como Lavapies, en donde no te pidan el DNI, el siguiente paso es conectarte a través de una VPN (Red Privada Virtual), que te permiten conectarte a la Deep Web desde otro país. Así para tu buscador estarás conectado desde otro país. El experto considera que esto no es suficiente,  así que enciende una máquina virtual con un sistema operativo instalado, normalmente la gente usa distros como Tails para este menester, aunque observo que el guía usa el sistema operativo Kali-Linux (muy popular entre los amantes del hacking y de  la seguridad informática, de tal manera que si algún intruso infecta con software malicioso, tu computadora no se verá afectada. A continuación, se entra en la red Tor, que es la sigla de The Onion Router (en español: Enrutador de Cebolla). Es un proyecto cuyo objetivo principal es el desarrollo de una red de comunicaciones distribuida de baja latencia y superpuesta sobre Internet, en la que el encaminamiento de los mensajes intercambiados entre los usuarios no revela su identidad, es decir, su dirección IP (anonimato a nivel de red) y que, además, mantiene la integridad y el secreto de la información que viaja por ella. Por este motivo se dice que esta tecnología pertenece a la llamada Darknet o red oscura también conocida con el nombre de Deep web o web profunda.


Este documental ha sido creado por  http://www.sinfiltros.com/.

martes, 26 de junio de 2018

Funcionamiento de bomba de agua de 12V con la ayuda de un módulo Mosfet IRF520 y controlado con Arduino



He seguido las instrucciones de un artículo de la web https://www.luisllamas.es sobre el funcionamiento de una bomba de agua de 12V con la ayuda de un módulo Mosfet IRF520 controlado desde el microcontrolador Arduino. Al final, he conseguido montar el circuito después de la ayuda y los consejos de algunos foreros del foro de Arduino en español https://forum.arduino.cc/

He utilizado los siguientes componentes:

  • un microcontrolador Arduino
  • un módulo Mosfet IRF520
  • un diodo 
  • cables prototipo
  • cables con pinzas de cocodrilo
  • una batería de plomo-ácido de 12V y 7200 mAh
  • cargador inteligentee 1300mA para batería de plomo-ácido de 12V con protección contra sobrecarga de cortocircuito.


El esquema de montaje del circuito  es el que aparece en la imagen siguiente:


El código de este proyecto para Arduino lo pueden descargar en este link

domingo, 24 de junio de 2018

La Sociedad Phi Beta Kappa

Hace tiempo escribí un articulo sobre esto: El periodista Kevin Roose, ha logrado infiltrarse en la Sociedad Phi Beta Kappa y aporta datos de cómo son sus rituales de iniciación. Según este investigador, los miembros veteranos obligan a los nuevos miembros a vestir como las Drag Queens y a hacer números musicales o comedias con el fin de humillarlos, se escucharon bromas sexistas sobre Hillary Clinton y Barney Frank, burlas hacia el movimiento Occupy Wall Street y  los pobres. Kevin Roose estima que el 90 o 95% de los miembros de la Sociedad Phi Beta Kappa son hombres pero también hay un pequeño grupo de mujeres lesbianas. Lo que llamó verdaderamente y  la atención de este investigador es que algunos de los novicios no eran jóvenes, sino personas maduras con un perfil de directivos de multinacionales que cotizan en Wall Street e incluso algún billonario, personas que están acostumbradas a mandar y a estar por encima de los demás. 

En una entrevista a Kevin Roose realizada por Richard "RJ" Eskow para su  programa The Zero Hour, se aprecian fotos de este ritual de iniciación transcurre en un ambiente lujoso, muy al estilo de la película Eyes Wide Shut del director Stanley Kubrick aunque también recuerda a la película "Desmadre a la americana".


Mi opinión  sobre las sociedades secretas no es muy  buena que digamos. En lo personal, prefiero el libre albedrío que vivir dentro de una sociedad misteriosa con una jerarquía y normas peculiares. Por otro lado, la opacidad de estas sociedades y la identidad de algunos de sus miembros, suscitan mi curiosidad y la de muchos otros; pues son personas que pertenecen a las altas esferas del poder. Aunque haya buenas personas en las altas esferas del poder, también abundan los seres malvados.  

Veo a la mayoría de las sociedades secretas como organizaciones formadas por individuos que se creen mejor que los demás y que buscan reforzar esa creencia bajo el paraguas protector de un colectivo poderoso que busca marcar fronteras respecto a una masa sucia ignorante e inútil. Una de sus características es realizar labores filantrópicas a la luz del sol e intrigan a la luz de la luna, siempre de acuerdo a las  filtraciones de medios alternativos y periodistas de investigación.

Los aspirantes a miembros están dispuestos a someterse a novatadas, humillaciones y a trabajar como esclavos, obedeciendo cualquier orden caprichosa de sus superiores, con tal de pertenecer a esta organización. En algunos casos, como puede ser la masonería, los rituales de iniciación suelen ser respetuosos con los "novatos", no se puede decir lo mismo de algunas fraternidades. Hay confesiones tales como recibir castigos en forma de golpes, masturbarse contando íntimos secretos que son guardados, peleas de novicios en calzoncillos sobre un lodazal, etc, cosas a las que una persona con un poco de dignidad y dos dedos de frente jamás se prestaría a no ser por algo más que el mero hecho de pertenecer a una sociedad de hombres y/o mujeres.. Y ese algo es: conocimiento, dinero, influencia y poder. La Sociedad Phi Beta Kappa sigue  esa linea.

Les dejo un artículo extraído de la Wikipedia sobre dicha sociedad


La Sociedad Phi Beta Kappa, o simplemente Phi Beta Kappa (ΦΒΚ), es una sociedad de honor académica de Estados Unidos. Su misión es "celebrar y promover la excelencia en las humanidades y las ciencias", e introducir "a los estudiantes más destacados de las artes y las ciencias en las universidades líderes de Estados Unidos."1​ Fundada en The College of William and Mary el 5 de diciembre de 1776, como la primera hermandad colegiada con nombre de letras griegas, se encuentra entre las más antiguas sociedades de pregrado en los Estados Unidos.



Phi Beta Kappa está ampliamente considerada como la más prestigiosa sociedad de honor en el campo de las artes y las ciencias en los Estados Unidos, y ha servido de inspiración para otras sociedades de honor académicas, como Delta Epsilon Sigma, Delta Epsilon Iota, Phi Kappa Phi, y Omicron Delta Kappa.

Phi Beta Kappa fue también la primera organización colegial en adoptar un nombre de letras griegas.​ Actualmente[¿cuándo?] hay 276 capítulos con más de medio millón de miembros.

Phi Beta Kappa (ΦΒΚ) representa el lema de la sociedad: Φιλοσοφία Βίου Κυβερνήτης o philosophia Biou kybernētēs - "El amor por el aprendizaje es la guía de la vida."

Historia

Entrada a las instalaciones actuales del Phi Beta Kappa Memorial Hall en The College of William & Mary. La Sociedad Phi Beta Kappa fue fundada el 5 de diciembre de 1776 en el Colegio de William y Mary en Williamsburg, Virginia, y estableció el precedente de denominación de las sociedades universitarias de América a partir de las iniciales de las palabras en griego de un lema secreto.

El grupo estaba formado por estudiantes que frecuentaban la taberna de Raleigh como zona de encuentro fuera del campus universitario. Hay un persistente rumor de que una logia masónica también se reunió en el mismo lugar, pero no había otro edificio utilizado por los masones en Williamsburg.​ Es cierto que diez de los miembros originales más tarde se convirtieron en masones. No se sabe si los estudiantes se organizaron para debatir con mayor libertad sobre temas no académicos, o para discutir la política en una sociedad revolucionaria: los primeros registros indican únicamente que los estudiantes se reunieron para debatir y mejorar su oratoria, y sobre temas que habrían sido eliminados no hacía mucho tiempo del plan de estudios.

Sede nacional de la Phi Beta Kappa Society
 situada en el barrio histórico de Dupont Circle
 en Washington, D.C.
Hubo sociedades anteriores a la Phi Beta Kappa en el William & Mary, como la FHC (Club del Sombrero Plano) que funcionó hacia 1850 y a la que perteneció el tercer presidente de los Estados Unidos, Thomas Jefferson11​ o como la sociedad PDA (Please, Don't Ask).

La nueva sociedad estaba destinada a ser "puramente de ámbito nacional, sin conexión alguna con nada europeo, ya sea inglés o alemán."​ Los fundadores de Phi Beta Kappa declararon que la sociedad se formó para promover la simpatía y la camaradería, con "la amistad como base y la benevolencia y la literatura como sus pilares."

Al igual que otras fraternidades, la Phi Beta Kappa fue una sociedad secreta. Para proteger a sus miembros y para inculcar un sentido de solidaridad, cada una tenía los atributos esenciales de la mayoría de las fraternidades modernas: un juramento de secreto, una placa (o ficha) y un diploma (o certificado) de adhesión, lemas (en el caso de la Phi Beta Kappa, en griego y no en latín), un ritual de iniciación, un apretón de manos de reconocimiento. Además, el Phi Beta Kappa pronto añadiría otro atributo, ramas o "capítulos" en otros colegios.

Antes que la invasión británica de Virginia provocara el cierre temporal del Colegio de William y Mary y la disolución de la Phi Beta Kappa, a principios de 1781, Elisha Parmelee, un ex alumno de Yale College y el Harvard College, pasó por Williamsburg y tomó los estatutos de la Phi Beta Kappa para establecer sucursales de la sociedad en estas escuelas. Un segundo capítulo se fundó en la Universidad de Yale a finales de 1780; un tercero, en el Harvard College en 1781, y un cuarto, en el Dartmouth College en 1787. A partir de estos nuevos capítulos, la Phi Beta Kappa evolucionó desde una fraternidad con fines principalmente académicos con algunos otros sociales, hacia una organización estrictamente honorífica para reconocer el aprovechamiento escolar.

Los capítulos siguientes aparecieron en el Union College en 1817, Bowdoin College en 1825, y la Universidad de Brown en 1830. El capítulo original del William & Mary se restableció. En 1831, el capítulo de Harvard reveló al público los secretos de la fraternidad, durante un período de fuerte sentimiento anti-masónico. El primer capítulo establecido después de que la Phi Beta Kappa se convirtiera en una sociedad "abierta" fue en el Trinity College (Connecticut), en 1845.
Entrada a las instalaciones actuales del Phi Beta Kappa
 Memorial Hall en The College of William & Mary

Como la primera organización colegial de su tipo en adoptar un nombre de letras griegas, la Phi Beta Kappa es generalmente considerada un precursor de las fraternidades de las universidades modernas, así como el modelo para las posteriores sociedades de honor. Irónicamente, fue en parte el aumento del modelo de fraternidades verdaderamente "sociales" creadas a partir de la Phi Beta Kappa en el siglo XIX, lo que obvió los aspectos sociales de la pertenencia a la organización, convirtiéndolas en lo que son actualmente las sociedades de honor.

En 1883, cuando se establecieron los Estatutos Unidos de la Phi Beta Kappa había 25 capítulos. Las primeras mujeres fueron elegidas para la sociedad en la Universidad de Vermont en 1875, y el primer miembro afroamericano fue elegido en la misma institución dos años más tarde.

Cada capítulo se designa por su estado y una letra griega que indica su posición en el orden en que los capítulos de ese estado se fundaron. Por ejemplo, Alpha de Pennsylvania se refiere al capítulo en Dickinson College (1887); Beta de Pennsylvania, el capítulo en la Universidad de Lehigh (1887); Gamma de Pennsylvania, el capítulo en el Lafayette College (1890), y Delta de Pennsylvania, el capítulo en la Universidad de Pennsylvania (1892).

En 1920, existían un total de 89 capítulos en una variedad de escuelas. Los nuevos capítulos se fueron añadiendo continuamente, hasta que en 2007 había 276.14​ En 1988, los Estatutos de Phi Beta Kappa cambiaron oficialmente su nombre por el de Sociedad Phi Beta Kappa, recordando el nombre con el que había sido creada la organización establecida en 1776.

La insignia

El símbolo de la Sociedad Phi Beta Kappa es una insignia de oro grabada en el anverso con la imagen de un dedo que señala, tres estrellas, y las letras griegas de las que la sociedad toma su nombre. Las estrellas se dice que representan la ambición de los jóvenes investigadores y los tres principios distintivos de la Sociedad: la amistad, la moral y el aprendizaje. En el reverso se encuentran las iniciales "SP", que significan las palabras en latín Societas Philosophiae, ("Sociedad Filosófica").

Actividades y publicaciones

La Sociedad Phi Beta Kappa publica The Key Reporter, un boletín trimestral distribuido a todos los miembros que contribuyen y cada dos años a los otros miembros, y The American Scholar, una revista trimestral por suscripción que acepta ensayos sobre literatura, historia, ciencia, asuntos públicos, y cultura.

Phi Beta Kappa también financia un número de becas, programas de visitas escolares, y premios académicos. Sus tres premios son el Premio Ralph Waldo Emerson, el premio Christian Gauss, y el Premio de Ciencia Phi Beta Kappa.

Miembros

Desde la fundación de la Sociedad en 1776, han sido miembros 17 presidentes de Estados Unidos, 39 jueces del Tribunal Supremo de EE.UU. y más de 130 premios Nobel, junto con innumerables autores, diplomáticos, deportistas, investigadores, actores y líderes empresariales.

domingo, 17 de junio de 2018

Instalación, configuración y conexión de una impresora multifunción Brother en Debian 9 a la red Wi-FI

En este artículo voy a explicar la instalación, configuración, conexión a una red Wi-Fi de una impresora multifunción Brother en GNU/Linux. Yo uso una distro de GNU/Linux llamada Debian. Supongo que es factible la instalación, configuración, conexión en la mayoría de las distribuciones de GNU/Linux existentes.

Instalación del driver en Debian 9

Bajar el archivo con el nombre linux-brprinter-installer-*.*.*-*  En mi caso particular, es la impresora Brother modelo MFC-9330CDW. Busco dicha impresora en la web oficial de Brother : http://support.brother.com/

Escribir el siguiente comando en el terminal como usuario para extraer el archivo:
user@debian:~$ gunzip linux-brprinter-installer-*.*.*-*.gz

Introducir la contraseña de administrador para entrar en modo superusuario:
user@debian:~$ su root

Escribir el siguiente comando en el terminal como superusuario:
root@debian:/home/user#  bash linux-brprinter-installer-*.*.*-* MFC-9330CDW
Nota: MFC-9330CDW es un ejemplo, es el nombre del modelo de mi impresora Brother, usted tendrá que conocer cual es el suyo y escribir su nombre en su lugar.

Al ejecutar este comando se procederá a la instalación de diferentes paquetes a través del terminal. Solamente queda seguir los pasos que se indican a continuación.

Configurar la impresora Brother y conectar a  tu red Wi-Fi en una computadora con Debian 9 instalado.

Yo tengo un router Wi-Fi ADSL de Orange. Es necesario tener el Wi-Fi activado y es necesario buscar la clave Wi-Fi de tu network (en mi caso estaba en una etiqueta debajo del router)  para anotarla. Encender la impresora multifunción Brother MFC-9330CDW y buscar el icono “All settings” representado por un par de herramientas en  la pantalla táctil de la impresora, pulsa con el dedo para seleccionarla. Después selecciona la opción “Network” y a continuación selecciona la opción “WLAN”. Dentro de la opción WLAN, selecciona la opción “Setup Wizard”, y se iniciará la búsqueda del SSID. Aparece el nombre de tu red Wi-Fi  y  quizá otras redes Wi-Fi,. Seleccionar el nombre de tu red Wi-Fi y pulsar “Ok” para aceptar. Aparecerá una ventana que pide la contraseña, solamente queda introducir la contraseña y aceptar.

Una vez añadida tu red Wi-Fi a través de la pantalla táctil de la impresora Brother, Hay que editar el fichero /etc/printcap para adaptarlo a nuestra configuración, de la siguiente manera:
root@debian:/home/user# nano /etc/printcap

Hay que buscar la línea que empieza con :lp. Esta línea (sólo para la configuración Wi-Fi) debe ser eliminada, y en su lugar deberemos escribir el siguiente texto:
:rm=xx.xx.xx.xx\
 :rp=lp\

Nota: Para averiguar la IP de tu impresora, puedes saberla gracias a la pantalla táctil de la impresora Brother. Hay que seguir estos pasos: All Settings  →Network → WLAN → TCP/IP. En mi caso particular, la IP de mi impresora es 192.168.1.100.


A continuaciń, En Debian 9, hay que dirigirse a “Menú” y elegir “Configuración de impresión”,  selecciona "servidor" y dentro de "servidor", haz click en “Nuevo” y selecciona “Impresora”. Escribe el URI del dispositivo. En mi caso particular, el URI es el siguiente:  lpd://192.168.1.100/binary_p1

Aparecerá una ventana que pide que elijas un controlador. Yo selecciono "elegir impresora de una base de datos" y selecciono la marca de mi impresora “Brother”. A continuación, selecciono de la lista el modelo de mi impresora:   MFC-9330CDW y aparecerá una ventana en el que pide una descripción de la impresora. Finalmente, hay que hacer click a “Apply” (aplicar). La impresora multifunción MFC-9330CDW quedará conectada por Wi-Fi a la computadora que usa Debian 9 como sistema operativo. Ya se puede imprimir una página de prueba.

Configuración del scanner.

Hay que instalar primero el programa xsane:
root@debian:/home/user# apt install xsane
A continuación , hay que configurar  el escáner. Para ello, debemos tener instalado brsaneconfig4 que debería venir dentro del paquete "sane utils" instalado al principio. Hay que escribir este comando en el terminal:
user@debian:~$ brsaneconfig4 -a name=scanner model=MFC-9930CDW ip=192.168.1.100

Y para comprobar que se ha configurado con éxito, hay que ejecutar el programa xsane:
user@debian:~$ xsane
Sería recomendable escanear un documento para ver sí xsane funciona correctamente.


Existen otras aplicaciones que sirven para escanear texto OCR y pasarlo a un documento PDF:
root@debian:/home/user# apt install gscan2pdf tesseract-ocr tesseract-ocr-spa

Fuentes: