lunes 16 de junio de 2008

Supernova Burnout

Hay estrellas que provocan su propio fallecimiento creyendo que todo será perfecto si consiguen su siguiente proyecto. Pero la satisfacción psicológica esperada casi nunca se materializa. El éxito se convierte en una droga y sienten constantemente la necesidad de puntuar. En cuanto consiguen un objetivo se acostumbran a las alturas y el zumbido desaparece. ¿Y entonces qué? Necesitarán niveles cada vez más elevados de droga para obtener el efecto psicológico deseado.

Steven Berglas
(El agotamiento supernova)

jueves 12 de junio de 2008

Tooltips maravillosos

Mejor dicho: Prototip 2: "Create beautiful tooltips with easy".



Estan guapos... eh?!

martes 10 de junio de 2008

Curiosa animación interactiva

No, no es Flash. Es JavaScript !


bomomo.com

Define componentes Ajax con XML

dojo.E son unas extensiones de dojo 1.1 toolkit que facilita el uso de Ajax mediante scripts XML en la propia página, como en el siguiente ejemplo:



<script type="text/xml" dojoType="dojoe.XmlScript">
<ui xmlns="html" xmlns:layout="dijit.layout">
<layout:AccordionContainer duration="200">
<layout:AccordionPane title="Title One">
<div><b>Hello, World!</b></div>
</layout:AccordionPane>
<layout:AccordionPane title="Title Two">
<div><b>Hello Again!</b></div>
</layout:AccordionPane>
</layout:AccordionContainer>
</ui>
</script>
También permite la programación declarativa para hacer trasformaciones DOM, etc.

Ver otros ejemplos.

sábado 7 de junio de 2008

Generación de interfaz con Wicket RAD

Wicket RAD es un framework basado en Wicket que permite generar formularios a partir de anotaciones sobre las entidades Java del modelo de dominio (tipos de campos, orden, validaciones, etc).
Las entidades podrán tener además las anotaciones JPA correspondientes al objeto-relacional.

Ver este ejemplo, donde se tienen primero las anotaciones típicas JPA que relacionan la entidad con la base de datos, y después las anotaciones Wicket RAD que la relacionan con el formulario a generar:

public class PhoneBookEntry implements Identifiable {
@Id
@Column(name="full_name")
private String id;
@Column(name="phone")
private String phonenumber;
@Column(name="country")
private String country;
@Column(name="gender")
private String gender;
@Column(name="active")
private boolean active;

@FieldOrder(1)
@TextField
@Required
@EditScope(EditScope.Scope.CREATE)
@UniqueField
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}

@FieldOrder(2)
@TextField
@Required
@Length(min=3, max=20)
public String getPhonenumber() {
return phonenumber;
}
public void setPhonenumber(String phonenumber) {
this.phonenumber = phonenumber;
}
@FieldOrder(3)
@DropDownChoice(CountrySource.class)
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
@FieldOrder(4)
@RadioGroup(GenderSource.class)
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}

@FieldOrder(5)
@CheckBox
public boolean isActive() {
return active;
}
public void setActive(boolean active) {
this.active = active;
}

}
Esta idea de generación de interfaz es similar a la que veíamos en el scaffolding de Grails.

Puedes descargar el framework (wicket-rad-core) y una pequeña aplicación de ejemplo (wicket-rad-samples) en sourceforge.

Para probarlo rápidamente leer los archivos readme.txt.
  • Con maven basta hacer "mvn clean install" en wicket-rad-core, que descargará automáticamente las dependencias y compilará e instalará el framework en tu repositorio maven.
  • Después hacer "mvn clean install" y "mvn exec:java -Dexec.mainClass="org.wicketrad.Server"" para compilar, instalar y ejecutar la aplicación de ejemplo, que estará accesible en http://localhost:8080.

(Vía TheServerSide.com).

viernes 6 de junio de 2008

Oracle dona Toplink a Eclipse (EclipseLink)

Aunque Toplink seguirá existiendo como producto comercial, estará compuesto por EclipseLink, la plataforma de persistencia de Eclipse que ofrecerá todas las funcionalidades del motor de persistencia (sin restricciones), aunque ofrecerá extensiones para una integración avanzada con Oracle Application Server.

Ver el FAQ de Oracle.

El proyecto está actualmente en fase de incubación.

La licencia será la Eclipse Public License.

Neo4j, una base de datos de grafos

Neo4j es un motor de persistencia robusto, escalable y empotrado para la gestión eficiente de datos semiestructurados y orientados a redes.


  • Orientado a redes. Al igual que el modelo relacional está basado en tablas, columnas y filas, Neo está basado en nodos, propiedades y relaciones, que pueden formar una gran red o grafo.
  • Especialmente indicado para datos semiestructurados. Donde sólo algunas propiedades son obligatorias y la gran mayoría son opcionales.
  • Está empotrado. Es una librería Java no intrusiva y de poco peso.
  • Rendimiento y escalabilidad. A sido diseñado teniendo en mente estas cuestiones y ha sido probado con grandes redes (de más de 100 millones de nodos, propiedades y relaciones).
  • Robusto. Soporta JTA y JTS. Es maduro, hasta 3 años en producción en sistemas 24x7.
  • La API es muy sencilla, y permite representar los datos de una manera flexible e intuitiva.
  • Las consultas están basadas en la navegación por los nodos y relaciones. También permite usar "Transversers", que son objetos para realizar consultas del tipo: "dime todos los amigos de Morfeo y los amigos de sus amigos", o "¿cónoce Trinity a alguien que esté emparentado con un agente?".
  • Cuenta con versiones comerciales y de software libre.
Sin embargo:
  • Requiere cierta curva de aprendizaje. No hay demasiada gente que sepa de modelos orientados a redes.
  • Las herramientas existentes de consulta son muy rudimentarias.
  • Es mucho peor que el modelo relacional para datos estructurados que requieren consultas arbitrarias.
Ver más en la documentación.

(Vía InfoQ).