lunes, 22 de noviembre de 2010

Peer-to-peer (P2P)






Peer-to-peer

Es una red de computadoras en la que todos o algunos aspectos funcionan sin clientes ni servidores fijos, sino una serie de nodos que se comportan como iguales entre sí. Es decir, actúan simultáneamente como clientes y servidores respecto a los demás nodos de la red. Las redes P2P permiten el intercambio directo de información, en cualquier formato, entre los ordenadores interconectados.

Las redes peer-to-peer aprovechan, administran y optimizan el uso del ancho de banda de los demás usuarios de la red por medio de la conectividad entre los mismos, y obtienen así más rendimiento en las conexiones y transferencias que con algunos métodos centralizados convencionales, donde una cantidad relativamente pequeña de servidores provee el total del ancho de banda y recursos compartidos para un servicio o aplicación.

La eficacia de los nodos en el enlace y transmisión de datos puede variar según su configuración local (cortafuegos, NAT, ruteadores, etc.), velocidad de proceso, disponibilidad de ancho de banda de su conexión a la red y capacidad de almacenamiento en disco.

Desde el surgimiento de Napster en 1999 las redes P2P están en boca de todos. Uno de los motivos es que es el medio por el cual se comparten y bajan archivos protegidos por derechos de propiedad intelectual, principalmente canciones.

Existen muchos servicios más que usan (o usaron si ya no existen) este tipo de redes: Ares Galaxy, Kazaa, eMule, BitTorrent.

Cómo funcionan las redes y cómo se organizan

A grandes rasgos una red se compone de una serie de computadoras interconectadas. Esos equipos pueden cumplir dos funciones: ser servidores y ser clientes. Los clientes se utilizan para acceder a la información contenida en el servidor. Los servidores por su parte proveen diferentes servicios a los clientes.

Un ejemplo típico de red, es un sitio web. En ese caso tenemos muchos clientes (los usuarios) que acceden a un servidor (la página web) para solicitar información (el contenido del sitio).

Las redes pueden organizarse de diferentes maneras según los propósitos para los que sean diseñados:



Un ejemplo de red centralizada es un sitio web. Un ejemplo de red descentralizada es Internet, donde existen muchos clientes y muchos servidores que se interconectan entre sí. Las redes Peer-2-Peer (P2P) son del tipo distribuida.

Ejemplo de la conección de las redes P2P.


Las ventaja es que el ancho de banda se distribuye entre todos. Si muchos toman el contenido de una pequeña minoría, ésta debería tener un ancho de banda suficiente para abastecer a todos, lo cual implica para ella un costo mayor. A medida que crece el número de usuarios que comparten información, los pedidos de ese contenido se pueden distirbuir entre varios usuarios, con lo que cada uno necesita menos ancho de banda para ofrecer la misma velocidad de bajada.

Existen muchos clientes para las redes P2P mi favorito es Aresgalaxy pero no esta disponible para ubuntu asi que aqui les dejo unas muy buenas alternativas para clientes en ubuntu ya que son en mi opinión los mejores clientes P2P que hay para ubuntu.

Frostwire

$ sudo apt-get install frostwire

aMule

$ sudo aptitude -y install amule

Y si aun prefieren Ares aquí les dejo un manual de como instalar Ares en Ubuntu.


Fuentes:


Saludos...

Errores HTTP


Errores HTTP

A quien no le a aparecido los tipicos errores en Internet.


Ve aqui aque se deben este tipo de errores.

Errores del cliente

Estos son típicamente los códigos de respuesta de error más comúnmente encontrados.
400 Solicitud incorrecta
La solicitud contiene sintaxis errónea y no debería repetirse.
401 No autorizado
Similar al 403 Forbidden, pero específicamente para su uso cuando la autentificación es posible pero ha fallado o aún no ha sido provista. Vea autentificación HTTP básica y Digest access authentication.
402 Pago requerido
La intención original era que este código pudiese ser usado como parte de alguna forma o esquema de Dinero electrónico o micropagos, pero eso no sucedió, y este código nunca se utilizó.
403 Prohibido
La solicitud fue legal, pero el servidor se rehúsa a responderla. En contraste a una respuesta 401 No autorizado, la autentificación no haría la diferencia.
404 No encontrado
Recurso no encontrado. Se utiliza cuando el servidor web no encuentra la página o recurso solicitado.
405 Método no permitido
Una petición fue hecha a una URI utilizando un método de solicitud no soportado por dicha URI; por ejemplo, cuando se utiliza GET en una forma que requiere que los datos sean presentados vía POST, o utilizando PUT en un recurso de sólo lectura.
406 No aceptable
407 Autenticación Proxy requerida
408 Tiempo de espera agotado
El cliente falló al continuar la petición - excepto durante la ejecución de videos Adobe Flash cuando solo significa que el usuario cerró la ventana de video o se movió a otro. ref
409 Conflicto
410 Ya no disponible
Indica que el recurso solicitado ya no está disponible y no lo estará de nuevo. Este código debería ser utilizado cuando un recurso haya sido quitado intencionalmente; sin embargo, en la práctica, un código 404 No encontrado es expedido en su lugar.
411 Requiere longitud
412 Falló precondición
413 Solicitud demasiado larga
414 URI demasiado larga
415 Tipo de medio no soportado
416 Rango solicitado no disponible
El cliente ha preguntado por una parte de un archivo, pero el servidor no puede proporcionar esa parte, por ejemplo, si el cliente preguntó por una parte de un archivo que está más allá de los límites del fin del archivo.
417 Falló expectativa
421 Hay muchas conexiones desde esta dirección de internet
422 Entidad no procesable (WebDAV - RFC 4918)
La solicitud está bien formada pero fue imposible seguirla debido a errores semánticos.
423 Bloqueado (WebDAV - RFC 4918)
El recurso al que se está teniendo acceso está bloqueado.
424 Falló dependencia (WebDAV) (RFC 4918)
La solicitud falló debido a una falla en la solicitud previa.
425 Colección sin ordenar
Definido en los drafts de WebDav Advanced Collections, pero no está presente en "Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol" (RFC 3648).
426 Actualización requerida (RFC 2817)
El cliente debería cambiarse a TLS/1.0.
449 Reintente con
Una extensión de Microsoft: La petición debería ser reintentada después de hacer la acción apropiada.

Errores de servidor

500 Error interno
Es un código comúnmente emitido por aplicaciones empotradas en servidores web, mismas que generan contenido dinámicamente, por ejemplo aplicaciones montadas en IIS o Tomcat, cuando se encuentran con situaciones de error ajenas a la naturaleza del servidor web.
501 No implementado
502 Pasarela incorrecta
503 Servicio no disponible
504 Tiempo de espera de la pasarela agotado
505 Versión de HTTP no soportada
506 Variante también negocia (RFC 2295)
507 Almacenamiento insuficiente (WebDAV - RFC 4918)
509 Límite de ancho de banda excedido
Este código de estatus, mientras que es utilizado por muchos servidores, no es oficial.
510 No extendido (RFC 2774)

Fuente

http://es.wikipedia.org/wiki/Anexo:C%C3%B3digos_de_estado_HTTP

Saludos...

MySQL



MySQL

MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB —desde enero de 2008 una subsidiaria de Sun Microsystems y ésta a su vez de Oracle Corporation desde abril de 2009— desarrolla MySQL como software libre en un esquema de licenciamiento dual.

Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta licencia, pero para aquellas empresas que quieran incorporarlo en productos privativos deben comprar a la empresa una licencia específica que les permita este uso. Está desarrollado en su mayor parte en ANSI C.

Al contrario de proyectos como Apache, donde el software es desarrollado por una comunidad pública y el copyright del código está en poder del autor individual, MySQL es patrocinado por una empresa privada, que posee el copyright de la mayor parte del código.
Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Además de la venta de licencias privativas, la compañía ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet. MySQL AB fue fundado por David Axmark, Allan Larsson y Michael Widenius.a


Existen varias APIs que permiten, a aplicaciones escritas en diversos lenguajes de programación, acceder a las bases de datos MySQL, incluyendo C, C++, C#, Pascal, Delphi (via dbExpress), Eiffel, Smalltalk, Java (con una implementación nativa del driver de Java), Lisp, Perl, PHP, Python, Ruby,Gambas, REALbasic (Mac y Linux), (x)Harbour (Eagle1), FreeBASIC, y Tcl; cada uno de estos utiliza una API específica. También existe una interfaz ODBC, llamado MyODBC que permite a cualquier lenguaje de programación que soporte ODBC comunicarse con las bases de datos MySQL. También se puede acceder desde el sistema SAP, lenguaje ABAP.
Fuente

http://es.wikipedia.org/wiki/MySQL

Saludoss...

Oracle



Oracle

Oracle es un sistema de gestión de base de datos relacional
(o RDBMS por el acrónimo en inglés de Relational Data Base Management System), desarrollado por Oracle Corporation.
Se considera a Oracle como uno de los sistemas de bases de datos más completos destacando:

soporte de transacciones,
estabilidad,
escalabilidad y
Soporte multiplataforma.

Su dominio en el mercado de servidores empresariales ha sido casi total hasta hace poco, recientemente sufre la competencia del Microsoft SQL Server de Microsoft y de la oferta de otros RDBMS con licencia libre como PostgreSQL, MySql o Firebird. Las últimas versiones de Oracle han sido certificadas para poder trabajar bajo GNU/Linux.

La siguiente imagen es de un diagrama de como funciona una base de datos en Oracle.

Fuente

http://es.wikipedia.org/wiki/Oracle

Saludos...

Multipurpose Internet Mail Extensions (MIME)



Multipurpose Internet Mail Extensions

Multipurpose Internet Mail Extensions o MIME es una serie de convenciones o especificaciones dirigidas al intercambio a través de Internet de todo tipo de archivos (texto, audio, vídeo, etc.) de forma transparente para el usuario. Una parte importante del MIME está dedicada a mejorar las posibilidades de transferencia de texto en distintos idiomas y alfabetos. En sentido general las extensiones de MIME van encaminadas a soportar:

Texto en conjuntos de caracteres distintos de US-ASCII;
adjuntos que no son de tipo texto;
cuerpos de mensajes con múltiples partes (multi-part);
información de encabezados con conjuntos de caracteres distintos de ASCII.
Prácticamente todos los mensajes de correo electrónico escritos por personas en Internet y una proporción considerable de estos mensajes generados automáticamente son transmitidos en formato MIME a través de SMTP. Los mensajes de correo electrónico en Internet están tan cercanamente asociados con el SMTP y MIME que usualmente se les llama mensaje SMTP/MIME.



Por ejemplo

El API JavaMail sólo proporcionan servicios generales electrónico para la lectura y
el envío de correo. Estas API requieren que los proveedores de servicios para aplicar la
protocolos.

Los proveedores de servicios implementar protocolos específicos. Por ejemplo, Simple Mail
Transfer Protocol (SMTP) es un protocolo de transporte para el envío de correo electrónico. Mensaje
Protocolo de oficina de correos 3 (POP3) es el protocolo estándar para la recepción de correo electrónico.
Internet Message Access Protocol (IMAP) es un protocolo alternativo a
POP3.

Además de los proveedores de servicios, JavaMail requiere la JavaBeans
Activación Marco (JAF) para manejar el contenido de correo que no es texto sin formato.
Por ejemplo, esto incluye MIME (Multipurpose Internet Mail Extensions),
URL (Uniform Resource Locator) páginas y archivos adjuntos.

Los tipos de contenido definidos por el estándar MIME tienen gran importancia también fuera del contexto de los mensajes electrónicos. Ejemplo de esto son algunos protocolos de red tales como HTTP de la Web. HTTP requiere que los datos sean transmitidos en un contexto de mensajes tipo e-mail aunque los datos pueden no ser un e-mail propiamente dicho.
En la actualidad ningún programa de correo electrónico o navegador de Internet puede considerarse completo si no acepta MIME en sus diferentes facetas (texto y formatos de archivo).

Fuente

http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=/rzamy/50/program/jmluse.htm
http://es.wikipedia.org/wiki/MIME

Saludos...

SQL






SQL

El lenguaje de consulta estructurado o SQL es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en éstas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo efectuar consultas con el fin de recuperar -de una forma sencilla- información de interés de una base de datos, así como también hacer cambios sobre ella. Es un lenguaje informático de cuarta generación (4GL).

El SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales permitiendo gran variedad de operaciones en éstos últimos.
Es un lenguaje declarativo de "alto nivel" o "de no procedimiento", que gracias a su fuerte base teórica y su orientación al manejo de conjuntos de registros, y no a registros individuales, permite una alta productividad en codificación y la orientación a objetos. De esta forma una sola sentencia puede equivaler a uno o más programas que se utilizarían en un lenguaje de bajo nivel orientado a registros.

En la siguiente imagen se puede ver la forma de encriptación de un server de SQL.


El orden de ejecución interno de una sentencia puede afectar gravemente a la eficiencia del SGBD, por lo que se hace necesario que éste lleve a cabo una optimización antes de su ejecución. Muchas veces, el uso de índices acelera una instrucción de consulta, pero ralentiza la actualización de los datos. Dependiendo del uso de la aplicación, se priorizará el acceso indexado o una rápida actualización de la información. La optimización difiere sensiblemente en cada motor de base de datos y depende de muchos factores.

Tutorial online de SQL


Fuente

http://es.wikipedia.org/wiki/SQL

Saludos...

Web 2.0



Web 2.0

El término Web 2.0 (2004–presente) está comunmente asociado con un fenómeno social, basado en la interacción que se logra a partir de diferentes aplicaciones en la web, que facilitan el compartir información, la interoperabilidad, el diseño centrado en el usuario o D.C.U. y la colaboración en la World Wide Web. Ejemplos de la Web 2.0 son las comunidades web, los servicios web, las aplicaciones Web, los servicios de red social, los servicios de alojamiento de videos, las wikis, blogs, mashups y folcsonomías. Un sitio Web 2.0 permite a sus usuarios interactuar con otros usuarios o cambiar contenido del sitio web, en contraste a sitios web no-interactivos donde los usuarios se limitan a la visualización pasiva de información que se les proporciona.
La Web 2.0 esta asociada estrechamente con (Tim O'Reilly), debido a la conferencia sobre la Web 2.0 de O'Reilly Media en 2004. Aunque el término sugiere una nueva versión de la World Wide Web, no se refiere a una actualización de las especificaciones técnicas de la web, sino más bien a cambios acumulativos en la forma en la que desarrolladores de software y usuarios finales utilizan la Web. El hecho de que la Web 2.0 es cualitativamente diferente de las tecnologías web anteriores ha sido cuestionado por el creador de la World Wide Web Tim Berners-Lee, quien calificó al término como "tan sólo una jerga"- precisamente porque tenía la intención de que la Web incorporase estos valores en el primer lugar.


Para compartir en la Web 2.0 se utilizan una serie de herramientas, entre las que se pueden destacar:
Blogs: La blogosfera es el conjunto de blogs que hay en Internet. Un blog es un espacio web personal en el que su autor (puede haber varios autores autorizados) puede escribir cronológicamente artículos, noticias...(con imágenes y enlaces), pero además es un espacio colaborativo donde los lectores también pueden escribir sus comentarios a cada uno de los artículos (entradas/post) que ha realizado el autor. Hay diversos servidores de weblog gratuitos como por ejemplo:
Blogger.
Wordpress.
Wikis: En hawaiano "wikiwiki " significa: rápido, informal. Una wiki es un espacio web corporativo, organizado mediante una estructura hipertextual de páginas (referenciadas en un menú lateral), donde varias personas autorizadas elaboran contenidos de manera asíncrona. Basta pulsar el botón "editar" para acceder a los contenidos y modificarlos. Suelen mantener un archivo histórico de las versiones anteriores y facilitan la realización de copias de seguridad de los contenidos. Hay diversos servidores de wiki gratuitos:
Wikia.
Wetpaint.
Wikipedia, es el ejemplo más conocido de wiki y de creación colaborativa del conocimiento.
Entornos para compartir recursos: Todos estos entornos nos permiten almacenar recursos en Internet, compartirlos y visualizarlos cuando nos convenga desde Internet. Constituyen una inmensa fuente de recursos y lugares donde publicar materiales para su difusión mundial.
Documentos: podemos subir nuestros documentos y compartirlos, embebiéndolos en un Blog o Wiki, enviándolos por correo o enlazándolos a facebook, twiter, etc.
Scribd Sencillo y con recursos muy interesantes.
Calameo
Issuu Con una presentación magnífica.
Vídeos: lugares donde compartimos nuestros vídeos.
Youtube
Universia.tv
MediaCampus (UNAM)
Presentaciones: existen lugares como Youtube pero para subir y compartir tus presentaciones.
Slideshare
Photopeach Más para presentaciones de fotos con música.
Fotos de la web 2.0
Flickr
Plataformas educativas:
Moodle
Webquest: Unidades didácticas interactivas y muy fáciles de crear.
Redes Sociales:
Facebook y Twiter: Redes sociales muy fáciles de usar en el que los usuarios participan, actualizan y comparten información.


Fuente

http://es.wikipedia.org/wiki/Web_2.0

Saludos...