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!

Episodio 5 de la temporada 1 - ViveCodigo.org – Coding Dojo (Codebreak)

Esta vez en la entrega de Vivecodigo les presentamos nuevamente un coding dojo, en el cual se desarrollo un juego llamada code breaker con algunos destacados invitados.

La dinámica fue pasar una a uno para ir desarrollando el juego, el cual fue en base Test-driven development (TDD) por lo cual cada uno de los invitados pudo aportar elementos para el desarrollo de esta solución.

Al concluir se platico sobre la dinámica y las dificultades que existieron, con lo cual pudieron realizar una retrospectiva de lo que mas les agrado y no de este coding dojo, en base a l esfuerzo y las ideas que apostaron cada uno de ellos.

Un video sin duda muy entretenido y con elementos enriquecedores.

Espero disfruten este contenido. Sigan enviándonos sus comentarios tambien nos pueden seguir en nuestro feed de vivecodigo.org.

Probar una cadena de llamadas con Mockito

Como @neodevelop explica en esta entrada: http://www.javamexico.org/blogs/neodevelop/pruebas_de_unidad_con_mockito... se puede probar con Mockito si un metodo fue llamado o no utilizando verify(objeto).nombreDelMetodo();

Utilice varias veces esa comprobación hasta que me fallo recientemente en un escenario como el siguiente: quería ver si mi nuevo método PhoneManager.getPhone(id) estaba invocando el método Profile.getPhone()

// FAIL
// prueba que el getter getPhone fue invocado:
class PhoneManagerTest {
    @InjectMocks PhoneManager phoneManager;
    @Mock Profile profile;
    ...
    @Test
    public void testGetPhone() {
        Assert.assertEquals("(55) 5658-1111", phoneManager.getContactPhone(1));
        Mockito.verify(profile).getPhone();
    }

El problema es que profile no es un atributo de PhoneManager sino que es obtenido con una cadena de llamadas como esta:

Profile profile = phoneManager.getAccountAdapter().getProfileService().getProfileById(id);

Preprocesadores para desarrollar las páginas Web y PreprocessJS

Hace algunos dias, platicando con algunos desarrolladores que nunca habian programado una página web dinamica con algunas de las tecnologias mas comunes para realizarlas, me pregunto uno de ellos, ¿en si como funcionaba un JSP ó un PHP ó un ASP o un GSP ...? .

La respuesta que le di fue desde luego algo minimalista, por que se que esas tecnologias funcionan gracias a los framewroks y a los lenguages subyacentes que permiten crear el contenido dinámico de las páginas web, plus los servidores web (apache, tomcat, jboss, websphere, iis etc.) que permiten las conexiones en internet via sockets y el protocolo TCP/IP.

Y lo que de una o de otra forma le comente es que esos lenguages de scripting en gran medida(hablando en la capa de desarrollo de aplicaciones web) preprocesaban archivos que tienen incrustado HTML, Javascript y un lenguaje de alto nivel como Java, Groovy, C#, Vb.Net, o más propietarios como el PHP que es (C syntaxis like).

Java para principiantes (Ambito o alcance de las variables en Java)

Hola a todos, en mi blog quiero ayudar a varios jóvenes que se inician en el mundo de la programación en Java, así que he creado algunos post que quiero compartir con ustedes, esto con el fin de obtener críticas y consejos para mejorarlo, sin más preámbulo acá esta el artículo:

El alcance de las variables es una de las consultas que más se presentan en los blogs, adicionalmente son la causa de dolores de cabeza de algunos desarrolladores novatos, por lo tanto, hemos creado este post con el fin de explicar de una forma clara cual debe ser el comportamiento de las variables locales, globales, de clase de método etc.

Inicialmente crearemos una clase con el siguiente código:

public class EjemploAmbito {
 
     //Declaración de variable de clase
     private int edad;
 
     //Declaración del método main
     public static void main(String[] args) {
          EjemploAmbito ambito = new EjemploAmbito();
          ambito.setEdad(25);
          System.out.println("La edad es " + ambito.getEdad());
     }
     //Declaración del getter de edad
     public int getEdad() {
          return edad;
     }
     //Declaración del setter de edad

Entorno de desarrollo IDE o editor de texto?

Siempre había pensado que era mucho mejor trabajar en un IDE, pues me permite crear las interfaces gráficas con mayor facilidad, sin embargo mi visión del universo de la programación estaba muy sesgada, pues la mayor parte de mi tiempo programando he usado los entornos de desarrollo.

Pues bien, aunque en la encuesta los vencedores fueron los IDE, y entiendo el por que, me sorprendió la cantidad de votos que tuvieron los procesadores de texto minimalistas, (les pido perdonen mi entusiasmo, este blog tiene pocas semanas de creado, para mi 47 votos son un número enorme!!) , y fue así como consulte a varios de los programadores que los usan para que me explicaran las ventajas que tienen y por que los eligieron.

En primer lugar, la mayoría de los desarrolladores que usan estos programas tienen una gran inclinación por el desarrollo web, y claro, tanto Gedit como Sublime Text manejan HTML5 y CSS3; es cierto que Netbeans y Eclipse han expandido sus fronteras buscando que los desarrolladores los elijan no solo para trabajar en Java sino también para trabajar en HTML, PHP, Ruby etc. Pero créanme que a los desarrolladores web no se los ganan tan fácil.

Creación de un archivo JAR usando JarOutputStream

Creación de un archivo JAR usando JarOutputStream

Alguna vez trate de generar un JAR desde mi aplicacion, pero no lo logre en ese momento, por otros motivos me encontre con la clase JarOutputStream la cual me permite hacer eso, generar un JAR indicandole los paquetes y clases que contendra e inclusive creandole el archivo manifiesto.

Hoy les traigo un sencillo ejemplo de como podemos crear un JAR indicando la carpeta que contiene los archivos .class.

Imagenes

Codigo

package clases;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

23a. reunión de @springhispano, @grailsmx, @artesano_soft y @scalamug

El pasado 26 de Septiembre se llevo a cabo la 23a. reunión de la comunidad, en donde tuvimos la presencia de Alvaro Videla(@old_sound), un desarrollador Erlang que esta trabajando en RabbitMQ y es autor del libro RabbitMQ in Action.
En esta sesión Alvaro nos comparte su experiencia en la charla: "Scaling applications with RabbitMQ"

Esta reunión fue llevada hasta ustedes por Makingdevs que adicionalmente obsequio libros de "RabbitMQ in action" y además regalo una libreta personalizada a los participantes de la reunión así que no te pierdas la próxima reunión.

  

Leer mas:http://springhispano.org/?q=node/3099

Episodio 4 de la temporada 1 – Erlang con Alvaro Videla – @old_sound

Bienvenidos sean a esta nueva emisión del podcast el episodio numero 4 de la temporada numero 1.
Alvaro Videla (@old_sound) es un desarrollado uruguayo muy experimentado que esta actualmente esta trabajando en RabbitMQ y en RabbitMQ Simulator, además es el autor del libro de “RabbitMQ in action”; aprovechando su visita a México tuvimos la oportunidad de entrevistarlo para que nos hablará acerca de su trayectoria y también del lenguaje de programación Erlang.
Es interesante conocer la historia de Alvaro, así como también, ver la facilidad con la que expresa el paradigma con el que se maneja Erlang, el cual en propias palabras de Alvaro, es único aunque Erlang entre en la categoría de lenguajes funcionales.
Una conversación muy entretenida, informativa y enriquecedora, no se lo pierdan.
¡Espero lo disfruten! y apreciamos mucho cualquier comentario que nos puedan dejar, pronto mas capítulos de la temporada 01.

Programar es...

Programar es ...

1. Vivir constantemente presionado.

2. Tener 0 vida social (o muy poca).

3. Repetir rutina tras rutina (jeje).

4. Conocer gente extraña...

5. Muchas horas sin dormir en casa ...

6. Reuniones aburridas...

7. Enojos constantes...

8. Querer replantear nuestra vida...

"¿que hubiera sido de mi vida si hubiera sido futbolista?"

Episodio 3 de la temporada 1 – Desarrollo de juegos en JoyBox con @JuanKaram y @mexinsane

Bienvenidos sean a esta nueva emisión del podcast el episodio numero 3 de la temporada numero 1.
El desarrollo de videojuegos en México y en varias partes del mundo gracias a @juankaram y @mexinsane, ya que están desarrollando un engine para RubyMotion llamado JoyBox. En esta sesión nuestros invitados nos platican la experiencia de estar desarrollando un proyecto Open Source que permite desarrollar videojuegos de una forma más sencilla, rápida y sobre todo divertida. ¿Qué es lo que los motivo a crear este proyecto? ¿Es posible para muchos de nosotros crear juegos para iOS con Ruby? ¿Se puede tener una carrera como desarrollador de videojuegos?, sin duda, muchas preguntas serán resueltas en este podcast.
¡Espero lo disfruten! y apreciamos mucho cualquier comentario que nos puedan dejar, pronto mas capítulos de la temporada 01.

Distribuir contenido