Mostrando las entradas con la etiqueta linux. Mostrar todas las entradas
Mostrando las entradas con la etiqueta linux. Mostrar todas las entradas

jueves, 21 de septiembre de 2023

conky (implementando perl para las fases lunares)

U na pequeña actualización para conky (implementando perl para  las fases lunares) 
pero ahora sin  Sunlight World Map (ver acá debido a las restricciones de Scraping  

veré si hay una solución para esto en el futuro y lo comentaré por aquí.

Descargue los archivos de configuración desde acá 

El tutorial para configurar lo pueden ver acá 

MoonPhase (perl) calcula información sobre la fase de la luna en un momento determinado. 






#!/usr/bin/perl -w

#to install, with sudo
#perl -MCPAN -e 'install Astro::MoonPhase'

# -------------------------------------------------------------------
# File: moon.pl                                          /\
# Type: Perl Script                                     /_.\
# By Fernando Gilli fernandowekers(dot)org    _,.-'/ `",\'-.,_
# Last modified:2023-09-21                     -~^    /______\`~~-^~:
# ------------------------
# Get Moon data from perl module Astro::MoonPhase
# / OS : $Linux, $FreeBSD (X Window)
# -------------------------------------------------------------------


use warnings;
use strict;
use POSIX qw(strftime);

use Astro::MoonPhase;


my @phases = phasehunt();
#print "New Moon      = ", scalar(localtime($phases[0])), "\n";
#print "First quarter = ", scalar(localtime($phases[1])), "\n";
#print "Full moon     = ", scalar(localtime($phases[2])), "\n";
#print "Last quarter  = ", scalar(localtime($phases[3])), "\n";
#print "New Moon      = ", scalar(localtime($phases[4])), "\n";

open(my $fh, '>', 'moon_phase_die');
    
  print $fh "Full Moon\n";
  print $fh ucfirst strftime("%b %d", localtime($phases[2])), "\n";
  print $fh "New Moon\n";
  print $fh ucfirst strftime("%b %d", localtime($phases[4])), "\n";

close $fh;



domingo, 18 de septiembre de 2022

Conky y una implementación de Mapa mundial de luz solar

Cómo funciona: 

Observe cómo sale y se pone el sol en todo el mundo en esta ilustración en tiempo real generada por computadora de los patrones de luz solar y oscuridad de la Tierra. Las nubes se actualizan diariamente con imágenes satelitales meteorológicas actuales. 

 
El World Sunlight Map (Mapa mundial de luz solar) del sitio www.die.net/earth/  proporciona una aproximación generada por computadora de cómo se ve la Tierra actualmente. Si bien es menos impresionante que estar en órbita, esto es mucho más accesible para la mayoría de nosotros.

Comienza con imágenes sin nubes de la tierra durante el día (de un par de satélites de la NASA) y la noche (de un programa del Departamento de Defensa para mapear las luces de la ciudad). Todos los días, descarga una imagen de nubes compuestas basada en datos de satélites meteorológicos de todo el mundo. Y cada media hora, estas imágenes son compuestas y mapeadas en una esfera por xplanet según la posición relativa del sol. Los mapas planos son procesados ​​posteriormente por ImageMagick para cortar los 15 grados más cercanos a los polos norte y sur donde los datos de nubes no están disponibles.

He realizado una nueva implementación para una versión anterior de conky en la que ya estaba trabajando con datos del clima y una API de Open Weather Map.

 Para ello agregué el siguiente sript (en bash) para poder descargar el mapa mundial de luz solar desde el sitio die.net y adecuarlo con los datos meteorológicos que ya tengo:



#!/bin/bash

# -------------------------------------------------------------------
# File: GetWorldSunlightMap.sh
# By Julio Alberto Lascano http://drcalambre.blogspot.com/
#________          _________        .__                ___.                  
#\______ \_______  \_   ___ \_____  |  | _____    _____\_ |_________   ____  
# |    |  \_  __ \ /    \  \/\__  \ |  | \__  \  /     \| __ \_  __ \_/ __ \ 
# |    `   \  | \/ \     \____/ __ \|  |__/ __ \|  Y Y  \ \_\ \  | \/\  ___/ 
#/_______  /__|     \______  (____  /____(____  /__|_|  /___  /__|    \___  >
#        \/                \/     \/          \/      \/    \/            \/ 
# -------------------------------------------------------------------
# Get World Sun light Map from https://www.die.net/earth/
# Watch the sun rise and set all over the world on this real-time, 
# computer-generated illustration of the earth's patterns of sunlight 
# and darkness. 
# The clouds are updated daily with current weather satellite imagery. 
# -------------------------------------------------------------------
# Last modified:2022-09-15
# -------------------------------------------------------------------

# Working directory
DirShell="$HOME/.cache"

# World Sun light Map image
# Can't download direct with wget
# To get World Sun light Map image -> Pass Cloudflare DDOS Protection

curl https://static.die.net/earth/mercator/280.jpg --output "${DirShell}"/world_sunlight_map.jpg \
 -H 'Host: static.die.net' \
 -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:33.0) Gecko/20100101 Firefox/33.0' \
 -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \
 -H 'Accept-Language: en-US,en;q=0.5' \
 -H 'Referer: https://static.die.net/moon' \
 -H 'Connection: keep-alive' --compressed 

#EOF



Y en el archivo conky.conf e adicionado la siguiente sección para poder mostrarla y actualizarla con una frecuencia de cada 15 minutos (900 intervalos de 1 segundo que efectúa conky). Lo que nos brinda una vista, no solo de luz solar, sino también de las nubosidades sobre los continentes que son reales:



# --- World Sunlight Map --- #
${execi 900 bash ~/.config/conky/scripts/GetWorldSunlightMap.sh}
${image ~/.cache/world_sunlight_map.jpg -p 0,840 -s 254x142 -n}


Así es como se vería

 

Esta actualización para conky puede ser descargada desde acá


jueves, 15 de septiembre de 2022

conky con: API openWeatherMap mas una brújula para indicar la dirección del viento y la luna observada desde la Patagonia Argentina

El fondo de escritorio es una fotografía de un atardecer en una de mis salidas en bicicleta por la costanera de Rio Gallegos (Argentina)

 

 descargue los archivos de configuración desde acá 

el contenido del archivo open-weather-map-wather-conky-master.zip descargado es el que se muestra a continuación:


Para utilizar esta configuración de conky,  hay que registrarse en OpenWeatherMap haciendo clic acá lo que le generará su propia API-KEY


 

Dentro de la carpeta scripts se encuentran los siguientes archivos. Uno de ellos tendrá que ser modificado por usted con su propia API-KEY de OpenWeatherMap luego de su registración.

 
 el script openWeatherMap-weather.sh

 
#!/bin/bash
# -------------------------------------------------------------------
# File: openWeatherMap-weather.sh
# Type: Bash Shell Script
# By Julio Alberto Lascano http://drcalambre.blogspot.com/
#________          _________        .__                ___.                  
#\______ \_______  \_   ___ \_____  |  | _____    _____\_ |_________   ____  
# |    |  \_  __ \ /    \  \/\__  \ |  | \__  \  /     \| __ \_  __ \_/ __ \ 
# |    `   \  | \/ \     \____/ __ \|  |__/ __ \|  Y Y  \ \_\ \  | \/\  ___/ 
#/_______  /__|     \______  (____  /____(____  /__|_|  /___  /__|    \___  >
#        \/                \/     \/          \/      \/    \/            \/ 
#
# Last modified:2022-09-15
# -------------------------------------------------------------------
# RGL : Rio Gallegos city, Argentina lat= -51.6226&lon=-69.2181
# To get information in JSON format: https://openweathermap.org/current#current_JSON
# For help: https://openweathermap.org/current#parameter
# -------------------------------------------------------------------
# 5 day weather forecast: https://openweathermap.org/forecast5
# You can search weather forecast for 5 days with data every 3 hours by geographic coordinates. 
# All weather data can be obtained in JSON and XML formats.
# [cnt]	optional A number of days, which will be returned in the API response (from 1 to 16)
# Example of API call: http://api.openweathermap.org/data/2.5/forecast/daily?q=London&cnt=3&appid={API key}
# -------------------------------------------------------------------
# API call
# api.openweathermap.org/data/2.5/forecast?lat={lat}&lon={lon}&appid={API key} 
# https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid={API key}
# -------------------------------------------------------------------

# Current Weather
urlweather="https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid={API key}&units=metric&lang=es"
# Extended forecast Weather
urlforecast="api.openweathermap.org/data/2.5/forecast?lat={lat}&lon={lon}&cnt=3&appid={API key}&units=metric&lang=es"

curl ${urlweather} -s -o ~/.cache/openweathermap.json
curl ${urlforecast} -s -o ~/.cache/openweathermap-forecast.json


El otro archivo que tendría que ser modificado por usted seria el que recaba los datos de las fases lunares. Yo para esta implementación he obtenido un muy buen script en bash GetMoon.sh que programo Fernando Gilli fernando<at>wekers(dot)org (mis respetos a él por el buen trabajo que hizo). 

