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

Slides:



Advertisements
Presentaciones similares
PROGRAMACIÓN Visual Profra. Graciela Prado. Visual Basic Es un lenguaje de programación diseñado para facilitar el desarrollo de aplicaciones en un entorno.
Advertisements

TECNOLOGÍAS PARA LA IMPLEMENTACIÓN DE INTERFACES DE USUARIO
ACIDE A C onfigurable I ntegrated D evelopment E nvironment (Un entorno integrado de desarrollo configurable)
InfoPath Ventajas y Uso.
Programación de Sistemas
MICROSOFT EXCEL VERSION 2007 Presentado por : Yovany Arrocha 9:19 a.m.
Unidad 6 Sistema Operativo.
 Un servidor proporciona información a los ordenadores que se conecten a él.  Cuando lo usuarios se conectan a un servidor pueden acceder a programas,
SISTEMAS OPERATIVOS.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) LENGUAJES DE PROGRAMACIÓN PARA EL DESARROLLO DE INTERFACES.
File Transfer Protocol.
Microsoft InfoPath ESTEFANIA FIALLO.
Alumno: Israel Espinosa Jiménez Matricula: Licenciatura: TIC Asignatura: Programación con Lenguajes de Cuarta Generación Cuatrimestre: 5 Página.
María Camila Restrepo C. Mantener la Operatividad del sistema
S ISTEMA O PERATIVO P ROCESADOR DE T EXTOS. SOFTWARE El primer elemento de un sistema de computación es el hardware (equipamiento). El SOFTWARE es el.
Visual Basic. Sorange campos Introducción Es uno de los tantos lenguajes de programación que podemos encontrar hoy en día. Dicho lenguaje nace del BASIC.
Juan Camilo Morales 10a.  Es el conjunto de herramientas que permiten al programador escribir programas informáticos, usando diferentes alternativas.
Protocolo VNC Conexión Inversa. ¿Qué es el protocolo VNC? VNC Virtual Network Computing, es un programa de software libre, basado en una estructura cliente-servidor.
"Si he logrado ver más lejos ha sido porque he subido a hombros de gigantes" Isaac Newton
¡LOS SERVIDORES DE FTP Y NUBE!
¿Que es PHP? PHP Hypertext Preprocessor Y solo porque me quiero hacer el profesor cool y meter un chiste: PHP también significa: Para Hacer Páginas.
Gestor de paquetes Instalar y eliminar software (GUI y consola)
SISTEMAS OPERATIVOS (II): WINDOWS
WINDOWS Elvira Abajo Lera Octubre, 2008.
INTRODUCCIÓN. Una computador u ordenador se compone principalmente del software, que se refiere al conjunto de programas, instrucciones y reglas informáticas,
Diseño y Programación Orientados a Objetos
Introducción a Sistemas Operativos
Visual ITP y Web ITP Raquel Sánchez Díaz Universidad de Salamanca.
Introducción al Proyecto
DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA
Diseño y Programación Orientados a Objetos
File Transfer Protocol (FTP)
PHP Hypertext Preprocessor
LOS DIFERENTES LENGUAJES DE PROGRAMACION PARA LA WEB
APLICACIONES DE WINDOWS
Navarro león Elizabeth grupo:401
Avances e Información de los Programadores del Lado del Cliente
KUbuntu Carlos Torres Denis González 7 de septiembre de 2015.
Principios básicos del entorno windows
2.5 Seguridad e integridad.
Configurando mi espacio de trabajo
LINUX.
Aplicaciones informáticas Sexto año
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 1)
WINDOWS 8 Definición Partes fundamentales Documento Word Libro Excel
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Servicios SFTP/SCP. Gustavo Antequera Rodríguez.
SOL GUTIÉRREZ Y MARIANA HEINTZ 4°C Prof. Gustavo price
Rivas Hernández Elsa Mariana Suarez Rosas Eduardo.
Conceptos básicos de.NET Explorar el entorno de desarrollo Crear un proyecto Visual Basic.NET Use Visual Studio.NET Acceso a datos Depurar e implantar.
LENGUAJE DE SCRIPTING EN SERVIDORES WEB INTEGRANTES :JOSTIN FRANCO DARYENIS ARAUZ PABLO CANDANEDO.
SOFTWARE. Se conoce como software al soporte lógico de un sistema informático, que comprende el conjunto de los componentes lógicos necesarios que hacen.
Tema: Componentes lógicos de un ordenador. Mediante el sistema de numeración binario, es decir, usando los dígitos 0 y 1. Lo único que transmite,
PROYECTO DE GRADUACIÓN
Entendiendo PHP En diseño de software en el Front-end es la parte del software que interactúa con los usuarios. Es la persona que se encarga del diseño.
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 1)
INTRODUCCIÓN A DISEÑO Objetivos del curso. Definición de PowerPoint. Que podemos hacer en PowerPoint. Definición de Presentación. Principios de un buen.
HERRAMIENTAS BASICAS DISEÑO SITIOS WEB. CARACTERÍSTICAS Básicamente una página web puede construirse con un simple editor de texto (como puede ser el.
Diseño y Programación Orientados a Objetos
Acme Acme es un editor de texto y shell gráfico del sistema operativo Plan 9 from Bell Labs, diseñado e implementado por Rob Pike. Puede usar el lenguaje.
INDICE ¿QUE ES LINUX? HISTORIA DE LINUX CARACTERISTICASUTILIDADES VENTAJAS Y DESVENTAJAS CONTENIDO DE LINUX ¿QUE ES MS-DOS? FUNCIONES DE MS-DOS.
1 PROGRAMACION ORIENTADA A OBJETOS MARIA LAURA ESPIN B. INSTITUTO TECNOLÓGICO SUPERIOR ÁNGEL POLIBIO CHÁVEZ TECNOLOGÍA SUPERIOR EN DESARROLLO DE SOFTWARE.
PROYECTO DE GRADUACIÓN
LOS SISTEMAS OPERATIVOS MENÚ SISTEMAS OPERATIVOS Introducción Definición Historia Funciones Tipos S.O. Algunos Existentes Conclusiones Referencias.
Adm. Sistemas Operativos Arquitectura de Plataformas y Servicios Tic.
PROYECTO DE GRADUACIÓN
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS CHACALIAZA BOZA MARGARET AMARLLY.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS CHACALIAZA BOZA MARGARET AMARLLY.
ESTRUCTURA DE LO SISTEMAS OPERATIVOS Presentado por: Jennifer.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS. Estos sistemas no tienen una estructura definida, sino que son escritos como una colección de procedimientos donde.
Transcripción de la presentación:

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

● 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.

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.

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.

● 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.

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.

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.

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.

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.

● 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.

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.

● 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.

● 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.

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

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.

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.

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.

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.

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 ;-)

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

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

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?

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