Archivo por meses: mayo 2012

Solucionar el error: ‘MAX_FRAMES_PER_TRACE limit’

Trabajando con Spring Roo y STS, es posible que llegado el momento os encontréis de bruces con este error:

28-feb-2012 10:08:12 com.springsource.insight.intercept.trace.SimpleFra meBuilder enter
GRAVE: Frame stack exceeded MAX_FRAMES_PER_TRACE limit or has been aborted limit: 3000 frameCount: 3000 aborted: false
28-feb-2012 10:08:12 com.springsource.insight.intercept.trace.SimpleFra meBuilder enter
GRAVE: Frame stack exceeded MAX_FRAMES_PER_TRACE limit or has been aborted limit: 3000 frameCount: 1 aborted: true
28-feb-2012 10:08:12 com.springsource.insight.intercept.trace.SimpleFra meBuilder enter
GRAVE: Frame stack exceeded MAX_FRAMES_PER_TRACE limit or has been aborted limit: 3000 frameCount: 1 aborted: true
28-feb-2012 10:08:12 com.vaadin.Application terminalError
GRAVE: Terminal error:
java.lang.IllegalStateException: Imbalanced frame stack! (exit() called too many times)

Este error surge por las limitaciones de Spring Insight, la máquina virtual con el servidor de desarrollo integrado en STS, que con la configuración por defecto nos genera este error en cuanto empecemos a desarrollar una aplicación que realice muchas operaciones sobre una base de datos.

Para solucionarlo, tan sencillo como añadir en la configuración de ejecución «Run -> Run Configurations -> VMware vFabric tc Server Developer Edition v2.6» el siguiente argumento al arranque de la máquina: «-Dinsight-max-frames=200000»

Tras añadir la opción, paramos el servidor y al volverlo a iniciar y lanzar nuestro proceso, ya no debería darnos el error. En el caso del ejemplo, con el valor incrementado a 200.000 nuestro proceso no volvió a fallar en local.

HTML5 – 10 nuevas etiquetas.

Vía TechRepublic llego a un artículo sobre 10 nuevas etiquetas de HTML5:

Un rápido resumen:

  1. <video> y <audio> : soporte directo a visualizar vídeos o escuchar audio sin el uso de Flash o Silverlight.
  2. Atributos de <input> : esta etiqueta no es nueva, pero ahora incorpora nuevos tipos de atributos. Ejemplo: el tipo ‘datetime’ permite que el navegador muestre un calendario o reloj para el campo.
  3. <canvas> : con esta etiqueta disponemos de un lienzo en el navegador para dibujar y mostrar gráficos o gráficas (de barras, de tarta, etc…).
  4. <header> y <footer> : de tipo semántico, estas etiquetas nos servirán para indicar a los buscadores, a la hora de indexar nuestra web, dónde está el contenido de nuestros artículos.
  5. <article> y <section> : igual que las anteriores también son semánticas. Un artículo puede estar compuesto por diversas secciones y viceversa. Con estas etiquetas podemos estructurar mejor el contenido que mostremos.
  6. <output> : con esta etiqueta podemos definir una zona cuyo contenido será generado de forma dinámica con javascript, a través del DOM.
  7. <details> : esta etiqueta nos permite definir una zona de texto que se expande y se colapsa, pero sin utilizar javascript para ello.
  8. <figure> y <figcaption> : la primera define un contenedor para imágenes (o cualquier otra cosa), la segunda define el texto que aparecerá como subtítulo del primero.
  9. <progress> y <meter> : estas etiquetas son similares, la primera para mostrar el progreso de una tarea (barra de progreso), la segunda nos permite presentar una barra de valores.
  10. <datalist> : con esta última etiqueta podemos presentar en un campo una lista de sugerencias, aunque el usuario siempre es libre de introducir lo que quiera.

En los enlaces de cada etiqueta podéis acceder a una explicación más detallada en w3schools.com, donde si pulsáis en el botón ‘Try yourself’ podéis acceder a un ejemplo para cada uno.

Configurar el TL-WA901ND en modo repetidor WIFI

Edito 2014-03-10: Este vídeo es muy ilustrativo: http://www.youtube.com/watch?v=svPB8aBXI4w

Antes de explicar como configurar el punto de acceso TL-WA901ND, vamos a ver que uso le queremos dar.

En mi casa recibo una señal wifi gratuita, del ayuntamiento, pero solo llega a una habitación. En el resto de la casa no hay forma y en los móviles, ni siquiera hay suficiente señal en esa habitación.

