Inicio | Capturas | Foro | Documentaci�n | SVN | Feeds (RSS) | Planet | Insertar noticia

Powered by 1DayBlog and Gimp. Resoluci�n m�nima:1024x768 - Mejor Firefox! by BLuEGoD (c) 2006



�Que es AulaChat?

AulaChat es un programa basado en la arquitectura cliente/servidor; su fines prover un sistema de chat entre un profesor y el resto de la clase... (Leer m�s)

Informaci�n:

Visitantes: 12612
Estado AulaChat: Alpha
Versi�n estable: -
Versi�n beta: -

Aulachat en..

AULUSC (Asociaci�n de usuarios de Linux de la USC) (Link Art�culo)
Mancom�n (Iniciativa gallega por el software libre) (Link Art�culo)

�Como instalar AulaChat? En YouTube!!!



ABRELO click aqu�!

Bajar video (2,4M)

-Proyecto abandonado temporalmente -

(Escrito por BLuEGoD / 22-08-07 13:15) | Comentarios (0 Pon uno!)
El proyecto está suspendido indefinidamente hasta que algún desarrollador muestre interés por el mismo. La principal razón es el no uso del foro y la no colaboración de terceros en el propio proyecto. No obstante, el código hecho sigue pudiéndose descargar, y creo que puede servir y reutilizarse para muchas cosas. Utilizen los comentarios de este mismo hilo si desean más información o tienen interés en el mismo, así como colaboraciones, etc.

-Sobre las ultimas actualizaciones -

(Escrito por BLuEGoD / 23-04-07 15:30) | Comentarios (0 Pon uno!)
En estos últimos días he subido unas cuantas revisiones con cambios importantes, ya que ahora avanzo más rápido al tener programado la gran parte de lo abstracto del programa (capa baja del programa). De momento creé una segunda función para la librería SQL para retornar varios campos con varios resultados, reutilizando la otra función de la librería; se modificó por fin, la forma en que se gestionaban las peticiones al servidor web, ahora está todo mucho más estructurado y clasificado por numeración; se continúa modificando la página del administrador global para poder añadir y borrar profesores; se añade una variable al estilo variable de sesión en PHP, para que un usuario permanezca conectado al sistema mientras esa variable (una clave de 19 caracteres aleatorios), se envie a través del navegador como atributo oculto. Parece increíble lo que se puede hacer como servidor web recibiendo formularios, ya que se puede gestionar a tu antojo las peticiones prescindiendo incluso el cliente de enviar la página que quiere ver.

El TO-DO, a corto plazo es el siguiente:

Además he subido un par de screenshots nuevos en los que se ve como va quedando la interfaz de administración global y gracias a un plugin para firefox la visualización de los campos del formulario (se puede ver el elemento oculto del formulario con la variable aleatoria de sesión generada automáticamente).

Aprovecho ya que no me sacaron en portada de la forja la petición de ayuda que puse hace un tiempo (y a otros sí ¬¬) para gente interesada que pueda testear lo que hay hasta ahora de programa y postear resultados en el foro!



-Ultima revisión y.. Doxygen -

(Escrito por BLuEGoD / 19-04-07 1:34) | Comentarios (0 Pon uno!)
En el commit número 40 he corregido un par de errores en el código y además he hecho una función muy util (más que util nos ahorra trabajo) para la librería SQL, de modo que ahora además de poder retornar varios resultados en una secuencia SELECT podemos retornarlos para diferentes campos y simplemente enviando la sentencia y retornando un array tridimensional (en nuestro caso un triple puntero.. eso que no se suele ver mucho y no se suele aconsejar.. a no ser que sea necesario).

Con respecto a la última revisión (41) simplemente he comentado el código para que sea más legible por Doxygen y así generar una documentación sobre las funciones, estructuras de datos, tipos definidos, variables, etc.. del programa más clara y accesible (a través del navegador). Pronto pondré una versión seguramente en PDF en la sección documentación.

En cuanto al contenido de esta documentación, se ha omitido cualquier comentario específico o técnico de las funciones, es decir, sólo se ha generado una documentación descriptiva, en cuanto a que nos vamos a encontrar con los archivos, funciones, etc. de AulaChat todo estructurado y cada parte comentada de modo que se sepa qué hace, qué retorna o para que está cada cosa.

