[Libro] Piensa en Java

piensa-en-java.jpg Título: Piensa en Java
Autor: Bruce Eckel
Tema: Programación
Editorial: Pearson educación
Páginas: 906
ISBN: 84-205-3192-8
Idioma: Castellano
Traducción: Jorge González Barturen

A favor

Bruce Eckel tiene una inteligencia única para hacernos comprender cómo funcionan las cosas de verdad antes de aprender a utilizarlas (lo cual en informática suele ahorrar bastante tiempo), pero sin entrar en demasiados detalles técnicos, lo cual hace la información accesible a personas que no tengan grandes conocimientos técnicos.

El libro sigue un planteamiento muy progresivo: comienza con una ligerísima introducción a la orientación a objetos que permite entender los fundamentos del paradigma. También propone algunas nociones sobre ingeniería del software, detalle que personalmente me encanta: es preciso concienciar a los programadores de que las cosas deben hacerse bien… hay muchos otros detalles de calidad, como algún repaso por las versiones anteriores de Java que nos permiten entender por qué las cosas son como son.

En cuanto a la información que nos proporciona, hay que decir que el libro es bastante completo y que aborda partes menos populares de Java como el acceso a datos, la computación distribuída o el manejo de múltiples hilos.

Para terminar los pros, hay que decir que acompaña un CD-ROM con mucha información útil. Hay que destacar la versión en PDF de Thinking in C, que nos ayuda a entender los fundamentos. También se acompañan los ejemplos con su código fuente y una versión en PDF del libro (en inglés)

En contra

Lo principal es la traducción. Es absolutamente nefasta, lo cual me cuesta entender para un libro que va por su segunda edición… las partes de texto normal y corrientes están bastante bien resueltas, pero el código se ha convertido en inabordable.

Los traductores han tenido el terrible detalle de traducir partes del código sin entenderlo y sin probar que funciona, con lo que muchos ejemplos son ilegibles (con las dificultades que eso acarrea). Muchos comentarios están sin traducir, pero curiosamente, otras partes del código ejecutable sí. Quienes sean programadores sabrán a qué me refiero… en una parte del ejemplo, por ejemplo, se refiere al objeto «gusano» y en otra al objeto «worm». Los ordenadores no saben traducir, así que el programa, evidentemente, no funciona. Es muy complicado aprender un lenguaje a través de ejemplos si éstos no trabajan correctamente, por lo que la solución es tener siempre a mano los códigos del CD y la versión inglesa por si hay dudas.

En conclusión

Se trata de un libro muy interesante, estructurado con mucha inteligencia y con un desarrollo bastante progresivo: si se sabe leer con paciencia resulta muy instructivo. Por otro lado, es posible utilizarlo también como manual para repasar algunos conceptos. Lo peor, como ya he dicho, es la traducción. A pesar de ello, es el libro que recomendaría a quien tuviera que aprender a programar en Java.

Y para plagiar con todo mi descaro a CPI, terminaré poniendo una nota (numérica, eso sí) al invento. Yo le doy un 0000 1001 a la edición en inglés y un 0000 0111 a la edición en castellano. Es decir, un 9 y un 7, respectivamente :-P

Far from SF

Ya disculparán esta temporada tan alejado de ustedes, pero me encuentro inmerso en los exámenes de septiembre. Sí, ya sé que suena ridículo, se trata de la famosa adaptación al calendario europeo… estoy con el tiempo justo, así que les dejaré a ustedes la valoración sobre la conveniencia o no de tal calendario…

Volveré el sábado 15, tengo que hacer un último esfuerzo durante esta semana, como comprenderán. Les adelanto que habrá novedades muy interesantes durante este verano, espero que estén aquí para vivir juntos todos estos cambios que se avecinan.

?nimo y suerte a quienes estén inmersos en exámenes, oposiciones o sencillamente en el mar :-)

La Ingeniería del Software (y III). Diseño

Finalizamos ya la serie más leída y menos comentada de la breve historia de SF. En realidad la cosa daba para algo más, pero quizás quien escribe esto ha cometido el error de adentrarse en un terreno demasiado enredado, por lo que vamos a efectuar un parto por cesárea, para terminar la serie sin más complicaciones. Bien, en las anteriores entregas hemos visto cómo recoger los requisitos de nuestra aplicación y hemos dado el salto hacia un análisis orientado a objetos del problema que nos ocupa (sumar dos números).