Yo hice mi propia implementación de la manera que se muestra a continuación (usted es libre de adecuarlo al hemisferio en que vive para mostrar de manera correcta las fases lunares)



#!/bin/bash
# -------------------------------------------------------------------
# File: GetMoon.sh                                       /\
# Type: Bash Shell Script                               /_.\
# By Fernando Gilli fernandowekers(dot)org    _,.-'/ `",\'-.,_
# ------------------------                     -~^    /______\`~~-^~:
# Get Moon data from moongiant.com
# / OS : $Linux, $FreeBSD (X Window)
# ------------------------
# adapted for the current version by: 
#________          _________        .__                ___.                  
#\______ \_______  \_   ___ \_____  |  | _____    _____\_ |_________   ____  
# |    |  \_  __ \ /    \  \/\__  \ |  | \__  \  /     \| __ \_  __ \_/ __ \ 
# |    `   \  | \/ \     \____/ __ \|  |__/ __ \|  Y Y  \ \_\ \  | \/\  ___/ 
#/_______  /__|     \______  (____  /____(____  /__|_|  /___  /__|    \___  >
#        \/                \/     \/          \/      \/    \/            \/ 
# Julio Alberto Lascano http://drcalambre.blogspot.com/
# Last modified:2022-09-15
# -------------------------------------------------------------------

# Working directory
DirShell="$HOME/.cache"
# set language
lang="pt-es"

# put your hemisphere here:
# n for north
# s for south
hemisphere=s

# ****************************

wget -q -O ${DirShell}/raw "http://www.moongiant.com/phase/today" > /dev/null 2>&1
sleep 1
cp ${DirShell}/raw ${DirShell}/ico

[ -f ${DirShell}/moon_tmp.jpg ] && rm ${DirShell}/moon_tmp.jpg
[ -f ${DirShell}/moon.jpg ] && rm ${DirShell}/moon.jpg


sed -i -e '/^ *$/d' -e 's/^ *//g' ${DirShell}/raw
sed -i '/Illumination/!d' ${DirShell}/raw
sed -i 's/
/\n/g' ${DirShell}/raw sed -i 's|<[^>]*>||g' ${DirShell}/raw sed -i -e '4d' ${DirShell}/raw #ico name sed -i '/var jArray=\|"todayMoonContainer"/!d' ${DirShell}/ico sed -i -e 's/"\]};//g' -e 's/^.*today_phase\///g' -e 's/\.jpg.*$//g' ${DirShell}/ico cat ${DirShell}/ico >> ${DirShell}/raw img_in=$(sed -n 4p ${DirShell}/raw) [ -f ${DirShell}/ico ] && rm ${DirShell}/ico now=$(date --date="now" +%H) # Moon image if [[ $now -ge 18 || $now -lt 06 ]]; then # $now >=18 or $now < 06 --> day moon -> more light wget -q --output-document=${DirShell}/moon_tmp.jpg https://www.moongiant.com/images/today_phase/$img_in.jpg > /dev/null 2>&1 else # night moon -> dark # Can't download direct with wget # To get moon image -> Pass Cloudflare DDOS Protection curl https://static.die.net/moon/210.jpg --output "${DirShell}"/moon_tmp.jpg \ -H 'Host: static.die.net' \ -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:33.0) Gecko/20100101 Firefox/33.0' \ -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \ -H 'Accept-Language: en-US,en;q=0.5' \ -H 'Referer: https://static.die.net/moon' \ -H 'Connection: keep-alive' --compressed fi # mirror moon image, hemisphere south case $hemisphere in s) convert -flop -colorspace rgb ${DirShell}/moon_tmp.jpg ${DirShell}/moon.jpg rm ${DirShell}/moon_tmp.jpg ;; *) convert -colorspace rgb ${DirShell}/moon_tmp.jpg ${DirShell}/moon.jpg rm ${DirShell}/moon_tmp.jpg ;; esac # Translate pt-es (moon phase name) case $lang in pt-es) sed -i -e 's/New Moon/Luna Nueva/g' ${DirShell}/raw sed -i -e 's/Full Moon/Luna Llena/g' ${DirShell}/raw sed -i -e 's/Waxing Crescent/Luna Creciente/g' ${DirShell}/raw sed -i -e 's/Waxing Gibbous/Luna Menguante/g' ${DirShell}/raw sed -i -e 's/Waning Crescent/Creciente Menguante/g' ${DirShell}/raw sed -i -e 's/Waning Gibbous/Luna Menguante/g' ${DirShell}/raw sed -i -e 's/First Quarter/Cuarto Creciente/g' ${DirShell}/raw sed -i -e 's/Last Quarter/Cuarto Minguante/g' ${DirShell}/raw ;; esac # exec too bash ~/.config/conky/scripts/lune_die.sh > /dev/null 2>&1 #EOF

