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.

También puedes responder nuestra encuesta para saber en que estado vives!

scrum board online

creo que muchos usamos scrum para nuestros proyectos, encontre este pizarron online para las etiquetas:

http://scrumblr.ca/demo

xml

Tengo un problema estoy tratando de extraer informacion de un xml el problema es el siguiente:
tengo dos tag hijos de Conceptos llamados concepto los dos y no se como extraer la informacion ya lo e estado intentando pero no lo logro explico este es el xml ocupo JespXML.jar

<cfdi:Conceptos>
             <cfdi:Concepto cantidad="2.00" unidad="PIEZA" descripcion="TONER HP CF210X NEGRO" valorUnitario="1291.9500" importe="2377.19">
</cfdi:Concepto>
<cfdi:Concepto cantidad="5.00" unidad="PIEZA" descripcion="TONER HP 131 COLOR CF211A-CF212A-CF213A" valorUnitario="1239.7500" importe="5702.85">
</cfdi:Concepto>
</cfdi:Conceptos>

asi extraigo la primera parte

Tag conceptos = raiz.getTagHijoByName("cfdi:Conceptos");
Tag concepto = conceptos.getTagHijoByName("cfdi:Concepto");
            cantidad3 = concepto.getValorDeAtributo("cantidad");
            unidad3 = concepto.getValorDeAtributo("unidad");
            descripcion3 = concepto.getValorDeAtributo("descripcion");
            valor3 = concepto.getValorDeAtributo("valorUnitario");
            importe3 = concepto.getValorDeAtributo("importe");

puzzle en java

Icon g,h,i,j,k,m;
                JButton r,s,t,u,w,y;
  public void revolver(JButton a,JButton b,JButton c,JButton d,JButton e,JButton f) {
         r=a; s=b; t=c; u=d; w=e;
         y=f;
       
            g=r.getIcon();
             h=s.getIcon();
             i=t.getIcon();
             j=u.getIcon();
             k=w.getIcon();
             m=y.getIcon();  
       y.setVisible(false);
            int num = (int) Math.round((Math.random()*3));
            if (num==1){
                r.setIcon(g);
                s.setIcon(j);
                t.setIcon(h);
                u.setIcon(i);
                w.setIcon(k);
                 
            }else if(num==2){
                r.setIcon(j);
                s.setIcon(h);
                t.setIcon(i);
                u.setIcon(k);
                w.setIcon(g);
            }else if(num==3){
                r.setIcon(h);
                s.setIcon(i);
                t.setIcon(k);
                u.setIcon(g);
                w.setIcon(j);
            }else if(num==4){
               r.setIcon(i);
                s.setIcon(k);
                t.setIcon(g);

Estudio de tiempos y movimientos aplicado a la arquitectura de Software para disminuir el tiempo de desarrollo

Hace tiempo platicaba mucho con un amigo que era ingeniero Industrial el me explicaba como los Ingenieros Industriales calculan los tiempos de Manufactura tanto Macro como Micro, para lograr reducirlos y mejorar los costos de Producción. Siempre me pregunte si esas practicas podrían llegar a utilizarse en el desarrollo de software.

Con el tiempo y las mejoras en arquitecturas de software y metodologías, se ha mejorado muchísimo. sin embargo aun existen cosas que podemos tomar de la Ingeniería Industrial como el estudio de tiempos y movimientos para mejorar el desarrollo de nuestros sistemas.

En especial me enfoque en conocer los Therbligs, que se usan en Ingeniería Industrial, los cuales en el desarrollo de sistemas afectarían sus similares a temas de Integración Continua y componentes básicos de arquitectura base para desarrollar aplicaciones en estos.

La lista original de THERBLIGs es:

1. Buscar
2. Seleccionar
3. Tomar o Asir
4. Alcanzar
5. Mover
6. Sostener
7. Soltar
8. Colocar en posición
9. Precolocar en posición
10. Inspeccionar
11. Ensamblar
12. Desensamblar
13. Usar
14. Retraso Inevitable
15. Retraso Evitable
16. Planear
17. Descansar

Maven para buena calidad de codigo

Cuando trabajas en un equipo con varias personas en ocaciones la calidad del codigo empieza a disminuir proporcionalmente al aumento de lineas de codigo, por esta razon me puse a investigar como mantener la calidad del codigo sin tener que revizarlo por ti mismo de una forma automatizada y que no te deje pasar o compilar si no cumples con los requisitos

Estos plugins estan basados para una aplicacion web, eso no significa que no lo puedas usar para crear otro tipo de archivo.

1.- Analizar el codigo

Para esto se va a utilizar findbugs que ya se puede usar con la version 8 de java y este seria el fragmento de codigo para usarlo

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>findbugs-maven-plugin</artifactId>
                <version>3.0.2</version>
                <configuration>
                    <threshold>High</threshold>
                    <effort>Default</effort>
                    <skipEmptyReport>false</skipEmptyReport>
                    <findbugsXmlOutputDirectory>${project.build.directory}/findbugs</findbugsXmlOutputDirectory>
                </configuration>

[Aporte] JashMapTool (Mapeador de clases para Java+Spring+Hibernate)

Buenas, gente

Pues quiero compartir con ustedes mi aplicación en Java que talvez muchos ya saben más o menos cual es la idea, pero para los que no:

Seguramente han trabajado algún proyecto web con un Spring e Hibérnate, en ese caso tuvieron dos opciones, una es configurar Hibérnate Tools para que les generara las clases en java y otra generar dichas clases a mano y sin ninguna ayuda. Bien pues el objetivo de esta pequeña aplicación es generar dichas clases de forma automática, únicamente indicando la conexión a la base de datos.

Les invito a probarla y cualquier comentario será bien recibido.

Saludos

JashMapTool 0.8

[Duda] En desarrollo de aplicación...

Lo que pasa es que estoy desarrollando una aplicación en java que permite generar las clases en JAVA de forma automatica de acuerdo a la estructura de la base de datos, tengo pensado incluir muchas cosas mas pero en algun momento quiero crear una versión de pago, entonces no pretendo que sea de codigo abierto, la pregunta es como le hago para que un grupo de personas que esten interesados en usar la aplicación la usen.. me refiero a que los aspectos básicos siempre seran gratuitos.. espero me hayan entendido y de antemano gracias por sus comentarios.

comportamiento erratico

estoy revisando el siguiente codigo que es un socket que algunas veces se comporta de manera erratica, como que la trama que le llega de respuesta la corta no llega completa ..

    public String enviaData(String mensaje, int timeOut) throws IOException {
   
        String msn;
        int i;
        int longitud = mensaje.length();
        Socket socket = null;        
        try {
           
            socket = new Socket(ip, puerto);
            socket.setSoTimeout(timeOut);
            OutputStream os = socket.getOutputStream();
            InputStream is = socket.getInputStream();
            byte[] sbytes = converByte(mensaje, longitud);
            os.write(sbytes);
   
            int lenInput = 0;
            long time = System.currentTimeMillis() + timeOut;            
            try{              
            while (System.currentTimeMillis() < time) {
               
           
                lenInput = is.available();
                if (lenInput > 0) {
                    byte[] textoBytes = new byte[lenInput];
                    for (i = 0; i < lenInput; i++) {
                        textoBytes[i] = (byte) is.read();

MapDB: Base de Datos Java para trabajar directamente con colecciones

MapDB es una base de datos Java que permite trabajar directamente con el Java Collection API.
Sus principales características son:
· Concurrente
· Rápida
· ACID
· Flexible
· Personalizable
· Consultas SQL-like
· Poco espacio en disco
Veamos un ejemplo de uso:

MapDB es muy configurable, y puede arrancarse con o sin transacciones, en memoria, en fichero, con encriptado,…

Java Champion y Oracle ACE

Distribuir contenido