viernes, 22 de junio de 2007

Para guardar... ¿en un disquete?


Hace poco me surgió la inquietud sobre la metáfora visual típica de 'Guardar' a raíz de una plática que tuve.

Recién mi mamá tiene su propia computadora, al estarle enseñando a usarla se topó con el problema de no saber cómo guardar un documento que había escrito. Le indiqué entonces el iconito que tiene el disquete, a lo que me preguntó: ¿y si yo no lo quiero guardar en disquete, cómo le hago?

Y es cierto. Los usuarios de ahora aprendemos que el disquete representa el salvar un archivo, pero ¿qué me dicen de las nuevas generaciones? Yo no uso disquetes desde hace mucho tiempo, creo que mi hermano jamás, y los que vienen probablemente ni siquiera sepan lo que sea un disquete.

Sin embargo, visto desde el otro lado, es difícil crear una metáfora tan general y eficaz como lo ha sido el disquete. Definitivamente un disco duro sería poco intuitivo, un CD muy ambiguo, y una memoria USB muy poco uniforme. Pienso que el mejor acercamiento sería la metáfora de un archivo guardándose en alguna caja o carpeta, aunque se corre el riesgo de ser complicado, y de no ser adoptado tan fácilmente por quienes estamos [mal]acostumbrados al disquillo.

¿Será que en algún momento este símbolo va a pasar de moda?
Mientras no haya un mejor contendiente, me parece que no.

jueves, 21 de junio de 2007

Maravillosas 7

¿Ya votaron? Yo ya lo hice.

Si su respuesta es afirmativa, la nueva pregunta es: ¿porqué lo hicieron?


De acuerdo con la fundación n7w, es decir, la encargada de organizar el evento, se trata de un proyecto de concientización acerca de la destrucción que causa el hombre en el mundo. Específicamente, aquella que daña monumentos históricos, que por su belleza, complejidad o historia se han catalogado como las nuevas maravillas del mundo.

Los votos son gratuitos, aunque hay otras formas de voto que representan el pago de una cuota. Se pueden comprar artículos promocionales conmemorativos, e incluso se ofrecen paquetes para viajar a los mencionados lugares. Según la misión del proyecto, el 50% de lo recaudado se destinará a obras de preservación de monumentos.

El plan en sí suena muy bien. Lo que no termino de digerir, o mejor dicho, de imaginar, es el gran negocio que hay detrás de esto. El evento no sólo ha logrado atraer la atención a los ojos del mundo, sino que ha tenido tanto éxito que hay mucha especulación acreca de lo que pase el 7/7/7.

Hay que tomar en cuenta que n7w es una organización con fines de lucro, y no tiene ninguna relación con organismos internacionales supuestamente más competentes, como la ONU o la UNESCO. Sin embargo, considero que el impacto de esto será bueno, ya que de alguna manera el simple hecho de que se hayan elegido ciertos lugares como candidatos habla de su trascendencia, y fomenta esa sensación de estar protegiendo algo valioso.

Mi voto fue totalmente subjetivo (al igual que la campaña que hacen alrededor de cada uno de estos monumentos), pero favorecí a Chichen-Itzá por ser el único lugar que más o menos conozco (y alguna vez llegué a ir, cuando muy pequeño), y realmente porque me siento identificado como mexicano. Sinceramente, mis demás votos fueron bastante arbitrarios, tendré mis razones.

¿Y ustedes, por cuáles votaron?

miércoles, 20 de junio de 2007

De cómo los grilletes se convirtieron en tela...

... o por lo menos, con mucho almidón.

Soy de esas personas que detestan usar traje. No me gusta tampoco la desfachatez, sino más bien una informalidad moderada.

Platicando en una ocasión con un amigo, me comentaba que en su carrera (Relaciones Internacionales) se ven temas como Protocolo e Imagen, que tratan sobre las reglas, usos y costumbres del llamado "buen vestir". La discusión surgió precisamente a raíz de una queja mía sobre la incomodidad e inutilidad de usar traje.

Verán. En mi punto de vista, el traje es algo arcaico, cuyos orígenes se pueden ubicar en las cortes inglesas. En ese momento y situación, el traje era un símbolo exclusivo de la nobleza, e incluso dentro de la misma servía para discriminar (segunda acepción) a unos de otros, según sus lugares de origen o sus posiciones.

El problema vino después de la Revolución Francesa. Una nueva clase social surgía, pero heredaba algunas de las costumbres de su antecesora. La vestimenta fue una de ellas. Aunque no de la misma manera, se conservó el espíritu de discriminación a partir de la vestimenta. No es que fuera algo nuevo, sino que a partir de ese momento se volvió más palpable.

De aquí, se derivan dos vertientes: el traje como símbolo de superioridad, y como símbolo de unidad. Veamos cada una de ellas.

La primera ya la he mencionado, y podemos verlo visiblemente, considero que no hace falta mencionarlo. El "jefe" debe proyectar una "imagen de profesionalismo", mientras que el sujeto de la playera polo con el logo de la empresa debe ser el repartidor, o el intendente. Qué ridículo.

La otra razón es la uniformidad. A pesar de que los trajes no son todos iguales, son uniformes en cuanto a sus elementos, y sirven para unificar ese estilo. Sin embargo, no veo el punto de la uniformidad si en diferentes círculos se usa el mismo traje. Olvidan completamente el origen unificador de este aspecto. Y además, ¿qué no la ropa casual puede cumplir el mismo objetivo?

Yendo un poco más allá de los usos del traje, he de decir que me parece una forma de esclavitud: esclavos de una clase social superflua, de un capitalismo atroz en donde lo único que importa es la imagen. En algún momento, los grilletes y collares se convirtieron en mangas y cuellos de algodón, las cadenas en corbatas, y el traje a rayas en camisa y pantalón. Eso sí, todo proveniente de los mejores sastres. Quizá sea un tanto radical, pero las similitudes me parecen muy grandes.

Sinceramente, no veo ninguna razón práctica para usarlo (al igual que otros). Tal parece que todo es inercia. Diría que un motivo es hacer que las personas se vean mejor, pero ese es mi mejor intento por decir algo a favor. Y vaya que hasta para mí mismo se me hace una razón ridícula.


El resto de la plática con mi amigo fue una somera discusión, en la que obviamente ninguno iba a ganar. El acabose llegó cuando mencionó que las "grandes" personalidades usan traje, como los diputados. Fuera del oxímoron enorme que esto representa, mi respuesta inmediata fue: ¿y el traje los hace ser más inteligentes? Juzguen ustedes...

jueves, 14 de junio de 2007

¿Y los rubíes, dónde?

Leyendo en el blog de O'Reilly Ruby, un post interesante hizo que me pusiera a pensar de nuevo es la vida laboral que me espera: no hay trabajos en Ruby.

Tal sentencia en principio me parece muy exagerada, pero no está muy alejada de la realidad: Ruby carece de popularidad. Y más aún, fuera del éxito de Rails, Ruby es muy poco usado para aplicaciones reales, incluidas las comerciales. Parece ser que hasta ahora, se ha confinado a ser sólo un lenguaje de Scripting, no superior a Perl para tal fin.

Sin embargo, hay algo que destaca de Ruby sobre los demás lenguajes: su rápido crecimiento.

Si hay algo que decir acerca de Ruby (y estoy seguro que los rubistas que lean esto no me podrán negar) es que es un lenguaje apasionante. Así es, en el sentido literal de la palabra, cada vez son más los casos de programadores que se enamoran de esta pequeña joya.

Por ahora no cazaré brujas e iniciaré la eterna discusión sobre si X lenguaje es mejor que Y, pero hablando de Ruby, es preferido por muchos debido a su sencillez, su flexibilidad, su dinamismo, y hasta porque es divertido, entre muchas otras razones. Rails lo ha sabido demostrar, y a pesar de ser éste un hijo del primero, tiene más popularidad que Ruby mismo. Esto también demuestra que el mercado es el que manda, y Rails es el mensajero de guerra para tal fin.

Lo cual me lleva a mi punto principal: Ruby está apenas en una etapa de desarrollo, en la que se mueve más por inercia propia que por necesidad. Ha madurado muy rápidamente, y en mi opinión, pronto empatará (si no es que reemplazará) a algunos de los lenguajes comerciales utilizados en la actualidad. Sin embargo, los nuevos paradigmas de trabajo han hecho posible que pasantes, freelancers o simplemente gente con muchas ganas de trabajar puedan dedicarse a este negocio de la manera que les gusta: the Ruby Way.

Ruby es un arte, y como tal, debe primero alcanzar su máximo esplendor por sí mismo, antes de formar parte de las arcas de los coleccionistas.

lunes, 11 de junio de 2007

5 maneras de escapar del trabajo

Me agrada mucho la frase de Confucio que dice: "Si amas lo que haces, no tendrás que trabajar nunca más en tu vida."

Y es cierto. Personalmente, es lo que me motiva a seguir con la escuela, a buscar un trabajo en el que me sienta realmente a gusto, y a explorar todo aquello que me apasiona. Y vivir de eso si se puede.

Siendo sinceros, aún me sigue aterrando la idea de tener que esclavizarme treinta años trabajando para una compañía, especialmente si tengo que hacer algo que no me guste, a pesar de que estoy ya pisando esa frontera entre la vida escolar y el mundo laboral. Hay mucho qué aprender de Dilbert.

Sin embargo, es precisamente esa mentalidad la que hay evitar. He aquí un post interesante que precisamente marca la diferencia entre una mentalidad de trabajador y una de emprendedor:

  1. Empieza por preguntarte: ¿qué tipo de trabajo quiero hacer?, en lugar de ¿qué tipo de negocio debo comenzar?


  2. Olvídate de la permanencia.

  3. Opera en un estado consciente y confidente de ignorancia.

  4. Aleja tus expectativas tradicionales de salario.

  5. Siempre considera despedirte a tí mismo.

Así que, ya saben, si quieren un trabajo mediocre, y ser medianamente felices el resto de su vida, sólo se requiere un paso muy sencillo: ignorar todo esto, y aceptar el primer trabajo ofrecido.

sábado, 9 de junio de 2007

El retorno de FizzBuzz




Como ya había mencionado en un post pasado, en el Ruby Quiz de la semana pasada se ponía a prueba a la comunidad Ruby con el quiz más participado hasta el momento: el FizzBuzz. Sin embargo, siento que James (reviewer de Ruby Quiz) no dijo todo lo que esperaba escuchar.

Comenzando por una cita del autor del artículo mencionado en el post pasado:

FizzBuzz es presentado como el mínimo nivel de comprensión requerida para ilustrar suficiencia y habilidad. No hay gloria en resolver esta prueba. Incluso si la puedes escribir en cinco lenguajes diferentes o en menos de 50 bytes.

El punto del artículo original fue reflexionar acerca de porqué debemos hacer la prueba del FizzBuzz. La parte mecánica de resolver el problema es irrelevante
que es exactamente lo que yo pienso. No quiero hacerme ilusiones, pero pienso que la mayoría de los programadores, a cualquier nivel, pueden resolver tal programa fácilmente.

Sin embargo, orientado hacia la comunidad Ruby, el problema exponía algo más interesante: Bien, ya sabemos que todos pudieron resolver el quiz adecuadamente... entonces, ¿hay una solución mejor que otra?

En el resumen del quiz, James menciona:

La mayoría parece concordar en que al menos una meta [del quiz] es demostrar una mínima capacidad para escribir código. La otra meta que asumimos es que los entrevistadores buscan cierto grado de cleverness.

Siendo cleverness una palabra engañosa y difícil de traducir. En el sentido literal, significa astucia, pero en el contexto de la programación, significa utilizar trucos "listos" para hacer el código más corto, o rebuscado, sin necesariamente ser más sencillo, que suelen ser todo lo contrario.

Esto debido a las reacciones de muchos rubistas pretendiendo "golfear" su código. Sin embargo, esto no se apega tanto al quiz, ya que personalmente, no diría algo así en una entrevista de trabajo:

Pero hay muchos otros aspectos que hacen del programador, y del software por ende, un producto de calidad. Aspectos como la escalabilidad, la legibilidad, la robustez, etc.

Es por eso que llegaron soluciones extendiendo el método a la clase Numeric (una de las delicias de Ruby), para ser extendible; otros tomaron en cuenta los comentarios para la documentación; hubo quienes hicieron pruebas de unidad. Todas estas alternativas muy válidas. Sin echar guayabazos, una de mis soluciones contemplaba la escalabilidad, al extender la clase a cualquier rango y condición para los números. Hubiera sido interesante analizar este tipo de parámetros en el quiz.

En fin, creo que FizzBuzz ya ha demostrado lo que tenía que demostrar, y si bien hizo más ruido de lo que debería, la perspectiva que nos presenta es alarmante: tener que recurrir a programas tan sencillos para darse cuenta de la incapacidad de muchos programadores.

miércoles, 6 de junio de 2007

Microsoft Ruby

He de admitirlo, no me agrada del todo la manera en que trabaja Microsoft. Siendo sinceros, a Microsoft le tengo cierta antipatía, principalmente debido a la manera en que influencia todo dentro del mundo de las computadoras, en especial de la programación. He hablado mil cosas negativas sobre Microsoft, sin embargo trato de no caer en ese anti-fanatismo que no es sorpresa ver en quienes se dedican a la programación (y no están del lado de Microsoft, obviamente). Y vaya que tiene sus razones.

Sin embargo, no todo es malo. Veo en Microsoft muchas cosas buenas (que ya discutiré más a detalle en otro post), pero sobre todo, acepto la realidad: Microsoft es un monstruo comercial, que queramos o no tiene mucha influencia sobre nuestras vidas, tanto de los programadores como del mundo en general. Es entonces preciso no ignorar ese hecho, sino ser proactivos, y preguntarse: ¿qué es lo que no me gusta de Microsoft?, y lo más importante, ¿cómo puedo yo contribuir a cambiarlo?

Trasladando esto al mundo de Ruby, surge aquí una situación interesante: IronRuby. Ésta es una implementación de Ruby diseñada para ser portable al .NET Framework. Analicemos los hechos:

Ruby: un 'pobrecito' lenguaje de programación, que no cuenta con millones de dólares detrás de él, es open source y cuenta con una comunidad de entusiastas verdaderamente envidiable.
.NET: Todo lo contrario.

¿De qué se trata? No es la primera vez que Microsoft se alía con el Open Source, sin embargo, se me hace un tanto interesante, tomando en consideración que existe un proyecto similar.

El gran problema de IronRuby es la actitud que tiene Microsoft ante él. Es un proyecto que, según Martin Fowler, tiene claroscuros

Microsoft está lleno de fuerzas contradictorias, y no sabemos cuál ganará.

con esto queriendo decir que es un tanto difícil conciliar ambar partes: por una parte, IronRuby es un proyecto que no se beneficia en nada del open source por el hecho de que su licencia no le permite utilizar el MRI (O Matz' Ruby Implementation), aunque está abierto a la posibilidad de que la comunidad, una vez lanzado el código que genere el CLR, haga sus propios parches y tenga la misma inercia que tiene Ruby. La licencia que consiguieron para utilizar el *casi* extinto Ruby.NET fue un gran avance, pero ahora veamos cómo logran sacar adelante esa meta de tener Rails corriendo en .NET.

Este dilema parece inquietar más a Microsoft que a la comunidad de ruby: ellos saben que hacen bien las cosas, y creo que no hablaré de más si digo que en general comparten la idea de que Microsoft debe ampliar su visión y no tratar de competir contra la realidad: es un Goliat, sí, pero sabe que no debe luchar contra David.

Las intenciones de ambos aún me parecen un tanto inceiertas. Sin embargo, confío en que se haga de esto un buen paso para la liberación del software y para la coexistencia pacífica con Microsoft. En una nota aparte, del .NET Framework me gusta la integración que tiene, y paradójicamente, la libertad que da al programador (aunque sólo sea dentro del .NET y corriendo sobre Windows, Mono es un caso aparte) Ampliar sus fronteras me parece un buen paso, aunque he de decir que JRuby lleva las de ganar en ese sentido. Será cuestión de cómo reacciona la comunidad para ver el alcance que tiene el proyecto. Por lo pronto, esperemos que no sea sólo un vaporware más adornando Silverlight.