Showing posts with label software libre. Show all posts
Showing posts with label software libre. Show all posts
Thursday, October 02, 2014
Plática sobre programación lúdica en la AMIAC
La AMIAC (Academia Mexicana de Informática A.C.), me invitó, por conducto de su presidente, Eric Huesca, amigo desde la preparatoria, a todo esto, a dar una plática en un desayuno que organizan el primer jueves de cada mes. Le dije que podía hablarles de mi experiencia en el tema de la programación lúdica en los retos que he realizado a través de la página web unocero.com, en donde su creador, Javier Matuk, siempre ha visto de buena manera mis iniciativas.
Así, hoy platiqué un poco de lo que es la programación lúdica, lo que se busca, la implementación de los retos, la respuesta de los estudiantes (y alguno que otro egresado), los cuales han trabajado arduamente para resolver los probolemas planteados. Aquí en mi blog pueden verse estos retos y los ganadores de los mismos.
Creo que les sorprendió un poco cuando les dije que el premio de estos retos eran una taza con el logotipo de La Morsa. La idea de esto es que es por una parte, se pueden hacer tazas con cualquier imagen en los Office Depot, por unos 60 pesos. Elegí una taza porque va más allá de un premio como podría ser un trofeo o una placa. La taza tiene el logotipo y la leyenda que indica qué reto se ganó. Así, el ganador podrá recordar lo que significa la taza, más allá del valor económico de la misma.
Desde luego, las tazas no se venden (ya me han dicho más de una vez que me la compran), pero si cedo, entonces pierde el valor simbólico de la misma. El chiste al final de cuentas es que la taza se otorgue a quien gana el reto.
Al final de la plática hubo una interesante discusión al respecto de la enseñanza y es claro que este tema preocupa y ocupa a todos los que estábamos ahí. Fue todo muy ilustrativo. Hice énfasis en buscar alternativas para que los estudiantes se dediquen a programar, que aprendan las artes detrás de esta actividad, así como el valor del software libre y de código abierto, que de alguna manera nos ha mostrado el camino para hacer que las máquinas hagan lo que queramos.Vamos, que todos hemos aprendido de terceros. Además, como dijo alguna vez Donald Knuth, "la cosa importante, una vez que se tiene lo suficiente para comer y una linda casa, es lo que usted puede hacer por otros, cómo puede usted contribuir a la empresa como un todo". ("The important thing, once you have enough to eat and a nice house, is what you can do for others, what you can contribute to the enterprise as a whole") (*).
Al final de la plática se rifó precisamente una taza. Los convidados al desayuno se anotaron en una lista, asignándose un número del 1 al 42. El ganador se eligió usando un programa muy simple que escribí la noche anterior para este propósito. Rompí la regla de que las tazas solamente se dan a los ganadores de los retos, pero aquí digamos, fue una taza honorífica, sin valor curricular.
Agradezco pues, todas la atenciones y cuidados que se tomaron para que pudiese haberse dado este evento.
____
(*) Jack Woehr. An interview with Donald Knuth. Dr. Dobb's Journal, pages 16-22 (April 1996)
Tuesday, October 29, 2013
Lazarus, un cuasi-clon de Delphi
Por razones meramente académicas tuve que incursionar en Lazarus, una herramienta de aplicación rápida (RAD, por sus siglas en inglés), que permite programar en un ambiente muy similar a Delphi 7. La filosofía es la misma y Lazarus empezó precisamente como un esfuerzo comunitario para dotar de una herramienta al mejor estilo Delphi pero de código abierto y gratuita.
Hoy en día, me da la impresión, Lazaus es lo suficiente estable y maduro para realizar una buena cantidad de programas en un ambiente verdaderamente poderoso y amigable. Desde luego, no tiene la miriada de componentes que ya Delphi tiene (ver por ejemplo el sitio Torry.net), pero sin duda se ha hecho un estupendo esfuerzo por tener una herramienta funcional de verdad.
Mucha de la documentación de Lazarus puede verse en los diferentes sitios wiki que explican -muchas veces con lujo de detalles- todo lo que hacen las diferentes bibliotecas y componentes. Es a veces incluso abrumador cuando uno busca una información particular. No obstante esto, es siempre mejor en estos casos pecar por exceso.
Dos cosas son diferentes a Delphi. Una de ellas es que evidentemente, compila mucho más lentamente (porque es claro que es difícil vencer a los compiladores turbo de la empresa original, Borland), pero eso no es demasiado grave. Con respecto a los programas de Delphi, para convertirlos a Lazarus, hay poco que convertir en algunos casos (dependerá de la complejidad del software), pero aún así, muchas veces hay instrucciones parecidas, que no iguales, entre una plataforma como Lazarus y la comercial, Delphi.
Por ejemplo, tenemos que en Delphi, puedo mandar pintar un pixel con el color que quiera con la siguiente instrucción:
Image2.Canvas.Pixels[i,j] := RGBToColor(B,G,R);
Mientras que en Delphi 7 se hace así:
Image2.Canvas.Pixels[i,j] := RGB(B,G,R);
No es la gran diferencia, pero hay que saber que existe esata instrucción en Lazarus (RGBToColor) para poderla aplicar y que el sistema no marque error.
Lazarus tiene otras ventajas aparentes sobre Delphi, sin embargo. Una de ellas es ese sueño de crear código en una plataforma y poder correrlo en todas las demás plataformas y sistemas operativos. En principio al menos, código fuente de Lazarus escrito para Windows puede copiarse a Mac o Linux, y recompilar con las reespectivas versiones de Lazarus para generar programas ejecutables en esas plataformas. Eso simplemente no lo puede hacer Delphi.
Quizás la gran diferencia entre Delphi y Lazarus es que la calidad del software comercial, amén que es un esfuerzo que se está haciendo desde 1994, hacen a Delphi aún superior a Lazarus si se trata de crear aplicaciones robustas y de usar la enorme cantidad de componentes y código de terceros. Aún así, Lazarus es un muy buen esfuerzo y claramente con el tiempo será mucho mejor. Es una estupenda opción si se usa Linux (donde Kilyx, la versión de Delphi para Linux se malogró) o Mac OS X, aunque aún con algunas limitaciones.
Monday, March 12, 2012
Los efectos del software libre
Quienes usamos y compartimos la idea del software libre y abierto, nos topamos con quienes simplemente no entienden cómo es que uno "regala" su trabajo. La realidad es que es una cuestión de creer en que la idea es correcta y "regalar" el trabajo (asunto que estrictamente pudiese ser cierto), no es tan lamentable ni grave como a más de uno le pudiese parecer. De hecho, Donald Knuth, una de las vacas sagradas del cómputo ha dicho ya en alguna ocasión que todos estamos obligados a hacer algo por nuestras comunidades, por el lugar donde vivimos. Los programadores pueden donar su código y eso es una manera de agradecer los beneficios recibidos en nuestras existencias. Cada quien, desde su reducto, está obligado a hacer de este mundo algo mejor.
Knuth es el primero en aplicar esta idea y su sistema de tipografía TeX, es libre y gratuito. Es de código abierto y hoy por hoy es el estándar en sistemas de tipografía para libros de matemáticas. TeX tiene ya sus años y se ha desarrollado extraordinariamente con una serie de herramientas para quienes tienen que formar libros científicos. Así pues, aparte de la obra maestra de Knuth (The Art of Computer Programming - una serie de libros sobre cómputo), tenemos a TeX, entre tantas cosas que ha hecho este personaje por el cómputo mundial.
En el software libre, abierto, en donde en general incluso se entrega el código fuente, tenemos la posibilidad de aprender de lo que otros ya han hecho. Esto me hace pensar en el ajedrez: gracias a quienes escriben de las partidas de otros, que las analizan, que hacen colecciones de posiciones de táctica, de ejercicios para mejorar en nuestra comprensión ajedrecística, entonces aprendemos. No tiene sentido pretender inventar el hilo negro, aprender todo desde cero, sin ayuda. No nos alcanzaría una vida en ese sentido. Hay que sacar ventaja de que otros ya han hecho el trabajo y se han tomado la molestia de explicarnos muchas cosas que nos permiten avanzar más rápidamente.
Y todo esto viene a cuento porque leo a Frederic Friedel, de Chessbase, que en una entrevista dice que los programas de ajedrez de código abierto han arruinado el negocio del ajedrez computarizado. El problema es que hay una serie de motores de ajedrez, "engines", los cuales juegan tan bien como que Fritz, Rybka, Shredder, etc. Por ello en la versión 13 de Fritz, Chessbase ha añadido el que se pueda interactuar con análisis de otros a través de la "nube", es decir, a través de análisis realizados por otros y guardado en los servidores públicos de Chessbase. Para ello, cabe decirlo, se necesita comprar Fritz 13 para tener acceso a esta opción.
El problema es que Robbolito, Houdini y StockFish, son programas que juegan ya tan bien como Rybka (que de acuerdo a Kasparov a finales del 2010, decía, era el programa que mejor entendía de ajedrez). Ahora simplemente se puede descargar cualquiera de los programas mencionados y si comparamos análisis contra los motores comerciales, no veremos prácticamente diferencia. Quizás Friedel tiene razón: vender motores y programas de ajedrez ya no parece ser un buen negocio.
Pero pensemos en Chessbase, el producto estrella de dicha empresa, el manejador de partidas de ajedrez el cual es un estándar. Hay varios productos de la competencia, algunos comerciales y otros de software libre y abierto. Chess Assistant, que es la competencia comercial de Chessbase, hace estrictamente lo mismo que Chessbase (y viceversa), y es cuestión de gustos y de tiempo el preferir uno u otro programa. Sin embargo, tenemos "José" (por José Raúl Capablanca) y Scid (Shane's Chess Information Database), que son programas que en términos generales hacen lo mismo que Chessbase o Chess Assistant, pero sin embargo, no tienen el éxito de los programas comerciales. ¿Por qué?
Puede haber muchas razones, pero quizás la más común es que Chessbase y Chess Assistant también entregan una serie de programas de apoyo para sus manejadores de partidas. Tienen servicios de recolección de partidas que se juegan en los torneos y sus bases de información están actualizadas al día. Los programas públicos, libres y gratuitos tienen eso en contra y no pueden competir con esta parte de los programas comerciales. Otra razón es que sus bases de partidas están en general en un formato optimizado para búsquedas, el cual es propietario, mientras que los programas abiertos usan el formato PGN, que probablemente sea mucho más lento de manipular cuando se tienen unos cinco millones de partidas con todo el ajedrez registrado.
Así pues, he aquí lo que hay que hacer para mantener un negocio de software a flote: hay que dar mucho más que solamente un programa funcional. Por eso Chessbase y Chess Assistant se mantienen en el gusto de los ajedrecistas. Con ese mismo criterio el negocio de los programas que juegan ajedrez debe buscar dar más que sólo un programa que juegue al ajedrez. Como se mencionó antes, Fritz 13 es un primer paso en ese derrotero, pero es claro que hay que apurarse porque los programas abiertos y gratuitos hacen tanto como los comerciales. ¿Por qué pagar por algo que se puede conseguir gratis?
Subscribe to:
Posts (Atom)