jueves, 27 de marzo de 2008

3d en OpenSuse 10.3, Linux en mi laptop Toshiba Satellite A215

Como lo comenté en este post, instalé Linux en mi laptop recientemente, pero el problema que me quedó pendiente fue el 3D. Casi inmediatamente, Carlos Rocha contestó en este otro blog con lo siguiente:

Que tal como estas, solo para comentarte que acabo de instalar el opensuse hoy en el mismo modelo de laptop, yo instale el driver que viene el la pagina de amd, y me funciono y aunque cuando echo a andar el panel de control de ati me dice que no tiene soporte para aceleracion 3d por hardware, le instale el xgl y el compiz y funciono de maravilla, todavia estoy en proceso de instalacion de drivers y afinacion de ciertos detallitos, que espero que queden en el transcurso de la semana…
Los drivers los puedes descargar de la pagina http://ati.amd.com/support/driver.html ,
en el sistema operativo seleccionas linux_64 >> Integrated/Motherboard >> RAdeon Xpress 1250..
este es un archivo .run, lo instalas desde el suse, y ejecutas el comando aticonfig –initial, reinicias y listo..
Espero te haya sido de ayuda.
saludos.

Pues bien, hice esto, desinstalé previamente el controlador fgl que ya tenía antes que nada, y siguiendo las instrucciones de la página Wiki de OpenSuSE para instalar este controlador, conseguí mi 3D!!!! Pueden ver la captura de pantalla en http://invernalia.homelinux.net/~jstitch/jstitch/linux/snapshot1.png.

Muchísimas gracias!


--
Eru kaluva tielyanna (Dios iluminará tu camino)
Visita la página de la Casa de la Juventud, TOR: www.torcasajuv.com
"Ama y haz lo que quieras. Si callas, callarás con amor; si gritas, gritarás con amor; si corriges, corregirás con amor; si perdonas, perdonarás con amor. Si tienes el amor arraigado en ti, ninguna otra cosa sino amor serán tus frutos." (San Agustín) Solamente asegúrate que en realidad sea AMOR...

Memorias de la Casa de la Juventud - Encuentro con la Pascua - Marzo 20 - 23 2008

Por fin sucedió, el encuentro de la Pascua Juvenil 2008 había sido muy esperado por nosotros en el equipo de trabajo. Por muchas razones, la emoción de prepararlo, la consciencia de que los tiempos cambian, incluso para la Casa de la Juventud (que tiene ya 26 años de vida), y según mi opinión, la madurez que como equipo hemos ya alcanzado.

Como bien lo hace notar Celso varias veces, las preparaciones de los encuentros ya no son como se hacían antaño. A mi incluso todavía me llegó a tocar de refilón los últimos días en que una persona preparaba todo y había que llegar el sábado del encuentro temprano a estudiar el tema y entenderlo. Hoy, las cosas las hacemos diferentes, y cada año vamos puliendo nuestra técnica. Esto aplica tanto para encuentros ordinarios como para los grandes, y en el caso de esta Pascua no fue la excepción: divididos en grupos, nos asignamos tareas, preparamos temas, actividades, dinámicas, celebraciones, juegos, etc. Y así con unas dos semanas de antelación, ya teníamos listo y por escrito aquello que queríamos ilustrar en estos cuatro días de semana santa.

Lo primero fue la Pascuita, el fin de semana anterior, al menos ya para ir comenzando a experimentar esa vivencia de Resurrección que, para mi, sólo he podido vivir tan a ese nivel en la Casa de la Juventud. Además en la Pascuita hacemos todo en general: la celebración de la Vigilia, el Via Crucis, y aunque por equipos, tambíén se vive la cena del Señor, y el lavatorio de pies! Una de las cosas que me encantan es el Domingo de Ramos, aunque la Eucaristía del domingo es para nosotros ya de Pascua, iniciamos siempre con una mini-procesión, desde el patio de arcos al auditorio, todos con una palma en la mano, cantando 'Canta Jerusalén'...

En fin, que para no hacerla más cansada, llegó el gran día. Entre el domingo de ramos y el miércoles en la noche en que debíamos presentarnos a la Casa, Lore y yo estuvimos preparando la comida de esos días, las cosas que nos llevaríamos, compras y demás cosas que necesitaríamos (ah! porque esta Pascua tuve el honor de que mi bella amada estuviera en el equipo de trabajo ;) ) La verdad estaba muy emocionado con esta Pascua, y aunque la noche del miércoles pasó sin incidencias, ya esperaba impaciente al siguiente día... solo tomé un baño en el cuarto que utilizamos los pilotos y me fui a descansar...

El jueves por la mañana amaneció nublado, pero con el clima rico. Empezamos bien, nos regalaron una playera con el logotipo de esta Pascua impreso: el rostro de Jesús, sacado de la película de Zefirelli. Y comenzó entonces nuestra Pascua juvenil 2008... La verdad, la tristeza también tuvo su lugar, pues llegaron muy pocos participantes, en total sumamos sesenta y pico, cuando el año pasado llegamos a ochenta. Pero fuera de eso, los cuatro equipos que formamos estuvieron siempre dispuestos a participar, a gritar, a bailar, a celebrar, a aprender, en fin... que la cantidad fue poca pero la calidad hasta de sobra!

Para el equipo piloto, el jueves fue bastante movido, actividades a todas horas, preparaciones de cosas a cada rato, entre audiovisuales, trabajos, celebraciones, ensayos de cantos... Y la ventaja fue que, con el coordinador de lujo que tienen :P :P :P pues se pudo ir administrando la actividad a lo largo del dia, adelantando ciertas cosas en ciertos momentos para no estar a las carreras y perder tiempo, o estar fuera del mismo, más tarde...

Los equipos celebraron por separado el lavatorio, y luego de cenar celebramos la Cena, como ya es tradición en el patio de los arcos. Y luego más noche, el momento de oración que llamamos Getsemaní, esta vez en la cueva de Encuentros. Wow! un lugar de lujo para ello... En la tarde habíamos ido a comprar gasolina, que olvidamos antes, para echar a andar nuestra planta de luz, pues ocuparíamos un reflector para un teatro de sombras, y sonido y computadora y cañón para un audiovisual, que hizo en esta ocasión el Wiki, con música de La Lupita nada más y nada menos ;) Y gracias a la gran idea de Celso, los mismos participantes nos ayudaron a alzar todo desde la Cueva hasta la Casa, cada quien se llevó algo: una mesa, un cubo (armamos el monumento del Santísimo con unos cubos de madera grandes), la mampara donde proyectamos el audiovisual, la planta de luz, etc....

Y ya para el jueves, fue suficiente, ni recreación hubo, pero no habían muchas ganas de parte de nadie para tener una jeje. El viernes llegó con mucho sueño pero con ánimo para el piloto: sería el día de la salida de día de campo de los equipos, en otras palabras sería un día bastante más relajado para nosotros. Luego de desayunar y jugar y competir un rato, los equipos se fueron: dos a la cañada, y dos pasando la loma de enfrente. Eso sí, también como ya es tradición, me fui con dos pilotos (Abraham y Alí) a visitar a los equipos, para tomarles fotos y aprovechar para sacar a pasear a los perros de Celso, que durante 4 días tienen que estar encerrados los pobres. Mientras tanto, Mauricio y el Oso se quedaron haciendo el hoyo en donde 'plantaríamos' la cruz que ibamos a utilizar al dia siguiente... Por cierto, ese día también disfruté de mi primer ensayo de cantos de la Pascua, el jueves de bienvenida como siempre se lo llevó Celso, y el de más tarde le tocó a Reyna, la coordinadora general del encuentro. Otra cosa que hicimos, fue irnos de excursión, todos los pilotos y coordinadores, a visitar la cueva del Buen Pastor, que utilizaríamos esa noche al final...

Más tarde, Iván llegó a apoyarnos y con eso completamos al equipo piloto de esta Pascua, y comenzamos a preparar la celebración de la Muerte del Señor. Todo comenzaría en la huerta, bueno, lo cambiamos a un lado, arriba del basurero, en donde aprovechamos el montón de cascajo que hay ahora ahí para plantar la crucesota que cargamos y tenerla expuesta así durante la primer mitad de la celebración. Ahí pasamos dos audiovisuales: uno de la Pasión, hecho de nuevo por el Kalimba (aunque yo conservo uno inédito que hizo el Wiki y que no se utilizó esta vez), y otro que hizo nuestra líder del equipo de música, Eli, con la canción 'Otra vez en la cruz' de René González como tema.

De ahí, en silencio (se supone) se fueron todos de regreso al auditorio, y mientras tanto el equipo piloto bajamos la cruz y la llevamos a la cancha de basquetbol, desde donde comenzaría la procesión. Para esto, cuando lo hacemos de la manera tradicional en la Casa, preparamos algunos participantes de los más altos, los encapuchamos estilo Sevilla y con unos cirios los mandamos al frente. Esto se hace cuando en el auditorio comenzará la adoración, cantando todos el tema 'Viva Dios' (sacado de la obra musical Godspell, que dicho sea de paso, pondremos en escena este 28 de junio!!!), pero en versión de la Casa: solo con batería como fondo, haciendo un pum! pum-pum! lentos, muy lentos, en los que vamos caminando, encapuchados y pilotos hasta el centro del auditorio.

A ese paso, pues, entra hasta atrás la Cruz, cargada a cuestas de los hombros del equipo piloto que, por única vez en todo el año, tiene su único momento de ser visibles... La verdad narrar el momento queda fuera de las palabras: la emoción que da previamente, el saber lo que estás cargando en tus hombros, el paso lento, en fin... hasta Mauricio que es el baterista le dejó su lugar a mi hermano Víctor para que por esta vez entrara con nosotros, los demás pilotos :) Y luego que entramos, es ponernos al centro del auditorio, y utilizando el estrado como base, plantar la cruz en el piso, levantada en todo lo alto, sostenida con mucho esfuerzo... Ahí entonces se canta 'Jesucristo' de Roberto Carlos (también al estilo Casa de la Juventud, claro) y se hace la adoración de la Cruz, como signo de reconocer en la muerte de Jesús el comienzo del triunfo por la salvación, la entrega total al proyecto que le da sentido a la vida de toda la humanidad, en fin... por eso adoramos, no por considerar magia o algo extraño en la madera...

Y terminando, salen los encapuchados seguidos de la cruz, otra vez a cuesta nuestra, primero hay que bajarla y luego caminar al mismo paso lento hasta llegar a la cancha otra vez. Ahí la acomodamos y bueno... por la misma consciencia de los tiempos, adoramos la Cruz (que no nos había tocado porque estábamos sosteniéndola, por si se lo preguntan ;) ) y luego ya me iba yo a seguirle cuando me di cuenta que estaban dándose abrazo en el pilto, así que me regreso, y no me pude aguantar, ni ninguno de ellos, la verdad es que nos pusimos a llorar...

