UTNianos

Versión completa: BrainStorming UTNiano: Desarrollo para el Seguidor de Carreras
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Páginas: 1 2 3 4
Primero que nada, tenemos el seguidor de carreras: Seguidor de Carreras (por si alguno no sabia)

Nuestros helpers tienen una idea para implementar, y es la siguiente:
Encontrar la mejor manera de mostrar alumnos con sus "seguidores similares"

Ante la busqueda de la mejor manera de implementarlo, queriamos consultarlo con ustedes, y hacer un desafio/brainstorming.
La idea es totalmente abierta, en cuanto a la definicion de "seguidores similares", aunque hay un par de pautas a respetar:

- Claramente, el rendimiento. Comparar plan por plan consume demasiado al servidor. Hay que encontrar la mejor manera de realizar esto con el menor consumo del servidor.
- Las comparaciones mostrarán varios resultados, y deben ser pseudo-random el ordenamiento, para no mostrar siempre a los mismos users.
- Como dijimos, la idea de "seguidores similares" es abierta. Aqui entran cuestiones como ¿Misma carrera? ¿Materias homogeneas? ¿Electivas? ¿Año de la materia (las mismas materias estan en distintas carreras en distintos años)? a tener en cuenta

Esta abierto a cualquier idea que quieran tirar, desde cosas voladas hasta certeras, estamos seguros que de aqui podra salir algo interesante.

Saludos !
Que en el hover de cada carrera que se esta cursando , haya un link a material relacionado (parciales , finales , etc)
Eso ya va a estar, pero no es el tema del topic jajajaja ;)
-Yo no haría la prueba en producción... Podrían generar un Mock bastante copado y correrlos como tests para ver el rendimiento de cada algoritmo de búsqueda (supongo que ya lo pensaron, no?).

-Con respecto a los resultado, la verdad que yo dejaría random los resultados, si la persona quiere ver quién más cursa, que se fije. Lo que se puede hacer para tener más fiabilidad es agregar a la materia el "nro de curso" (Sí, esto debería ir en Ideas y Sugerencias...) discriminando por Regional. Con esto la persona va a poder ver los integrantes del foro que cursen con él, y los de otros cursos. También se podría poner los días que cursan y el profesor.

¿A esto más o menos apuntan con el Brainstorming?.
Yo no sé si todo mundo pondría la data de su curso :/
No, la idea era como un desafio de programacion a ver a quien se le ocurria la mejor forma de encontrar "alumnos parecidos".

Todo lo demas es bienvenido obviamente.
(11-12-2011 21:39)nanuiit escribió: [ -> ]Yo no sé si todo mundo pondría la data de su curso :/

Segun entiendo de lo de Aivan al que no pone el curso se lo banea.
Ustedes ya saben que lo que yo pienso es lo que dijo Nagel =P
(11-12-2011 21:39)nanuiit escribió: [ -> ]Yo no sé si todo mundo pondría la data de su curso :/

De más seguro que no, pero es solamente una idea opcional que se le da al usuario...
Ahhhhhh okok, ¿es como un desafío entonces?. Listo...
Los similares son los que irían dando más o menos los mismos finales

O sea, capaz yo tengo 10 materias metidas pero entre esas te aprobé todas las homogéneas y no sé, no tengo SSL ni cursada

Y después otro tiene 10 materias, pero entre esas 10 tiene SSOO

Entonces esos no se parecen

Para mí, serían los que están cursando las mismas materias [no todas, sino 1+]
Y los que tienen un avance símil en aprobación de finales

Como en el Seguidor tenemos la cosa de

- Aprobadas
- Regularizadas
- Preparando final
- etc

capaz podríamos exprimir eso.
Esa seria la respuesta intuitiva pero recorda que hay que buscar formas de que no maten al servidor.
Buscar todas las materias de todos los usuarios y para colmo darle un factor random al resultado lo haria explotar.
Intentemos darle forma tecnica a la respuesta de ser posible, aunque puesto asi estaria bien tambien.

Cosas que salieron
-Alguna forma de hasheo de las materias, cual?
-Guardar un porcentaje de que tanto llevas hecho en la carrera? esto es facil, pero que dos tipos tengan un 35% hecha de la carrera no dice demasiado sobre su similitud. Aparte que lo ideal, y como dice nanuiit arriba seria no que tengan materias pasadas en comun, sino las materias actuales.
No hacen falta ninguna de estas pelotudeces.

Lo que hace falta es un coso que te diga los trits donde hay puterio.
MMMM mmmm mmmm

Un poco de info?

Que base usa esto?

Lo quieren resolver por base o por codigo??

que lenguaje usa?



Yo hice hace mucho un en c# un proceso para controlar si se duplicaban los registros de las llamadas telefonicas. Y tardaba un minuto en controlar la 300 mill llamadas contra unos 500 mil en la base.
(De un call center llegaban entre 250 mill y 350 mill llamadas diarias =P)
MySQL - PHP.
Despues pasamos algunos datos de como estan armadas las tablas (o no, depende de lo que digan nuestros consejeros de seguridad (?))
Es imposible resolverlo por MySQL solamente sin zarparse con las querys.
Ya solamente ordenar a todos los alumnos de sistemas de forma random es una query de 6 segundos, que para una pagina web que se estaria llamando montones de veces es una locura.
mmmm se podria crear un campo hash en la tabla que contiene las materias y los estados.

Supongo que tienen una tabla con los siguientes campos:

IDUsuario
IDMateria
Estado (Aprobado, preparando final, etc etc)

Entonces agregaria un campo mas:
HashMaterias (o lo que se les cante.) aca pondria un hash de IDMateria + Estado

Despues cuando buscas los usuarios que comparten las materias en mismo estado traes todos los que tienen ese hash.


mmmm habria que probarlo.

No se si esto llega a tener tan buen rendimiento...

Es lo que se me ocurre xD.

Otra cosa seria precalcular todo cada 2 hs.
Osea tener todos los usuarios que combinan con la materia...

un garcha me parece...
El problema es que es muy estricto eso. Si yo di un final más que vos ya estamos 100% distintos.

Lo ideal sería poder identificar nivel de similitud, es decir, "este usuario anda 95% parecido a vos". Es muy raro que vayas a tener a alguien que esté exactamente igual.
Páginas: 1 2 3 4
URLs de referencia