Esta documentación está accesible on line y la he colgado en la siguiente dirección: http://www.bluegod.net/aulachat/doxy. Esta página la mantendré actualizada cada cierto número de revisiones (proporcional al número de cambios o añadiduras significativas). Al principio de la página se puede ver de que revisión se trata :).



-Presente, futuro.. y algo más -

(Escrito por BLuEGoD / 09-04-07 21:22) | Comentarios (2)
Hoy termina el plazo del concurso, y aunque no pude cumplir con la previsión de llegar al desarrollo del módulo del chat que es el interesante, he de resumir lo hecho hasta ahora y hablaros un poco más sobre que pasará con AulaChat los siguientes días.

Antes de nada, tengo un par de buenas noticias, la instalación de AulaChat es más facil gracias a un script que he hecho esta semana santa en bash scripting... y se facilita aún más con un video disponible en YouTube y en el blog -> http://www.youtube.com/watch?v=V-IHYzbVmXo. Merece la pena hecharle un vistazo, ya que me ha quedado bastante simpático ;). Además hay disponible un PDF con una pequeña guía de usuario y de instalación en la sección documentos del blog.

En cuanto al presente, a pesar de no poder alcanzar el grado de desarrollo esperado, ya que estaba esperando a que se pudiera chatear para poder difundir por más comunidades interesadas AulaChat, he de decir que la parte abstracta del programa está practicamente terminada... Esto es el problema de C, hay que gestionar mogollón de cosas en relación con la memoria, construir tus propios Makefile, hacer tus propias librerías... etc (no como en San Java). No obstante, como el programa es un daemon, ganamos en eficiencia y en alguna cosa más. Esto es lo que tenemos hasta hoy (todo echo desde cero):

En cuanto al futuro.. Las previsiones a corto plazo, es decir, este mes y seguramente el siguiente es intentar finalizar el módulo de usuarios y el de chat.. Ya que una vez hecho esto la gente podrá ver realmente la funcionalidad de AulaChat y las ventajas de su uso, ya que el chat que es el módulo que en breve estará disponible y que seguramente sea la parte más fácil en cuanto a desarrollo (a partir de ahora todo), ya que lo abstracto es lo que hicimos hasta ahora y dentro de poco la reusabilidad de funciones y el diseño que hicimos en capas más bajas nos va permitir avanzar más, contará con diversos elementos innovadores como la inserción de caracteres específicos de matemáticas, inclusión de ficheros en la conversación, comentarios a ficheros/conversaciones, posibilidad de grabar todo esto, etc...

Y lo que tengo previsto despues de este mes o par de meses es sacar ya una versión beta, con unas funcionalidades básicas para que la gente pueda testear algo más que lo básico y verlo funcionar. Además intentaré encontrar más developers, ya que mi opinión personal es que las colaboraciones y desarrollo entre varias personas es no solo mejor en cuanto a que se avanza más rápido, si no que se cuenta con más ideas, distintas soluciones, etc..

Finalmente, desear a todos los participantes suerte en el concurso y animarles a continuar con el desarrollo y lograr algo más interesante aún de lo que no me cabe duda ya hemos logrado :-).



-Semana santa... y leyes de murphy -

(Escrito por BLuEGoD / 09-04-07 0:39) | Comentarios (0 Pon uno!)
Finalmente no he podido llegar a lo esperado y empezar con el desarrollo del chat entre los usuarios conectados a AulaChat... Debido a la famosa ley de murphy de si algo sale mal.. puede salir peor, pasé la semana santa en un pueblo donde mi equipamiento era un pentium 200 con un slackware.. Por lo que a pesar de las proezas que se puedan realizar con el Linx, sin navegador gráfico no pude continuar (muy a mi pesar, ya que sería cuando más tiempo tendría) con el desarrollo habitual del programa.

No obstante, y con equipado con lo ultimo en hardware pude escribir un par de documentos más sobre AulaChat y además he comentado algo más el código (sobre todo las librerías .h para ver que hace cada función).

