java

Jul 30 14:19

Alta Concurrencia en Java

Cuando nos enfrentamos a aplicaciones con una alta concurrencia, solemos encontrarnos con una serie de problemas tipo. En este artículo me centraré en los problemas de recursos (cpu y memoria), dejando los problemas de sincronización para otro futuro artículo. De momento me centraré en los problemas más típicos y sus soluciones más directas.

Jul 17 00:13

Control de código Java con C.R.A.P.

 Crap4J (Crap for Java)
 
Intro:
 
Crap4j[1] es una implementación práctica de los algoritmos de la métrica C.R.A.P.[2] 
 
Empezamos por ¿Qué es la métrica C.R.A.P?
 

Jul 16 12:45

Mapa sencillo en Java

Muchas veces uno no sabe por dónde empezar cuando quiere adentrarse en el mundo de la programación GIS. Demasiadas librerías, demasiados IDE, pero a la hora de la verdad todo el mundo presupone que ya tienes una base y todo es un caos.

Jul 13 13:39

Event Listeners Personalizados en Java

Aunque el patrón Observer está implementado nativamente en Java, a veces necesitamos realizar un manejo de eventos que se adapte mejor a nuestras necesidades.

El problema del manejo de eventos es muy sencillo: Tenemos un objeto que va a ir cambiando de estado. Sin tocar su código, debemos ser capaces de "engancharlo" a otros objetos para que estén pendientes de estos cambios de estado y actúen en consecuencia. Este "enganche" debe poder activarse y desactivarse dinámicamente durante la ejecución.

Jul 13 10:48

Herramientas Java

Hoy me limitaré a hacer unas breves recomendaciones sobre herramientas muy útiles a la hora de programar en Java. La mayoría de estas herramientas se encuentran perfectamente integradas en Maven (de quien ya hablaremos en otra ocasión), con lo que no deberían presentar problemas a la hora de configurarlas:

Jul 10 01:43

La memoria en Java-II

 Siguiendo el post de la compañera marias, quiero añadir algunas ideas más al contenido en torno a la memoria de Java.
 
En concreto, me gustaría detenerme en el lado "no controlable" de la memoria de Java. Me refiero al definido como el espacio PermGen (Non-Heap). Este espacio, como marias comentaba en el post anterior, esta dedicado a cargar dinamicamente muchas clases diferentes. Pero detengámonos ahora en ello.
 
¿Que quiere decir la carga dinámica de clases?

Jul 05 13:31

La memoria en Java

Como he tenido que empaparme de su funcionamiento, aprovecho y pongo un post sobre conceptos básicos de la memoria en Java.

Para empezar, Java divide la memoria en dos segmentos bien diferenciados:

  • Heap: Objetos del usuario, variables, ...
  • Non-Heap/Perm: Código, metadatos, ...

La que más nos interesa es la Heap, porque es la que podemos "controlar". A la memoria Non-Heap (Perm) se le puede configurar el tamaño con el comando MaxPermSize. Pero esto sólo es útil si la aplicación va a cargar o generar dinámicamente muchas clases diferentes.

Jun 16 11:23

FastJTable

Las JTables Swing de Java por defecto suelen estar poco preparadas para manejar actualizaciones frecuentes y un gran número de columnas. Basándome en el código de Java de Christmas Tree (http://java.sun.com/products/jfc/tsc/articles/ChristmasTree/) he creado una extensión ligera de JTable que va bastante más rápida a la hora de manejar gran cantidad de filas.
/**
 * Based on Sun's CTTable (Christmas Tree): 
 * http://java.sun.com/products/jfc/tsc/articles/ChristmasTree/
 *
 * @author marias
 */
 
import java.awt.Component;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.Rectangle;
 
import javax.swing.CellRendererPane;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.JViewport;
import javax.swing.plaf.basic.BasicTableUI;
import javax.swing.table.TableModel;
 
import org.apache.commons.logging.Log;
import org.apache.commons.logging.L
Lenguaje: 
java
Abr 08 14:12

Análisis de Código: FindBugs

En el contexto en el que nos vamos introduciendo poco a poco y desde un tiempo a esta parte, vamos comprendiendo mejor la forma de hacer las cosas algo mas enfocada a la comunidad. Parches, Licencias, Formatos de código, etc.

En este contexto quiero hablar un poco sobre una herramienta sencilla, que tal vez nos sea de utilidad: FindBugs.

Estaba el otro día moviendome por la comunidad de temas java y entre enlace y enlace, llegué a este lugar: http://findbugs.sourceforge.net . Así conocí FindBugs.

1.-¿Que es findbugs?

Dic 23 22:56

La salud de Java

Bueno, revisitando el índice TIOBE ( http://www.tiobe.com ), para Diciembre de dos mil nueve, Java se encuentra en la posición número uno de la tabla. Volvemos a descubrir que el lenguaje Java sigue gozando de muy buena salud y buenas perspectivas de futuro.

Algunos no se muestran de acuerdo con el rankin de TIOBE, siempre es fuertemente criticado por aquellos que argumentan que sus métodos de cálculo favorece a unos lenguajes y a otros no, etc.