Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



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

viernes, 12 de febrero de 2016

Programa para descargar varios videos de youtube, con entorno gráfico hecho en gambas3: Front-End para youtube-dl


Programa para descargar varios videos de youtube, con entorno gráfico hecho en gambas3:

Front-End para youtube-dl 

Este programa lo hice hace bastante tiempo, y lo comparti en el blog de http://blog.desdelinux.net/front-end-para-youtube-dl-hecho-con-gambas3/, ahora lo subo al blog  para mostrar la última versión que hice, capaz de descargar varios videos y con barras de progreso de las tareas pendientes.

Os comento como instalarlo:

1) Descargar la ultima versión de youtube-dl., tal como se indica en esta página:

http://rg3.github.io/youtube-dl/download.html

A fecha de hoy, estos serían los comandos que hay que poner en la terminal:

$sudo curl https://yt-dl.org/downloads/2016.02.10/youtube-dl -o /usr/local/bin/youtube-dl

$sudo chmod a+rx /usr/local/bin/youtube-dl


2) Descargar el archivo .deb de mi aplicacion 



En este video tutorial os comento como usarlo:





Saludos


lunes, 22 de diciembre de 2014

Truco: Como Guardar (y Abrir) comprimidos los archivos de datos de nuestros programas

Truco: 

Como Guardar (y Abrir)  comprimidos 

los archivos de datos de nuestros programas


En este artículo, os comento como guardar datos de nuestros programas y luego abrirlos, comprimiendo los archivos. Aunque lo explico usando código de Gambas, es aplicable a otros lenguajes Python, Java, etc... Básicamente se trata de usar el comando del sistema tar,  y para que se entienda mejor, os haré la explicación de como lo hace el programa pintascreen.

El programa pintascreen, maneja los siguientes datos:
- Una imagen de fondo
- Un array de objetos del tipo "dibujo", que es el que contiene las diversas primitivas de dibujo, osea los objetos del tipo "marcador", "texto", "linea", "flecha", "chincheta", etc... que es lo que va dibujando el usuario.
- Una imagen miniatura de todo lo que ha dibujado, que la usa para mostrarla en el formulario de "abrir":

Os describo los pasos a seguir para Guardar los datos:

Los archivos que tenemos que guardar por cada captura son:
fondo.jpg: es la imagen del fondo
mini.jpg: es una imagen en miniatura de lo dibujado (incluyendo el fondo)
figuras.txt: es un archivo de texto plano, donde se guardan los datos de las figuras dibujadas (ancho, color, coordenada de inicio y fin, etc..)

Pasos a seguir:
0) Pedir la ruta y el nombre del archivo donde guardaremos los datos. Lo guardaremos en la variable "rutafichero"

1)  Generar los archivos, tanto la imagen de miniatura como el archivo .txt de las figuras dibujadas.
No entro en detalles, porque para cada programa será distinto, pero podeis ver como se hace en el pintascreen en el módulo: ModuleAbrirGuardar, en el método guardar().


2) Copiarlos en una ruta.
En nuestro caso, los vamos a copiarlo en el directorio /tmp/pintascreenGuarda/

3) Crear el tar.gz
Mediante el siguiente comando, vamos a crear el archivo comprimido que contenga los 3 archivos:

comando = "cd /tmp/pintascreenGuarda/;tar czvf \"" & File.Name(rutafichero) & ".tar.gz\" *"

Nota:Es muy importante que usemos "cd" para desplazarnos al directorio donde tenemos los archivos, y luego usar ";" para unir la siguiente orden (tar).

y lo ejecutamos con la orden Shell:

Shell comando Wait

4) Cambiamos la extensión .tar.gz por .pintascreen y lo movemos a la ruta seleccionada:

comando = "mv /tmp/pintascreenGuarda/" & File.Name(rutafichero) & ".tar.gz " & Rutafichero & ".pintascreen"
Shell comando Wait

5) Borrar archivos temporales.
Borraríamos los archivos que tendríamos en la carpeta "/tmp/pintascreenGuarda/":

 For Each nombrearchivo In Dir("/tmp/pintascreenGuarda/", "*.*", GB.File).Sort()
Kill "/tmp/pintascreenGuarda/" & nombrearchivo
Next

Así obtenemos un archivo con extensión .pintascreen, que realmente es un tar.gz, con los archivos de los datos comprimidos y empaquetado.


Pasos para Abrir los archivos .pintascreen
0)  Elegir el archivo que queremos abrir, lo llamaremos "rutafichero"

1) Creamos el directorio de trabajo, en nuestro caso lo llamamos "/tmp/pintascreenAbrir", y si no existe lo creamos:
If Not Exist("/tmp/pintascreenAbrir") Then
Mkdir "/tmp/pintascreenAbrir"
Endif

2) Borramos el contenido del directorio de trabajo, por si hubiésemos abierto otro archivo anteriormente.

'borrar archivos existentes
For Each nombrearchivo In Dir("/tmp/pintascreenAbrir", "*.*", GB.File).Sort()
Kill "/tmp/pintascreenAbrir/" & nombrearchivo
Next

3) Copiamos el archivo y lo descomprimirmos.

'copia el archivo y lo descomprime el archivo
Copy Rutafichero To "/tmp/pintascreenAbrir/" & File.Name(Rutafichero)
Shell "cd /tmp/pintascreenAbrir/;tar -zxvf \"/tmp/pintascreenAbrir/" & File.Name(Rutafichero) & "\"" Wait

Nota:
Es muy importante que usemos "cd" para desplazarnos al directorio donde tenemos los archivos, y luego usar ";" para unir la siguiente orden (tar).

4) Ya con los archivos descomprimidos, lo usaríamos en el programa, por ejemplo en el pintascreen, se cargaría el fondo, se leería el fichero de figuras.txt, para crear los objetos de dibujo.



Extracción de un archivo concreto:
Os dejo por ultimo, la forma de extraer un archivo en concreto, que es lo que uso para cuando estamos en el formulario de abrir, y nos muestra la miniatura. Se trata de usar el comando tag -zxvf indicándole la ruta donde queramos que se descomprima y el nombre del fichero que queramos extraer. Esto lo hago con el método "cargaImagen()", que esta en el módulo "ModuleAbrirGuardar"
Public Sub cargaImagen(Rutafichero As String) As Picture
'leer el archivo, lo descomprime, y carga la vista minuatura...Try Kill "/tmp/mini.jpg"
Shell "cd /tmp;tar -zxvf \"" & Rutafichero & "\" mini.jpg" Wait
If Exist("/tmp/mini.jpg") ThenReturn Picture.Load("/tmp/mini.jpg")ElseReturn NullEndif
End

Como veis, la función recibe el nombre (ruta incluida), del fichero que queremos ver si miniatura, y devuelve un objeto Picture.
Extrae el fichero mini.jpg (en la ruta /tmp) ,
Shell "cd /tmp;tar -zxvf \"" & Rutafichero & "\" mini.jpg" Wait

 y lo carga y devuelve
Return Picture.Load("/tmp/mini.jpg")

Si hay no lo encuentra, devuelve Null
Return Null

Por último os comento que seguramente existen otros métodos más óptimos y con mejor rendimiento para hacer esto, yo os lo comento para que veais la forma en que lo hago yo, y como lo he usado en varios de mis programas con éxito.

Nota:
El código fuente del programa pintascreen lo podéis descargar en:


martes, 19 de agosto de 2014

TPV: "Cortes" Gestión de Peluquería y pequeñas tiendas con Software Libre



TPV: "Cortes"

Gestión de Peluquería y pequeñas tiendas con Software Libre 


Este programa  lo he desarrollado para la Gestión de Peluquería y pequeñas tiendas usando el lenguaje de programación Gambas3. Es softwarelibre y gratuito, pero se agraden las donaciones, como la realizada por CamilosyAnexos.
 Es capaz de realizar los tickets o recibo de compras, calcular el cambio a entregar al cliente:



, contabilizar los consumos de productos, servicios realizados y cupones de ofertas, realizados por los clientes y empleados.

Los informes los pre visualiza en formato .pdf, que podemos guardar o imprimir.




Lleva también incorporado una agenda, con lo cual podemos apuntar las citas de los clientes:



Lo podéis obtener en la siguiente dirección:

En este blog, podéis ver capturas de pantallas, videostutoriales para su uso, enlace de descarga del programa, y un foro donde podéis participar comentando el programa.


Nota:
El programa esta realizado con Gambas3.5.4, para instalarlo visitad este enlace :