Bienvenido a Java Mexico

Java México es una comunidad de desarrolladores mexicanos en el lenguaje Java.

Este sitio es colaborativo, automáticamente al registrarte obtienes un Blog para compartir tus conocimientos o información acerca del lenguaje. Antes de publicar en tu blog o los foros por favor lee los lineamientos de publicación.

Para dudas y problemas con respecto al lenguaje Java puedes visitar los Foros de Discusión.

Barcamp 4 en Guanajuato

Widget on SWT

'Contenido linkeado a otros post, para una mejor búsqueda'

Acá en el mundo Java; Swing y SWT veces se consideran como tecnologías de estricta competencia. Ejemplos claros se encuentran en la web, donde abundan opiniones muy validas de cuando usar una u otra para la construcción de aplicaciones cliente (RCP). Sin embargo, en el mundo real, se requiere que ambas tecnologías convivan en una sola aplicación. Este mix resultante entre los dos conjuntos de herramientas no es una tarea sencilla. Por supuesto que se puede hacer, y se puede hacer de tal manera que los dos conjuntos de herramientas se integren sin problemas.

Como ya se ha hablado de SWT en esta comunidad (Vease [1] y [2]), me enfocare en realizar una aplicación sencilla que muestre de manera rápida como se programan algunos controles y eventos en SWT. Dejando pendiente para otro post la integración de SWT/JFace con Swing + un control Flamingo etc., lo cual requiere de conocimientos más avanzados, aunque si ya has programado en SWing no deberías tener dificultades para aprender SWT, el debate de cuando usar cada uno lo puedes checar en [1].

Se me ha ocurrido empezar crear un widget para testear la conexion con algún DBMS (claro que hay que separar las capas...)

La odisea ingresando a Java en la facultad

Recuerdan esos años cuando eramos felices programando en QBasic?
Cuado eras el punto de referencia en computacion de tu familia por que sabias usar Word?

Que epocas tan mas felices, no?

Pues ahora, en mi particular caso tengo un poco de experiencia en programacion por azaheres del destino, un poco por mi bachilerato. Pero, ya es la carrera, ya es la universidad, esto es diferente. Y por aqui contare mi historia.

Nombre: David Amador Díaz
Twitter: @arukk
Carrera: Ingenieria en Software. Universidad Autonoma de Queretaro.

Estoy en 1er semestre y no quiero tornar esto como un punto de referencia para nuevos programadores, pero si tal vez en una anecdota sobre mi experiencia introductoria al lenjuage Java.

Espero esto sea de su agrado y tal vez ayude a alguien que en un futuro quiera aprender este lenguaje.
Desenme suerte y espero postear segido por aqui.

Tapestry 5, parte 5 - Sesiones, validaciones, AJAX

Una parte importante de cualquier aplicación web seria, es la manera en que se almacenan variables de sesión. Por ejemplo, una aplicación que requiere login y se crea una sesión para el usuario; se requiere validar el usuario/password y cuando es un usuario válido, guardar sus datos en la sesión y las páginas que solamente son para usuarios válidos necesitan redirigir al usuario al login para que solamente usuarios registrados puedan ver la página.

Otro ejemplo es un simple blog como éste, en el que solamente los usuarios registrados pueden dejar comentarios. Vamos ver este ejemplo. Primero, supongamos que ya tenemos la página que muestra el blog y los comentarios, y tenemos un componente para dejar un nuevo comentario pero solamente a los usuarios ya registrados.

¿Utilizas algún estandar de programación?

¿Cómo es el estándar que sigues? ¿De qué se trata mas o menos?

9a. Reunión de SpringHispano.org, Grails.org.mx y JavaMexico.org

A todos los miembros de comunidades y personas interesadas en Desarrollo de Software, les hacemos la cordial invitación a que asistan a la 9a. Reunión organizada por springhispano.org y grails.org.mx, el día Sábado 3 de Octubre del 2009 a las 10:00 a.m.

La agenda del día es la siguiente:

* "Patrones de Integración Empresariales con Apache Camel" por Domingo Suarez Torres (@domix) En esta charla se presentara una introducción a los Patrones de Integración Empresariales, y a Apache Camel
* "Introducción a Griffon" por Andres Almiray (@aalmiray) Charla en la cual hablara de como desarrolar aplicaciones con el lenguaje Groovy y el framework de desarrollo para Swing, Griffon.

El lugar de la reunión es en:

Ave. San Lorenzo 1009 Piso 4. Col. del Valle, México, D.F.

El registro es importante que se realice en Coetus, ya que es requerido saber la cantidad de asistentes a la reunión. La pagina de registro es: http://www.coetus.info/coetus/events/detail/12

Como nota adicional, queremos agradecer a quienes han asistido a reuniones anteriores por su asistencia y apoyo, en especial a Erick Camacho(@ecamacho), Isaac Ruiz(@rugi), Marco Antonio(@markitox), Andrés Valdez(@avaldini) y Rodolfo Velasco (@rvelascor), por el soporte que nos han brindado para la realización de las reuniones con el fin de que la comunidad crezca.

ATTE
Springhispano.org, grails.org.mx
Los esperamos...

(Código) Utilizando java.io.File

Que tal a todos, bueno pues esta es mi primera aportación respecto a código fuente. Realmente es algo bastante sencillo, y me sirvió para ordenar mis archivos de música, no hace grandes cosas, pero al menos a mi me ha servido para resolver mi problema en particular, y digamos, que para no desperdiciar este pequeño código (así como algunos no deseamos desperdiciar la comida, por decir algún ejemplo análogo) ya que pensaba en eliminarlo, pensé que tal vez a alguien le podría servir de referencia.

Primeramente, entraré en detalle de cuál la problemática que intentaba resolver con este pequeño código: Normalmente ordeno mis albums de música en una carpeta con el nombre del artista y dentro de esa misma carpeta, encarpetaba individualmente cada uno de los albums del mismo artista. Y así tengo cientos de artistas y con sus respectivos albums. Hasta que un día pensé que era difícil navegar por los archivos de mp3, ya que tenía que estar entrando y saliendo a través de múltiples carpetas y decidí mejor poner en raíz todos los albums de todos los artistas con el siguiente formato para que así los archivos no estén navegando como una "sopa de albums": artista - [] album (Y entre los corchetes opcionalmente poner el año en que se creo el album, claro, eso tendría que ser manualmente e independiente de este pequeño programa, por que esa información, no la tengo para todos mis archivos).

Ahora bien aquí les copio y pego el código:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package albums;
import java.io.File;

/**
 *
 * @author cfpmx
 */

public class Main {

    /**
     * @param args the command line arguments
     */

    public static void main(String[] args) throws java.io.IOException {
        // TODO code application logic here
        File raiz = new File( "artistas" );

        String[] raizdir = raiz.list();

        for( String nomArtista : raizdir ) {
            File avance = new File( "./artistas/" + nomArtista );

            for( File nomAlbum : avance.listFiles() ){
                String renom = nomArtista + " - [] " + nomAlbum.getName();
                System.out.println( renom );
                File renombrar = new File(  renom );
                nomAlbum.renameTo( renombrar );
                System.out.println( nomAlbum.getName() );
            }

           
        }
    }

}

Este programa lo he creado con netbeans, cree un directorio "artistas" en el proyecto y por default ahí pegué las carpetas de los artistas que contenían los albums. Creo que esto es todo, si tienen dudas o problemas al ejecutarlo, no duden en preguntarme y finalmente, no acepto críticas pero si comentarios, ya que este código como les mencioné anteriormente fue EXPRESS y definitivamente le podemos componer, quitar o añadir las cosas que se nos venga en mente y mi única intensión fue en que probablemente a alguien le pudiera servir tal vez para fines didácticos.

Hasta pronto, y muchos saludos.

Atentamente, cfpmx.

PD: Les dejo el proyecto: http://cid-23c5625615d3fbdb.skydrive.live.com/self.aspx/.Public/javamexi...

¿Tienes alguna certificación de Java?

¿Cuál es? y ¿Cómo lo lograste?, ¿Cuánto tiempo te llevó la preparación?

Super Happy Dev House Querétaro

Este fin de semana será la segunda edición del Super Happy Dev House en Querétaro.

JavaMexico.org participa como organizador y patrocinador de este evento cuyo objetivo es impulsar una cultura de creatividad y desarrollo, que sea a la par divertida y favorezca el networking.

¿Qué es?

El Super Happy Dev House es un evento no exclusivo dirigido a personas creativas y curiosas interesadas en la tecnología. Compartimos conocimiento, exploramos la tecnología y hacemos colaboraciones ad hoc. Ven y diviértete, construye, aprende y conoce personas nuevas. Esto se llama Cultura Hacker y estamos aquí para impulsarla.

¿Cómo funciona?

Llegas, tomas el lugar que más te guste y te instalas. Tienes 12 horas para acabar un proyecto, idea o lección. Comienzas a trabajar y convives con la gente que te rodea. Seguramente en los primeros 20 minutos ya estarás platicando con nuevas personas sobre temas que te interesan. Si quieres ponerte los audífonos y concentrarte está bien, si quieres salir a platicar con alguien está bien, si quieres relajarte o divertirte un rato está bien.

Si nunca has asistido y quieres más información acerca del evento, te recomendamos que visites esta, esta página y este wiki.

¿Qué necesito para participar?

Simplemente, muchas ganas de crear algo, aprender cosas nuevas, finalizar tu sueño guajiro de desarrollo.
Puedes llegar el mismo día y empezar a trabajar, aunque para que todos tengamos una idea sobre que trabajaran los demás lo mejor es que te registres en el wiki: http://shdhqro.pbworks.com/SHDHQro-2.

Cuándo?

Sábado 19 de septiembre, 2009.

A qué hora?

10am a 10pm.

Dónde?

Instituto Tecnológico de Querétaro. Sala de Usos Múltiples de la Biblioteca.

Los esperamos!!!!!

Habrá muchas sorpresas, la comida va por nuestra cuenta y hasta un descuento para el after-party en el restaurant-bar El Palco.

Tapestry 5, parte 3 - Componentes, inyección, internacionalización

Continuando con la cátedra de Tapestry 5, vamos a ver ahora tres cosas sencillas pero bastante ilustrativas del poder de este framework: cómo funcionan los componentes (unidades funcionales que pueden ir contenidas en páginas o dentro de otros componentes); inyección de objetos en páginas y componentes, y cómo internacionalizar una página o componente.

Los componentes son fragmentos de páginas que van dentro de otros componentes o dentro de páginas. Un ejemplo muy típico es este: queremos dar a nuestro sitio una apariencia uniforme, con hojas de estilos, una serie de ligas en la parte superior, algunos datos de copyright y demás en la parte inferior, etc. Todas las páginas deben salir igual. Esto en Tapestry se resuelve muy fácil con un solo componente que podemos llamar Marco, que además va a tener la peculiaridad de que va a envolver a su componente o página padre:

<!-- Marco.tml -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"
  xmlns:p="tapestry:parameter">
Distribuir contenido