====== Actividad 4 ====== Esta actividad consiste en la instalación de un programa que no es parte de debian. ===== Preguntas de la actividad ===== * Cuál es la diferencia entre instalar un programa que es parte de Debian y uno que no? * Qué significa instalar un programa en los directorios de sistema? Y en el directorio de usuario (instalación local)? * Por qué es más conveniente instalar un programa en el directorio de usuario? * Para que sirve xstow? Cómo se puede usar para realizar una instalación en un directorio de usuario? * Qué es YARP? Cómo se instala? Cómo se usan sus utilidades básicas? * Qué es una red de YARP? * Qué es procesamiento paralelo? Cómo puedo usar YARP para implementar procesamiento paralelo? * En qué consiste un programa sencillo de python? ===== Temas tentativos a cubrir ===== * xstow * Variables de entorno importantes para compilación y detección de programas ejecutables * Proceso de compilación (en general) * yarp * Comunicación entre computadoras * Redes de computadoras * Abstracción de redes de computadoras usando Yarp. * Cmake, autotools, Makefiles, PREFIX ===== Instrucciones ===== * Instale xstow. Siga el link siguiente para las instrucciones: [[tutorials:using_xstow_for_local_installations|Using xstow for local installations]] * Instale yarp. Siga el link siguiente para las instrucciones: [[tutorials:installing_yarp_in_debian|Installing YARP in debian]] * Siga las instrucciones del profesor y los asistentes para la prueba de los programas yarp read, yarp write, yarpserver3 y yarp connect * Al finalizar esta práctica asegurese de que yarp read, yarp write y yarpserver3 no están corriendo más. (Usando Ctrl-c y para estar más seguro use "ps ax" ==== YARP Write with Python ==== * Escriba el siguiente programa en un archivo llamado: my_yarp_write.py #!/usr/bin/python import sys import yarp as y from yarp import BufferedPortBottle as buffport y.Network.init() output_port=buffport() output_port.open("/keyboard/out") exit=False while not exit: a=raw_input() if a=="exit": exit=True print a bottle=output_port.prepare() bottle.clear() bottle.addString(a) output_port.write() * A este archivo active la bandera de ejecución. * Abra una consola y ejecute “yarpserver3”. Deje esta consola corriendo. * Abra una nueva consola y en el directorio donde almacenó el programa anterior ejecute el programa anterior: cd ~/mi_directorio_python ./my_yarp_write.py * Abra una nueva consola y ejecute un yarp read: yarp read /read * Conecte ambos módulos: yarp connect /keyboard/out /read * Introduzca texto en la consola que está ejecutando my_yarp_write.py * Cancele la ejecución de todos los programas anteriores (ctrl-c en cada consola) ==== Módulo de procesamiento con python y yarp: Sumador ==== * Escriba el siguiente programa en un archivo llamado: my_summer.py import yarp as y y.Network.init() input=y.BufferedPortBottle() output=y.BufferedPortBottle() input.open("/summer/in") output.open("/summer/out") While True: inputbottle=input.read(False) if inputbottle: outputnumber=inputbottle.get(0).asDouble()+inputbottle.get(1).asDouble() outputbottle=output.prepare() outputbottle.clear() outputbottle.addDouble(outputnumber) else: y.Time.delay(0.001) * Ejecute yarpserver3, el programa que acaba de escribir, un yarp read y un yarp write conectados a los puertos correspondientes del programa anterior. * En el yarp write usted puede escribir "10 10" y en la consola con yarp read usted puede ver el resultado de la suma. ===== Evaluación ===== Yarp debe ser compilado correctamente y debe correr correctamente en la consola. [[teaching:ie0117:cuestionario|cuestionario]] ~~DISCUSSION~~