La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Tcl-Tk y Expect como herramientas para el desarrollo de front-ends Salvador Muñoz C. 6to Encuentro Linux.

Presentaciones similares


Presentación del tema: "Tcl-Tk y Expect como herramientas para el desarrollo de front-ends Salvador Muñoz C. 6to Encuentro Linux."— Transcripción de la presentación:

1 Tcl-Tk y Expect como herramientas para el desarrollo de front-ends Salvador Muñoz C. salvador.munoz@gmail.com 6to Encuentro Linux

2 ● Filosofía Unix: “La navaja suiza” ● Sysadmin : flojo? (programador) ● Reinventar la rueda para entornos gráficos? ● Aprovechar herramientas existentes ● Una alternativa: desarrollo de un front-end Introducción Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C.

3 Front-end : concepto ● Es la parte “visible” de un programa - Un ejemplo: cliente sftp (interfaz de texto, comandos, respuestas entregadas por el programa) - La interfaz de usuario puede ser tanto grafica como de texto... Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C.

4 Back-end : concepto ● Back-end - Es la parte del programa que no “interactúa con el usuario” - Normalmente contempla la lógica del programa - Un ejemplo: Lógica del cliente sftp (protocolo, sockets, cifrado...) detrás de la interfaz de usuario Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C.

5 ● Programa que implementa únicamente la interfaz de usuario! Otro concepto de front-end  - La “lógica” se encuentra en otro programa - Front-end se ubica entre el usuario y la aplicación Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C.

6 Un ejemplo práctico ● cdrtools/xcdroast - mkisofs, cdrecord... apps “de consola” - xcdroast : front-end para cdrtools - La aplicación gráfica es quien trabaja con los programas de consola - El usuario solo verá la interfaz gráfica Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C.

7 Por que desarrollar un front-end? ● No quiero reinventar la rueda! - Si ya existe un programa estable que hace bien el trabajo... ● Necesito nuevas funciones! - Se desea expandir la funcionalidad del programa original, además de ofrecer una interfaz gráfica de usuario ● El programa existente es sólo un back-end... - Interfaz de usuario actual es demasiado pobre? Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C.

8 Front-end : ventajas ● Sólo se desarrolla la interfaz de usuario ● Se aprovechan herramientas existentes ● Simplicidad en el mantenimiento y depuración del código Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C.

9 Front-end : desventajas ● Se depende de otro programa! ● Portabilidad = La del programa del cual se dependa ● Y si entre versión y versión cambia el modo de uso del programa del cual se depende? :-( - similar al problema de aplicar parsing a /proc/meminfo Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C.

10 ● FTCLP: Cliente ftp escrito en Tcl-Tk ( ftclp.sf.net ) - No duro mucho rato que digamos... FTclP (y el por que del front-end) Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C.

11 Tcl : Tool Command Language ● Lenguaje de scripting: provee tclsh ● Portable y poderoso: sockets, sonido, imagenes... ● Muy sencillo de aprender ● Interpretado (no hace falta compilar :-) ● Es capaz de importar bibliotecas (*.so) ● Es capaz de ejecutar programas y capturar los datos de salida (esto es muy importante!) Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C.

12 ● Foolbar: Launchbar con esteroides en Tcl-Tk - Botones para arrancar programas - Modulos: - Medidor de consumo de memoria/swap/cpu (Parsing de /proc/meminfo: trato especial kernel 2.4/2.6) - Hora, usuario, hostname... - Boton para arrastrar la barra... - Los modulos son scripts sencillos escritos en Tcl-Tk - Carga de modulos y definicion de botones a traves de un archivo de configuracion Ejemplo (Tcl/Tk): foolbar Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C.

13 ● TkEtherMeter: Medidor de ancho de banda - Idealmente algo parecido a DU Meter (si... Windows) - Un grafico que indica velocidad de subida/bajada en el tiempo - Parsing de /proc/net/dev - Cambios de 2.4 a 2.6? Ejemplo: TkEtherMeter Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C.

14 Capturar la salida de un programa Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C. - Obtener hash MD5 de un string, con echo(1) y md5sum(1): - Un script Tcl que realiza la misma tarea: - Ejecutando el script

15 Tk (The Tk toolkit) ● Extensión de Tcl ● Permite generar interfaces gráficas ● Provee wish (WIndowed SHell) ● Ideal para desarrollar prototipos de GUI ● Con pocas líneas se obtienen ventanas, menus, botones, íconos, cuadros de diálogo... Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C.

16 Un script Tcl-Tk de ejemplo Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C.

17 Otro script Tcl-Tk de ejemplo Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C.

18 Expect ● Otra extensión de Tcl ● Permite controlar ejecución de programas (stdin/stdout) de manera interactiva - Algo que nunca pude hacer con Tcl :-) ● Provee expect y expectk ● Conceptualmente similar a los chat-scripts (conexión a internet usando módem) ● Comandos clave: spawn, exp_send Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C.

19 Ejemplo: sftp (login) Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C. - Login valido - Login erroneo ;-)

20 Ejemplo: sftp (login) Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C. - Automatizar login: Primera mitad

21 Ejemplo: sftp (login) Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C. - Automatizar login: Segunda mitad

22 Ejemplo: sftp (login) Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C. Login exitoso Login erroneo - Uso practico: Ataques de fuerza bruta a cuentas de usuario?

23 Conclusiones Tcl-Tk y Expect como herramientas para el desarrollo de front-ends 6to Encuentro Linux – Salvador Muñoz C. - Tcl/Tk/Expect : Soluciones rapidas (simples) - Reutilizar programas existentes :-) - Automatizacion/abstraccion grafica del uso de programas - Administrador-Programador... - Curiosidad


Descargar ppt "Tcl-Tk y Expect como herramientas para el desarrollo de front-ends Salvador Muñoz C. 6to Encuentro Linux."

Presentaciones similares


Anuncios Google