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:



lunes, 28 de febrero de 2011

Gambas2: Mi primer programa de base de datos SQLite3

A petición de un compañero del Foro de gambas-es.org, ivanovichenco,  he realizado unos videos haciendo uso de bases de datos ( SQLite3 ), es un ejemplo muy sencillo, siendo  la primera vez que hacia un programa que usa base de datos.

 He seguido (aunque simplificando el ejemplo) el manual de Daniel Calleja Amaro y Razaaztk, que lo podéis descargar en la sección de Manuales de este blog.

El programa puede:
   - introducir registros
   - editar registros
   - borrarlos
   - busquedas por distintos los distintos campos eligiéndolos con un combobox (ampliación del manual)
   - Operaciones con valores de los campos de registros (en este caso la fecha). (ampliación del manual)
   - Uso de un columnview




Enlace de descarga del código fuente del programa.

Enlaces de interés:

Manual de sqlite3 para gambas de Pablo Mileti

Web con un pequeño manual: /mini-tutorial-sqlite-zegaz

Nota:
Durante el video tube problemas con el formato de fecha y calcular la edad.
Davidoso100 me ha dado esta solución:

DIM FechaArray AS String[]
DIM FechaSql AS String
FechaArray = Split(TxtFecha.Text, "/")
FechaSql = FechaArray[1] & "/" & FechaArray[0] & "/" & FechaArray[2]
TxtFecha.Text = FechaSql

y esto para el columnview

Columnview[Clave][1] = Format(hResult["fecha"], "dd/mm/yyyy")

28 de febrero: Día de Andalucía

Yo soy andaluz.... y orgulloso de serlo.

Hoy es el día de Andalucía, la región del sur de España.

Somos conocidos por nuestra gracia y salero, y nos achacan que seamos vagos, perezosos, que nos gusta mucho las ferias (ver nota 1) y pocos dados a la iniciativa, por ejemplo de crear empresas.
Pero... ¿que esperáis de un pueblo que ha vivido de sus Señoritos durante siglos, para poder sobrevivir?. Esta fue y es, (y seguramente será) tierras de Terratenientes, a los que los campesinos-jornaleros  andaluces les pedían trabajo en sus tierras para poder llevar el pan a sus casas. Tanto es así que en nuestro himno dijo Blas Infante:
¡Andaluces, levantaos!
¡Pedid tierra y libertad!

Hoy en día, somos la región de España con más paro (cerca del 30%) , con más fracaso escolar 36 % de su población escolarizada, algunos parecen que saben que   cuanto más inculta sea un población más fácil será engañarla y someterla.

Hoy, hay pocas cosas que celebrar, nuestros políticos (los autonómicos de andalucía) no se bajan los sueldos porque dicen que es una minucia y no es representativo el ahorro que supondría...no hacen comisiones de investigación...¿por qué? ¿no les convienen o que temen lo que se pueda descubrir?... Mientras  que las familias andaluzas vive o mejor dicho mal vive, llegando a fin de mes gracias a las ayuda de sus padres y/o suegros con sus  pensiones o gracias a cáritas

Donde los bancos no paran de ganar dinero y sus balances son positivos, mientras que nuestras hipotecas nos axfisian, y lo único que te dicen:
"nosotros te vamos a ayudar.... mientras que sigas pagando" 
¿y si no puedo pagarte?   
"Pues.... pierdes tu casa."

Ahora a muchos le da por decir, "la solución es irse fuera, emigrar... a Alemania" 
¿será porque reconocen que son incapaces de levantar el pais, que no tienen soluciones, ni planes, ni idea que hacer....y que lo mejor es quitarse a gente del medio (sobre todo los que no tienen enchufes, porque a esos no les falta el trabajo)? 

Y los sindicatos ¿que hacen?...¿defienden a los trabajadores...? ¿que paso con los 67 años para la jubilación...? Pues se lo han tragado (y nos lo han hecho tragar a todos los trabajadores) Se han vendido por unos miseros milllones para cursillos....

Deje de creen en los sindicatos, cuando hace dos años, nos echaron (a todos los trabajadores) por un ERE y un trabajador le pregunta al sindicalista: ¿y ahora qué?,
y le contestó el sindicalista:"Tenemos un millón  de euros para hacer cursillos..."

¡¡¡ Como si los cursillos le fueran a dar de comer a la familia del trabajador....!!!

En fin... esperemos que el pueblo andaluz despierte de su letargo...... 

Feliz Día de Andalucía


Nota 1: 
Sobre el tema de la feria y lo que nos gusta a los andaluces. ... es curioso ver que cuando es feria en Sevilla (o la de  Málaga), se ponen más  trenes para traer a gente del resto de España a Andalucía porque quieren disfrutar de ella.... Todavía no he visto ningún tren especial que lleve a los andaluces a las feria de otras comunidades.....
































