Mostrando las entradas con la etiqueta GNU/Linux. Mostrar todas las entradas
Mostrando las entradas con la etiqueta GNU/Linux. Mostrar todas las entradas

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.



sábado, 1 de junio de 2019

pulseaudio Sonido Entrecortado ( choppy sound )

Editar el archivo /etc/pulse/default.pa. (como root)

 root@sistem:/home/admin# vi /etc/pulse/default.pa  

Buscar la siguiente linea:

 load-module module-udev-detect  

Cambiar la línea a lo siguiente:

 load-module module-udev-detect tsched=0  

Reinicie PulseAudio.

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 
 
  

martes, 13 de mayo de 2014

Como recuperar el sistema de archivos de un pendrive.

¿Por qué mi pendrive está montado cómo sólo lectura?
















Vamos a desmontar y desconectar físicamente el dispositivo que está montado en: "/media/KINGSTON"

(para determinar en que directorio está montado el pendrive basta ejecutar mount sin parámetros):

**********************************************************
# umount /media/KINGSTON
**********************************************************

Luego de desmontar y desconectar el pendrive, abrimos el log de mensajes del kernel utilizando tail, para poder ver qué informa el kernel Linux cuando conectamos el dispositivo:

**********************************************************
# tail -f /var/log/messages
**********************************************************

Al conectar el dispositivo comienzan a aparecer los siguientes mensajes en la salida de tail:
**********************************************************
julio@sistemas ~ $ tail -f /var/log/messages
May 13 11:39:40 sistemas kernel: [15263.660817] scsi 21:0:0:0: Direct-Access     Kingston DataTraveler 2.0 1.00 PQ: 0 ANSI: 2
May 13 11:39:40 sistemas kernel: [15263.661497] sd 21:0:0:0: Attached scsi generic sg2 type 0
May 13 11:39:40 sistemas kernel: [15263.668097] sd 21:0:0:0: [sdb] 15753216 512-byte logical blocks: (8.06 GB/7.51 GiB)
May 13 11:39:40 sistemas kernel: [15263.669426] sd 21:0:0:0: [sdb] Write Protect is off
May 13 11:39:40 sistemas kernel: [15263.673113]  sdb: sdb1
May 13 11:39:40 sistemas kernel: [15263.831397] sd 21:0:0:0: [sdb] Attached SCSI removable disk
May 13 11:39:43 sistemas pulseaudio[2571]: ratelimit.c: 97 events suppressed
May 13 11:40:13 sistemas nautilus: Nautilus-Actions Tracker 2.29.4 initializing...
May 13 11:40:14 sistemas nautilus: Nautilus-Actions Menu Extender 2.29.4 initializing...
May 13 11:42:15 sistemas kernel: [15419.164054] usb 1-5: USB disconnect, address 24
May 13 11:42:52 sistemas kernel: [15456.016022] usb 1-5: new high speed USB device using ehci_hcd and address 25
May 13 11:42:52 sistemas kernel: [15456.155344] usb 1-5: configuration #1 chosen from 1 choice
May 13 11:42:52 sistemas kernel: [15456.161931] scsi22 : SCSI emulation for USB Mass Storage devices
May 13 11:42:57 sistemas kernel: [15461.176977] scsi 22:0:0:0: Direct-Access     Kingston DataTraveler 2.0 1.00 PQ: 0 ANSI: 2
May 13 11:42:57 sistemas kernel: [15461.177644] sd 22:0:0:0: Attached scsi generic sg2 type 0
May 13 11:42:57 sistemas kernel: [15461.184749] sd 22:0:0:0: [sdb] 15753216 512-byte logical blocks: (8.06 GB/7.51 GiB)
May 13 11:42:57 sistemas kernel: [15461.185522] sd 22:0:0:0: [sdb] Write Protect is off
May 13 11:42:58 sistemas kernel: [15461.189514]  sdb: sdb1
May 13 11:42:58 sistemas kernel: [15461.411200] sd 22:0:0:0: [sdb] Attached SCSI removable disk
May 13 11:46:04 sistemas kernel: [15647.608136] usb 1-5: USB disconnect, address 25
May 13 11:46:08 sistemas kernel: [15652.192025] usb 1-5: new high speed USB device using ehci_hcd and address 26
May 13 11:46:08 sistemas kernel: [15652.330658] usb 1-5: configuration #1 chosen from 1 choice
May 13 11:46:08 sistemas kernel: [15652.337094] scsi23 : SCSI emulation for USB Mass Storage devices
May 13 11:46:14 sistemas kernel: [15657.336847] scsi 23:0:0:0: Direct-Access     Kingston DataTraveler 2.0 1.00 PQ: 0 ANSI: 2
May 13 11:46:14 sistemas kernel: [15657.337520] sd 23:0:0:0: Attached scsi generic sg2 type 0
May 13 11:46:14 sistemas kernel: [15657.338134] sd 23:0:0:0: [sdb] 15753216 512-byte logical blocks: (8.06 GB/7.51 GiB)
May 13 11:46:14 sistemas kernel: [15657.340757] sd 23:0:0:0: [sdb] Write Protect is off
May 13 11:46:14 sistemas kernel: [15657.344896]  sdb: sdb1
May 13 11:46:14 sistemas kernel: [15657.580003] sd 23:0:0:0: [sdb] Attached SCSI removable disk
**********************************************************