Con esto ya estaría en condiciones de volcar sus modificaciones en el lugar adecuado para que conky lea el archivo de configuración conky.conf de manera correcta:

vuelque sus archivos y carpetas en $HOME/.config/conky/


Para poder trabajar con archivos JSON es necesario instalar la utilidad jq

Con el comando jq puede transformar JSON de varias maneras, seleccionando, iterando, reduciendo y alterando documentos JSON. Yo lo utilizo desde conky.conf para ir recuperando los datos que ya se han descargado con la llamada a la API de openweathermap.

Para ello abra una terminal y como root instale jq  (Command-line JSON processor)


También para realizar ciertas operaciones matemáticas, buscar palabras,  patrones de palabras y reemplazarlos por otras palabras y/o patrones yo utilizo awk

Para ello desde la terminal y como root instale gawk


Para mostrar correctamente la luna en el hemisferio sur (Argentina) se hace uso de convert 

convert forma parte del paquete imagemagick . Instálelo como sigue: 


Los datos en formato json son traídos con la api de openweathermap.org mediante curl
Instálelo como sigue: 


Los datos de la Luna se obtienen desde el módulo Perl Astro::MoonPhasecon 

Con su o sudo desde la terminal necesita instalar el módulo perl mediante:




Luego ejecute desde su terminal el siguiente comando para que el escrip haga una primera llamada a la api de openweathermap para que genere los archivos json necesarios para que conky pueda mostrar por primera vez los datos necesarios y no ocasione ningún error. Conky luego seguirá haciendo las llamadas correspondientes.

Luego de ejecutar el script, este realizara una llamada a la API de openweathermap y generará por primera ves los archivos json



Con esto quedaría finalizado el instructivo y ya estaría en condiciones de correr conky desde cualquier terminal.



martes, 10 de agosto de 2021

Actualización problemática de connman en antiX 19.4

 ConnMan es un demonio para administrar conexiones a Internet dentro de un dispositivo integrado e integra una amplia gama de funciones de comunicación que generalmente se dividen entre muchos demonios como DHCP, DNS y NTP. 

El resultado de esta consolidación es un bajo consumo de memoria con una reacción rápida, coherente y sincronizada a las condiciones cambiantes de la red.

La última actualización de connman quizo hacer más fácil cambiar entre diferentes administradores de red y liberar a connman de su necesidad de controlar /etc/resolv.conf, pero en su lugar rompió la configuración actual en los dispositivos antiX 19.X instalados.

 

Hay dos métodos para solucionar la pérdida de conexión a Internet. 

SIGUE SOLO UNO DE ELLOS:  

[1:00] A. Restaure connman como estaba antes de la actualización borrando el archivo de configuración predeterminado de connman:  

sudo rm /etc/default/connman  

[2:20] B. Cambie el enlace simbólico de resolución de DNS a uno que sea compatible con la actualización: 

 sudo ln -sf /run/resolvconf/resolv.conf/etc/resolv.conf 

 Cualquiera de los métodos anteriores arreglará la conexión a Internet después de reiniciar.  

jueves, 18 de junio de 2020

Cómo enviar audio y vídeo de GNU/Linux a Chromecast.

Mkchromecas es un programa para transmitir su audio Linux a sus dispositivos Google Cast.
También puede emitir archivos de video.

Está escrito para Python3, y puede transmitir a través de node.js, parec (Linux), ffmpeg o avconv. Mkchromecast es capaz de utilizar formatos de audio con pérdida y sin pérdida siempre que estén instalados ffmpeg, avconv (Linux) o parec (Linux).

También es compatible con la reproducción grupal de varias habitaciones y con una alta resolución de audio de 24 bits / 96 kHz.




Además, un menú de la bandeja del sistema está disponible. 


¿Cómo instalar y usar Mkchromecast?

En cualquier distro de Linux podemos instalar mkchromecast directamente desde su código fuente alojado en Github, para ello debemos realizar los siguientes pasos:

Clonar el repositorio oficial de la herramienta, o en su defecto descargar la versión estable de la aplicación desde aquí.



Los usuarios de Debian, Ubuntu y derivados pueden instalar la herramienta directamente desde los repositorios oficiales, sólo debe ejecutar desde la consola el siguiente comando:

sudo apt install mkchromecast
Como dijimos, Mkchromecast requiere de Pyhon3 y una serie de requisitos para que funcione.
Los usuarios de GNU/Linux pueden intentar instalar estos requisitos de Python utilizando los administradores de paquetes que vienen con sus distribuciones.

Ejemplo para distribuciones basadas en Debian:

