viernes, 12 de octubre de 2007

define:googlear

Es increíble como pasa el tiempo. Aún recuerdo cuando era "más joven" y asistía regularmente a las bibliotecas. Cuando era niño me gustaba pasar a la biblioteca cuando salía de la escuela, aunque llegara tarde a la casa. La gente que me conoce sabe que me gusta mucho leer, y leo prácticamente cualquier cosa, siempre y cuando valga la pena. Mi gusto por la lectura es algo así como una necesidad primaria para mi espíritu curioso, y vaya que si algo me disgusta es no saber algo o quedarme con la duda.

Pero muchas cosas han cambiado. Con la entrada de Internet a nuestras vidas, cada vez menos gente acude a las bibliotecas, especialmente desde que se inventaron los motores de búsqueda de WWW (hay otros tipos de buscadores, como Gopher, Archie o Veronica, pero sin duda los más conocidos son los de WWW).

Les puedo asegurar que en la actualidad la gran mayoría de la gente que frecuenta Internet depende de algún buscador. Tengo una hermana que se sorprende de cómo encuentro tan rápido prácticamente cualquier cosa en Internet (esta va para ti, Juli). En particular, yo utilizo Google (por cierto, dicen que es uno de los mejores lugares para trabajar, y no lo dudo), y en esta ocasión quiero compartirles algunos trucos o hacks de Google para que sus búsquedas en WWW sean más provechosas. Por cierto, ¿alguien llegó aquí por una búsqueda en Google? Sería interesante saberlo.

Lo más sencillo de esto es la clásica búsqueda que todo mundo hace, por ejemplo, buscar la palabra Knaverit (que es el seudónimo que uso, por si no lo han notado) encontrará algunas de mis entradas en mis blogs, o la palabra héroes nos traerá, sin duda, enlaces a sitios dedicados a la ya popular serie de televisión (que, por cierto, es de mis favoritas). ¿Pero qué tal si lo que estás buscando algo sobre los héroes en la historia y no quieres ver las páginas de la serie? Bastaría con usar héroes -serie para que, gracias al signo "menos" (-) se excluyan las páginas que contengan la palabra "serie". Claro que es mucho más fácil especificar a qué héroes estás buscando, como héroes grecia o héroes desconocidos, pero ¿y si lo que quieres es realmente comprar el DVD, pero que cueste entre $45 y $50 dólares? (porque con eso de que algunos dicen que si no es caro, no vale la pena) pues muy fácil: usa DVD héroes $45..$50 (los ".." indican un rango de valores), o haz la prueba con algún precio más barato, qué tal entre 10 y 20 dólares... por ahí hubiéramos comenzado, ¿no?.

Para aquellos que desean refinar sus métodos de búsqueda un poco más, les tengo otras sugerencias: ¿necesitas saber qué es un "encabezado"? Puedes usar define:encabezado, y te mostrará las páginas que definen esa palabra; o define:buscador para saber que un buscador es un sitio Web que te ayuda a encontrar otros sitios (o define:googlear, para saber qué quise decir con el título de esta entrada). Por cierto, ¿y si lo que quiero es buscar algo en un solo sitio? (es decir, limitar la búsqueda) Ya ven que a veces esto de buscar se vuelve una tarea titánica, pero es muy fácil con la etiqueta site:, por ejemplo: redes site:romeosanchez-0xCAFE.blogspot.com te mostrará lo que he escrito sobre redes en este weblog, o criptonomicon site:www.gandhi.com.mx te llevará a las opciones de compra del libro que recomendé hace poco, en una conocida librería de México, o incluso algo como blog site:www.eluniversal.com.mx te mostraría las noticias de un periódico referentes al tema "blog", o cualquier otro que se te ocurra.

Muy poca gente sabe que en Google se pueden hacer cosas como las que voy a contar a continuación; por ejemplo, que se puede usar como una calculadora: así, una expresión como 12 * 22 o 15% of 67 pondría el resultado de esa operación aritmética; o si alguien tiene la duda de qué valor en decimal es mi famoso 0xCAFE hexadecimal, puede buscar 0xCAFE to decimal y verá el resultado. Incluso pueden convertir entre unidades, como 100 USD in pesos. Todo eso es chido.

Hay muchos ejemplos más, pero para no cansarlos me limitaré a unos pocos, por ejemplo: related:www.hispasec.com mostraría sitios relacionados con seguridad, o related:www.google.com daría la lista de otros buscadores relacionados (en el sentido funcional) con Google.

Ya por último, debo recordarles que algo como ~poesia buscaría sitios no sólo con la palabra poesía, sino también con sus sinónimos (por ejemplo, literatura), o "Romeo y Julieta" (así, entre comillas) haría una búsqueda exacta del contenido entre comillas, pero... esperen.... esta última búsqueda trae resultados que no me interesan, así que la refinaré un poco: "Romeo y Julieta" -cigars ; sí, así es mucho mejor, porque yo no fumo :-D. También una búsqueda de tipo el * camino (con un asterisco, *) me encontraría sitios con contenidos como el mismo camino, el único camino, el buen camino, el largo camino, etc., porque el asterisco (*) representa cualquier cantidad de palabras, en este caso, entre la preposición "el" y el sustantivo "camino". En fin, es cuestión de experimentar. Se queda de tarea.

Así que ya lo saben. No es ningún secreto. Los motores de búsqueda en Internet son una herramienta indispensable en la actualidad, pero no hay que creerse todo lo que está en Internet, pues no todo es cierto. Pienso que ningún buscador reemplaza la escencia de la consulta bibliográfica y el olor a hojas de libro, pero sí hace mucho más fácil el suplir una necesidad básica del hombre: salir de la duda.

:wq!

miércoles, 10 de octubre de 2007

Entre Objetos, Java, C# y... ¿Sinclair BASIC?

Hace algunos días fui requerido para ir a dar un seminario acerca de cómo desarrollar aplicaciones para Windows en .NET, usando C#. No había tenido oportunidad de usar VisualStudio 2005, pues el último que había usado era el 2003, y me llevé la grata sorpresa de que tiene algunas ventajas con respecto a la versión anterior (ya sé, ya está la nueva versión 2008 en Beta, pero no la he visto, lo siento). Me dediqué unos días a revisar la versión 2005 y debo decir que sí me quedé con buena impresión del IDE.

Durante la presentación les expliqué a los asistentes, a través de una demostración, la manera de desarrollar rápidamente una aplicación sencilla con acceso a datos, con muy poco código qué programar. Es increíble cómo muchas de las cosas que anteriormente nos llevaba horas desarrollar, ahora con las herramientas adecuadas se pueden hacer en cuestión de minutos (ya lo dije anteriormente cuando hablé acerca de NetBeans 5.5). Claro está que nada reemplaza la satisfacción de hacer un programa "desde cero", pero hay proyectos en los que el tiempo apremia (pensándolo bien, en todos los proyectos el tiempo apremia). Todos los asistentes (al menos la mayoría, creo yo) quedaron asombrados de la facilidad de uso del IDE y de cómo en pocos minutos ya teníamos la aplicación terminada (me extendí un poco porque, como ustedes imaginarán, me gusta hablar demasiado).

Días después me llamaron para que diera una clase sobre Programación Orientada a Objetos (OOP) para un grupo de estudiantes de un curso de Java. En la lección expliqué acerca de la relevancia de los lenguajes orientados a objetos (como Java, C++ y C#) y cómo es que el paradigma de orientación a objetos nos ayuda a escribir código mucho más legible, reutilizable y relativamente rápido. Hice un recuento breve acerca de la evolución de los paradigmas de programación y cómo en la actualidad los sistemas emplean el máximo poder de cómputo para lograr cosas cada vez más poderosas. Todos se mostraron interesados, en particular porque algunos nunca habían escuchado (o entendido) acerca de términos como encapsulamiento, herencia y polimorfismo. Fue una mañana muy interesante.

En ambas charlas concluimos lo siguiente: los sistemas actuales cada vez demandan desarrollos de software más robustos en el menor tiempo posible. Tanto Sun Microsystems como Microsoft Microsoft están dando batalla para lograr que los desarrolladores tengan cada vez mejores herramientas que les permitan tener más tiempo libre ;-) (¿por qué no tenía algo así antes?). Lo importante ahora es no depender tanto del uso de las herramientas, y seguir cultivando las mejores prácticas de programación, que corren el riesgo de ser olvidadas por quienes abusan del uso de IDEs o de ser completamente ignoradas o desconocidas.

Creo que independientemente de las tecnologías que pueda llegar a conocer, en el fondo siempre seré un desarrollador de software. Me gusta programar y creo que no lo hago tan mal ;-). Habrá que ver qué es lo que sigue para las siguientes generaciones de herramientas de desarrollo de software.

Como punto final, en la clase de OOP uno de los alumnos confesó haber comenzado a programar con una Timex Sinclair 1000, igual que con la que comencé a programar (esto es demasiado curioso, puesto que no mucha gente que yo conozca usó ese modelo en particular). Es que haciendo un poco más de memoria (cosa difícil para mi), realmente antes de GWBASIC usé el Sinclair BASIC. Para los que estén un poco interesados en la "prehistoria" y quieran saber qué usaba (yo) para programar hace 20 años, en este enlace encontrarán un emulador de Timex Sinclair 1000 hecho en Java.

:wq!