viernes, diciembre 15, 2017

Liberar espacio de paquetes huérfanos, archivos temporales, etc... PACMAN

Cuando instalamos programas y/o actualizaciones, bastante a menudo se quedan instalados paquetes que ya quedan obsoletos y no se usan, por lo que quedan ocupando espacio innecesariamente. También los paquetes usados en las actualizaciones...
Este espacio puede llegar a ser muy grande después de mucho tiempo de uso del sistema, instalando, actualizando... para ello simplemente ¡ejecutamos los dos comandos siguientes y se liberará!
sudo pacman -Scc
Con este comando liberamos caché y base de datos.
Con el siguiente paquetes huérfanos:

sudo pacman -Rs $(pacman -Qtdq)
Un saludo y suerte!

Reducir tamaño archivo, redimensionar y calidad de imagenes en LINUX


En ocasiones nos encontramos ante la situación en la que una imagen o documento que las contenga, pesa demasiado para algún uso determinado. Debido a la calidad y/o el tamaño de una imagen, resulta que en la mayoría de las ocasiones (por ejemplo en fotos tomadas con cámaras o con moviles de buen MPx) el tamaño es tan grande que tenemos que escalarla, redimensionarla usando el editor de texto con el que redactamos, por ejemplo. Pero claro, esta opción sólo escala la imagen manteniendo la información original, pesando (hablando en MB/kB) lo mismo, aún viendo en papel un tamaño más pequeño. Por lo que resulta interesante cambiar el tamaño real de la imagen.

Ya que en la mayoría de las distribuciones viene instalado por defecto, usaré imagemagick, concretamente mogrify.
En resumidas cuentas, mogrify (a diferencia de convert) modifica sobreescribiendo el archivo que le indiques. Usando convert se crea uno nuevo modificado. Por tanto si no queremos perder el archivo original tenemos que hacer una copia de la imagen si trabajamos con mogrify.

Para saber un poco más sobre redimensionar y escalar una imagen, leer esta entrada relacionada.

Para redimensionar una imagen , jpg, png, gif, etc... a la mitad el comando sería:
mogrify -resize 50% archivo.extensión
Por tanto si abro un terminal en una carpeta donde se encuentra la imagen llamada imagen.jpg, y quiero redimensionarla al 50% reduciendo mucho su peso ejecutaría la instruccion siguiente:
mogrify -resize 50% imagen.jpg
Ahora podemos jugar con el valor en tanto que queramos ampliar o reducir más. O usar en vez de resize, scale como técnica. Obviamente también podemos combinarlo con -quality por si nos interesa también reducir la calidad y por tanto el peso del archivo de imagen.
mogrify -resize 50% -quality 50 imagen.jpg
Como resultado del anterior se tendrá una imagen reducida en tamaño y calidad a la mitad, al igual que una gran pérdida de peso del archivo.

Si es una tarea que necesitamos realizar muy a menudo, podemos incluirla en los comandos personalizados de nuestro gestor de archivos para tartar una o varias imagenes a la vez seleccionandolas y haciendo click derecho. En el ejemplo uso Thunar. Hay que tener en cuenta que normalmente en los comandos personalizados se usan parámetros como %f, %d, etc... por lo que el carácter % está reservado y como necesitamos usarlo para indicar cuanto queremos redimensionar (50% en el ejemplo) esto se solventa usando doble %, es decir los comando anteriores si queremos usarlos en los personalizados de Thunar quedaría, solo redimensionar a la mitad:
mogrify -resize 50%% %N
Para redimensionar y cambiar calidad será:
mogrify -resize 50%% -quality 50 %N

Al usar %N significa que podemos seleccionar varios archivos (tratamiento por lotes) a la vez y tratar las imagenes de una sola vez. Hay que seleccionar que el comando solo sea visible en los archivos de imagen como aparece en la captura siguiente.

Haremos esto para cada opción que queramos cambiando el comando en cuestión. Después de ello, al dar click derecho sobre una o varias imágenes saldrá la opciones que hemos creado.


Un saludo!

¿Redimensionar o Escalar una imagen?


Redimensionar o escalar es encojer o agrandar a un tamaño determinado la imagen original, independientemente de la calidad. La diferencia entre Redimensionado y escalado es cómo se trata la información de los pixeles a la nueva foto. Realmente es un proceso que depende del programa que se use, pero en lineas generales:
  • Redimensionado interpola al nuevo tamaño (y por tanto numero de píxeles concretos) la información de los pixeles a convertir con los de su alrededor
  • Escalar agranda o encoje los pixeles al nuevo tamaño y numero de píxeles.
En las fotos, sobretodo con gran cantidad de texturas y colores, no suele haber diferencia usar escalado o redimensionado ya que la "conversión" en ambos metodos tiene mucha densidad de colores.
En cambio cuando tenemos un cambio brusco de color, definido, como una linea, si se diferencia mucho, ya que usando escalado queda más cincelado (se aprecia donde termina el pixel de un color y otro) en cambio, al redimensionar ya que se hacen aproximaciones queda más uniforme aunque aparece más difuminado.

Como todo, el efecto deseado depende del uso, programas y la sensación que se quiera alcanzar.
En el ejemplo de la foto tenemos:
Arriba a la izquierda, la foto original. Mientras que las de abajo he usando redimensionado y las de arriba escalado para aumentar el doble (200%) y reducir a la mitad (50%) en cada caso. Observad los titulos y los pesos de cada archivo. Pulsar sobre las imagenes para ver más grandes.


Se puede concluir que usando el escalado la sensación es de más definición, en las lineas, más cincelado como las letras que aparecen. Pero perjudica en el efecto de resplandor que se ve ne la imagen.
Por contra, el redimensionado parece más difuminado en las lineas pero viene mejor en los efectos de resplandor.

Los comandos utilizados para hacer las transformaciones han sido:
mogrify -resize 50% imagen.png
Para el redimensionado y para el escalado:
mogrify -scale 50% imagen.png
Si se quiere más información leer:
ImageMagic, resize / scale.

Un saludo!

jueves, diciembre 14, 2017

UDS Client en Linux

Es posible que en nuestra empresa o universidad necesitemos conectarnos a un PC Virtual alojado en una determinada institución que requiera de UDS client para realizar la conexión. La propia instución nos facilitará, por medio del software de UDS Enterprise de Virtual Cable, los archivos/binarios para la instalación.

Hay que atajar dos puntos:
  • La instalación del programa UDS Client (UDSClient.py) 
  • Configuración del navegador para abrir direciones udss con UDSClient

Instalación de UDS Client.
En el caso que tengamos Debian, Red Hat, Suse y sus respectivas distribuciones, no tendremos mas que descargar e instalar sin problemas. Siempre que tengamos las versiones LTS o que satisfagan las dependencias (ni por debajo de la versión ni demasiado por encima como en versiones sid y ramas testing).
En el caso que haya problemas con la instalación o tengamos un sistema (como yo) basado en Arch Linux, Manjaro...etc...tendremos que instalarlo manualmente.

El instalador no copia los archivos en la carpeta correcta, por lo que necesita unos retoques.
Descargamos el archivo comprimido de la opción "Genérica" y descomprimmos en una carpeta sobre la que trabajaremos.
Dentro de la misma veremos un archivo llamado install.sh.
Abrimos con nuestro editor favorito y modificamos con el siguiente texto:

#!/bin/sh

cp -r usr/lib/UDSClient /usr/lib
cp -r usr/share/applications /usr/share
update-desktop-database
update-desktop-database /usr/share/applications/

echo "Installation process done."
echo "Remembar that the following packages must be installed on system:"
echo "* Python paramiko"
echo "* Python pyqt4"
echo "Theese packages (as their names), are dependent on your platform, so you must locate and install them"
echo "You can install them directly on any platform with pip, using this simple command: "
echo "pip install PyQt4 paramiko"

Guardamos el archivo y lo ejecutamos desde terminal con permisos de superusuario:
sudo sh install.sh

Evidentemente, ahora toca instalar las siguientes dependencias con vuestro gestor de paquetes habitual:

  • python-paramiko (>= 0.8.2)
    • En Arch Linux, Manjaro... instalar:
      • python-paramiko
      • python2-paramiko
  • python-qt4 (>= 4.9): 
    • En Arch Linux, Manjaro...se llaman:
      • python-pyqt4
      • python2-pyqt4
  • python-six (>= 1.1)
    • En Arch Linux, Manjaro... instalar:
      • python-six
      • python2-six
  • python (>= 2.7)
    • En Arch Linux, Manjaro... instalar:
      • python
      • python2
  • desktop-file-utils


Ahora es necesario instalar algún cliente de acceso remoto como por ejemplo
freerdp o si lo prefieres rdesktop desde vuestro gestor de paquetes.



Configurar navegador.
Ahora toca asociar las url udss con UDSClient.py cuando lo pregunte el navegador al abrir el enlace al PC Virtual en cuestión.

Si os abre sin problema el escritorio virtual en una nueva ventana, es que todo lo anterior está correcto y no necesitáis hacer nada más.

En caso contrario, lo más seguro es que se esté usando una versión de python "demasiado" reciente, por lo que:
Abrir vuestro gestor de paquetes para ver que versiones de python teneis disponible.
Si vuestro sistema tiene un paquete llamado python (a secas) con la versión 3 o mayor y a parte un paquete llamado python2 con la version 2.7... será necesario editar el .desktop de UDSCLient para que use python2.
Para ello, dentro de /usr/share/applications/ localizamos UDSCLient.desktop y lo editamos añadiendo python2 en la linea exec=, quedando de la siguiente manera:
Exec=python2 /usr/lib/UDSClient/UDSClient.py %u
Ya debería de abriros sin problema (probadlo!), pero no estará demás asegurar que se asocian las direcciones udss con UDSClient, para ello en configuración de Firefox -> Apliaciones, tenemos que ver algo como la captura siguiente, en caso contrario seleccionar manualmente.
En Chrome debemos asociarlo mediante asociaciones de programa de vuestro gestor de ventana. Al igual que seleccionais un lector pdf, o visor de imagenes predeterminado... en aplicaciones predefinidas del sistema.

Nota: usando freerdp o rdesktop podemos intercambiar entre el escritorio vitual y el nuestro usando: Ctrl+Alt+Enter
o sabiendo que Ctrl derecho habilita o deshabilita los hotkeys en uno u otro escritorio: Ctrl derecho y luego Alt+Tab

 
Google+