sudo apt install python3.6 python3-pip python3-pychromecast python3-flask python3-psutil python3-setuptools python3-mutagen python3-gi vorbis-tools sox lame flac faac opus-tools ffmpeg libav-tools pavucontrol python3-pyqt5 
Uso
Audio
Abra una terminal y ejecute:
mkchromecast
Esto lanzará Mkchromecast usando "parec" (Parec Reproduce o graba secuencias de audio sin formato o codificadas en un servidor de sonido PulseAudio en Linux), y realizará la parte de transmisión junto con el formato de codificación de audio mp3.

En Linux, debe seleccionar con "pavucontrol" el receptor llamado Mkchromecast para transmitir a menos que esté utilizando ALSA. Vea la wiki para más información.

Nota: el proceso de conversión es independiente de pulseaudio. Esto significa que Mkchromecast le dirá al dispositivo de transmisión que escuche su computadora, pero no se escuchará ningún sonido hasta que seleccione el receptor. Para los usuarios de ALSA, esto no se aplica.












Otros ejemplos usando el paquete instalado desde debian de  Mkchromecast 

Para transmitir usando parec y el formato wav de codificación de audio:

 mkchromecast -c wav 
También hay una opción para cambiar la tasa de bits, y en este caso con ffmpeg:
 mkchromecast --encoder-backend ffmpeg -c ogg -b 128 
y otro para cambiar la frecuencia de muestreo:
 mkchromecast --encoder-backend ffmpeg -c ogg -b 128 --sample-rate 48000 
Nota: para usar avconv simplemente reemplace de ffmpeg a avconv en los comandos anteriores.

 
Usando  Mkchromecast  desde la bandeja del sistema
Para lanzarlo:

 mkchromecast -t 

La aplicación de la bandeja del sistema puede realizar todas las acciones de los comandos mencionados anteriormente.
Para tener una idea, acá un video en Youtube.



Reproducción de URL de YouTube en dispositivos Google Cast

Puede reproducir URL de YouTube (u otros sitios)  desde la línea de comandos:
 mkchromecast -y https://www.youtube.com/watch\?v\=J1LmiKO03S0 --video --control 
Para usar esta función, necesita instalar youtube-dl. En distribuciones basadas en Debian:
 apt install youtube-dl 
Nota: es posible que deba encerrar la URL entre comillas, y solo se admiten URL a través de https.

Reproducción de URL de origen en dispositivos Google Cast

Puede reproducir cualquier URL de origen desde la línea de comandos:
 mkchromecast --source-url SOURCE_URL 
Esta opción es útil para:

  1. Transmitir usando MPD en el caso de que ya tenga una fuente de transmisión http.
  2. Lanzar una estación de radio.

Una lista de estaciones para probar : http://www.radio-browser.info/gui/#!/bycountry/Argentina

Ejemplo "Los 40 principales de Argentina":
 mkchromecast --source-url http://18733.live.streamtheworld.com:3690/LOS40_ARGENTINA_SC -c ogg --control 
Como se puede ver arriba, el códec debe especificarse con la bandera -c.

Nota: .m3u o .pls aún no son compatibles.

Controlar el volumen de Google Cast y las opciones de pausa / reanudar:

Puede controlar el volumen de su dispositivo Google Cast iniciando  Mkchromecast  con la opción --control:

 mkchromecast --encoder-backend ffmpeg -c ogg -b 320 --control 
Esto le permitirá presionar las teclas  para subir y bajar el volumen respectivamente.

La bandeja del sistema tiene una ventana con un control deslizante de volumen para subir y bajar el volumen.

Audio de alta calidad

 Mkchromecast  te permite transmitir usando una resolución de audio de 24 bits / 96 kHz. Esta es la capacidad máxima de audio de Chromecast.
Los códecs compatibles son: wav y flac. A pesar de que aac puede usar una frecuencia de muestreo de 96000Hz, la tasa de bits corresponde a la de un formato de compresión de datos con pérdida. Por lo tanto, las siguientes combinaciones pueden lograr esta capacidad de 24 bits / 96 kHz:
  • wav + 96000Hz frecuencia de muestreo.
  • flac + frecuencia de muestreo de 96000Hz.

Video

Ahora puede transmitir videos a su Chromecast usando  Mkchromecast  . Esta característica funciona con ffmpeg y desde la línea de comandos.
  • Transmita un archivo desde su computadora a su Chromecast:
 mkchromecast --video -i "/path/to/file.mp4" 
