Posts Tagged 'programación'

YAML – Generador de layouts basados en CSS

En algún post anterior hacía referencia a sitios web con layouts css para hacer C&P. Vía fresherswisdom.com he conocido YAML, una interesante aplicación online que permite, de modo visual, la creación de layouts «limpitos» de modo personalizado.

yaml

La historia de los lenguajes de programación según Google

Gracias a Google Squared la nueva herramienta de google de categorización de datos podemos por ejemplo tener una visión general de la historia de los lenguajes de programación.

googleLang

Visto en dzone.com

Firefinder para Firebug

Siguen apareciendo extensiones para Firebug. La última que he encontrado se llama Firefinder y ofrece la posibilidad de acceder directamente a elementos HTML a partir de selectores CSS o expresiones XPath.

firefinder

Visto aquí.

Otro forma de visualizar algoritmos de ordenación (ahora en JS)

Hace 2 o tres post, hacía referencia a una curiosa forma de mostrar el funcionamiento de algoritmos de ordenación. No soy el único al que le llamo la atención y vía Dzone he encontrado una migración de Python a Javascript (haciendo uso de canvas).

sort_canvas

Por cierto, si te gustan los experimentos con JS en Nihilogic puedes encontrar cosas muy curiosas como por ejemplo scrollbars bailando al ritmo de la música.

A veces tengo la sensación de que el compilador ignora todos mis comentarios.

Traducción libre de un comentario aparecido en una línea de código.

Protovis

Protovis es una api Javascript para la creación de gráficas haciendo uso del elemento canvas de HTML 5. Aún esta en fase experimental y solo funciona en Firefox, Chrome y Safari pero aún así promete. Se distribuye además con licencia BSD.

protovis

La mejor fuente para programar XD

Muchos son las comparativas de tipos de fuente ideales para programar. Este es mi favorito:

group-sex

Visto en fontreactor.com

Robot animado con jQuery

jQuery + un poco de imaginación = un robot animado como este (http://css-tricks.com/jquery-robot/):

image-architecture

Ya me gustaría a mi tener tiempo para dedicarme a este tipo de cosas.

Visto en: smashingmagazine.com

Java: Entendiendo los parámetros Xmx y Xms (parte I)

Recientemente he recibido una notificación del CPD donde uno de «mis clientes» alojan una aplicación web Java™ desarrollada por mi equipo advirtiéndome de que la misma estaba consumiendo grandes cantidades de memoria (más de 1 Gb) que aparentemente no se recuperaba (sube de modo gradual sin llegar a liberar).

La razón, lejos de ser un problema de la aplicación en cuestión, es más bien un comportamiento correcto acorde con los parámetros de configuración de la máquina virtual asignados por parte de los administradores del servidor de aplicaciones que, en concreto, eran -Xms500m -Xmx1700m.

Estos parámetros explican perfectamente este comportamiento. Veamos la teoría:

  • Xms: Indica el tamaño mínimo del heap que ha de reservar la máquina virtual.
  • Xmx: Indica el tamaño máximo del heap.

Veamos ahora que ocurre en la práctica:

1.- Añadimos el siguiente parámetro a la máquina virtual para poder monitorizar remotamente nuesta aplicación-cobaya:

-Dcom.sun.management.jmxremote

2.- Fijamos los parámetros Xmx y Xms por ejemplo así:

-Xmx512m
-Xms128m

3.- Ejecutamos la consola de Java usando el comando jconsole (viene de serie con el JDK) y nos conectamos el agente correspondiente a la aplicación a testear.

agente

4.- Ahora podemos ver, tras hacer click en la pestaña «memory» y meter caña a la aplicación en paralelo, la gráfica de memoria. Para los parámetros antes fijados dicha gráfica debería ser similar a esta.

-Xmx512m

-Xmx512m

Como se puede observar la memoria usada del heap va aumentando escalonadamente hasta aproximarse al especificado en el parámetro Xmx. Una vez llegado a lo alto del pico el GC limpia y el uso de memoria cae en picado para volver de nuevo a empezar el ciclo.

Si por ejemplo fijamos el parámetro Xmx a 128 megas el pico máximo sería precisamente un valor próximo a esa cantidad. La gráfica sería similar a la anterior aunque las iteraciones serían, como es lógico más cortas:

-Xmx128

-Xmx128

En próximos posts mostraré el comportamiento en casos de andar escasos de memoria, fijar valores muy bajos, como tunear estos parámetros, etc.

Python para niñ@s

Snake wrangling for kids es un libro con licencia CC escrito con el malevolo fin de introducir a los niñ@s en el «maravilloso» mundo de la programación.

cover-tn

Existen seis versiones del libro en función de la versión de Python (2 o 3) y del sistema operativo (Linux, Windows o Mac) y está disponible para ser descargado en formato PDF.

Se podría plantear como un paso posterior a la introducción a la programación por medio de aplicaciones visuales como las especificadas en anteriores posts.


Add to Technorati Favorites
Clicky Web Analytics Clicky

Flickr Photos