Ahora nos queda concretar todo eso: el diseño. Es la parte más crítica, pero si se ha realizado un buen análisis no debería suponernos mucho esfuerzo. En principio tendremos que concretar el modelo estático y adaptarlo a la implementación que vayamos a realizar. Posteriormente, haremos lo propio con el modelo de interacción. Lo único que va a cambiar aquí van a ser los nombres de los diagramas, las clases y las operaciones… podemos verlo como un refinamiento del trabajo anterior.

No estaría mal rellenar algunas plantillas con las operaciones que realizarán las clases de la aplicación, para tener una visión más ordenada de los algoritmos. También es el momento de diseñar el modelo de datos y prever si necesitaremos aplicar algún objeto adicional para manejar una base de datos. Una vez tengamos terminado el diseño, podremos pasar a la fase de implementación, donde codificaremos el programa en cuestión. En realidad eso ya es lo de menos, con el gigantesco estudio previo que hemos realizado será cuestión de un par de minutos.

La Ingeniería del Software (II). Análisis

En la entrega anterior ya dejamos medianamente esclarecido qué es lo que queremos que haga nuestro programa (los requisitos). Ahora vamos a empezar a pensar en cómo lo haremos… A quienes todo esto les suene demasiado raro, les sugiero que no se líen con los detalles y se queden con la idea: construir software es más sistemático y complicado de lo que puede parecer a primera vista. ¿Por qué tanto artítulo entonces? Porque estamos intentando demostrarlo :-P

Ya se han acabado las plantillas y los dibujos de muñequitos interactuando con el sistema abstracto, ahora se trata de concretar cómo será internamente ese sistema. Dijimos por encima que íbamos a utilizar una adaptación del Proceso Unificado, lo cual significa, en el fondo, que utilizaremos una tecnología orientada a objetos.

Aun no le he dedicado ningún artítulo en profundidad al tema, pero tendré que terminar intentando explicar qué es eso de la orientación a objetos. Como idea rápida, hay que pensar que los programas son tradicionalmente concebidos como series de instrucciones que se ejecutan en orden, aunque hay un enfoque alternativo: podemos construir el software pensando en «entidades» que interactúan entre sí para lograr un objetivo común (en nuestro caso, sumar dos números). Al primer enfoque se le conoce como «programación estructurada» y al segundo «programación orientada a objetos», aunque pueden combinarse ambos en el mismo programa, para desesperación de mis amados puristas :-P

Volvamos a nuestro programa. Una entidad que suma dos números puede concebirse como una «calculadora», por lo que ya tenemos nuestro objeto principal. Una vez hayamos descubierto todas las «entidades», elaboraremos un diagrama de clases, que podría quedar así:

clases.png

Es decir, tendremos una entidad llamada «Calculadora» con la operación de sumar dos números. Generalmente, un diagrama de este tipo contiene varias decenas de clases con relaciones entre ellas, atributos y demás, recuerde que se trata de un ejemplo reducido y debilitado… Me estoy dando cuenta de lo complejo que puede resultar comprender todos estos conceptos a alguien ajeno al mundillo, pero el fracaso no es una opción, habrá que seguir adelante hasta terminar el trabajo :-)Esta parte del análisis es conocida como «modelo estático», porque resume las entidades del programa sin reparar en cómo se comunican. Para esto último tenemos el «modelo dinámico», o «modelo de interacción», que vamos a realizar basándonos en diagramas de secuencia. Estos diagramas nos ayudan a ver cómo el usuario potencial de nuestra calculadora se comunicará con ella a lo largo del tiempo.

suma0.png

Lo que este diagrama indica es que el Usuario creará el objeto Calculadora, le pedirá que sume los dos números, el sistema lo hará y devolverá la suma al usuario. Posteriormente, el usuario cerrará la calculadora.

Ya tenemos una idea de cómo vamos a realizar la suma. En el siguiente paso refinaremos este modelo de análisis, dando lugar al «modelo de diseño», y ya verán cómo no va a costarnos mucho. Una vez lo tengamos, terminar nuestro programa será como construir un edificio con unos buenos planos: sólo hará falta poner ladrillos. En nuestro caso, nos pondremos a teclear :-)

La Ingeniería del Software (I). Requisitos

Les propongo un viaje. En muchas ocasiones he comentado la importancia de contar en la informática con principios sólidos de ingeniería, pero esta afirmación es terriblemente abstracta, y he pensado (¡sí!) que tal vez sea conveniente concretarla… La rama de la informática que se encarga de estos asuntos se conoce como «Ingeniería del Software», y para que se hagan una idea de su magnitud, en algunos países es una carrera aparte de la Ingeniería Informática convencional…

Todos usamos programas informáticos, pero realmente pocos usuarios son conscientes de los complicados procesos de diseño que rigen el desarrollo de aplicaciones. Y, ¿qué mejor forma que aprenderlo a través de un ejemplo?

A lo largo de las siguientes entregas vamos a ir viendo cómo se construye desde cero, y haciendo las cosas bien, un programa que sume dos números que el usuario le proporcione. Es decir, el usuario le dirá algo así como «5 + 5», y él responderá «10». Hacer un análisis tan complejo para una aplicación tan sencilla es como matar moscas con bombas de hidrógeno, pero es la forma perfecta de comprender los procesos ingenieriles en la informática.

Y de paso, ayudaremos a alguien que llegó a SF hace no mucho tiempo en busca de un programa para sumar dos números orientado a objetos… :-P

Lo primero que necesitamos es un «proceso», que viene a ser una metodología (abusando del lenguaje) o unos pasos que vamos a seguir para llevar a cabo nuestro programa. Hay varios modelos de proceso, y normalmente las organizaciones tienen «su proceso» y lo utilizan siempre, para seguir siempre unos pasos sistemáticos en la construcción de su software. Vamos a emplear una adaptación del llamado Proceso Unificado (UP), que es el más utilizado en los últimos tiempos y que propone una serie de pasos que seguiremos hasta lograr nuestro programa que sea capaz de sumar dos números.

El primer paso es evaluar los requisitos y los objetivos. Para eso se suelen rellenar unas plantillas, con la idea de mantener un listado coherente y organizado de lo que queremos (el «qué»). En este caso, podría ser: «Objetivo del programa: Sumar dos números»

Lo cual formalizado con una plantilla quedaría:

objetivotiff-convertido.jpg

Estas plantillas constituyen un avance muy interesante, que debemos a dos autores españoles: Amador Durán y Beatriz Bernárdez, de la Universidad de Sevilla, que las describen en su Metodología para la Elicitación de Requisitos de Sistemas Software. Por algún misterioso motivo, son habitualmente denominadas «plantillas de Durán y Bernárdez». Qué cosas.

Para establecer las funciones que debe proporcionar la aplicación debemos elaborar generalmente un modelo de casos de uso, que es un resumen de «lo que se podrá hacer» con nuestro programa. Así, un cajero automático tendría estos casos de uso «sacar dinero», «ingresar dinero», «consultar saldo», y los que se nos ocurran.

Los casos de uso representan posibles escenarios de uso del programa, y contribuyen a concentrar el esfuerzo en torno a las funciones exactas del programa, al tiempo que facilitan establecer los requisitos que debe reunir nuestra aplicación. Para nuestro caso, sólo hay un caso de uso (que traducción más horrible, por cierto) que sería “sumar dos números?.

Respecto a los sistemas existen lo que llamamos actores. Los actores representan entidades que interactúan con el sistema. Por ejemplo, en el cajero un actor sería el cliente. En nuestro caso, sólo vamos a tener un actor: el usuario que proporcione dos números para que sean sumados. Lo vamos a llamar «usuario» a secas. Y para él vamos a rellenar también una plantilla como la que sigue:

actortiff-convertido-2-1.jpg

Una vez hemos definido los actores y los casos de uso, podemos dibujar un diagrama de casos de uso, que sería una cosa así:

suma.png

Tal vez les parezca algo ridículo, pero eso es porque no han visto un diagrama con cincuenta casos de usos, con relaciones de extensión, inclusión… en cualquier caso, y por muy complejo que sea un diagrama de casos de uso, siempre simplificará en gran medida la especificación de los requisitos del sistema que diseñemos.

Ahora se trata de concretar qué hacen los casos de uso. Aquí hay que ser bastante sistemático, pero el trabajo que realicemos ahora redundará en una mejora de la implementación posterior. Como sólo tenemos uno, nos quedará una bonita plantilla como ésta:

caso-de-usotiff-convertid.jpg

El «modelo de casos de uso» resultante del diagrama y la descripción de los escenarios da lugar a una descripción exacta y concisa de los requisitos de nuestra aplicación. Ya sabemos qué queremos hacer. En las siguientes entregas veremos cómo lo hacemos.

Curso de ética ingenieril (I)

Vuelvo de entre los muertos, ahora que ha pasado lo peor… aunque hasta dentro de una semana no funcionaré a pleno rendimiento bloguero. Hoy les presento una sección nueva. Y es que en el fantástico y ya extinto Caiga Quien Caiga de Wyoming, el Curso de Ética Periodística era una divertidísima sección donde el gran Juanjo de la Iglesia mostraba titulares de prensa de dudoso gusto o corrección, ofreciendo siempre una versión corregida.

r-117.jpgAun recuerdo algunos titulares, como «El euro se cepilla a la rubia» o «Preocupación por las vascas locas»… yo me moría de risa con aquella sección, de modo que la recupero para este blog en forma de «Curso de ética ingenieril», que irá dando a conocer las meteduras de pata más divertidas sobre ingeniería.

Y aunque suene contradictorio, esta primera entrega es de dudosa ética, porque el texto que presento pertenece a un informe teórico sobre Java 2 Micro Edition (J2ME) elaborado por dos compañeros de facultad. Anoche lo estaba revisando y en la introducción leo:

Los teléfonos móviles son ya parte esencial de nuestra vida. Cada día son más los usuarios de estos terminales, y cada vez son más pequeños.

¿Más pequeños? ¿Los terminales o los usuarios? Yo tengo móvil desde hace años y no me he vuelto más pequeño… a pesar de ello, el texto me llenó de dudas y fui corriendo a medirme, pero sigo siendo igual de alto… ¡qué momento de pánico! Para evitar molestas confusiones, desde el curso de ética ingenieril recomendamos cambiar esta frase por la siguiente:

Los teléfonos móviles son ya parte esencial de nuestra vida. Cada día son más los usuarios de estos terminales, cada vez más pequeños.

Que sin duda resulta más esclarecedor, aunque no es muy elegante. Si se desea una frase más literaria y mejor resuelta, recomendamos la adopción del siguiente texto:

A pesar de su tamaño cada vez menor, los teléfonos móviles ocupan un enorme hueco en la vida del creciente número de usuarios de estos terminales.

Que resume las anteriores ideas con una inigualable belleza. Claro que si queremos dar una vuelta de tuerca a la expresión, podíamos, en un bello ejercicio lingüístico, redactarlo de esta manera:

Los usuarios de teléfonos móviles son una parte esencial en la vida de muchas personas, que los tienen cada vez más pequeños.

O si nos gusta el rock duro,

Los usuarios de teléfonos móviles tienen pequeña una parte esencial de su vida.

Que es mucho más directa e intrigante, y que nos sirve para llamar la atención de un eventual lector. Recomendando encarecidamente la adopción del primer modelo propuesto, nos despedimos hasta la próxima edición de este «Curso de ética ingenieril».

Caminante, no hay camino

Ahora que no nos lee nadie… llega el momento en que quiere uno volver la vista atrás y observar las huellas de sus pasos. Todo esto empezó en serio hace unos cuatro meses, aunque era una idea que llevaba tiempo gestándose… y sigo viendo las estadísticas y no me lo creo. En este poco tiempo, este blog ha recibido 18.000 visitas. Se han publicado 94 entradas y aproximadamente 600 comentarios. Que se dice rápido.

Aquí está la evolución de las visitas en los meses completos de existencia de SF:

graph_summary_barchart.png

Si tenemos en cuenta que es más o menos el mismo número que llevaba CPI tras un año de funcionamiento, podemos hacer la comparativa y suponer que la cosa no ha hecho más que empezar… hay grandes planes para Segmentation Fault, aunque todos se desarrollarán después de los exámenes: vamos a tener un verano interesante :-)

En los últimos dos días hemos recibido una avalancha de 2000 visitantes procedentes de menéame, que han invertido su tiempo en leer esta entrada, que es, por cierto, la más comentada con 36 firmas, aunque haya sido necesario amenazar con sacar la goma de borrar para que los ánimos de relajaran :-P

Posiblemente este es el peor momento para hacer lo que voy a hacer, pero quizás por eso lo quiero hacer. He decidido, con su permiso, que me voy a tomar unos días libres. No van a ser muchos, porque hay mucho material preparado y un montón de ideas escritas en mi libretita. Además, para qué negarlo, me encanta escribir. Pero tengo que concentrarme en los últimos examenes y en otros asuntos que me requieren toda mi atención, y el blog me ocupa muchas horas entre escribir entradas, responder comentarios, ejercer una censura fascista sobre los mismos, consultar enlaces, estadísticas, los blogs de los visitantes… todo un trabajo, vamos.

Me gustaría cerrar este post con unos agradecimientos, pero son tantísimos los que tengo pendientes que no puedo ni recordarlos. Y no me siento con fuerzas para recopilar tal cantidad de nombres y enlaces… ya me disculparán.

Gracias a todo el que piense que debería dárselas, porque seguro que se las merece. Nos leemos en breve :-)

[Cita] Destruiremos el mundo

The most likely way for the world to be destroyed, most experts agree, is by accident. That’s where we come in; we’re computer professionals. We cause accidents.

Nathaniel Borenstein

Lo cual traducido (muy libremente) al castellano, viene a ser:

La mayoría de los expertos coinciden en que la forma más probable de que el mundo sea destruído es debido a un accidente. Aquí es donde entramos nosotros: somos profesionales de la informática. Causamos accidentes.

Hay miles de ejemplos de historias catastróficas en las que, por desgracia, los informáticos estamos involucrados de alguna manera. Programas que dejan de funcionar, fallos de sistemas críticos que se cobran vidas humanas… La frase es divertida, pero encierra la dramática realidad de que los defectos en la ingeniería del software son tan peligrosos como en cualquier otra disciplina: no debemos pasarlos por alto ni restarles importancia.

Es preciso crear una conciencia social sobre la importancia de aplicar procesos sólidos de ingeniería en informática. De la misma manera que nadie le pide a su cuñado albañil que construya la casa para sus hijos, nadie debería sentirse seguro utilizando una aplicación construída por un conocido o «uno que sabe mucho». De los programas informáticos dependen vidas y recursos humanos en muchos casos…

No se puede construir un edificio sin el título de Arquitecto. Pero parece ser que se pueden diseñar aplicaciones sin el título de Ingeniero. Un día nada funciona y nos preguntamos por qué, y nos creemos eso de que los programas están condenados a fallar, que la informática es imperfecta… y un sinfín de excusas a las que nos han acostumbrado.

Los edificios también se caerían si fueran construidos por aficionados al modelismo.

Off-Topic

En los foros, chats, grupos y diversas herramientas de comunicación, un Off-Topic es una contribución alejada del tema de los mismos. Así, no está muy bien visto que en un foro sobre ordenadores alguien pregunte la clasificación de la liga… para eso están los foros sobre deportes. De ahí que si están suscritos a grupos de noticias, las respuestas a todos los mensajes ajenos al tema del mismo estén etiquetadas con un «OT» (no es porque les guste Operación Triunfo :-P)

El Off-Topic no suele representar un problema, pero en los casos más duros puede acabar desintegrando la comunidad que participa en un determinado canal de comunicación… a nadie le gusta perder el tiempo leyendo o borrando mensajes que no tienen nada que ver con lo que verdaderamente le interesa.

Como en SF nos hemos ceñido mucho al tema (somos muy «on-topic», que se dice por ahi :-P) vamos a dejarnos ir por un día. Este Off-Topic tiene como objetivo celebrar la victoria del grupo de hard rock de Finlandia Lordi en Eurovisión (para disgusto de buena parte de la sociedad finlandesa, y sorpresa de la europea).

lordi.jpg

Dentro de las cosas que creí que nunca vería, está la de que un grupo de rock gane Eurovisión con semejante estética… algo se mueve en el mundo… El contraste en la gala era totalmente irreal, impresionante. El caso es que al parecer, su aparición viene precedida de polémica en Finlandia, donde una parte de su sociedad los rechaza por considerarles vinculados al satanismo… pero ya se sabe que la ignorancia es la madre del atrevimiento…

Creo que como ejemplo para aprender qué es eso del «Off-Topic» es bastante adecuado, y de paso es una excusa perfecta para dar la enhorabuena a este grupo tan sorprendente… La creciente comunidad heavy tiene algo que celebrar ;-)

En 3 minutos™: Buscar y encontrar

En este documento están comprimidas algunas ideas sobre los buscadores y cómo buscar en Internet, de tal forma que pueda leerse en el tiempo de tomarse un café… El tiempo de lectura calculado son 3 minutos, pero recuerde que no es una competición…

Recojo una sugerencia de mi idolatrada Misslucifer, quien me pedía, un poco harta, algunas directrices para realizar búsquedas con ciertas probabilidades de éxito. La mayoría utilizamos Google, así que pienso que podemos centrarnos en este buscador sin perder genericidad.

Ahora bien, ¿qué es un buscador? Pues un sistema compuesto de un «robot», una base de datos donde almacenar los resultados y un sistema que permita recuperar búsquedas.

BuscandoEl robot es el corazón de un buscador, y no es más que un programa algo complejo (normalmente ejecutado entre varios ordenadores) que se dedica a rastrear la web leyendo las páginas en busca de fragmentos de texto, palabras clave y enlaces a otras web. Por norma general, los procedimientos que utilizan para rastrear y ordenar la información son mantenidos en secreto para evitar que sean aprovechados por los webmásters para subir posiciones de forma fraudulenta. El éxito de Google se debe principalmente a la potencia de su robot, que «sabe» muy bien cómo ordenar las páginas por relevancia.

Hemos señalado que los robots, también conocidos como «arañas» recorren Internet buscando datos (recorren la «tela de araña», de ahí su nombre), y almacenan toda la información que obtienen en una base de datos, que es lo que consultamos cuando realizamos una búsqueda. En el caso de Google, la consulta que escribimos en su mítico cuadro de texto se traduce en un acceso a su base de datos, que responde con la información solicitada.

Ahora seamos prácticos (¡bien!): Google basa su funcionamiento en encontrar secuencias de texto en páginas web, así es que debemos pensar que Google buscará páginas cuya dirección, título o contenido coincida con el texto que escribamos. Sobre esta característica vamos a enunciar cuatro normas que nos harán la vida más productiva.

La primera norma está clara. Cuando busquemos en Internet la pregunta que debemos hacernos es: ¿qué texto tendrá la página que busco o cómo puede titularse? Supongamos que buscamos la letra de la la canción «Imagine» de John Lennon. Si busca imagine tal cual obtendrá muchos resultados, pero no el que busca. La web que busca contendra la letra, posiblemente sepa que comienza diciendo «imagine all the people». Si busca esto (comillas incluidas) obtendrá mejores resultados. Otra opción sería acompañar al término «imagine» del nombre de «John Lennon» o bien de «letras».

La segunda norma debería ser bastante lógica, pero a fe que no lo es. Una búsqueda debe ser general si buscamos un concepto general, y concreta si buscamos algo concreto. Si queremos información general sobre Linux, es mejor que busquemos «linux» tal cual. Si por el contrario tenemos un problema con un módem en Linux, deberíamos buscar «linux problema modem» y estaremos sobre la pista.

La tercera norma es conocer de lo que es capaz un buscador y de lo que no. Google no encontrará las fotos de su prima si escribe «fotos de mi prima», porque no es una persona (me refiero a Google, su prima supongo que lo es…), sino un programa informático que no conoce a su prima y que se limitará a buscar en Internet páginas donde se diga textualmente «fotos de mi prima». ¿Le parece muy obvio? No lo es, aun recuerdo haber leído en Quebuscasque la búsqueda «yo desnuda».

Cuarta regla, que enlaza con la tercera: ser conciso y preciso. Aunque usted llame discos a los disquetes, debería buscar por esta última si quiere obtener una web que le hable de ellos. Lo mismo pasa para todas las cosas, a Google no le importa cómo las llame usted.

La quinta regla: piense dónde busca, no obtendrá los mismos resultados con una búsqueda general que con una sólo en castellano. De hecho, limitar las búsquedas a páginas en su idioma puede ser una buena idea si está buscando «windows», o palabras que se utilizan en el inglés convencional. De la misma forma, si no obtiene resultados buscando en castellano, inténtelo con su equivalente en inglés, es más probable que encuentre lo que busca.

Una vez vistas las limitaciones generales, tenemos que pensar en la sintaxis concreta de Google en las búsquedas. Hay un montón de ayudas que podemos aplicar a la hora de refinar nuestra búsqueda, pero a mi juicio, lo más importante es saber que si indicamos un texto entre comillas, Google buscará las páginas que contengan exactamente esa secuencia. Resulta útil para buscar frases que conozcamos de libros, poemas, canciones… siempre que recordemos exactamente alguna frase… No lo pierda de vista.

La norma de oro de la informática es siempre la misma: Practique, pruebe, pregunte, investigue, enrede, rompa cosas… sólo así aprenderá. Y sobre todo no tenga miedo: recuerde que ahora puede pegar al equipo.