31 de octubre de 2010

Misterio resuelto "Celular en 1928"


Despues de que se hiciera publico en internet este video donde sale una dama aparentemente hablando por celular en una pelicula de Charles Chaplin el misterio parase haber sido resuleto por completo luego de que Jen Chaney y Liz Kelly, autoras del blog “Celebritology” alojado en la web de “The Washington Post”, revelaran que el aparato que sostiene la mujer se trataría de uno para mejorar la audición, lanzado en 1924, cuatro años antes del largometraje.


Según el post, la mujer está portando un dispositivo creado por la compañía Siemens en la primera mitad del siglo XX, apoyándose en imágenes que resaltan una clara similitud entre la campaña publicitaria del aparato y lo que se puede observar en la película.
Pareciera un rebuscado precursor del “placement cinematográfico” (exhibir marcas y productos en una película a cambio de financiamiento).
Solo queda una interrogante sin respuesta: ¿por qué la mujer aparece moviendo sus labios como si estuviese hablando? Al ser una película muda, claramente la mujer pudo estar hablando con cualquier persona o tratando de llamar la atención, sin perturbar el producto final.

30 de octubre de 2010

Robocode una forma diferente de usar Java



Robocode es un simulador de combate de tanques de código abierto, que fue hecho como una herramienta educativa para aprender a programar en Java, fue inicialmente desarrollada por IBM pero ahora hay un grupo de colaboradores que siguen trabajando en el código y arreglando los bugs.


Robocode es un simulador de combate de tanques de código abierto, que fue hecho como una herramient
Programar un tanque sencillo es muy fácil y rápido (puedes tener uno funcionando en minutos) pero perfeccionarlo te puede tomar muchas horas de trabajo, lo más divertido es que puedes competir contra otros programadores alrededor del mundo y que gane el mejor tanque.
Para aquellos que no se conforman con el Hola mundo! o que de verdad siempre han querido aprender a programar Java pero les aburre hacer programas de un libro que no sirven para más que sumar dos números (me incluyo en ese grupo) esta es una gran alternativa, y hago un llamado a los profesores a que incorporen este tipo de prácticas en sus clases, me parece una forma mucho más interactiva y divertida para hacer sus clases más interesantes.
Entre sus características principales tenemos:
  • Tiene ciertas reglas físicas, como movimiento, apuntar, velocidad, que debes tomar en cuenta a la hora de atacar y defenderte
  • Tiene sensores que debes programar para ver a tus objetivos
  • Hay obstaculos contra los que tu tanque puede chocar.
Hay varias ligas o servidores donde puedes subir tu tanque para competir.
Puedes encontrar más información en la página Oficial: http://robocode.sourceforge.net/ o en el RoboWiki

29 de octubre de 2010

iOS 4.2 Caracteristicas y Fecha de Lanzamiento

Probablemente la fecha de lanzamiento para el iOS 4.2 sea a fines del mes de Noviembre ya que en un twit publicado por iH8snow un mienbro activo de la comunidad del jailbreak publico que el tiempo del Beta 3 Expira el 29 de Noviembre. Esperemos que para este iOS salga el jailbreak pronto.


Aqui algunas novedades del iOS 4.2 para el ipad:

  • Posibilidad de ajustar el brillo directamente desde la barra de “tareas”.
  • GameCenter incorporado.
  • Cambio rápido de aplicaciones y multitarea.
  • Carpetas.
  • Bandejas de entrada de correo unificadas.
  • Posibilidad de imprimir de forma remota.
  • Opción de “buscar en esta web” en Safari.
  • Posibilidad de cambiar la fuente de las notas de texto.




[Paso A Paso] Jailbreak con Limera1n

Si despues de ingresar a jailnrek-me.info te salio como forma de jailbreak Limera1n este tutoria te indica paso a paso como realizarlo.



Recuerda: No actualizar a iOS 4.1 si necesitas liberar tu iPhone. Ultrasn0w no admite las nuevas baseband por el momento.

Paso uno
Abre el navegador web de tu elección y dirígete a 
http://www.limera1n.com . Haz clic en el enlace de descarga para Windows en la parte inferior de la pantalla.
Paso dos
Guarda la descarga en tu PC.

Paso tres
Haz doble click para iniciar la aplicación.

Paso cuatro
Conecta tu iPhone/iPod a tu PC y az click en el botón 
make it ra1n.

Paso cinco

Tu iPhone/iPod entrará en modo recovery.

Cuando te lo indique, mantén pulsado el botón home + power a la vez.

Una vez más, cuando te lo indique, suelta el botón power, manteniendo pulsado el botón home únicamente.

Tu iPhone/iPod entrará en modo DFU.

Cuando veas esta imagen en tu pantalla, limera1n comenzará su proceso de instalación.

Seguidamente verás esta pantalla, donde nos avisa que el proceso se ha realizado satisfactoriamente.

Cuando veas esta pantalla, ya podrás desconectar tu iPhone/iPod, el proceso ha finalizado.
Paso seis
Cuando vuelvas a encender tu iPhone/iPod, verás un nuevo icono en el springboard, llamado limera1n. Pulsa e inicialo.

Paso siete
Cuando se haya iniciado, selecciona Cydia de tal forma que quede marcado, y seguidamente pulsa el botón “Install”.

Paso ocho
Cuando Cydia se haya instalado, deberás reiniciar tu iPhone/iPod.

Paso nueve
Una vez reiniciado, ya tenemos nuestro iPhone/iPod jailbrokeado. ¡Enhorabuena!
NOTA*: Para eliminar el icono de limera1n puedes instalar CyDelete desde Cydia para eliminar la aplicación. Esto no afectará en ningún concepto a tu Jailbreak.
*** Gracias a todos los que han hecho posible este jailbreak.

28 de octubre de 2010

Mira si tu iPod, iPhone, iPad tiene Jailbreak & unlock

Tal vez esta pagina sea conocida por mucho de ustedes pero para los que tienen algun producto de Apple y no saben como hacer el jailbreak, no encuentra la pagina o quieren saber si ya pueden desbloquear su iPhone les dejo esta pagina aqui algunas imagenes de la pagina.

Despues de entrar solo tienen que indicar su equipo, modelo, iOS, BaseBand (iPhone), luego click en Chek iDevice luego en la pagina aparecera el metodo y el enlace mas adecuado a la pagina para hacer el Jailbreak.



Para entrar a la pagina solo hagan click en el banner inferior : ___|  |___
                                                                                             \           /
                                                                                               \       /
                                                                                                 \   /

27 de octubre de 2010

Metodos de Ordenamiento (Parte 3)


int burbuja1(int X[Max], int dimX)//Burbuja 1 (de derecha a Izquierda)  
{
   int N,i,aux,j;
   int comienzo;
   comienzo=clock();
   N=dimX;
   for(i=1;i<N;){
      for(j=N-1;j>0;){
         if(X[j-1]>X[j]){
            aux=X[j-1];
            X[j-1]=X[j];
            X[j]=aux;
         }
         j=j-1;
      }
      i=i+1;
   }
   printf( "\n\nNumero de segundos transcurridos desde el comienzo del programa: %f s\n", (clock()-comienzo)/(double)CLOCKS_PER_SEC );
}
//-->2      

int burbuja2(int X[Max], int dimX)//Burbuja 2 (de izquierda a derecha)  
{
   int N,i,aux,j; 
   int comienzo;
   comienzo=clock();
   N=dimX;
   for(i=1;i<N;){
      for(j=0;j<N-1;){
         if(X[j]>X[j+1]){
            aux=X[j];
            X[j]=X[j+1];
            X[j+1]=aux;
         }
         j=j+1;
      }
      i=i+1;
   }
   printf( "\n\nNumero de segundos transcurridos desde el comienzo del programa: %f s\n", (clock()-comienzo)/(double)CLOCKS_PER_SEC );
}

//-->3   

int burbujaConSenal(int X[Max], int dimX)//Burbuja con SEÑAL   
{
   int i,j,aux,n,comienzo;
   bool band;
   i=1,band=false;
   n=dimX;
   comienzo=clock();
   do{
      band=true;
      for(j=1;j<=n-1;){
         if(X[j]>X[j+1]){
            aux=X[j];
            X[j]=X[j+1];
            X[j+1]=aux;
            band=false;
         }
         j=j+1;
      }
   }  
   while(i<=n-1 && band==false);
   printf( "\n\nNumero de segundos transcurridos desde el comienzo del programa: %f s\n", (clock()-comienzo)/(double)CLOCKS_PER_SEC );
}

//-->4 

