User Tools

Site Tools


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

This is an old revision of the document!


ie-0117 Programación bajo plataformas abiertas

Página proyectos estudiantes

Carta al estudiante

Clases

Primera semana (Instalación de Debian GNU/Linux)

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.

Notas importantes

  • No loggearse como “root” al sistema gráfico. Siempre usar un usuario normal.
  • Evitar utilizar “sudo su” para tareas administrativas. Mejor usar “sudo comando”.

Comandos, archivos y temas importantes

  • apt-get install <paquete> <paquete> ….
  • apt-cache search <palabra clave> <palabra clave>
  • apt-cache show <paquete>
  • apt-get update
  • apt-get dist-upgrade
  • nano <archivo>
  • /etc/apt/sources.list

Temas de lectura y comprensión

  • Linux distributions
  • Desktop environments
  • Window managers
  • sudo
  • apt
  • Debian
  • Parts of a computer (hardware)
  • PC booting process
  • Linux booting process
  • Grub
  • Linux kernel
  • initrd

Segunda y tercera semana - Haciendo cosas útiles básicas!

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

  • Como crear, borrar, mover, archivos y directorios?
  • Como acceso mi llave USB?
  • Quiero tener mi propia página web! Como? Y si lo quiero en mi casa y quiero que sea accesible al público?
  • Bueno, como es que se configura la red? Que es una red de computadoras?
  • Como me comunico con otra computadora? Como acceso otra computadora?
  • Y si mi hermano quiere usar mi compu, le doy mi clave de usuario o puedo hacer algo más? Y que tal si queremos compartir algunos archivos (suid)?
  • Como copio archivos a (desde) otra computadora? (sshfs, scp, rsync)
  • Como compilo un programa sencillo en linux? (hello world)
  • Como compilo un programa desarrollado por alquien más? (YARP)
wget http://www.kernel.org/pub/linux/kernel/v3.0/testing/linux-3.6-rc2.tar.bz2

Temas tentativos a cubrir

  • Apache
  • Simple network administration (/etc/network/interfaces)
  • Working with the terminal (filesystem cmds)
  • Simple system administration (adduser, addgroup)
  • Remote access (ssh, vnc)
  • Environment (PATH)
  • File Systems

Proyectos modulo 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

Laura Fernandez Diana Fernandez Eduardo navarro

Matricula

Aplicación celular para matricula

- Web server

Kevin Villalobos

Facilitación de mantenimiento para internet cafes

- Servidor tftp - Servidor dhcp - Creación de las imagenes - Selección de varios sistemas de archivos para instalar

Willi villalobos

Disponibilidad de servicios por red

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

Fernando Cortez

Reutilización de equipo obsoleto

- Estudio de aplicaciones y mercado - Prototipo funcional

(Tal vez es muy poco para dos)

Brian Villalobos Andres Sanchez (Buscar algo para él para linux)

Asistente personal (Final)

Andres Sanchez

Sistema integrada para casa inteligente

Jorge blanco Carolina vargas

Todavía no definida la aplicación final

Jose Vargas (sistemas encrustados)

Servidos integrado de almacenamiento

- Samba - Respaldos automatizados - Firewall - Dos clientes

Javier Pacheco Jeancarlo Chavarria

Sistema de anuncios y busqueda de alquileres

(considerar unirlo al primer proyecto)

Jorge Rodriguez

Faltan

Alejandro masis
Carolina arauz
Josselyn porras - oyente
Isaacs Calvo

Python

Primera semana

  • 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

Segunda semana

  • 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

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.1457364395.txt.gz · Last modified: 2022/09/20 00:08 (external edit)