* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * drmad's awesome slide wireless controller * * * * a.k.a. * * * * * * * * "Dianegs" * * * * * * * * http://drmad.org/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Este programa lo realizé para mi exposición de Gambas en la III Semana Tecnólogica, organizada por la FIS-UNICA en octubre del 2011, como prueba de concepto de las capacidades de Gambas, y para mostrar algunas diapositivas ("dianegativas", o "dianegs" :-) ) Por esas cosas del destino, no comenté este programa en la exposición :-P Para ejecutar, presiona F5 (más detalles en la sección "Modus Operandi" más abajo en este documento) Detalles técnicos ================= Este programa implementa un servidor web sencillo, esperando peticiones en el puerto 8080. La raiz de la web está en la carpeta "htdocs". Los mensajes de error están en la carpeta "errordocs", un HTML con el código del error por nombre. Algunas funciones sólo se ejecutan si la petición viene de una MAC determinada. Esto lo implementé como medida de seguridad, aunque realmente innecesaria, pero divertida de hacer :) La MAC se define en la constante GOD_MAC de la clase CServer. Las páginas que empiezan con "god_" también están restringidas. Todas las peticiones que van por POST son manejadas de una forma especial: no ejecuta un CGI externo, las funciones que realizan están "hardcoded" en el mismo programa (clase CServer). Esto lo hice así para ahorrar tiempo, y para controlar el comportamiento de todo el sistema (como cambiar de dianeg) sin usar programas externos. Las Dianegs =========== Cada dianeg es un formulario (empiezan con "fD") que es embebido en el formulario principal ("FMain") a medida que deben de aparecer. El órden de las dianegs está también "hardcoded" en la función "dianeg_carga()" del módulo "MMain". Cada dianeg tiene 2 funciones, "Siguiente()" y "Salir()". "Siguiente()" sirve para hacer alguna animación dentro de la dianeg cuando debería de saltar a la siguiente. Cuando esta función retorna False, entonces pasa a la siguiente dianeg. "Salir()" se ejecuta antes de descargar la dianeg. Esto lo uso únicamente en la dianeg "fDQB", que carga un programa externo: Salir() se encarga de cerrar el programa. "dianeg_carga()" de "MMain" es el encargado de cargar cada dianegativa. Ésta función ajusta el tamaño de cada elemento de la dianeg, para que quepa en el espacio reservado de FMain (y ajustar el tamaño de la diapo a la posible resolución del proyector). También activa un Timer, que crea la animación de aparecer desde el lado derecho de la pantalla. Modus Operandi ============== Al ejecutar este programa, se crea una ventana donde aparecerán las dianegs. Acepta algunas teclas: - F: Cambia entre ventana y pantalla completa - M: Crea un pequeño mensaje de prueba en la parte inferior - Espacio: Avanza una dianeg - Retroceso (backspace): Retrocede Para avanzar o retreceder via web, entra a: http://IP_o_nombre_de_tu_pc:8080/god_control.html Que fue la forma cómo yo moví las dianegs en la exposición. En god_control.html también hay un enlace que hacer que el servidor cargue en el portapapeles el contenido del fichero "helloworld.bas", que usé para no escribirlo todo en plena exposición. Cuando entras a la raiz de la web ( http://IP_o_nombre_de_tu_pc:8080/ ), aparecerá la presentación, donde también puedes enviar mensajes, y aparecerán debajo de la dianegativa. En la web http://IP_o_nombre_de_tu_pc:8080/lienzo.html puedes hacer dibujos, y estos aparecerán en la dianegativa "fDPreguntas". Izquierdos de copia =================== Algunas de las imagenes las he sacado de Internet, puede que alguna tengan copyright. Los logos de "drmad" y "paperclip x10" son propiedad mia, si deseas usarlos, te pido por favor me envies une correo electrónico. Todo este código fuente está bajo la licencia Creative Commons "Reconocimiento-CompartirIgual 3.0 Unported (CC BY-SA 3.0)", cuyo detalle puedes leer en http://creativecommons.org/licenses/by-sa/3.0/deed.es_ES . En resumen: Puedes hacer lo que quieras con él, siempre y cuando uses mi nombre y URL como créditos de éste programa, y que compartas tu programa de la misma manera con los demás. Toda consulta, pregunta (sobre linux, gambas, la vida, el universo y todo), comentario, sugerencia, piropo o buenas vibras, envíala a oliver@x10.pe Saludos, -- Oliver Etchebarne Bejarano http://drmad.org/