int sacudida(int X[Max], int dimx)  
{
   int N,i,aux,j,k,comienzo;  
   int IZQ,DER;
   bool BAND;  
   comienzo=clock();
   N=dimx;
   IZQ=1;
   DER=N-1;
   k=N-1;
   while(IZQ<=DER){
      for(i=0;i<N-1;){
         for(j=DER;j>=IZQ;){
            if(X[j-1]>X[j]){
               aux=X[j-1];
               X[j-1]=X[j];
               X[j]=aux;
               k=i;
            }
            j=j-1;
         }
         i=i+1;
      }
   
      IZQ=k+1;
   
      for(i=0;i<N-1;){
         for(j=IZQ;j>=DER;){
            if(X[j-1]>X[j]){
               aux=X[j-1];
               X[j-1]=X[j];
               X[j]=aux;
               k=i;
            }
            j=j-1;
         }
         i=i+1;
      }
      DER=k-1;
   }
   printf( "\n\nNumero de segundos transcurridos desde el comienzo del programa: %f s\n", (clock()-comienzo)/(double)CLOCKS_PER_SEC );
}

//-->6

int ordenxinserdirec(int X[Max],int dimX)
{
   int i,k,aux,val,comienzo; 
   comienzo=clock();
   for(i=1;i<=dimX;i++){
      aux=X[i];
      k=i-1;
      while(k>=0&&aux<X[k]){
         val=X[k+1];
         X[k+1]=X[k];
         X[k]=X[k+1];
         k=k-1;
      }
      X[k+1]=aux;
   }
   printf( "\n\nNumero de segundos transcurridos desde el comienzo del programa: %f s\n", (clock()-comienzo)/(double)CLOCKS_PER_SEC );
}



Espero el codigo sea de utilidad, voy a estar subiendo entra manana y pasado el codigo a 4share para la descarga, cualquier otra inquietud no duden en preguntar, remienden la pag. 

Metodos de Ordenamiento (Parte 2)



int burbuja1(int X[Max], int dimX)//Burbuja 1 (de derecha a Izquierda)
{
   int N,i,aux,j;
   int comienzo;
   comienzo=clock();
   N=dimX;
   for(i=1;i<N;){
      for(j=N-1;j>0;){
         if(X[j-1]>X[j]){
            aux=X[j-1];
            X[j-1]=X[j];
            X[j]=aux;
         }
         j=j-1;
      }
      i=i+1;
   }
   printf( "\n\nNumero de segundos transcurridos desde el comienzo del programa: %f s\n", (clock()-comienzo)/(double)CLOCKS_PER_SEC );
}
//-->2    

int burbuja2(int X[Max], int dimX)//Burbuja 2 (de izquierda a derecha)
{
   int N,i,aux,j;
   int comienzo;
   comienzo=clock();
   N=dimX;
   for(i=1;i<N;){
      for(j=0;j<N-1;){
         if(X[j]>X[j+1]){
            aux=X[j];
            X[j]=X[j+1];
            X[j+1]=aux;
         }
         j=j+1;
      }
      i=i+1;
   }
   printf( "\n\nNumero de segundos transcurridos desde el comienzo del programa: %f s\n", (clock()-comienzo)/(double)CLOCKS_PER_SEC );
}

//-->3  

int burbujaConSenal(int X[Max], int dimX)//Burbuja con SEÑAL  
{
   int i,j,aux,n,comienzo;
   bool band;
   i=1,band=false;
   n=dimX;
   comienzo=clock();
   do{
      band=true;
      for(j=1;j<=n-1;){
         if(X[j]>X[j+1]){
            aux=X[j];
            X[j]=X[j+1];
            X[j+1]=aux;
            band=false;
         }
         j=j+1;
      }
   }
   while(i<=n-1 && band==false);
   printf( "\n\nNumero de segundos transcurridos desde el comienzo del programa: %f s\n", (clock()-comienzo)/(double)CLOCKS_PER_SEC );
}

//-->4

int sacudida(int X[Max], int dimx)
{
   int N,i,aux,j,k,comienzo;
   int IZQ,DER;
   bool BAND;
   comienzo=clock();
   N=dimx;
   IZQ=1;
   DER=N-1;
   k=N-1;
   while(IZQ<=DER){
      for(i=0;i<N-1;){
         for(j=DER;j>=IZQ;){
            if(X[j-1]>X[j]){
               aux=X[j-1];
               X[j-1]=X[j];
               X[j]=aux;
               k=i;
            }
            j=j-1;
         }
         i=i+1;
      }
  
      IZQ=k+1;
  
      for(i=0;i<N-1;){
         for(j=IZQ;j>=DER;){
            if(X[j-1]>X[j]){
               aux=X[j-1];
               X[j-1]=X[j];
               X[j]=aux;
               k=i;
            }
            j=j-1;
         }
         i=i+1;
      }
      DER=k-1;
   }
   printf( "\n\nNumero de segundos transcurridos desde el comienzo del programa: %f s\n", (clock()-comienzo)/(double)CLOCKS_PER_SEC );
}

