Aqui explico como hacer diferentes cosas, sobretodo de informatica
28/07/2010

Lo primero, es ir a la página oficial de SDL: http://www.libsdl.org/

Una vez dentro, el menú lateral, en la sección “Download”, entra en SDL 1.2.

Nos encontraremos varias secciones:

                Source Code: este es el código fuente, no nos interesa si lo que queremos es solo usar SDL y no entender cómo funciona.

                Runtime Libraries: Estas son las librerías necesarias para ejecutar el programa una vez compilado.

                Development Libraries: Este es el paquete que nos interesa.

Veremos que en Development Libraries hay varias versiones, para Linux, para Windows y para Mac, esto nos asegura que nuestros programas son compatibles y multiplataforma. Pero si estas leyendo esto es porque ya conoces las bondades de SDL.

Obviamente el que nos interesa es la versión para Windows (Win32), veremos que hay varias, y entre ellas vemos que hay una versión específica para MinGW (Mingw32). Nos la descargamos.

Dentro del comprimido, hay una carpeta y dentro de esa carpeta hay otras carpetas, nos interesan esas carpetas, exactamente nos interesan “include”, “lib”, “bin” y “share”.

Primero pegamos las carpetas “lib”, “bin” y “share” directamente en C:\MinGW.

En la carpeta “include” hay otra carpeta, “SDL”, y dentro de esta hay muchos archivos, pegamos esos archivos (solo los archivos, no la carpeta que los contiene) en C:\MinGW\include.

Con esto ya tendremos SDL instalado. Para comprobar que funciona, usaremos un programa sencillo.

 

#include <stdio.h>

#include <SDL_image.h>

#include <stdlib.h>

#include <SDL.h>

int main(int argc, char *argv[]){

  SDL_Surface *screen;

  SDL_Surface *fondo,*fondo2,*fondo3;

  SDL_Rect destino,destino2,destino3;

  /* char cadena1[60];*/

  int x,y;

  float i;

  SDL_Event event;

  SDL_Init(SDL_INIT_VIDEO);

  /* Preparamos las imagenes a mostrar */

  fondo = IMG_Load("protag.png");

  fondo2 = IMG_Load("protag.png");

  screen = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE|SDL_DOUBLEBUF|SDL_ASYNCBLIT);

 SDL_WM_SetCaption( "Hola mundo 2!", "Hola Mundo 2!" );

  /* Dibujamos la imagen de fondo */

   SDL_BlitSurface(fondo2, NULL, screen, &destino2);

 SDL_BlitSurface(fondo, NULL, screen, &destino);

 destino3.x=200;

 destino3.y=200;

 for (i=0; i<5000 || SDL_PollEvent(&event);i+=0.05) {

   SDL_WaitEvent(&event);

   if (event.type==SDL_QUIT)

     return(0);

   if(SDL_GetMouseState(NULL,NULL)&SDL_BUTTON(1)){

     x=event.button.x;

     y=event.button.y;

 

     destino.x=200;

     destino.y=200;     

     destino2.x=x-destino2.w/2;

     destino2.y=y-destino2.h/2;    

     SDL_BlitSurface(fondo3, NULL, screen, &destino3);

     SDL_BlitSurface(fondo, NULL, screen, &destino);

     SDL_BlitSurface(fondo2, NULL, screen, &destino2);

     SDL_Flip(screen);

   }   

 }

 SDL_Quit();

 return 0;

}

 

Este programa lo guardamos en un archivo con la extensión .c

Este programa además de usar SDL usa ciertas librerías que se suelen usar en SDL pero que no se incluyen en el núcleo, como son SDL_image. Para obtenerlas entramos en la sección de Libraries en el menú lateral de la página oficial de SDL. En esa página nos encontramos una barbaridad de librerías, usamos el buscador para encontrarla.

Nos las bajamos y las descomprimimos las librerías, la organización de las páginas de librerías en mas caótica, y no hay sección de Development Libraries, si no que en http://www.libsdl.org/projects/SDL_image/ el paquete que queremos es este “SDL_image-devel-1.2.10-VC.zip” (la versión puede cambiar).

Para descomprimir e instalar las librerías correctamente hay que usar el sentido común, para ello pondré como hacerlo para SDL_image.