En cuanto al código he subsanado algún bug difícil de encontrar y he subido un par de commits, además, con el último fallo que había encontrado ya reparado. Sobre este fallo he de decir que me fué más facil encontrarlo imprimiendo en pantalla los valores de la memoria de los punteros que utilizando el gdb (gnu debugger), ya que con tanto fichero y tal es un poco coñazo utilizarlo.

Aunque no pude tener un chat on line como quería para que todos lo pudiesen probar sin ni siquiera instalar AulaChat, y ya se acaba el periodo de desarrollo, continuaré (de momento solo, aunque después de los siguientes exámenes intentaré que se una más gente al proyecto) escribiendo código hasta conseguir que funcionen las colas de mensajes y por lo tanto el chat entre usuarios, que es la siguiente fase y la esencial del programa.

Finalmente mañana postearé alguna buena noticia más a pesar de quedarnos así en el desarrollo; por cierto! he subido tres capturas del programa funcionando desde el cliente web (en este caso firefox), aunque no tengan mucho contenido, esa parte funciona perfectamente (la correspondiente a la identificación) y a partir de ahora esa parte será aprovechar las funciones creadas y escribir código en html, alguna hoja de estilo y poco más.



-Problema con una función del módulo BD -

(Escrito por BLuEGoD / 30-03-07 18:39) | Comentarios (0 Pon uno!)
Ya que no escribo desde que tuve el examen, he de decir que tras concluir tal evento inoportuno, he continuado programando algo más y por supuesto he subido un par de versiones al SVN. Antes de entrar en materia decir que he puesto un par de links a las páginas de AULUSC (Asociación de usuarios de Linux de la USC) y Mancomún, que han hablado de AulaChat en los artículos también linkados.

Actualmente voy a subir (en cuanto funcione el SVN ya que debe estar caído y no me permitió hacer el commit) una versión en la que hay un error en la función que se usa para enviar y recibir datos con la base de datos (BD) MySQL.

Esta función había sido testeada para enviar y para recibir pero para esto último sólo se contemplaban 2 casos (se comprueba que la consulta ha sido efectuada, y si además hay contenido de retorno), pero ahora cuando nos hace falta recoger esos datos me he dado cuenta que la función estaba mal implementada.. Tras googlear durante horas (por supuesto buscando en inglés) no encontré nada que me arreglase el problema de recoger y almacenar varios datos de las filas recibidas de manera sutil.. Así que se me ocurrió lo más trivial que es almacenarlo en un doble array dinámico.

Por supuesto aún no llegué al error,que no es más que no dejarme recoger los datos fuera de esta función (aquí se prescinde de la memoria compartida ya que no es necesaria), esto lo pude comprobar haciendo un par de impresiones en la consola con los valores de la memoria apuntada fuera y dentro de la función y así vi cual era el problema. Como curiosidad he subido esta versión modificada al SVN de la forja, en breve estará corregido.



-Breve parada -

(Escrito por BLuEGoD / 14-03-07 18:24) | Comentarios (0 Pon uno!)

Debido a que la semana que viene me han puesto un examen.. He deicido suspender la actividad por falta de tiempo, sintiéndolo mucho ya que el ritmo de desarrollo no es el deseado y aún queda mucho por hacer.

No obstante la memoria compartida ya funciona perfectamente (es lo ultimo que he comprobado) Y después de esto nos pondremos con una interfaz de administración para gestión de profesores, otra para la de usuarios y finalmente el chat en cuestión...

Lo más difícil, esperando poder llegar a esa parte, se encuentra en el sistema de chat, en el cual volveremos a usar IPC para la gestión de colas de mensajes entre procesos, y que además tendré que pensar métodos para resolver las caídas de los usuarios por tiempo agotado, etc.. Por supuesto aqui no hay respuestas a PING como se haría en un servidor de IRC, aunque aún no he pensado como resolverlo en principio supongo que con una estructura de tiempo como utilizamos para POST.



-De nuevo en marcha.. -

(Escrito por BLuEGoD / 05-03-07 17:08) | Comentarios (0 Pon uno!)

Tras los exámenes he vuelto al chollo y he decidido escribir algo sobre el estado del proyecto en el blog.. Siento no haber puesto nada antes pero odio el egocentrismos que los blogs conllevan aunque éste sólo sea sobre el código de un programa :S

He codificado parte de la sección nueva de usuarios. Esta se encuentra en los ficheros user.* y no es más que un sistema de identificación para los alumnos/profesores. Por supuesto esto parece facil hasta que me di cuenta que es necesario proveer un sistema de gestión de memoria compartida IPC para comunicarse entre los procesos padre e hijo y compartir estructuras de datos.. Además de que el módulo está muy relacionado con otros módulos como el MySQL y Web obviamente.

Cuando finalice esta parte (espero poder finalizarla si no se complica demasiado), empezaré con la parte del chat.. Que por supuesto requiere de otro tipo de IPC diferente basado en una compartición de memoria y gestión de colas de mensajes. Por supuesto todo esto ignorando el apartado de señales (signals) que más que difícil puede resultar tedioso, lo evito suponiendo que el chat no será muy concurrido, pues las señales evitarían ciertos problemas de sincronización que ahora no nos conciernen hasta la versión 0.017 xD

Aún no he subido la estructura de la BD, con lo que los que bajeis el código no podreis probar esa parte, no obstante lo haré en cuanto pueda ya que como era de suponer no se parece mucho a la que adjunté en la documentación y está cambiando según necesidades; intentaré subir algo para la semana ya que sin ella no se puede probar correctamente el programa.



-Vacaciones hasta finales de febrero... -

(Escrito por BLuEGoD / 06-01-07 0:14) | Comentarios (0 Pon uno!)
Debido a que no he estudiado nada para la carrera y tengo ahora examenes (no es por vacaciones como veis...) , he decidido suspender mi actividad en el proyecto para al menos intentar aprobar algo!

Despues de esa pausa tengo un mes para finalizar el proyecto.. o intentarlo, ya que no es tarea facil hacer todo esto yo solo y menos con exámenes de por medio.

Básicamente falta hacer un chat, un sistema de mensajeria y un sistema de compartición de ficheros entre otras cosas puaf casi nada.. En menudo proyecto no me metí! jaja!

Como lo que hice hasta ahora no es poco, aquí lo dejo, como si se tratase de un resumen de lo hecho en un programa de bricomanía:

...Y todo esto desde cero.. en fín, que aunque no son 5mb de código leñe, he estado horas por ejemplo pensando como gestionar bien un POST request! Saludos y hasta pronto..

P.D. Podeis bajar lo que hay en el SVN y comprobar bugs.. que no serán pocos ;-)



-Trabajando en otro módulo -

(Escrito por BLuEGoD / 28-12-06 20:15) | Comentarios (0 Pon uno!)
Actualmente me encuentro trabajando en un módulo que actúa como un web server, sí.. estoy haciendo una especie de servidor web :). Como contrapartida lo estoy programando en un viejo pentium 200 (eso sí.. de marca dell y con un par de discos SCSI) que tenía en el pueblo en el que paso las vacaciones navideñas.. En cuanto pueda lo subo al SVN. Feliz navidad!

-Código de interacción con la configuración -

(Escrito por BLuEGoD / 19-12-06 17:47) | Comentarios (0 Pon uno!)
Se ha finalizado esta parte, el programa ya puede leer un fichero de configuración en XML y además almacena los datos en una estructura interna. También ya podemos conectarnos a MySQL, al incluir la librería de la misma (mysql.h) y la librería dinámica correspondiente a mysqlclient. De hecho el proceso de conexión se hace transfiriendo los datos del host/usuario/pass que guardamos en la struct a una función almacenada en msql.c, aquí es donde conectamos a MySQL y vemos que todo funciona. En breve subiré los cambios al SVN.

-Estado actual del programa... -

(Escrito por BLuEGoD / 29-11-06 15:42) | Comentarios (0 Pon uno!)
Actualmente (y ya se puede ver un poquillo de código) en el SVN se ha escrito un poco de código, es el correspondiente a la lectura de un fichero de configuración en el que entre otras cosas está la configuración del sistema de BD MySQL, es decir, usuario, contraseña, host y puerto al qué conectarse. El fichero de configuración está escrito en XML, y en el se encuentra toda la configuración básica que necesita el programa para iniciarse correctamente antes de cargar otro tipo de configuración a través de MySQL. Además he añadido en la sección "doc" del SVN un documento muy interesante correspondiente a la nomenclatura que se va utilizar durante el desarrollo del programa.

-Actualización de la web -

(Escrito por BLuEGoD / 28-11-06 0:33) | Comentarios (0 Pon uno!)
Bueno, pues he actualizado el CSS de la web, ya que ni a mi ni a la gente le gustaba el diseño de la misma.. Eso pasa por hacer yo mismo el código de un blog, me centré en el diseño en sí, la BD y la programación del sistema de feeds y no en el diseño. Espero os guste más el nuevo diseño (no creo que lo cambie!) No me llevó casi nada hacer el blog ni cambiar el diseño, pero tp dispongo de tiempo para nada ultimamente :(.

-Logo y estructura de la BD -

(Escrito por BLuEGoD / 23-11-06 19:55) | Comentarios (2)
Como podéis observar en el blog, he incluido un logotipo del programa a la derecha, agradecería cualquier comentario, ya que si es muy feo lo cambiaré por otro.. jeje a todo esto "powered by gimp". También he añadido una nueva sección Documentos que linka con la respectiva de la forja, en la que he subido un documento con el modelo entidad/relación de la BD de AulaChat, algo verde todavía, pero da una buena idea del programa :)

-Documentación... -

(Escrito por BLuEGoD / 21-11-06 18:15) | Comentarios (0 Pon uno!)
En breve pondré una nueva sección de documentos en la que muy pronto subiré un primer esquema de la estructura de la base de datos de AulaChat, aunque muy verde todavía, nos da una orientación de como va estar estructurada posteriormente. Debido a la falta de tiempo he de decir que el proyecto llevará un curso lento, desgraciadamente :(. Más noticias muy pronto eso sí :)

-¿Como será el cliente? -

(Escrito por BLuEGoD / 04-11-06 14:45) | Comentarios (0 Pon uno!)
El programa servidor gestionará las conexiones, en cuanto al cliente estoy estudiando que pueda ser un navegador en vez de un cliente tipo telnet.. Para esto sería necesario que el programa servidor actuase como servidor web, y por lo tanto, el programa cliente estaría implícitamente incluido en el servidor. Debido a que tengo alguna experiencia en sockets en C, la elaboración de un servidor web simple no es muy complicada; el problema vendría como autogenerar la web, la modificación del contenido de la misma desde el servidor, qué tipo de webs podría soportar (y si habría algún problema con esto..) un pequeño servidor web... etc. Ideas o sugerencias serán bienvenidas...

-Sobre AulaChat -

(Escrito por BLuEGoD / 04-11-06 14:14) | Comentarios (215)
AulaChat es un programa basado en la arquitectura cliente/servidor; su fín es proveer un sistema de chat entre un profesor y el resto de la clase además de un sistema de almacén de mensajes, posibilidad de descarga de archivos colgados por el profesor y accesibles por los alumnos, buzón de mensajes personal, identificación para cada tipo de usuario con diferentes opciones de administración... Además la estructura sería tal que podrían usar el mismo servidor diferentes profesores, es decir, gestionar diversas clases. También incorporará algún elemento innovador como un sistema de impartición de clases a partir de archivos XML con los datos ya introducidos (Se incorporaría un retardo para dar tiempo a leer), un sistema cache para introducir preguntas o cuestiones... Todo esto en principio, ya que estoy yo solo en esto si se puede chatear ya doi gracias ;)

-Inauguración de la web... -

(Escrito por BLuEGoD / 29-10-06 11:58) | Comentarios (5)
AulaChat Blog se inaugura con una web hecha en un par de horas desde cero en PHP.. Sé que acabaría antes registrandome en WordPress, blogger, etc.. Pero he de decir que éste es mucho más simple, más facil y rápido de usar que cualquiera, ya que se limita a un par de cosas únicamente.. Para más información usar la web de 1dayBlog! que he creado como curiosidad.