lunes, julio 17, 2006

Diversión, Geeks y Gatos

Diversión de fin de semana: ¡Gatos!

No estoy seguro del porqué, pero a la gran mayoría de Geeks les encantan los gatos. Tal vez la razón sea porque se sientan en nuestros PC's y se suben sobre el teclado. Definitivamente, muy divertidos.

Por cierto, ¿alguien ha visto o conoce de un gato que persiguiese a un oso negro para cazarlo?

miércoles, abril 12, 2006

Tráfico Web: el eterno dilema del webmaster

Guía de la A a la Z para obtener tráfico en el sitio web

En Septiembre de 1999, Brett Tabke escribió "26 Steps to 15k a Day" (26 pasos para tener 15k en un día) en el foro Webmaster World (Mundo Webmaster). Muchas cosas han cambiado desde entonces, y ahora es el momento de considerar un nuevo plan de 26 pasos que cubran las actuales necesidades de los webmasters del año 2006. Algunos de los pasos aún aplican (escribir contenido nuevo todos los días, por ejemplo), y otros no (enviar a los motores de búsqueda ya no es necesario), y estamos acá para decir cuál es cuál y qué es qué. Como tal vez ya sea muy sabido, atraer visitantes no es tarea fácil, requiere arduo trabajo, determinación y mucho ahínco. Así que si se encuentra listo, recójase las mangas y siga los siguientes 26 pasos sencillos, y en tan solo un año se habrá generado suficiente tráfico para mantenerse ocupado por un largo, muy largo tiempo. Guía de la A a la Z para obtener tráfico en el sitio web.

A) Búsqueda de palabras clave (Keyword research)

Antes que nada, utilice una herramienta de búsqueda de palabras clave y realice un extensivo trabajo de investigación, buscando las palabras y frases claves correctas para usar en el sitio. ¿Qué frases clave está usando la competencia? ¿Hay alguna frase que cree un potencial para la participación en el mercado? ¿Hay alguna con la que pueda lanzar el sitio y crear todo un nuevo nicho de mercado?

B) Nombre de dominio (Domain name)

Si desea registrar y carac el nombre de su compañía, entonces elija un nombre de dominio que lo refleje. Si su compañía se llama Umara, entonces use el dominio www.umara.com. Si ya ha sido tomado por alguien más entonces registre www.productosumara.com o similar. Sin guiones, y ojalá no más de dos palabras en el nombre del dominio.

C) Evite el sandbox

Tan pronto haya elegido las palabras y frases claves y el nombre de su compañía, compre un dominio lo antes posible. Diseñe y coloque una página en el sitio comentando un poco de lo que es usted, lo que vende, y que pronto habrá más por venir. Asegúrese de que va a ser recorrido, escaneado e indexado por buscadores como Google y Yahoo o envíelo o vincúlelo a cualquier otro sitio

D) Considere y cree contenido

Cree más de 30 páginas de contenido real, y original sobre su sitio. Esto le dará a los spiders algo para "masticar". Esto también aumentará las posibilidades de ser visto en los resultados de los motores de búsqueda con una gran variedad de palabras y frases claves.

E) Diseño del sitio

Use el principio "Consérvelo Simple". Emplee un archivo CSS externo, revise y limpie cualquier código Javascript refiriéndolo como archivo externo, y no use frames, utilice Flash de la manera como lo haría con las imágenes, y no importa qué, no construya sitios en Flash. No ofrezca un sitio plagado de "pitos y flautas" a los visitantes. Mantenga las cosas agradables y sencillas. Haga las cosas fáciles de encontrar, y el visitante no tendrán razón para mirar en ninguna otra parte.

F) Tamaño y extensión de página

Que la página use menos kilobytes, lo mejor especialmente para la página prinpipal o inicial. Optimice las imágenes y asegúrese que la página carga rápidamente. La mayoría de personas y negocios del mundo occidental puede que posean acceso alta velocidad, pero los teléfonos celulares y otros países no. Si el sitio carga lentamente, puede que ya haya perdido los visitantes incluso antes que hayan tenido la oportunidad de examinar y explorar el sitio.

G) Usabilidad

Asegúrese de que el sitio sigue las buenas reglas de usabilidad. Recuerde que las personas gastan más tiempo en otros sitios, así que no viole las conveniones del diseño. No use archivos PDF para la lectura en línea. Cambie los colores para los link visitados, y use bueno encabezados. Tener en cuenta algunos consejos y trucos de usabilidad valen la pena, pues le ahorrarán trabajo y esfuerzo.

H) Sobre la optimización del sitio

Utilice la frase clave que ha elegido en su título (lo más importante), sus encabezados (cuando sea conveniente) y en el contenido del texto. Asegúrese que su página/contenido se encuentra alrededor de la frase clave. Si está vendiendo cosas, entonces escriba acerca de esas cosas. No solo coloque por colocar, las palabras de esa objeto o artículo dentro del texto.

I) Los globales

Los globales son aquellos vínculos que permanecen iguales en cada página. Son el punto de referencia para que los nuevos visitantes no se pierdan en la navegación de la página. Algunas veces se encuentran en la parte izquierda de la página, a veces consisten en pestañas en la parte superior de la página. A menudo también se encuentran en el pie de la página. Asegúrese de que tiene una versión del texto de los globales en cada una de las páginas. Usualmente creo pestañas en la parte superior, y coloco versiones en solo texto en el pie de la parte inferior de la página. Revise, averigüe y descubra lo que mejor funciona en su caso.

Artículo originalmente en inglés, redactado por Shawn Campbell en Abril 7 de 2006.
Extraído, traducido y adaptado por Ricardo Andrés Obregón Merchán

lunes, marzo 06, 2006

¿Qué tiene que estudiar un informático?

¿Qué tienen que estudiar los ingenieros informáticos? Es curioso que una profesión tan extendida con titulaciones en casi todas las universidades del mundo tenga tan poco claro lo que tienen que estudiar sus ingenieros.

Introducción

El presente artículo no tratan temas que refieren necesariamente a la informática técnica como tal, quiero entrar en otro de los aspectos que me preocupan y que no es otro que la formación y, dentro de ella, el área que más conozco, la formación de los informáticos.

Una vez escrito este artículo, he de completar esta introducción para indicar que en el fondo sí trato los temas de siempre, fundamentalmente porque la formación de los profesionales informáticos está muy relacionada con el estado de la informática y especialmente con su futuro.

¿Qué se enseña en informática?

Los primeros planes de estudio de la ingeniería informática estaban muy influenciados por la procedencia de la mayoría de su profesorado. En algunas Facultades los profesores provenían fundamentalmente de áreas de ingeniería -ingeniería de telecomunicaciones e ingeniería industrial fundamentalmente- y en otras facultades de áreas de ciencias -matemáticas y física fundamentalmente-. Los primeros títulos oficiales "Licenciados / Diplomados en informática" parece que se decantaban más por esta segunda corriente, mientras que los actuales "Ingenieros / Ingenieros Técnicos en Informática" parece que se acercan más a la primera.

Esta diferencia de culturas llevó al choque entre dos concepciones distintas sobre los planes de estudio en informática. Los primeros con mayor énfasis en asignaturas aplicadas como sistemas operativos, redes de ordenadores, ingeniería del software, etc. Los segundos con más peso en el estudio básico, con mayoría de asignaturas como cálculo, álgebra, matemática discreta, teoría de autómatas, etc. El resultado final de los planes de estudio obviamente conjuga ambas visiones por imperativo legal, aunque la relación de fuerza en cada universidad determinan el sesgo del plan de cada una.

¿Qué lenguaje de programación?

Otro de los problemas habituales a la hora de implementar un plan de estudios de informática es elegir qué lenguaje o lenguajes de programación emplear. Parece razonable que esta decisión se tome fundamentalmente por razones pedagógicas, sin embargo otros muchos factores afectan y han afectado esta decisión.

Durante cierto tiempo muchas universidades emplearon Pascal como lenguaje para enseñar programación. En otras asignaturas, típicamente las relacionadas con los sistemas operativos, se empleaba C por ser el más usado en la implementación de sistemas operativos, los profesores de asignaturas de control o tiempo real preferían Ada, etc. Estas aproximaciones eran criticadas desde la industria por ser lejanas a la realidad del mercado. Es muy importante que aprendan COBOL clamaban hace 15 o 20 años...

A mi entender, la industria parece no darse cuenta de que van por detrás de la universidad y no por delante en estas cuestiones (en contra de lo que creen). Me explico, hace algunos años para mucha gente de la industria en la universidad se explicaban cosas poco útiles cuando no enseñaba COBOL. Curiosamente, como los alumnos en las universidades aprendieron otras cosas, en particular C, cuando llegaron a la industria empezaron a usar lo que mejor conocían. Así,hicieron uso de C, por ejemplo, incluso para hacer programas de gestión empresarial, para lo que no está especialmente dotado.

Hoy la situación sigue siendo similar. Ahora desde la industria se reclama, por ejemplo, que se use Java como lenguaje de programación. Mejor dicho, se pide que se les enseñe Java y sus implementaciones de todas las tecnologías básicas y casi nada más. Sé que para muchos la idea de un lenguaje interpretado con fuertes conexiones con la red puede parecer algo novedoso, pero la verdad es que había muchas cosas similares y mejores antes, simplemente Java tuvo la suerte de nacer entre los brazos de una multinacional.

Nuevo factor: la industria

Además se añade un nuevo factor, la industria ha crecido mucho y ahora hay jugadores muy poderosos: Microsoft, SUN, etc. que entienden perfectamente que lo que aprendan los futuros ingenieros será un factor de mucho peso en lo que se utilizará en las empresas en los años venideros. De ahí que muchas empresas hagan muchos esfuerzos para colocar sus productos en las universidades.

Microsoft parte de su conocida ventaja en sistemas operativos de los equipos de sobremesa, que son los que fundamentalmente equipan las aulas de prácticas por razones fundamentalmente de precio en las universidades. Hasta hace muy poco era complicado encontrar aulas de ordenadores compatibles con sistemas operativos que no fuesen de Microsoft. La resistencia ha sido muy fuerte a la aparición de aulas con GNU/Linux u otros sistemas operativos libres. Las multinacionales informáticas han creado licencias campus para tratar de convencer a las universidades de su uso. Han realizado donaciones de software con la misma idea.

Mi pregunta fundamental es: ¿Debería obligar la administración a utilizar tecnologías neutrales, esto es libres, en la docencia en tecnologías de la información? A mi entender sí, por dos razones fundamentales. La primera menos importante: por precio. Las licencias de campus son muy baratas comparadas con los precios individuales, pero aún así hay que pagarlas y las donaciones sólo se producen al subconjunto limitado de universidades de mucho prestigio con la idea de que arrastren a las demás.

La segunda es la más importante desde mi punto de vista: las administraciones públicas deberían forzar el uso de tecnologías no propietarias para no colaborar en el mantenimiento de monopolios en ningún campo de estas tecnologías. Aceptar que se emplee como lenguaje Java, o que los únicos sistemas operativos que vean los alumnos sean los de la familia Microsoft Windows, me parece peligroso desde el punto de vista social.

Curiosamente, para alguien que ha defendido la vertiente más ingenieril de la informática, son los sectores más partidarios de la fuerte formación matemática los que más comprenden la necesidad de usar tecnologías no propietarias. Quizás la no patentabilidad de las matemáticas ha llevado a esa comunidad a una evolución más abierta que a la de las supuestamente más dinámicas ingenierías.

Deontología profesional

Otro punto de interés en la formación de los informáticos, y que se deja muchas veces de lado, es la formación sobre la informática como rama del saber y sobre sus componentes sociales. La impartición de este tipo de conocimientos suele hacerse alrededor de la asignatura de deontología profesional. Esto no es exclusivo de la informática, casi todas las titulaciones universitarias imponen ciertos créditos obligatorios de deontología profesional.

Las asignaturas sobre deontología en informática tienen en mi opinión un perfil muy limitado, que reconozco sesgada por la implementación de las asignaturas que conozco. En general se centran en una única parte de los problemas a los que se enfrenta un informático en su vida profesional: el uso de información confidencial, bien de los usuarios de los servicios que desarrollan, de sus compañeros o de las empresas para las que trabajan. También abordan, como no podría ser menos, las prácticas éticas, por ejemplo no realizar programas incorrectos intencionadamente, se introducen discusiones sobre la necesidad o no de colegios profesionales (esto daría para otro artículo), se habla de las prácticas de contratación y relación con los compañeros y competidores, y en general se establecen los derechos y deberes legales de la profesión informática.

Sin embargo, en mi opinión es deseable introducir a los alumnos en otros asuntos relacionados con la informática, pero que son de carácter más general. Creo que es importante que se enfrenten a los problemas sociales de la informática. En particular me parece imprescindible que conozcan la filosofía subyacente en el modelo de desarrollo del software libre. No es aceptable que la mayoría de los alumnos de informática salgan de las aulas pensando que la única forma de desarrollar software, o de ganar dinero desarrollándolo es mediante la venta de licencias propietarias. Es necesario que se aborde el análisis de las licencias de software, que se estudien sus implicaciones.

De igual forma es necesario que en las aulas se aborden las cuestiones relacionadas con la propiedad intelectual, de las que yo creo que el software libre es un subconjunto. La informática está estrechamente relacionada hoy en día con la producción y distribución de contenidos multimedia. Es necesario que los informáticos discutan y razonen sobre las formas en que se van a realizar esas funciones y sus responsabilidades sociales.

Las prácticas profesionales de un informático no deben limitarse a su relación con la información confidencial, la privacidad de los datos, etc. Es importante que sea consciente de su papel en la cadena de producción intelectual y que decida con conocimiento qué tipo de herramientas desarrolla o utiliza en su vida profesional.

Los otros informáticos

Hasta aquí he usado la formación de los informáticos como hilo conductor del artículo. Soy consciente de que la profesión informática a día de hoy está llena de gentes de procedencias muy diversas. Así, además de ingenieros informáticos, hay ingenieros de otras ramas, licenciados, etc. Eso sí, lo dicho sobre el uso de herramientas informática libres se aplica igualmente a su formación.

Asignaturas relacionadas con la gestión de la propiedad intelectual en general y con el modelo de desarrollo del software libre en particular creo que deberían ser obligatorias en los estudios relacionados con las tecnologías de la comunicación y muy recomendables (quizás en formato de asignaturas de libre elección/configuración) en otras titulaciones.

Otra parte de los profesionales de la informática son los autodidactas. A ellos les recomendaría que, siguiendo sus instintos, trataran de ver más allá de las herramientas comerciales de moda y que apostasen por el software libre como camino de especialización.

Por último, como profesor no puedo dejar al resto de los usuario sin deberes: no vale con ser simples usuarios de GNU/Linux, hay que entender, por ejemplo, qué papel juega la licencia GPL y el modelo de desarrollo de software libre en general.

Como siempre BarraPunto sigue siendo un buen sitio para discutir estos asuntos. Así, si quieres leer más sobre estos temas puedes intervenir en muchas de las discusiones que se celebran al respecto.

Extraído y adaptado para la comunidad en general, del Libro "Sobre Software Libre" - http://gsyc.escet.urjc.es/~grex/sobre-libre/informaticos.html (c)