Para reparar el sistema de archivos, primero vamos a determinar el nombre de la partición donde se encuentra alojado (abrimos otra terminal):
**********************************************************
# mount | grep vfat

que nos muestra:

/dev/sdb1 on /media/KINGSTON type vfat (rw,nosuid,nodev,uhelper=udisks,uid=500,gid=500,shortname=mixed,dmask=0077,utf8=1,flush)
**********************************************************

Por lo tanto desmontamos el dispositivo /dev/sdb1:
**********************************************************
# umount /dev/sdb1
**********************************************************

IMPORTANTE!!! Es necesario asegurarse que el sistema de archivos esté desmontado antes de intentar repararlo.

Para verificar y reparar el filesystem utilizamos la herramienta fsck.msdos ya que se trata de un sistema de archivos VFAT.

Si el sistema de archivos es NTFS se debe utilizar fsck.ntfs:
**********************************************************
Nota al respecto:
ntfsfix que es una utilidad del paquete ntfsprogs  que ya está disponible con una instalación estándar de Ubuntu.

Usted puede hacer un enlace simbólico entre fsck.ntfs y ntfsfix :

sudo ln -s /usr/bin/ntfsfix /sbin/fsck.ntfs
sudo ln -s /usr/bin/ntfsfix /sbin/fsck.ntfs-3g

Usted puede contar más en las herramientas basadas en Linux para recuperar su instalación y datos que las herramientas basadas en Windows de Windows.
También he experimentado que Linux te permite hacer cosas como poner signos de interrogación en sus nombres de archivo; esto está oficialmente permitido por las normas de NTFS, pero aquí está la broma: el controlador de Windows no lo soporta!

Me gustaría apuntar a otras utilidades "Linux-based Rescue" / "Repair Live-CDs" (o USB)"
Fin de Nota al respecto
**********************************************************


dosfsck - comprobar y reparar sistemas de archivos MS-DOS
**********************************************************
fsck.msdos -awvV /dev/sd1b
**********************************************************

Explicación de los parámetros utiliazados:

-a: Reparar automáticamente el sistema de archivos. Sin la intervención del usuario es necesario.
Cada vez que hay más de un método para resolver un problema,Se utiliza el método menos destructivo.

-w: Escribir cambios en disco inmediatamente.

-v: modo detallado. Genera un poco más de salida.

