Desarrollo de aplicaciones para GNU/Linux

Atendiendo el llamado de Canonical para que aumentemos las aplicaciones para GNU/Linux, en lugar de estar creando distribuciones redundantes, me enlisté como soldado raso en sus filas y comencé a hacer mis primeros pinitos en Python. Aquí les explico mi experiencia con esto del desarrollo de aplicaciones para GNU/Linux.

Soy novato en Python. Vengo de desarrollar típicos sistemas de información con PHP y MySQL. También administro sitios web con WordPress. Me ha costado un poco encajarme dentro del lenguaje de este ofidio, pero es normal cuando salimos de la zona de confort. Lo importante es que me ha gustado muchísimo!

El primer ensayo que hice con wxPython y wxGlade.

Mi primer tiro


Mi plataforma de trabajo siempre ha sido GNU/Linux, específicamnete Ubuntu, o cualquier derivado de Debian. Y como trabajo administrando sitos web y posicionándolos con sus respectivos SEO, sé que son escasas las herramientas en GNU/Linux para optimizar de forma masiva las imágenes que subimos a Internet. No, no debemos ir subiendo fotos o imágenes recién tomadas de un celular con 15 megapixeles de cámara, pues quedan muy pesadas para un hosting básico (y menos si se abren desde un celular), y eso también cuenta para el posicionamiento SEO con Google.

Sí, sé que hay herramientas para Linux sobre el tema, pero la mayoría son de línea de comandos (yo estoy dispuesto a usarlas, pero la mayoría no). También las hay con ventanas gráficas, como ImCompressor, pero a veces estas soluciones vienen de Snap y todo sabemos que Snap es una porquería. Incluso podemos usar GIMP para este propósito, pero hasta donde sé solo permite hacerlo de uno en uno.

Entonces, como soldado raso, defin√≠ que mi primer objetivo ser√≠a una herramienta para reducir el tama√Īo de los archivos de im√°genes en forma masiva, que funcione en sistemas basado en Debian y que fuera usable desde ventana.

desarrollo de aplicaciones para gnu/linux

Desarrollando el Reductor de Im√°genes Sencillo – RIS


Así bauticé mi primer desarrollo en Python, Reductor de Imágenes Sencillo РRIS. Yo ya venía conociendo a Python unos meses atrás; sus variables, sus bucles, sus tuplas. Sin embargo, para este objetivo necesitaba una cosa más, una interfaz gráfica.

Entonces investigu√© cu√°l de todos los frameworks o bibliotecas existentes podr√≠an ser lo m√°s ¬ęamigable¬Ľ con un advenedizo como yo, y que pudiera ayudarme ¬ęf√°cilmente¬Ľ con mi objetivo.

Definiendo el entorno de desarrollo


Pensé en PyQT, y a pesar de que es un binding de la biblioteca gráfica QT, por ahí los de QT Company, propietaria de tecnologías QT, han venido cambiando las normas del uso del marco de trabajo QT. O sea, no sé a futuro que repercusión tenga en mi desarrollo las decisiones que tomen con el licenciemiento de PyQT. Mejor dicho, no me voy a arriesgar.

desarrollo de aplicaciones para gnu/linux

Fue entonces cuando me decid√≠ por wxPython 4 (tambi√©n llamado Phoenix Project), un binding de wxWidgets y lo complement√© con wxGlade, un dise√Īador de GUI para wxPython.

desarrollo de aplicaciones para gnu/linux

En materia


Entrando en materia, comencé instalando wxPython y wxGlade.

_$ sudo apt install python3-pip
_$ sudo apt install python-gtk2-dev
_$ sudo apt install libwxgtk3.0-dev libwxgtk-media3.0-dev meson
_$ sudo apt-get install build-essential libgtk-3-dev
_$ sudo apt install python3-wxgtk4.0
_$ sudo pip3 install wxpython

A wxGlade lo podemos descargar desde su sitio oficial.

Después de una semana de trabajo, por fin el programa está listo, totalmente funcional para reducir de forma masiva el peso de las imágenes:

Su funcionamiento es muy f√°cil, seleccionamos el directorio origen, donde se ubican las im√°genes a reducir. Luego seleccionamos el directorio donde vamos a colocar las im√°genes reducidas. Con el slider ajustamos la nueva calidad de nuestras im√°genes.

La reducción en la calidad se traduce en una reducción del peso de esos archivos. Entonces, la reducción del peso del archivo está relacionado con la reducción de la calidad, pero no en el mismo porcentaje.

Aquí las imágenes originales antes de la reducción.

Aquí las mismas imágenes después del proceso de reducción. Empero que la reducción de la calidad fue de un 41%, la reducción del peso de los archivos fue de entre 80 y 90%.

Aquí la parte más importante del Software Libre, el programa y su código:

https://espaciotecnologico.co/reductordeimagenes.py

El código viene bien comentado, explicando la función de la mayoría de sus fragmentos. Agradecería que personas como tu lo mejoren, por ejemplo, adicionándole una función para reducir imágenes en formato PNG. Yo lo intenté, pero los módulos para reducir PNG no reducen con mucha profundidad.

La plantilla de wxGlade

https://espaciotecnologico.co/reductordeimagenes.wxg

Cada segmento de c√≥digo generado con wxGlade es delineado por dos etiquetas propias del dise√Īador GUI, as√≠:

# begin wxGlade…

código

# end wxGlade

Cada vez que insertemos c√≥digo nuevo que no sea desde wxGlade, debemos ponerlo fuera de ese delineado, de lo contrario se nos borrar√° cada vez que guardemos alg√ļn cambio desde wxGlade.

Creando el instalador para nuestros desarrollos de aplicaciones para GNU/Linux


Para compartir f√°cilmente nuestros proyectos desarrollados con estos lenguajes, es necesario crearles un instalador. Aunque existen varias utilidades para tal fin, yo me decanto por dos: pynstaller y Debreate.

Con pyinstaller podemos hacer que nuestro proyecto quede convertido en un solo ejecutable, así:

_$ pyinstaller --onefile reductordeimagenes.py

Sin embargo, el ejecutable queda pesado, porque se entrega con todas la librerías y complementos dentro del mismo. Y si vamos a crear instaladores de proyectos elaborados con estos mismos lenguajes, va a ser una redundancia las mismas librerías dentro de cada proyecto, que ocuparían espacio innecesario en disco.

Con Debreate el procedimiento es un poco m√°s largo, pero el instalador queda m√°s peque√Īo, ya que solo contiene el script de nuestro proyecto. Adem√°s el instalador se encarga de descargar e instalar las librer√≠as y complementos que necesita nuestro proyecto, mismas que pueden compartir para m√°s proyectos del mismo lenguaje.

En este link pueden ver el procedimiento para crear un instalador para distribuciones tipo Debian con Debreate.

El instalador del Reductor de Imagénes РRIS:

Y eso es todo.

Valora este artículo:

Desarrollo de aplicaciones para GNU/Linux
0,0 rating based on 12.345 ratings
Overall rating: 0 out of 5 based on 0 reviews.

 

Name
Email
Review Title
Rating
Review Content

 

 

 

Comparte esto en
Publicado en GNU Linux.