Bueno, se nos hizo un poco tarde para lo que sigue jeje, pero corrimos a terminar la celebración, que necesitaba del pan consagrado del día anterior para la sagrada comunión, y a preparar la cena también... Ya más tarde, nos relajamos, mientras unos pilotos se fueron a la cueva del Buen Pastor a afinar detalles, los demás nos quedamos a disfrutar de la recreación: un mini festival cultural servantino :P, le asignamos a cada equipo 3 actividades culturales que debían preparar: baile regional mexicano, canto, poesía, obra musical, etc. Al final los pilotos (ya todos reunidos) declaramos ganadores: en 3er lugar a la representación cómica cantada de la Pasión de Cristo, del equipo 3, en 2do lugar al equipo 2 con una pieza de danza polinesia (que puso mi esposa, quien mas?!!!) y en 1er lugar al equipo 1 con un baile con la canción Thriller de Michael Jackson, con música y pasitos de muerto y toda la cosa ;)

Asi, al final del día, sólo quedó el momento de oración para ir a descansar, que para hacerlo especial, lo hicimos como si fuéramos a visitar el Sepulcro. Todos en procesión, con unas lámparas de velas que hicieron durante el día, nos fuimos a la cueva del Buen Pastor, donde colocamos una cruz hecha de cirios encendidos, y un letrero con la cita esa que dice simplemente 'y lo pusieron en una tumba nueva, excavada en la roca', del evangelio de Mateo. Ahí hicimos cada quien oración, de manera personal y en silencio...

Fue así como llegamos al día sábado. La verdad muy cansados, pero sacamos energía de quién sabe donde, como buenos pilotos, y empezó otro día lleno de actividades. Luego del desayuno, y más deportes y diversión ;) pasamos a los participantes a ver una película que nos serviría de apoyo: 'La esperanza vive en mi', con Adam Sandler (que para ser actor de cómicas, le salió excelente el drama!) Mientras yo veía a gusto la peli ;) los pilotos estuvieron chambeando todo el tiempo: terminando el hoyo de la cruz, plantándola y juntando lo demás que lleva en la base...
El día continuó con lo de la cruz y al terminar (y luego de que me pude echar un segundo ensayo de cantos!) nos fuimos a bañar y descansar un ratito para agarrar fuerzas para lo más importante de todo el día y todo el encuentro (mmm y todo el ciclo! y toda la historia de la Iglesia! jeje) Luego de un ensayo que se llevó Reyna, comenzó ahora sí la recta final. Recibí instrucciones de Celso y comencé entonces a hacer aquello que me sale tan bien (mmm aunque sigo insisitiendo que me gusta más ser monitor!), por algo me tienen donde me tienen :P : organizar al piloto para que todo quedara a punto para la celebración de la Vigilia de Pasuca...

Mientras los equipos preparaban lo que les tocaba de participación en la celebración, nosotros preparamos el auditorio y la cancha de fútbol, en donde estaba la cruz. Colgamos una mampara, conectamos, puse el cañón con la laptop, movimos el equipo de música, preparamos un signo que se haría al final de todo... en fin, piloto en escencia pura :)

La celebración comenzó con la clásica ambientación en el auditorio (un poco rara esta vez por un error de logística, pero fuera de eso todo bien), para recibir a los que venían de fuera a celebrar la Pascua con nosotros (participantes y equipo de trabajo), y de ahí subimos a la cancha, con todo a oscuras... En la cancha pasamos un audiovisual: 'Después de la caída' de René González, que alguna vez hizo el Kalimba también, y luego de la oscuridad, entró uno de los momentos claves de la noche: la LUZ. He de decir aquí que es labor del coordinador elegir a quién del piloto le tocará este signo, pero bueno, por lo mismo de los tiempos en la Casa, quise hacerlo yo, y dejarle el cirio a Celso Abraham (nuestro más reciente y exitoso piloto, a quien normalmente, diría yo, le corresponde el honor de la antorcha, pero llevar el Cirio también es un honor!) En fin, que encendí una antorcha y me dirigí a la cruz, que ya teníamos preparada, y simplemente me acerqué como había visto que lo hacían los pilotos en tantas Pascuas que he vivido, y la encendí... (la cruz está obviamente embadurnada de combustible, y rodeada de leña para que encienda más fácil). El punto es que el calor es horrible una vez que ya enciende todo, y además la cosa no acaba aún! Primero los participantes lanzan al fuego unos papeles en donde escribieron aquello de lo que quieren deshacerse de sus personas en la Pascua, para pedir la luz en sus vidas pues, pero luego se acerca Celso, con el cirio a un lado, y se bendice la luz, y entonces hay que encender el cirio, así que ahí voy yo de nuevo a acercarme a la cruz, a recoger una madera encendida para encender con ella el cirio... (y lo tuve que hacer dos veces, el viento nos jugó una broma esta vez! :P )

Fuera de eso, lo que sigue es encender las velas de todos los demás, a partir de la luz del Cirio, y mientras se hace eso yo aprovecho para desconectar mi equipo: laptop y cañón, pues de prisa se tiene que proyectar un audiovisual más en el auditorio, luego luego llegando allá! Envío el equipo con Iván y el Oso, y al llegar sólo termino de conectar y alistar todo :) Ese es el piloto... Se proyecta el audiovisual (la lectura 'Mar adentro' con imágenes, música instrumental y voz puestas por el Wiki, hermoso audiovisual por cierto...)

Y bueno, lo que sigue es, después del pregón de Pascua, recibir al Cirio, colocarlo en su lugar, con toda la fiesta de la Resurrección ya en pleno, luego bendecir el agua para comenzar otra de las partes que, desde que soy coordinador, me encantan y divierten más :) Puesto que Celso se dirige a los participantes, a mi me toca la muchachada de los invitados ;) y me voy con una palangana con la misma agua, un aspersor hecho de ramas del Pino de la Casa, y un piloto sosteniéndome el agua, mientras a ritmo de 'El agua del Señor', renovamos el bautismo de los presentes, salpicando a todos a diestra y sieniestra :D (nada más me faltaba ponerme a cantar, como me toca hacer en Godspell ;) )

La celebración continua con la Eucaristía y sigue así en ese ambiente de fiesta hasta el final, cuando luego de la comunión, pusimos todo a oscuras... ocultos así, los pilotos colocan al centro el material del último signo, y a una señal de Celso, acompañado de las palabras 'la respuesta en esta Pascua la das tú', encienden esto: un par de alambres con forma, envueltos en vendas sumergidas en combustible. Fue así como 'tatuamos' de nuevo el piso del auditorio, esta vez con la palabra 'SI' (la vez anterior fue en Pentecostés pasado, cuando hicimos la figura de una paloma).

Y así termina todo, queda solo la fiesta de Pascua: baile, concursos de baile también, premios... (aproveché que en la semana me regalaron unos boletos para ir a la Feria de Chapultepec (un parque de diversiones), y le dimos de premio a los ganadores del baile unos cuantos, lo mismo que al equipo más animado y con la mejor porra de todo el encuentro (el 3), al que puso la coreografía de Thriller un día antes, y al participante que nos entregó su gafete con el que se inscribió desde el jueves en la mañana en el mejor estado posible :D )

El piloto se fue a dormir... como a las 5 de la mañana! luego de limpiar y barrer y alzar lo mejor posible, y dar un palazo honorario (el palazo es la 'bienvenida oficial al equipo piloto', consiste, por si quedan dudas, en utilizar una pala de cocina de esas que parecen remos, para impactar a distintos niveles de intensidad en las posaderas del piloto objetivo de dicho rito :P y por si quedan más dudas, TODOS hemos pasado por ella y seguimos considerándolo un honor eh?) que le dimos al Oso, pero sólo es un niño así que fue honorario nada mas :). A la mañana siguiente sólo quedó desayunar, tomarnos la foto del piloto (que esta vez hicimos con la cruz del viernes :) la que cargamos, no la que se quemó el sábado) y bueno, organizar los aseos (que se hicieron a diario) con los participantes, pero esta vez aprovechando para... mover la grada que se utilizó el día anterior, alzar unos floreros, guardar la cruz, asear el cuarto donde proyectamos audiovisuales y la película, y así dejar la Casa bien limpiesita ;) Y por cierto! disfruté de un ensayo de cantos más! aunque de 15 minutos, lo valió todo...

Y así terminó la Pascua 2008 también, luego de haber tomado más fotos de los equipos en su última reunión, despedirnos, anunciar por primera vez la obra de teatro que pondremos, y hacer nuestra última oración del encuentro, los del equipo de trabajo... ah! y revelar el amigo secreto que hicimos entre nosotros durante esos 4 días :) Sólo quedó la foto del equipo, y ahora sí, cada quien a su casa a descansar...

Hasta el próximo encuentro! nos vemos en la Casa...

PD y a modo de agradecimiento, este fue el equipo de trabajo en esta Pascua juvenil 2008 en la Casa de la Juventud, T.O.R. Gracias!!! :)
Jesús resucitado como fuerza, inspiración, motivo, sentido y todo sin lo que no podría haber habido Pascua ni ahora ni nunca...
Encargado - Celso
Coordinador general - Reyna
Pilotos - Mauricio, Alí, Iván (Muerta), Celso Abraham, y como apoyo invaluable, el hijo del Tanque, Omar (el Oso)
Monitores - Equipo 1: Yesika (Yeka) y Eli; Equipo 2: Orlando (Wiki) y Lore (mi esposa); Equipo 3 (equipo de adultos): Ana Laura y Víctor Ortiz (Kalimba); Equipo 4: Víctor (la Compadreja, mi hermano) y Yatziri
Música - Eli (encargada, guitarra (eléctrica o acústica, dependiendo) y voz), Mau (batería, o pandero JAJAJA), Compadreja (voz y guitarra acústica, cuando se llegó a usar, y batería algunas veces), Kalimba (bajo y voz/guitarra acústica si se daba el caso)
Cocina - Norma (Brothy), Ricardo (Tanque), Jaqueline
Coordinador del piloto - un servidor, Javier (el Stitch) :)



--
Eru kaluva tielyanna (Dios iluminará tu camino)
Visita la página de la Casa de la Juventud, TOR: www.torcasajuv.com
"Ama y haz lo que quieras. Si callas, callarás con amor; si gritas, gritarás con amor; si corriges, corregirás con amor; si perdonas, perdonarás con amor. Si tienes el amor arraigado en ti, ninguna otra cosa sino amor serán tus frutos." (San Agustín) Solamente asegúrate que en realidad sea AMOR...

martes, 25 de marzo de 2008

Servidor en una máquina Linux

Se me ocurrió que era hora ya de entrarle a la configuración de servidores en Linux. Hasta ahora, sólo había conseguido echar a andar un servidor HTTP en linux, para uso local solamente, de forma que pudiera hacer pruebas en desarrollos web con PHP que a veces hago. Sin embargo, no había conseguido, y no me había interesado, en lograr esto mismo pero hacia el exterior. Puesto que tengo configurada una red local (LAN) en mi casa a través de un router (un 2Wire), utilizando la dirección IP local que el router le asigna a mi máquina, alguna vez ya había podido acceder a los servicios HTTP de mi máquina desde otra máquina en la LAN.

Pero sucedió que en mi trabajo comencé a utilizar un cliente SSH para Windows para acceder a una máquina Unix, y se me ocurrió hacer la prueba en mi casa... me llevé dicho cliente, y desde el Windows de la PC de mi esposa, accedí con éxito a mi máquina! como si estuviera trabajando directamente en ella... todo comenzaba a sonar muy interesante...

Sin embargo, la dirección IP de mi máquina era local, y acceder a ella desde afuera tenía que implicar algo con el router, como efectivamente descubrí: hay que configurar dicho aparato para que las solicitudes externas por medio de su dirección IP se redirijan a una máquina de la LAN en particular (o en otras palabras, asignarle la dirección IP del router a la máquina en cuestión).

En el router 2Wire se consigue en las configuraciones avanzadas del Firewall, en donde se elige el nombre de la máquina a servir como entrada a la LAN. (Si se desea también acceder a las otras máquinas de la red, debe, si no me equivoco, configurarse el etc/hosts de la máquina que quedó como entrada, para redirigir las peticiones correctamente, esto no lo he hecho aún, pero ya lo probaré a su tiempo :) Cabe hacer notar que en la configuración del router aparece el nombre de la máquina N veces, dependiendo el número de accesos al router que se tengan: conmigo aparece dos veces, una para la conexión alámbrica y la otra para la inalámbrica. Toda esta configuración la di de alta para mi conexión alámbrica únicamente, que para mi es más confiable y rápida que la inalámbrica, con la cual, si estoy trabajando sin cables, no tendré disponible el servidor. A lo mejor es un tabú mío, pero siento que de forma inalámbrica tengo menos seguridad, además de menos velocidad y confiabilidad de mi conexión.

Una vez configurado esto, también en el router hay que establecer el nivel de seguridad que se quiere tener: se puede establecer que ninguna petición externa pase a la máquina seleccionada (lo que no sirve para nada en realidad), o que ciertas aplicaciones entren directamente a la máquina, o que todas las peticiones pasen a ella, ya es cuestión de gustos en aspecto de seguridad. Por otra parte, es muy recomendable a pesar de la opción elegida, configurar el firewall de la máquina que quedó como entrada, para que también filtre ahora sí de manera particular las peticiones de ciertas aplicaciones / puertos abiertos para permitir la entrada desde el exterior.

Obviamente, para que todo funcione, la computadora debe tener levantados ciertos servicios, dependiendo lo que se desee: SSH para sesiones remotas, HTTP para páginas web, FTP para archivos, SMB para compartir archivos como en Windows, etc. De lo contrario, ni de manera local se conseguiría levantar todo esto.

Y así, teniendo el router configurado para asignarle su dirección IP a la máquina elegida, la máquina reiniciada para adquirir la nueva IP, y el firewall configurado también, todo queda listo para tener la computadora abierta al exterior. Lo único que queda es probar :)
Si se dejó abierto el puerto de HTTP (teniendo también instalado un servidor, como Apache por ejemplo), se puede probar localmente, o mejor, desde una máquina externa en algún otro lugar del mundo (con ayuda de un amigo por ejemplo ;), para que en un navegador de internet cualquiera teclee http://direccion_ip/, lo cual debe llevar a mostrar la página de inicio que tenga configurado el servidor HTTP en la computadora en ese momento. Se pueden hacer otras pruebas, teniendo todo bien configurado, para iniciar sesión en la computadora de manera remota, vía SSH, y muchas otras pruebas más, que en mi caso resultaron satisfactorias y que ahora utilizo para trabajar de manera remota en mi computadora ;)

Otro paso no necesario pero sí muy útil es el DNS de la máquina. Hasta ahora todo quedó configurado con la dirección IP del router, pero ¿qué pasa si el servicio de internet que tengo contratado no me asigna una IP fija, sino dinámica, que se puede reasignar en cualquier momento una vez que se desconecte el router? (por cualquier razón: caídas de voltaje, acciones voluntarias o involuntarias, hasta simplemente mover los cables de corriente a donde está conectado!) Esto provocaría que cada que suceda esta situación, debería tomarse nota de la nueva dirección IP de la máquina, para poder trabajar de forma remota en ella, y no solo eso, si otras personas hacen uso de los recursos de la máquina, habría que notificarles apropiadamente de la nueva dirección IP para que la utilicen.

Esto es engorroso, poco práctico y bueno, en pocas palabras por eso y más desde hace años existe el DNS. Con este servicio, se mapea un nombre común (por ejemplo http://www.google.com/) con una dirección IP dada. Si esta dirección cambia, los servidores DNS se encargan de actualizar esta información, y así los clientes web solo deben consultar estos servicios si acaso se topan con que las cosas ya no funcionan como antes...

Sin embargo, este tipo de servicios tiene un precio, a menos claro que se sepa buscar bien :) y que se sienta uno satisfecho con lo que los servicios gratuitos pueden proporcionar. Yo en particular, lo hice en dynDns.org, en donde saqué una cuenta gratuita y después di de alta mi servidor, asignando la dirección IP que en ese momento tenía mi máquina con el nombre invernalia.homelinux.net. De esta manera, en vez de aprenderse la dir. IP, basta con teclear estas palabras para lograr el mismo efecto. Al ser un servicio gratuito, tuve que quedarme con el 'homelinux.net' (que tampoco se me hizo mala opción), y además dynDns proporciona otros nombres posibles para el dominio. Un servicio pagado a este mismo sitio permitiría elegir el dominio, y registrarlo, pero con esto me basta por ahora ;)

Además, debe hacerse algo respecto al problema mencionado sobre los cambios de direcciones IP. Lo que debe hacerse aquí es tener algún programa que pueda comunicarse con dynDns.org, y que al detectar el cambio de dirección IP registrado respecto al que ahora tenga la máquina, le avise al sitio de la actualización que debe hacerse. Esto lo logré en mi caso utilizando ddclient, un programita que hace precisamente esto cada vez que se arranca la computadora (y existen un montón de estos programas, para diversos sistemas, dynDns.org da una amplia lista).

Por mientras, mi máquina está normalmente dando servicio de lunes a viernes durante las horas del día (en la ciudad de México), que son las horas en que me encuentro ausente de mi casa por mi trabajo, y dejo mi máquina haciendo algo de provecho :P De noche es menos probable que lo tenga, aunque se da el caso. Y definitivamente en fines de semana es muy poco probable que suceda, primero porque suelo llevarme mi laptop a la Casa de la Juventud, en donde o no me conecto a internet, o si lo hago es solamente para dedicarlo a la labor que hago allá (además de que tendría que configurar mi conexión inalámbrica y el router que tienen allá, y todo un rollo más...) Por otro lado cuando no estoy en la Casa de la Juventud, si estoy utilizando mi máquina, lo suelo hacer en cualquier lugar de mi casa, por lo que uso la conexión inalámbrica, y por lo tanto no da servicio ;) Tal vez, el día que me consiga una computadora de escritorio, deje las cosas conectadas de manera más definitiva...

Apéndice, aplicaciones gráficas y no gráficas vía SSH
Bueno, falta comentar un punto más. Vía SSH puedo iniciar sesión en mi máquina de manera remota, y trabajar en ella como si estuviera frente a la misma. Sin embargo, lo más utilizado normalmente es iniciar sesión en modo texto y hacer uso de los programas en modo texto de Linux. Sin embargo, si se desea, también se pueden correr aplicaciones gráficas, y aquí está el como le hago yo:

Antes que nada, recordar que en Linux las aplicaciones gráficas funcionan vía un protocolo llamado XWindow, o X simplemente. Este protocolo funciona aproximadamente de la siguiente manera: se tiene un servidor X en la máquina que desplegará la aplicacion, y todas las aplicaciones que quieran desplegar gráficos hacen uso de los servicios de este servidor. Ahora bien, el servidor puede estar localmente en la misma máquina que las aplicaciones gráficas, o podría estar de forma remota en una máquina donde quieren ejecutarse las aplicaciones provenientes de otro lugar. Esto es lo que yo hago justamente.

Lo que se necesita es, primero que nada, un servidor X en la máquina que se conectará a mi computadora. Por ahora, puesto que utilizo Windows en mi trabajo (desde donde, secretamente, me conecto a mi compu :P), necesito entonces un servidor X para Windows. El que yo utilizo es el de Cygwin (http://www.cygwin.com/, hay que bajarse la utilidad de instalación del Cygwin, instalarlo y elegir entre muchas otras cosas que se deseen, el servidor X11, ya instalado se ejecuta Cygwin, modo texto y de ahí correr los scripts para iniciar el servidor en /usr/X11R6/bin, o directamente modo gráfico con los .bat de ese mismo directorio, no importan las aplicaciones gráficas de Cygwin en este caso, son para usar las cosas de manera local, lo que importa ahorita es el servidor X, que se queda ejecutando en Windows en la barra inferior de aplicaciones en segundo plano).

Una vez con el servidor X, el cliente SSH con el que uno se conecte a la máquina remota (yo utilizo PuTTY, pero podría usarse otro, como el mismo de Cygwin para una conexión entre dos versiones diferentes de Linux, aunque entre comillas una de ellas ;) en fin, este cliente debe configurarse también para que las solicitudes X hechas a la máquina remota sean canalizadas vía SSH, en lugar de quedarse allá en mi computadora. Si no se hace esto, al querer ejecutar una aplicación gráfica, simplemente mi computadora intentará ejecutarla allá, y como estoy en modo texto no me va a dejar hacerlo :) por ello la canalización hará que la aplicación gráfica envíe las solicitudes a servidor X también vía SSH y acá el servidor X instalado se encargará del resto ;) Así es como ejecuto aplicaciones gráficas sencillas. Si lo que se quiere es tener un entorno de escritorio y toda la cosa, el rollo es más complicado, aún no lo he hecho yo (tanto por falta de tiempo, como por falta de conocimientos, como porque mi conexión a internet desde donde me conecto es lenta, y creo que saturaría la red si mando llamar el KDE vía remota :P)


--
Eru kaluva tielyanna (Dios iluminará tu camino)
Visita la página de la Casa de la Juventud, TOR: http://www.torcasajuv.com/
"Ama y haz lo que quieras. Si callas, callarás con amor; si gritas, gritarás con amor; si corriges, corregirás con amor; si perdonas, perdonarás con amor. Si tienes el amor arraigado en ti, ninguna otra cosa sino amor serán tus frutos." (San Agustín) Solamente asegúrate que en realidad sea AMOR...

Instalar Linux (openSuSE 10.3) en una Toshiba Satellite A215

Introducción (lo que me llevó a escribir este post)

En febrero pasado adquirí una nueva computadora, debido a que la anterior sufrió un percance, y como no puedo estar sin computadora por mucho tiempo (por mi trabajo, por afición y por la Casa de la Juventud), adquirí algo que me siriviera por un buen rato, me agradara y me permitiera además tener un buen sistema operativo en ella para trabajar.

De entrada, la computadora venía cargada con Windows Vista, que sí es muy bonito para muchos, pero que no deja de tener graves defectos: primero que nada es software no libre, con lo que el precio es altísimo y la calidad malísima, tanto del sistema en sí como de la suite de oficina (Office 2007) y demás software acompañante... Además está lleno de problemas de memoria, es lento en muchas ocasiones, en fin... no es del todo de mi agrado. Fue por eso que, así como con mi computadora anterior, decidí instalarle alguna distribución Linux.

Pero como aún así lo necesito (para la Casa de la Juventud, y también para jugar :P) comencé por particionar el disco duro (160Gb), quedándome con 35 para Vista (partición a la que llamé 'Videogames' ;) y el resto lo preparé para Linux. Dicho sea de paso, en esos 35Gb le instalé software libre para Windows: aMSN, the Gimp, OpenOffice, etc. y me olvidé de las versiones piratas o legales pero privadas (carísimas o baratas pero en demo o con poco que aportar) de software como Photoshop, Corel, liveMSN, etc.

La partición la hice con el LiveCD para KDE (mi desktop manager favorito) que me bajé del sitio de openSuSE (http://www.opensuse.org/), pues con el particionador de Windows Vista (chafa para no variar) no me dejaba particionarle menos del 50% para ese tonto S.O. (en principio pensaba dejarle unos 45Gb a Windows, pero en vista de la jalada del particionador de este sistema, mejor lo castigue con 10Gb menos ;) Por otro lado dejé una partición de 75 Gb con formato FAT32, para permitirme compartir información entre ambos sistemas, cosa que me resulta útil en gran extremo. De nuevo, hice uso del LiveCD de SuSE, pues el format de Vista no me dejó formatear tanto espacio, mientras que el particionador de SuSE sí.

Así pues, me quedé con aproximadamente 50 Gb reservados para Linux. Mi plan era particionarlo para los distintos directorios del sistema como hice posteriormente... Aunque podía bajarmelo de internet como ya lo he hecho varias veces antes, esta vez decidí en vez de bajarlo de internet, cooperar con la causa y pedí me enviaran a casa el DVD de openSuSE 10.3, pagando a Novell la módica cantidad de $80 USD (que mas gastos de envío, me terminó saliendo en unos $1000 pesos mexicanos ¿caro? ¡para nada! Aunque Windows Vista cueste solo un poco más, en realidad solo incluye el sistema operativo, la suite de oficina más común cuesta una millonada más, ni que decir del obligado antivirus para Windows, y demás software que si se comprara legalmente sería un precio muchísimo muy prohibitivo, mientras tanto esta distribución de Linux, lo mismo que muchas otras, incluye el sistema, suites de oficina (nótese el plural), juegos, software de utilidad variado, software para trabajar en múltiples campos, utilidades de internet que permiten bajar muchísimo más software sin pagar un quinto más (excepto por la electricidad y la conexión a internet claro :), y todo por nada de precio, con mucha mayor calidad y la posibilidad de actualizar los programas gratuitamente).

Instalé pues el SuSE en mi máquina y en menos de un día ya lo tenía en el disco, prácticamente todo funcionando. Respecto a las particiones, haciendo un poco de caso del Linux Documentation Project, dejé una partición root (/) con 2Gb, /var con 4Gb, /usr con 15Gb y /home con 25Gb, el resto se lo dejé a la partición swap.

Problemas a los que me enfrenté y el reto de investigar cómo resolverlos

Solamente me atasqué en tres puntos:

  • el video,
  • la tarjeta de red inalámbrica (wireless) y
  • el sonido
Respecto al video, el sistema no me reconoció la tarjeta de video incluida en la lap: una ATI Radeon X1200, y todo se veía a 800x600 pixeles (muy feo para mis gustos actuales), además de no reconocer el 3D que tanto deseaba ;)

Respecto al wireless la tarjeta no era reconocida, y ni utilizando el ndiswrapper pude echarla a andar.

Respecto al sonido, la máquina simplemente no emitía nada de nada.

Así pues, me embarqué en la aventura (satisfactoria, divertida, llena de retos) de buscar vía la conexión alámbrica a internet con la que sí contaba, los medios para resolver estos problemas.

Wireless
Comencé por el wireless. Y como me resultó lógico, comencé a investigar en el sitio de openSuSE. Ahí encontré que efectivamente mi tarjeta wireless (una Realtek 8187B) debía ser instalada por medio de ndiswrapper, pero el driver proporcionado por Realtek no servía en mi caso, así que el consejo de opensuse.org no me sirvió tampoco :( Busqué en varios foros y la verdad me di por vencido, así que decidí enfocarme en el video y hacer lo del wireless después.

Video
Para el video, de nuevo consultando opensuse.org, comencé por seguir los pasos para instalar tarjetas ATI en SuSE. Con ello ya pude conseguir la detección de mi tarjeta, y un modo de video de al menos 1024x768 :) Pero resulta que mi tarjeta (Radeon X1200) no está ni siquiera, al menos explícitamente, listada en las tarjetas ATI en el sitio de AMD!!! Por lo tanto, los tips de opensuse.org para conseguir el 3D tampoco funcionaron :(

Audio
Decidí dejar el 3D para luego, y me fui por el sonido. La tarjeta es una Realtek AC97 (recuerdo que en otra máquina donde instalé Linux, el sonido también era de una Realtek y también me dio mucha lata), y de nuevo los consejos del wiki de openSuSE no me sirvieron de mucho (sin embargo para muchas otras cosas si que ha servido, por ejemplo para la webcam y los controladores propietarios para algunos formatos multimedia que necesitaba ;) El caso es que para no rendirme, me puse a buscar en foros y blogs, ¡y me topé con esto!: http://www.jambitz.com/comunidad/linux/2008/02/22/instalacion-de-ubuntu-710-en-toshiba-a215-sp4057 un post de un usuario de Ubuntu 7.1, con el mismo hardware que yo!!! Y para él ya funcionaba el wireless, el video y el sonido, justamente los mismos problemas que yo tenía!

Wireless!!! (ahora sí, como lo conseguí)
Por ello, dejé el audio a un lado y regresé al wireless. Básicamente lo conseguí de la siguiente forma: el autor de aquel post se topó a su vez con http://www.datanorth.net/~cuervo/rtl8187b/, el post de otra persona que modificó el driver de Realtek (el que no me sirvió en un inicio) para echarlo a andar correctamente (en este caso, hay que bajar la versión modificada por el autor del post, la versión original no me sirvió, y la otra versión modificada por otra persona ni siquiera la probé). Lo que se hace simplemente es bajar la versión modificada, descomprimirla, compilarla como root (con ./makedrv) y listo! Cada vez que se requiera detectar la tarjeta wireless, se ejecuta (como root también) el script ./wlan0up. Se pueden seguir los consejos del README para echarlo a andar automaticamente al encender la computadora, o hacer como yo hice :P Modifique /etc/rc.d/boot.local y agregué path/a/wlan0up. Además en halt.local agregué path/a/wlan0down, el script que da de baja el driver cada vez que se requiere (en este caso, al apagar la computadora).

Audio
En el mismo post que encontré de jambitz, hallé la solución al audio:Se trata de un package encontrado en un sitio FTP (hasta ahora no se bien a quien pertenece, como para mencionarlo y de esa forma agradecerle :S ) El caso es que en ftp://209.216.61.149/pc/audio/realtek-linux-audiopack-4.07b.tar.bz2 se consigue el código fuente, que se compila y ejecuta con ./install (como root) (para esto, hay que asegurarse de tener instaladas las librerías libc6-dev, libncurses5-dev y gettext o similares, yo utilicé YAST para verificar esto, mientras que el autor del post en jambitz utiliza las utilidades de Ubuntu para lo mismo).

El package ejecuta una aplicación modo texto con Curses, a color y toda la cosa, y esta permite instalar la tarjeta de audio detectada. En mi caso es la ATI Technologies Inc SBX00 Azalia, la cual seleccioné.

Por último, debe modificarse también el archivo /etc/modprobe.d/sound, como root obviamente, y agregar la siguiente linea al mismo:
options snd-hda-intel model=toshiba
y al reiniciar la computadora, el audio queda listo!

Video (revisited y con un continuará...)
Y bueno, hasta aquí, ya había resuelto los problemas más graves, pero aún me quedaba el 3D. Mi problema consiste en que el 3D no es detectado, y SaX2 no me permite entonces configurar nada respecto al 3D. Conforme intenté resolver este problema, como describo más abajo, mi problema terminó con que el 3D era detectado, pero aún así el 3D no funciona, pues provoca que la pantalla se distorsione de un modo que no permite hacer nada :(
Ni los consejos del post en jambitz, ni los del wiki de opensuse.org, ni nada que leí aquí y allá me estaba sirviendo. Decidí suscribirme a los foros de opensuse que encontré: http://www.suseforums.net/, http://forums.suselinuxsupport.de/ y http://www.forosuse.org/forosuse/ (este último en español ;) Estuve leyendo bastantes entradas en los tres, y varios consejos a otros foreros que probablemente me servirían. Toda la semana llegaba a mi casa para probar mis ideas, pero en vano. Terminé por escribir para pedir ayuda y describir mi problema, el de la distorsión en aplicaciones 3D en el mejor de los casos (o el de que mi máquina se cuelga completamente con ciertos juegos 3D también). La captura de pantalla del problema, ilustrado cuando intento ejecutar fgl_glxgears, la conservo en: http://invernalia.homelinux.net/~jstitch/jstitch/linux/fgl_glxgears.png (el programa fgl_glxgears es como el glxgears, que debe desplegar unos engranes giratorios en 3D, pero es la versión del controlador de ATI).

Y sucede que, si quito el controlador ATI, no tengo ni tarjeta ni 3D por lo que quedarme con los controladores por default, los libres, no me sirve. Instalar los de ATI para mi tarjeta gráfica (que son propietarios), me deja con este problema. Una vez intenté instalar una versión anterior de los controladores pero me dejó sin video, pero olvidé correr el SaX2 -r para ver si así sí jalaba (es una prueba que tengo pendiente por hacer) y en fin... en cuanto al 3D aún estoy en espera de resolver este problema para poder conseguirlo, y jugar con estos efectos y demás cosas en mi linux :) CUALQUIER SUGERENCIA AL RESPECTO ES, POR SUPUESTO, BIENVENIDA

Video (revisited2 pero para otra laptop)
Lo que si pude echar a andar fue esta misma versión de openSuSE en otra laptop un año más vieja que la Toshiba, una Dell (no recuerdo el modelo), de mi esposa. Ahí los problemas del wireless y del audio no se presentaron. Mientras tanto en el video sí se detectó la tarjeta NVidia pero no el 3D, pero siguiendo los pasos del wiki de openSuSE todo quedó resuelto, y al menos ella ya puede gozar de esa ventaja :D (Lo que me lleva a concluir que en cuestión de instalación, las tarjetas NVidia son mucho más fáciles que las ATI :( lástima que se trate de una laptop en mi caso...)

Apéndice
Esta noche logré instalar el 3D exitosamente, coloco un post nuevo para comentarlo, gracias Carlos Rocha!

--
Eru kaluva tielyanna (Dios iluminará tu camino)
Visita la página de la Casa de la Juventud, TOR: http://www.torcasajuv.com/
"Ama y haz lo que quieras. Si callas, callarás con amor; si gritas, gritarás con amor; si corriges, corregirás con amor; si perdonas, perdonarás con amor. Si tienes el amor arraigado en ti, ninguna otra cosa sino amor serán tus frutos." (San Agustín) Solamente asegúrate que en realidad sea AMOR...

lunes, 10 de marzo de 2008

Por qué terminé siendo programador

Nota: la siguiente crónica es parte mi historia personal, que comencé a escribir teniendo 28 años. La escribo solamente como ejercicio de autoreflexión. Si sirve para otros fines (como ejemplo, para ilustrar algo, para hablar de como crece la vocación de una persona, o como para darme trabajo :P etc.) no hay ningún problema por mi parte por el uso que se le de, ni siquiera sería necesario para mi el que me den crédito o que me avisen del uso que le den (aunque sería un honor, y un levantamiento de autoestima el saberlo ;), solamente pido que no se la apropien (por ser mi propia historia), ni que la modifiquen (es mi historia, no la de ustedes), y hacerlo sería de muy mala educación. Eso sí, se aceptan, como en todo, comentarios, correcciones y sugerencias, yo por mi parte me comprometo a sujetarme a la verdad (desde mi subjetiva perspectiva claro, eso no se puede soltar, menos si se trata de una perspectiva personal como es esta), para así corregir esto y atenerlo más a verdades que a suposiciones personales, siempre que no deje de reflejarse lo que yo creí en su momento, comparado con el hecho crudo y real...
---

Sobre como fueron mis primeros (y no tan primeros) contactos con las computadoras

o

Por qué terminé siendo programador

por Javier Novoa Cataño


La primer computadora que conocí en mi vida llegó a mi casa, cuando vivíamos en la ciudad de Monterrey (era importada de EU), y cuando yo era apenas un niño pequeño, a inicios de los 80s. La máquina era una variante de la Commodore 64 adaptada a los 'gráficos' en pantalla (un aparato de TV cualquiera): se trataba de una VIC 20 cuyo sistema operativo era programable vía lenguaje BASIC.

Ya a mediados de la década, mi papá nos compró a mi hermano y a mi un par de libros para niños sobre dicho lenguaje, que junto con el manual de la Vic20 se convirtieron en mi primer contacto con los lenguajes de programación de computadoras. A mi hermano, hoy en día arquitecto, no parecieron interesarle mucho dichos libros, pero casualmente a mi me llamó la atención, sobre todo por la posibilidad de teclear unas cuantas cosas para obtener a cambio los sencillos juegos que se proponían en los libros, además de los efectos visuales de la Vic. Sin embargo, como niño, no le presté demasiada atención a un juguete tan complicado, y si el gusto me duraba dos días, ya era mucho.

Posteriormente tuvimos Ataris 2600 y Nintendos, computadoras poco programables desde la perspectiva de un niño como era entonces interesado en jugarlos nada más, por lo que mi siguiente contacto lo tuve estando ya en la escuela, a nivel primaria, en la segunda mitad de la década y principios de los 90s: como la escuela era particular (y para ese entonces soñar con computadoras en las escuelas era casi un imposible muy guajiro) contaban con una salita de cómputo con unas hoy viejas Macintosh ][. Lo primero que recuerdo haber aprendido fue lenguaje Logo, para hacer dibujitos con la famosa tortuguita :) Pero después cambiaron por enseñar BASIC, y ahí tuve mi segundo contacto con los lenguajes de programación. Claro está. para esa época, no le resultaba nada interesante a un niño aprender ni a dibujar ni a programar en un aparato como esos, así que básicamente lo que más nos interesaba (a mis compañeros y a mi) eran las sesiones en que podíamos entretenernos con los sencillos videojuegos que tenían los maestros. El resto de las sesiones (eran semanales si no mal recuerdo), consistían en aburrida teoría llevada al nivel de niños, junto con práctica en unos cuadernos de ejercicios, junto con un ratito de videojuegos. Lo que sí sucedió a raíz de estas clases fue que, cuando perdía interés en los videojuegos (cosa que no sucedía muy seguido), y cuando mis hermanos me dejaban libre la televisión de mi casa, y no había una buena caricatura que ver claro está, a veces reconectaba la Vic para programar los juegos de aquellos libros que nos regalaron.

Todo esto lo menciono como prehistoria en realidad, jamás me tomé en serio el trabajar con computadoras, ni programarlas, administrarlas o armarlas y desarmarlas. Para mí sólo eran aparatos sofisticados (y caros para la economía de mis papás) con los que, luego de un rato de concentrarse, se podía poner uno a jugar con ellos. El lenguaje que medio aprendí en ese entonces, BASIC, de hecho casi no lo volví a tocar más que en ocasiones muy contadas, sobre todo una vez en que traduje un juego en dicho lenguaje (con QBasic) a C, en mis épocas de estudiante universitario, y en realidad tampoco me ha llamado jamás la atención ninguna de sus 'variantes' visuales. Tampoco podría contar el siguiente aparato que programé: un juego de submarino electrónico, en donde programabas las coordenadas de tus barcos, lo mismo que hacía tu oponente, y luego simplemente podías teclear las coordenadas de tu enemigo, y el sistema te decía con luces y sonidos si le habías dado a un barco o al agua. Este juguete fue regalo de unos padrinos que teníamos en común mis hermanos y yo. Ni que decir del primer horno de microondas que tuvimos, o las videocaseteras, televisores, modulares y radios :P Así pues, mi verdadero primer contacto tuvo lugar unos años más tarde...

Cuando iba ya en secundaria (12 - 15 años, en la primera mitad de los 90s), sucedieron un par de cosas que me impulsaron a decidirme por una vocacion: en primer lugar, la escuela contaba con sala de cómputo (por lo que veo, creo que fui testigo de la primer avanzada de computadoras en escuelas públicas en México...). Así mismo, un tío que en la familia de mi papá siempre se caracterizó por contar con computadora con la que los sobrinos siempre llegábamos a las reuniones familiares a pedirle que nos dejara jugar en ella, él nos regaló una computadora: una Acer con procesador 386SX, a fabulosos 8Mhz y un botón de turbo que le dejaba ir a 16!!! jajaja. Contaba con un disco duro con la grandiosa cantidad de 40Mb de espacio! que con un programa se podían duplicar fácilmente a 80Mb (recuerdo aún cuando oía hablar de discos de más de 100Mb, me parecían una maravilla! jeje). En fin, venía equipada con MS-DOS ver. 3 (o era 4?), y un entonces desconocido Windows 3.1 (así es, soy, como muchos mexicanos y prácticamente terrestres, que en sus inicios con las computadoras tuvieron el contacto con las PCs a través de Microsoft y su afamado Windows). Recuerdo que la suite de oficina era de Lotus, el procesador de palabras un viejo AmiPro, además del clásico MS-Works. Por otro lado, en la escuela, tenían equipos muy similares al de casa, con MS-DOS (pero sin disco duro y sin Windows), con Works vía diskettes (en ese entonces todavía se conocían los de 5 1/4"!!! y comenzaban a ser desplazados por los hoy también casi obsoletos de 3 1/2"...).

En fin, en esa época ya me había olvidado de programar, salvo sesiones aisladas de (otra vez) BASIC (con GwBasic) en la secundaria, y sin embargo gracias a ciertas revistas de computación que mi papá compraba, aprendí y me comencé a foguear en aquello de configurar la PC de mi casa, desde ponerle un color diferente al prompt del MS-DOS, hasta configurar el sistema con los archivos AUTOEXEC.BAT y CONFIG.SYS. Además, la computadora de mi casa (que en algún momento fue sustituida por una 486 que nos regalaron los mismos padrinos del submarino) contaba también con un curioso aparato externo que me permitió abrirme al mundo: un modem!!! De tan solo 56kbps, era suficiente para visitar algunas páginas de la naciente WWW con Windows. Sin embargo, mi primer cuenta de email no la obtuve hasta muchos años después, en mi época universitaria. El internet para mi fue entonces solo para navegar por sitios de Yahoo! y otras pocas cosas que apenas conocía. Sin embargo, el proveedor del servicio de internet (ISP) que nos dio mi tío (una compañía conocida como Spin), nos daba acceso también a un BBS que me resultó particularmente interesante. Ya que entonces no programaba, lo que más hacía, junto con mis hermanos, era jugar (además de las necesarias tareas escolares, impresas con la impresora de matriz de puntos que teníamos :P) Y en el BBS de Spin por cierto, encontré algunos juegos extra a los que ya tenía: de carreras, de peleas, etc. Además había un acceso a un MUD para jugar en línea en una especie de juego de rol vía puros comandos y descripciones de texto. En este lugar también conocí NetHack, en su versión PCHack, y gracias al internet, me volví adicto a ese juego de arcaica interfaz de texto pero jugabilidad extrema... Cabe mencionar que al poco tiempo perdimos nuestro acceso a internet, y durante algunos años estuvimos haciendo uso, ilegal, de cuentas Telmex que conseguíamos aquí y allá (si, ya se que estuvo mal, aunque en esos días uno como niño no lo ve así, hoy lo reconozco ;) En fin, otra experiencia más se sumó a mi historia: al poco rato el modem dejó de funcionar por una tormenta eléctrica que cayó en la cercanía (desde entonces aprendí a desconectar mis aparatos cuando no los usaba, y si no contaba con regulador :P) Y por ello, mi papá nos compró un nuevo módem, esta vez interno (y luego le siguió otro más, más rápido que el anterior). Y así fue como comencé a foguearme en otra área en la que me se desenvolver: abrir, armar y configurar computadoras. Pues fui yo, de hecho, quien abrió la máquina y le instaló y configuró el nuevo aparato. Entonces recordaba cómo a veces mi tío solía tener su computadora completamente abierta, cuando le hacía reparaciones o que se yo, y de vez en cuando así lo hacía yo también ;)

En fin, que mi único nuevo contacto con la programación lo tuve también gracias a que en realidad nunca fui malo en los estudios, y por un concurso de matemáticas a nivel 2do de secundaria en la escuela, terminé en primer lugar, con lo que me gané una calculadora, de esas Casio programables y que permiten graficar, pero en sus primeras versiones, no como las de hoy en día. Aunque me llamaba la atención la graficación, a lo que creo que le saqué más jugo fue a la programación. Bueno, aprovechando que ando confesando cosas, debo decir que una vez, en Historia (otra de mis materias favoritas, pero en esa época era sólo un adolescente casi niño sin demasiada moral), utilicé mi calculadora para escribir un acordeón de la materia con el que pasé bien ese examen. Jamás lo volví a hacer, pero bueno, así sucedió (como que con estas cosas uno aprende la lección de Spiderman... detrás de un gran poder hay siempre una gran responsabilidad :P) En fin, el otro uso, también deshonesto pero no del todo, que le di, fue programar fórmulas de física y matemáticas en la misma. Casi siempre he pensado que eso de memorizar no se me da, como que me da flojera memorizar, y siendo sinceros el sistema educativo en México está hecho para memorizar. A mi lo que me gusta es razonar, deducir, y así entender las cosas y por lo tanto aprenderlas. Si en la escuela me hacían aprender la fórmula del área del círculo (pi * radio * radio), me hubiera gustado aprender 'por qué' era así, y no solo aprender la fórmula y ya (eso, gracias a Dios, y a mis maestros, lo aprendí años más tarde, en el bachillerato, la carrera y el posgrado, no sólo sobre el área del círculo, sino también otras fórmulas y procedimientos, desde el algoritmo del mínimo común múltiplo o la fórmula del chicharronero para encontrar las raíces de una ecuación de segundo grado, hasta la ley de Newton, el teorema de Pitágoras generalizado, y otras tantas monerías que nos hacen memorizar, pero no entender, en la escuela). En fin, que para algunos exámenes, más como una vía de estudio que como un medio para hacer trampa, me gustaba programar la calculadora con la fórmula ya bien aprendida, de manera que el programa me pidiera los datos de entrada y me arrojara el resultado como si yo lo hubiera tecleado en el aparato. Puesto que a ese nivel ya nos dejaban utilizar calculadora en los exámenes, me fue fácil hacerlo, y la verdad, no le veía el caso a memorizar la fórmula, y ya desde entonces utilizaba esa vieja tradición de los verdaderos programadores, de ahorrarse trabajo en donde se pueda. Al menos así además de memorizar, me ahorraba la tediosa labor de estar tecleando en la calculadora durante el examen, junto con el tonto riesgo de teclear mal y por una tontería tener un mal acierto en el examen ;) Eso sí, hice mal en pasarle el truco a algunos compañeros, y con el pretexto de 'maestro, le puedo prestar mi calculadora a fulanito', ellos simplemente invocaban el programa que previamente les había enseñado a usar, y anotaban sus resultados :) Lo que tuvo de malo ese hecho fue que, precisamente, ellos no entendían eso de programar el aparato, y sólo buscaban el resultado final (aunque, desde la perspectiva en que hoy me encuentro, puedo decir que ya entonces utilizaba unos cuantos conceptos en los que hoy creo firmemente: el uso libre y compartido de la información (no los aciertos de un examen, claro, sino el hecho de permitirles usar mis programas sin restricción), la importancia de contar con usuarios que prueben tus sistemas y el hecho de que en principio los usuarios generalmente (aunque no siempre) están interesados en los resultados, no en los rollos técnicos que te llevan a conseguirlo). Y antes de terminar, aclaro: cuando en secundaria participé a nivel regional, estatal y federal en los concursos que organizaba la SEP para probar los conocimientos a nivel secundaria, jamás usé esas trampas, trucos, programas y algoritmos, en parte por que sabía que era lo correcto, además porque sería injusto para los otros concursantes que no contarían con ese medio, y también por miedo a que me descubrieran haciendo trampa (lo viera yo o no así), a todo eso también había que sumarle el hecho de que previamente debía conocer qué fórmulas ocupar, pues la memoria de la calculadora era muy poca (sin embargo esta no era la razón más fuerte, me hubiera bastado con capturar las fórmulas más difíciles y ya ;). Y la calculadora siguió funcionando varios años más, sin embargo aunque seguía usándola de esta forma de vez en cuando, en ocasiones importantes (exámenes finales, trámites de admisión y démás), no la usaba más que como calculadora normal, salvo por las gráficas :)

Y fue en esos días, cuando todavía se es niño y llegan a preguntarte '¿qué vas a estudiar cuando seas grande?' que les contestaba que quería estudiar lo que fuera, siempre y cuando tuviera que ver con computadoras. Aunque unos años después en realidad no recordé ese hecho, y muchas otras áreas del conocimiento también me llamaron la atención (las matemáticas, la química...) Pero como en ese entonces tenía esa idea, cuando llegó la edad para avanzar al nivel preparatoria, terminé quedando dentro del IPN (mi hermano también, pero desde entonces también el se fue por el dibujo técnico y posteriormente la arquitectura). Yo me fui a Voca 9 (el CECyT Juan de Dios Batiz, homóloga por cierto de la secundaria donde estudié), y tuve todo un primer año para decidirme por una carrera técnica. Aquí, resultaba casi lógico que me hubiera decidido por la carrera de técnico en Programación, soñaba con hacer juegos y demás. Sin embargo, otra área ya me venía llamando la atención desde niño: alguna vez los reyes magos nos regalaron un kit de electrónica muy interesante: podías armar y desarmar fácilmente circuitos sencillos, con los que ibas aprendiendo cómo funcionan los mismos, para que sirven los distintos componentes y bueno, siempre me ha gustado ese juguete (gracias reyes magos! :) Y si le sumamos mi naciente experiencia abriendo, armando y configurando computadoras, terminé optando por la carrera de técnico en Sistemas Digitales, opción recurrente que me seguiría los pasos años más tarde también. Y la verdad, fue una gran experiencia: aprendí de electrónica y de cómo funcionan las computadoras POR DENTRO, antes de irme a las afueras. Y no solo eso, la currícula de la carrera incluía además dos semestres enteros de programación, así que no me fui con las manos vacías. Y ahí aprendí el lenguaje que se convirtió desde entonces en mi lingua franca, algo así como el español para mí: el lenguaje C. El maestro, casualmente, era compañero de trabajo (en otro trabajo que tenía) del mismo tío nuestro de las computadoras. Y aunque en ese entonces no me volví experto programador, era bueno. Programábamos vía MS-DOS, utilizando el Borland C 4 (sucesor del Turbo C que nunca llegué a utilizar) y ahí si, me comencé a adentrar en el fabuloso mundo de la programación.

Fue por ello precisamente, que al momento de elegir carrera, y escuela para estudiar, terminé optando por ESCOM (la escuela superior de cómputo, del IPN). Pocos compañeros míos eligieron la misma opción, casi todos se fueron a UPIITA, en donde continuabas con la electrónica (y oh sorpresa, la mayoría de ellos, por lo que se, ahora trabajan como programadores :P el campo laboral es más amplio en esa area que en electrónica aquí en México...) En ese entonces, ESCOM era relativamente una nueva escuela (no tanto como UPIITA, pero solo por unos pocos años), y comencé a estudiar ahí en 1998 (y otra casualidad: la calle sobre la que se encuentra ubicada ESCOM se llama también Juan de Dios Bátiz!). Durante el primer año, de tronco común, aprendí más lenguaje C, desde lo básico otra vez, hasta técnicas de programación más avanzadas, estructuras de datos y otras monerías muy interesantes. Pero al año, tenía que elegir especialidad, y las opciones eran: sistemas (enfocada sobre todo a la programación), y electrónica. Y sí, volví a decidirme por la electrónica, no se porque tengo eso, pero me llama mucho la atención, a pesar de que no me dedico a ella, y casi ni siquiera lo tengo como hobby, ni leo mucho de ella. En fin, resultó después que el programa curricular de electrónica era el más parecido a lo que había en ESCOM antes de que existieran las especialidades, y según muchos maestros, seguía siendo la especialidad más completa. De hecho, seguía habiendo lenguajes de programación, bueno, más C, y después un año de C++, que aunque aprendí bien, no utilicé mucho, aquello de la orientación a objetos aún no me entraba en la cabeza, sino hasta años después.

Y lo que son las cosas, el proyecto terminal que realicé con otros 3 compañeros (en ESCOM, para titularte, debes hacer un proyecto de un año), no tuvo que ver con electrónica, sino con un sistema :P Eso sí, durante esos 3 años aprendí bastante de electrónica: llegamos a hacer un brazo robot, un elevador a escala, un termómetro digital... y otra de las cosas que desde la vocacional me gustaron: el eslabón perdido entre electrónica y programación, aprendí lenguaje ensamblador para varios microprocesadores y microcontroladores. En total, he programado el Atmel Z80, un par de PICs, el 6502 y otro 65xx que no recuerdo (y del 8080 sólo lo llegué a programar muy poquito vía la utilidad DEBUG del MS-DOS). Me sigue gustando el ensamblador, pero no me dedico mucho a ello, y aunque no me dedicaría para vivir a ello, si le entraría de repente a algún proyecto. De hecho, me bastaría con conocer un juego que descubrí hace menos de un año, Core Wars, en donde cada guerrero es programado en una especie de mini-lenguaje ensamblador llamado Redcode, ya que me pueda dar un tiempo me pondré a ello ;)

En esos años, ya no teníamos la vieja 486, sino una Pentium II que mi mamá compró a través de una tanda que organizó aquel tío también. Digamos que oficialmente pertenecía a mi mamá, en la práctica pertenecía a todos, pero administrativamente era yo quien la configuraba, administraba y mantenía en buen estado :) Y finalmente, es de las computadoras más lentas que mi papá tiene en su negocio de cibercafé hoy en día.

En fin, mi proyecto terminal, como dije, fue un sistema, de prediagnóstico de anemias, utilizando análisis de imágenes de muestras de sangre. Un compañero y yo nos dedicamos exclusivamente al análisis de las imágenes: separar cada objeto-célula, determinar tamaños, números y formas para dar un prediagnóstico de posibles anemias. El sistema también tiene un módulo de base de datos para almacenar información de historiales médicos (esto lo realizó una de las compañeras), y parte de esa información junto con los resultados del análisis de imágenes es utilizada por una red neuronal (labor de la otra compañera) que aprendiera a determinar también la posible existencia de síntomas de anemia en el paciente. Lo programamos todo para Windows, utilizando el Borland C++ Builder 5, ese que tiene ventanas programadas en Delphi (una especie de sublenguaje de Pascal). Hoy en día no lo programaría así como lo hicimos, para empezar porque no utilizamos el potencial que nos brindaba C++, casi todo fue C y no aprovechamos ni la posibilidad de hacer objetos (salvo las ventanas que C Builder ya crea), ni la API que ya viene con el paquete. Eso sí, nos ganó el derecho no sólo al título de ingenieros en sistemas, sino también a un breve reportaje de televisión :P

Nótese como, hasta entonces, seguía programando en Windows, como a la fecha lo hago en el campo laboral la verdad más por necesidad que por gusto, y sin embargo, desde que tomaba clases de computación en la secundaria, cuando te enseñan la historia de la computación y esas cosas, te hablan de arcaicos y gigantes sistemas como la ENIAC o la UNIVAC, te mencionan las tarjetas perforadas (que yo jamás he visto una en 'tiempo real' :P), y por ahí se cuela la información de que existe algo llamado Unix, pero hasta entonces jamás lo había conocido. En ESCOM, durante la materia de programación, una vez tuvimos unas prácticas para programar en Unix, utilizando el editor vi y el compilador cc para generar unos muy sencillos programas, y en la materia de sistemas operativos obviamente se mencionaba, sobre todo para hablar del tema de semáforos y demás cosas que tiene Unix, pero no recuerdo qué pasó con las prácticas, el caso es que no tuve contacto directo con ese sistema. Y otra vez se nos presentó la oportunidad de instalar Linux en la máquina, una versión del Mandrake, sin embargo no nos dio tiempo y para entonces olvidé que existía algo llamado linux, unix y demás. Si además tomo en cuenta lo que se de historia al respecto, Linux comenzó a hacerse un fenómeno comercial en el 98 (año en que yo entré a ESCOM), y para el año en que estaríamos instalándolo en nuestra máquina escolar, sería para el 2001 o 2002, no se si a esa altura, por nuestro nivel de conocimientos sobre todo, ya habríamos podido instalar Linux (tomando en cuenta que a la fecha, me sigue llegando a costar trabajo algunos detalles, aunque hoy en día ya lo veo como un reto y un gusto, pero en ese entonces probablemente me hubiera frustrado de inmediato) (Nótese también cómo sí me gusta la historia! (en este caso de la computación, pero de otros campos también me gusta) espero con eso redimirme de mis trampas de secundaria :P)

Al terminar la escuela, casi de inmediato conseguí trabajo, programando PDAs. Yo me dedicaba a utilizar el Embedded Visual C++ (aunque en realidad casi todo seguía haciéndose en C) para programar Pocket PCs en Windows CE. Ahí también aprendí en la práctica el SQL para comunicarme con bases de datos, y el Power Builder, un lenguaje para programar ventanas de Sybase, pero así como todos los demás lenguajes de ese tipo, me desagradan muchísimo... De esa época támbién viene mi primer gran éxito profesional y electrónico: con mi sueldo me pude comprar mi primer computadora. Pero puesto que las de marca son caras, y puesto que ya sabía desde antes que las armadas, bien armadas, son buenas, me fui un día al centro de la ciudad de México con mi hermano a comprar el gabinete, fuente de alimentación, tarjeta madre, microprocesador, memoria, disco duro, lector de CDs, bocinas, monitor, teclado y mouse (óptico) con los que armé también mi primer computadora enterita :) Y dio varios años de buen servicio como a la fecha lo sigue haciendo en el negocio de mi papá a donde fue a parar recientemente.

Podría decirse que gracias al desencanto que mi primer trabajo me provocó, decidí regresar a la escuela dos años después (en la empresa solo estuve año y medio, el medio año restante sobreviví con mis ahorros, casi no la libro, estudiando para el examen de admisión). Así fue como llegué al CIC (Centro de Investigación en Computación) del Poli también. Años antes ya sabía de las maestrías en este lugar, y de hecho barajé la posibilidad de hacer la maestría al terminar la escuela, nada menos que en Sistemas Digitales (más electrónica!), pero conseguí trabajo y lo olvidé, y al final me metí a Ciencias de la Computación...

En el CIC retomé el gusto por las matemáticas, materia en donde conocí a quien sería mi asesor de tesis. También aprendí algunas cosas que en la escuela, al haber tomado electrónica, no aprendí: sobre todo teoría de autómatas y teoría de la computación en general, materia que por cierto, siendo muy matemática, me encantó, a pesar de lo difícil ;) Y también programamos otro PIC en una materia donde volví al ensamblador y donde aprendí de gramáticas, parseadores y analizadores léxicos (otra de las carencias del área de electrónica de ESCOM). También comencé a aprender Java, primero de manera muy amateur, y luego por mi cuenta con más dedicación, pues estaba decidido a realizar mi proyecto de tesis utilizando ese lenguaje. Relacionando las matemáticas, la programación, los autómatas, y los sistemas complejos que ahí conocí (y a los que también les agarré mucho gusto), fue como terminé conociendo los autómatas celulares (ya había oído hablar desde chico del Juego de la Vida, que me parecía interesante, pero no sabía que esos bichos tuvieran más aplicaciones...). Y fue así como, en relación con mi futuro asesor de tesis, me metí al tema de la modelación y simulación de flujo de tráfico vehicular con autómatas celulares. Mi tesis estuvo dedicada a la invetigación de un modelo con autómatas celulares más general que los que ya existían, aplicado en particular a analizar la probabilidad de ocurrencia de accidentes de tráfico. Aún me falta hacerle su página web (el proyecto de ESCOM sí que la tiene: proyecto SIPRA http://members.tripod.com/~sides_escom/), pero ya lo haré cuando tenga tiempo :) Por cierto, el haber entrado en contacto con Java, y gracias a un interés que despertó en mi poco antes de entrar al CIC, me permitió retomar la orientación a objetos y ahora es uno de mis paradigmas favoritos :D

Además, aprendí dos actitudes fundamentales: la de investigar y la de tener iniciativa para crear las herramientas cuando se necesitan y no se tienen a la mano... Hoy en día además de ingeniero en sistemas, programador o maestro en ciencias, me autodefino también con intereses en la investigación, área por cierto muy castigada en la economía de mi país, y que la verdad no se lo merece...

Y también en el CIC volví a encontrarme con otra materia que en ESCOM conocí durante un semetre y que me encantó: sistemas operativos. (También tuve una materia de inteligencia artificial que dejó mucho que desear, hoy pienso que me hubiera encantado si me enseñaban LISP, pero aprendimos Prolog (que no es tan malo la verdad), pero a medias (lo cual si es malo), y el área de IA que también siempre me ha llamado la atención, la he dejado postergada desde entonces, ya veremos si otro día con más calma...)

Durante este período, estuve becado por CONACyT, y con mi primer beca me compré mi primera laptop, y que disfruté bastante hasta un desgraciado incidente... (por cierto esa primer beca llegó como 3 meses defasada (esó sí, acumulada), y yo muriendo de hambre porque estuve así con los puros ahorros de mi anterior trabajo! y no lo hubiera logrado si mis padres no me hubieran ayudado en esos precarios tiempos)

Bueno, estaba con los sistemas operativos, y ahí nos enseñaron programación avanzada en nada más y nada menos que UNIX! Y como requisito, había que instalar por lo menos una partición de Linux en una máquina. Así fue como me adentré de lleno en Linux. Unos años antes un primo me había regalado una versión de RedHat que pude instalar en mi casa pero nunca usaba por la dificultad de configurarlo, y luego también obtuve un LiveCD de Mandrake y otro de Ubuntu, pero tampoco les hice caso. Fue hasta que en esta materia tuve que hacerlo que me di cuenta de la maravilla que en realidad es :) Comencé por instalar Fedora Core 3 en la máquina que tenía en la escuela, y también en mi casa y en mi laptop (que luego subí a Fedora 4). Posteriormente opté por SuSE Linux, en ese entonces 9.1, en mi casa y laptop, pero en la escuela seguí con Fedora 3, y de hecho en esa máquina y con ese sistema operativo realicé todo mi proyecto de tesis: aunque programado en Java que para entonces aún no era GPL, editaba los archivos con kdeveloper, compilaba en kconsole (en lo personal a mi siempre me ha gustado más KDE que GNOME, aunque este último no está nada mal), depuraba también en la consola (siendo novato, no me quedó de otra más que depurar con puras impresiones de líneas que me informaran del estado de mi programa, fue una labor muy difícil, pero al final salió bien :), el documento de tesis fue hecho todo en LaTex, con imágenes editadas en The Gimp, y el CD que entregué fue quemado con K3B. En otras palabras, no sólo me adentré en Linux, sino también por consecuencia en el software libre (o de código abierto, para mi la diferencia en cuestión del resultado final es mínima, y las diferencias filosóficas, que si me importan, no las veo tan graves, solo es cuestión de como se miren las cosas, desde puntos de vista diferentes, pero viendo el mismo objeto: el software y cómo se desarrolla). Entré así al mundo del software libre, gracias a las pláticas con un compañero mucho más enterado en el tema, y desde entonces me he vuelto desde un fan, hasta un pequeño aprendiz de hacker :), con intenciones también de desarrollar al estilo open source, y por que no? hasta de hacer negocios y vivir de ello! (y aquí abro un importante paréntesis: con hacker me refiero al significado original de la palabra, con orígenes desde la década de los 60's, hablando de 'verdaderos programadores' y nada que ver con crímenes informáticos... más info. en 'HOWTO become a Hacker' de Eric Raymond http://catb.org/~esr/faqs/hacker-howto.html, una traducción al español aquí: http://mx.geocities.com/nickidname/principal.html, pero advierto que la traducción no tiene fecha de última modificación y no puedo asegurar que esta traducción esté actualizada respecto a los últimos cambios que se hayan hecho en el original en inglés. También recomiendo el resto de escritos de Eric Raymond (http://catb.org/~esr, sobre todo la serie que se relaciona con 'La Catedral y el Bazar') y para contrastar y complementar, también los de Richard Stallman (http://www.gnu.org/, sobre todo el Manifiesto GNU y todo lo relacionado a Software Libre), y el sitio de la Open Source Initiative (http://www.opensource.org/)) (en estos sitios suele haber links a traducciones en español y otros idiomas también)

En principio en mi casa usaban el SuSE 9.1, yo los exhortaba a ello y de hecho les gustaba, pero luego por un problema con el Windows 2000 que tenía instalada la máquina, tuve que reformatear, reinstalar todo, y el Linux también tuvo que ser modificado, pero ya no lo configuré tan bien como antes, no tenía mucho tiempo entonces, y empezó a quedar en el olvido, desafortunadamente. Por fortuna, con mi novia (ahora esposa), si tuve más éxito: le instalé OpenSuSE 10 a su laptop y a la fecha lo tiene instalado y lo usa de vez en cuando. Hoy en día que acabo de instalar OpenSuSE 10.3, estoy por atacar de nuevo para que lo use de manera más definitiva :) Por cierto, el por qué llegué a OpenSuSE 10.3 tiene que ver con un reciente fracaso mío, del cual aprendí una valiosa lección: adquirí una nueva laptop debido a que la anterior se echó a perder definitivamente. Tenía un problema con el contacto donde se conectaba la corriente eléctrica, y teniendo experiencia con armar y desarmar computadoras de escritorio, se me hizo fácil desarmar esta, soldar bien la patita que tenía el falso, rearmar y volver a encender. No se en sí en donde estuvo el problema, pero me atrevo a decir que no fue en el armado/desarmado de la máquina (aunque al final me sobraron como tres tornillos jajajaja), sino en el soldado que hice, muy sin precauciones, y el caso es que la máquina encendía pero no arrancó de nuevo. Algunos decían que no se veía el video, pero la verdad es que ni eso era, simplemente no arrancaba, no parecía que siquiera entrara a las rutinas de arranque... al menos así me conseguí una nueva máquina, que ya me merecía y necesitaba :) y aprendí a no meterme con laptops aún :P y a ser más cuidadoso al soldar circuitos, que no son como los de la escuela : Por otro lado, hoy en día me reinvindico también de cuando adolescente me pirateaba cuentas para acceder a internet, pagando la mía propia, inalámbrica por ser más práctico en una casa tan pequeña donde es mejor tener dos laptops a computadoras de escritorio :)

Y por otro lado, desde el 2002 tuve mis primeros contactos con el HTML para páginas web. Hoy en día soy el responsable de la página web de un movimiento al que pertenezco (http://www.torcasajuv.com), pero gracias a un compañero que me brindó mucha ayuda en el período 2004-2005 y a lo que aprendí de aquel amigo con quien hice mi tesis en ESCOM, empecé a tener contacto con un lenguaje de programación más: PHP, que relacionado con MySQL lo he convertido en una potente herramienta para otra área que me interesa: el desarrollo web. Me he metido un poco al ActionScript de Flash, no tanto como me gustaría, pero tampoco tan poco como para no saber, aunque puedo vivir sin ello :P y también se de javascript.

En fin, terminando el programa curricular de la maestría (que no la tesis, me tardé todavía un año más, en junio pasado apenas presenté mi examen de grado, salí con mención honorífica!), entré a trabajar en un lugar en donde básicamente se dedican a Java, por lo que me he especializado más en ese lenguaje, aunque sinceramente no me llama mucho la atención la certificación, por ahora. Pienso que me interesa más aprender más cosas en vez de enfocarme ahorita en un solo lenguaje. Quisiera certificarme eso sí en administrar sistemas Linux, pero en cuanto a programación me gusta más quedarme abierto a muchas posibilidades. Hoy en día estoy estudiando Python, y me está pareciendo muy interesante. Como práctica, me conseguí el código de Cage (http://www.alcyone.com/pyos/cage/), que modifiqué para agregar la funcionalidad de autómatas de simulación de tráfico (si les interesa les paso mis modificaciones, aún no consigo contactar con el autor para que, si quiere, las suba también).

En conclusión (por fin!!!) estos son los lenguajes de programación con los que me he visto inmiscuido:
-C / C++ (al 'natural' y también con las APIs y entorno de Borland C++ Builder y de Embedded Visual C++, también he manejado un poco el STL para C++)
-Java (en aplicaciones de consola como mi tesis, gráficas con Swing muy poquito, y aplicaciones Web, además es el lenguaje con el que he estado trabajando más últimamente)
-PHP, HTML, javascript y actionscript de flash (en estos también me he estado metiendo mucho últimamente)
-BASIC (suficiente, pero no me pidan aprender VB y esas cosas, no me laten...)
-Python (en proceso de aprenderlo)
-LaTex para generar documentos
-Prolog
-Logo (muy poquito y hace centurias...)
-Delphi (muy de refilón, por mi contacto con el Borland C++ Builder)
-SQL para acceder a bases de datos, en Sybase iAnywhere (para PDAs), MySQL y Oracle (junto con los famosos PLs)
-Lenguajes RAD (PowerBuilder de Sybase y Forms de Oracle) (me da pena mencionar estos, pero asi ha sido...)
-Ensamblador del Z80, 6502, 65??, 8080, Redcode (:P) y dos PICs (que no recuerdo sus números, uno en ESCOM y otro en el CIC, pero algo que he aprendido es que en ensamblador, como en otros lenguajes, contar con documentación, y fundamental acceso a internet para investigar, dispara mi potencia de programador a una muy gran escala y no es para mi necesario saber las cosas de memoria, sino saber dónde buscar para aprender y desarrollar...)
-ShellScript de Unix, Batch de MSDOS
-Lenguajes matemáticos: Octave (que usé para mi tesis de maestría) y Matlab (que use a lo largo de la maestría)

Además, en computación he tenido experiencia en las siguientes áreas:
-Programación (ahí está la lista de lenguajes que he tocado al menos una vez en mi vida)
-Desarrollo web
-Administración de sistemas, mejor si son Linux/UNIX (no a nivel profesional, sino en mi casa :P, pero la verdad me gustaría muchísimo conseguir un trabajo o proyecto que tuviera que ver con este sistema, desde programar en él, hasta incluso administrarlo...) (he instalado exitosamente Fedora Core, RedHat y openSuSE en PCs, y configruado varios servicios locales. Últimamente me he querido meter, además de más configuración, en levantar servicios en red para trabajar remotamente en mi compu estando en otros lados :P aunque no llevo mucho aún)
-Análisis y diseño de sistemas, utilizando sobre todo UML, pero no necesariamente
-Paradigmas de programación (orientado a objetos y procedural, me interesan los agentes pero nunca me he metido)
-Mantenimiento de computadoras (a nivel hardware y electrónica, circuitos lógicos y demás chucherías)
-Bases de datos (creación, mantenimiento, desarrollo de consultas y procedimientos, y reportes en CrystalReports) (aunque la verdad, ya me estoy cansando de hacer puros sistemas que sólo tienen que ver con consultas a bases de datos, en el clásico esquema de consultas, altas, bajas y actualizaciones sin más nada (y el que tengan procedures y triggers no los hace más interesantes para mi, eh?), pero tambien soy consciente que son lo que más hay hoy en día para desarrollar y mantener...)

En otras áreas que se pueden relacionar con programación o computación en general, he hecho cosas con:
-Autómatas celulares (juego de la vida y modelos de tráfico vehicular sobre todo)
-Análisis y procesamiento de imágenes (desde mi tesis en ESCOM, a un juego de un rompecabezas para MSDOS con intefaz gráfica)
-Sistemas complejos en general
-Matemáticas (series de Fourier, autómatas, máquinas de Turing, etc.)
-Ajedrez (por ahi tengo unas clases que hice como práctica personal en Java (junto con un diseñito en UML) para determinar los posibles movimientos de piezas en un tablero, siguiendo las reglas del juego)

Me llaman también la atención, aunque no me he metido mucho con:
-Inteligencia artificial
-Redes neronales
-Redes de computadoras y protocolos (de esto se un poco más por mis estudios en ESCOM y un interés particular que tengo en ellos) (además, en casa de mis papás y en mi casa soy normalmente yo el que configura las redes, conexiones, ruteadores y demás cosas :)

Y por último, en general me llaman la atención muchas otras cosas además de las computadoras...
-Leer, sobre todo fantasía y ciencia ficción, pero me gusta desde lo técnico y folosófico de mi área (últimamente más enfocado a Unix y a historia/paradigmas/filosofía del software libre/open source y del movimiento hacker), hasta teología, y también novelas de muchos otros géneros
-La astronomía amateur
-El ajedrez
-Un poco de videojuegos: sobre todo los de estrategia, en tiempo real o por turnos, y los de rol (en particular soy fan de los roguelike)
-El cine (suspenso / terror de preferencia, también ficción y fantasía), la música (rock, metal y trova sobre todo)
-La historia en general (de México, de la humanidad, de ciertas áreas de interés mío, etc.)
-El cristianismo en general y el catolicismo en particular, en cuanto a enseñanzas, historia, teología, pero sobre todo vida y lo que puedo dar de mi para cooperar con ese Gran proyecto... (de paso, las filosofías de otras religiones y modos de pensar también me interesan mucho! al menos para leer y conocer)
-Estar con mi familia, y por supuesto la vida :)
-(ah si! y la electrónica, siempre ha quedado a un lado, pero siempre ha marcado pasos fundamentales de mi vida profesional ;)

Nota: si toda esta parte final parece un curriculum, la verdad es que no estaría mal si alguien interesado en mis aptitudes y capacidades me contacta para proyectos interesantes (claro está, si luego de tan larga historia, todavía ese alguien aguantó mi egocentrismo para llegar hasta aquí :D ). No me cierro a posibilidades, pero tomen en cuenta que soy casado, con proyecto de tener familia, y que vivo al norte de la ciudad de México :P

Y en cuanto a este pequeño registro de mi propia historia, mi plan es irlo haciendo crecer, conforme los eventos relacionados al tema vayan sucediendo y haya tenido tiempo de reflexionar sobre ellos, o conforme me acuerde de más cosas también...

---
jnc
10/marzo/2008



--
Eru kaluva tielyanna (Dios iluminará tu camino)
Visita la página de la Casa de la Juventud, TOR: www.torcasajuv.com
"Ama y haz lo que quieras. Si callas, callarás con amor; si gritas, gritarás con amor; si corriges, corregirás con amor; si perdonas, perdonarás con amor. Si tienes el amor arraigado en ti, ninguna otra cosa sino amor serán tus frutos." (San Agustín) Solamente asegúrate que en realidad sea AMOR...