domingo, 27 de febrero de 2011

Usando ffmpeg: Convertidor a otros formatos de video gnu/linux


Usando ffmpeg...


Podemos convertir los archivos tipo .mpg a tipo .avi en nuestra terminal.


ejemplo de uso:


$ffmpeg -i test.mpg -y -f avi -b 1150 -s 320x240 -r 29.97 -g 12 -qmin 3 -qmax 13 -ab 224 -ar 44100 -ac 2 test.avi


Para mas información: manual de ffmpeg, escrito por iqpi aqui teneis un extracto del mismo:


[objetivos del manual]
  • Aprender a utilizar a fondo FFMPEG
  • Aprender a aplicar watermarks a nuestros vídeos
  • Automatizar la creación de nuestros vídeos. Desde la creación, hasta su publicación en youtube
[Material necesario]
  • svn
  • imagemagick
  • gimp
  • googlecl
  • Ganas de aprender
[Material del que os tenéis que deshacer]
  • Miedo a utilizar la consola de comandos. Es una herramienta muy potente. Aprovechemoslo.
Lo primero: La instalación de las herramientas.

Como buenos trabajadores que somos vamos a necesitar que nuestro taller (sistema) tenga las herramientas (programas) necesarias.

  • svn: nos servirá para bajar la última versión disponible de ffmpeg
Instalación: simplemente instalaremos el paquete svn

Una vez que hayamos instalado svn ejecutaremos los siguiente para obtener ffmpeg:

Código:
 svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
esto bajará la última versión disponible de las fuentes de ffmpeg.
A continuación nos cambiamos al directorio ffmpeg:

Código:
 cd ffmpeg
Una vez dentro del directorio hemos de configurar las opciones que queremos que tenga ffmpeg. Yo os aconsejo que las tenga todas, para ello ejecutamos lo siguiente:
Código:
./configure --enable-gpl --enable-libmp3lame --enable-libvorbis --enable-libfaac --enable-libxvid --enable-libx264 --enable-libvpx --enable-libtheora --enable-postproc --enable-shared --enable-pthreads --enable-x11grab --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libschroedinger --enable-libopenjpeg --enable-version3 --enable-nonfree --enable-runtime-cpudetect
A continuación ejecutamos: 
Código:
 make -jNumero_Nucleos+1
Dónde numero de nucleos + 1 como dice su nombre, es el número de núcleos de tu procesador + 1, si tienes un dual core entonces ahí pondrás 3, si tienes quadcore, entonces pondrás 5.

Esto permite que la compilación del programa utilice todos los núcleos del sistema, lo que hará que compilación sea mas rápida.

Después, como administrador ejecutas:

Código:
 make install
Para instalar ffmpeg.

Tras esto, FFMPEG quedará instalado y listo para poder usarse.
  • imagemagick
Instalamos el paquete imagemagick, lo necesitaremos para aplicar marcas de agua a nuestros vídeos.


  • Gimp
O cualquier otro programa de creación/edición de imágenes. Lo necesitaremos para crear nuestra marca de agua.
  • Googlecl
Este me ha llevado tiempo encontrarlo, pero es extremadamente útil pues nos va a permitir subir vídeos a youtube desde la línea de comandos.
Una vez que tenemos las herramientas. Pasamos a lo que realmente nos interesa. Aprender a utilizar ffmpeg.

  • ¿Cómo cambiar el formato de los vídeos?
¿Cuántas veces nos ha pasado que tenemos un vídeo que queremos subir a youtube y no hemos podido porque era muy pesado? ¿ o no queremos esperar media vida esperando a subir 2 gigas de vídeo con nuestras maravillosas conexiones?

La solución pasa por recodificar el vídeo a otro formato que comprima el vídeo y que no trastoque demasiado su calidad. ¿Cómo conseguir esto? desde la versión 0.6 podemos utilizar el contenedor .webm con vídeo codificado en VP8 y audio con theora ogg vorbis. Todo de código abierto.

Esto nos comprimirá el vídeo haciendo que ocupe menos, y manteniendo la calidad del vídeo. ¿Cómo hacerlo?

Código:
 ffmpeg -i Video_a_convertir -sameq Video_Convertido.webm
Tan simple como eso, con idicarle la extensión .webm FFMPEG ya sabe qué utilizar, y utilizará VP8 para video y vorbis para audio.

Explicación de opciones:

  • -i ---> Indica el Vídeo fuente original
  • -sameq ---> el vídeo de salida conserva la calidad del original (importante, seleccionar siempre) para evitar pérdidas.
  • Mas formatos de audio, vídeo y contenedores
Un vídeo no es mas que una sucesión de imágenes con una o varias pistas de audio, por lo que, para tener un único archivo multimedia necesitamos meter las imágenes y el audio en un contenedor.

  • Formatos de vídeo
