Protocolos y otras bestias

¿Qué es un protocolo? ¿Qué pinta ese «http» en la barra del navegador? En la sociedad identificamos ésta palabra con un conjunto de normas o convenciones que usamos al relacionarnos con otros. En cierto sentido, el protocolo es necesario a todos los niveles, por cuanto nos proporciona una seguridad, una forma de «hacer las cosas» que sabemos que está aceptada por el resto.

En informática también hay protocolos. Al igual que no es lo mismo cenar con el Rey que tomar un café con el embajador de Francia, no es lo mismo ver una página que enviar un correo electrónico.

Hemos dicho que podemos necesitar de un protocolo al relacionarnos con otras personas (en un contexto más o menos formal). De la misma forma, cuando a través de nuestro ordenador nos relacionamos con otras máquinas, vamos a necesitar de un protocolo: una serie de normas convencionales que rijan los parámetros de nuestra comunicación.

Muchas de las tareas que realizamos diariamente requieren la comunicación de nuestra máquina con un equipo remoto. La más frecuente consiste en ver una página web. Para ello, nuestro navegador de Internet pide al servidor (www.google.com, por ejemplo) que le envíe una página en concreto alojada en ese dominio. El servidor asiente y envía la página, y a su vez nuestro navegador la recibe y la presenta en pantalla. Toda esta comunicación tiene lugar a través del cable que nos une con Internet, aunque en vez de consistir en una secuencia desordenada de bits, está dirigida por las normas del protocolo que utlicemos.

Todos los clientes (por ejemplo el navegador) y los servidores (por ejemplo, los de páginas web) utilizan el mismo protocolo para entenderse. Estas normas se aplican en todos los servicios de Internet. Así, existe un protocolo que define cómo tiene que ser la comunicación para que un navegador solicite una página web. Este protocolo se denomina HTTP (HyperText Transfer Protocol, o Protocolo de Transferencia de Hipertexto). También existe un protocolo que define cómo tiene que ser la comunicación para descargar correo electrónico, o un protocolo que concreta la comunicación en la transferencia de ficheros entre equipos (FTP, File Transfer Protocol, o Protocolo de Transferencia de Ficheros)

Hay un montón de protocolos, muchos más de los que puede imaginar. Una práctica de la asignatura de Redes fue diseñar un protocolo de comunicación entre un cliente y un servidor para jugar a «la patata caliente». Muy entretenido, aunque sufrimos lo nuestro. Si no sabe muy bien qué va a hacer con estos nuevos conocimientos, espere nuevas entregas :-P

Un poco de filosofía…

Éste es, ciertamente, un blog sobre tecnología bastante atípico… lleva ya unos tres meses de madurez, y como buen padre, me siento razonablemente orgulloso de mi criatura. Concretamente, hay un rasgo con el que estoy encantado: está absolutamente desfasado, anticuado y obsoleto.

La informática evoluciona a un ritmo vertiginoso. Lo que sirve hoy, es chatarra mañana. Un ordenador es de última generación durante unos pocos meses… los programas crecen a un ritmo tal que dejan viejos ordenadores que podían ser útiles. (Tengo que hablarles un día sobre reciclaje, me lo apunto…). Se nos bombardea con números, mejores procesadores, más memoria, más gigaherzios… más todo. Para nada…

Las últimas noticias invaden los blogs de informática, que se hacen eco a diario de las mismas novedades. Uno lee Barrapunto por la mañana y ya sabe todo lo que va a publicar el resto (o una gran mayoría)… Pero las cosas no funcionan así en realidad.

No llevo muchos años en ésto, y ya he visto aparecer varias «tecnologías definitivas», que como siempre no han llegado a ningún sitio. Aparecen nuevos lenguajes de programación que no aportan nada, nuevas herramientas que automatizan necesidades que nadie tiene, novedosas formas de ganar dinero que nunca dan resultado. Los fracasos están a la orden del día, aunque aparecen en la contraportada… por eso no los ve nadie.

Lo que no ha cambiado en éstos años es el límite computacional, la prueba de Turing, los formalismosla fuerza de la orientación a objetos, la solidez de los Linux… temas que ya he tratado en éste blog, con vocación de viejo anticuado desde su nacimiento.

Las noticias de hoy son eso, noticias de hoy. Que Alan Turing diga que un cabezal y una cinta pueden resolver todos los problemas computables hace más de medio siglo y que siga teniendo validez hoy es lo verdaderamente interesante. En este mar revuelto de cambios que es la informática, los principios inmutables son más valiosos que en ninguna otra disciplina. De nada me sirve dominar el lenguaje de programación de moda si pierdo el tiempo tratando de resolver un problema no computable: no voy a conseguirlo jamás, por muy buena que sea la herramienta.

La idea de éste blog se fraguó como una contrapartida a tanta novedad. Precisamente porque entiendo que la informática es ingeniería y como tal debe tener presentes las ideas que la definieron como ciencia, demostrar que sus principios son serios y sus bases, sólidas.

Aparecerán otras tecnologías, otros paradigmas, otras herramientas. A esto se le dedicarán cientos de páginas en las noticias, y sin embargo, el álgebra no ha cambiado, la lógica matemática tampoco… y los principios físicos permanecen inmutables. Aunque, eso sí, sin una sola línea que lo reivindique junto a las novedades del día.

Maravillas de la ciencia moderna.

¡Por Tutatis!

Estaba antes un poco aburrido y me había decidido a jugar un poco con mi móvil. Voy al menú y me aparece ésto (es publicidad de un nuevo juego):

News
Vencer los Vikingos y Rescatar Justforkix son los objetivos de Asterix. Podras ayudarlo?

Me he quedado de piedra. El título en inglés parece inevitable. La frase «vencer los Vikingos» no tiene mucho sentido en castellano, pero seré yo que estoy anticuado. Luego viene la perla «Rescatar Justforkix», esa frase es correcta si se habla en Apache, estilo película del lejano Oeste. El podrás sin acento se daba por hecho. Una sóla interrogación también se veía venir.

A mí lo que más de duele de todo es lo de «Vencer a los Vikingos». ¿No podían ser los Romanos o los piratas aquellos? Si los vikingos no eran tan malos, no hay más que leer Asterix y los Normandos… ¿y qué %&#? es eso de «Justforkix»? Asterix es francés, mezclarlo con ese horrible nombre anglosajón es una ofensa para todo friki de estos fantásticos cómics… por cierto, que vaya mierda de nombre, ¿a quién se le habrá ocurrido?

Perdonen mi amargura, pero es que éstas cosas le pueden a uno. A quienes se pregunten por qué ya no escribo sobre informática directamente, tengo que pedirles que sean pacientes, el regreso de mi «retiro espiritual» está siendo un poco violento y tardaré en volver a coger el ritmo… pero será pronto :-)

Por mí puedes coger tu 5% y…

Es que le dan ganas a uno de bajarse del mundo en marcha. Es algo cotidiano, pero hasta ayer no reflexioné sobre ello con la calma suficiente. Andaba yo buscando el que considero el mejor libro sobre Java («Piensa en Java», de Bruce Eckel) de librería en librería… Ya no soporto hacer más fotocopias y como se trata de un manual bastante bueno, pensé que sería buena idea comprarlo.

Hacer que los libreros buscaran el ejemplar ya fue una aventura. De hecho, comprar un libro de informática siempre es una experiencia única, aunque la mejor fue cuando intenté comprar «El Proceso Unificado de desarrollo de software»… lo recuerdo porque terminé escribiendo el título en un papel y decía simplemente «quiero ésto». Por cierto, que al final no lo compré. Pirata y estafador que es uno.

Me encontraba, como digo, en la librería. Tenía entre mis manos el ejemplar en cuestión. Unas novecientas páginas de diversión. Y cincuenta y seis euros. Tela. Pero tranquilo, me digo, pregunta al librero, seguro que hay descuento. Así que me acerco cruzando los dedos al mostrador, y pregunto con educación si lo de ser universitario se nota en el precio. Claro, responde el de gafas sonriendo, en plan generoso abuelete. Te hacemos el 5% por ser estudiante.

forges-rector.jpg

Un cálculo rápido me confirma lo peor. Mi mente trabaja (tampoco mucho, no crean) y arroja el resultado 56 x 0,05 = 3 mas o menos. O sea, 53 con el descuento, oh cielos. Entonces empecé a pensar qué narices significa ese descuento por ser estudiante… Así que allí estaba yo, de piedra, en la librería, pensando en qué iba a invertir los casi tres euros (¡uf!) que la Providencia me regalaba por ser estudiante. Pronto comprendí que en nada. Había otro manual que me interesaba. Setenta y cinco de los nuevos euros. Eso sí, con descuento.Claro, luego somos nosotros los niñatosmalcriados que fotocopiamos libros sin piedad, pasándonos por el forro los derechos de autor (y de los que no son autores de nada pero trincan de lo lindo). ¿Para qué quiero ahorrarme ni 3€ una vez que me estoy gastando 56€? Al fin y al cabo son libros, ¿no hay dinero para que podamos comprar bibliografía?

Al final me compré el libro de marras. Con el 5%. Eso son descuentos para la comunidad universitaria y lo demás es tocarse las narices… Tenía que escribirlo. Cinco. Por el…

Vivo

Por fín he regresado de mi periplo aventurero por los montes de Silió, tal y como desveló Misslucifer en los comentarios. No se imaginan lo que me cuesta teclear después de estos cuatro días, incluso me resulta extraño hablar por teléfono… Me voy a ahorrar los detalles de la supervivencia en sí, aunque quiero destacar la belleza embriagadora del lugar y la dureza de la prueba a que nos hemos sometido.

¿Mi estado actual? Físicamente estoy un poco acabado… Mis piernas están cubiertas de cicatrices y rozaduras, mis pies un poco deteriorados (lo justo, suelo cuidarlos con mucho esmero…), alguna ampolla en la mano por el manejo continuado del hacha y del pico, picaduras (arañas y demás familia), y cierto dolor sin importancia en las piernas, hartas de trepar entre piedras. No es mucho, pero sumado a la falta de sueño, provoca que mientras escribo me vaya quedando progresivamente dormido… como contrapartida, me siento mucho más fuerte y he quitado algún kilo del cuerpo… En el plano psicológico me siento seguro y alegre al recordar los detalles más bonitos de éstos días maravillosos.

Lo que en verdad amo de la aventura de aire libre es que nos permite redescubrir el lujo. Saber qué hora es, beber una cerveza fría, dormir en un colchón bajo un techo, comer lo que nos apetezca aunque no tengamos hambre… el placer de beber un vaso de agua se descubre tras haber caminado durante horas sufriendo la sed… A pesar de todo, no quiero aburrirles ahora con las reflexiones que ésta experiencia ha despertado en mí, simplemente anunciarles que en cuanto me recupere volveremos a la carga. Que pasen unas felices vacaciones ;-)

Vacaciones hexagonales

El tercer año de carrera se aproxima a su conclusión, y el número de horas diarias frente al ordenador no ha hecho más que crecer. Ahora lo enciendo nada más levantarme, y creo que lo último que hago por las noches es apagarlo. No es adicción ni vicio, simplemente necesidad… con lo cual es normal que cuando llegan las vacaciones lo último que me apetezca sea pasarme el día delante de la pantalla.

Les cuento ésto porque voy a invertir una parte importante de mis vacaciones en pasar unos días de supervivencia en una bella zona de Cantabria, acompañado de un grupo de amigos. La única obligación que nos imponemos es no llevar teléfono, reloj, ni nada medianamente tecnológico. Evidentemente, tampoco puedo cargar con el portátil. El único artefacto que portaremos será una brújula, porque es imprescindible, y para terminar teniendo que fabricarnos una (cuenco con agua, corcho, aguja imanada) preferimos llevarla hecha de casa…

Va a ser duro, pero me gusta la idea de ponerme a prueba y de romper mis ataduras tecnológicas por unos días. El domingo, si vuelvo con vida (lo cual parece improbable, pero no imposible) intentaré escribir algo coherente, si para entonces no se me ha olvidado la poca informática que sé…

Como me da pena dejarles solos y desvalidos, les voy a enseñar un juego muy sencillo y muy adictivo, por si no saben qué hacer en su tiempo libre. Se trata de algo más del estilo de CPI, pero conociéndoles, sólo es cuestión de tiempo que lo descubran… así que voy a tomarles la delantera.

El juego se llama Hex, y se juega en un tablero de casillas hexagonales (de ahí el nombre). Consiste en que dos jugadores, por turnos, van situando una ficha de su color en una casilla cualquiera del tablero. Gana quien consigue unir antes los bordes pintados con su color. Es muy sencillo, aprenderán a jugar en un minuto. Sin embargo, tiene una profundidad conceptual impresionante, y se asombrarán cuando descubran lo adictivo que es y la cantidad ingente de posibilidades tácticas…

Tablero de hex

Si quieren aprender a jugar, lo cual recomiendo, el artículo de la Wikipedia que les enlazo más arriba es muy explicativo. También en la web de la Ludoteka (donde se puede jugar contra otras personas) hay un artículo sobre el juego muy muy completo. Si le apetece jugar contra su ordenador, uno de los mejores programas es Hexy.

No se trata de un juego muy conocido, pero su belleza es tan sencilla como alucinante… Espero que lo disfrute, yo me entretendré durmiendo bajo las estrellas (o la lluvia, según…). Sean muy prudentes en la carretera, por favor, tenemos que estar todos a la vuelta para seguir pasándolo tan bien :-)

Imagen | Wikipedia

¡Me gusta sufrir!

Como escribió una vez mi admirado Arturo Pérez Reverte, hay días que te dan el artículo escrito. Se sienta uno delante del ordenador con la gota se sangre resbalando por el colmillo… y es que entre unos y otros te dejan frito. Pero les cuento:

Estaba yo navegando, saltando de sitio en sitio con mil pestañitas en el Firefox. Me divertía leyendo estupefacto este artículo, mientras rumiaba la idea de proponerlo para un futuro II Premio Pantallazo Azul, por frases llenas de conspironopio judeo-masónica como la que les regalo:

Así, la LOE se convierte no sólo en adoctrinamiento laicista mediante la «educación para la ciudadanía», sino también en propaganda gay para los niños pagado con dinero de los padres, enseñando opciones que no son las deseadas por los padres.

Al tiempo, me encontraba revisando las estadísticas con un poco de desgana. Ahí estaba… había cambiado de página, pero creí ver algo extraño y retrocedí. Y sí, ahí te tenía… un escalofrío recorrió mi cuerpo cuando ví:

Me quedé alucinado… pensarán ustedes que no algo tan raro, pero es que cuando fui a cotillear a la pagína desde la que había llegado éste visitante me encuentro:

La cita en cuestión es de Treiral_ haciendo la broma sobre sus búsquedas en los comentarios de ésta entrada… vale que pone «fotos de cuerpos exhuberantes», pero es que también pone en el título (bien grande) «búsquedas irreales», y más abajo «dibujos de chicos distraídos por moscas»… yo creo que quien buscaba ésto, cegado por la búsqueda de ese cuerto extraordinario vió lo de las moscas y pensó «vaya, igual descubro nuevos placeres», y picó como un loco sobre mi humilde blog.

Por cierto, se me ocurre que los nuevos ratones deberían incorporar un medidor de presión para que se pudiera analizar la desesperación del usuario en búsqueda de ese tesoro exuberante… con una nueva referencia al término apareceré más arriba en Google, así que creo que éste artículo va a ser contraproducente… pero bueno, en el fondo me divierto tanto que vale la pena :-P

¿Es Internet una base de datos?

¿Se puede considerar Internet como la mayor base de datos que existe en la actualidad? Es una pregunta complicada, pero vamos a contestarla. Vayamos por partes… La primera cuestión es si consideramos o no Internet como una base de datos. Si efectivamente lo hacemos, es sin duda la mayor base de datos que existe en el mundo…

¿Qué es una base de datos? Sin más, es una colección de datos almacenados de forma sistemática. Actualmente, la aplastante mayoría de las bases de datos son electrónicas, debido fundamentalmente a las facilidades que proporciona la informática en el tratamiento de datos (tenemos que recordar que el primer computador de la era moderna fue desarrollado para realizar el censo de los EEUU).

globo.jpg

A la hora de incorporar datos a una recopilación, ésto puede hacerse de muchas maneras. Es decir, para almacenar información necesitamos un «esqueleto», un método que nos diga cómo organizarlo todo. Siendo técnicos, a ésto lo llamamos «modelo de datos».

Hay bases de datos que siguen una organización jerárquica, como formando un árbol. Otras tienen una estructura más dinámica y caótica, y se organizan en forma de red. El modelo que usan la mayoría de las bases de datos es el modelo relacional. De ahí que tal vez le suene haber leído «base de datos relacional». Hay, como digo, muchos tipos de organizaciones, y con probabilidad, irán apareciendo nuevos «paradigmas» con el paso del tiempo. Éstas organizaciones son formas que tenemos de hacer la información clasificable y relacionable automáticamente, no tienen otra utilidad que esa.

Sin embargo, Internet no parece seguir una estructura definida, es más bien una gigantesca maraña desorganizada de información. Según eso, y aceptando la definición de base de datos como recopilación de información estructurada, no se puede decir que Internet sea una base de datos. No obstante, tenemos que abrir un poco la mente y para pensar que no todo lo que no obedece unas normas debe ser sistemáticamente menospreciado: los formalismos están bien para ciertas cosas, pero tarde o temprano se nos terminan quedando pequeños.

Así, cuando se definió el modelo entidad-relación (MER) se pensaba que era la tecnología definitiva. Tuvo que llegar Codd y proponer un modelo relacional (MR) muy consistente para que el MER cayera en desuso… y de igual modo, el paradigma de bases de datos orientadas a objetos (OODB o BDOO) amenaza con destruir el MR… Cómo nos gustan las siglas a los informáticos ¿eh?

Desde mi punto de vista, el concepto base de datos es útil en cuanto hace referencia a una recopilación de datos que permite su manipulación, y no en cuanto expresa un conjunto de datos expresados de acuerdo a ciertos formalismos. Con la popularización de la web, y la generalización del uso de los buscadores queda evidenciado que podemos acceder a datos sin que éstos presenten una estructura formalizada, es decir, un «modelo».

Según un estudio de hace unos años, se calcula que el 80% de los datos que las compañías almacenan se encuentran en forma no estructurada (por ejemplo, en vez de estar en la base de datos se encuentran escritos en un fichero de texto). Lo mismo pasa en la web, donde la estructura brilla por su ausencia. Sin embargo, conocemos herramientas que permiten recuperar información de fuentes no estructuradas basándose en palabras clave y otras técnicas. Y cualquier buscador nos permite obtener información sobre millones de fuentes en pocos segundos, mientras que una consulta a una base de datos relacional de tamaño medio puede llevar cierto tiempo si han de cruzarse datos de tablas.

Ésto no quiere decir que deban dejar de utilizarse las bases de datos convencionales, pero hay que tener en cuenta que muchas formas de almacenar la información sin estructura y recuperarla, eran irreales hace unos años y hoy día son completamente viables. Google Desktop Search nos permite indizar (o «indexar», depende de gustos) archivos de nuestro ordenador y hacer búsquedas casi instantáneas, al igual que en la web. ¿Para qué necesitaría entonces formalizar mis datos en una base relacional?

Podemos ver a una base de datos como una «caja» a la que introducimos una consulta y nos devuelve un resultado. Lo mismo podemos hacer en Internet, aunque eso sí, con mecanismos un tanto diferentes. Pero al final el resultado es muy similar: las dos cajas negras nos devuelven la información que queremos.

Si somos estrictos, Internet no puede considerarse una base de datos. Sin embargo, podemos recuperar información relevante de la red en muy poco tiempo y sin demasiado esfuerzo, que es el objetivo que persiguieron los primeros formalismos para bases de datos. Si la web permite almacenar datos y recuperarlos con ciertos mecanismos fiables, ¿por qué no se le puede considerar una base de datos? ¿qué buscamos con una base de datos que nos proporcione Internet?

Desde mi óptica, podemos entender Internet como una enorme entidad capaz de almacenar un conocimiento incuantificable. Si nos vemos desde fuera, esa enorme maraña de cables y equipos es una verdadera red de neuronas que mantiene milagrosamente vivo un conocimiento inabarcable. No nos preguntemos ¿qué es una base de datos? sino ¿para qué nos sirve a los humanos una base de datos? y veremos que no existen motivos que nos impidan otorgar ésta consideración al invento más influyente de los últimos tiempos.

SFSF (Salón de la Fama Segmentation Fault)

homer.jpg

Bueno, como lo prometido es deuda, aquí tenemos nuestro particular Salón de la Fama. Merecen una mención especial, por su «sobresaliente labor en el campo de la excelencia»:

Misslucifer
Por ser la primera en comprender las complejidades místicas del ISF en el I Reto SF.Treiral_
y
Vicksom
Por ser primero y segundo, respectivamente, en enviar el crackme modificado, tal como fue propuesto en el II Reto SF.

¡Muchas gracias a todos por participar! Éste post se irá actualizando con quienes vayan resolviendo los retos SF, sólo aptos para los verdaderamente atrevidos :-P (Estoy viendo la foto de Homer y no puedo dejar de reir, no sé si será grave… es que tiene una expresión muy cómica)