User Tools

Site Tools


Writing /var/lib/dokuwiki/data/meta/teaching/ie0117/ie-0117_programacion_bajo_plataformas_abiertas_2013.meta failed
teaching:ie0117:ie-0117_programacion_bajo_plataformas_abiertas_2013

IE-0117 Programación Bajo Plataformas Abiertas

Proyectos Estudiantes

Programa del curso

Clases

Actividad 1: Instalación de Debian GNU/Linux y Comandos Básicos

Consiste en la instalación de Debian hasta tener un sistema gráfico completo, con el que se pueden instalar aplicaciones y tener acceso de administración al sistema. Al final se verán algunas utilidades de sistema comúnmente usadas.

IE0117: Actividad 1

Materiales

Actividad 2. Haciendo cosas Útiles Básicas!

Tenemos un sistema operativo y ya queremos comenzar a hacer algunas cosas interesantes.

IE0117: Actividad 2

Python

Actividad 1

  • ipython
  • for, enumerate, zip
  • list comprenhesions
    • xrange
    • map
    • reduce
  • lambda
  • functions
  • lists
  • ints
  • strings
  • floats
  • dicts
  • while
    • break, continue
  • pass
  • tuples
  • sets
  • immutable
  • First program
    • Accepting arguments: sys.argv, optparse
  • input, output, open, pickle
  • exceptions
  • classes
  • Numpy
yarp write with python
#!/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()

Actividad 2

  • Python-qt
  • Python YARP
  • Python orocos-kdl
Python-qt
sudo apt-get install libqt4-dev   qt4-dev-tools python-qt4-dev pyqt4-dev-tools libtclap-dev
import sys
from PyQt4 import QtGui,QtCore
app=QtGui.QApplication(sys.argv)
main_widget=QtGui.QWidget()
button=QtGui.QPushButton("test", main_widget)
main_widget.show()
main_widget.setWindowTitle("test application")
def testprint():
   print "Works"
QtCore.QObject.connect(button,QtCore.SIGNAL("clicked()"),testprint)
sys.exit(app.exec_())
Python yarp

* We use python for this example * Open a console and run “yarp server”. Leave this console running * Type “ipython” in another console, then in the ipython interpreter, type the following:

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)
  • In this moment the python application is in an infinite loop waiting for data in the input port
  • Start two extra consoles
  • In the first new console execute: “yarp write … /summer/in”
  • In the second new console execute: “yarp read … /summer/out”
  • New in the first new console you can type “10 10” and you will see the result in the second new console.
  • Basically the summer module is processing the data that is writen in the /summer/in port and the results are published in the /summer/out
  • With this you can easily make small simple modules and test them without having the whole system in one single file. Also allows to segment work between colleges and to separate processing in different computers.
  • You can interface this system with player. You comunicate with the hardware using player and between your own processing modules using YARP.

Ideas para proyectos

Modulo Linux

  • LVM+RAID servidor de alta disponibilidad
  • backup+LVM+snapshots
  • tftp+dhcp+nfs diskless boot diskless root
  • LaTeX + beamer
  • Bases de datos
  • Como hacer un paquete de debian y como empaquetar un proyecto en un paquete de debian
  • Como compilar el kernel de Linux
Asistente de compras

- Pagina web - lista de compras - Aplicación de celular

  1. Conexion a base de datos
  2. Modificar si es necesario

- base de datos

Facilitación de mantenimiento para internet cafes

- Servidor tftp - Servidor dhcp - Creación de las imágenes - Selección de varios sistemas de archivos para instalar

Disponibilidad de servicios por red

- Servidor compartido de impresión y escaneo (cups) - Servidor archivos (nfs)

Reutilización de equipo obsoleto

- Estudio de aplicaciones y mercado - Prototipo funcional

(Tal vez es muy poco para dos)

Asistente personal (Final)
Sistema integrada para casa inteligente
Servidos integrado de almacenamiento
Sistema de anuncios y búsqueda de alquileres

(considerar unirlo al primer proyecto)

Proyecto final

  • El sistema de información integrada de la escuela
  • Sistema para avisar a conserjes sobre asuntos de limpieza en la escuela

Materiales

teaching/ie0117/ie-0117_programacion_bajo_plataformas_abiertas_2013.txt · Last modified: 2022/09/20 00:08 (external edit)