Actualmente hay muchos, son los que codifican las imágenes. A día de hoy los que mas nos interesan son los siguientes:
  • mpeg4 --> admite aceleración por hardware
  • h264 ---> admite aceleración por hardware (cerrado)
  • x264 ---> igual que h264 pero abierto
  • VP8 --> alta calidad de código abierto (nuevo)
  • theora --> alta compresión de código abierto
Para forzar la utilización de un tipo de códec de vídeo utilizaremos la siguiente opción:
Código:
 -vcodec Codec_que_queremos
Si no sabemos qué códec utilizar, no pondremos nada, o pondremos:
Código:
 -vcodec copy
que utilizará el mismo códec que el video fuente.
  • Formatos de audio
Al igual que los formatos de vídeo, tenemos bastantes formatos de audio. ¿Cuáles nos interesarán mas a nosotros:
  • FLAC ---> no tiene pérdidas, admite multicanal, código libre
  • AAC ---> similar a FLAC pero no se si es libre.
  • ogg --> cuando queramos comprimir el audio, es el mas recomendado, código abierto.
Para forzar el uso de un determinado códec utilizaremos la siguiente opción:
Código:
 -acodec codec
Si no sabemos cual usar, no pondremos nada, o usaremos la opción 
Código:
 -acodec copy
  • Contendedores
Es dónde "estarán metidos" el vídeo y el audio. ¿Cuántos hay? Bastantes también, pero a día de hoy los mas relevantes son:
  • mkv--> admite FULLHD y es de código abierto
  • mp4--> admite FULLDH
  • webm --> admite FULLHD y es el ideal para vp8
Hasta no hace mucho, el contenedor flv era muy utilizado gracias a youtube, pero desde que youtube permite subir vídeos en .mkv, .mp4, y, recientemente en .webm, no tiene sentido que se siga utlizando .flv.

¿Cómo escoger contenedor? pues es tan fácil como poner la extensión de archivo adecuada, que quieres mkv, pues el fichero de salida será: video-de-salida.mkv
Y así con todos. Muy simple.

  • Cambiar la resolución de un vídeo:
Para cambiar a la resolución deseada basta con pasar la opción 
Código:
 -s [ancho]x[alto]
en pixels

Muchas veces querremos agrandar un vídeo. Por ejemplo, yo que tengo un monitor de 17" TFT de resolución 1280x1024 formato 5:4 me gusta que mis tutoriales estén disponibles en fullHD, de modo que para conseguirlo sería:

Código:
ffmpeg -i Video_Entrada -sameq -s 1920x1080 -aspect 16:9 video_salida
Dónde la opción -aspect detalla que la salida estará en formato panorámico.

Esto lo que hará será estirar la imagen con una calidad bastante buena y apenas se nota pérdida de calidad, en este caso. La pérdida de calidad se sitúa en el 10% que al ojo humano no se nota, lo que notaremos será que está un poco estirado. Pero la calidad será estupenda.

Para minimizar la pérdida de calidad, a mi me gusta utilizar esta opción:

Código:
-pix_fmt rgb48le
esto lo que hace es cambiar el formato del pixel, del original predeterminado que contiene solo 16 bits de información, por otro que contiene 48 bits de información.

Evidentemente, si tenemos un vídeo cuya resolución original es de 320x240, si pretendemos pasarlo a 1080 la pérdida de calidad va a ser mas que notable, a pesar de no haberlo probado personalmente, pero creo que me puedo aventurar.
  • Convertir un vídeo en imágenes
con este comando lograremos conseguirlo:
Código:
 ffmpeg -i Video -sameq -r 25 fotograma%d.png
explicación:
  • -r 25 establece los fotogramas por segundo, sacara 25 imagenes por segundo (podemos cambiar el valor a nuestro gusto)
  • fotograma%d.png la salida será fotograma1, fotograma2...., %d muestra una cuenta ascendente.
  • Convertir secuencia de imágenes en vídeo
Con el comando:
Código:
ffmpeg -i fotograma%d.png -sameq video.mkv
Tendremos un video hecho con imágenes pero sin audio.
Inconveniente Necesitaremos que las imágenes estén nombradas como fotograma1 fotograma2 ... en cuenta ascendente. No necesariamente ha de llamarse fotograma, puede ser 1 2 3 4 5 ... en ese caso, en lugar de hacer fotograma%d.png, hacemos:

Código:
 %d.png
  • Silenciar un vídeo
Con el siguiente comando, conseguiremos tener un vídeo sin sonido:
Código:
 ffmpeg -i VideoEntrada -sameq -an VideoSalida
  • Extraer audio de un vídeo
Si queremos extraer el audio para modificarlo, y luego reinsertarlo, entonces os recomiendo que lo extraigáis en FLAC para que no haya pérdida de calidad:
Código:
 ffmpeg -i video -sameq AudioVideo.flac
Si queremos extraer el audio del videoclip que nos han prestado para ponerlo como tono del móvil:
Código:
 ffmpeg -i Video -sameq -ab 320k audioVideo.mp3
Explicación de opciones extras:
  • -ab --> audio bitrate, cuanto mas grande mas calidad
  • Insertar Nuevo audio a un vídeo
Para ello debemos tener previamente un vídeo silenciado.
Código:
 ffmpeg -i Video -i NuevoAudio -sameq VideoConNuevoAudio
Hemos de tener en cuenta que el vídeo resultante será tan largo como lo que mas dure, es decir, si el audio es mas largo que el vídeo, tendrá la duración del audio, y viceversa.
  • Unir varios videos en uno
Para ello necesitamos primero convertir los vídeos a mpeg. Luego haremos:
Código:
 cat Video1 Video2....VideoN > VideoFinal
  • Acortar un video
Para esto tenemos 2 maneras: La primera se tratar de cortar un trozo del principio, es decir, queremos que el nuevo vídeo empiece en el segundo 26 del vídeo original. Para ello:
Código:
 ffmpeg -i VideoOrignal -sameq -ss 26 VideoFinal
Otra opción es que queramos que el vídeo dure 10 minutos justos entonces le pasaremos la opción -t 600
Código:
 ffmpeg -i VideoOriginal -sameq -t 600 VideoFinal
  • Grabar nuestro escritorio
Con el siguiente comando, conseguiremos grabar nuestro escritorio mientras que trabajamos con él, además, de grabar también nuestra voz por el micrófono para ir dando instrucciones.
Código:
 ffmpeg -async 1 -f alsa -i plughw:0,0  -f x11grab -pix_fmt rgb48le -r 25 -s [ancho]x[alto] -i :0.0 -b 25000k VideoSalida
explicación de opciones:
  • -async 1 --> hace que el audio y el vídeo vayan sincronos
  • -f alsa --> le decimos que queremos grabar desde un dispositivo alsa
  • -i plughw:0,0 --> así es como se identifica mi micrófono, el vuestro puede variar
  • -f x11grab --> esto le indica al programa que quiere grabar la X (entorno gráfico)
  • -pix_fmt rgb48le --> simplemente utiliza un pixel que puede almacenar mas información que uno "normal"
  • -r 25 indica que se tomarán 25 imágenes por segundo
  • - [ancho]x[alto] le dice el tamaño de la imagen, no puede ser mayor que la resolución de tu monitor.
  • -i :0.0 --> esta es la pantalla de la que se va a grabar, si solo tienes una, será identificada como aquí.
  • -b 25000k le estoy indicando que quiero un bitrate de 25000k


Y hasta aquí de momento, el uso "en bruto de ffmpeg" mas adelante os contaré como aplicar filtros, o lo mas interesante, dibujar marcos, o recortar los marcos de las películas.
Pero pasamos a:

Creación de nuestra watermark (marca de agua) 

Muchos os preguntaréis qué carallo es esto de la marca de agua. Os lo voy a explicar. Por desgracia para nosotros (creadores de contenido) hay muchos que se quieren aprovechar de nuestro trabajo cuando hacemos un vídeo para llevarse ellos el mérito, o llevarse las posibles ganancias.
La marca de agua lo que nos permite es "firmar" el vídeo digitalmente de modo que siempre se va a saber que es nuestro, pues la marca es imborrable.

Es como cuando ves una película en la televisión que aparece el símbolo de la cadena en la que la están echando.
Nosotros nos vamos a crear nuestro propio sello que evitará que otros se aprovechen de nuestro vídeo declarándonos autores insustituibles del material.
Esto no quiere decir que evitemos que otros usen nuestro vídeo, pero así todo el mundo sabrá quien es quien lo ha hecho.

Para ello con gimp por ejemplo nos vamos a crear una imagen de resolución igual a la de nuestro vídeo, pero con fondo transparente. Y en ella en una esquina, o dónde mas nos guste, pondremos nuestro logo, o lo que mas os guste a vosotros.
Consejo Debe ser lo suficientemente grande para que se vea, pero lo suficientemente pequeño para que no estorbe y estar colocado en una esquina preferiblemente.

Una vez que la tenemos, la guardamos como imagen PNG, por ejemplo logo.png

Después, utilizaremos el programa imagemagick para fusionar nuestro logo, con nuestro vídeo.
Pero con esto tenemos un problema:
Imagemagick solo permite fusionar imágenes, y una cada vez.

El proceso es el siguiente:

Código:
 composite -dissolve 100% -gravity south logo.png Imagen.png NuevaImagenConLogo.png
Entonces, ¿cómo lo hacemos con nuestro vídeo?
Fácil, vamos a extraer cada fotograma del vídeo y le vamos a aplicar a cada fotograma el logo, luego vamos a montar el vídeo de nuevo a partir de las nuevas imágenes.

Problema: Muy bien, pero un vídeo son 25 imágenes por segundo lo que implica que un vídeo de 10 minutos de duración son 25 x 60 x 10 = 15000 imágenes.
Aplicar a mano nuestro logo a 15000 imágenes es una barbaridad, y, por qué no decirlo, una jodida locura. Imaginemos que que ejecutarlo cada vez nos lleva 1 segundo siendo muy optimistas, tardaríamos 15000 segundos que en términos humanos son: mas de 4 horas sin parar. Y encima luego tenemos que montar el vídeo que para mas inri no tendrá sonido.

Pero por eso Dios bajó de los cielos y creó los scripts . A continuación, os voy a dejar un script que hace lo siguiente:

  1. Extrae el audio del vídeo original
  2. Convierte el vídeo a fotogramas
  3. Procesa cada fotograma y le aplica la marca de agua
  4. muestra una cuenta de cuántas imágenes lleva hechas del total, y calcula el tanto por ciento que lleva completado
  5. Monta el video a partir de las nuevas imágenes
  6. Inserta el audio al vídeo
  7. Borra toda la basura generada, es decir, todas las imágenes.
Y es el siguiente:

Código:
#!/bin/bash

ffmpeg -i VIDEO -sameq Audio.flac
ffmpeg -i VIDEO -sameq fotograma%d.png

ls *.png | grep fotograma > listado
mkdir NuevosFotogramas

NUMIMAGENES=$(ls *.png | grep fotograma | wc -l)
CONTADOR=0

while read IMAGEN
do
    PORCENTAJE_COMPLETADO=$(echo "$CONTADOR"*100/"$NUMIMAGENES" | bc )
    CONTADOR=$(echo "$CONTADOR" + 1 | bc )
    composite -dissolve 100% -gravity south logo.png "$IMAGEN" NuevosFotogramas/"$IMAGEN"
    echo "Procesadas "$CONTADOR" de "$NUMIMAGENES". "$PORCENTAJE_COMPLETADO"% Completo" 
done < listado

ffmpeg -i NuevosFotogramas/fotograma%d.png -sameq  VIDEO_CON-LOGO_NO-AUDIO.mkv
ffmpeg -i VIDEO_CON-LOGO_NO-AUDIO.mkv -i Audio.flac -sameq VIDEO_FINAL_CON-LOGO.mkv

rm -r NuevosFotogramas
rm -f fotograma*.png
rm -f listado
echo "ya esta todo terminado Presiona una tecla para salir"
read TECLA
Tenéis que tener en cuenta que donde pone VIDEO es vuestro video original y que el logo tiene que tener la ruta de dónde se encuentre vuestro logo
el resto no es necesario que lo toquéis.

Para que veáis el resultado, os voy a mostrar dos vídeos
Este primero no tiene huella digital

Y este es el resultado tras haber aplicado la marca de agua de la forma que os he explicado


AVISO: este proceso es bastante lento, puede demorarse fácilmente algunas horas para vídeos de una duración de 15 minutos.

ATENCIÓN En una nueva versión del script publicada un poco mas abajo se optimiza para trabajar utilizando todos los núcleos disponibles, estando optimizado para procesadores de 4 núcleos.
De esta forma el proceso en mi caso pasa de tardar mas de cuatro horas, a tardar una hora.

En una futura versión se optimizará para cualquier procesador. Pero dadme tiempo.

Y bueno, ya no me queda mas tiempo, en otro rato cuando pueda, os explico como modificar el script para que además, el propio script se encargue de colgar en vídeo en youtube sin que tengáis que hacer nada vosotros.

Espero que os sea de utlidad 






Saludos


Nota:
6/12/2011:
Convertir .avi a .mpeg
ffmpeg -i videoorigen.avi -target pal-dvd videofinal.mpg

sábado, 26 de febrero de 2011

Incluir un botón de traducción automática en vuestro blog

¿como poner vuestro blog en varios idiomas?

¿como pueden acceder personas que hablen en otros idiomas a tu blog?

Pues podemos usar este botón que utiliza google transalate para conseguir que nuestro blog "este escrito" en el idioma de la persona que nos este leyendo...

Aqui teneis el video donde describo como hacerlo:

Gambas2: Haciendo un Front-end para el comando find de gnu/linux

Una de las utilidades de Gambas2, es  usarlo como front-end (un entorno visual para un comando de la terminal).

En estos 5 videos, explico  como hacerlo para el comando find, que lo aprendí a usar en el curso de fpo de programador de sistemas.

