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!

Devoxx

Eficiencia en el uso de memoria en Java

En la lista de desarrollo de Ceylon postearon esta liga a los slides de una presentación de IBM:

http://domino.research.ibm.com/comm/research_people.nsf/pages/sevitsky.pubs.html/$FILE/oopsla08%20memory-efficient%20java%20slides.pdf

Está bastante interesante, desmitifica varias creencias muy comunes acerca de distintos diseños y cómo afectan el uso de memoria, por el lado del tamaño de objetos individuales, tamaño de colecciones en contraste con su funcionalidad, costo de reutilización vs. creación de objetos temporales, etc.

Un simple ejemplo: SimpleDateFormat es un objeto que parece muy simple pero es carísima su creación, está diseñado para ser utilizado varias veces, pero como muchos deben saber, no es thread-safe, por lo cual hay que ser cuidadoso con el reuso.

Le dedican una buena parte a las colecciones de Java, revisando alternativas y proponiendo algunas soluciones; otra parte importante es el ciclo de vida de los objetos. Está algo larga pero realmente muy recomendable.

Botones SWING con efecto.

Vamos a darle un toque de efecto a los botones de swing.

Espero sus comentarios, dudas o sugerencias.


Clase principal.

import javax.swing.*;
import java.awt.*;

public class botonEfecto{
        public botonEfect(){
                JFrame frame=new JFrame("Ejemplo");
                JPanel panel=new JPanel();

                JButtonEfec botton1=new JButtonEfec("All-mail-48.png","Enviar Correo","Ctrl+E");
                JButtonEfec botton2=new JButtonEfec("appearance-48.png","Pintar","Ctrl+P");
                JButtonEfec botton3=new JButtonEfec("Book Library-48.png","Mis Documentos","Ctrl+D");

                panel.add(botton1);
                panel.add(botton2);
                panel.add(botton3);

                frame.add(panel);
                frame.setSize(300,240);
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
        }
        public static void main(String args[]){
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                                new botonEfecto();
                        }
                });
        }
}

import javax.swing.*;
import java.awt.*;
/**
@autor: Jimmy Morales
*/

public class JButtonEfec extends JButton{

        private Image image=null;

Primeras mejoras a Jarhalla-local

Hola a todos....

jarhalla-local tiene ya unas pequeñas mejoras:

-Búsqueda de jars o clases a partir del nombre.
-Soporta el comodín *
-Detección de repositorios de .ivy, .gradle y .mvn2 (por sugerencia de ezamudio)
-Visualización del archivo Manifest - si lo tiene- de cada jar encontrado.

Todo esto se puede apreciar mejor en el siguiente video.

Saludos!!
---
RuGI

Java Virtual Developer Days in February

FYI;

Oracle Technology Network patrocina este evento virtual, tendremos la oportunidad de observar conferencias, participar en laboratorios y chatear con su grupo tecnico.

Topics:

-What's New in Java SE 7
-Java SE 7 to Java SE 8 Roadmap
-JavaFX 2.0 In-depth and How it Integrates with HTML 5
-Hands-on Labs for Java SE 7 and JavaFX 2.0
-Live Q&A with Technical Staff

Dejo link para quien guste registrarse.

https://oracle.6connex.com/portal/Java/login/?langR=en_US&mcc=OTNVDDJava...

Cita:
14 de Febrero 2012- 9:00 am to 1:00 pm PST / 12:00 pm to 4:00 pm EST

Libros de regalo

Yo sé que muchas personas en este blog estén interesados en bibliografía de Java. Estoy escombrando y entre mis cosas y encontré algunos libros que pueden ser de interés para algunos de ustedes. Se trata de unos libros que usé para aprender y claro que son usados pero están en muy bebas condiciones. Por lo que publico unas dinámicas para que te pueda ser entregado el libro.

Estos son los libros. (Bueno, el de Java JDK6 ya fué donado a una persona muy entusiasta en aprender el lenguaje)

