solucion a problema de asignacion de salas

Rodrigo Fuentealba darkprox en gmail.com
Sab Oct 14 16:55:35 CLT 2006


El 14/10/06, Roberto Bonvallet<rbonvall en alumnos.inf.utfsm.cl> escribió:
> Rodrigo Fuentealba:
> > El 14/10/06, Horst H. von Brand<vonbrand en inf.utfsm.cl> escribió:
> > >Rodrigo Fuentealba <darkprox en gmail.com> wrote:
> > >> El 13/10/06, Mauricio Aburto<miruxxx en hotmail.com> escribió:
> > >> > alguien tiene alguna aproximacion a la solucion de asigancion de salas
> > >para
> > >> > horarios disponibles de profesores y alumnos, algun tipo de algoritmo o
> > >> > heuristicas para encontrar alguina solucion. de ante mano muchas
> > >gracias.
> > >
> > >> Parece un OT, pero... con bases de datos?
> > >
> > >Como lo harias?
> >
> > Usando muchas, muchas, muchas matrices tridimensionales formadas por
> > relaciones entre tablas, tablas que se relacionan con relaciones, y
> > usando tablas temporales para chequear cosas como "el curso tal tiene
> > ocupadas esas horas".
>
> Un PhB te la compra, pero yo soy ingeniero :)

¿y qué? conozco personajes que son psicólogos y programan mejor que
muchos ingenieros que conozco.

> Teniendo todas tus tablas listas, ¡aún falta el algoritmo para resolver el
> problema!

pero el algoritmo es de ordenamiento, y no veo que tengamos que usar
más de seis u ocho condicionales... Perfectamente podemos hacer esa
lógica en PL/PgSQL...

> Y aun si tuvieras una buena heurística, de todas maneras
> correría más lento si leyera los datos de una BD en vez de tenerlos en
> memoria.

ehmmm bueno, lo planteé a modo de tablas porque trabajo con bases de
datos, pero fácilmente puedes hacer en C algo como:

typedef struct {
    int codigo;
    char nombre [];
    int karma;
} profesor;

y hacer un array profesor profesores[]; y usar notaciones de ese
estilo para usar tablas en C.

> Ademas, todos sabemos que la solucion optima es usar Web2.0 + Ajax + tres capas.

je je je je... ¿te hago pebre?

Web 2.0 se basa completamente en bases de datos por el lado del
servidor, ¿cuál es la idea de decir que no y después que si?. La
última persona que dijo que Web 2.0 era del lado del cliente, no
sobrevivió al certamen... (y su código manejando recordsets del lado
del cliente no sobrevivió al botón de "disable javascript", pero
bueno, eso es otro mote).

Otra cosa, la lógica de asignación de salas, si fuera para un sistema
no debería ir por separado en cada aplicación (y si la necesitas en tu
sistema de control de horarios usando Python, en tu sistema de alumnos
usando Perl y en tu sistema de jefes de carrera usando Visual Basic,
vas a implementar el mismo algoritmo para las tres? ¿No es mejor
conservar una sola lógica y de ahi hacer las queries pertinentes a los
resultados?

AJAX es un conjunto de tecnologías lindas, muy funcionales, pero ¿para
qué complicar aún más la solución poniendo xmlhttprequest() para cada
logica que quieras? Por lo demás, se torna aún más difícil.

Una de las grandes falencias de AJAX es que tienes que invertir
montones de tiempo en compatibilidad, y es muy fácil escuchar a
perejiles decir "No, no he hecho nada de la aplicación, no es
mostrable todavía la funcionalidad, pero pu...cha que está
compatible!!!" Bien, ah?

<?php $rodrigo->windows = true; $mensaje->offtopic = true; ?>

ahora, como web developer, igual he programado en ASP.NET 2.0. El
lenguaje en sí, como lenguaje, es demasiado lindo y fácil, y puedes
agregar una dll llamada Atlas a tu contenido, y una llamada
AtlasControlToolkit, que traen montones de linduras compatibles y
todo, pero al final igual inviertes tiempo en agregarle a tu
aplicación bonituras que la hacen compleja.

<?php $rodrigo->windows = false; $mensaje->offtopic = false; ?>

Ante esta breve taza de café explicando el gran error de usar ajax
para algo tan simple,  que era totalmente off topic con relación al
thread, que continue la música.

-- 
Rodrigo Fuentealba Cartes
Desarrollador de Sistemas Web
Registered User 387639 - http://counter.li.org



Más información sobre la lista de distribución Linux