Novedades en la categoría Evolución

Continúo con mi lectura del libro Cómo Funciona la Web, publicado por el Centro de Investigación de la Web de la Universidad de Chile.

Esta vez me voy a concentrar en la parte del libro escrita por Ricardo Baeza, "La Anatomía de la Web", un capítulo muy bueno, con mucha información y estadísticas interesantes, sobretodo cuando describe la estructura de la web chilena.

Aunque hay algunos errores menores en el capítulo, como por ejemplo, se define un terabyte como un billón de megabytes (en realidad un terabyte es un billón de bytes), los resultados expuestos son muy interesantes.

Baeza discute los distintos análisis que se han hecho en forma experimental para tratar de descubrir la estructura de la web.

Si consideramos que la estructura de la web tendrá la forma de un grafo, este representa una estructura sintetizada en la siguiente figura:

Anatomiadelaweb.jpg

Esta estructura se extrajo del primer estudio realizado por Altavista, en 1999, considerando unas 200 millones de páginas, y unos 1.500 millones de enlaces, lo que correspondía a un 25% de la web de esa época. No tenemos estudios más nuevos, porque en realidad procesar y almacenar un grafo de este tamaño es una tarea formidable, en términos computacionales. Piensen que la web al año 2006 tenía más de 20.000 millones de páginas.

Las páginas de la izquierda (entrada) son las que referencias páginas dentro del núcleo, pero no son referenciadas de vuelta. Las de la derecha son páginas referenciadas desde el núcleo, pero sin referencias de vuelta hacia el núcleo.

Hay islas, es decir, páginas aisladas del resto. Los tentáculos son caminos sin salidas que salen desde las páginas en los extremos. Y tenemos túneles que conectan páginas de la izquierda con páginas de la derecha.

El núcleo está compuesto por unas 56 millones de páginas, a la izquierda hay 43 millones de páginas, al igual que a la derecha. En las islas tenemos unos 17 millones de páginas.

Ricardo Baeza y su equipo de investigación condujeron un estudio similar con las páginas en el dominio .cl.

Descubrieron una estructura similar. Las páginas de la izquierda corresponden a las páginas más nuevas, que no son demasiado conocidas, y que al tener éxito pasan al nucleo de la web, donde se encuentran las páginas más consolidadas. Las páginas de la derecha corresponden a páginas más antiguas, que no enlazan a las páginas del centro de la web, simplemente porque en su época esas páginas no existían.
También corresponden a páginas que no tienen enlaces externos, pero que se han preocupado de posicionarse bien mediante enlaces publicitarios. En Chile, la proporción de islas es mucho mayor que en el estudio original de Altavista.

La dinámica de formación de la web es bien violenta, de acuerdo al autor. Más de la mitad de la Web ha nacido en los últimos seis meses. De ese crecimiento, el 20% se genera a través de la replicación de sitios espejos u otro tipo de copias (incluyendo el plagio). La muerte de las páginas en internet es también alta. Se estima que la vida media de una página web es de unos tres meses.

La Anatomía de la Web Chilena

El último estudio a la web chilena es del año 2006, y arrojó estos resultados:

  • La web chilena tiene 170.000 sitios, con más de 7 millones de páginas.
  • Un sitio promedio tiene 43 páginas, y un peso promedio de 0,304 MiB.
  • Hay un promedio de 1,56 referencias desde otros sitios.
  • Cerca de un cuarto de las páginas chilenas fueron actualizadas en el último año.

Con respecto al contenido

  • De todos los sitios, el 20% de los sitios más grandes contiene el 99% de la información, en la web chilena.
  • Cerca del 21% de los sitios web son "invisibles" a los buscadores porque utilizan tecnologías como flash y javascript.
  • Cerca del 5% de los enlaces ya no existe.

La tecnología usada es muy reveladora:

  • El 66.7% usa Apache como servidor Web, seguido de Microsoft IIS con un 32.8%.
  • El sistema operativo más usado es Unix, con un 48.5%, seguido por Microsoft Windows con un 38.5% y Linux con un 12%.
  • PHP es el generador de páginas dinámicas más usado, con un 75% de la participación.
  • PDF es el formato de documento electrónico más usado, con el 53%, seguido de XML con un 21%.
  • Los chilenos parece que somos muy amigos del open source, porque de acuerdo al estudio "Aproximadamente hay una disponibilidad del doble de archivos con paquetes de software para Linux que para Windows en la Web chilena".

Me gustaría saber cómo ha variado esto en estos dos últimos años, con la explosión de contenidos debido a la Web 2.0. Aunque esta información es muy interesante y reveladora.

Todos los que trabajamos en informática hemos enfrentado este problema, que por lo que veo es muy antiguo:

Diseño Seguro

| | Comentarios (0) | TrackBacks (0)

Bruce Schneier, escribe sobre la necesidad de diseñar el software pensando en la seguridad desde el principio.

El ejemplo planteado por Schneier es interesante, se trata de djbns, un servidor DNS que no sufre de la grave vulnerabilidad que está atacando a otros servidores DNS, porque fue diseñado desde el principio pensando en que podría ser objeto de toda una clase de ataques, de los cuales el "Ataque Kaminsky" sería un caso particular.
Daniel J. Bernstein, el autor de djbns, estudió la seguridad del DNS, y con eso pudo diseñar su software en forma segura.

Pero, como hemos discutido muchas veces, el software evoluciona, y es por eso que surgen bugs y problemas de seguridad, tal como el caso de la vulnerabilidad DNS detectada por Kaminsky.

Schneier tiene razón, parchar a gran escala no funciona bien, es caro, ineficiente, y toma mucho tiempo, a pesar de todos los empeños. Si usaramos un "diseño inteligente"1, consideraríamos los aspectos de seguridad desde el principio.

bug.jpg

Nos encantaría que todos los desarrolladores de software, siguieran los consejos de Schneier. Pero el software debe adaptarse a su entorno, para poder sobrevivir. Estas adaptaciones incluyen las modificaciones por "las necesidades del negocio", la presión por terminar en plazos ajustados, con presupuestos insuficientes, o se le exige al software ser flexible, al grado de se llega a exigir la capacidad de nuevas características casi todos los días. También ocurre, que entender como funciona el software es algo que toma tiempo, incluso para los mismos que lo hemos diseñado.

Esa es la paradoja, nos gustaría creer que existe un diseño inteligente, porque sería más facil entender la vida, pero no es así, por más que queramos, la vida sigue las reglas invisibles de la evolución. Del mismo modo, en el diseño del software, aunque tenemos más libertad, y somos como pequeños dioses que podemos dictar la arquitectura completa de nuestro software, este sigue las reglas invisibles de la evolución del software, similares a las que dictan la evolución de la vida.

Por supuesto que no todo es "azar y necesidad", y el ejemplo del trabajo de Bernstein es algo que debemos estudiar, e incorporar en nuestros diseños.

No, el diseño inteligente tampoco existe en software, pero al menos podemos aspirar a un diseño más seguro.

[1] Esta nota estuvo a punto de titularse "diseño inteligente", pero me rehuso a darle la más mínima ayuda a los que promueven la ignorancia .

apache.jpg El viernes 25, Sam Ramji en el contexto de la OSCON, nos sorprendió con otra nota sobre el apoyo oficial que está dando Microsoft al proyecto Apache, se trata de financiamiento en este caso, porque Microsoft se ha convertido en sponsor platinum la Apache Software Foundation (ASF).

Algunas aclaraciones sobre que significa este apoyo financiero, para aquellos que se sientan despitados con las notas periodisticas:

  1. Todos los sponsors platinum aportan la misma cantidad de dinero, al menos 100.000 dolares al año, y se sabe que hay al menos 3 patrocinadores en esta categoría: Google, Microsoft y Yahoo.
  2. Efectivamente, la licencia Apache, permite incorporar el código fuente dentro de un producto comercial cerrado sin necesidad de publicar los códigos fuente, un modelo que es visto con buenos ojos por los sectores más "conservadores" dentro de Microsoft.

history.forward()

El título de la nota de Ramji es muy claro: history.forward().

Pero esta es noticia que no nos sorprende, al menos no debería sorprender a los lectores de este blog.

Hace rato que venimos informando de cómo se está integrando el opensource dentro de Microsoft. No ha sido un proceso fácil, por cierto, pero es algo inevitable. Yo creo que hay mucha actitud pragmática, y la necesidad de adaptarse para sobrevivir en un nuevo escenario.

Como un ejemplo, Ramji nos cuenta que el equipo de Microsoft SQL Server desarrolló un driver nativo para PHP, y en los laboratorios opensource han parchado AdoDB para que use este nuevo driver, probándolo con más de 100 aplicaciones PHP comunitarias.

Hace unos meses atrás el equipo del servidor apache visitó Microsoft con el fin de obtener información técnica interna de primera fuente. Tuvieron acceso amplio y colaboraron en forma abierta con el equipo de Windows 2008 y de IIS.

¿Está Microsoft comprometiéndose seriamente con el opensource? No es menor que hayan colaborado en un proyecto que usa la LGPL, algo que hace un tiempo atrás habría parecido impensable. Por supuesto uno puede ver esto de manera cínica, o decir que Microsoft ha sido obligado a seguir este camino. La verdad es que en parte es eso, pero también hay una necesidad de negocios sumamente pragmática.

Hay que seguir observando el curso de estas acciones. Por supuesto que en muchas partes, sobre todo en nuestro medio local, las viejas y cancinas discusiones bizantinas continuarán, pero es claro que hay un segmento importante de Microsoft que está en otra actitud más abierta y colaborativa, probablemente porque es inevitable, y están reconociendo que el opensource será una de las fuerzas dominantes de nuestra industria en el futuro.

Sucede que en estos días me pidieron ayuda para revisar un sistema (escrito mayormente en C) en que participé hace 6 años atrás. En el proceso descubrimos varios errores que sólo se hicieron evidentes ahora que se intentó una actualización del sistema operativo. Errores que nunca aparecieron en 6 años de operación continua.

Considero que no se llega a entender bien un sistema hasta después de observarlo detenidamente durante mucho tiempo. Puedes volver a revisar un código que escribiste hace meses, o años atrás, y siempre encontrarás un detalle. Puede ser un error grave, que sólo aparece como warning, y que en un ambiente no produce problemas, pero que "estalla" al correrlo en otro.

Al revisar tu viejo código sucede que te das cuenta de malas decisiones de diseño, o notas que puedes hacerlo mejor (normalmente porque has ganado experiencia y sabes como escribir mejor código). Otras veces descubres serios fallos de seguridad, que son sutiles, pero que no puedes ignorar. errores que no notaste en un primer momento, o que no pudiste revisar (siempre falta tiempo).

Algo parecido es lo que ha pasado recientemente con el problema en el diseño del DNS, y que tiene de cabeza a los administradores actualizando y parchando los servidores DNS.

La lección es que nunca podemos asegurar que, dado que un sistema lleva mucho tiempo funcionando correctamente, está libre de errores.

Este es el video de la charla de Clay Shirky, cuya transcripción traduje hace poco, la presentación está en 2 partes. He incluido la traducción de la transcipción al final para facilitar su lectura junto con el video, ahora falta que alguien aproveche su superavit cognitivo para subtitular el video ;)

Transcripción Traducida:

Gin, Televisión y Superavit Social

Por Clay Shirky

Recientemente recordé algunas lecturas de universidad, escritas por un historiador británico que argumentaba que la tecnología crítica, para la fase temprana de la revolución industrial, era la ginebra (el gin).

La transformación de la vida rural a urbana fue tan repentina, y tan desgarradora, que la única cosa que la sociedad pudo hacer para manejarla fue beber con estupor durante una generación. Las historias sobre esto son asombrosas, habían carritos que vendían gin en las calles de Londres en aquel tiempo.

gin.jpg Y no fue hasta que la sociedad se despertó de este sueño colectivo que realmente empezamos a tener las estructuras institucionales que asociamos actualmente con la revolución industrial. Cosas como las bibliotecas públicas y museos, la educación masiva y amplia a los niños, lideres elegidos, y un montón de cosas que nos gustan, no sucedieron hasta que todas esas personas dejaron de ver todo como una crisis y empezaron a verlo como una ganancia.

No fue hasta que la gente empezó a pensar en esto como un vasto superavit cívico, sobre el que podían participar y no solo diluirse, que comenzamos a tener lo que ahora pensamos como una sociedad industrial.

Si tuviera que tomar una tecnología similarmente crítica para el siglo 20, el tipo de lubricante social sin el cual las ruedas de esta empresa no podrían empezar a girar, entonces elegiría las comedias televisivas (Sitcoms).

... (continua...)

...los efectos de internet están empezando a ser de un modo, bastante amplio, sociales, al punto que existe un reconocimiento general que la internet no es un decorado en la sociedad contemporánea, sino que un desafío a esta. Una sociedad que tiene una internet es un tipo diferente de sociedad, de la misma manera que una sociedad que tiene prensa escrita fue un tipo diferente de sociedad. Estamos viviendo el más grande aumento de las capacidades de expresión humana en la historia.

Clay Shirsky:

Sobre este archivo

Esta página es un archivo de las entradas recientes en la categoría Evolución.

Entrevistas es la categoría anterior.

General es la siguiente categoría.

Encontrará los contenidos recientes en la página principal. Consulte los archivos para ver todos los contenidos.

Technorati

Technorati search

» Blogs que enlazan aquí

Creative Commons License
Este weblog está licenciado bajo una Licencia Creative Commons.

BloGalaxia website stats
Google