Nota: el formato del archivo puede ser el que sea compatible con ffmpeg y no exclusivamente mp4.

  • Subtítulos:
 mkchromecast --video -i "/tmp/Homeland.S06E01.Fair.Game.1080p.AMZN.WEBRip.HEVC.DD5.1.x265.mkv" --subtitles /tmp/Homeland.S06E01.Fair\ Game.HDTV.x264-BATV.en.HI.srt 
Nota: Asegúrese que los subtítulos no tengan errores en la codificación de caracteres (UTF-8, Windows-1252... etc), dado que de ser así ffmpeg fallará, truncando la transmisión. En el caso que esto sucediese, los subtítulos se pueden arreglar mediante Aegisub (Aegisub es una herramienta gratuita de código abierto multiplataforma para crear, modificar, recodificar y exportar a otros formatos de subtítulos muy interesantes como SSA/ASS  más avanzado que el SRT.)
  • Establecer la resolución:
 mkchromecast --video --resolution 4k -i /path/to/myvideo.something --subtitles /path/to/my.srt 
  • Transmitir desde una URL de origen:
 mkchromecast --source-url http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4 -c mp4 --volume --video 
  • Video de Youtube
 mkchromecast -y https://www.youtube.com/watch\?v\=J1LmiKO03S0 --video --control 
Nota: Asegúrese de tener la última versión de la librería youtube-dl. En mi caso obtuve un error al querer reproducir videos de youtube (del tipo "ERROR:J1LmiKO03S0:YouTube said:Invalid parameters.") el cual se solucionó luego de actualizar youtube-dl.

  • ¿Cómo actualizo youtube-dl ?
 sudo youtube-dl -U 
Si ha usado pip, una simple instalación de sudo pip -U youtube-dl es suficiente para actualizar.
sudo pip install -U youtube-dl 
Si ha instalado youtube-dl usando un administrador de paquetes como apt-get o yum, use el mecanismo de actualización del sistema estándar para actualizar. Tenga en cuenta que los paquetes de distribución a menudo están desactualizados. 
Como regla general, youtube-dl se publica al menos una vez al mes y, a menudo, semanalmente o incluso a diario. Simplemente vaya a https://yt-dl.org para averiguar la versión actual. Desafortunadamente, no hay nada que los desarrolladores de youtube-dl puedan hacer si su distribución sirve una versión realmente desactualizada. Puede (y debe) quejarse de su distribución en su bugtracker o foro de soporte.
  •  Matar a la aplicación:
Para eliminar  Mkchromecast  cuando lo ejecutas desde la consola, simplemente presiona la tecla  Ctrl-C  para salir (cuando se pasa --control de control).
Al iniciar desde la bandeja del sistema, use el botón Salir en la bandeja del sistema.


Más ayuda

Para obtener más ayuda:
 mkchromecast -h 
  • Problemas conocidos
General

     Las versiones de Mkchromecast inferiores a 0.3.7 no pueden funcionar con versiones más recientes de pychromecast.
     Cuando se transmiten videos usando el nodo backend, no es posible usar ni las marcas --subtitle ni --seek.
     Al transmitir a Sonos, los únicos códecs compatibles son: mp3 y aac. No le daré soporte a wma. Aparentemente hay una forma de jugar wav y ogg que intentaré implementar más tarde.

Cuando se utiliza el codificador parec y lame, el retraso entre el audio reproducido y escuchado puede ser de hasta 8 segundos. Te sugiero que uses algo diferente a mp3.

También puede consultar las preguntas frecuentes para obtener más información.


Visite el sitio web de Mkchromecast.
Creado por: Muammar El Khatib.



viernes, 12 de abril de 2019

Respaldo de bases de datos MySQL de un servidor Debian, con otro puesto de Debian, mediante Samba.

En el puesto debian (192.168.0.2), donde se destinará los respaldo del servidor MySQL/MariaDB (192.168.0.1), procedemos a configurar un servidor Samba que contendrá los siguientes recursos compartidos:
 
 #/etc/samba/smb.conf   
  [global]   
  workgroup = INFORMATICA   
  server string = Julio Alberto Lascano - (Samba Server %h)   
  netbios name = DEBIAN-JULIO   
  map to guest = bad user   
 # Depurar la información de registro  
 # log file  
  log file = /var/log/samba/log.%m  
 # nivel de registro general  
  log level = 3  
  [backup-mysql]   
  comment = solo para grupo administracion backup server mysql   
  path = /home/julio/backup/mysql   
  browseable = yes   
  read only = yes   
  guest ok = no   
  write list = @administracion   
  valid users = @administracion   
Hacemos un testparm para validar el contenido del fichero de configuración smb.conf

 root@sistem:/home/julio# testparm /etc/samba/smb.conf  
