¿Qué es JavaMexico 2.0?
Estamos en proceso de planeación para un nuevo sistema para manejar este sitio. Será un proyecto obviamente hecho en Java, será software libre para que otras comunidades lo puedan utilizar y adaptar a sus necesidades, y será hecho por miembros de esta comunidad.
Para poder empezar, aparte de la planeación de base de datos (que ya tenemos como guía la base de datos actual, a fin de cuentas), necesitamos definir algunas cosas:
- Un nombre para el proyecto (se puede quedar como JavaMéxico o se puede llamar otra cosa, porque esto va a ser una aplicación que se pueda usar para otras cosas con algunas modificaciones)
- Especificación detallada. Aunque podemos empezar simplemente con clonar la funcionalidad actual, creo que es mejor que aprovechemos para agregar algunas características que pueden ser muy útiles.
- Tecnologías. Donde creo que nos vamos a estar un buen rato, decidiendo el framework web a usar, el ORM, etc etc.
- Plan de migración de datos. Porque la base de datos seguramente no va a quedar igual que la actual, tendremos que migrar los datos al nuevo sistema.
- Plan de releases. Tal vez no tengamos que terminar todo lo que se defina inicialmente para poder salir al aire sino que se puedan hacer releases previos. Pero como mínimo se tiene que tener la funcionalidad actual para poder migrar datos y ya no tener que regresar al sistema actual.
- Integrantes, y la manera en que vamos a trabajar sobre el proyecto.
El repositorio ya se decidió: el proyecto estará hospedado en Google Code. Para lo demás, pues creo que iremos definiendo las cosas aquí mismo. La idea es que este proyecto sirva también como referencia para las dudas que mucha gente viene a preguntar aquí y además que sirva como ejemplo de lo que una comunidad puede lograr cuando se lo propone.
- Inicie sesión o regístrese para enviar comentarios
Lugar de discusión del proyecto.
También estaría interesante definir el lugar donde discutiremos el proyecto, quizá podamos abrir una nueva sección de los foros dedicada a este proyecto ya que vamos a ver varios temas.
¿Qué opinan?
De acuerdo
para poder seguir aquí mismo, tener una sección dedicada a esto.
Interesante
Pero, tengo una duda. Porqué no pusieron este mensaje como un post en la página principal? Aquí como que está "escondido". De suerte yo lo ví :P
Sale y vale
Byte
top secret
es que se trata de un proyecto ultrasecreto... ahora que lo descubriste, en cualquier momento estaran agentes tocando a tu puerta.
No, pero vamos poner una seccion especial para esto; aunque vamos a aceptar sugerencias de los usuarios del sitio, no vamos a poder darle gusto a todos, pero iremos informando del progreso y podremos llevar algunas discusiones tecnicas de manera publica en esa seccion del foro. Creo que sera interesante para todos poder ver el progreso de un proyecto real, e incluso para los que ya han visto algo similar, pues ver el progreso y la interaccion de un equipo geograficamente disperso realizando un proyecto de software libre.
Discusión
Yo creo que como en este momento lo que se pretende es crear discusión sobre como será el proyecto debe ir aquí en los foros. Una vez que tengamos definido lo principal ya lo anunciamos en la página principal :-)
Le vas a entrar o qué Laliux?
Ahhh Oohhh..
Bien bien,
Pues si hay chance, seguro que le entro. Por lo menos para echarles porras! jajaja
Quizás alguna que otra ideo-ta, quizás algún mal consejo, quizás un poco de código..
"perhaps, perhaps, perhaps..." :P
En fin, por aquí los sigo leyendo...
Sale y vale
Byte
Nueva funcionalidad
Yo lo que quiero meter de nueva funcionalidad es principalmente algo como una mezcla entre la mecánica de Slashdot (moderación de los comentarios) y la de StackOverflow (dar votos positivos o negativos a los comentarios y además también a los foros). Una moderación positiva a los comentarios de un usuario le da reputación positiva a ese usuario, al igual que moderación positiva a lo que ponga en un foro. Tal vez los blogs no requieran moderación, o en todo caso podríamos ver la posibilidad de dar moderación positiva pero no negativa a los blogs (aunque si permitimos moderación positiva, lo justo es permitir moderación negativa).
+1
+1
Anotenme al proyecto, haré lo que pueda en mis ratos libres...
Lo que a mi me gustaría tomar de stackoverflow es la reputación (por niveles) a cada usuario en base a sus puntos (basados en comentarios en el sitio y votos que tenga)
En cuanto al framework web yo propongo tapestry5
T5
No ps yo también propongo Tapestry 5 :)
Lo de StackOverflow de la reputación de usuarios basada en los votos que obtiene creo que estaría muy bueno. Que por cierto para evitar trolls lo que hacen es que cualquiera puede dar un voto bueno, pero para dar un voto malo tienes ya que tener cierta reputación; así si eres un troll y nadie te ha dado suficientes votos buenos pues no vas a poder estar dando votos malos a todo.
Las ventajas que tendríamos
Las ventajas que tendríamos con T5 frente a otros frameworks web es la de programar por componentes y la velocidad de programación (En un rato que tenga, publico un post de cómo trabajar con un plugin que hice de T5 para Netbeans)
En cuanto a tecnologías, creo que independiente al framework web que utilicemos es buena opción maven para no pelearnos con qué IDE utilizar
- Maven 2.0
Apuntenme
Pues esta super chida la idea y pues me gustaría entrarle y apoyar en lo que se pueda.
y Si... tapestry 5 estaría bien.
Saludos
mas descripción?
Pues a mí tambien me gustaria participar en lo que pueda, no conozco ninguna de las tecnologias que mencionaron pero pues igual y se aprenden, nunca estan de más.
En donde si me queda algo de duda es, será un CMS orientado a que? a sitios para comunidades como esta?, para blogueros?, para creación de paginas personales?. Soportará plugins?
sobres
poco a poco
El que mucho abarca poco aprieta... si nos disponemos a hacer un CMS que haga de todo, no vamos a acabar nunca. Creo que lo primero sera dejar la funcionalidad basica: foros y blogs, con lo de las votaciones. Luego podremos dejar espacio para pagina personal y veremos que mas. La idea efectivamente es tener un sistema orientado a comunidades como esta.
Tap5
Yo tampoco conozco Tapestry 5 a fondo, solo tengo el conocimiento de los artículos que escribió ezamudio por aquí, pero apoyo la propuesta, hagamos JM2.0 en Tap5!
Me gustaría más diseñar algoritmos de "reputación" basados en varios factores, es decir que todos puedan votar pero que el voto de cada usuario tenga un valor calculado en base a su reputación, que a su vez se calcularía en base a factores como:
De esta manera los usuarios nuevos también podrían votar lo que quieran, pero tendrían un impacto menor en la votación y los que tienen ya buena reputación tendrían un peso mayor en sus votos, el trolleo no afectaría sustancialmente con este esquema. Es más o menos como el "karma" que diseñó Ricardo Galli en meneame.net.
Diseño
Bueno y entonces... cómo empezamos? Yo por lo general comienzo con el diseño de base de datos, pero sé que hay quienes prefieren empezar con los objetos de entidades y de ahí generar el esquema de base de datos.
Para ORM vamos a usar Hibernate o exploramos alguna otra opción como Cayenne, TopLink, iBatis...?
Voto por el diseño de BD
Yo también comienzo con la BD. Bueno... una vez que se tenga aterrizado que se desea hacer hago el diseño de la BD y ya despues pues los objetos y cosas así.
Voto por Hibernate... no lo conozco mucho, pero sirve y aprendo a utilizarlo
Sobre las votaciones... pues esta bien lo que propone bnk. Asi se da peso dependiendo de lo que el usuario haya dicho/preguntado/respondido.
Estaría bien tener un ranking como en javaranch :P Se podría comenzar como un troll y terminar como gandalf jajaja bueno algo asi :P
mailing list?
donde hospedaran el proyecto no cuentan con servicio de mailing list?, a mi me parece mas adecuado que en el foro.
Tambien estoy de acuerdo con hibernate. Yo en lo personal empiezo con el modelo de entidades y de ahi sale el esquema de la base de datos.
Para empezar yo creo que javier deberia postear al menos el esquema o entidades que usa en esta version de javamexico para partir de ahi.
sobres
mailing list
El proyecto está hospedado en Google Code, no sé si cuentan con un mailing list pero en todo caso ese será un mecanismo de comunicación interno para los que estén participando directamente como committers; la discusión decidimos publicarla aquí para enterar a toda la comunidad.
Apache cayenne
Le di un rapidisimo ojo al tutorial de cayenne
- Por lo que veo, las ventajas más evidentes de cayenne son la integración fácil con tapestry por medio del proy tap-cayenne.
- Parece que cayenne tiene una GUI para generar código (Yo preferirìa utilizar las anotaciones de Hibernate en vez de una herramienta que genere còdigo)
- Las deventajas evidentes son entender los detalles finos del ORM
- Tiene casi las mismas caracterìsticas que hibernate aunque utilizadas de diferente forma... igual voto por hibernate
-1 Chile rojo
+1 Hibernate, sobre JPA ?
Mapa de funcionalidades
Yo creo que antes del diseño de la BD debemos hacer un mapa de funcionalidades, es decir acomodar a manera de lista lo que va a tener el portal, con esto también delimitamos el alcance inicial que queremos abordar, y nos va a dar una idea de lo que tenemos que considerar para el diseño.
Es verdad, comenzaré a extraer eso.
Ya hay un Google Group para jM que nunca hemos ocupado, en caso de que no nos acomode del todo la nueva sección del foro podríamos ocuparlo:
------
Sobre el ORM... ¿Sí es lo mejor que ocupemos uno? Porque ya no consideramos ni discutimos la posibilidad de que sea más conveniente ocupar por ejemplo Spring-JDBC (aunque no sea para programadores de verdad), sé que será un desarrollo pequeño pero también tenemos la encomienda de demostrar al mundo (ay si) que Java no es lento, el rendimiento no se verá afectado con el uso de un ORM?
ORM
Yo no me opongo a usar Spring-JDBC y algunos RowMappers; en mi opinión los ORM son muy útiles cuando tienes que manejar algunas transacciones complejas y no quieres complicar demasiado tu código, o si necesitas hacer consultas dinámicas (uno de los fuertes de Hibernate es el HQL y los Criterion etc). Creo que entonces según veamos los requerimientos podemos determinar si es necesario realmente un ORM o sobra.
Aclaración
Solo quiero aclarar que no estoy en contra de usar un ORM, solamente quería que no lo pasemos por alto en la discusión, hasta ahorita la balanza se ha inclinado más hacia utilizar Hibernate :-)
otro framework
y ya que metieron a colacion spring-jdbc, que tal les parece spring web mvc, yo una vez lo vi de rapidito y se me hizo complicadón, o tal vez fue que no lo supe usar, ustedes que opinan?
y con el orm no creo que sea lento, en mi antigua chamba hizimos un sistema con jboss y le agregamos jsp para la parte web, y apesar de los mas de 500 mil registros con sus 8 relaciones, nunca note que se viera lento, solo al cargar la pagina con algunos 500 de ellos.
sobres
Suena bastante atractivo
Suena bastante atractivo este proyecto, y si en algo puedo hechar la mano estoy dispuesto, aunque igual, no he trabajado con muchas de las herramientas que mencionan.
perense, perense...
Que no nos ganen la emoción, las ganas y el entusiasmo :P
Veo que están hablando ya de ORM, Toplink, Hibernate, Tapestry, JPA, Spring Web, bla,bla, bla..
Más, no hemos llegado aún al punto de tener 100% claro qué es lo que va a hacer el sistema, ¿o si? que características debe tener y que funcionalidad debe cumplir.
No han escuchado hablar de algo que se llama ¿Análisis de Requerimientos?. jeje.
Bueno, sugiero dediquemos un poco de tiempo a pensarle bien que queremos. Vamos al menos justificando porqué la necesidad de desarrollar un nuevo sistemita, ¿nop? Si no se justifica, pues para que le hacemos al cuento.
@benek, supongo que eres el indicado:
¿Cuál es la situación actual? ¿Qué tiene tu sistema? ¿Qué no te gusta? ¿Qué le falta? ¿Qué quisieras tener? ¿Porqué estás interesado en tener un nuevo sistema? Evidentemente, muchas de estas preguntas ya se comentaron en algunos posts, sólo hay que dejarlo bien planchadito.
Bueno, empiezo con mis sugerencias.
Sugiero se arme un primer documento en donde @benek responda estas preguntas y algunas otras que no se me ocurrieron en este momento, claro. Este primer documento y todos los demás que vayan saliendo pintan para que sean creados en Google Docs. ¿no? Todos los vemos y en su caso, le escribimos/editamos.
En fin, aquí sigo...
De acuerdo con laliux
Hola,
Completamente de acuerdo con laliux.
Primero se debe definir los objetivos del sistema y la funcionalidad requerida para cumplir estos objetivos.
¿Que es lo que le hace falta al software del foro que motive cambiarlo?
¿No hay otro producto que cubra las necesidades?
¿Cual es la funcionalidad que se busca?
¿La funcionalidad de la "reputacion" se puede agregar modificando el software actual?
Con gusto los apoyo en este esfuerzo pero antes de tirar una linea de codigo y de pensar en frameworks y librerias debe quedar claro que es lo que se va a hacer, y despues de esto se podra pensar en base a los requerimientos cual es la tecnologia mas adecuada.
Saludos
Aclaraciones
Alguna vez han leído o escuchado algo acerca de que muchos proyectos de software libre nacen de la simple curiosidad o necesidad de un programador? Y de ahí crecen a ser algo útil para mucha gente.
Incluso para los que no participen directamente, puede servir para aprender algunas cosas; tenemos la intención de continuar algunas discusiones en cuanto al proyecto de forma pública para que toda la comunidad pueda darle seguimiento y saber qué está pasando con el desarrollo. Por razones de logística habrá que limitar la participación a quienes tengan algo de experiencia en distintas áreas pero ya iremos resolviendo algunos problemas conforme surjan.
El objetivo final es continuar con este sitio pero ya sabiendo que debajo del cofre reside una aplicación en Java, hecha por miembros de la comunidad, para esta comunidad y cualquier otra que quiera sacarle provecho. Habrá a quienes no les importe si el sitio está hecho en Java o en Ruby o en C++ o en Python o en Go, pero algunos creemos que es mejor seguir esa filosofía de "eat our own dog food". No tenemos la intención de afectar la funcionalidad actual, ni bajar el sitio durante el tiempo que se haga el desarrollo ni nada por el estilo. Para los que vienen a consultar información, exponer dudas, participar en foros, blogs, etc todo tiene que seguir igual; una parte del proyecto muy importante será migrar los datos a la nueva aplicación.
Me gusta como suena lo que
Me gusta como suena lo que comenta ezamudio...
Excelente idea, y estoy
Excelente idea, y estoy dispuesto a colaborar, cuenten conmigo =)
Re:
Exacto! Precisamente para cubrir eso mencioné lo del Mapa de Funcionalidades :-)
Con respecto a la BD actual, veré como exportarla a manera de que alguna herramienta nos pueda generar un DER.
Google Wave
¿Alguno de ustedes tiene Google Wave?
Hemos descubierto ezamudio y yo que esta herramienta puede servirnos de mucho en la comunicación entre los que participaremos en este proyecto, así que estaría bien comenzarnos a agregar o si algunos no tienen comenzar a invitarnos (en cuanto nos lleguen invitaciones) para que nos comuniquemos allá.
Si alguien ya tiene páseme su cuenta por mensaje privado pf!
Saludos.
Polls
El post de willyxoft me trajo la idea de que también deberíamos considerar el sistema de encuestas que ya tiene este sitio, además de anexarle funcionalidad para que sea posible visualizar los resultados a manera de gráficas.
Que buen proyecto se tienen
Que buen proyecto se tienen entre manos la verdad !!!
De antemano los felicito, y pues no está de mas comenzar con lo primero no!??
Primero hay que aterrizar bien la idea para saber luego que hacer y cómo hacerlo; de otra manera va a haber muchos tropiezos durante la elaboración.
Mas vale invertirle un buen tiempo al Análisis de los requerimientos para tener una buena planeación que permita un buen diseño; eso del PSP se pega jajaja.
Ánimo, yo me mantengo desde la barrera aprendiendo como se le pasan los capotazos al toro !!
Si se puede ayudar o aportar algo lo haremos !!
Uno mas
Cuenten con mi participación, Yo he trabajado con hibernate, jdbc, spring, mvc, jsf, extjs, un poco de free marker y jasper entre otros y me parece que, independientemente de lo que se vaya a usar, debe quedar bien aterrizado lo que se pretende lograr, unos requisitos iniciales para corto plazo, visualizar lo que se quiere lograr a mediano plazo, digamos uno 2 años y cual es la espectativa a largo plazo (ademas de que sea libre y los demas lo puedan usar). Es importante tomar en cuenta que para que sea atractivo a ojos de otros usuarios que deseen usarlo, este sistema debe ser atractivo en casos como: facilidad de instalacion, documentacion clara y objetiva, y facilidad de uso y algunos demos. Si va a ser 2.0, tiene que se una web bastante dinámica, si es posible, sería bueno visualizar una web con portlets o mashlets (widgets) -> esa es la tendencia y ademas la intercomunicacion con redes sociales y otras del tipo 2.0. Quizá usar el single sign on con el open id
Re: Uno más
Perfecto, tienes cuenta de Google Wave?
Si no, envíame tu gmail por MP para enviarte invitación.
listo es wdonet
wdonet@googlewave.com
Interesante
Hola, acabo de leer sus comentarios sobre el proyecto y esta interesante.
La verdad, hasta este momento tengo desconocimiento total sobre las herramientas que mencionan (a excepción de lo básico relacionado con java escritorio y algo de jsp). lo que me motiva a investigar al respecto.
Me resulto muy importante lo que mencionaba "laliux" en el punto de aterrizar bien la idea, de lo que se tiene y lo que se quiere obtener, para poder descomponer el problema en módulos mas concretos y así administrar mejor el desarrollo del proyecto.
En lo que pueda ayudar, soy materia disponible.
Saludos.
- Sobre lo escrito por Ezamundio (respecto a los comentarios), es buena idea.
Simplemente genial
Hola, yo me apunto como no, solo que se lo basico en java pero aprendo rapido,
mis conocimientos seran basicos pero estan bien planteados, gran proyecto se traen entre manos chicos.
Ademas se usar varias herramientas de diseño grafico por si se ofrece.
Bueno si soy de ayuda en algo avisenme , y ya si no soy de ayuda en nada los apoyo desde la distancia
(que emocionado estoy =3).
Código
ya pueden ver el código fuente, bájenlo directo del repositorio de Mercurial que tenemos con Google.
jeje ya no me dio tiempo de
jeje ya no me dio tiempo de leer todo el post no lo habia visto pero esta interezante mañana le sigo chekando mas a fondo y le entro en lo poco o mucho que pueda aportar....
Saludos, Quisiera
Saludos,
Quisiera presentarme soy tempano
nuevo en este foro, vi este tema y me agrada mucho leer este tipo de ideas, vengo de otra area de ti (Redes y seguridad) quiero aprender mas sobre java por un proyecto que tengo en mente por otro lado es algo que es como un reto desde hace un tiempo
Uso plataforma Mac y linux, sin mas por el momento, los felicito y en lo que pueda los apoyo.
hola buenas
no se como crear una barra de progreso en java, en c sharp lo hice pero en java no se como gracias
Sección que explique que es la comunidad javamexico
Estimados falta una sección que explique que es la comunidad java Mexico, ¿Que hace?, ¿Quien la forma?, ¿Porque? etc...
Ayuda
Hola carnal, sabes he visto que eres programador en java y pues necesito de tu ayuda, necesito realizar un applet que contenga un telnet, he estado experimentando con varios codigos, pero me resulta muy dificil poder hacerlo, soy programador novato y pues podrias aconsejarme como hacer...
explicarme el codifo
impo
Aun sige en pie el proyecto?
Hola aun se tiene en pie este proyecto? me surge la duda ya que me gustaria colaborar!!! :)
Esta semi-muerto pero lleva
Esta semi-muerto pero lleva muy buen avance. Checa el repositorio y haz un clon y propon cambios.
Repo
en donde tienen el repo??
una url seria de ayuda
Gracias!
code.google.com/p/javamexico
code.google.com/p/javamexico
sigue siendo ese?
No había hecho Benek la versión grails en github?