Opinion: Windows Live Messenger 2011

Como recientemente lo comente tuve que formatear mi laptop, una muy ardua labor… esto por que tenemos que instalar nuevamente toda la paqueteria. Entre la paqueteria que utilizo esta el messenger y pues descargue el MSN oficial de microsoft para ser mas especificos el Windows Live Messenger 2011 pero oh sorpresa veo que han cambiado su apariencia y ademas sus funciones, donde para ser honestos este no me agrado nada, ya que el cliente de MSN como tal fue desaparecido y ahora fue fusionado con un tipo canal de noticias/canal social, para mi este nuevo MSN es un fiasco.

Para mas detalles pueden ver las siguientes imagenes:

opinion-windows-live-messenger

opinion-windows-live-messenger-2

Algo muy curioso es que para cambiar tu nick ya no puedes realizarlo desde la misma aplicacion (click en archivo, cambiar nombre para mostrar) si no que tienes que realizarlo desde la pagina de windows live de Microsoft, donde supongo que la idea de esto es sincronizar toda tu informacion con la “gran nube”.

Otro aspecto a destacar en este nuevo cliente es la gran cantidad de publicidad que se le ha incluido, algo no muy agradable para el usuario final.

Pero pues creo que los usuarios “ordinarios” no notaran la diferencia, asi que supongo que estaran encantados con esta nueva inteface.

Temas de conversacion con Mujeres

Pues con este post inaguramos la seccion “La escuela de la Vida”, y me gustaria compartir algo de suma importancia con ustedes. Dicen por ahi que las mujeres son indescifrables… desde mi perspectiva diria que no del todo… pero hace un par de años hubiera creido que en efecto son indescifrables.

Cabe mencionar que este tip no es en un primer acercamiento … si no mas bien para mantener una convivencia con ellas, este tip me lo paso mi amigo @baktron y resumiendo la pregunta seria: Cual seria un buen tema de conversacion para una mujer? A lo que la respuesta seria: sobre ellas mismas.

Si, hablar sobre ellas mismas es un tema de conversacion infinito, el secreto esta en no abusar de esto … (no te gustaria parecer aburrido), puedes preguntarles como les va en la escuela, en el trabajo, en la estetica, etc. Tanto como puedas y no sea exagerado.

Saludos! y no abusen mucho de esto si no acabaran por aburrirlas. 🙂

Inauguramos nueva sección

Pues en efecto inauguraremos una nueva sección en mi blog denominada “La escuela de la vida” y pues según intuirán esta no tiene que ver mucho en la temática geek, pero ese es el punto… Hablar de cosas ajenas a lo geek o la tecnología.

En esta sección se trataran cosas que normalmente no encontraras en NINGUN sitio de internet  y mucho menos en ninguna escuela… ya que son cosas que uno va aprendiendo con la experiencia…

Así que sin más les invito a estar al pendiente de esta nueva sección ya que en breve se comenzara a publicar contenido.

USBWebServer un Servidor Web portable PHP+MYSQL+APACHE

A veces cuando busco algun software en lo personal  me gusta que sea una aplicacion rapida, efectiva y que cumpla la funcion que nesecito.

En alguna ocasion  nesecite un servidor web que incluyera Apache, PHP y MySQL el servidor web preferido por muchos geeks, pero nesecitaba una version portable asi que en mi busqueda encontre un software llamado USBWebserver .

Este software es completamente freeware y cumple todo lo que nesecitaba: PHP+MySQL+APACHE, lo mas destacado de este software es que es completamente configurable,  ya que se puede modificar a voluntad el archivo de configuracion de apache.

servidor-web-portable-1

La interfaz de configuracion es completamente amigable ya que al ejecutar el portable nos da varias opciones,  que van desde detener cada uno de los servicios hasta configurar los puertos del servidor web  como se ve en la siguiente imagen, ademas otra ventaja es que este mismo puede trabajarse en segundo plano a la hora de ser minimizado.

servidor-web-portable-2

Otra caracteristica muy util es que incluye phpmyadmin un gestor muy completo de bases de datos que nos facilita enormemente la vida, a continuacion una imagen de lo que digo:

Sin mas preambulos pueden visitar el sitio official del proyecto para mas detalles y descargar el servidor web portable.

Sitio del servidor web portable: www.usbwebserver.net

Serial VmWare Workstation 7

Pues recientemente tuve que formatear mi Laptop, asi que como todo buen geek me puse a instalar nuvamente toda la paqueteria … una muy ardua labor. Entonces me propuse  instalar el VmWare (software para “emular” sistemas operativos) en su version 7,  la verdad no estoy del todo seguro de en que version se encuentre el software en estos momentos.

Asi que me dispuse a realizar una busquda en google, donde ningun resultado que me brindaba google era satisfactorio, ya que yo solo nesecitaba el serial y no cosas raras como cracks, keyguen’s, etc.

La verdad me costo mucho trabajo encontrar estos seriales, asi que los comparto espero sean de su agrado:


Serial VmWare Workstation 7:

FY1EK-AEY1K-M8ECY-FPYQX-QU886
VV70K-86ZD7-M89EQ-DEWNX-YPH94
FV302-D2Y95-088FQ-JPNXG-ZQ2YD
UF3TR-8NE9M-H819Q-5GNEG-WG8W4
AV3JU-AYD5L-080UZ-6NZGZ-QY0G2
AU5TK-0CZEJ-H84JY-G6Z5G-QK8F2
YF5XU-06F46-4810P-2YZ7X-Z78T4
VV54U-A9X4H-480FQ-PFZXT-WZ28A
CU7WU-62YEH-081CZ-WNYET-ZZA84
UY3EH-4HDEL-M803Q-0GP5G-Q62T2
GA110-DVF8L-084WP-7PZET-NU2Y8
GU350-03W03-H85PP-7QQNC-N3HEF
VG7JR-6UDDK-085CQ-NMWEE-XU8DA
VC59A-0WE51-48D0Y-V5ZNT-QCKC4
CG50H-43F55-081FY-67WQG-Y2HD6
ZF1XU-AVW01-48E2Y-TQY7V-Z7REF
FV39K-4HZ40-M889P-X7MEZ-NP8T8
YF598-FVG0J-48E7Y-Z7Z5X-QLRGA
ZF14U-45X9P-085HP-E7XQ9-NG0VD
GV1DU-AEF5M-M81QQ-PPQ7X-XYRT4
FU1DH-61W04-M84VP-9WX7T-MVUD2
FC3RK-AGZ02-H853Z-JNXZC-NPHE8
VY582-FEY42-M8ELP-25QQT-ZVKV0
YZ5N2-21D0H-084FP-QGPGT-N3RCA

Termino la espera, comenzo la cuarta temporada de: The Big Bang Theory

Pues como muchos sabran esta es la serie geek por excelencia… Y pues al igual que yo supongo que muchos esperaban saber que es lo que pasaria con Sheldon y su nueva “novia”, el principio del fin comenzo y Sheldon comenzara a reproducirse …. Pero ¿de que forma? Para que les platico, mejor veanlo:

Capitulo The big Bang Theory 1er Capitulo 4ta temporada

Código Fuente en Java para la resolución de Métodos Numéricos

Hace mucho en una clase de programación de JAVA me pidieron realizar un programa que resolviera incógnitas por diverso métodos numéricos entre los cuales se encuentran:

  • Método de Bisección
  • Método de NEWTON-RAPHSON
  • Método de GAUSS
  • Método de GAUSS-SEIDEL PARA 3 ECUACIONES
  • Método de GAUSS-JORDAN
  • Método de LU PARA 3 ECUACIONES
  • Método de Interpolación de NEWTON
  • Método de Interpolación de LAGRANGE

Y pues eh decidido compartir el código de este proyecto, la verdad el código no es del todo mío… Fue facilitado por un compañero, porque para ser honestos a mi no me acaba de agradar la programación orientada a objetos, prefiero la estructurada, pero en gustos se rompen generos…

NOTA:el codigo fuente lo puedes descargar a continuación:

>>> DESCARGAR Codigo Fuente <<<

El código fuente se muestra a continuación:

import java.lang.Math;
import java.io.*;
//Clase ProyectoJava
public class  ProyectoJava{
  
