Archive

Archive for the ‘FIB’ Category

ASO: Estructura tipica de directoris Linux

March 27th, 2009 No comments
Directorio        Descripción
-----------------------------------------------------------------------------------------
/bin/		Comandos/programas binarios esenciales (cp, mv, ls, rm, etc.),
/boot/	Ficheros utilizados durante el arranque del sistema (núcleo y discos RAM)
/dev/		Dispositivos esenciales, discos duros, terminales, sonido,
		vídeo, lectores dvd/cd, etc

/etc/		Ficheros de configuración utilizados en todo el sistema y que
		son específicos del ordenador

/etc/opt/	Ficheros de configuración utilizados por programas alojados dentro
		de /opt/

/etc/X11/	Ficheros de configuración para el sistema X Window (Opcional)
/etc/sgml/	Ficheros de configuración para SGML (Opcional)
/etc/xml/	Ficheros de configuración para XML (Opcional)

/home/	Directorios de inicios de los usuarios (Opcional)
/lib/		Bibliotecas compartidas esenciales para los binarios de /bin/, /sbin/ y
		el núcleo del sistema.

/mnt/	Sistemas de ficheros montados temporalmente.
/media/	Puntos de montaje para dispositivos de medios como unidades lectoras
		de discos compactos.

/opt/		Paquetes de aplicaciones estáticas.
/proc/	Sistema de ficheros virtual que documenta sucesos y estados del
		núcleo. Contiene principalmente ficheros de texto.

/root/	Directorio de inicio del usuario root (super-usuario) (Opcional)
/sbin/	Comandos/programas binarios de administración de sistema.
/tmp/	Ficheros temporales
/srv/		Datos específicos de sitio servidos por el sistema.
/usr/		Jerarquía secundaria para datos compartidos de solo lectura (Unix system
		resources). Este directorio puede ser compartido por
		múltiples ordenadores y no debe contener datos específicos del
		ordenador que los comparte.

/usr/bin/	Comandos/programas binarios.
/usr/include/	Ficheros de inclusión estándar (cabeceras de cabecera utilizados
		para desarrollo).

/usr/lib/	Bibliotecas compartidas.
/usr/share/	Datos compartidos independientes de la arquitectura del
		sistema. Imágenes, ficheros de texto, etc.

/usr/src/	Códigos fuente (Opcional)
/usr/X11R6/Sistema X Window, versión 11, lanzamiento 6 (Opcional)
/usr/local/	Jerarquía terciaria para datos compartidos de solo lectura
		específicos del ordenador que los comparte.

/var/		Ficheros variables, como son logs, bases de datos, directorio raíz
		de servidores HTTP y FTP, colas de correo, ficheros temporales, etc.

/var/cache/	Cache da datos de aplicaciones.
/var/crash/	Depósito de información referente a caídas del sistema (Opcional)

/var/games/Datos variables de aplicaciones para juegos (Opcional)
/var/lib/	Información de estado variable. Algunos servidores como MySQL y
		PostgreSQL almacenan sus bases de datos en directorios subordinados de éste.

/var/lock/	Ficheros de bloqueo.
/var/log/	Ficheros y directorios de registro del sistemas (logs).
/var/mail/	Buzones de correo de usuarios (Opcional)
/var/opt/	Datos variables de /opt/.
/var/spool/	Colas de datos de aplicaciones.
/var/tmp/	Ficheros temporales preservados entre reinicios.

Vía: linux-es.org

Categories: ASO, FIB Tags: , ,

Apache con modulo python cgi

March 10th, 2009 No comments

Para el 3 ejercicio de DSBW había que implementar un pequeño script cgi en python.

Nunca antes había probado de usar cgi, así que he tenido que buscar las instrucciones y aquí dejo mi mini howto para linux.

Instalación

  1. Prerrequisito: tener apache instalado.
  2. Instalar libapache2-mod-python
  3. Añadir “AddHandler cgi-script .py” (sin las comillas) a la configuración cgi (/etc/apache2/sites-enable/000-default)
  4. Reiniciar apache

sudo aptitude install libapache2-mod-python
sudo gedit /etc/apache2/sites-enable/000-default
sudo /etc/init.d/apache2 restart

Primer script

En la configuración del sitio apache nos indica donde busca los cgi, en mi caso /usr/lib/cgi-bin. En el momento de escribir el código ten encuenta (2 y 3 son muy importantes):

  1. Importa el modulo cgi
  2. Lo primero que hay que imprimir es el content type “Content-type: text/html”
  3. Después una linea en blanco.
  4. Un consejo para debugar redirecciona la salida de error a la estandar,  no es aconsejable para producción.

