Navegando por
Etiqueta: código abierto

Google Drive Uploader & Explorer Tool v1.13 ya está disponible

Google Drive Uploader & Explorer Tool v1.13 ya está disponible

Hola a todos,

Hoy, he publicado la versión 1.13 de Google Drive Uploader & Explorer Tool:

Google Drive Uploader & Explorer Tool v1.13 (Spanish)

Esta versión contiene los siguientes cambios:

  • La generación de los «RAW Urls» ha sido arreglada.
  • Se pueden generar links de descargas de carpetas.
  • Se pueden generar scripts que usen cURL (Compatible con MSYS2 y WSL).
  • Los APIs de Google han sido actualizados.

Puedes descargarla en GitHub haciendo click aquí.

¡Disfruten!

Colaborando en el proyecto exhale – Parte 2

Colaborando en el proyecto exhale – Parte 2

Hola a todos,

Ayer, comencé a trabajar en mi segunda colaboración para el proyecto exhale, el cual convierte archivos al codec xHE-AAC USAC. Esta vez, trabajé en añadir una opción para mostrar la versión del programa en la consola.

exhale-V-argument-main-software

La imagen de arriba muestra la salida del programa al no pasar ningún argument o al pasar un argumento incorrecto.

No existía una opción que imprima únicamente la versión. Idealmente, quería una manera de que el programa imprima la versión como por ejemplo exhale version 1.0.3 ..... para poder capturarla así como hago con otras herramientas como Opusenc y Flac. Debido a esto, comencé a trabajar en añadir esta funcionalidad.

El programa verifica si solo hay un argumento (en realidad hay 2 argumentos: el ejecutable del programa y el segundo que sería la de imprimir la versión). Luego, verifica si el argumento pasado es -v o -V. Si esto es cierto, imprimimos la versión del programa al usuario:

Este es el resultado:

La salida es muy simple. Gracias a esto, puedo capturarla y pasarla a mi herramienta en desarrollo exchale GUI:

Este «Merge Request» fue aprobado y fusionado al código fuente, y está disponible para el uso de todo el mundo. Sobre mi interfaz gráfica, pronto la publicaré.

Haz click aquí para ver el «Merge Request» en GitLab.

Mi primera contribución en GitLab: Convertidor exhale

Mi primera contribución en GitLab: Convertidor exhale

Hola a todos,

Ayer, estuve colaborando con el proyecto exhale para añadir compatibilidad para compilarlo usando MinGW en Windows.

Este proyecto es un convertidor de audio de código abierto que nos permite convertir archivos de audio WAV al codec xHE-AAC bajo el contenedor M4A.

Originalmente, el proyecto compila en Windows usando Visual Studio, pero al intentar compilarlo usando MSYS2/MinGW, nos daba problemas, específicamente esto:

H:/repos/media-autobuild_suite/build/exhale-git/src/app/../../src/app/exhaleApp.cpp: In function 'int main(int, char**)':
H:/repos/media-autobuild_suite/build/exhale-git/src/app/../../src/app/exhaleApp.cpp:246:85: error: '_SH_DENYWR' was not declared in this scope
  246 |     if (_sopen_s (&inFileHandle, inFileName, _O_RDONLY | _O_SEQUENTIAL | _O_BINARY, _SH_DENYWR, _S_IREAD) != 0)
      |                                                                                     ^~~~~~~~~~
H:/repos/media-autobuild_suite/build/exhale-git/src/app/../../src/app/exhaleApp.cpp:320:100: error: '_SH_DENYRD' was not declared in this scope
  320 |     if (_sopen_s (&outFileHandle, outFileName, i | _O_SEQUENTIAL | _O_CREAT | _O_EXCL | _O_BINARY, _SH_DENYRD, _S_IWRITE) != 0)
      |                                                                                                    ^~~~~~~~~~
make[1]: *** [../makefile.base:112: ../../build/exhaleApp.d.o] Error 1
make[1]: Leaving directory '/build/exhale-git/src/app'
make: *** [makefile:18: all] Error 2

También nos daba problemas por una definición de fprintf_s. Unos cambios tuvieron que hacerse en el código.