A continuación creamos el grupo y el usuario que manejará el acceso a samba. Creamos el grupo administracion.
 root@sistem:/home/julio# groupadd administracion  
Añadimos un usuario al grupo para hacer luego las pruebas (creamos el usuario en la máquina y después su password):
 root@sistem:/home/julio# useradd administracionuser  
 root@sistem:/home/julio# passwd administracionuser  
Añadimos el usuario administracionuser al grupo administracion.  Como ya existen, no usaremos
 root@sistem:/home/julio# useradd -g administracion administracionuser  
Sino:
 root@sistem:/home/julio# usermod -g administracion administracionuser  
Crear usuarios locales como usuarios de SAMBA
 root@sistem:/home/julio# smbpasswd -a administracionuser  
Permisos locales adecuados para los recursos compartidos SAMBA
 root@sistem:/home/julio# chmod 775 /home/julio/backup/mysql  
Y cambiamos el usuario y grupo propietarios al grupo que puede escribir :
 root@sistem:/home/julio# chown -hR root:administracion /home/julio/backup/mysql  
Reiniciamos el servidor SAMBA.
 root@sistem:/home/julio# /etc/init.d/samba-ad-dc restart  
Ahora desde el servidor debian mysql/mariadb (192.168.0.1) verficamos los recursos que está compartiendo el servidor SAMBA (192.168.0.2)
 root@sistem:/home/julio# smbclient --list 192.168.0.2  
Que nos mostrará una salida similar a esta:
 root@spse:/home/julio# smbclient --list 192.168.0.2  
 Enter root's password:   
 Domain=[INFORMATICA] OS=[Windows 6.1] Server=[Samba 4.2.14-Debian]  
      Sharename    Type   Comment  
      ---------    ----   -------  
      backup-mysql    Disk   solo para grupo administracion backup server mysql  
      IPC$      IPC    IPC Service (Julio Alberto Lascano - (Samba Server sistem))  
   Domain=[INFORMATICA] OS=[Windows 6.1] Server=[Samba 4.2.14-Debian]  
Finalizada la configuración del servidor Samba del puesto  192.168.0.2, procederemos a la creación de 2 (dos) scripts. en lenguaje bash.
Luego, serán agregados como tareas diarias automáticas, mediante crontab, en el Servidor MySQL/MariaDB 192.168.0.1
Los scripts :
 root@spse:/home/julio/fuentes/bash# ls -l  
 total 8  
 -rwxrwx--- 1 root root 589 abr 9 14:47 backupToJulio.sh  
 -rwxrwxr-x 1 root root 477 abr 4 12:05 mysqldump.sh  
 root@spse:/home/julio/fuentes/bash#   
  1.  mysqldump.sh (Será utilizado para generar los scripts de creación de las bases de datos (estructuras de tablas y datos de las mismas) del servidor MySQL 192.168.0.1)
  2.   backupToJulio.sh (backup bases de datos a otro disco de la red, en este caso el servidor SAMBA 192.168.0.2)
 #!/bin/sh  
 # Esto volcará todas tus bases de datos.  
 # **************************************  
 #     mysqldump.sh
 # **************************************  
 DATE=$(date +%Y%m%d%H%M)  
 for DB in $(echo "show databases" | mysql --defaults-file=/etc/mysql/debian.cnf -N)  
 do  
     mysqldump --defaults-file=/etc/mysql/debian.cnf --single-transaction $DB > /root/mysql/backup/${DB}_${DATE}.sql  
     gzip /root/mysql/backup/${DB}_${DATE}.sql  
 done  
 # Borrar los respaldos que tengan mas de 5 dias (economiza espacio del server)  
 find /root/mysql/backup/ -name "*.sql*" -mtime +5 -exec rm -vf {} \;  
 #!/bin/sh  
 # **********************************************************  
 # backup bases de datos a otro disco de la red (192.168.0.2)  
 # **********************************************************  
 #          backupToJulio.sh  
 # **********************************************************  
 # montar con cifs-utils  
 mount -t cifs //192.168.0.2/backup-mysql /home/julio/papelera -o username=administracionuser,password=administracionuser,domain=INFORMATICA  
 if [ $? = 0 ]; then  
      # copiar al puesto 192.168.0.2 (que está montado en /home/julio/papelera)  
      find /root/mysql/backup/ -name "*.sql*" -mtime -1 -exec cp -v {} /home/julio/papelera/ \;  
      umount /home/julio/papelera/  
 fi  