//-->6

int ordenxinserdirec(int X[Max],int dimX)
{
   int i,k,aux,val,comienzo;
   comienzo=clock();
   for(i=1;i<=dimX;i++){
      aux=X[i];
      k=i-1;
      while(k>=0&&aux<X[k]){
         val=X[k+1];
         X[k+1]=X[k];
         X[k]=X[k+1];
         k=k-1;
      }
      X[k+1]=aux;
   }
   printf( "\n\nNumero de segundos transcurridos desde el comienzo del programa: %f s\n", (clock()-comienzo)/(double)CLOCKS_PER_SEC );
}

Metodos de Ordenamiento en C/C++ (Parte 1)

Espero que sea de gran ayuda este codigo, es largo pero la verdad muy didactico donde compara el tiempo de ejecuion de cada metodo. Voy a tratar de subirlo a mi cuenta de 4Share para que puedan descargarlo. Cual quier otra pregunta sobre programacion, iphone, ipod. escriban aqui o en mi twitter.
Dentro de poco subire tutoriales sobre jailbreak, unlock..

Por la extension voy a dividir este post en 3:




#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define Max 10000
using namespace std;
void leerVectorEspecial(int X[Max],int *dimf);
void mostrarVector(int X[Max],int dimX);

int burbuja1(int X[Max],int dimX);
int burbuja2(int X[Max],int dimX);
int burbujaConSenal(int X[Max],int dimX);
int sacudida(int X[Max],int dimx);
int ordenxinserdirec(int X[Max],int dimX);
int ordenxinserxbinar(int X[Max],int dimX);
int seleccion(int X[Max],int dimX);
int shell(int X[Max],int dimX);
int reducerrecursivo (int INI, int FIN,int A[Max]);
int reduceiterativo(int INI,int FIN,int *POS,int X[Max]);
int rapidoiterativo(int X[Max],int N);
int monticulo(int X[Max],int dimX);
int insertaMonticulo(int X[Max],int dimX);
int eliminaMonticulo(int X[Max],int dimX);
int main()
{
   int A[Max],nf,opc;
      textbackground(8);//color de resalte de las letras
      textcolor(1);//color de letra
      clrscr();//hace que toda la pantalla tome el colo de resalte de las letras
      gotoxy(18,2);//ubica el titulo en el centro de la ventana
      printf("|*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-|");
      gotoxy(18,3);
      printf("     *---->Tipos de Ordenamiento Directo<----*");
      gotoxy(18,4);
      printf("|*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-|\n\n");
      leerVectorEspecial(A,&nf);
      mostrarVector(A,nf);
      printf("_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-\n");
      printf("\nOPCIONES DE ORDENAMIENTO:\n\n");
      printf("\t <> Burbuja 1---------------<1>\n");
      printf("\t <> Burbuja 2---------------<2>\n");
      printf("\t <> Burbuja con Se¤al-------<3>\n");
      printf("\t <> Burbuja con Sacudida----<4>\n");
      printf("\t <> Insercion Directa-------<5>\n");
      printf("\t <> Insercion Binaria-------<6>\n");
      printf("\t <> Seleccion Directa-------<7>\n");
      printf("\t <> Shell-------------------<8>\n");
      printf("\t <> Quicksort Recursivo-----<9>\n");
      printf("\t <> Quicsort Iterativo------<10>\n");
      printf("\t <> Monticulo---------------<11>\n");
      printf("\t <> Salir-------------------<12>\n");
      printf("-->Ingrese la opcion que desee: ");
      scanf("%d",&opc);
      switch (opc){
         case 1:
            printf("\n--------->M.O.D Burbuja 1\n");
            burbuja1(A,nf);
            mostrarVector(A,nf);
            break;
         case 2:
            printf("\n--------->M.O.D Burbuja 2\n");
            burbuja2(A,nf);
            mostrarVector(A,nf);
            break;
         case 3:
            printf("\n--------->M.O.D. Burbuja con Se¤al\n");
            burbujaConSenal(A,nf);
            mostrarVector(A,nf);
            break;
         case 4:
            printf("\n--------->M.O.D Burbuja con Sacudida\n");
            sacudida(A,nf);
            mostrarVector(A,nf);
            break;
         case 5:
            printf("\n--------->M.O.D Insercion Directa \n");
            ordenxinserdirec(A,nf);
            mostrarVector(A,nf);
            break;  
         case 6:
            printf("\n--------->M.O.D Insercion Binaria\n");
            ordenxinserxbinar(A,nf);
            mostrarVector(A,nf);
            break;  
         case 7:
            printf("\n--------->M.O.D Seleccion directa \n");
            seleccion(A,nf);
            mostrarVector(A,nf);
            break;
         case 8:
            printf("\n--------->M.O.D Shell\n");
            shell(A,nf);
            mostrarVector(A,nf);
            break;
         case 9:
            printf("\n--------->M.O.D Quicksort Recursivo\n");
            reducerrecursivo (0,nf,A);
            mostrarVector(A,nf);
            break;  
         case 10:
            printf("\n--------->tM.O.D Quicksort Iterativo\n");
            rapidoiterativo(A,nf);
            mostrarVector(A,nf);
            break;
         case 11:
            printf("\n--------->M.O.D. Monticulo \n");
            monticulo(A,nf);
            mostrarVector(A,nf);
            break;
         case 12:
            exit(1);
         default:
            printf("Numero Invalido\n");
      }    
   return 0;
   system("pause");
}

void leerVectorEspecial(int X[Max],int *dimX)
{
   int i, N;
   srand(time(0));
   printf("-->Ingrese el tama¤o del Vector a ordenar:  ");
   scanf("%d",&N);
   for(i=0;i<N;i++){
      X[i]=rand()%1000;
   }
   *dimX=N;
}

void mostrarVector(int X[Max],int dimX)
{
   int i,val;
   printf("\n\t-*-*-*-*-*-**-*-*-*->Vector sin ordenar<-*-*-*-*-*-*-*-*-*-*-*-*- \n\n");
   for(i=0;i<dimX;){
      if(i<9){
         val=X[i];
         printf("|->[%d]=%7d\t",i+1,val);
      }
      if(i>8 && i<99){
         val=X[i];
         printf("|->[%d]=%6d\t",i+1,val);
      }
      if(i>98&&i<999){
         val=X[i];
         printf("|->[%d]=%5d\t",i+1,val);
      }
      if(i>998&&i<9999){
         val=X[i];
         printf("|->[%d]=%4d\t",i+1,val);
      }
      if(i>9998&&i<99999){
         val=X[i];
         printf("|->[%d]=%3d\t",i+1,val);
      }
      if(i>99998&&i<999999){
         val=X[i];
         printf("|->[%d]=%2d\t",i+1,val);
      }
      i=i+1;    
   }
      printf("\n");
      getch();
      printf("--->Presione una tecla para continuar<---");
}
//-->1
  

Multiplicacion de Matrices en C/C++

Para los que recien comienzan en este mundo de la programcion en C les dejo este codigo que multiplica dos matricez. Para los que necesiten el archivo cpp voy a subirlo a mi cuenta de 4share, para descargalo solo lo buscan el archivo en la parte inferior que dice "Archivos para descargar" 


#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
using namespace std;
const int MaxF=10, MaxC=10;
void leerMatriz(int X[MaxF][MaxC],int *dimF,int *dimC);
void mostrarMatriz(int X[MaxF][MaxC],int dimF,int dimC);
void multiplicarMatriz(int X[MaxF][MaxC],int XdimF,int XdimC,int Y[MaxF][MaxC],int YdimF,int YdimC,int Z[MaxF][MaxC],int *ZdimF,int *ZdimC);
void formatofondo();
int main()
{
   formatofondo();
   int A[MaxF][MaxC],B[MaxF][MaxC],C[MaxF][MaxC],Anf,Anc,Bnf,Bnc,Cnf,Cnc;
   leerMatriz(A,&Anf,&Anc);
   mostrarMatriz(A,Anf,Anc);
   leerMatriz(B,&Bnf,&Bnc);
   mostrarMatriz(B,Bnf,Bnc);
   multiplicarMatriz(A,Anf,Anc,B,Bnf,Bnc,C,&Cnf,&Cnc);
   mostrarMatriz(C,Cnf,Cnc);
   system("pause");
   return 0;
}
void leerMatriz(int X[MaxF][MaxC],int *dimF,int *dimC)
{
   int i,j,M,N,Val;
   printf("\n\nDimension de la MATRIZ:\n\n");
   printf("Num filas--->");
   scanf("%d",&M);
   printf("Num Columnas ---->");
   scanf("%d",&N);
   printf("\n");
   if(M<MaxF && N<MaxC){
      for(i=0;i<M;i++){
         for(j=0;j<N;j++){
            printf("Matriz[%d][%d]=",i+1,j+1);
            scanf("%d",&Val);
            X[i][j]=Val;
         }
      }
      *dimF=M;
      *dimC=N;
   }
   else{
      printf("Dimension fuera de RANGO\n");
      system("pause");
      exit(1);
   }
}

void mostrarMatriz(int X[MaxF][MaxC],int dimF, int dimC)
{
   int i,j;
   printf("\nMatriz[%d][%d]:\n\n",dimF,dimC);
   for(i=0;i<dimF;i++){
      for(j=0;j<dimC;j++){
         printf("%4d", X[i][j]);
      }
      printf("\n");
   }
   printf("\n\n");
}
void multiplicarMatriz(int X[MaxF][MaxC],int XdimF,int XdimC,int Y[MaxF][MaxC],int YdimF,int YdimC,int Z[MaxF][MaxC],int *ZdimF,int *ZdimC)
{
   int i,j,k;
   if(XdimC==YdimF){
      printf("La multiplicacion es: ");
      for(i=0;i<XdimF;i++){
         for(j=0;j<YdimC;j++){
            Z[i][j]=0;
            for(k=0;k<YdimF;k++){
               Z[i][j]=Z[i][j]+X[i][k]*Y[k][j];
            }
         }
      }
      *ZdimF=XdimF;
      *ZdimC=YdimC;
   }
   else{
      printf("No es posible multiplicar.");
   }
}
void formatofondo()
{
   textbackground(WHITE);//color de resalte de las letras
   textcolor(BLACK);//color de letra
   clrscr();
}

Programando en C (Subprogramas)

Estos son algunos conceptos basicos de C referente a subprogramas, espero les sirva.
En C existe tres tipos de subprogramas:
*Funciones
*Procedimientos
*Predicados
/*\ Las funciones son subprogramas que necesariamente retornan un valor al programa que los llamo, y pueden tener parametros de entrada
Ej: ACCION suma (ENTERO x, ENTERO y)
           ENTERO s
           s<-x+y
           RETORNAR (s)
      FIN_ACCION
/*\ Los Procedimientos son subprogramas que no retornan ningun valor pero pueden hacerlo a travez de parametros que pueden ser por valor,referencia o no parametros.
Ej:
ACCION leerDato (ENTERO *x,ENTERO*y)
  ENTERO a1,b1
  LEER (a1)
  LEER (b1)
  *y<-a1
  *x<-b1
en este caso los parametros son por referencia ya que ingresan al procedimiento punteros que "referencian" a las variables de un programa principal.
/*\ Predicados: Son subprogramas que devuelven V o F (booleano)

Hablando por celular en 1928?



Navegando por la red ,si bien no tiene que ver con el tema del Blog, me encontre con un video que sino fuera por la fecha no tendria nada de raro, ya que se puede observar en el a una dama caminando y hablando con lo que parece un celular, hoy eso no tiene nada de especial pero para la epoca 1928 en la cual todavia no existian celulares parace un hecho muy peculiar. Esto ocurrio en el estreno de Circus una pelicula de Charles Chaplin.

El nuevo Playstation Phone



Bueno primero un saludo a todos este es mi primer post espero que les sea de interes sobre todo para los fans del playstation quienes ahora podran contar con la convinacion perfeta Playstation + Telefono=Playstation Phone.

Exteriormente parece un móvil cualquiera, pero en lugar de un teclado QWERTY deslizable cuenta con los botones típicos de un mando de Playstation.
Especificaciones
  1. Procesador Qualcomm 1GHZ
  2. 512 MB de Ram
  3. Pantalla 3,7-4,1 pulgadas

Probablemente funcionará con Android 3.0 y tendrá un Sony Marketplace para descargar juegos. Destaca que por fin Sony deje el Memory Stick en favor de una ranura para tarjetas microSD.
Se rumorea que saldrá a la venta para esta navidad o para comienzos del 2011.