Para resolver el problema de que _SH_DENYRD no estaba declarado, tuvimos que añadir el header share.h:

Para resolver el problema de fprintf_s, cambié el bloque #ifndef a #if !defined para verificar adicionalmente si estamos compilando bajo MinGW. Si esto es cierto, no declaramos esta variable que apunta a la función fprintf:

Luego de realizar estos cambios, el programa compiló exitosamente.

Lo proximo que hice fue hacer unos cambios al archivo makefile.base para que el proyecto Media Autobuild Suite pasara las variables CXXFLAGS y LDFLAGS a exhale:

Estos cambios fueron aprobados y fusionados al proyecto.

Mi inspiración para añadir esta herramienta al Media Autobuild Suite fue debido a que un usuario pidió que esta herramienta fuese añadido. Trabajé para añadirlo y abrí un «Pull Request», el cual refiné aplicando unas recomendaciones.

Este «Pull Request» fue fusionado al suite y ahora todos los usuarios pueden compilar y usar esta herramienta.

Contribuciones

¡Nuevas actualizaciones! (9 de noviembre de 2019)

¡Nuevas actualizaciones! (9 de noviembre de 2019)

Hola a todos,

Hoy, he publicado actualizaciones para los siguientes programas:

  • Audio MD5 Checker v0.2
  • Google Drive Uploader & Explorer Tool v1.12.1
  • Opus GUI v1.15

Audio MD5 Checker v0.2

Audio MD5 Checker v0.2
Audio MD5 Checker v0.2

Esta nueva versión permite guardar la lista de resultados como un archivo CSV. También, verificará si ffmpeg existe antes de abrir la ventana.

Puedes descargar esta nueva versión haciendo click aquí.

Google Drive Uploader & Explorer Tool

Google Drive Uploader & Explorer Tool v1.12.1 (Spanish)
Google Drive Uploader & Explorer Tool v1.12.1 (Spanish)

Esta nueva versión actualiza los APIs de Google a sus más recientes versiones. También, añade una traducción que hacía falta.

Puedes descargar esta nueva versión haciendo click aquí.

Opus GUI v1.15

Opus GUI v1.15
Opus GUI v1.15

Esta nueva versión actualiza los APIs de Google a sus más recientes versiones.

Puedes descargar esta nueva versión haciendo click aquí.

¡Espero que disfruten estas nuevas actualizaciones!

¡Google Drive Uploader & Explorer Tool v1.12 disponible ya!

¡Google Drive Uploader & Explorer Tool v1.12 disponible ya!

Hola a todos,

En el día de hoy, he publicado la versión 1.12 de Google Drive Uploader & Explorer Tool:

Google Drive Uploader & Explorer v1.12
Google Drive Uploader & Explorer v1.12

Esta versión corrige un problema de iniciación, muestra un mensaje si el archivo client_secret.json o credentials.json no se encuentra, y actualiza los APIs de Google a sus versiones más recientes.

Puedes descargar esta nueva versión en GitHub oprimiendo aquí.

¡Disfruten!

Google Drive Uploader & Explorer Tool v1.11 ya está disponible

Google Drive Uploader & Explorer Tool v1.11 ya está disponible

Hola a todos,

Hoy, he publicado la versión 1.11 de Google Drive Uploader & Explorer Tool:

Google Drive Uploader & Explorer Tool v1.11
Google Drive Uploader & Explorer Tool v1.11

Esta versión mejora la experiencia de navegación, pues el código ha sido reescrito. También, los APIs de Google han sido actualizados a sus últimas versiones.

A continuación está la lista de cambios de esta versión:

  • Parte del código fue reescrito para mejorar el rendimiento y estabilidad del programa.
  • Los APIs de Google han sido actualizados.
  • El botón «Mover» es desactivado cuando se está moviendo un archivo o carpeta.
  • Ahora utiliza el .NET Framework 4.8.

Puedes descargar esta nueva versión en GitHub oprimiendo aquí.

¡Disfruten!

Scripts y herramienta actualizada para mostrar mis tareas de BOINC en mi página web

Scripts y herramienta actualizada para mostrar mis tareas de BOINC en mi página web