En el paquete de SDL_image veremos las carpetas: “include” y  “lib”. Lo primero es pegar la carpeta include y lib en C:\MinGW. La carpeta lib además contiene los dll necesarios para ejecutar el programa una vez compilados, aseguate de que esas dll están junto con el ejecutable al probar el programa.

Antes de compilar tenemos que usar el programa sdl-config que nos dará los parámetros que tenemos que pasarle al compilador para poder compilar con SDL, además, al usar SDL_image tenemos que añadir –lSDL_image.

Para poder usar sdl-config tienes que abrir el panel de msys (C:\msys\1.0\msys.bat) y escribimos “sdl-config --cflags --libs”. Esto nos devolverá algo como esto “-I/usr/local/include/SDL -D_GNU_SOURCE=1 -Dmain=SDL_main -L/usr/local/lib -lmingw32 -lSDLmain -lSDL -mwindows”

Para compilarlo abrimos el cmd de Windows.

Si tienes Windows XP usa “ejecutar” de menú inicio. Y si tienes vista (ojala no) o Windows 7 abre inicio y teclea cmd en la barra de búsqueda y pulsa enter.

Una vez abierto escribe C:\MinGW\bin\gcc.exe -Wall ruta-archivo.c -o ruta-programa-compilado.exe (y lo que te devuelve sdl-config) -lSDL_imge.

En mi caso, para compilar uso esto: “C:\Users\David>C:\MinGW\bin\gcc.exe -Wall G:\Trabajos\C\imagen_sdl-w.c -o G:\Trabajos\C\imagen_sdl-w.exe -I/usr/local/include/SDL -D_GNU_SOURCE=1 -Dmain=SDL_main -L/usr/local/lib -lmingw32 -lSDLmain -lSDL -lSDL_image”

16/07/2010

Lo primero de todo es ir a la página oficial de GTK: http://www.gtk.org, después vamos a la sección de descargas y seleccionamos Windows (32bits). Bajamos hasta encontrarnos esto:

paquetes GTK nucleo

Cada paquete tiene 3 descargas.

Binaries: que son las librerías precompiladas, es decir las dll que necesitaras para ejecutar el programa una vez compilado.

Dev: son los archivos necesarios para compilar nuestros programas, y por tanto, los que nos interesan.

Sources: Es el código fuente de la librería, no tiene utilidad si lo que quieres es solo usar la librería, pero si que la tiene si lo que quieres es aprender cómo funcionan.

 

Nos descargamos los Dev de los 5 paquetes (GTK 2.16.6 no nos interesa porque tenemos una nueva versión, la 2.20.0). Una vez que los tengamos hay que descomprimirlo en la carpeta de MinGW, pero… ¿ya está? Pues sí, porque la estructura que tiene en el comprimido coincide con la de MinGW.

Pero para entenderlo mejor, las carpetas que nos interesan de los comprimidos son: “lib”,  “include”, “bin” y “share”. Localiza esas carpetas dentro de los comprimidos (algunos comprimidos no tiene las 4 carpetas, no pasa nada) y pégalas en tu carpeta raíz de MinGW, que normalmente suele ser C:\MinGW, si te pide sobrescribir algo, dile que sí.

Cuando hayas hecho esto para los 5 paquetes descargados, ya tendrás el núcleo de GTK instalado, pero aún falta un pequeño detalle. GTK usa librerías de terceros que también tendrás que instalar, para eso en la sección de descargas para Windows (32 bits) busca esto:

paquetes GTK secundarios

 

Solo los paquetes con la casilla marcada son imprescindibles para que funcione GTK, los demás son extras, en ciertos programas puede que los necesites, pero no es lo normal, y mucho menos cuando se está empezando, así que de momento, solo usaremos los paquete imprescindibles.

En total hay 6 paquetes a bajar, más un paquete necesario para compilar que no aparece como imprescindible, este es pkg-config. Primero nos bajamos los 6 paquetes, en su descarga Dev y procedemos como en los paquetes del núcleo de GTK, después, nos bajamos el paquete pkg-config en su descarga “Tool” y descomprimimos la carpeta bin como en los demás paquetes.

Además, para que pkg-config funcione necesita los binarios de Glib, así que nos bajamos los binarios de Glib (recuerda, Glib, es un paquete del núcleo, antes te has bajado la descarga “Dev”, ahora la descarga de “Binaries”).

Con esto ya deberíamos tener GTK listo para usar. Para comprobar que valla usaremos este código:

#include <gtk/gtk.h>

int main (int argc, char *argv[]){

GtkWidget *window;

gtk_init (&argc, &argv);

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

gtk_widget_show (window);

gtk_main ();

return 0;

 

Guardalo en un archivo con la terminación .c

Para compilarlo, yo aconsejo usar el cmd de windows, para ello abre el cmd.

Si tienes Windows XP usa “ejecutar” de menú inicio. Y si tienes vista (ojala no) o Windows 7 abre inicio y teclea cmd en la barra de búsqueda y pulsa enter.

Una vez abierto, teclea “cd C:\MinGW\bin” y pulsa enter, así te abras metido en el directorio donde está el ejecutable del compilador. Antes de compilar, hay que saber una cosa, el compilador necesita que le des unas instrucciones para poder compilar GTK.

Estas instrucciones son largas y complejas, y aquí en donde entra en acción pkg-config, este programa nos dará una secuencia de instrucciones para el compilador, para ello, tecleamos: “pkg-config.exe --cflags --libs gtk+-2.0”, esto te devolverá varias líneas, cópialas todas, y pégalas en un editor de textos, elimina los salto de línea (enter) que pone el cmd de windows para que quede todo una línea.

¡Bien! Ya tienes casi tu primer programa de GTK, ahora solo hay que compilar, para ello escribiremos (asumiendo que tienes el programa que te he dado en C:\) “gcc –Wall C:\programa.c -o C:\programa.exe (y aquí viene pegadas todas las líneas que te ha devuelto el pkg-config)”

Si no te va, puede que no hallas quitado todo los enter cuando lo has copiado en el ditor de textos, o que hayan quedado caracteres raros, de todas formas te dejo yo lo que tienes que escribir por si tienes problemas:

“gcc -Wall C:\programa.c -0 C:\programa.exe -mms-bitfields -IC:/MinGW/include/gtk-2.0 -IC:/MinGW/lib/gtk-2.0/include -IC:/MinGW/include/atk-1.0 -IC:/MinGW/include/cairo -IC:/MinGW/include/pango-1.0 -IC:/MinGW/include/glib-2.0 -IC:/MinGW/lib/glib-2.0/include -IC:/MinGW/include/freetype2 -IC:/MinGW/include -IC:/MinGW/include/libpng14  -LC:/MinGW/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 –lintl”

En mi caso he eliminado un parámetro que me devuelve pkg-config, es el -lgdi32-lpangocairo-1.0, me daba problemas, no he encontrado la solución, pero no me ha dado problemas al compilar, y los programas funcionaban bien.

Con todo esto ya tendras un ejecutable, pero no funcionará, porque le faltan los .dll, para ello hay que bajarse los “Binaries” de todos los paquetes del núcleo de GTK y poner los .dll (solo los dll) junto al ejecutable, y recuerda, junto al ejecutable NO dentro de una carpeta (para lo que es recomendable que lo pongas TODO dentro de una carpeta, hablo del ejecutable y las librerías).

14/07/2010

En este tutorial enseñaremos donde descargarse MinGW y msys y como instalarlo, en tutoriales posteriores explicaré como instalar librerías como SDL o GTK con ejemplos prácticos. Estos son los tutoriales posteriores.

        - Instalar y compilar GTK en MinGW

 

Como instalar MinGW


Lo primero es ir a la página oficial, siempre es recomendable ir a la página oficial, nunca bajarte cosas como esta (libres) de Megaupload o similares, puesto que no tiene por qué ser la última versión y además puede estar incompleto o modificado, por lo que la regla general ya no valdrá.

La página oficial de MinGW es: http://www.mingw.org/

Una vez en la página entramos en la sección Downloads, que nos lleva a http://sourceforge.net/downloads/mingw/

Veremos muchos paquetes, ¿pero cual nos tenemos que instalar? Pues entramos en Automated MinGW Installer, dentro veremos que hay 2 carpetas, una que se llamara MinGW y otra mingw-get, la que nos interesa es MinGW, si hay más ignoradlas. Una vez dentro descargamos el ejecutable MinGW-x.x.x.exe donde las x son los números de la versión.

Una vez descargado, lo ejecutamos y lo instalamos con las opciones PREDEFINIDAS (es muy recomendable no cambiarlas, puesto que solo hará que liar la cosa) hasta el punto de “Choose Component” que nos ara elegir que componentes queremos instalar, podemos marcar los compiladores que queramos, como el g++ para C++.

NO hay que marcar la opción “MinGW Make”, esta opción nos llevaría a pensar que nos instalaría el archivo make.exe que usan algunas suites como NetBeans, pero no, no conozco muy bien los motivos, pero no funciona, para eso hay que instalar msys.

Seguimos con la instalación, tardará un rato ya que se tiene que descargar algunos componentes.


Como instalar msys

Una vez instalado, pasamos a descargar msys (msys está en la misma página que MinGW), en el wiki http://www.mingw.org/wiki/MSYS explican que la mejor opción para noveles es la versión 1.0.11, así que nos descargamos esa versión: http://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe

Cuando se halla descargado, ejecutamos el instalador, lo instalamos con las opciones predefinidas, cuando haya acabado la barra de porcentaje, nos saldrá una consola (cmd.exe) con una pregunta, pregunta si queremos enlazar la instalación de msys con la instalación que tenemos de MinGW, ponemos “y” y damos enter.Ahora nos pregunta si tenemos MinGW instalado, otra vez “y” y enter.

En este punto es donde no hay que fastidiarla, nos pregunta donde hemos instalado MinGW, si lo habéis instalado (MinGW) con las opciones predefinidas (cambiar los paquetes a instalar no cuenta) entonces contestamos esto C:/MinGW y le damos enter.

Y con esto ya tenemos nuestro MinGW instalado y con capacidad de funcionar junto a NetBeans y/o otras IDEs.

Como comentario final, dire que la mejor forma de compilar para mi es usando la consola de Windows cmd.exe y escribiendo

C:\MinGW\bin\gcc -Wall "ruta_fichero.c" -o "ruta_fichero_salida.exe" y después las opciones de compilación.
 

En poco sacare un tutorial que explicara como instalarse las librerias de GTK y SDL en MinGW y como compilar.

14/01/2010

En este articulo les vamos a dar las utilidades y explicaciones para poder comprimir videos a máxima calidad y con una compresión sorprendente sin complicarse la vida. Muchas veces nos hemos preguntado cómo consiguen algunos comprimir un capitulo de anime en 50mb con una buena calidad. Pues bien, aquí encontrareis la respuesta. ¿Nuestro objetivo? Comprimir un capitulo de anime a una resolución de 1280x720 en 90 Mb sin pérdida aparente de calidad respecto al original. Para ello usaremos 3 programas diferentes AoA Audio Extractor, Megui y Avisynth 2.58. No os asustéis, va a ser muy sencillo.

El archivo que hemos comprimido en este artículo es: [inshuheki] Tales of the Abyss 06 [720p][FA7E05F4].mp4.Que es el capítulo 6 de Tales of the Abyss del fansub inshuheki (http://www.inshuheki.es). Lo podeis encontrar al fianl del post.

10/01/2010

Muchos portátiles hoy en día incluyen un sensor de luz, en ocasiones esto puede ser muy útil, ajustando el brillo de la pantalla a las condiciones ambientales y aumentado así la duración de la batería, pero en otras ocasiones, esto puede transformar la vida portátil-persona en un infierno.

 

De echo en sistemas basados en Linux (la mayoria) y Windows, los atajos del teclado para subir o ajar el brillo dejan de funcionar y nos vemos sumergidos en la desesperación cuando entramos en un ambiente con poca luz y la pantalla se nos oscurece haciéndonos imposible usar el portátil.

 

La solución pasa por desactivar el sensor de luz, además es muy común que si se apaga en Linux se mantenga apagado en windows, y también al contrario, si al apagar Linux el sensor estaba encendido se mantiene encendido en windows y en algunos casos es imposible apagarlo desde windows.

 

La forma de apagarlo es editando el archivo

/sys/devices/platform/asus-laptop/ls_switch

que solo contiene un dígito, este es 0 o 1, si es 0 el sensor se mantiene apagado y si es uno encendido. El problema es que cuando iniciamos nuestra distribución de Linux ese archivo se suele poner en 1 de forma automática, por lo que debemos hacer un script que se ejecute cada vez que se inicie el sistema.

 

El script es este:

echo 0 >/sys/devices/platform/asus-laptop/ls_switch

("echo 0 >/sys/devices/platform/asus_laptop/ls_switch" para ubuntu anterior al 9.04).

Lo que hace es poner un 0 en el archivo ls_switch, en algunos sistemas el numero puede cambiar, en otros tutoriales ponen un 2, pero en mi caso solo funcionaba un 0.

 

Ese script hay que ponerlo en el archivo

/etc/rc.local

y para ello hay que editarlo con un editor de texto. Abre una consola y escribe

sudo gedit /etc/rc.local

y en la ultima linea antes de “exit 0” pon el siguiente texto

echo 0 >/sys/devices/platform/asus-laptop/ls_switch”.

Eso hará que en en cada inicio del sistema operativo se ponga un 0 en el archivo “ls_switch” de esa forma el sensor de luz pasara de ser un estorbo a un simple adorno.

 

Cabe mencionar que puedes poner cualquier otro comando en ese archivo, siempre antes de “exit 0”. Yo por ejemplo tengo esta linea

mount -t auto /dev/sda2 /media/disco_datos

para que me monte una particion al inicio.

 

Para cualquier duda poned un comentario. Un saludo.

 

P.d: He comprobado esta solucion y funciona tambien en OpenSUSE 11.2 y LinuxMint 8.

06/01/2010

Leo en diversos foros el panel “GodMode” oculto de Microsoft y como activarlo, y es peculiar que al renombrar una carpeta con un sufijo determinado cambie su comportamiento, además cuando vi el sufijo “{ED7BA470-8E54-465E-825C-99712043E01C}” del panel de GodMode me recordó a las entradas de del registro de Windows, así que abrir el editor de registro y puse en buscar el sufijo en cuestión.

Este estaba dentro de la ruta (HKEY_CLASSES_ROOT/CLSID/) junto con muchas más cadenas de texto, por curiosidad, se me ocurrió probar algunas de las otras y resulto que hay muchos más paneles en Windows que se pueden acceder con un sufijo.

Si quieres probar entra en C:\Windows\System32 y ejecuta el archivo cmd.exe. Escribe regedit y pulsa enter.

Una vez allí, ves desplegando el árbol hasta llegar a la ruta HKEY_CLASSES_ROOT/CLSID/

A partir de aquí es cuestión de probar algunos para ver si hay más menús ocultos que solo se puedan usar mediante esta forma. Los que yo he encontrado son:

 

Nombre.{ED7BA470-8E54-465E-825C-99712043E01C}   Este es el famoso panel GodMode

Nombre.{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}   Explorar los dispositivos de red

Nombre.{ED834ED6-4B5A-4bfe-8F11-A626DCB6A921}   Personaliza el estilo de Windows

Nombre.{2559a1f5-21d7-11d4-bdaf-00c04f60b9f0}   Abre tu programa de correo

Nombre.{20D04FE0-3AEA-1069-A2D8-08002B30309D}   Abre la carpeta Equipo

Nombre.{208D2C60-3AEA-1069-A2D7-08002B30309D}   Abre tu grupo de trabajo

Nombre.{1FA9085F-25A2-489B-85D4-86326EEDCD87}   Muestra las redes wifi ya configuradas

Nombre.{17cd9488-1228-4b2f-88ce-4298e93e0966}   Menú de programas predeterminados

Nombre.{15eae92e-f17a-4431-9f28-805e482dafd4}   Agregar programas

Nombre.{1206F5F1-0569-412C-8FEC-3204630DFB70}   Credenciales de inicio de sesión automático

 

Todo esto ha sido probado en Windows 7 x64 Proffesional. En los demás puede que sea diferente o no.