I’m working in my final degree project, an interactive web document commenting system that allows people to annotate comments directly onto document elements like words at paragraphs and images.

My mentor forced me to use Java as the primary language for the project. In these days choosing a J2EE Framework sucks. If you’re a fashion-victim/fancy-boy, you know, you’ll end using a combination of Struts + Spring + Hibernate + AnyFlavourOfYourFavoriteJavaTrendyWebTechnology and obviously a gazillion of XML config files. Do you really need all of this stuff for little projects with just two SQL queries and three templates? It was driving me crazy for about two weeks. I’m not underestimating Structs or Hibernate or whatever, I’m saying it doesn’t fit for small projects.

You must be thinking I’m using a single approach with some Servlets and JSP files, and also you can be wrong. I don’t like how huge struts framework is, but I’m a fan of trendy-best-practices ;-). I love the way Google’s App Engine, Ruby on Rails and Django enforce you to get things done. I’ve been hacking with the Java Reflection API, Tomcat and other stuff for a while, now I can tell you I have a little alpha-baby called Bazooka.

Bazooka is a high-level convention-over-configuration J2EE Web framework that encourages rapid development and clean, pragmatic design. (Is it possible in Java World?)

Currently Bazooka is under development, in its 0.2614972128 version (aka Meissel-Mertens [1]) it features:

  • MVC paradigm
  • RESTful
  • Ehcache support
  • ActiveObjects ORM (à la ActiveRecord). It supports Derby, HSQLDB, SQL Server, MySQL, Oracle and PostgreSQL.
  • Pure Java HTML Forms (with validation…)
  • Templates with layouts (allowing you to include a view into a general layout)
  • Authentication and user-role helpers
  • JUnit and log4j integration
  • A simple app admin console to manage database migrations and cache status.
  • NO XML configuration files!

For now I’m the solo user-developer, but I plan to release it under a free software license. When? I don’t know, but keep checking this blog. In the next blog-post I’ll show you how easy is to develop a simple web application with my little Bazooka baby }:-).

[1] One day I’ll explain how I assign version numbers.

Desde hace ya unas semanas tengo proyecto fin de carrera, su título: Herramienta colaborativa de tutorización de contenidos para la web de una asignatura. Aunque creo que no es el título definitivo, ya es lo suficientemente confuso.

Estos días estoy empezando, ya en serio, con el Documento de Objetivos del Proyecto, en el que debo determinar, entre otras cosas, el objetivo, el alcance del proyecto y las tecnologías a usar.

La idea, o al menos así lo he interpretado yo hasta ahora, es facilitar una herramienta que conecte al publisher (a.k.a. editor) de un documento web con los lectores del mismo. Permitiendo la interacción, de editores y lectores, mediante comentarios y preguntas que podrán ser formuladas sobre elementos concretos del documento.

Algunos procesadores de texto online como Zoho Writer o Google Docs ya facilitan la posibilidad de añadir comentarios y notas. Pero para ello es necesario tener permiso para editar el documento. Lo que se pretende es que el publisher sea el único que pueda modificar el documento, y los lectores puedan añadir comentarios y preguntas al documento una vez publicado. La conversación, generada a través de los comentarios, permitirá la corrección de posibles errores así como la posible incorporación de información recomendada por los lectores.

Como ejemplos, y omitiendo muchos detalles, podríamos tener:

  • Una pregunta sobre las 5 últimas palabras de la segunda línea de séptimo párrafo del documento
  • Un comentario sobre la celda situada en la fila 3 y la columna 4 de la primera tabla del documento
  • Otro comentario sobre la cuarta imagen del documento

Entre las tecnologías a usar, ahora mismo cuento con las siguientes:


* Puede variar según requisitos.
** Garantizar la persistencia, en un principio, puede resultar más costoso, en tiempo, con Hibernate que sin él.

Algunas de ellas están impuestas, otras han sido elegidas por mi, aunque viéndose condicionadas por las imposiciones.

Contestando a mis dudas iniciales sobre el proyecto:

  • Me ciño a la propuesta de un profesor? De una empresa? Propongo mi propio proyecto? Propuesta de un profesor.
  • Aplicación de escritorio? RIA? RIA!
  • Java? Python? PHP? Java :-(
  • Oracle? [Postgre|My]SQL? Pendiente de requisitos.
  • Software libre? Código abierto? Software privativo? Tengo que leerme la normativa de proyectos y ver que se puede hacer con este delicado tema. Aunque al menos la mayoría de las herramientas que use serán libres.
  • Posible público potencial? Cubrir expediente? Dependerá también de la normativa.

De momento sólo estoy planteando el objetivo principal. Si tienes dudas o sugerencias, te agradecería que las plantearas a través de los comentarios de esta entrada. Gracias :-).



About Raúl

Raúl Ochoa, a spaniard working for Tuenti in Madrid, Spain. More about me.

Subscribe to the feed

If you want to receive a notification when I update the website, you only have to add the feed to your reader, or submit your email address and I'll let you know.

Twitter

Raúl's Twitter: En Valdeverdeja te encuentras un Camaro como un 575M :-O http://t.co/uD3ojG75 2 hrs ago

Categories