Solo resta automatizar la ejecución diaria de esto scripts. Para ello, los agragaremos como una tarea cron de root. Acerca de como agragar tareas cron remítase a este tutorial
 root@spse:~# crontab -l  
 # Edit this file to introduce tasks to be run by cron.  
 #   
 # Each task to run has to be defined through a single line  
 # indicating with different fields when the task will be run  
 # and what command to run for the task  
 #   
 # To define the time you can provide concrete values for  
 # minute (m), hour (h), day of month (dom), month (mon),  
 # and day of week (dow) or use '*' in these fields (for 'any').#   
 # Notice that tasks will be started based on the cron's system  
 # daemon's notion of time and timezones.  
 #   
 # Output of the crontab jobs (including errors) is sent through  
 # email to the user the crontab file belongs to (unless redirected).  
 #   
 # For example, you can run a backup of all your user accounts  
 # at 5 a.m every week with:  
 # 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/  
 #   
 # For more information see the manual pages of crontab(5) and cron(8)  
 #   
 # m h dom mon dow  command  
 25 6   * * 1-5  /home/julio/fuentes/bash/mysqldump.sh  
 59 11  * * 1-5  /home/julio/fuentes/bash/backupToJulio.sh   
 root@spse:~#   
En este caso hemos configurado a cron para que ejecute mysqldump.sh (192.168.0.1) todos los días habiles (LUN-VIE) a las 06:25 AM
Y para respaldar en el otro disco (192.168.0.2) mediante backupToJulio.sh todos los días habiles (LUN-VIE) a las 11:59 AM

martes, 14 de abril de 2015

pysheng - Como descargar libros de Google Books

Descargar libros de Google Books como imágenes PNG. Se puede ejecutar desde la línea de comandos o mediante una GUI (interfaz gráfica).



















Descargar pysheng (sitio oficial)

viernes, 13 de marzo de 2015

Cómo configurar un entorno limpio UTF-8 en Linux

Muchas personas tienen problemas con el manejo de caracteres no ASCII en sus programas, o incluso en su editor de texto para mostrar correctamente.

Para trabajar de manera eficiente con datos de texto, su entorno tiene que estar configurado correctamente - es mucho más fácil de depurar un problema que tiene problemas de codificación y que si se puede confiar en su terminal se muestre correctamente  UTF-8.

Yo te mostraré cómo crear un ambiente tan limpio en Debian Lenny, pero la mayoría de las cosas de trabajar independientemente de la distribución, y parte de ella incluso trabajar en otros sistemas operativos con sabor a Unix como MacOS X.


Configuraciones regionales: instalación

Compruebe que ha instalado el paquete locales.  
En Debian se puede hacer eso con:

$ dpkg -l locales
 
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
ii  locales        2.7-18         GNU C Library: National Language (locale) da 

La última línea es la importante: si empieza con ii, se instala el paquete, y todo está bien. Si no, instalarla. Como root, teclee:

$ aptitude install locales
 
Si usted recibe un cuadro de diálogo pidiendo información, sigue leyendo a la siguiente sección. 

asegurarse de que en el sistema se genera locales UTF-8. 
Como root, teclee:
 
# dpkg-reconfigure locales
 
Usted verá una larga lista de lugares, y se puede navegar la lista con las teclas de flecha 
arriba / abajo. Al pulsar la barra espaciadora cambia la configuración regional bajo el cursor. 
Asegúrese de seleccionar al menos una localización UTF-8, por ejemplo en_US-UTF-8 es generalmente 
apoyado muy bien. (La primera parte del nombre de entorno nacional representa el idioma, 
el segundo para el país o dialecto, y el tercero para la codificación de caracteres).

 En el siguiente paso usted tiene la opción de hacer uno de los lugares previamente seleccionados 
por defecto. Escoger un defecto UTF-8 por defecto suele ser una buena idea, aunque podría cambiar 
la acción de algunos programas, por lo que no debe hacerse servidores que alojan aplicaciones 
sensibles. 

si elige una configuración regional predeterminada en el paso anterior, salga completamente y 
luego conectarse de nuevo. En cualquier caso, usted puede configurar el entorno de cada usuario 
con variables de entorno.
Las siguientes variables pueden afectar los programas:
 
LANG, LANGUAGE, LC_CTYPE, 
LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, LC_PAPER, LC_NAME,
LC_ADDRESS, LC_TELEPHONE, LC_MEASUREMENT, LC_IDENTIFICATION.
 
La mayoría de las veces funciona para establecer todos estos en el mismo valor. En lugar de 
establecer todas las variables LC_ por separado, se puede establecer el LC_ALL. 
Si utiliza bash como shell, puede poner estas líneas en su 
~ / .bashrc 
y 
~ / .profile archivos:
 
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8 
 
para realizar estos cambios activa en el shell actual, la fuente el .bashrc:
  
fuente: http://perlgeek.de