Hola a todos,

En el fin de semana, me dediqué a mejorar la sección de las tareas BOINC en mi página web:

BOINC Statistics Website Update 1

Ahora, en vez de actualizar manualmente la página cuando tenga un equipo nuevo, he hecho que el archivo PHP se encargue de mantener la lista y las tareas al día. También, como este estilo no lo tenía en GitHub, lo reescribí y lo publiqué ahí. Previamente, el único archio que existía era el que se ve así:

BOINC Statistics Website Update 2

Debido a que ese muestra todas las tareas de todos los equipos en una sola tabla, escribí otro archivo en el que se muestren las tareas de los equipos en tablas separadas. Para esto, escribí algunas funciones y «loops» para que se obtenga toda la información almacenada relacionadas a las tareas. El resultado es el siguiente:

¿Se ve mejor, verdad?

Veamos el código:

Primero, separé la información de la base de datos y ahora la misma se encuentra en un archivo llamado config.php. También, estoy usando un objeto mysqli el cual es accesible en estos archivos. Debido a estos cambios, el archivo orignal tuvo que ser actualizado:

BOINC Statistics Website Update 5

Luego de realizar estos cambios, procedí a escribir el nuevo archivo llamado boinc_tasks_per_machine.php:

BOINC Statistics Website Update 6

Tenemos 3 funciones en este archivo:

BOINC Statistics Website Update 7

function printMachinesLinks($mysqli)

Esta función obtiene las máquina almacenadas en la base de datos MySQL y es usada para imprimir la lista, la cual al presionarla, te lleva a la tabla de esa máquina.

function getTasksFromMachines($mysqli)

Luego de obtener la lista de las máquinas, llamamos a esta función la cual simplemente llama la próxima funcion para cada máquina.

function getTasksPerMachine($mysqli, $machine)

Esta función es la encargada de generar las tablas de cada máquina y también imprime el encabezado.

Ahora, podemos imprimir nuestra lista y tabla de máquinas usando estas 2 simples líneas:

printMachinesLinks($mysqli); 
getTasksFromMachines($mysqli);

La primera línea llama la función printMachinesLinls($mysqli) para imprimir la lista de máquinas y la segunda línea es la que obtiene las tareas y genera la tabla.

El programa que obtiene las tareas y las almacena en la base de datos

BOINC Statistics Website Update 8

También hice algunos cambios al programa de escritorio que obtiene las tareas y las almacena en la base de datos. Primero, convertí la rutina TruncateTablesen una función, returnandoTrue si tuvo éxito limpiando la tabla y False si no:

BOINC Statistics Website Update 9

También añadí un elemento NotifyIcon el cual muestra un ícono en el «system tray» de la computadora cuando se minimiza la pantalla. Así puedes minimizar el programa y se mantendrá ejecutando y populando la base de datos con las tareas. Tambien, añadi el argumento -s el cual gracias a él, podemos añadir una tarea en el «Task Shedule» de la computadora para iniciar el programa cada vez que encendemos el equipo y comienze a actualizar la base de datos:

BOINC Statistics Website Update 10

Luego, hice que el botón de obtener las tareas también funcione para parar el proceso:

BOINC Statistics Website Update 11

Y por último, limpié el código un poco:

BOINC Statistics Website Update 12

¡Y eso es todo! Mejoré el programa y el script en varias formas. Ahora la página se actualiza dinámicamente debido a estos cambios. ¡No tengo que añadir las máquina manualmente! Sólo las añado en el programa y el archivo PHP se encarga del resto.

Debido a que los archivos PHP son muy simples, podemos integrarlos en la página sencillamente copiando y pegando el contenido del mismo. En este caso, he integrado el archivo PHP en mi página web que usa Drupal.

Archivos PHP:

Los archivos PHP se encuentran aquí.

Ejemplo de integración:

Puedes ver el archivo integrado en mi página web aquí.

Repositorio:

El código de la herramienta y los archivos PHP se encuentran en GitHub aquí.

¿Qué debería hacer próximamente? Dejame saber en los comentarios

Posts anteriores:

  1. Post introductorio
  2. Versión 1.1
  3. Versión 1.2