Así que, necesitaba un repetidor, algo que recibiese la señal y la emitiese de nuevo con mas potencia:

Esta funcionalidad es una de la que nos aporta el TP-LINK TL-WA901ND:

Es un cacharro versátil (Punto de acceso, Cliente, Universal / Repetidor WDS, Puente Inalámbrico), con una velocidad de transmisión inalámbrica de 300 Mbps, muy fácil de configurar y que incorpora PoE.

Es importante entender que lo que va a hacer este cacharro es repetir la señal de forma idéntica a la que recibe: tendrá el mismo SSID y deberemos configurar la seguridad de forma idéntica. La forma en que veremos que está funcionando será por el nivel de potencia de la señal. Si queremos ver realmente que estamos recibiendo dos señales con el mismo SSID, podemos usar la herramienta inSSIDer, que nos mostrara cada señal y la mac y marca del cacharro que la envía.

Las instrucciones son muy simples de seguir (ver el manual):

  1. Primero tendremos que ponernos con un equipo/portátil en la zona donde se recibe la señal. Podemos usar la herramienta inSSIDer para comprobar la señal que recibimos así como la marca del moden que la envía.
  2. Conectamos por cable con el TPLink.
  3. Ponemos en nuestro adaptador de red, la IP 192.168.1.100 y 255.255.255.0 como mascara.
  4. Con esto ya podemos entrar a configurarlo, poniendo en un navegador la dirección 192.168.1.254 con admin/admin
  5. En la configuración, seleccionamos el modo repetidor universal.
  6. Cambiamos el país.
  7. Le damos a «survey».
  8. Elegimos la señal a repetir.
  9. Le damos a guardar.
  10. Vamos a seguridad y ponemos la configuración necesaria para poder recibir la señal. La señal repetida usará esa misma clave para dar acceso, digamos que hace un puente, simplemente. Si la que recibimos es WPA, tendremos que configurarla en modo WPA y con la misma clave.
  11. Y ya está. Ya podemos soltar el cable de red, volver a poner la ip que tuviesemos en nuestro adaptador e irnos a la habitación a la que no llegaba la wifi para disfrutar de toda la potencia de este cacharro.

Aunque tambien te puede ocurrir que lo hayas comprado en marzo de 2012 mas o menos y no te funcione. Puede que no veas mas nivel de señal que antes, puede que con el inSSIDer no veas una wifi emitida por un TP-LINK….

Es lo que me pasó a mi. Después de hacer lo típico: reset y repetir, salir y volver a entrar, ir a tomar unas cañas a ver si a la vuelta se había arreglado solo, etc., me puse a buscar por internet.

Las respuestas mas lógicas hablaban de cambiar la configuración de la IP del cacharro, concretamente cambiando el Gateway por la ip del router que emite la señal que queremos repetir.

Esta IP suele ser la 192.168.1.1, pero se puede ver con el IP config, será de la puerta de enlace de la wifi que me esta dando IP.

Pero, esto no sirvió de nada.

Siguiente paso, el soporte y las FAQ de TP-LINK. El soporte fué rapidisimo, era un domingo y el lunes a primera hora ya me habia contestado, aunque lo habia arreglado el domingo.

Después de no encontrar nada en las FAQ, dí por hecho que algo estaba mal en el router… y me fui a mirar los firmware publicados para mi cacharro, y el último, que no era el que traía mi cacharro, pone esto:

Modifications and Bug Fixes
  1. Fixed the bug that it can’t forward multicast packets when it works in AP Client/Universal Repeater mode;
  2. Fixed the bug that only when 4 SSID are used can VLAN function take effort;
  3. Added more IGMP group to support more applications.

Seguí el procedimiento de actualización:

  1. Bajar el ficherito y descomprimirlo
  2. Volver a conectar por cable con el TPLink y volver a poner la IP en mi adaptador
  3. Entrar como admin/admin
  4. Ir a actualizar el firmware
  5. Indicarle donde esta el fichero y darle a actualizar asegurándonos que no se vaya luz durante el proceso.
  6. Por ultimo, lo resetee y repetir los pasos del 1 al 11 del principio y…
  7. Perfecto. Una señal bestial en toda la casa.

Pues ese fue todo el proceso. Con esto, ahora mismo tengo señal en todos los móviles y en el portátil, en cualquier parte de la casa.

Ah, el cacharrito cuesta unos 48€.