La cabecera del script tendria que contener los siguiente:

#!/usr/bin/python
import cgi
import sys

print “Content-Type: text/html”
print
sys.stderr = sys.stdout ”’solo para debug”’

print ” Script cgi de prueba en python”

Prueba el script accediendo en tu navegador a http://localhost/cgi-bin/NOMBRE_SCRIPT,  si ha ocurrido un error lo puedes localizar en el log de apache (/var/log/apache2/error_log).

Una variable útil:

form = cgi.FieldStorage()

Inicializarla sólo una vez, contiene los valores post / get que se le pasan al script, puedes acceder a ellos de las siguientes formas:

form.getvalue(“name”)
form.getlist(“name) “‘ devuelve una lista con los valores que coinciden con la clave’”
form["name"].value ”’ igual que la primera si el campo no es una lista”‘

Mañana publicaré los archivos del ejercicio 3, antes de la entrega no por si las moscas.

Categories: DSBW, FIB, Howto Tags: , , ,

DSBW: Ejercicio 2 DTO

March 10th, 2009 1 comment

Ejercicio puntuable número 2  repaso del patrón DTO en las variantes dominio, cliente y cliente con hasmap.

El ejercicio consiste en modificar el ejercicio 1 añadiendo el patrón DTO para obtener los datos de las vistas.

Nota obtenida en el ejercicio: A

Los archivos en cuestión:

Enunciado ejercicio 2 DSBW (DTO)

Entrega ejercicio 2 DSBW

Diagramas (proyectos y códigos fuente) ejercicio 2 DSBW

Categories: DSBW, FIB Tags: ,

Error mágico => solución: deshacer + rehacer

March 9th, 2009 No comments

He perdido unas horas intentando resolver este error de compilación:

In file included from practica.h:1,
from practica.cpp:1:
ui_practica.h:48: error: la declaración de ‘LabelColor* Ui_practica::LabelColor’
LabelColor.h:4: error: cambia el significado de ‘LabelColor’ a partir de ‘class LabelColor’
ui_practica.h: In member function ‘void Ui_practica::setupUi(QWidget*)’:
ui_practica.h:170: error: expected type-specifier before ‘LabelColor’
ui_practica.h:170: error: no se puede convertir ‘int*’ a ‘LabelColor*’ en assignment
ui_practica.h:170: error: expected `;’ before ‘LabelColor’
make: *** [practica.o] Error 1

La clase LabelColor es un extend de un QLabel, este compilaba perfectamente y se podia añadir como plugin al Designer, practica es el QWidget que hace de formaulario y funcionaba perfectamente en el designer.

Al final la solución ha sido eliminar el LabelColor del formulario en el Designer (adiós signals y slots) y volverlo a poner… mágicamente funcionó!

Categories: FIB, VIG Tags: ,

DSBW: Ejercicio 1 – MVC

March 9th, 2009 No comments

Primer ejercicio puntuable de DSBW consiste en repasar y refrescar el patrón Modelo Vista Controlador, hay que crear los diagramas de secuencia de la operación venderEntrada y el diagrama de clases resultante.

La entrega tiene algunos errores, pero no los voy a corregir. En el diagrama de clases la relación butaca, entrada y sesión esta mal normalizada, seguro que hay alguno más.

Nota obtenida en el ejercicio: B

Los ficheros de interés:

Enunciado 1 DSBW (MVC)

Entrega ejercicio 1 DSBW

Diagramas (proyectos y códigos fuente) ejercicio 1 DSBW

Categories: DSBW, FIB Tags: ,

VIG – Diagrama practica 0

March 5th, 2009 No comments

Un petit diagrama de com serien les interaccions de la practica 0. El diagrama està generat amb SdEdit un programa per dissenyar diagrames de forma textual.

Diagrama VIG practica 0

El codi per generar el diagrama:

Actor:Actor
s:Slider “:QtSlider”
sp:SpinBox “:QtSpinbox”
r:QPushButton “reset:QPushButto”
l:MyQtLabel “:MyQtLabel”

Actor:s.mouSlider
s:s.valueChanged(a:int)
s:sp.setValue(a:int)
sp:sp.valueChanged(a:int)
sp:s.setValue(a)
sp:l.setRoGoB(a)
l:red = a
l:l.setColor()
Actor:sp.cambia
sp:sp.valueChanged(a:int)
Actor:r.prem
r:r.clicked()
r:l.Reset()
l:l.emit notificarReset(0)
l:sp.setValue(0)

Categories: VIG Tags: