La beta de Gnash

Bueno, por fín ya tocaba un post sobre Gnash, Gnash es un software que permite reproducir películas hechas con Flash (extensión .swf) en *NUX. Yo voy a ser un poco más crítico, para ser sincero es lento y renderiza mal por lo menos la versión 0.8.1 , aunque según dicen en esta beta se han mejorado esos aspectos y encima han mejorado la compatibilidad con SWF v7 y clases Action Script 2 y van mejorando SWF v8 y v9.

Pongo aquí las características de la beta (que podeis verlas dando un click aquí)

* Improved timeline redesign.
* Action execution order fixes.
* Keyboard handling improved [1].
* New classes implemented: System.capabilities (partial), SharedObject,
LocalConnection.
* New opcodes implemented: ActionImplements, Try/Throw.
* Movieclip.beginGradientFill completes drawing API support.
* MovieClip._lockroot support added.
* Implement GET/POST for MovieClip.loadVariables and MovieClip.loadMovie
* Textfield support improved.
* Security: configurable sandbox restricts filesystem access by movies.
* Better support for SWF8.
* Streaming OGG-contained multimedia (e.g. vorbis/theora or
vorbis/dirac), and other free formats.
* OGL and Cairo renderers much improved.
* Improvements of the Framebuffer GUI (hide text messages, support
Linux events system, built-in touchscreen calibration, simple
keyboard support, better architecture support).
* SOLdumper utility for reading SOL files (’flash cookies’).
* DumpShm utility finds and dumps Local Connection memory segments.
* Fullscreen display possible.
* Extensions for LIRC and DBus.
* High quality, cross-platform psuedo-randomness using boost random.
* NPAPI (Mozilla) plugin: keyboard events work, navigation and
javascript from within movies.
* Set and save preferences from the GUI (GTK).
* Improved stability and robustness with malformed SWFs.
* New User manual! Rewritten reference manual, brought up to date.
* Many other bugfixes.

Comments

Yo SI que voy a votar.

Y voy a votar en las elecciones generales de 2008. Este domingo día 9/03/2008 estamos convocados todos los ciudadanos para ir a votar. Os preguntareis a qué viene este post, pues bien, viene principalmente a que mientras iba navegando por internet y estaba en el Msn Messenger, me invitaron a una conversación unos amigos y al final se acabó escribiendo de política (que en si no me molesta que se escriba de política), lo que si me molestó es esta frase:

Ir a votar, ¿para qué? si ganarán los mismos.

Me dejó muerto, pero tío, céntrate un segundo, el hecho de votar es algo más que un derecho, es la expresión de nuestros pensamientos, a quién votes al fín y al cabo es cuestión personal, pero tío, VOTA, hay gente que ha dejado la vida para que tengamos este valioso derecho, el derecho a EXPRESARNOS.

Vota en blanco, vota al PP, vota al PSOE, vota a ERC, vota al PNV, vota a IU, a quien quieras, pero USA tu derecho, si no lo usas, luego NO TE QUEJES de que los OTROS decidan por TÍ. Si te abstienes de votar, significa que apoyarás al partido que gane.

Yo aun no sé a quién votaré, pero si puedo garantizar una cosa: VOTARÉ. Porque es mi derecho, porque quiero contribuir en la decisión de quién mandará, porque quiero EXPRESARME, porque luego quiero poder QUEJARME si a quienes he votado me han fallado, quiero votar porque hay gente que ha muerto para que pueda hacer todo esto.

Un saludo y felices elecciones.

Comments (1)

Hola mundo ocultos.

¿Nunca habeis soñado con Hola Mundo’s ocultos en vuestros programas? pues ahora ya podreis implementarlo de una forma fácil y sencilla. Acabo de ver unos Hola Mundo muy bien elaborados en la web de fitzrovian. Son casi como códigos ocultos xD.

Ahí va el primero:

int n[]={0×48,
0×65,0×6C,0×6C,
0×6F,0×2C,0×20,
0×77,0×6F,0×72,
0×6C,0×64,0×21,
0×0A,0×00},*m=n;
main(n){putchar
(*m)!=’\0′?main
(m++):exit(n++);}

Este me gusta más:

#define _________ }
#define ________ putchar
#define _______ main
#define _(a) ________(a);
#define ______ _______(){
#define __ ______ _(0×48)_(0×65)_(0×6C)_(0×6C)
#define ___ _(0×6F)_(0×2C)_(0×20)_(0×77)_(0×6F)
#define ____ _(0×72)_(0×6C)_(0×64)_(0×21)
#define _____ __ ___ ____ _________
#include
_____

Este es el amo!:
#include
main(){
int x=0,y[14],*z=&y;*(z++)=0×48;*(z++)=y[x++]+0×1D;
*(z++)=y[x++]+0×07;*(z++)=y[x++]+0×00;*(z++)=y[x++]+0×03;
*(z++)=y[x++]-0×43;*(z++)=y[x++]-0×0C;*(z++)=y[x++]+0×57;
*(z++)=y[x++]-0×08;*(z++)=y[x++]+0×03;*(z++)=y[x++]-0×06;
*(z++)=y[x++]-0×08;*(z++)=y[x++]-0×43;*(z++)=y[x]-0×21;
x=*(–z);while(y[x]!=NULL)putchar(y[x++]);
}

