Archivo para la categoría ‘computación’

Evil Mail

Martes 18 de Diciembre de 2007

Hace tiempo escribí un filtro de direcciones de correo electrónico en Python. Se trata de un script que realiza, de forma automática, una búsqueda de las direcciones de correo electrónico que se encuentren dentro de cualquier texto, como correos electrónicos. Desafortunadamente tenía algunos problemas, había casos en que detectaba como dirección de correo una cadena que no lo era y omitía algunas que sí lo eran. En fin, necesitaba corregir esos errores.

Aprovechando las vacaciones retomé el pequeño proyecto. Hice una función de validación muy elegante a partir de una máquina de estados finitos (FSM) que contempla cada caso posible según se especifica en el estándar RFC 2822 para que no se vaya a escapar ningún correo.

El script quedó listo, reutilicé la mayor parte del código original y afiné algunos detallitos. Para hacer una prueba busqué en mi cuenta de correo las cadenitas que me mandaron en el año (2007). Son pocas realmente, porque quienes me conocen saben que me desagradan estas cosas, así que casi no me llegan.

En fin, juntar todos los correos de este tipo llevó muy poco tiempo y, aún así, logre extraer 836 direcciones de correo electrónico, ninguna de ellas repetida. El siguiente paso será obtener todas las direcciones de mi cuenta actual de correo y algunas más de mi abandonada cuenta de hotmail, la cual (a diferencia de la otra) se encuentra atascada de cadenitas, spam y otras linduras.

Todas estas direcciones de correo llegan a mi gracias a todos aquellos que; ya sea por pereza, indiferencia o ignorancia; reenvían sus cadenitas a todos sus contactos, sin tener la gentileza de ocultar sus direcciones a fin de evitar que personas como yo se hagan de una compilación de direcciones, como la que acabo de obtener, y que seguramente será usada para oscuros y misteriosos propósitos spam-eros.

Yet Another Boring Name

Miércoles 7 de Noviembre de 2007

Resulta ser que por ahí en internet hay muchos programas OpenSource muy buenos. Buscando por aquí y por allá uno se topa con algunas joyas bajo la filosofía del software libre.

Siempre he dicho que de entre los nombres que se le pueden dar a algo, son los nombres que se le dan al software los que destacan en ingenio y gracia. Pero de entre todos ellos existe un pequeño grupo de nombres que desprecio profundamente.

Los nombres de estos programas comienzan siempre con las letras “YA”, que son las iniciales de “Yet Another” seguido de algunas otras que describen el propósito del programa. De entre ellos, por mencional algunos, tenemos: YafRay (Yet Another Free Raytracer), YACC (Yet Another Compiler Compiler), YAML (Yet Another Markup Language), o el extremadamente ridículo YAYACC (Yet Another Yet Another Compiler Compiler). Una lista más larga puede ser encontrada en la wikipedia, que incluye otras cosas a demás de programas.

Para quienes no se les de mucho eso del inglés, “Yet Another” significa algo así como “Otro más” o “Uno de tantos”. Muchos de estos programas, sin embargo, son muy buenos, lo que yo no me explico es cómo le pueden poner un nombre así a un programa cuya realización sin duda ha costado tiempo, dinero y esfuerzo. Muchos programas, como dije, son muy buenos, y aún así tienen un nombre pobre y miserable, que da a entender que tan sólo es un programucho más del montón.  Quizá sea verdad, quizá el programa es uno de tantos que hay, pero el que sus desarrolladores le pongan como nombre esta etiqueta da a entender que de entre todos, es el que sale sobrando.

En fin, de todos los nombres posibles, Yet Another Algo es el peor que pueden escoger, superado sólo quizá por TWAIN (Technology Without An Interesting Name), que resulta en extremo apático. No comprendo la motivación que lleva a un grupo de desarrolladores a bautizar al producto de su trabajo e investigación con un nombre tan estéril, cualquier cosa sería mejor, ni siquiera tiene que ser algo sorprendente, bien puede llamarse “José” o lo que sea, pero ¿Yet Another?, ese nombre sólo inspira lástima.

¡Que el Cliente se Joda!

Lunes 21 de Agosto de 2006

Tengo un problema con un archivo WMV (video) que se ha estropeado. Buscando en internet descubrí que el error de mi archivo puede ser corregido con Windows Media Encoder. Pues bien, mi máquina vino con una versión original de Windows (sin posibilidad de rechazarla claro), y ya que no es pirata, decidí bajar de forma gratuita el dichoso programa.

Al llegar a la página de Micro$oft me topé con un laberinto de enlaces, menús y demás porquería. Después de buscar un buen rato por la incómoda página desistí y busqué en Google, el cual me llevó a la página que buscaba. Una vez ahí, me dispuse a bajar el software aparentemente gratuito que Micro$oft “facilita” a sus usuarios legítimos.

Todo iba bien, cuando me topé con la verificación de “Windows Original”, una asquerosa medida hecha para verificar si la copia es auténtica o pirata. Bueno, pues para que Micro$oft pueda verificar la autenticidad de mi software era necesario que instalara un plug-in para mi navegador, o en su defecto una aplicación para mi sistema. Media hora y aún no obtenía lo que buscaba. Así que cerré la maldita página de Micro$oft, encendí el eDonkey y bajé el maldito Windows Media Encoder de ahí mismo, lo instalé y ¡listo!.

Esta no es la primera vez que paso este tipo de molestias debido a esta miserable empresa. Cuando deseo actualizar mi explorador ocurre lo mismo (algunas páginas no abren sin el maldito IE), si quiero bajar parches, actualizaciones, etc, ¡lo mismo!, y en verdad resulta extremadamente molesto, y además, si no cuentas con una conexión a internet te jodiste.

Como pudieron haber notado, bajé el programa que buscaba de una red P2P, lo cual podría ser considerado piratería, aunque el programa es gratuito. Me resulta increíble que sea más sencillo bajar los programas piratas que de la página del “fabricante”. Todas esas medidas anti-piratería solamente perjudican al usuario legítimo, ya que es mucho más sencillo conseguir todo pirata.

Además, el usuario legítimo tiene que solventar la memoria que ocupan todas las rutinas destinadas a la protección del software propietario, así como el tiempo de ejecución y la capacidad de cómputo (sin mencionar toda la mierda que estos programas instalan en tu computadora); y por si no fuera poco, el usuario legítimo debe llenar interminables formularios, comprobar que dispone de una copia legal y sólo después obtendrá los servicios a los cuales se supone tiene derecho.

Actualmente resulta más sencillo instalar un software pirata y aplicar el parche/serial/crack y ¡listo!, en contraste con el laborioso proceso de validar el software original, registrarse, obtener el número serial, etc. Toda esta protección contra la piratería es a costa de la comodidad del cliente, quien pagó por un software cuyo propósito es facilitarle el trabajo, no ocasionarle molestias adicionales.

En el negocio del software (y de la información en general) el cliente no tiene la razón, todo cliente es considerado un pirata en potencia y a pesar de haber adquirido el producto pagando con su dinero, se le acusa de ladrón con múltiples advertencias y amenazas de diferente índole, trabas, procedimientos elaborados, etc.

Mi conclusión y postura sobre estos temas, que ya he discutido anteriormente, es que; a pesar de ser empresas conformadas respecto a la legalidad, sus modos de proceder no son honorables, incluso son ventajosos, arbitrarios y viles. Es un claro ejemplo de prepotencia, el único objetivo de estas compañías es aprovecharse de los consumidores (sometidos a la necesidad de adquirir sus productos) a fin de enriquecerse de una manera tan asquerosa que debería ser ilegal. Pienso que la piratería es lo único que le pone un alto a este abuso, así, las cosas resultan más justas ¿no les parece?.

“Inteligencia” Artificial

Lunes 17 de Abril de 2006

Probablemente todos hemos escuchado sobre la Inteligencia Artificial. En algunos canales como el Discovery Channel o incluso el National Geographic Channel hablan a menudo sobre las maravillas de esta ciencia. El ejemplo más notable de inteligencia artificial son las redes neuronales, estructuras similares a cerebros primitivos compuestas de varias neuronas interconectadas de forma paralela capaces de realizar complejas tareas de reconocimiento de patrones.

A pesar de que las redes neuronales artificiales están basadas en modelos del cerebro, creo que el término “Inteligencia Artificial” dista mucho de ser lo que aparenta. Ninguna técnica de la inteligencia artificial ni tampoco el paradigma actual se asemejan remotamente a la inteligencia que conocemos y de la cual gozamos. No importa que tan compleja pueda hacerse una red neuronal artificial, estas estructuras no son inteligentes.

La inteligencia artificial de la que disponemos actualmente no son más que una forma muy compleja de ecuación matemática. El “aprendizaje” se da al encontrar los mejores coeficientes para esta ecuación, y nada más. Es por lo tanto un proceso completamente determinístico, no hay inteligencia alguna ahí. Estos sistemas carecen de creatividad alguna, no poseen ningún medio de generación espontánea de ideas, no existe comprensión por parte del sistema, no hay adaptación más allá del entrenamiento, que es simplemente un método de encontrar los mejores coeficientes.

Cosas como la consciencia, la voluntad, la creatividad, la imaginación, el razonamiento, la intuición, la percepción, etc. se encuentran totalmente ausentes en la inteligencia artificial. Por tal motivo no creo que llamar a esto inteligencia sea lo más adecuado. A final de cuentas, termina siendo sólo un método de programación diferente al habitual, en el que el sistema genera su propio algoritmo generalizando los ejemplos que le proporciona el programador. Una vez generado el algoritmo interno, la red neuronal se comporta como una simple función.

Sobre la verdadera inteligencia artificial, es dudosa la posibilidad de que algún día logremos crear un ser artificial con una mente similar a la nuestra, ya que nuestros avances actuales no se acercan ni remotamente a este fin. Hay quienes piensan que es imposible crear una mente artificial, otros piensan que nuestros cerebros son máquinas cuánticas, y que será necesaria una tecnología cuántica a fin de crear mentes verdaderas.

Mientras más se profundiza en el conocimiento más se puede observar que nuestra arrogante confianza de que nuestra preciosa ciencia es la verdad absoluta no es más que una ilusión. Todo parte de nuestras mentes, todo lo percibimos a través de ella, toda nuestra verdad está edificada sobre la mera suposición de que lo que percibimos es. A fin de cuentas, no tenemos ni la más remota idea sobre la naturaleza de la mente y la consciencia, y me inclino a pensar que en realidad no sabemos nada de nada.

Let it Evolve

Jueves 13 de Abril de 2006
generation 0:  error 104: "xktbtna dlzabipiom"
generation 1:  error 76:  "tqqkpwf cjehsjrilu"
generation 2:  error 63:  "sgjhyfp cjehsjrilu"
generation 4:  error 51:  "eipczhp cjehsjrilu"
generation 5:  error 44:  "ghqdush cjehsjrilu"
generation 6:  error 38:  "ggrdtna cjehsjriiu"
generation 8:  error 31:  "kgpdtif cjehsjsilr"
generation 9:  error 27:  "iiqftid blhhsjsilu"
generation 10: error 26:  "hgkdtif cjemsjrilu"
generation 11: error 23:  "gfqfucd bjgoqitilw"
generation 12: error 22:  "ghqftid bihonjsilt"
generation 13: error 21:  "gemfuid bjelnjsimu"
generation 14: error 19:  "iimdtid bigoqitilv"
generation 15: error 18:  "gfqftih blhlsitils"
generation 16: error 14:  "gemfuid bjgoqivilu"
generation 18: error 13:  "gemeuid bjgoqgtglu"
generation 20: error 9:   "gemfuic bjgoqitils"
generation 25: error 8:   "gemfuic bmgoqitins"
generation 27: error 7:   "geoeuid blgoqitins"
generation 30: error 7:   "geoeuid akgositils"
generation 32: error 6:   "geoeuic akgositins"
generation 34: error 5:   "geoetic akgoshthmr"
generation 37: error 5:   "gfneuic akgoritins"
generation 39: error 3:   "geoetic akgosithms"
generation 42: error 3:   "gemetic akgosithms"
generation 45: error 3:   "gfnetic algosithns"
generation 48: error 2:   "genetic akgoqithms"
generation 50: error 1:   "genetic algosithms"
generation 57: error 0:   "genetic algorithms"

Segmentation Fault

Domingo 22 de Enero de 2006

He estado toda la tarde programando en C, de hecho, llevo varios días haciéndolo. No se dónde carajos escuché o leí un consejo: “no hay que ser tan perfeccionistas”. Entonces decidí seguir el consejo, ya que cuando programo tiendo a ponerme algo maniático.

Así que decidí primero escribir el código, hacer comentarios escuetos y una vez que el programa funcionara arreglaría la presentación y los detalles que surjan. También escribí rápidamente las funciones que necesitaba para compilarlas más tarde.

Pues bien, el experimento no funcionó. El programa tenía algunos errores (era de esperarse), pero fue mucho más complicado depurar el código, las funciones adquirieron un desorden espantoso y no tengo la certeza de haber escrito un código libre de errores.

En fin, seguiré usando mi acostumbrada técnica maniática de programación, probando una a una cada función mientras las voy programando (aunque tenga que escribir más funciones de prueba), comentando una a una las funciones y las líneas importantes y catalogando las funciones afines en módulos específicos. Es más trabajo, pero el frustrante esfuerzo de depurar disminuye drásticamente.

OpenOffice 2.0

Sábado 26 de Noviembre de 2005

Hace pocos días fue liberada la nueva versión de OpenOffice. Para aquellos que no lo sepan, OpenOffice es una suite de oficina de lo más completa, no tiene nada que envidiarle a MSOffice (al contrario), y a diferencia de la anterior, OpenOffice es gratis.

Contiene varios programas: un editor de textos (Writer), una hoja de cálculo (Calc), un editor de presentaciones (Impress), un editor de imágenes vectoriales (Draw), una aplicación para manejar bases de datos (Base) y un fabuloso editor de ecuaciones como ninguno (Math). Y por si fuera poco, estos programas están increíblemente elaborados, tienen todo lo que un programa comercial posee, quizá incluso sean mejores, y a demás, soportan multitud de formatos diferentes. OpenOffice está disponible, a demás, en muchos sistemas operativos diferentes.

A pesar de todas las ventajas que OpenOffice posee, casi todo el mundo sigue usando la suite de Micro$oft. Yo pienso que es por la fuerza de la costumbre, aunque la costumbre sale cara, ya que a mi forma de ver, MS Office es por mucho inferior a OpenOffice, es más caro, menos portable, más inestable y mediocre.

Bien, este pequeño comentario es para motivar a mis lectores a que le den una oportunidad a OpenOffice y para retribuir de alguna forma los beneficios que he recibido. Es una excelente suite de oficina a la altura de las mejores y al alcance de cualquier bolsillo.

Si quieres saber más sobre este maravilloso programa, puedes consultar su página web en www.openoffice.org

  • Actualmente te encuentras navegando en los archivos de la categoría computación.

  • Archivo

  • Categorías

  • Blogroll