  • Para el libro de Visual Basic basta con que digan por que querrían tener el libro.
  • Para el libro de JSP debes tener una cuenta de JavaMexico con una antigüedad mínima de 1 mes y haber preguntado algún tema relacionado con Java EE (que no sea el típico hazme mi tarea)
  • Para el libro de Java 2 debes tener una cuenta de JavaMexico con una antigüedad mínima de un mes y haber realizado al menos 3 preguntas donde demuestres que tu duda es puntual (que no sea el típico hazme mi tarea)

Video podcast de ViveCodigo 00x12 - 2do. Coding Dojo

"En esta emisión del podcast convocamos a la comunidad de desarrolladores a asistir al 2do. Coding Dojo de ViveCodigo.org, en donde les pusimos un par de retos a implementar: #7 Project Euler y Roman Numerals
Es interesante ver las respuestas de todos pues se utilizaron varios lenguajes y las soluciones incluso entre mismos lenguajes difieren en su implementación.
Les recomendamos leer el post del Dojo en ViveCodigo.org, pues encontrarán las referencias a las respuestas que se desarrollaron y en la mayoría de los casos los asistentes mejoraron sus soluciones.
Que lo disfruten tanto como nosotros..."

De C# a Java


Navegando encontré está página. Es un "convertidor" de código C# a Java.

Enlace:
http://codeporting.com/apps/csharp-2-java

o_0

Ceylon IDE

Vía Twitter me enteré de esta noticia: Ceylon tiene su propio IDE

Aqui la liga
http://ceylon-lang.org/documentation/ide/install/

Coding Dojo #2

El día de ayer tuve la fortuna de asistir al Coding Dojo de manos de los chicos de ViveCodigo, en verdad fue una experiencia enriquecedora y educativa.
Como no tuve una participación muy activa en esta edición me tome la tares de realizar un par de mejoras y terminar los ejercicios.
Ejercicio 1: By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13. What is the 10 001st prime number?
Le hice una modificación mínima y da el resultado como en 3 segundos, cosa que antes hacia en 3 minutos.

/*
    @rodrigo_salado
*/

def getSolution(n){
    index = 0
    while(n!=0){
        if(isPrime(++index)){
            n--
        }
    }
    index
}

def isPrime(n){
    if(n <= 1) { return false }
    if(n <= 3) { return true  }
    lim = (long) Math.sqrt(n)
    !(2..lim).find{
        n%it == 0
    }
}

assert getSolution(1) == 2
assert getSolution(2) == 3
assert getSolution(3) == 5
assert getSolution(6) == 13
assert getSolution(10001) == 104743

assert isPrime(-1) == false
assert isPrime(0) == false
assert isPrime(1) == false
assert isPrime(2) == true
assert isPrime(3) == true

Tipos en Ceylon: Un sistema de tipos con sentido

Para mi primer post acerca de Ceylon, quiero hablar un poco acerca del sistema de tipos. Una de las metas de Ceylon es la legibilidad del código; otra es tener un sistema de tipos que sea sencillo pero a la vez poderoso (Ceylon es un lenguaje de tipado estático). A continuación pretendo demostrar cómo estos dos objetivos se unen, dando como resultado código más legible, con un ejemplo sencillo: una lista heterogénea (es decir, que contiene elementos de distintos tipos). Veamos el ejemplo en un par de lenguajes de tipado estático, incluso en algunos de tipado dinámico. Primero obviamente en Java:

List<Object> list = Arrays.asList(new Object[]{ 0, "uno", 2, "tres", 4, "cinco" });
for (Object elem : list) {
  if (elem instanceof String) {
    //Para hacer algo con el string requerimos un cast
    String minusc = ((String)elem).toLowerCase();
    System.out.println(minusc);
  } else if (elem instanceof Number) {
    //Igual aqui
    int doble = 2 * ((Number)elem).intValue();
    System.out.println(doble);
  }
}
Distribuir contenido