Ya está abierto el foro oficial de Mundo Computín:
Saturday, June 16, 2007
Sunday, May 20, 2007
99 Bottles of Beer, más que un Hello World
"99 Bottles of Beer" es una canción popular en inglés, que consiste en cantar iterativamente:
"99 bottles of beer on the wall, 99 bottles of beer.
Take one down and pass it around, 98 bottles of beer on the wall."
Esto hasta llegar a 0 y finalizar con:
"No more bottles of beer on the wall, no more bottles of beer.
Go to the store and buy some more, 99 bottles of beer on the wall."
La página http://99-bottles-of-beer.net/, contiene una colección de más de 1090 variaciones de un programa que imprime esta canción en pantalla, en cientos de cientos de lenguajes diferentes.
Por más trivial que suene, lo interesante está en ver cómo cada participante propone su programa haciendo uso de las características más poderosas (y/o oscuras) del lenguaje.
Algunas propuestas utilizan lenguajes diseñados para ser inentendibles (con malbolge), lenguajes esotéricos (wiki de lenguajes esotéricos), otras implementan en ASCII-art (ejemplo en common lisp) como principal atractivo, y otras simplemente utilizan herramientas desconocidas del lenguaje.
Para el que quiere comenzar a travesiar un nuevo lenguaje, le sugiero que busque en ese página el programa correspondiente, en vez de utilizar un simple y anticuado Hello World...
"99 bottles of beer on the wall, 99 bottles of beer.
Take one down and pass it around, 98 bottles of beer on the wall."
Esto hasta llegar a 0 y finalizar con:
"No more bottles of beer on the wall, no more bottles of beer.
Go to the store and buy some more, 99 bottles of beer on the wall."
La página http://99-bottles-of-beer.net/, contiene una colección de más de 1090 variaciones de un programa que imprime esta canción en pantalla, en cientos de cientos de lenguajes diferentes.
Por más trivial que suene, lo interesante está en ver cómo cada participante propone su programa haciendo uso de las características más poderosas (y/o oscuras) del lenguaje.
Algunas propuestas utilizan lenguajes diseñados para ser inentendibles (con malbolge), lenguajes esotéricos (wiki de lenguajes esotéricos), otras implementan en ASCII-art (ejemplo en common lisp) como principal atractivo, y otras simplemente utilizan herramientas desconocidas del lenguaje.
Para el que quiere comenzar a travesiar un nuevo lenguaje, le sugiero que busque en ese página el programa correspondiente, en vez de utilizar un simple y anticuado Hello World...
The History Of Hacking Documentary
Documental de Discovery Channel sobre la historia del Hacking.
Labels:
discovery channel,
documental,
hacking,
phone phreak,
wozniak
Patrón Singleton + Controller
Problema:
necesitamos que la aplicación tenga una clase que controle todos los procedimientos y que la interfaz pueda comunicarse con ella para que el usuario pueda ejecutar estos procedimientos.
Solución:
Crear una clase controladora (Main.java en este ejemplo) "singleton" accesible desde la capa de la interfaz.
Ejemplo:
Clase controladora:
Llamada del método del controlador desde la interfaz:
Nótese que el método
necesitamos que la aplicación tenga una clase que controle todos los procedimientos y que la interfaz pueda comunicarse con ella para que el usuario pueda ejecutar estos procedimientos.
Solución:
Crear una clase controladora (Main.java en este ejemplo) "singleton" accesible desde la capa de la interfaz.
Ejemplo:
Clase controladora:
public class Main {
// instancia del objeto singleton
private static Main instance;
...
// devuelve la instancia singleton del objeto
public static synchronized Main getInstance() {
if ( instance == null ) {
// critical section if multithreaded application
instance = new Main();
}
return instance;
}
// metodo del controlador para un procedimiento
public Object[] A(Object[] datosInterfaz) {
...
}
...
}
Llamada del método del controlador desde la interfaz:
Main.getInstance().A(datos);
Nótese que el método
getInstance
es estático y público, por lo tanto se puede llamar desde una clase de la interfaz de esta manera. getInstance
devuelve la instancia singleton del objeto Main
(controlador de procesos), y con esta instancia única se ejecuta el método A
que corresponde a algún procedimiento de la aplicación (ej: registro de usuarios, tirar los dados, guardar informacion, etc...)
Labels:
controller,
gof,
grasp,
patrones diseño,
singleton
Tips de programación
Aqui se planea ofrecer algunos tips o trucos interesantes para los programadores. Por favor hagan sus comentarios.
Subscribe to:
Posts (Atom)