Con este solo se puede decir una cosa… ¿ein?
#include
#define __(a) goto a;
#define ___(a) putchar(a);
#define _(a,b) ___(a) __(b);
main()
{ _:__(t)a:_(’r',g)b:_(’$',p)
c:_(’l',f)d:_(’ ‘,s)e:_(’a',s)
f:_(’o',q)g:_(’l',h)h:_(’d',n)
i:_(’e',w)j:_(’e',x)k:_(’\n’,z)
l:_(’H',l)m:_(’X',i)n:_(’!',k)
o:_(’z',q)p:_(’q',b)q:_(’,',d)
r:_(’i',l)s:_(’w',v)t:_(’H',j)
u:_(’a',a)v:_(’o',a)w:_(’)',k)
x:_(’l',c)y:_(’\t’,g)z:___(0×0)}

Un saludo y espero que hayas pasado un buen rato.

Comments (1)

Codigo fuente de mi programa: Juego de la Vida

Bueno, como seguramente ya sabreis mi objetivo es ser un programador y estoy estudiando eso, informática y en mi blog espero ir compartiendo los programas que escriba.

Generalmente use C para escribir los programas aunque no descarto algunos otros lenguajes como PHP o Python (o quizás perl).

Aquí va el codigo fuente de un juego de la vida (cualquier duda podeis dejar un comentario y lo responderé lo más rápido posible):


Licencia:

Creative Commons License


Esta obra está bajo una
licencia de Creative Commons.

WordPress no me permite poner todo el código del programa así que adjunto el fichero .c que podeis descargarlo dándole click aquí:

joc de la vida.c
/*

Autor: Imydes
Descripció: Joc de la vida
Data: 21/02/2008
*/

#include

/*****************************
* Definicions *
****************************/
#define MAX_COOR 7

/*****************************
* Tipus *
*****************************/

typedef int Tterreny[MAX_COOR][MAX_COOR];

/*****************************
* Capcelera de les funcions *
******************************/

void preparar_terreny(Tterreny &original, Tterreny &temporal);
void inserir_habitants(Tterreny &original);
void mostrar_terreny(Tterreny &original);
int obtenir_generacions(void);
void resoldre_terreny(int generacions, Tterreny &original, Tterreny &temporal);
void copiar_terreny(Tterreny &original,Tterreny &temporal);

int main() {

int generacions;
Tterreny original, temporal;

printf(”Introduce los habitantes mediante coordenadas, la tabla es de 5×5\n”);

preparar_terreny(original, temporal);

inserir_habitants(original);

mostrar_terreny(original);

generacions = obtenir_generacions();

resoldre_terreny(generacions, original, temporal);

return 0;
}

/* Copiar Terreny */
void copiar_terreny(Tterreny &original,Tterreny &temporal) {
int fila, col;
for (fila = 1; fila < MAX_COOR-1;fila++)
for (col = 1; col < MAX_COOR-1; col++)
original[fila][col] = temporal[fila][col];
}

/* Gestió d'habitants del terreny */
void resoldre_terreny(int generacions, Tterreny &original, Tterreny &temporal) {
int g, fila, col;
int contador;
for(g=0;g printf("GENERACION %i\n",g+1);
for (fila=1;fila for (col=1;col contador = 0;
contador = original[fila-1][col-1]+original[fila-1][col]+original[fila-1][col+1];
contador = contador+original[fila][col-1]+original[fila][col+1];
contador = contador+original[fila+1][col-1]+original[fila+1][col]+original[fila+1][col+1];

/* Decidim si creem o eliminem un habitant */

if (original[fila][col] == 1) {
if (contador == 2 || contador == 2 ) {
temporal[fila][col] = 1;
}
else {
temporal[fila][col] = 0;
}
}
else {
if (contador == 3) temporal[fila][col] = 1;
else temporal[fila][col] = 0;
}
printf("%i",temporal[fila][col]);
}
printf("\n");
}
copiar_terreny(original,temporal);
}
}

/* Preparació del terreny */
void preparar_terreny(Tterreny &original, Tterreny &temporal) {
int fila, col;
for (fila=0;fila for (col=0;col original[fila][col] = 0;
temporal[fila][col] = 0;
}
}
/* Sistema d'insersió d'habitants */
void inserir_habitants(Tterreny &original) {
int fila, col;
do {
scanf("%i",&fila);
scanf("%i",&col);

if (fila > 0 && fila < MAX_COOR-1 && col > 0 && col < MAX_COOR-1)
if (original[fila][col] == 1)
printf("Ya tienes un habitante en la casilla %i:%i\n",fila,col);
else
original[fila][col] = 1;
else
if (fila != 0 || col != 0) printf("El terreno es de 1x5 x 1x5\n");
}while(fila != 0 || col != 0);
}

/* Obtenim el nombre de generacions */
int obtenir_generacions(void) {

int generacions;
printf("Dime el numero de generacions que quieres que haga (valor positivo)\n");

do {
scanf("%i",&generacions);
printf("\n");
}while(generacions < 1);
return generacions;
}

/* Mostrem el terreny amb els habitants */
void mostrar_terreny(Tterreny &original) {

int fila, col;

for (fila=1;fila for (col=1;col printf("%i",original[fila][col]);
printf("\n");
}
}

En teoria si tienes las librerias de ANSI C instaladas y un compilador de C (como gcc en *NUX y Visual C++ en Windows) debería funcionar perfectamente.

Un saludo y espero que os haya gustado!!

Comments (6)

Broma de la oscuridad

Os pongo un video de una broma muy buena sobre unos viejos que parece que esten haciendo cosas(ya lo vereis en el video)



Bueno verdad? xDDDD

Comments

La UE insiste en que la dirección IP (Internet Protocol) es un dato personal

Leo en noticiasdot que google dice que la IP no es un dato personal mientras que en un comunicado de fecha 18 de febrero la Unión Europea ha insistido en que la dirección IP debe ser considerada dato personal y por tanto sometida a la normativa europea y nacional de protección de datos.

Imagino que el principal “problema” es que los motores de busqueda ( como Google, MSN, yahoo… ) almacenan la dirección IP y qué tipo de consultas realizan (haciendo un historial), el problema es “hasta qué punto uno tiene anonimato en internet cuando realiza un tipo de consultas”.

Lo que pienso es que Google coge los datos de las consultas para que su principal negocio (la publicidad online) y enfocarse mejor hacia cierto mercado.

Comments

Microsoft multada de nuevo

Como ya casi viene siendo habitual, microsoft ha sido multada de nuevo como podeis leer en Level007 : La Comisión Europea multa con 899 millones a Microsoft. En fín, qué más decir, pienso que está muy claro: Microsoft mangonea a nuestras caras.

De todas formas, ya es un pasito más hacia la libre competencia sin monopolios de la informática.

Comments

Descubierto un nuevo gen para frenar el cáncer

Leo esta magnífica noticia en ElPaís que un español ha identificado un gen que interfiere en la capacidad de actuación de las células cancerosas y las suprime.

Este gen se llamará AHRR y los investigadores han comprobado los efectos beneficiosos del gen supresor en cánceres de pulmón, mama, estómago, colon, testículo, útero y ovario.

Como supongo que habrán pensado (yo de medicina no entiendo mucho, la verdad) es que ya sabrán ahora por dónde iran los tiros para intentar combatir el cáncer, supongo que ahora el tema sería crear un fármaco que “reactivase” ese gen para que anulase la expansión del tumor, claro que para ello habría que estudiar bien cómo interactua el gen con las celulas cancerígenas y en los posibles fármacos que posibles efectos secundarios pudieran haber.

Comments

Letra de la cancion stein um stein de Rammstein

Bueno, como ya llevo haciendo unas cuantas veces, pongo una canción que me gusta su letra y un enlace al youtube para escucharla. Se la dedico a mi amigo XiuX y yeremat (un saludo!!)

Esta vez eligo Stein um Stein , de Rammstein, es una lyric que habla sobre construir una casa y encerrar a alguien y que no pueda salir, ni siquiera pasar la luz del sol.

Aquí va la letra:


Ich habe pläne, große pläne,
ich baue dir ein haus,
jeder stein ist eine träne,
und du ziehst nie wieder aus,
ja ich baue ein häuschen dir,
hat keine fenster, keine tür,
innen wird es dunkel sein,
dringt überhaupt kein licht hinein
Ja ich schaffe dir ein heim,
und du sollst teil des ganzen sein
Stein um stein,
mauer ich dich ein,
stein um stein,
ich werde immer bei dir sein
Ohne kleider, ohne schuh’,
siehst du mir bei der arbeit zu,
mit den füßen im zement,
verschönerst du das fundament,
draußen wird ein garten sein,
und niemand hört dich schrei’n
Stein um stein,
mauer ich dich ein,
stein um stein,
ich werde immer bei dir sein,
ich werde immer bei dir sein
Welch ein klaufen, welch ein hämmern,
draußen fängt es an zu dämmern,
alle nägel stehen stramm,
wenn ich sie in dein leibholz ramm’
Stein
Stein um stein,
mauer ich dich ein,
stein um stein,
mauer ich dich ein,
stein um stein,
mauer ich dich ein,
stein um stein,
und keiner hört ihn schrei’n

Comments

La SGAE, de nuevo bajo sospecha por presunto fraude con el canon

Leo en filmica que como viene siendo ya “habitual”, un juez está investigando a la SGAE por una presunta estafa en sus informes sobre el canon (que a mi modo de ver, ILEGAL e INJUSTO, ya que nos tachan a todos de ladrones). Hay más de 300 comercios que les afecta de forma directa las demandas basadas en esos informes que podrían ser anuladas.

Como seguramente ya sabreis: LAS CUENTAS DE LA SGAE NO SON AUDITADAS POR NINGÚN ORGANISMO PÚBLICO, por lo tanto podemos esperarnos cualquier cosa…


ESTA WEB NO ESTÁ A FAVOR DEL CANON DIGITAL!

Comments

« Previous entries · Next entries »