-V: Realizar un pase de verificación. La comprobación del sistema de archivos se repite después de la primera ejecución. El segundo paso nunca debería reportar algún error corregibles.
Puede tomar mucho más tiempo que la primera pasada, porque la primera pasada puede haber generado larga lista de modificaciones que tienen que ser escaneada para cada lectura de disco.


La salida del comando muestra lo siguiente, dependiendo de cuan dañado esté el sistema de archivos:

**********************************************************
dosfsck 3.0.9 (31 Jan 2010)
dosfsck 3.0.9, 31 Jan 2010, FAT32, LFN
Checking we can access the last sector of the filesystem
There are differences between boot sector and its backup.
Differences: (offset:original/backup)
  65:01/00
  Not automatically fixing this.
Boot sector contents:
System ID "THREES  "
Media byte 0xf8 (hard disk)
       512 bytes per logical sector
      8192 bytes per cluster
        32 reserved sectors
First FAT starts at byte 16384 (sector 32)
         2 FATs, 32 bit entries
   7570432 bytes per FAT (= 14786 sectors)
Root directory start at cluster 2 (arbitrary size)
Data area starts at byte 15157248 (sector 29604)
   1891673 data clusters (15496585216 bytes)
63 sectors/track, 32 heads
        63 hidden sectors
  30296385 sectors total
Starting check/repair pass.
Cluster 1470591 out of range (228497476 > 1891674). Setting to EOF.
Cluster 1470593 out of range (15148248 > 1891674). Setting to EOF.
Cluster 1470595 out of range (33642170 > 1891674). Setting to EOF.
Cluster 1470597 out of range (50061838 > 1891674). Setting to EOF.
Cluster 1470599 out of range (5006860 > 1891674). Setting to EOF.
Cluster 1470601 out of range (5849983 > 1891674). Setting to EOF.
Cluster 1470603 out of range (213087397 > 1891674). Setting to EOF.
Cluster 1470605 out of range (112942055 > 1891674). Setting to EOF.
Cluster 1470607 out of range (183090718 > 1891674). Setting to EOF.
Cluster 1470609 out of range (34862787 > 1891674). Setting to EOF.
Cluster 1470611 out of range (133720333 > 1891674). Setting to EOF.
Cluster 1470613 out of range (50845958 > 1891674). Setting to EOF.
Cluster 1470615 out of range (90824247 > 1891674). Setting to EOF.

**********************************************************

Al finalizar, la herramienta fsck.msdos ha reparado el sistema de archivos y es posible desconectar y reconectar el dispositivo para asegurarse de que sea montado, como corresponde.

**********************************************************

Por otro lado... si queremos formatear de manera total nuestro pendrive:

**********************************************************
sudo mkfs.vfat -F 32 -n Mi_Memoria /dev/sdc1
**********************************************************

Con la opción -F 32 le decimos que será formateada como Fat32, y con la opción -n le ponemos una etiqueta o nombre al dispositivo.
¿Sencillo verdad?

Edito: Se me olvidaba decir que para ejecutar esta operación, el dispositivo tiene que estar desmontado.






jueves, 30 de agosto de 2012

Conky-HTC v1.2 (Actualización)


 
Pequeña actualización para mostrar recursos de memoria y discos .











# -- Conky settings -- #
    background no
    update_interval 1

    cpu_avg_samples 2
    net_avg_samples 2

    override_utf8_locale yes

    double_buffer yes
    no_buffers yes

    text_buffer_size 2048
    imlib_cache_size 0

    # -- Window specifications -- #

    own_window yes
    own_window_type desktop
    own_window_transparent yes
    own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
    own_window_argb_visual yes

    border_inner_margin 0
    border_outer_margin 0

    minimum_size 310 310
    maximum_width 310
    

    alignment tr
    gap_x -20
    gap_y 10

    # -- Graphics settings -- #
    draw_shades no
    draw_outline no
    draw_borders no
    draw_graph_borders yes
    default_bar_size 70 4

    # -- Text settings -- #
    use_xft yes
    xftfont MaiandraGD:size=24
    xftalpha 0.4

    uppercase no

    default_color 8b8b8b

         TEXT
${voffset 30}${font Helvetica LT Std :style=Condensed:size=60}${color 434343}${goto 40}${time %H}${goto 140}${color 434343}${time %M}${font Helvetica LT Std :size=15:style=condensed}${color 808080}${goto 225}${time %S}
${voffset 55}${color whitesmoke}${font Helvetica LT Std :size=8}${alignr 115}${time %A},${time %e} de ${time %B} de ${time %G}
${voffset -45}${goto 22}${font Helvetica LT Std :size=8}${color 909090}${execi 600 conkyForecast --location=ARSC0074 --datatype=CN --refetch}
#${voffset 8}${font Helvetica LT Std :size=10}${color 707070}${goto 24}Бургас
${font Helvetica LT Std :size=8}${color whitesmoke}${goto 24}${execi 1800 conkyForecast --location=ARSC0074 --datatype=CT}${voffset -10}${goto 200}${font Helvetica LT Std :size=25}${color d4d4d4}${execi 1800 conkyForecast --location=ARSC0074 -u
--datatype=HT}
${voffset 35}${font Helvetica LT Std :size=8}${color white}${goto 25}${execi 600 conkyForecast --location=ARSC0074 --datatype=HT -u --startday=1}/${color 707070}${execi 600 conkyForecast --location=ARSC0074 --datatype=LT -u --startday=1}${font Helvetica LT Std :size=8}${color white}${goto 70}${execi 600 conkyForecast --location=ARSC0074 --datatype=HT -u --startday=2}/${color 707070}${execi 600 conkyForecast --location=ARSC0074 --datatype=LT -u --startday=2}${font Helvetica LT Std :size=8}${color white}${goto 115}${execi 600 conkyForecast --location=ARSC0074 --datatype=HT -u --startday=3}/${color 707070}${execi 600 conkyForecast --location=ARSC0074 --datatype=LT -u --startday=3}${font Helvetica LT Std :size=8}${color white}${goto 160}${execi 600 conkyForecast --location=ARSC0074 --datatype=HT -u --startday=4}/${color 707070}${execi 600 conkyForecast --location=ARSC0074 --datatype=LT -u --startday=4}
${font Helvetica LT Std :size=8}${color 707070}${goto 25}${execi 600 conkyForecast --location=ARSC0074 --datatype=DW --shortweekday --startday=1}${font Helvetica LT Std :size=8}${color 707070}${goto 70}${execi 600 conkyForecast --location=ARSC0074 --datatype=DW --shortweekday --startday=2}${font Helvetica LT Std :size=8}${color 707070}${goto 115}${execi 600 conkyForecast --location=ARSC0074 --datatype=DW --shortweekday --startday=3}${font Helvetica LT Std :size=8}${color 707070}${goto 160}${execi 600 conkyForecast --location=ARSC0074 --datatype=DW --shortweekday --startday=4}
${voffset -10}${font Helvetica LT Std :size=8}${color 707070}${goto 205}${execi 600 conkyForecast --location=ARSC0074 --datatype=DW --shortweekday --startday=5}
${voffset -23}${font Helvetica LT Std :size=8}${color white}${goto 205}${execi 600 conkyForecast --location=ARSC0074 --datatype=HT -u --startday=5}/${color 707070}${execi 600 conkyForecast --location=ARSC0074 --datatype=LT -u --startday=5}
${voffset 35}${goto 25}${color lightgrey}CPU 0: ${color #fffd00}${cpu cpu0}${color #ffffff}%${goto 95}${color lightgrey}CPU 1: ${color #fffd00}${cpu cpu1}${color #ffffff}%${goto 165}${voffset -7}${color}${cpugraph 15,70 000000 fffd00}
${voffset 3}${goto 25}${color lightgrey}RAM: ${color #fffd00}$mem ${color}/${color #fffd00}$memmax ${goto 165}${color}${membar 4,70}
${voffset -2}${goto 190}${color #fffd00}$memperc${color}%
${voffset 3}${goto 25}${color lightgrey}SWAP: ${color #fffd00}$swap ${color}/${color #fffd00}$swapmax ${goto 165}${color}${swapbar 4,70}
${voffset -2}${goto 190}${color #fffd00}$swapperc${color}%
${voffset 3}${goto 25}${color lightgrey}/  : ${color #fffd00}${fs_used /} ${color}/${color #fffd00}${fs_size /} ${color}%${goto 165}${color}${fs_bar /}
${voffset -2}${goto 190}${color #fffd00}${fs_used_perc /}${color}%
${voffset 3}${goto 25}${color lightgrey}/home: ${color #fffd00}${fs_used /home} ${color}/${color #fffd00}${fs_size /home}${goto 165}${color}${fs_bar /home}
${voffset -2}${goto 190}${color #fffd00}${fs_used_perc /home}${color}%

${image ~/.images/base.png -p 12,30 -s 238x140}
${image ~/.images/base.png -p 12,190 -s 238x40}
${image ~/.images/base.png -p 12,240 -s 238x140}
${image ~/.images/base.png -p 12,240 -s 238x140}
${image ~/.images/flip_bg.png -p 30,10 -s 100x110}
${image ~/.images/flip_bg.png -p 130,10 -s 100x110}
${execpi 600 conkyForecast --location=ARSC0074 --template=~/.vreme.template}

lunes, 11 de abril de 2011

Mi Angel

Jugando al handball con sus compañeras del colegio.
Parece que un diablito se metió en mi filmadora...

^^)



El clip fue elaborado enteramente con Software Libre (Avidemux y OpenShot)
Aqui algunas capturas de pantalla de los programas:

lunes, 13 de diciembre de 2010

El clima con Pidgin (Actualización con reporte del viento y sensación térmica)


Una pequeña actualización para
la barra de status de Pidgin.










Ahora además de la temperatura, tambien nos da un reporte de la velocidad del viento.
¡Que por cierto hoy aqui en Río Gallegos tenemos un verdadero temporal de viento,
96 Km/h con ráfagas de 120Km/h !!!




aquí el bloque de código para el script en Python (ejecutado desde una consola)


#!/usr/bin/env python
# -*- coding: utf-8 -*-
import dbus,time,commands,string,sys

# Autor: Julio Alberto Lascano
# web: https://drcalambre.blogspot.com
# Fecha: 15 Diciembre de 2010
# requiere: python, weather-util
# web clima = http://www.weather.gov/tg/siteloc.shtml

# python por defecto considera que los caracteres con los que trabajamos son formato ASCII de 7 bits (ni siquiera el extendido). 
# Por supuesto, en estos tristes 7 bits no entran ni la ñ ni los acentos, ni un montón de caracteres más. 
# Es por esto que nosotros los hispano hablantes necesitamos decirle a Python que hay más caracteres y que los queremos interpretar :D
# Para esto hacemos: -*- coding: utf-8 -*-


def set_status(message):
  bus = dbus.SessionBus()
  obj = bus.get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject")
  purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface")
  current = purple.PurpleSavedstatusGetType(purple.PurpleSavedstatusGetCurrent())
  status = purple.PurpleSavedstatusNew("", current)
  purple.PurpleSavedstatusSetMessage(status, message)
  purple.PurpleSavedstatusActivate(status)

while True:
  horaFecha = commands.getoutput("date +'%H:%M %d/%m/%Y'")
  reporteClima = string.split(commands.getoutput("weather -vi SAWG"),'\n')
  tamanio = len(reporteClima)
  for i in range(0, tamanio):
   if string.find(reporteClima[i],"Temperature:") == 0:
    idTemperatura = i
   elif string.find(reporteClima[i],"Pressure") == 0:
    idPresion = i
   elif string.find(reporteClima[i],"Windchill:") == 0:
    idTermica = i
   elif string.find(reporteClima[i],"Wind:") == 0:
    #El viento está en calma?
    if string.find(reporteClima[i],"Calm") == 6:
     velocidadViento = 0
     posRafagasStar = 0
     rafagas = 0
    else:
     idViento = i
     tamanioidViento = len(reporteClima[idViento])
     posVientoStar = int(string.find(reporteClima[idViento],"at"))
     posVientoEnd = int(string.find(reporteClima[idViento],"MPH"))
     posRafagasStar = int(string.find(reporteClima[idViento],"gusting to"))
     # 1 MP/H = 1.609 KM/H
     velocidadViento = int(float(reporteClima[idViento][posVientoStar+3:posVientoEnd-1])*1.609)
     if posRafagasStar > 0:
      rafagas = int(float(reporteClima[idViento][posRafagasStar+11:posRafagasStar+13])*1.609)
     else:
      rafagas = 0
  temperatura = int(reporteClima[idTemperatura][string.find(reporteClima[idTemperatura],"(")+1:string.find(reporteClima[idTemperatura],")")-1])
  try:
   termica = int(reporteClima[idTermica][string.find(reporteClima[idTermica],"(")+1:string.find(reporteClima[idTermica],")")-1])
  except NameError:
   termica = 0
  try:
   presion = reporteClima[idPresion][string.find(reporteClima[idPresion],"hPa")-5:string.find(reporteClima[idPresion],"hPa")-1]
  except NameError:
   presion = 0

  if temperatura > 15:
   carita = r"(=^.^=) "
  elif temperatura <= 15 and temperatura >= 10:
   carita = r"^_^'' "
  elif temperatura <= 9 and temperatura >= 5:
   carita = r"^^) "
  elif temperatura <= 4 and temperatura >= 1:
   carita = r"(O.o) "
  elif temperatura == 0:
   carita = r"(Y_Y) "
  elif temperatura <= -4 and temperatura >= -1:
   carita = r"(>.<) " 
  else:
   carita = r"(+_+) "
  
  try:
   if velocidadViento == 0:
    set_status(carita+'Río Gallegos: '+str(temperatura)+'°C - Viento: En calma - Presión atmosférica: '+presion+' hPa. - '+horaFecha)
   else:
    if termica == 0: 
     if rafagas > 0:
      set_status(carita+'Río Gallegos: '+str(temperatura)+'°C - Viento: '+str(velocidadViento)+' Km/h (ráfagas de '+str(rafagas)+'Km/h) - Presión atmosférica: '+presion+' hPa. - '+horaFecha)
     else:
      if presion > 0:
       set_status(carita+'Río Gallegos: '+str(temperatura)+'°C - Viento: '+str(velocidadViento)+'Km/h - Presión atmosférica: '+presion+' hPa. - '+horaFecha)
      else:
       set_status(carita+'Río Gallegos: '+str(temperatura)+'°C - Viento: '+str(velocidadViento)+'Km/h - '+horaFecha)
    else:
     if rafagas > 0:
      set_status(carita+'Río Gallegos: '+str(temperatura)+'°C - Térmica: '+str(termica)+'°C - Viento: '+str(velocidadViento)+' Km/h (ráfagas de '+str(rafagas)+'Km/h) - Presión atmosférica: '+presion+' hPa. - '+horaFecha)
     else:
      set_status(carita+'Río Gallegos: '+str(temperatura)+'°C - Térmica: '+str(termica)+'°C - Viento: '+str(velocidadViento)+' Km/h - Presión atmosférica: '+presion+' hPa. - '+horaFecha)
  except NameError:
   set_status(carita+'Río Gallegos: '+str(temperatura)+'°C - Viento: '+str(velocidadViento)+' Km/h - Presión atmosférica: '+presion+' hPa. - ['+horaFecha+']')
  time.sleep(300)



aquí el enlace para descargar la actualización:
Descargar (4 KB)

Para entender como configurar el resto leer el post anterior aqui:
http://drcalambre.blogspot.com/2010/06/como-el-clima-con-pidgin.html

miércoles, 24 de noviembre de 2010

Tips para lograr que pidgin 2.7.7 conecte con MSN

Bajar estos archivos:

Microsoft_Internet_Authority_2010.pem

y

Microsoft_Secure_Server_Authority_2010.pem

Grabarlos en:

Windows

  • C:\Program Files\Pidgin\ca-certs (o C:\Program Files (x86)\Pidgin\ca-certs según sea lo apropiado)
  • Reiniciar Pidgin

Linux

  • /usr/share/purple/ca-certs (o /usr/local/share/purple/ca-certs según sea lo apropiado)
  • Reiniciar Pidgin

Gracias a Kaurin/SQuID por publicar esta solución.

pidgin 2.7.7 sigue dando error con el certificado de microsoft.

A pesar de que he borrado todos los certficados no logra conectar.
También he borrado de menera completa .purple pero el problema persiste.

jueves, 18 de noviembre de 2010

Pidgin y el certificado "omega.contacts.msn.com"


Si tienes problemas para iniciar la sesión en MSN (también conocido como Windows Live Messenger) en Pidgin, hay una buena probabilidad de que se debe a que el certificado de omega.contacts.msn.com ha caducado.


Por suerte la solución es fácil:



Actualizar a pidgin 2.7.7 para corregir la cuestión de certificado MSN y permite entradas al sistema MSN múltiples.




miércoles, 13 de octubre de 2010

campaña: SOMOS MAS DEL 1%

Con esta iniciativa, en DudaLibre.com pretendemos desmentir las estadísticas de ciertas organizaciones y prensa que aseguran que el uso de GNU/Linux no supera el 1% y que no ha avanzado apenas en estos últimos años a nivel de escritorio.

Si quieres ayudarnos a cumplir esta meta, por favor, participa en nuestra estadística!

http://www.dudalibre.com/gnulinuxcounter

miércoles, 23 de junio de 2010

Como: El clima con Pidgin


Pidgin (anteriormente llamado Gaim) es un cliente de mensajería instantánea multiplataforma capaz de
conectarse a múltiples redes (multiprotocolo)
y cuentas (multicuenta) de manera simultánea.

Se estimó que alrededor de 3 millones de personas usaron Pidgin en 2007. Con GNU/Linux lo uso habitualmente.

Mediante Python (un poderoso lenguaje) se puede hacer aparecer lo que queramos
en la barra de estado de pidgin.

Para ello nos valemos de D-Bus (un bus de mensajes, utilizado para el envío de mensajes entre aplicaciones.) y weather-util (una utilidad para las consolas que nos
da el estado del clima.

La instalamos de la siguiente manera:

$ sudo aptitude install weather-util


Esta utilidad trabaja desde la consola y su sintaxis para ver el clima en Río Gallegos (Argentina) seria ésta:

weather -i SAWG

Como se puede ver la estación meteorológica para Río Gallegos es "SAWG".

Para obtener las estaciones de otras ciudades nos vamos a el siguiente sitio
en la web:
www.weather.gov/tg/siteloc.shtml

Ahí elegimos la opción "Display All Stations In a Country"


Que para Río Gallegos dió como estación meteorológica la de nuestro aeródromo

Rio Gallegos Aerodrome (87925, SAWG)



Con esto ya solo queda bajarse el siguiente script de python:

clima-pidgin.py

En la línea número 27 hay que modificar el código para adaptarlo a la estación meteorológica que corresponda con nuestra ciudad.


Solo resta iniciar Pidgin. Luego desde la consola ejecutamos el script.



y... voilá! A gozar del clima con nuestros contactos.


Je je je... que en Río Gallegos está haciendo frío!!!!