  //Metodo Constructor
  public static void main(String args[]){
  ProyectoJava Proyecto = new ProyectoJava();
  Proyecto.menu();	//solo se manda a llamar a menu desde aqui, ya que menu llama a los demas metodos posteriromente
  }
    
  
    //(1)Metodo Biseccion	
  public void MetodoBiseccion(){
    double a;
    double b;
    double tol;
    System.out.println("\t\t\t\"METODO DE BISECCION\"");
    System.out.println("Extremo Izquierdo: ");
    a=lee();
    System.out.println("Extremo Derecho: ");
    b=lee();
    System.out.println("Tolerancia: ");
    tol=lee();
    double c;
    do{
    c=(a+b)/2.0;
    if(((c*c-5)*(a*a-5))<0){
      b=c;
    }
    else{
      a=c;
    }
      }while(Math.abs(a-b)>tol);
      System.out.println("La raiz es: "+c);			
  }


  //(2)Metodo NewRaphson
  public void MetodoNewtonRaphson(){
    double a;
    double tol;
    double b;
    double c; 
    System.out.println("\t\t\t\"METODO DE NEWTON-RAPHSON\"");
    System.out.println("Primera Aproximacion: ");
    a=lee();
    System.out.println("Tolerancia: ");
    tol=lee();
    do{
      b=a-(a*a-a-2)/(2*a-1);
      c=Math.abs(a-b);
      a=b;	
      	}while(c>tol);
      	System.out.println("La raiz es: "+b);
    }


  //(3) metodo gauss
  public void MetodoGauss(){
    int i,j,k,n;
    double a[][] = new double [5][6];
    double cte,x1,x2,x3;
    double x[] = new double [5];
    System.out.println("\t\t\t\"METODO DE GAUSS\"");
    System.out.println("Dame el numero de incognitas (de hasta 5) ");
    n=leeint();
    System.out.println("Ingrese coeficientes");
    for(i=0;i<n;i++)
    {
      System.out.println("Renglon "+(i+1));
      for(j=0;j<=n;j++)
      {
        System.out.println(" Ingrese a "+(i+1)+" "+(j+1));
        a[i][j]=lee();
      }
    }
    for(i=0;i<n-1;i++){
      for(j=i+1;j<=n;j++){
       cte=(-a[j][i])/(a[i][i]);
          for(k=i;k<n+1;k++){
       a[j][k]=((a[i][k])*cte)+a[j][k];
       }
       }
    }
   	x3=a[n-1][n]/a[n-1][n-1];
   	x2=(a[n-2][n]-x3*a[n-2][n-1])/a[n-2][n-2];
   	x1=(a[n-3][n]-x2*a[n-3][n-2]-x3*a[n-3][n-1])/a[n-3][n-3];
    System.out.println("x0= "+x1+" \nx1= " +x2+" \nx2= " +x3);
    }

  
  
  //(4)gauss seidel
  public void MetodoGaussSeidel(){
    double x0,x1,x2,tol,e;
    int i,j;
    double a[][]=new double [3][4];
    System.out.println("\t\t\t\"METODO DE GAUSS-SEIDEL 3 ECUACIONES\"");
    System.out.println("Ingrese tolerancia");
    tol=lee();
    System.out.println("Ingrese coeficientes");
    for(i=0;i<3;i++)
    {
      System.out.println("Renglon "+(i+1));
      for(j=0;j<=3;j++)
      {
        System.out.println(" Ingrese a "+(i+1)+" "+(j+1));
        a[i][j]=lee();
      }
    }
    x1=0.0;
    x2=0.0;
    do{
      e=x1;
      x0=(a[0][3]-x1*a[0][1]-x2*a[0][2])/a[0][0];
      x1=(a[1][3]-x0*a[1][0]-x2*a[1][2])/a[1][1];
      x2=(a[2][3]-x0*a[2][0]-x1*a[2][1])/a[2][2];
    }while(Math.abs(e-x1)>tol);
    System.out.println("x0= "+x0+" \nx1= " +x1+" \nx2= " +x2);
    }
  
  
  //(5) gauss jordan
  public void MetodoGaussJordan(){
    int i,j,k,n;
    double a[][] = new double [5][6];
    double cte;
    double x[] = new double [5];
    System.out.println("\t\t\t\"METODO DE GAUSS-JORDAN\"");
    System.out.println("No. de incognitas (maximo 5):   ");
    n=leeint();
    System.out.println("Dame los coeficientes: ");
    for(i=0;i<n;i++)
    {
      System.out.println("Renglon "+(i+1));
      for(j=0;j<=n;j++)
      {
        System.out.println(" Ingrese a "+(i+1)+" "+(j+1));
        a[i][j]=lee();
      }
    }
    for(i=0;i<n-1;i++){
      for(j=i+1;j<=n;j++){
       cte=(-a[j][i])/(a[i][i]);
          for(k=i;k<n+1;k++){
       a[j][k]=((a[i][k])*cte)+a[j][k];
       }
       }
    }
    for(i=0;i<n;i++)
    {
      System.out.println("Renglon "+(i+1));
      for(j=0;j<=n;j++)
      {
        System.out.println(" a "+(i+1)+" "+(j+1)+" =" +a[i][j]);
      }
    }
    }

  
  //(6) LU
  public void MetodoLu(){
    int i,j;
    double Y1,Y2,Y3,X1,X2,X3;
    double A[][] = new double [3][3];
    double L[][] = new double [3][3];
    double U[][] = new double [3][3];
    double B[] = new double [3];
    System.out.println("\t\t\t\"METODO DE LU    3 ECUACIONES\"");
    System.out.println("Ingrese coeficientes d");
    for(i=0;i<3;i++)
    {
      System.out.println("Renglon "+(i+1));
      for(j=0;j<3;j++)
      {
        System.out.println(" Ingrese a "+(i+1)+" "+(j+1));
        A[i][j]=lee();
      }
    }
    System.out.println("Ingrese los terminos independientes");
    for(i=0;i<3;i++){
      System.out.println("Termino  "+(i+1));
      B[i]=lee();
      }
    for(i=0;i<3;i++){
   			L[i][0]=A[i][0];
   			U[i][i]=1;
      }
    U[0][1]=A[0][1]/L[0][0];
    L[1][1]=A[1][1]-L[1][0]*U[0][1];
    L[2][1]=A[2][1]-L[2][0]*U[0][1];
    U[0][2]=A[0][2]/L[0][0];
    U[1][2]=(A[1][2]-L[1][0]*U[0][2])/L[1][1];
    L[2][2]=A[2][2]-L[2][0]*U[0][2]-L[2][1]*U[1][2];
    Y1=B[0]/L[0][0];
    Y2=(B[1]-L[1][0]*Y1)/L[1][1];
    Y3=(B[2]-L[2][0]*Y1-L[2][1]*Y2)/L[2][2];
    X3=Y3;
    X2=Y2-U[1][2]*X3;
    X1=Y1-U[0][1]*X2-U[0][2]*X3;
    System.out.println("El resultado es:\nx0= "+X1+" \nx1= " +X2+" \nx2= " +X3);
    }

  
  //(7) Interpolacion Newton
  public void MetodoInterNewton(){
    double a[][] = new double [5][2];
    double x,y,fx1x0,fx2x1,fx3x2,fx4x3,fx2x1x0,fx3x2x1,fx4x3x2,fx3x2x1x0,fx4x3x2x1,fx4x3x2x1x0;
    int i;
    System.out.println("\t\t\t\"INTERPOLACION DE DIFERENCIAS DE NEWTON P/ 5 PTOS.\"");
    System.out.println("Valor a interpolar: ");
    x=lee();
    System.out.println("Dame los 5 pares de puntos");
    for(i=0;i<5;i++){
        System.out.println("Dame x "+i);
        a[i][0]=lee();
        System.out.println("Dame f(x) "+i);
        a[i][1]=lee();
        }		
    fx1x0=(a[1][1]-a[0][1])/(a[1][0]-a[0][0]);
    fx2x1=(a[2][1]-a[1][1])/(a[2][0]-a[1][0]);
    fx3x2=(a[3][1]-a[2][1])/(a[3][0]-a[2][0]);
    fx4x3=(a[4][1]-a[3][1])/(a[4][0]-a[3][0]);
    fx2x1x0=(fx2x1-fx1x0)/(a[2][0]-a[0][0]);
    fx3x2x1=(fx3x2-fx2x1)/(a[3][0]-a[1][0]);
    fx4x3x2=(fx4x3-fx3x2)/(a[4][0]-a[2][0]);
    fx3x2x1x0=(fx3x2x1-fx2x1x0)/(a[3][0]-a[0][0]);
    fx4x3x2x1=(fx4x3x2-fx3x2x1)/(a[3][0]-a[0][0]);
    fx4x3x2x1x0=(fx4x3x2x1-fx3x2x1x0)/(a[4][0]-a[0][0]);
    y=a[0][1]+fx1x0*(x-a[0][0])+fx2x1x0*(x-a[0][0])*(x-a[1][0])+fx3x2x1x0*(x-a[0][0])*(x-a[1][0])*(x-a[2][0])+fx4x3x2x1x0*(x-a[0][0])*(x-a[1][0])*(x-a[2][0])*(x-a[3][0]);
          System.out.println("f(x) en ese punto es: "+y);
    }


  //(8) Interpolacion Lagrange
  public void MetodoInterLagrange(){
    int n,i;
    double x,y;
    double a[][] = new double [4][2];
    System.out.println("\t\t\t\"METODO DE INTERPOLACION LAGRANGE  2-4 PTOS.\"");
    do{
    System.out.println("Dame el numero de puntos");
    n=leeint();	
    }while(n<2 || n>4);
    System.out.println("Dame los  pares de puntos");
    for(i=0;i<n;i++){
        System.out.println("Dame x "+i);
        a[i][0]=lee();
        System.out.println("Dame f(x) "+i);
        a[i][1]=lee();
        }
    System.out.println("Dame el valor a interpolar ");
    x=lee();
    switch(n){
      case 2:
      y=(((((x-a[1][0])*a[0][1])/(a[0][0]-a[1][0]))+(((x-a[0][0])*a[1][1])/(a[1][0]-a[0][0]))));
      System.out.println("f(x) en ese punto es: "+y);
      break;
      case 3:
      y=((x-a[1][0])*(x-a[2][0])*a[0][1])/((a[0][0]-a[1][0])*(a[0][0]-a[2][0]))+((x-a[0][0])*(x-a[2][0])*a[1][1])/((a[1][0]-a[0][0])*(a[1][0]-a[2][0]))+((x-a[1][0])*((x-a[0][0])*a[2][1])/((a[2][0]-a[0][0])*(a[2][0]-a[1][0])));
      System.out.println("f(x) en ese punto es: "+y);
      break;
      case 4:
      y=((x-a[1][0])*(x-a[3][0])*(x-a[2][0])*a[0][1])/((a[0][0]-a[1][0])*(a[0][0]-a[2][0])*(a[0][0]-a[3][0]))+((x-a[0][0])*(x-a[2][0])*(x-a[3][0])*a[1][1])/((a[1][0]-a[0][0])*(a[1][0]-a[2][0])*(a[1][0]-a[3][0]))+((x-a[0][0])*(x-a[1][0])*((x-a[3][0])*a[2][1])/((a[2][0]-a[0][0])*(a[2][0]-a[1][0])*(a[2][0]-a[3][0]))+((x-a[0][0])*(x-a[1][0])*((x-a[2][0])*a[
3][1])/((a[3][0]-a[0][0])*(a[3][0]-a[1][0])*(a[3][0]-a[2][0]))));
      System.out.println("f(x) en ese punto es: "+y);
      break;
      default:
      System.out.println("INVALIDO");
      break;	
    }
  }

  
  //para leer desde teclado
  public double lee(){
    double num;
    try{
      InputStreamReader isr = new InputStreamReader (System.in);
      BufferedReader br = new BufferedReader(isr);
      String sdato;
      sdato = br.readLine();
      num = Double.parseDouble(sdato);
    }
    catch(IOException ioe){
      num=0.0;
    }
    return num;
    }

  //para  leer un entero
  public int leeint(){
    int num;
    try{
      InputStreamReader isr = new InputStreamReader (System.in);
      BufferedReader br = new BufferedReader(isr);
      String sdato;
      sdato = br.readLine();
      num = Integer.parseInt(sdato);
    }
    catch(IOException ioe){
      num=0;
    }
    return num;
    }
  
  
  //para salir del programa
  public int Fuera(){
    int sal; 
    System.out.println("\n\n\nSI DESEAS OTRO METODO PRESIONA [1]");
    sal=leeint();
    return sal;
    }




  //despliega menu
  public void menu(){
    int a;
    int p;
    do{
    do{
    System.out.println("\n\n\t\t\tMETODOS NUMERICOS\n\n");
    System.out.println("\t1.-Biseccion\n\t2.-Newton-Raphson\n\t3.-Gauss\n\t4.-Gauss-Seidel\n\t5.-Gauss-Jordan\n\t6.-LU\n\t7.-Interpolacion Newton\n\t8.-Interpolacion Lagrange");
    System.out.println("\n\nEscoja el numero del metodo que desea usar:");
    a=leeint();
    }while(a<1 || a>8);
    switch(a){
      case 1:
      MetodoBiseccion();  //manda a llamara a cada uno de los metodos
      p=Fuera();
      break;
      case 2:
      MetodoNewtonRaphson();
      p=Fuera();
      break;
      case 3:
      MetodoGauss();
      p=Fuera();
      break;
      case 4:
      MetodoGaussSeidel();
      p=Fuera();
      break;
      case 5:
      MetodoGaussJordan();
      p=Fuera();
      break;
      case 6:
      MetodoLu();
      p=Fuera();
      break;
      case 7:
      MetodoInterNewton();
      p=Fuera();
      break;
      case 8:
      MetodoInterLagrange();
      p=Fuera();
      break;
      default:
      System.out.println("Opcion incorrecta");
      p=1;
      break;
      }
    }while(p==1);
    }

}

 

 

Configurando pantalla con Xorg.conf en Live CD Linux

Pues recientemente me di a la tarea de instalar BackTrack 4 en mi laptop ya que como toda computadora decente esta debía portar un sistema operativo Linux en sus entrañas, la rutina es básica:

1.- Descargas el ISO Live CD de la página Oficial
2.- Modificas el BIOS de tu PC para que pueda bootear del CD
3.- Comenzar a utilizar tu Live CD

Aunque en el caso de BackTrack tenemos que loguearnos en la terminal como root y de password tenemos que ingresar toor y después iniciar el escritorio por medio del comando startx, pero oh! Sorpresa.
La rutina fallo! Ya que a la hora de iniciar startx este no iniciaba y me mandaba un error, este error es muy común en las nuevas computadoras ya que la distribución Linux no cuenta con soporte con los nuevos controladores del mercado y por ende no podrás visualizar nada en tu pantalla.
Así que como buen Geek que soy me puse a googlear un rato y encontré una solución temporal, a continuación la describo:

Una vez logueados debemos Auto-configurar xorg.conf (la configuración de nuestra pantalla), para ello emplearemos el siguiente comando:
[code]Xorg -configure[/code]
Una vez realizado esto se ejecutaran códigos en pantalla y en “teoría” no debería mandarnos ningún error, después de eso podremos finalizar si se configuro adecuadamente nuestra tarjeta con el siguiente comando:
[code]X -retro -config /root/xorg.conf.new[/code]

Nos aparecerá una pantalla blanca con cuadritos negros y nuestro cursor del mouse, si les aparece esto es que su tarjeta se configuro adecuadamente, para regresar a la consola de comandos deben hacerlo presionando: CTRL + ALT + BACKSPACE.

Una  vez que hayamos hecho esto, procederemos a copiar nuestra nueva configuración a la carpeta de configuración de X con el siguiente comando:

[code]cp /root/xorg.conf.new /etc/X11/xorg.conf[/code]

Después de esto ya podemos iniciar nuestro entorno grafico por medio del comando
[code]startx[/code]

Una vez realizado esto iniciaremos nuestro Linux con una resolución muy pobre, pero lo importante es que ya habremos iniciado el entorno grafico lo restante es conseguir el driver adecuado para nuestra tarjeta de video.

¿Celebrar o no celebrar el nacimiento de Google?Ahí el dilema!

Pues hoy 27 de septiembre de 2010 cumple su cumpleaños número 12 el buscador omnipotente llamado Google, además de ser el buscador por excelencia esta pequeña empresa se ha apoderado de casi todo internet con una serie de servicios que ya todos conocemos: Google Mail, Google Docs, Google Maps, Google Aps, Google Traductor, así como un laaaaaargo etc. Pues el detalle es que en lo personal ya no sé si celebrar o entristecerme…. ¿Acaso estará muy lejano el día cuando veamos Google Fonts? XD

cumpleanos-no-12-google