Text

Había una vez un…

Son pocas las veces que me he detenido a preguntarme él porque la vida, a veces, puede parecer tan injusta. Imagino una vida donde todo lo que anhelo se cumpla ipso facto, pero así no son las cosas. Incluso pudiera llegar a pensar que “Dios me odia”.

No somos el centro del Universo, y como tal, el libre albedrío de cada ser que habita en ésta cápsula tiene la libertad de cambiar cada una de las variantes que van a terminar definiendo el rumbo que toma nuestra vida… nuestras alegrías, nuestras decepciones.

Cuando se trata de algo negativo, muchas veces no somos capaces de velar más allá de nuestros anhelos, tampoco podemos ver la “triste” realidad y creamos nuestro propio mundo de ilusiones que, al final, termina por hacernos más daño del que ya está hecho. Si es algo positivo al instante estaremos felices de la vida por haberse cumplido una condición que esperábamos.

Aceptar, cambiar, dar el siguiente paso sea bueno o malo, es lo que debes hacer… como yo ya estoy haciendo.

Photo
Perros como él son abandonados todos los días, perdiendo toda esperanza de vida…

Perros como él son abandonados todos los días, perdiendo toda esperanza de vida…

Text

¿Mi pensamiento es subjetivo u objetivo?

Antes de entrar a definir que es cada cosa, simplemente tengo una cuestión para ti:

Imagina que por alguna extraña razón tu has adquirido poderes especiales, los que tu quieras… lo importante es mencionar que a partir de ese momento tu eres el ser más poderoso del Planeta Tierra y puedes hacer lo que se te de la gana, entonces, ¿Qué es lo que tu harías con esos poderes?

Piénsalo bien, ahora… vamos a tratar de cubrir las posibles respuestas para definir de que forma sueles pensar tu:

— Los usaría para acabar con todo el mal, prácticamente me dedicaría a hacer el bien ó ¡Acabaría con todo el mundo y sería el nuevo Rey del mundo!: Este es el típico comportamiento que se les adjudica a los superheroes y villanos de los comics, con esos poderes puedes tener todo lo que tu deseas pero aún así te limitarás a hacerle bien o mal a la sociedad. Si pensaste de ésta forma tu pensamiento es subjetivo, ya que tu mente ignoraría los medios de los que dispondrías para tu propio beneficio… por lo tanto tu forma de pensar es líneal y es probable que continuamente caiga en la ignorancia.

— Estoy seguro que trataría de acabar con el mal, pero admito que sería capaz de hacer cosas para mi propio beneficio ó Me vengaría de todas esas personas que me hicieron algún tipo de daño, pero creo que ayudaría al mundo a convertirse en un mejor lugar, sin compromiso: Eres capaz de ponerte en una situación en la que no estás realmente, por lo que tu pensamiento sería objetivo, verías el impacto positivo y negativo que tendría cada una de las variables que cambiarían en tu vida una vez adquirieras esos poderes. Te das cuenta que de tu lado tienes características primitivas como el egoísmo o la empatía. Seguramente tu eres una persona que tiene una percepción más realista de la vida, tiende a analizar las cosas, o haces actividades similares a las mencionadas anteriormente.

Sea como sea, toma en cuenta que cuando se habla de subjetivismos y objetivismos, incluso ahí se puede ser subjetivo… quizás mis palabras podrían ser erroneas dentro de un contexto diferente, quizás.

Originalmente publicado en Facebook.

Text

Progresos CGM Untitled Project

La última vez que toqué éste proyecto tenía ciertos problemas con el sistema encargado de empaquetar binarios, y como es una parte importante del núcleo que mantiene todo el sistema online lo pospuse hasta encontrar una alternativa… Esa alternativa llegó a finales de 2011 pero al parecer hoy será momento de implementarla y continuar con ese proyecto.

Las ganas de continuarlo no se lo debo a nadie más que a Platform Racing 2, juego que me había gustado bastante 2 años atrás, y que con haberlo vuelto a jugar he recuperado un poco las ganas de continuar éste proyecto que, en parte, tiene sus similitudes e incluso tenía pensado añadir un modo de juego similar al presentado en éste juego que menciono.

Text

El análisis de las relaciones sociales a través de Fnet

 

Si quieres ver la imagen en grande para buscar tu nombre, visita el enlace original: http://dl.dropbox.com/u/2406302/Fnet.png

Justo ahora, después de un par de minutos manejando una cantidad masiva de datos a través de múltiples iteraciones con los registros originales de la Base de Datos…  se ha concluido que el proyecto ha alcanzado su fase Beta. El script en lenguaje Python ha necesitado de 10 minutos en una máquina Intel i7 a 3.4Ghz para generar un gráfico en el formato libre SVG para después ser exportado al formato PNG.

No está terminado, todavía puede mejorarse más, pero como se ha aplicado el ordenamiento, tu mismo puedes buscar tu nombre y ver las personas con las que más relación tienes, muchas seguramente las conocerás… pero otras quizás podrían representar una futura amistad exitosa.

P.D. Los carácteres especiales como la Ñ o los acentos no han sido adaptados de Unicode a UTF-8, por lo que no se visualizan correctamente. 

Créditos:

Juan Manuel Castro Pippo: Generador de gráfico vectorial (SVG) con una aplicación en lenguaje Python, ordenamiento dinámico para obtener las relaciones sociales entre amigos a travéz de los “Amigos en Común”.

Eduardo Ibarra: Generador de una Base de Datos (SQLite3) y del sistema de conexión con la API de Facebook para obtener toda la información necesaria para la generación del gráfico.

Jorge Luis Perez: Creador del parser del lenguaje JSON, el idioma que utiliza Facebook en su plataforma de desarrolladores para comunicarse.

Text

La felicidad es relativa

Estoy casi seguro que todas las personas, en algún momento de su vida se hacen la pregunta de: ¿Yo qué tan feliz soy?

En ese momento la persona empieza a análizar cada uno de los logros y fracasos de su vida, haciendo de balanza para llegar a una conclusión satisfactoria… está haciendo un análisis subjetivo, siendo bastante precisa porque ésta se apoya de sus sentidos.

Y un problema, quizás bastante torpe, podría surgir cuando la persona trata de concluir la felicidad de las demás personas en base a sus propios criterios, a mi personalmente me pasó un par de veces de 2 maneras distintas:

— Las personas que creía que eran más infelices que yo:  Tristemente (O no) la mayor parte de mi vida, he encontrado la felicidad absoluta en objetos materiales, y ver a otras personas que carecían de esos bienes o servicios, me hacía pensar ipso facto que todo el tiempo se estarían lamentando por no tenerlas.

— Las personas que creía que eran más felices que yo: Se dio de diferentes formas, principalmente cayendo en lo mismo del punto anterior, instantáneamente al ver que otra persona tenía un objeto que yo deseaba, pensaba en la tremenda felicidad que poseía mientras que yo, me quedaba admirando la felicidad de esa persona pero sin tenerla.

La realidad es que al final no vienen importando si se tiene un bien, servicio, experiencia, relación o lo que sea… lo realmente importante es la expectativa que se tenga de uno mismo, una persona que ha recibido poco espera poco y con eso es feliz, una persona que ha recibido mucho… esperará mucho. A partir de ese punto, y con los acontecimientos que se vayan dando en el mismo día (Positivos y/o Negativos), se irá definiendo la felicidad de una persona.

Al final todo viene siendo relativo…

Text

En busca del modo debug de la vida real

El reloj daba las 3:50 de la madrugada y yo no tenía un carajo de sueño, el Monster Energy y una rutina de ejercicio en conjunto pueden hacer que, en verdad, una persona esté llena de energía y a la vez llena de ideas, aunque éstas sean estúpidas.

En mi camino de la rutina, hay un punto en que mi mente se cuestiona, ¿Merece la pena hacer todo esto para el resultado que quiero obtener? ¿Por qué coño se torna tan complicado y se necesita de tanta dedicación?

En ese momento, viene a mi mente una increíble paranoia, bastante común… Me imagino a mi mismo siguiendo mi camino cuando repentinamente (Y cuasi mágicamente) estoy dotado de ciertas habilidades que se salen de lo normal en la vida de un ser humano, como si se tratará de algún modo especial en el que podemos modificar a nuestro entero gusto, cualquier aspecto del Universo. Y esto me ocurre, desgraciadamente, por mis habilidades como programador en donde también se involucra la lógica y el sentido común… te das cuenta de que en cierta forma tratas de hallarle cada una de las características que enteramente conoces en un entorno que te sabes manejar, como lo son los lenguajes de programación.

El detalle es que quizás el Universo en el que vivimos no se rige por las mismas leyes que éste mismo nos presenta como válidas, cosas tan simples como las variables del tiempo y el espacio, el inicio y el fin, el creador y el destructor…

Como último detalle, si fuese un hecho que el Universo se rige por esas leyes, nosotros no somos más que simples elementos de dicho sistema en el que no presentamos privilegio alguno para poder obtener acceso a ese “modo debug”, a menos que de alguna manera pudieramos encontrar una vulnerabilidad,¿Y usarlo para hackear la vida real?

¿Quién se apunta a dedicar su vida entera a encontrar vulnerabilidades en la vida real? Seguramente al final todo es falso (Y la pregunta no va en serio)…

Text

La aplicación más inútil jamás vista

Enlace de descarga: http://dl.dropbox.com/u/2406302/ProyectoInutil.rar

Hace un par de meses con un amigo programador discutiamos libremente sobre las aplicaciones existentes que nos ofrecen una utilidad casi nula, al final terminamos por hacer una pequeña competencia por ver quién creaba la aplicación más inútil.

Pensando un poco se me ocurrió escribir un “Lanzador de Páginas Web de Internet”, aplicación que tiene como objetivo “facilitar” el acceso a los sitios web usando su increíble inteligencia, si lo prueban verán la tremenda inutilidad que ofrece.

A parte de complicar las cosas, te insulta de una forma leve… cada error que cometas supondrá una reclamación diferente, no esperen mucho de él porque sus palabras fueron producto de un entrenamiento mental de 5 minutos de su programador, pero entre ellas están:

El increíble enlazador de contenidos en Internet le permite de una forma exageradamente compleja hacer algo relativamente fácil como entrar a un sitio web, nada mejor que eso definitivamente! Sólo escriba la dirección correctamente y pulse ENTER.¿Sabía usted que es peligroso no escribir la cadena “http://” completa? ¿Qué quién me lo dijo? ¡Ni idea pero tienes que hacerme caso si quieres usar mi aplicación!

¿Qué crees que yo hago magia o qué cojones? No seas huevón y escribe la dirección que quieres visitar, yo sólo te enlazo…

¿Y ahora que coño hago? ¡Sólo me has dado el jodido protocolo! Eres lamentable…

¡World Wide Web (WWW)! Apréndetelo pero YA, no me importa que tu nula capacidad para la Informática te lo impida, pero yo no puedo hacer todo el trabajo por TI… ¿Subdominios, Direcciones IP? ¡Desde ya te digo que no me voy a molestar en interpretar ESO! ¡Es WWW o NADA!

.COM, .NET, .XXX o sea lo que se te de tu maldita gana de visitar, tienes que definir un dominio, ¿Y te digo que? ¡No lo estás haciendo y eso me provoca tristeza, al verte a TI, intentando visitar un sitio web!

Creí en ti… pensé que… PODÍAS HACERLO BIEN pero me has fallado MALDITA SEA, tienes que usar la barra final “/” para que yo pueda funcionar bien… olvídalo, si quieres dignidad retirate AHORA.

Lo has hecho bien… ahora para poder procesar todo tendrás que esperar X milisegundos… 

Text

Lo que supone desarrollar un proyecto de calidad

Hoy en la mañana me he levantado con ganas de continuar mi más reciente proyecto, ese proyecto al que le he invertido un par de horas y que, hasta el momento, me he asegurado de que hasta el más mínimo detalle goze de una gran calidad.

Ya tenía tiempo de no continuarlo, así que lo primero que hice fue examinar el entorno, ver que era lo que había dejado pendiente, y tratar de seguir desarrollandolo con el nivel de calidad promedio. En este caso presté especial atención a la forma en que se van a gestionar los elementos gráficos en pantalla.El lenguaje de programación que estos usando, GML, es interpretado a travéz de unrunner programado enteramente en Delphi, por lo tanto el rendimiento es claramente inferior respecto a otros lenguajes que se ejecutan directamente como el lenguaje C.

Es ahí donde entra la cuestión: ¿Cuál es el método más optimizado para lograr lo que me propongo? . Mientras me iba a hacer mi rutina de ejercicio mi mente se abrió para darme a la mano múltiples opciones:

—  Dibujado en tiempo real: Esto no requiere mucho razonamiento, simplemente sugiere que cualquier gráfico que se tenga que mostrar, va a ser dibujado el número de veces a la cantidad de fotogramas que la aplicación está coriendo por segundo. El problema con éste método es que una de las características escenciales de la aplicación es la de dibujar a mano libre sobre la pantalla, y tener que dibujar todos los pixeles que han sido marcados en pantalla multiplicado por los fotogramas a los que se ejecuta la aplicación, supone una inmensa carga que no todos los ordenadores pudieran sobrellevar.

— Cantidad de superficies = Número de cuadros: La aplicación que estoy desarrollando maneja cuadros de dibujado independientes, prácticamente no existe límite alguno que suponga un acotamiento para una implementación más perfecta de éste método. Actualmente los cuadros pueden viajar de los 550x100 hasta los 550x600 pixeles y manejar una superficie limpia con dimensiones definidas, a nivel de programación, es relativamente flexible. El problema reside en la memoria de vídeo, la creación de cada superficie consume cierta cantidad de memoria de vídeo, y si no se cuenta con memoria suficiente el resultado sería un error que impediría la correcta ejecución de la aplicación.

— Superficies maestras:  Tengo la ligera sencación de que las aplicaciones profesionales de escritorio de empresas cual Microsoft o Apple utilizan este tipo de método, claro, ésto lo deduzco a travéz de ingeniería inversa realizada en mi mente, no puedo asegurar nada. Consiste en definir 2 superficies base del tamaño de la ventana de la aplicación y que se apoyen para dibujar prácticamente todo, a partir de una variable definida que sería la posición vertical, la superficie actual va a dibujar todo desde ese punto hasta el límite definido por el alto de la ventana; Si la variable definida de posición cambia entonces la superficie principal se mantendrá activa pero el resto de contenido que se tiene que mostrar, debería ser generado gracias al apoyo de la otra superficie, sin importar si el valor de la posición crece o viceversa. El posible problema podría encontrarse, una vez más, en la memoría de vídeo, pero frente a la opción anterior es infinitamente más viable.

— Conversión de formatos: Ante el dibujado en tiempo real, el verdadero problema vendría siendo el seguimiento de cada pixel del dibujado a mano libre, éste método consiste más bien en una revisión de aquél, para hacerlo más viable. Digamos que se ha entrado al modo de dibujado a mano libre y se ha hecho lo justo para la ocasión, entonces el usuario se dispone a finalizar el modo de dibujado, y aquí es donde inicia el proceso de conversión; Con una sóla ejecución bastaría para almacenar en un sprite todos los pixeles que se han pintado en tal modo, el resultado sería una imagen de mapa de bits sin compresión, pero internamente gracias a la herramienta ImageMagick se conseguiría un formato de compresión compatible con el lenguaje GML para inmediatamente volver a cargar el contenido a la aplicación, el resultado sería un increíble ahorro en el rendimiento. Por ahora no he encontrado un problema en éste método que se merezca mención alguna.

Y tú, ¿Te complicas tanto las cosas como yo con el objetivo de conseguir lo mejor?

— Eduardo Ibarra 

Quote
"Reinventando métodos de escuchar música: Ahora hay que montar un punto de acceso local inalambrico para enviar por streaming el audio desde un equipo portátil, pero la selección de datos que se enviarán por streaming será elegida desde el dispositivo remoto que recibe los datos vía streaming para interpretarlos… a los frikis nos gusta complicarnos la vida."

— Lalo Ibarra

Photo
PhotoInception

PhotoInception

(vía photojojo)

Quote
"The town has many folkloric things that have been preserved over the years. Hualahuises is divided into two parts: Santa Rosa and Hualahuises itself. People living there have a reputation for being very friendly and courteous."

— Wikipedia [USA]

Quote
"No et limites a contemplar aquestes hores que ara venen
baixa al carrer i participa,
no podran res davant un poble unit alegre i combatiu."

— Obrint Pas

Photo
La solución a todos los problemas (?)

La solución a todos los problemas (?)

Quote
"Las miradas son como la tranferencia de datos por infrarrojo 2.0 con acceso root al alma."

— Lalo Ibarra