Bien os resumo un poco de lo que tratan los videos:
- usar contenedores expander, Vbox, y Frame
- uso de un combobox
- uso de procesos (aunque al final no pude dar con la tecla para usarlo con find)
- Ejecutar Shell
- Redireccionamiento de salida de un comando ">"
- Crear la orden con distintas opciones (checkbox y valuebox,y usando If...then)
- Cargar los datos de un archivo a un gridviews.
- Copiar los datos del gridviews al portapapeles del sistema

Los videos son largos. Realmente, lo que hice fue grabarme mientras me hacia el programa, y no he eliminado los errores que cometo ni  las dediciones de cambiar de exec  a shell, al ver que no me funcionaba como yo esperaba el control de los  procesos.
Creo que así se puede aprender más y valorar realmente el esfuerzo y el tiempo que supone hacer un programa (aunque este apriori parezca sencillo).

Bueno os dejo aquí los enlaces a los videos (y también en la sección de video tutoriales aparecerán..)




Para descargar el código fuente: enlace

viernes, 25 de febrero de 2011

Varios juegos en Gambas: Tetris

Un amigo, me ha pasado un código fuente de un juego de tetris. En el código me he dado cuenta de que viene el autor Carlo Cominotti y su pagina web  http://comisat-games.sf.net. y me he llevado una gran sorpresa al encontrar en dicha página web varios juegos realizados en gambas, pero para la version 1.0, con lo cual habría que revisarlos para que funcionen bien en la versión actual de gambas2 (os dejo el codigo fuente de varios juegos, pero dan algunos errores y habrá que revisar su código...)

También, os dejo el codigo fuente del Tetris (que funciona perfectamente en gambas2). Nota los comentarios del codigo fuente están en italiano.


Gracias por tu aportación amigo.
Saludos

jueves, 24 de febrero de 2011

Foro Juanetebitel: gconf-editor: manual y ejemplo de uso cambiar botones de sitio

Del foro del Juantebitel, (muy bueno, recomiendo que lo visiteis):



