Efecto Genie (MacOS) en Compiz de manera sencilla

El efecto Genie al minimizar es conocido en el SO MacOS. En linux gracias a Compiz tenemos un efecto muy parecido, en este caso el Magic Lamp o Lámpara Mágica, pero que no es del todo igual por tener al menos 3 ondas al ejecutar el efecto. Estas se pueden quitar haciendo una serie de modificaciones como se explica aquí en Genbeta.

Pero para no instalar editores hexadecimales, y andar modificando archivos un tanto complicados de modificar para más de uno, he creado un pequeño programita en C que hace esto en un solo paso, con tan solo ejecutar el archivo.

El ejecutable lo podéis descargar desde aquí.

Simplemente hay que darle permisos de ejecución y ejecutarlo con permisos de administrador (porque necesita modificar un archivo en /usr/lib/compiz/ y en /usr/share/compiz/ ) así:

chmod +x genie_compiz
sudo ./genie_compiz

Leer más de esta entrada

Popularidad de los lenguajes de programación

Fuente: sourceforge

Facebook HipHop, convierte código PHP a C++

Sencillamente espectacular lo que ha hecho un desarrollador de Facebook, que ha creado una herramienta que permite pasar el código PHP, muy utilizado en Facebook (y en cualquier web dinámica) a código C++.

¿Qué supone esto?

Que todo lo programado en PHP, puede ser convertido a C++, que es mucho más rápido que el anterior, compilándolo con g++ mediante el siguiente proceso:

Este ha sido liberado con licencia Open-source, por lo que podrá ser mejorada por toda la comunidad, y todos nos beneficiaremos de ella, usuarios y sobre todo administradores de sistemas, que podrán ver reducida la carga de su web.

Para que os hagáis una idea del potencial de esto, si Facebook tiene 30000 servidores en todo el mundo, esta herramienta permitiría apagar el 75% de estos, con los ahorros que eso supone, y todo, manteniendo la misma carga.

Más info (en inglés): blog Facebook

Ejecutar código online

Sin necesidad de tener ningún compilador instalado, si queremos probar un script, algo de PHP, Java, C, C++, COBOL, Javascript, Python y otros tantos, tan sólo tenemos que pegar (o escribir directamente) nuestro código en la ventana y darle a ejecutar.

Esto nos mostrará una ventana con el resultado de la ejecución y el tiempo que ha tardado en procesarlo, además del compilador utilizado y la memoria utilizada, realmente una información muy interesante. Además nos dará un enlace para compartir nuestro código con otra gente, como este que os dejo y que se corresponde a las capturas:

http://ideone.com/SLgjWRUf

Tal y como indican en la página, está en beta y algunos lenguajes aún se están probando, pero sin duda puede ser una página realmente útil ya que nos permite probar código en cualquier ordenador con conexión a internet.

Página: ideone.com

Iniciandose en la programación (I)

Durante los siguientes párrafos se intentará dar una idea básica de como se programa para un computador. Lo primero es pensar que lo que nosotros realizamos como una única acción fácil, normalmente, se puede descomponer en varias más pequeñas e implementar las acciones pequeñas que luego resulelven el problema grande, esto nos facilitará la programación de manera notoria. Todo lo que queramos hacer se compone de dos conjuntos, por un lado los datos con los que trabajaremos y por otro lado las acciones u operaciones que hacemos con ellos.

En lo referente a los datos los lenguajes de programación (C, C++, C#, Java, Lisp, etc.) pueden ser de tipado fuerte o débil. Esto quiere decir que en algunos (C, Java, y otros) antes de declarar una variable (un dato) habrá que indicar el tipo de dicho dato, si es número o letra, y en otros simplemente nos declararemos una variable sin importarnos el tipo de la misma.

En cuanto a las operaciones los lenguajes de programación nos ofrecen varias, aunque dependen del lenguaje. Las más comunes son las operaciones aritméticas (suma, multiplicación…) y las lógicas (AND, OR,…). Además los lenguajes ofrecen la posibilidad de reutilizar código, esto consiste, por ejemplo, imaginemos que queremos calcular el número factotial de dos números, pues en lugar de programarlo dos veces lo programamos una sola vez y luego usamos ese fragmento de código tantas veces como queramos; a esto según el lengueje se le llama método, función, procedimiento … , pero que en el fondo es lo mismo. Estos métodos pueden recibir datos como argumentos, por ejemplo en el caso del factorial el método recibiría el número del que queremos calcular el factorial.

Además los programas que creemos tendrán que empezar a ejecutarse desde algún punto, esto depende del lenguaje, pero lo más habitual es que exista un método ‘main’, que será por el que empiece a ejecutarse el programa, este método también podrá recibir argumentos (que serán pasados por linea de comandos).

Aparte de las funciones que nos proporcione el propio lenguaje y de las que nos creemos nosotros, el sistema operativo también puede ofrecernos una serie de funciones, tales como imprimir por consola.

Durante este pequeño tutorial de programación usaremos el lenguaje C en un ubuntu 9.04, para ello necesitaremos instalar (de no tenerlos ya) el compilador de C gcc (GNU C Compiler).

Para terminar esta introducción crearemos el típico programa ‘Hello world’ realizando la compilación y ejecución del mismo.

#include
int main(){
printf("%s", "Hello world");
return 0;
}

La primera linea nos permite usar funciones del sistema operativo que esten dentro del archivo stdio (standar input output, que entre otras cosas nos permite escribir en la consola). La segunda es la función por la que comenzará a ejecutarse el programa, la tercera es la función del sistema operativo (linux, en windows es otra distinta) que nos permite escribir cosas en la consola, si quereis más información de esta función teclead en un terminal:

$ man printf

Por último devolvemos un cero (ya que todas las funciones devuelven algo) y cerramos las función igual que la abrimos, con las llaves.

Ahora lo compilamos, para que el procesador de nuestro computador lo entienda:

$ gcc hello.c -o hello

Y lo ejecutamos para ver el resultado: