jueves, 2 de diciembre de 2010

PROGRAMA FINAL

este era un programa que me parecia bueno intentar pero no lo pude terminar
lo que iba a hacer era tener unos archivos donde tendria sus datos, checaria la fecha de hoy, y buscaria todas las actividades que tenga que hacer el dia de hoy y lo mostraria en una ventana, al igual que podrias ingresar nuevos eventos y asi poder checarlos tambien tenia el calendario de fime y te lo mostraba, me falta ajustarle varios detalles pero lo terminare.

AQUI EL CODIGO:

import javax.swing.*;
import java.util.Calendar;
import java.util.Date;
import java.io.*;
import javax.swing.JOptionPane;
import java.util.GregorianCalendar;

public class CalendarioFime2 {
    public static void main(String args[]){
         String opcion,
                salida=" ",
                salida2=" ";


         JTextArea areaSalida= new JTextArea (10,10);//crea las ventanas
         java.util.Date fecha=new Date();//de texto
         JOptionPane.showMessageDialog(null,fecha,"Esta es la fecha del dia Bienvenido",JOptionPane.INFORMATION_MESSAGE);
         System.out.println("ahi vamos");
         //try{


         //System.out.println("aveer");
         //File diciembre=new File("diciembre.txt");
         //FileReader frdiciembre=new FileReader(diciembre);
         //BufferedReader bfdiciembre=new BufferedReader(frdiciembre);
         //System.out.println("llegamos a un buen punto");
         //}
         //catch(Exception e){
           //  e.printStackTrace();
             //System.out.println("no se pudo");
         //}

         String dia,
                mes,
                anio,
                linea;
         Calendar c = new GregorianCalendar();//aqui es donde tomaba la hora
         boolean comparardia;//del sistema, esta comparaba si el dia de hoy
//con la cual se iba a comparar en el documento
         dia=Integer.toString(c.get(Calendar.DATE));
         mes=Integer.toString(c.get(Calendar.MONTH));
         anio=Integer.toString(c.get(Calendar.YEAR));
         int mesent=Integer.parseInt(mes);
         System.out.println("el mes es "+mesent);
         int diaent=Integer.parseInt(dia);
         System.out.println("el dia es "+diaent);



         if(mesent==10){
             try{
                 System.out.println("ya entramos alo del mes");
                 FileWriter eventosescritura= new FileWriter("C:\\eventos.txt",true);//estos era el escritor
                 System.out.println("si hizo el filewriter");//que leeiria los eventos de hoy y mostraria
                 PrintWriter pweventosescritura= new PrintWriter(eventosescritura);
                 System.out.println("tambien aqui");
                 File noviembre=new File("C:\\noviembre.txt");
                 FileReader frnoviembre=new FileReader(noviembre);
                 System.out.println("si hizo el reader");
                 BufferedReader bfnoviembre=new BufferedReader(frnoviembre);
                 String diaString="";
                 System.out.println("hizo todo");//estos solo eran para checar
             linea=" ";
             int diaent2;
             while((linea=bfnoviembre.readLine())!=null){//con este utilizaba el lector y leia linea por linea en un ciclo



                  for(int i=0;i<=1;i++){
                     diaString+=linea.charAt(i);//separaba los primeros 2 digitos para saber el dia del documentos
                    
                     }


                  System.out.println(diaString);
                  comparardia=dia.equalsIgnoreCase(diaString);//ESTA COMPARACOIN AUNQE YOO SABIA QUE ERA TRUE LA MARCABA COMO FALSE NUNCA ENTENDI PORQE
                  System.out.println("comparar dia es:"+comparardia);
                    if(comparardia==true){//si el dia era igual al dia de hoy se copiaria al archivo eventos
                                          //EL CUAL DEBERIA DE AVER MOSTRADO AL INICIO, PERO NO LO HACE
                     System.out.println("estoy leyendo los eventos");
                     pweventosescritura.println(linea);

                 }System.out.println(comparardia);
                 diaString=" ";
             }
             }
             catch(Exception e){//CUALQUIER ERROR QUE TUVIERA ME DIRIA
                 System.out.println("No se pudo leer la base de datos");
             }
         }
         try{

         File eventos= new File("C:\\eventos.txt");//LUEGO DESPUES DE COPIAR Y PEGAR MOSTRARIA ESTE
         FileReader freventos=new FileReader(eventos);
         BufferedReader bfeventos=new BufferedReader(freventos);
         salida=" ";
         while((linea=bfeventos.readLine())!=null){
             salida+=linea;
             }
          areaSalida.setText(salida);
          JOptionPane.showMessageDialog(null,areaSalida,"Visualizacion",JOptionPane.WARNING_MESSAGE);
         }
         catch(Exception e){
             System.out.println("No se pudieron leer los eventos");
         }


         salida2+="AQUI SE ENLISTAN LAS OPCIONES DEL CALENDARIO"+//AQUI MUESTRA LAS INSTRUCCIONES
                  "\n1.Ingresar una nueva fecha o evento"+
                  "\n2.Mostrar el calendario del mes actual en lista"+
                  "\n3.Mostrar fechas de fime";

         areaSalida.setText(salida2);
         JOptionPane.showMessageDialog(null,areaSalida,"Visualizacion",JOptionPane.WARNING_MESSAGE);


         int opcionent=0;

             opcion=JOptionPane.showInputDialog("Ingresa el numero de opcion");
             opcionent=Integer.parseInt(opcion);




         switch(opcionent) {//EN ESTE SE SUPONE QUE ESCRIBIRIAS UN NUEVO EVENTO PERO NO LO PUDE CALAR

             case 1: {
                 String dia2=JOptionPane.showInputDialog("Que dia quieres?(dia del mes)");
                 String nevento=JOptionPane.showInputDialog("Cual es el evento?");
                 int dia2ent=Integer.parseInt(dia2);
                try{
                 FileWriter noviembreescritura= new FileWriter("C:\\noviembre.txt");
                 PrintWriter pwnoviembre=new PrintWriter(noviembreescritura);
                 System.out.println("segun esto ya esta escribiendo");

                 salida=dia2ent+"/11/10"+nevento;
                 pwnoviembre.println(salida);
                 }

                catch(Exception e){
                    System.out.println("No se pudo escribir en el archivo");
                }

                }
             break;
             case 2:{//EN ESTE LEEIRIA SOLO LO QUE TENGO QUE HACER EN NOVIEMBRE
                 salida=" ";
                 try{
                 File noviembre=new File("C:\\noviembre.txt");
                 FileReader frnoviembre=new FileReader(noviembre);
                 BufferedReader bfnoviembre=new BufferedReader(frnoviembre);

                 while((linea=bfnoviembre.readLine())!=null){
                     salida+=linea+"\n";

                 }
                 areaSalida.setText(salida);
                 JOptionPane.showMessageDialog(null, salida,"Visualizacion",JOptionPane.INFORMATION_MESSAGE);
                 }
                 catch(Exception e){
                     System.out.println("Hubo un problema al abrir el archivo");
                 }

             }
             break;
             case 3:{//EN ESTE CASO PARA DICIEMBRE
                 salida=" ";
                 try{
                 File fime=new File("C:\\EventosFime.txt");
                 FileReader frfime=new FileReader(fime);
                 BufferedReader bffime=new BufferedReader(frfime);

                 while((linea=bffime.readLine())!=null){
                     salida+=linea+"\n";

                 }
                 areaSalida.setText(salida);
                 JOptionPane.showMessageDialog(null,salida,"Visualizacion",JOptionPane.INFORMATION_MESSAGE);

                 }
                 catch(Exception e){
                     System.out.println("no se pudo abrir el archivo");

                 }

             }
             break;

        }




}
}
YA TERMINADO ESO PODRIA MEJORARLO Y AUTOMATIZARLO, PERO NECESITO TERMINAR ESO
Y AQUI UNAS IMAGENES

 aqui muestra la hora del dia
 AQUIIIIIII SE SUPONE QUE SALDRIAN LAS COSAS DE HOY
COSA QU ENUNCA HIZO :@
PERO LO HARE
 AQUI SE ENLISTAN LAS OPCIONES
EN ESTE CASO PUSE 3, CALENDARIO DE FIME

AQUI APARECE TODOS LOS DIAS, EVENTOS EXAMENES ETC,
ME FALTO UN SCROLL DESPUES LO PONDRE




Y ES TODO DE MI PROGRAMA

Redes Peer to Peer


Las redes peer-to-peer administran y optimizan el uso del ancho de banda de los demas usuarios de la red por medio de la conectividad entre los mismos y obtiene mas rendimiento en las conexiones y transferencias que con algunos métodos centralizados ,donde cierta cantidad pequenia de servidores provee ele totar del ancho de banda y recursos compartidos para un servicio o aplicacion .
Es una red de computadores en la que todos o algunos aspectos funcionan sin clientes ni servidores fijos , sino una serie de nodos que se comportan como iguales entre si, actuan simultáneamente como clientes y servidores respecto a los demás nodos de la red.
Dichas redes don utiles par diversos propósitos a menudo se utilizan para compartir ficheros de cualquier tipo, la eficacia de los nodos en ele enlace y transmisión de datos puede variar según su configuración local , velocidad de proceso , disponibilidad de ancho de banda de su conexion a la red y capacidad de almacenamiento en disco.
Algunas caracteristicas son :
*escabilidad : las redes P2P tiene un alcance mundialcon cientos de millones de usuarios potenciales.
*robustez: en caso de haber fallos en la replica excesica de lso datos hacua multiples destinos
*descentralización :son redes desentralizadas y todos los nodos son iguales
*repartición de costes entre usuarios : se comparten o donan recursos a cambio de recursos
*anonimato: es  deseable que en estas redes quede anónimo el autor de un contenido , el editod ,el lector, el servidor que lo alberga y la petición para encontrarlo.
*seguridad: es una característica deseable de las redes P2P menos implementada , su objetivo seria identificia y evitar los nodos maliciosos.
Clasifiacion :
·         Redes P2P centralizadas : se basa en la arquitectura monolítica en la que todas las transacciones se hacen a través de u único servidor
·         Redes P2P hibridas: interaccion entre un servidor central que sirve como hub y administra los recursos de banda ancha.
·         Redes P2P “puras” : siendo las mas versátiles al no requerir de un gestionamiento central de ningún tipo

Un Programa hecho por mi

Este juego yo lo desarrolle esta muy simple pero pues mis conocimientos en java eran nulos hasta que empece con este juego, este es mi primer programa y aqui lo pondre, pensaba ponerlo como proyecto final pero a la ultima hora ya no tuve tiempo por estar haciendo el que seria mi proyecto final ahorita lo subire como quiera

Este el codigo

import javax.swing.*;//para las ventanas
import java.util.Random;//esta la tuve que utilizar para poder hace un rand
public class JuegoGato{//aqui empieza la clase JuegoGato
public static void main(String args[])
{
    int jugardenuevo=0;//esta la utilice para controlar si quiere
    do{//                jugar de nuevo o no por eso empieza con un do
    int tabla[][];//declare la matriz llamada tabla de enteros
    tabla=new int [3][3];//de 3x3



    int jugador=0,//inicializo variables
        juego=0,
        fila2=0,
        columna2=0,
    chequeo=0,
    c=0,
    ganador=0,
    decicion=0,
        compu=0;
        Random filacompu=new Random();//esta es la variable ran para fila
        Random columnacompu=new Random();//esta es para columna
        int filacompu2,columnacompu2;


    String fila,
       columna,
       decicion1;
    JOptionPane.showMessageDialog(null,"Bienvenido a mi Juego\n\tEl Gato\n\t De Mefisto","Bienvenida",JOptionPane.INFORMATION_MESSAGE);
    for(int i=0;i<=2;i++){//aqui crea la tabla del juego con puros 0
    for(int j=0;j<=2;j++){

        tabla[i][j]=0;

    }
    }
    JTextArea areaSalida= new JTextArea(7,10);
    String salida="";


     areaSalida.setText(//imprimira las instrucciones
        "\nEl jugador 1 Empieza"+
    "\nPrimero Ingresa el numero de fila"+
    "\nDespues Ingresa el numero de columna"+
        "\nAutomaticamente se pondra tu simbolo"+
    "\nLo mismo para el jugador 2");
    JOptionPane.showMessageDialog(null, areaSalida,"Intrucciones",
                  JOptionPane.INFORMATION_MESSAGE);

    while(juego!=1){//y empezara el juego con el jugador 1
chequeo=0;//la variable chequeo controla que no repita casillas
if(jugador==0){
        JOptionPane.showMessageDialog(null,"Turno de jugador 1",
                      "JUGADOR",JOptionPane.WARNING_MESSAGE);}
else{
        JOptionPane.showMessageDialog(null,"Turno de jugador 2","JUGADOR",
                      JOptionPane.WARNING_MESSAGE);}
        do{
        if(jugador==0){//aqui pide informacion de la matriz
        fila=JOptionPane.showInputDialog ( "Ingresa la fila" );
            columna=JOptionPane.showInputDialog ( "Ingresa la columna" );
        fila2=Integer.parseInt(fila);
        columna2=Integer.parseInt(columna);

            if(tabla[fila2-1][columna2-1]==0) {
        tabla[fila2-1][columna2-1]=1;
        chequeo=1;}//si en dado caso la casilla esta ocupada te avisa
            else{
        JOptionPane.showMessageDialog(null,"Ya esta ocupada esa casilla\n intenta de nuevo","checa esto",JOptionPane.WARNING_MESSAGE);
                  }
    }

        else{//si es turno del jugador 2 este sera su codigo
             //automatizado aunque es algo torpe y facil de vencer
        filacompu2=filacompu.nextInt(3)+1;
        columnacompu2=columnacompu.nextInt(3)+1;
        if(tabla[filacompu2-1][columnacompu2-1]==0){
        tabla[filacompu2-1][columnacompu2-1]=2;
        chequeo=1;
        }
        }
        }while(chequeo!=1);
        salida="";
    for(int i=0;i<=2;i++){
        for(int j=0;j<=2;j++){
        salida+= tabla[i][j];
        }
      salida+="\n";
    }
    areaSalida.setText(salida);
    JOptionPane.showMessageDialog(null,areaSalida,"Visualizacion",JOptionPane.WARNING_MESSAGE);
//y de aqui en adelante checara si hay un ganador
// se que es codigo innecesario asi, lo pude aver hecho con un ciclo
//pero pues asi lo deje
if(tabla[0][0]==1&&tabla[1][1]==1&&tabla[2][2]==1){
JOptionPane.showMessageDialog(null, "El Jugador 1 ha GANADO","GANADOR",JOptionPane.WARNING_MESSAGE);
c=8;
ganador=1;
}

if(tabla[0][0]==2&&tabla[1][1]==2&&tabla[2][2]==2){
JOptionPane.showMessageDialog(null,"El Jugador 2 ha GANADO",
"GANADOR",JOptionPane.WARNING_MESSAGE);
c=8;
ganador=1;
}

if(tabla[0][2]==1&&tabla[1][1]==1&&tabla[2][0]==1){
JOptionPane.showMessageDialog(null, "El Jugador 1 ha GANADO","GANADOR",JOptionPane.WARNING_MESSAGE);
c=8;
ganador=1;
}


if(tabla[0][2]==2&&tabla[1][1]==2&&tabla[2][0]==2){
JOptionPane.showMessageDialog(null, "El Jugador 2 ha GANADO","GANADOR",JOptionPane.WARNING_MESSAGE);
c=8;
ganador=1;
}


if(tabla[0][0]==1&&tabla[0][1]==1&&tabla[0][2]==1){
JOptionPane.showMessageDialog(null, "El Jugador 1 ha GANADO","GANADOR",JOptionPane.WARNING_MESSAGE);
c=8;
ganador=1;
}

if(tabla[0][0]==2&&tabla[0][1]==2&&tabla[0][2]==2){
JOptionPane.showMessageDialog(null, "El Jugador 2 ha GANADO","GANADOR",JOptionPane.WARNING_MESSAGE);
c=8;
ganador=1;
}

if(tabla[1][0]==1&&tabla[1][1]==1&&tabla[1][2]==1){
JOptionPane.showMessageDialog(null, "El Jugador 1 ha GANADO","GANADOR",JOptionPane.WARNING_MESSAGE);
c=8;
ganador=1;
}

if(tabla[1][0]==2&&tabla[1][1]==2&&tabla[1][2]==2){
JOptionPane.showMessageDialog(null, "El Jugador 2 ha GANADO","GANADOR",JOptionPane.WARNING_MESSAGE);
c=8;
ganador=1;

}

if(tabla[2][0]==1&&tabla[2][1]==1&&tabla[2][2]==1){
JOptionPane.showMessageDialog(null, "El Jugador 1 ha GANADO","GANADOR",JOptionPane.WARNING_MESSAGE);
c=8;
ganador=1;
}

if(tabla[2][0]==2&&tabla[2][1]==2&&tabla[2][2]==2){
JOptionPane.showMessageDialog(null, "El Jugador 2 ha GANADO","GANADOR",JOptionPane.WARNING_MESSAGE);
c=8;
ganador=1;
}

if(tabla[0][0]==1&&tabla[1][0]==1&&tabla[2][0]==1){
JOptionPane.showMessageDialog(null, "El Jugador 1 ha GANADO","GANADOR",JOptionPane.WARNING_MESSAGE);
c=8;
ganador=1;
}

if(tabla[0][0]==2&&tabla[1][0]==2&&tabla[2][0]==2){
JOptionPane.showMessageDialog(null,"El Jugador 2 ha GANADO","GANADOR",JOptionPane.WARNING_MESSAGE);
c=8;
ganador=1;
}

if(tabla[0][1]==1&&tabla[1][1]==1&&tabla[2][1]==1){
JOptionPane.showMessageDialog(null,"El Jugador 1 ha GANADO","GANADOR",JOptionPane.WARNING_MESSAGE);
c=8;
ganador=1;
}

if(tabla[0][1]==2&&tabla[1][1]==2&&tabla[2][1]==2){
JOptionPane.showMessageDialog(null,"El Jugador 2 ha GANADO","GANADOR",JOptionPane.WARNING_MESSAGE);
c=8;
ganador=1;
}
if(tabla[0][2]==1&&tabla[1][2]==1&&tabla[2][2]==1){
JOptionPane.showMessageDialog(null,"El Jugador 1 ha GANADO","GANADOR",JOptionPane.WARNING_MESSAGE);
c=8;
ganador=1;
}
if(tabla[0][2]==2&&tabla[1][2]==2&&tabla[2][2]==2){
JOptionPane.showMessageDialog(null ,"El Jugador 2 ha GANADO" ,"GANADOR",JOptionPane.WARNING_MESSAGE);
c=8;
ganador=1;
}




    if(jugador==0)//esto controla que jugador sigue
        jugador=1;
        else
        jugador=0;

        c=c+1;//el limite de movimientos totales son de 9
    if( c == 9){
        if(ganador!=1){//asi que si son 9 y nadie gano te dira empate
        JOptionPane.showMessageDialog(null,"Los 2 Jugadores han empantado","Empate!!",JOptionPane.WARNING_MESSAGE);
        }
        juego=1;
        decicion1=JOptionPane.showInputDialog("Juegas de nuevo\n1.si  2.no");
       decicion=Integer.parseInt(decicion1);
       if(decicion==1){
           jugardenuevo=0;}
       else{
           jugardenuevo=1;

        break;}
    }
    }

    }while(jugardenuevo==0);//si no quiere jugar de nuevo sera 1 y saldra
}
}

y unas capturas de pantalla









Sistemas distribuidos

Es una coleccion de computadoras conectadas por una red de comunuciones o la internet misma, que generalmente o asi debe ser es percibida por el usuario como un solo sistema, el usuario solo accesa a los documentos remotoso como si se tratara de sus mismos recursos locales.

Estos debe de ser confiables ya que si uno se descompone otro debe ser capaz de reemplazarlo, su tamnio no esta definido ya que pueden ser decenaas, centenas, miles de hosts interconectadas.

-Ventajas de los sistemas distribuidos con respecto de las PC independientes
Datos compartidos: Un sistema distribuido permite que varios usuarios tengan acceso a una base de datos comun.
Dispositivos compartidos: De igual manera, se pueden compartir perifericos entre diversos usuarios como puede ser una impresora.
Comunicación: un sistema distribuido facilita la comunicación entre computadoras aisladas con el e-mail, por ejemplo.
Flexibilidad: Un sistema distribuido difunde la carga de trabajo entre las máquinas disponibles en la forma más eficaz en cuanto a los costos.

-Desventajas de los sistemas distribuidos
Software: No hay mucha experiencia en el disenio, implantacion y uso del software distribuido, ademas existe poco software para los sistemas distribuidos en la actualidad.
Redes: Una vez que el sistema llega a depender de la red, la perdida o saturación de esta puede negar algunas de las ventajas que el sistema distribuido debia conseguir.
Seguridad: si las personas pueden tener acceso a los datos en todo el sistema, entonces tambien pueden tener acceso a datos con los que no tienen nada que ver.

y asi se veria de una forma grafica

http://html.rincondelvago.com/sistemas-distribuidos.html

SGML


Estandar Generalized Markup Language , un poco de su historia es que la organización internacional de estandares (ISO) normalizo este lenguaje en 1986 en si este es un sistema para la organización y etiquetado de documentos .
Sirve para especificar las reglas de etiquetado de documentos y no impone ningun conjunto de etiquetas en especial.
Un documento SGML se marca de modo que no dice nada respecto a su representacion en la pantalla o en papel , ensi es un prograam de presentacion debe unir el documento con la información de estudo a fin de producir una copia impresa en la pantalla o en el papel.
El lenguaje HTML esta definido en termisno SGML , XML es un estandar de creacion , que incorpora un subconjunto de la funcionalidad del SGML y resulta mas sencillo de poner porque evita algunas características avanzadas de SGML.
Uno de los principales principios del lenguaje SGML constituye la industria de la publicacion de documentos, usando este lenguaje se crean y se mantienen documentos que luego son llevado a otros formatos fianles como HTML, Postcript , RTF,  etc
fuente:  http://www6.uniovi.es/sgml.html

DOM

Que es la dom?

es un modelo de objetos del documento es una interfaz de programacion de aplicaciones(API por sus siglas en ingles) que proporsiona un conjunto estandar de objetos para representar documentos HTML y XML un modelos estandar sobre como se puede combinar dichos objetos y una interfaz estandar para acceder a ellos y manipularlos. es por atraves del DOM donde los programaas peuden acceder y modificar el contenido estilo etc de los documentos HTML y XML que es para lo cual se disenio principalmente.

El DOM define la manera en que objetos y elementos se relacionan entre sí en el navegador y en el documento. Cualquier lenguaje de programacion adecuado para el diseño web puede ser utilizado. En el caso de JavaScript, cada objeto tiene un nombre, el cual es exclusivo y unico. Cuando existen mas de un objeto del mismo tipo en un documento web, estos se organizan en un vector o un array.

fuente:http://es.wikipedia.org/wiki/Document_Object_Model

HTML5

Ya habia hablado de que era HTML ahora hablare un poco de los que es la nueva tecnologia, su ultima version, de html, la 5ta version.

La neuva tecnologia de la web tiene ahora nuevos elemtnos, de los cuales no tenia antes, tambien atributos que reflejan el uso tipico de los sitios web modernos. algunas etiquetas son similares a las que ya habia, otros elementos proporsionan nuevas funcionalidades a traves de una interfaz estandarizada tales como las nuevas etiquetas <audio> y <video>. Pero esto trajo consigo que algunos elementos de la 4.1 quedaran obsoletos inlcluyendo las clasicas de presentacion <font><center> cuyos efectos son manejados con el CSS.tambien hay un renovado enfasis del scripting DOM para el comportamiento de la web.

aqui en la pagina de la fuente esta una tabla donde vienen las nuevas etiquetas de la nueva tecnologia, y las que fueron eliminadas, asi tambien las que fueron renovadas.
aparte de todo esto hay mas novedades:

-Incorpora etiquetas tales como canvas 2D y 3D, audio, video etc. con codecs para mostrar los contenidos multimedia.
-Actualmente hay una lucha entre imponer codecs gratuitos tales como WebM  VP8 o de paga como (H.264).
-Etiquetas para manejar grandes conjuntos de datos: Datagrid, Details, menu y Command. Permiten generar tablas dinámicas que pueden filtrar, ordenar y ocultar contenido en cliente muy util por cierto.
-Mejoras en los formularios.
-Nuevos tipos de datos (eMail, number, url, datetime,entre otros) y facilidades para validar el contenido sin Javascript.
-Visores: MathML (formulas matemáticas) y SVG (graficos vectoriales). En general se deja abierto a poder interpretar otros lenguajes XML.
-Drag an Drop. Nueva funcionalidad para arrastrar objetos como imagenes.
entre otras novedades.
un ejemplo de lo que seria codigo en HTML5
increible por cierto
http://craftymind.com/factory/html5video/CanvasVideo.html
y aqui una pagina con demostraciones increibles, que en lo spersonal me gustaron
fuente :http://es.wikipedia.org/wiki/HTML_5

Como funciona SSL y TLS

El protocolo SSL intercambia registros cada registro puede ser comprimido, cifrado y empaquetado con un codigo de autentificación del mensaje (MAC). Cada registro tiene un campo de content_type que especifica el protocolo de nivel superior que se esta usando.

Cuando se inicia la conexion, el registro encapsula otro protocolo, el protocolo handshake, que tiene el content_type 22.

El cliente envia y recibe varias estructuras handshake:
-Envia un mensaje especificando una lista de conjunto de cifrados, metodos de compresion y la versión del protocolo SSL mas alta que es permitida. Este tambien envía bytes de forma aleatoria que seran usados mas tarde tambien puede incluir el identificador de la sesion.

-Recibe un registro, en el que el servidor elige que parametros de conexion a partir de las opciones ofertadas con anterioridad por el cliente.
Cuando los parametros de la conexion son conocidos del cliente y del servidor intercambian certificados.

-El servidor puede requerir un certificado al cliente, para que la conexion sea mutuamente autentificada.
Cliente y servidor negocian una clave secreta comun llamada master secret, posiblemente usando el resultado de un intercambio Diffie-Hellman, o simplemente cifrando una clave secreta con una clave pública que es descifrada con la clave privada de cada uno. Todos los datos de claves restantes son derivados a partir de este master secret, que son pasados a traves una funcion aleatoria cuidadosamente elegida.

TLS/SSL poseen una variedad de medidas de seguridad:
-Numerando todos los registros y usando el número de secuencia en el MAC.
-Usando un resumen de mensaje mejorado con una clave.
-Protección contra varios ataques conocidos, como los que implican un degradado del protocolo a versiones previas.
-El mensaje que finaliza el protocolo handshake envía un hash de todos los datos intercambiados y vistos por ambas partes.
-La funcion pseudo aleatoria divide los datos de entrada en 2 mitades y las procesa con algoritmos hash diferentes, despues realiza sobre ellos una operación XOR. De esta forma se protege a sí mismo de la eventualidad de que alguno de estos algoritmos se revelen vulnerables en el futuro.

y asi funciona estas tecnologias de seguridad.

fuente: http://es.wikipedia.org/wiki/Transport_Layer_Security

SSL (Secure Socket Layer) y TLS(Transport Layer Security)

Estas dos tecnologias son protocolos criptograficos que proporcionan comunicaciones seguras por una red que generalmente es la internet.
SSL proporciona autentificacion y privacidad de la informacion entre extremos sobre internet mediante el uso de criptografia, generalmente el servidor es el que es autentificado mientras que el cliente se queda sin auntenticar.
Estos protocolos permite a las aplicaciones cliente servidor comunicarse de una forma diseniada para prevenir escuchas la falsificacion de la identidad del remitente y alterar la integridad del mensaje.

SSL implica una serie de fases basicas:
-Negociar entre las partes el algoritmo que se usara en la comunicacion.
-Intercambio de claves públicas y autenticación basada en certificados digitales.
-Cifrado del tráfico basado en cifrado simétrico.


fuente:http://es.wikipedia.org/wiki/Transport_Layer_Security

UMTS y W3C

UMTS es una de las tecnologias usadas por los moviles de tercera generacion 3G (tambien llamda W-CDMA) sucesora de GSM debido a que GSM no podia seguir el camino evolutivo para brindar los servicios considerados de tercera generacion, esta tecnologia no solo esta diseniada para trabajar limitadamente con estos dispositivos sino que hay una gran variedad otros.

las caracteristicas sobresalientes de este son las capacidades multimedia, una velocidad de acceso a internet elevada, la cual tambien le permite transmitir audio y vide en tiempo real, una transmision de voz de calidad casi igual a la de las redes fijas, ademas de unos servicios muy extensos.

World Wide Web Consortium es un consorcio internacional que produce recomendaciones para la World Wide Web, esta dirigida por Tim Berners-Lee el creador original del URL,HTTP y HTML que son las principales tecnologias sobre las que se basa la web.

fuente: http://es.wikipedia.org/wiki/UMTS
http://es.wikipedia.org/wiki/World_Wide_Web_Consortium

Hiperenlace

Hablare de que esun hiperenlace ya que en muchos de las entradas que he subido hablan de esta, aqui lo explicare:

Es un elemento de un documento electronico que hace referencia a otro recurso, combinado con una red de datos y un protocolo de acceso, que hace referencia a un recurso referenciado de diferentes formas como visitarlo con un agente de navegacion mostrarlo como parte del documento referenciador o inlcuso guardarlo localmente.
Estos son parte escencial de la estructura de la WWW pero el concepto no se limita solo a HTML o a la web sino que casi cualquier medio electronico peude emplear alguna forma de hiperenlace. Este tiene dos partes denominado ancla, y una direccion, el ancla comienza en el origen qe apunta hacia el destino.

Un navegador web la mayoria de las veces muestra un hiperenlace de alguna forma disntintiva para que el usuario la distinga de las demas letras aveces como un color como en este caso
http://www.brpreiss.com/books/opus4/html/book.html 
de ejmplo
letra diferente o estilo de letra diferente el comportamiento que tomaran los enlaces dependera del CSS
la pagina.Tambien el puntero del raton puede cambiar de forma si estas arriba de un hiperenlace, en la
mayoria de los navegadores los enlaces se muestran en azul subrayado si el link no ha sido visitado y si
ya fue visitado se pone en purpura.

este metodo es utilizado en codigo html para usar un hiperenlace :
<a href="URL" title="título del enlace" class="clase del enlace">etiqueta del enlace</a>
fuente: http://es.wikipedia.org/wiki/Hiperenlace

WAP (Wireless Application Protocol)

O protoccolo de aplicaciones inalambricas, este es un estandar abierto internacional para las aplicacoines que utilizan las comunicaciones wireless mayor usado en las redes de servicio a internet que se dan en un telefono movil. Este es la especificacion de un entorno de aplicacion y de un conjunto de protocolos de comunicacion para normalizar el modo en que los dispositivos con acceso inalambrico se puedan utilizar para acceder a correo electronico, redes sociales, grupo de noticias y otros.

La organizacion que se dedica a estandarizar esta tecnologia fue originalmente el WAP Forum, que fue fundado por 4 empresas del sector de telefonia comunicaciones moviles, sonny ericson, motorola, nokia y openwave.

Los dispositivos moviles son cada vez mas poderosos y livianos, cada dia avanza mas la tecnologia, haciendo cada vez mas eficaz la comunicacion entre dispositivos moviles.WAP define un entorno de aplicacion y una pila de protocolos para aplicaciones y tambien servicios accesibles atraves de terminales moviles, que consiste en un conjunto de especificaciones definidas por la Open Mobile Alliance que permite que los desarrolladores disenien aplicaciones de interconexion para terminales moviles, que generalmente son telefonos.  Esta tecnologia permite que los usuarios que tengan estos dispositivos puedan accesar a los servicios que estan disponibles en la internet, pero como es un dispositivo movil cuenta con muchas consideraciones que un desarrollador tiene que tomar en cuenta, estas pueden ser: como primera la pantalla es como 50 veces menor a la de un ordenar, teclados mas limitados alos de un ordenador, limitaciones de memoria que dispone el dispositivo como la RAM asi como el procesador que tenga el dispositivo, claro comparandose todo esto con un ordenador normal.
Las redes de telefonia movil ofrecen tambien unas prestaciones por lo general menores que los accesos a Internet, si bien con las redes de tercera generacion como UMTS(universal Mobile Telecommunications System) las prestaciones mejoran de manera importante.

El lenguaje de presentacion de contenidos es el WML, o Wireless Markup Language. La pila de protocolos de WAP 1 no es compatible directamente con la de Internet: WSP (Wireless Session Protocol), WTP (Wireless Transaction Protocol), WTLS (Wireless Transport Layer Security), y WDP (Wireless Datagram Protocol).  La incompatibilidad de la pila de protocolos WAP 1 con la de Internet exige la presencia de un nodo pasarela para hacer de intermediario en la comunicacion entre un terminal WAP y un servidor de contenidos WAP residente en Internet.

Fuente : http://es.wikipedia.org/wiki/WAP

Micronavegador

Este a diferencia de un navegador web ordinario este esta diseniado especialmente para el uso en dispositivos moviles y de reducidas dimensiones como a los PDA(o ordenador de bolsillo) o a los telefonos moviles. Estos estan preparados y optimizados para mostrar contenido en pantallas muy reducidas y utilizan tamanio de archivos muy pequenio para ser instalados en dispositivos de memorias de poca capacidad.

Este microbrowser generalmente se instala en las redes telefonicas y consigue el contenido escrito en XHTML (WAP 2.0) o WML estas son de formato reducido para la transmicion de ancho de banda limitada y la conexion de datos inalambricas llamados WAP.

Los microbrowsers mas recientes estan equipados con HTML, i-mode HTML, cHTML(c por compact), plus CSS, ECMAScript y los plugins tales como adobe flash. Las tecnologias como WAP, plataforma del i-mode han creado la primera avanzada en servicios inalambricos de datos.
y aqui un listado de algunos micronavegadores web:

-Safari de Apple Corp. de iOS (sistema operativo).
-Nokia Series 60 Browser de Nokia.
-Openwave (Redwood, CA) (antes Phone.com, formalmente Unwired Planet).
-Opera de Opera Software ASA (Noruega).
-Pocket Internet Explorer de Microsoft Inc.
-Navegador web de la PlayStation Portable, de Sony.

Los transcodificadores moviles reformatean y comprimen el contenido web para dispositivos móviles y deben utilizarse conjuntamente con los micronavegadores. Algunos servicios de transcodificacion para moviles son:

Google - Parte del Web Toolkit de Google
Yahoo OneSearchentre otros.

fuente:  http://es.wikipedia.org/wiki/Micronavegador

Navegador Web

Esta vez hablare de que es un navegador web, este es un programa que permite ver la informacion que contiene una pagina web ya sea de un localhosto, servidores, o dentro de la WWW.

El navegador interpreta el codigo HTML de la pagina web que solicitamos, aunque no siempre esta en html pero generalmente asi es,  y lo muestra en la pantalla permietiendo al usuario interactuar con su contenido permitiendole navegar tambien por otras paginas anexadas a la pagina por medio de hipervinculos.

La funcion general para cada navegador web es permitir la visualizacion de documentos de texto que posiblemente tengan recursos multimedia incrustados, el documento puede estar en cualquier sitio, desde en su misma computadora donde el usuario este conectado, algun dispositivo que se encuentre conectada a la computadora o en la internet y que este tenga los recursos necesarios para la transmicion y comunicacion como un software servidor web. Tales documentos a los que el navegador interpreta normalmente tienen hiperviculos o enlaces que enlazan a otra pagina web dentro del sitio, normalmente esta relacionado con una imagen o letras. El pasar de un enlace a otro ubicada en cualquier computadora conectada a la internet se le llama navegacoin de donde se origina el nombre de navegador.

Funcionamiento:
la comunicacion que hace el navegador al servidor web se hacer por medio del protocolo ya antes mencionado HTTP, aunque la mayorias de los browsers soportan otros protocolos como FTP, Gopher y HTTPS (version cifrada de http basada con SSL). Su funcion principal del navegador es descargar documentos html y mostrarlos en pantalla. Actualmente ya no solo descargan el archivo sino que lo muestran con el documento sus imagenes, imagenes, videos con streaming en diferentes formatos y protocolos. Tambien los navegadores permiten escritura en el disco local para almacenar informacion como marcadores de las paginas visitadas.

Algunos navegadores mas populares son suites y son de las que disponen de varios programas integrados para leer noticias y correo electronico con diferentes protocolos NNTP, IMAP y POP.

Los primeros navegadores web solo soportaban la version simple de html, pero por el rapido desarrollo se tuvo que hacer estandares html y a problemas de multioperabilidad en la web. los mas modernos soportan estandares de html y XHTML comenzando con html 4.01 de la forma que todos deberian visualizarse de la misma manera.

fuente: http://es.wikipedia.org/wiki/Navegador_web