(hilo: http://foro-ubuntu-guia.963965.n3.nabble.com/script-para-cambiar-de-lado-las-opciones-de-cerrar-ventanas-td1969086.html), hatteras, comenta una solucion de cambiar los botones maximizar, minimizar, cerrar, de sitio (izquierda <-> derecha), usando el gconf-editor.
Copio literalmente:

Solución para cambiar los botones de maximizar, minimizar, y cerrar, sin ningún script y tanto para 32bits como para 64bits.

Desde Gconf-editor ->Apps->Metacity->General->button layout podemos cambiar los botones a la derecha o a la izquierda, sin necesidad de ningún script:

left,maximize,minimize,close       y los botones estarán a la izquierda ( y podemos variar su orden )
right:maximize,minimize,close     y los botones estarán a la derecha  ( y podemos variar su orden )

Los botones de maximizar, minimizar y cerrar pueden estar a la derecha o a la izquierda, y podemos también cambiar el orden:
Gconf-editor ->Apps->Metacity->General->button layout: aquí ponemos el orden que queramos:
close, maximize,minimize
maximize, close, minimize
minimize, maximize,close    etc



Aquí un vídeo en ingles, pero lo importante es lo que se ve, que lo explica: http://www.univision.com/uv/video/Ubuntu-10.04%3A-Change-close-min-max-butto/id/3599718289


También comenta la dirección del manual de gconf-editor: http://library.gnome.org/users/gconf-editor/2.30/gconf-editor.html#when-you-start



martes, 22 de febrero de 2011

Revista: Todo Linux

Seguramente muchos la conoceréis, pero por si acaso os la voy a presentar.





"Todo Linux es una revista mensual especializada en GNU/Linux y software libre. Sale el día 29 de cada mes y está especialmente orientada a nuevos usuarios o personas que no tengan grandes conocimientos y deseen progresar en este sistema. Las más prestigiosas firmas del sector colaboran con Studio Press en la realización de una revista que desde el primer número se ha significado por ser la primera en proporcionar la mejor formación en software libre.
GNU/Linux está cambiando la informática actual y Todo Linux es la revista que lo cuenta y que lo explica. Linux es para todos y no solo para gurús. El precio de la revista es de 6,95 euros."

Es una publicación española, que como bien dice su presentación, que trata gnu/linux, de sus distribuciones, realiza pequeños cursos y talleres sobre programas de software libre, etc.

Esta es su dirección: http://www.iberprensa.com/todolinux/todolinux.htm
Si la revista "fisicamente" (cuesta revista+cd/dvd=6.95) no os llega a vuestro pais, la podeis comprar en .pdf (por 3 euros).


Para que podais comprobar la calidad de la revista, han realizado una seccion especial:
http://www.iberprensa.com/todolinux/articulos/linux_articulos.htm

donde se puede descargar o acceder libremente a reportajes y tutoriales publicados en la revista Todo Linux.


Bajo la licencia: 


Bueno, pues ya sabeis donde buscar una buena revista sobre gnu/linux, y encima nos dejan probar su calidad liberando parte de su contenido. Muy buena iniciativa y que siga durante mucho tiempo.

Saludos

lunes, 21 de febrero de 2011

Juego: Acertar un número

He hecho 4 videos explicando como realizar un pequeño juego, y asi de camino explicaba como guardar datos en un archivo, leerlo, usar un algoritmo (que lo habiamos dado en el curso que hago de fpo progrador de sistemas (enlace al ejemplo en C), usar un gridviews, para mostrar los datos...


Han salido un poco largos, pero creo que merece la pena que le echeis un vistazo (ya que comento errores y soluciones a los mismo, que me aparecieron mientras creaba el código).
Temas que trato en los videos:
          - como organizarte los formularios y modulos
          - explico como crear funciones, tener nº aleatorios.
          - crear a archivos de texto plano y guardar datos (registros).
          - uso de split, para recoger la información de los registros.
          - cargar datos en un gridviews (rejilla).





Espero que os guste y sea util. (tened un poco de paciencia porque son algo largos).

Para descargaros el código fuente del programa, pulsar aqui

Saludos.

htop: información de nuestro sistema.

Del foro http://foro-ubuntu-guia.963965.n3.nabble.com/Htop-peque-a-gran-aplicacion-td2540089.html, (foro del estupendo blog de juanetebitel) nos cuenta el usuario jose-r5 bcn:

" Para los que gustan de saber algo más de lo que pasa en nuestro PC. Y ver caracteres que nos informan del uso de la CPU, memoria RAM, SWAP, el tiempo desde que hemos iniciado sesión y procesos en ejecución.
Se instala mediante ( sudo apt-get install htop ) , y ya nos aparecerá en Aplicaciones--Herramientas del sistema--Htop. Si tecleamos la letra " h " , entenderemos mejor el significado de los colores de las barras indicadoras. A mí me sorprendió gratamente. Os lo recomiendo."


Aqui teneis un pantallazo:

Muy interesante, gracias por tu aporte.


Saludos

domingo, 20 de febrero de 2011

Poner un enlace + icono en vuestra web o blog

Seguramente muchos los sabréis, pero para el que no lo sepa, he hecho un video explicando como poner un enlace con su icono correspondiente de una página amiga en vuestro blog de blogger. (supongo que con pequeñas variaciones valdria para cualquier tipo de alojamiento de blogs).

Aqui lo tenéis:





Espero que os sea de utilidad.

Mapa de lugares Wifis y foneras

Paseando esta mañana a mis perros, estuve pensando que útil sería tener una web donde se  indicaran los lugares con wifi (cafeterias, hoteles, estaciones de servicios, etc...). Y claro me puse a buscar en San Google....

He encontrado este sitio: http://www.quewifi.es/

Que usa un mapa de google para ir colocando el icono donde estas las foneras y wifis. Y lo primero que me he buscado es en mi pueblo Dos Hermanas (Sevilla)


¡¡¡ Y vaya, no sabia que existían tantos lugares en mi propio pueblo...!!!

Se que existen más lugares (sobre todo cafeterías) que dan estos servicios, pero parece que no conocen esta página... es una lástima porque puede ser muy interesante que el cliente pueda tomarse un café y consultar su correo a la vez...o para la gente que venga de fuera de la ciudad.

Voy a añadir el enlace a "amigos", a ver si así más gente conoce esta iniciativa y se apunta...


Bueno, espero que sea útil, yo aprovechare para comprobar como van esos wifis en mi pueblo...

Saludos

sábado, 19 de febrero de 2011

Impresión de un Pdf, dos paginas por folio: Ahorro de papel y tinta

Bueno, me ha surgido el siguiente problema, que es el siguiente:
tenia que imprimir unos apuntes y cuando me los descargue venia en formato .pdf, al intentar imprimirlo me di cuenta que eran aproximadamente 100 folios.

Entonces pensé en buscar algún programa que me hiciera la impresión a dos páginas por folio (solo gastaría 50 folios, y menos tinta... y algo más de vista...)

Bien pues estos son los pasos que seguí:
Impresión de un archivo pdf, con varias paginas por folio:

- Instale el Adobe Reader 9, con el Centro de Software de Ubuntu.
- Ley las condiciones y le di a aceptar
- Lo puse como lector predeterminado de .pdf (aunque es bastante más lento que el que trae Ubuntu, por defecto).

- Pulse sobre el archivo pdf y lo abri, ya con el Adobe Reader, le di al botón File / print
Seleccioné las siguientes opciones:


Reverse Page: para que te imprima la última página la primera, y asi cuando terminas de imprimir ya las tienes ordenadas (la última impresión será la 1º paginas).
Page Scaling: Multiple page per sheet: multiple paginas por folio
Pages per sheet: custom : 2 by 1: 2 paginas por hoja, podemos poner 4 por hoja pero peligra nuestra vista
Page Order: Horizontal
Print Page Border: te dibuja el borde la la página, quedará más clara para su lectura.
Orientation: LandScape: elegimos orientación apaisada


Otra forma de imprimir documentos (.odt, .doc) en varias paginas por folio: Con OpenOffice

Vamos a Archivo -> Vista preliminar y luego a Opciones de impresión - Vista preliminar (icono de la mano sobre la impresora que está a la izquierda de Cerrar la vista preliminar)






Ahí saldrá un diálogo que permite configurar visualmente las páginas por hoja.


Espero que os sean útiles estos pequeños trucos.

Saludos 

Nota:
Aqui teneis un video explicando la instalación y uso:


jueves, 17 de febrero de 2011

De tableviews a hoja de calculo - ods

razaAztk, en su blog http://libertadhack.blogspot.com/



Ha creado un programa que nos convierte el contenido de los datos de un gridviews o tableviews al formato ods (usado por ejemplo en OpenOffice).
Visita este enlace para ver el código de su programa:
http://libertadhack.blogspot.com/2011/02/gambas2-tableview-hoja-de-calculo-ods.html




Muy útil (sobre todo porque maneja xml)... y muy buen aporte.

Gracias por tu aporte a la comunidad.

lunes, 14 de febrero de 2011

Aplicación: Pseudocodigo a lenguaje C

Bueno esta es una aplicación que se me ha ocurrido hacer en unas de las clases del  curso de  Fpo de Programador de Sistema.

Se trata de hacer un programa que traduzca el  Pseudocódigo  a C, lo compile y cree el ejecutable.

Os pongo unos pantallazos y un ejemplo:



Os dejo un video de como se realiza un programa....




Y el enlace al código fuente:

Enlace de descarga del codigo fuente (corregido el 7/09/2012)


Saludos..

Carta a nuestro bebe, este donde este....

Carta dedicada de a todas las parejas que no puedan tener hij@s biológic@s:


      Ya habíamos elegido tu nombre si eras niña te llamarías Alba, como le gusta a tu abuela Dolores, y si eras niño José Miguel, como el nombre de tus dos abuelos (el nombre del padre de tu madre José, y el nombre del padre de tu padre Miguel), y también como recordatorio de tu primo (que nunca llegarías a conocer) ya que murió en un trágico accidente y fue el primer sobrino de tu padre.








      Te cuendo... llevábamos casados tu madre y yo, unos 5 años, ahora en mayo van a ser 6 años. En los primeros años de matrimonio nos dimos cuenta que algo no iba bien, no podíamos concebirte. 
      Y empezamos una larga idas y venidas a médicos y hospitales,  que nos hicieron muchos analisis y pruebas, y tras varios meses, llegaron a la conclusión de que sino era por reproducción asistida (in vitro), no te podiamos tener. Entonces fuimos a una clínica privada, pero el coste no los podiamos asumir, aunque  era epoca de bonanza y ni  se escuchaba nada de la crisis.... Buscamos otra solución que era ponernos  en lista de espera de la S.S., a ver si así, aunque se tardaba mucho más en tiempo, el coste iba ha ser muy inferior..... Y pasaron los años, ....casi 3 años, y nos llaman ahora, cuando casi te teniamos olvidad@. 
      Otra vez las pruebas, otra vez las ilusiones, los miedos, echar números con el sueldo del "desempleo", pensar en los riesgos que tendría que pasar tu madre, ver a parejas paseando y jugando con sus hij@s y pensar que dentro de un año así podíamos estar nosotros ......pero al final, el mazazo... tras los  nuevos análisis, no dan la seguridad de tenerte.... y  finalmente decidimos, a nuestro pesar,  no tenerte....
      Esperar a un mejor momento de nuestras vidas para  poder adoptar a un hermanit@, que seguramente necesitará de unos padres que le cuiden y que le quieran. 
       No tu no tengas miedo... porque tu hermanit@, al que nunca  conocerás , ni jugaras con él, no te reemplazará, porque en nuestros corazones, el de tú madre y el mío,  siempre habrá un lugar reservado para ti, aunque tú no estés.


Un beso de tu madre y de tu padre, estés donde estés.

Para echar unas risas: Los paseos de mojito

Mojito, no es una persona, es un perro precioso, que da paseos por su ciudad natal, Chiclana de la Frontera, un maravilloso pueblo de la costa Atlántica de la provincia de Cádiz (España), y que os invito a conocer.
  


En sus paseos da con muchos carteles curiosos, en bares, talleres, etc.... por la ciudad que muestran muchas veces la idiosincrasia del pueblo andaluz (nuestros rasgos, temperamento, carácter, pensamiento y forma de ver la vida).
 
   Os dejo su blog donde podréis echar unas risas con nuestras cosas.



Fotos de Chiclana de la Frontera: