jueves, diciembre 30, 2004

Bola's day out!

Luego de andar saliendo de manera apresurada de la casa, el dia de ayer por la noche (9pm), dejé a la pequeña bola en la cama.

No parece la gran cosa... o si?

Antes de salir del cuarto heché un vistaso al cuarto y lo vi claramente hecho bola durmiendo dentro de su pequeña y diminuta jaulita. Estaba en la cama, dormido, en un cuarto tibio. Tenia comida y agua... todo estaba bien. Asi que me fui sin siquiera preocuparme.

Pues al regresar a la casa, la jaula estaba vacía!

La jaula tiene un ganchito de alambre que sirve para evitar que los hamsters habran la puerta (una puerta corrediza vertical, como la jaula de los pajaros), como fregados una bola de pelos habriría una puerta de ese tipo???

Al parecer su desesperacion por querer salir lo hizo tratar de excabar, sin darse cuenta movió la lamina de piso hacia el frente, levantando ligeramente la puerta. Al buscar por todas partes la salida por 4 horas encontró la puerta ligeramente abierta y haciendose delgadito pudo salir.

"..."

Ahora bien, en mi casa hay ratones y estan los gatos detras de ellos. Que sucederá con una pequeña ratita blanca ligeramente mas gorda, mas dientuda y de plano lenta a morir?

Nada.

A las dos horas de encontrar la jaula vacia, una bolita blanca pasó delante de mis bocinas tal y como un carrito de cuerda. Cuando le hablé, el hamster se detuvo observandome con los ojos tan abiertos como jamas lo habia hecho, y con las orejillas mas paradas que nunca.

Luego de acercarmele el hamster se lanzo corriendo contra la pata de la mesa, la pata de una silla y una pesada caja de carton (casi se veia como rebotaba del golpe) y en un rincon se detuvo observandome nuevamente (con esos golpes quien habrá querido seguir corriendo xD). Y en ese rincon pude tomarlo nuevamente. :)

Luego de pensar que no sería un buen padre, y que jamas volvería a tener mascotas en la casa (como lo habia hecho hace unos 5 años), y de pensar como es que las mendigas ratas lo habian atacado en su jaula y lo habian matado, o de como se habia salido del cuarto y habia sido comido por los gatos, reaparece nuevamente la esperanza de romper el record de los 6 meses!

De todos modos, para mayor seguridad, lavé la antigua jaula en la que mi novia tenia a su hamster, le heche cama, comida y agua, y puse allí a mi pequeña bola.

Ahora con su escape se ve mas hiperactivo, se la pasa mordiendo la jaula nueva, cosa que no hacía en la antigua jaula. oO En fin...

Cualquier otra noticia aqui se las pongo xD

Saludos!!!!!

Marcos.

viernes, diciembre 24, 2004

Feliz Navidad!

Mis mejores deseos para todos mis amigos y compañeros!

Feliz Navidad y Prospero año nuevo!

Que se la pasen padre en estos dias de fiesta!

Atte. Marcos Gutierrez

domingo, diciembre 19, 2004

Una pequeña y blanca bola de pelos

El dia de hoy fuimos mi novia y yo por una pequeña bolita de pelos en una veterinaria. Se trata de un hamster de un mes de nacido, y será mi mascota por los proximos... er... bueno, lo que me dure (o lo que le dure).

Al principio pensaba que tener una mascota tan pequeña y tan delicada era una mala idea, pues incluso animales mas grandes que esa mirruña nos han durado maximo 6 meses en la casa. En verdad parece haber algo malevolo en la casa contra nuestras mascotas, y aun haciendo lo posible por tenerlos con vida (segun me dice mi novia, no se les puede dar ni medicina contra la gripe -_-).

Finalmente escogimos uno y nos lo trajimos a casa en una pequeña caja de carton (creo que era la caja de un filtro para pez con agujeritos hechos con una pluma... el que nos atendio parecia haber estado practicando). Junto con el trajimos una pequeña jaula color azul hecha de barrotitos de alambre, una bolsa de "cama para hamster", comida para hamster (Semillas de girasol) y un pequeño botesito con un tubito de metal tapado por una posta (el bebedero del hamster).

Hay cada cosa para los hamsters que hasta parece chiste.

Mi novia ha tenido un hamster durante casi un año y medio, asi que me estuvo dando consejos para cuidarlo, desde que darle de comer hasta como tomarlo y jugar con el. Parece algo realmense sencillo. Pero luego de la primer noche me estoy dando cuenta que en verdad es algo curioso, te distrae verlo ingeniandoselas para acomodar su pequeña jaulita a su gusto.

Segun yo, no me dura mas de dos semanas, cualquier dia de estos voy a olvidar que tengo un hamster (si tan solo fueran algo mas grandes...).

Pero bueno, veremos que bien sale de mi pequeño Hamster.

Por cierto, le hemos puesto "Bola", heh no batallamos mucho con el nombre xD

Gracias, y hasta pronto!

Marcos.

La Historia de un Programador VI

Parte 6.0 Java, Introduccion

Hubo un tiempo antes de empezar con PHP en el cual tuve que tomar una gran decision. Quería abordar en el mundo de la interfaz gráfica, la interfaz de texto ya me habia brindado mas de lo que habia esperado, y me sentia listo para entrar al mundo "visual".

Pero al investigar, noté varias tendencias. Entre ellas C, Visual C, Visual Basic, Java... entre otras, de hecho se que muchos mas lenguajes enfocados a la terminal (como PERL) tienen instrucciones para usar interfaces graficas, pero si era ya de hecho dificil en los lenguajes enfocados a la interfaz, usar esos lenguajes era en cierta forma algo masoquista.

El problema era escoger uno de estos lenguajes enfocados.

El lenguaje C, tenia la propiedad de ser portatil, de poder ser compilado en distintas plataformas. Pero al nivel de interfaz grafica, no era tan portatil, podia escribir el mismo programa pero al momento de querer enviar todo a la interfaz tenias que usar "plugins" para mostrarlo correctamente en cada uno (uno para gnome, uno para Qt, uno para windows, uno para la MAc y asi sucesivamente). De por si el sistema quedaba realmente extenso, y ahora tener que lidiar con esto me empezó a obligar a escoger otro lenguaje.

Visual Basic de plano quedó fuera del mapa, no es portatil, necesitabas pagar una licencia tan solo para usarlo, vaya tenia que tener windows para usarlo, y solo podia programar en su interfaz. VB era actualizado casi cada año, y finalmente con la llegada del .net, empece a notar que los cambios drasticos en el lenguaje eran sintomas de un lenguaje que no tenia las bases firmes, y era necesario estarlo cambiando para mantenerlo actualizado. Al diablo!

Java por su parte, aparentemente resuelve el problema desde la raiz. Ya que basta con que lo compiles una vez puedes correrlo en casi cualquier plataforma, pero aun asi, la naturaleza en la diferiencia entre sistemas operativos es muy notable (afortunadamente Windows se ha estado actualizando). Java era algo similar al C, un todologo diseñado para el trabajo en red. Que prometia tener un PORT de sus librerias en todas las plataformas usadas actualmente, asi los programadores solo nos preocupariamos por terminar el proyecto.

Parte 6.1, Java, El todologo al rescate

A Java lo veia como un C moderno, guardando la seriedad de un lenguaje con bases realmente firmes desde las cuales se puede crecer a donde uno quiera. Pero mi primer contacto con java fue algo confuso, ya que me mostraba el mundo de la programacion desde otra perspectiva, y era algo que no me esperaba.

El Paso de secuencial a estructurada fue un gran golpe. El paso de estructurada a orientada a objetos ha sido un golpe mayor!

Para empezar los programas en Java ya no son programas, NO mi pequeño saltamontes! ahora no son mas que objetos, objetos que tienen propiedades y procedimientos tambien heredadas de objetos mas generales. Ya no hay una sola linea secuencial de ejecucion, ahora todos son librerias y se ejecutan de manera distinta dependiendo de la circunstancia. Ya no te preocupes por el manejo del STDIN/STDOUT, nooo... ahora procupate por las acciones del usuario y de las señales que recivas de objetos ejecutandose de manera paralela, el STDIN/STDOUT ya no son lo que pensabas!

Y no solo eso!!!

Reconoces la diferencia de manejo de variables entre Basic y C? Algo similar ha ocurrido pero ahora con las funciones (o bueno, procedimientos), ahora no existen procedimientos globales accesibles por todo el sistema. NO!(ya no mas .h ni .inc), ahora los procedimientos existen solo dentro de los objetos!

Complejo no, Distinto, velo de esta manera, seguramente lo que quieres modificar u obtener es informacion relacionada a un algo, ahora ese algo tiene que ser identificado y encapsulado dentro de su propio mundo con sus propios procedimientos, variables, etc... etiquetandolo ahora como objeto.

Ya no mandas a llamar a librerias genericas que puedes usar en cualquier momento!!! NO ahora importas objetos para crear instancias de ellos, y de esta manera poder usar sus procedimientos!!! (siento que me estoy repitiendo demasiado)

Total, desde la perspectiva de un programador en C, Java es el caos mismo, hecho lenguaje!

Pero sorprendentemente dentro del Caos existe el orden!, ya que, si alguna vez has escrito un programa realmente extenso, te habras dado cuenta que es mas facil manejarlo por modulos, por plugins y cosas por el estilo. El programar por objetos no solo te ayuda a realmente separar la programacion (ya que cada objeto puede ser completamente ajeno a su ambiente), si no al organizar incluso los grupos de programadores, e incluso el reutilizar el codigo hecho ya antiguamente.

Un ejemplo sencillo, es un objeto que te permita verificar que un usuario sea quien dice ser, en todos los sistemas centralizados se usa!, porque no simplemente copiar el paquete "login.jar" a mis librerias y ya tener disponible este metodo estandarizado?

Desarrolla una vez, correlo donde quieras (realmente donde quieras).

Parte 6.2, Java, Proximamente en su refrigerador!

Existen varias versiones de Java, y estas cubren casi cualquier tecnologia existente (o por existir). Puedes tener programas en tu PC, en Linux, en windows, en UNIX, en OSX, en tu XBOX, en tu PS2, en tu Palm, en tu celular, en tu telescopio, en tu conmutador... casi en cualquier lado! Y sigue siendo el mismo Java!

En el Web no se queda tan mal, Java tiene sus JSP (Java Server Pages/Java Servlets) que pueden hacer casi cualquier cosas que PHP hace, e incluso mas! Su nueva perspectiva de sesiones, la facilidad de manejo de paginas con sus sistemas empaquetados,su velocidad de ejecucion, son algo que lo hacen la vale la pena checar!

Ademas de que no tienes que pagar por programar o descargar los Kits de programacion (almenos no el J2SE), y puedes distribuir tu software usando la licencia de GNU.

Que mas puedes pedir!

Es este el lenguaje de programacion que necesitabamos? Consideremos que la curva de aprendizaje es algo larga... espero que la programacion orientada a objetos se enseñe pronto en las escuelas.

Tambien espero que a SUN no se le salga lo avaro y destruya todo lo que ha logrado al mantener un lenguaje como este. Creo que seria el segundo punto en contra.


Bueno, este es el ultimo capitulo de estas series. Quizas en algun futuro, cuando conosca algun lenguaje que valga la pena comentar, y que me muestre una nueva perspectiva que hasta la fecha no haya sido tomada en cuenta... volvere a postear una continuacion :)

Asi que por lo pronto, hasta entonces!!!

PD. No trabajo ni tengo nada que ver con Microsoft, ni con Borlan, ni con SUN, ni ninguna otra empresa cuyo nombre o nombres de productos han sido mencionados en esta serie. Este blog es solo para dar mis puntos de vista como programador.

miércoles, diciembre 15, 2004

"Ready Steady Go" - MP3 al rescate

Un ejemplo mas de como los MP3 pueden ayudar a la industria de la musica ^^.

Este domingo tuve la oportunidad de ver la pelicula "Collateral" (me la recomendaron varios amigos que saben que me gusta los juegos del GTA ^^), total que antes de que terminar la pelicula, en uno de los ultimos asesinatos en una disco, se escuchaba una rola bien padre!!! bien fregona!!!

Era musica electronica, tipo trance, cuya tonada me llegó hasta lo mas dentro de mi cerebro, obvio me esperé hasta que salieran la lista de las canciones al final de los creditos, y al terminar puede descartar todas las canciones con titulos en español, dejandome solo dos rolas.

Una de Vangelis (o algo asi), y la otra de Paul Oakenfold - Korean Style.

Rapido me conecté y descargué la primera, pero no era. La segunda de plano no la encontraba pero al encontrar que tb le llaman "Ready Steady Go", la busque con ese titulo y listo.

Es la rola!!!!!

De lo que me di cuenta es que Paul Oakenfold tiene un buen de CDs! y de este tipo de musica!

Y ahora soy el feliz propietario de una copia de ellos "Bunkka", que recomiendo ampliamente ^^

Y que si no fuera por el p2p quien sabe que hubiera pasado.

En mi opinion es una de las ventajas del p2p, antes del P2P yo no conocia nombres de artistas ni de canciones, ahora con el p2p las canciones adquieren mayor identidad!

Pero en fin.

domingo, diciembre 12, 2004

La Historia de un Programador V

Parte 5, PHP, Mas facil y me quedo sin trabajo.

Para los que no saben, el web esta hecho principalmente de HTML, y el HTML no es mas que otro lenguaje que es interpretado por los Navegadores.

El HTML se escribe en un archivo de texto que posteriormente es leido ó, se diseña un sistema cuya salidad al STDOUT es codigo HTML. Los Navegadores no ven diferiencia alguna, ya que solo reciben el HTML, lo interesante, es como se genera ese HTML.

Para generar el HTML se pueden usar muchos lenguajes de programacion, desde BASH, pasando por C, PERL, PHP, ASP, JSP... basicamente cualquier lenguaje de programacion cuyo stdout pueda generar texto/HTML, puede ser considerado aqui, cual sera el mejor para desarrollar aplicaciones depende de ciertas variables:
  1. Que tan facil es para desarrollar en el.
  2. Que tan facil es mantenerlo.
  3. Cuanta gente lo ha adaptado.
  4. Que tan optimizable es su ejecucion.
La primer y cuarta variable estan peleadas de plano. Entre mas facil de programar parece ser que su ejecucion es mas lenta (aunque si ojeamos en Java, veremos que no es tan cierto).

Un ejemplo es mostrar el HTML mas sencillo:

<html>
<body>HOLA!</body>
</html>

Si esto lo guardamos en un archivo en .html, ya tendremos la pagina hecha, no hay mas que hacer. Sabes tu como escribir un programa en cualquier lenguaje que mande al STDOOT esta salida? Practivamente todo lenguaje de programacion puede!!!

La diferiencia es, cuanto tiempo te tardas en aprender ese lenguaje para hacerlo! y cuanto te tardas en escribir un programa que lo haga. Ahora que si tomamos en cuenta el desarrollo de sistemas enormes que generen HTML, cuanto tiempo te tardarias en encontrar y corregir fallas, y si no lo puedes hacer, cuanta gente hay experta disponible para ayudarte.

Pues bien, PHP gana en casi todas (salvo velocidad de ejecucion).

Un programador de otros lenguajes puede aprender a hacer aplicaciones completas con dos horas que invierta para aprenderlo. El tiempo ocupado para escribir un programa que tenga la salida de alla arriba es de escasos 20 segundos, el compilador de PHP te da informacion mas que suficiente para corregir errores y existen millares y millares de personas expertas en internet!

El PHP se ha vuelto tan famoso, que es considerado el lenguaje de programacion de aplicaciones para el Web "por default". Muchas empresas lo han adaptado y centenas lo estan haciendo mes con mes. Es tan comun ver la extension en el URL con terminacion .php que ya casi ni nos fijamos!

PHP es de plano lo mejor que le pudo pasar al Web. Y con su constante avance, llegará el dia en que muchos lenguajes de programacion mueran por su culpa.

Sin embargo, PHP tiene desventajas, pero por ser un lenguaje de programacion "del pueblo", el pueblo lentamente va haciendo que PHP ya no tenga esas desventajas (como el de compilacion de codigo PHP, y similares), PHP esta en un gran auge, esta creciendo a pasos agigantados y lo seguira siendo, mientras siga siendo lo que el pueblo necesita.

Entonces, si PHP es casi perfecto, porque seguir con otros idiomas?
(lo se, pregunta tonta, de hecho creo que nadie se la hizo)
Porque al fin y al cabo, al cliente lo que pida. Y por otra, porque PHP maneja principalmente aplicaciones de WEB. Hacer una aplicacion de escritorio es posible pero alli es donde por el momento PHP tiene muchos rivales.

Entre ellos uno muy muy fuerte, cuyo nombre es Java. Del cual hablaré de sus grandes y llamativas cualidades la proxima semana. :)

Cuidensen!

domingo, diciembre 05, 2004

La Historia de un Programador IV

Parte 4, Perl, el arte de escribir programas

Imaginen a un poeta, quien de pronto lee un libro y descubre un nuevo idioma, el idioma que le permite escribir sus poemas tal y como le nacen del corazon. Bueno, pues asi fue PERL para mi.

Perl es un lenguaje relativamente nuevo, esta basado en varios lenguajes, entre ellos C. No es compilado (es interpretado) pero se puede llegar a compilar, ademas, puede funcionar en varias plataformas (casi todos los Unix based y Win32 pueden correrlo).

Resulta que en los Unix-based, se maneja mucho texto, bastante pero bastante texto, existen bitacoras de texto de centenas de megas, registros y muchas cosas... casi todo lo que ocurre en el sistema operativo puede llegar a usarse como texto (De hecho segun algunos admisnitradores, solo usan X para abrir mas terminales de texto).

En ello radica el poder de PERL, en el manejo del texto en general (aunque no se limita a ello). Abrir, analizar, componer, parsear y guardar un archivo de texto en perl puede ser escrito en una sola linea de texto. Y peor aun usando el poder de los Regular Expressions.

La consistencia de los programas en PERL, lo hacen un lenguaje "suave" de aprender. Pequenias reglas que se usan en todas partes lo hacen facil de leer (y si no las conoces, se realmente complicado y sin orden alguno). Pero lo curioso del asunto es que los mismos programadores se facilitan mas y mas la vida, escribiendo pequenios codigos complejos que hacen un mundo de cosas.

Un codigo en PERL, escrito en C, puede llegar a ser algo extenso y dificil de mantener.

Ahora bien, en las etapas de mi vida como programador he visto desde lo secuencial, lo estructurado, lo veloz de lo compilado, lo optimizado... entre otras, en la etapa de PERL pude descubrir lo importante que es el tener un programa pequenio, facil de escribir y mantener.

Cuando escribes un programa en C, el programa te puede quedar grande (de hecho es seguro que te quede grande), un programa grande es mas dificil de mantener (actualizar/corregir), que un programa pequenio. Alli fue donde entro PERL.

Solo programe PERL por 3 anios, pero en esos 3 anios hice cosas que jamas pense que haria en toda mi vida :D (o al menos no tan en corto tiempo).

En aquel entonces existia un sitio de tarnetas, llamado Burundis. Eran una pagina muy conocida. Escribir ese sitio en C hubiera sido un dolor, escribirlo en PERL era mas logico, pero aun asi se veia dificil. Entonces al analizar el sitio pude descubrir el siguiente lenguaje que cambiaria mi vida. El PHP.

Pero ando algo cansadon, asi que les escribo en la prox. semana.

Hasta pronto!