Más allá de lo que ves: octubre 2013

sábado, 19 de octubre de 2013

Hacer parpadear el título de página con jQuery

En algunas ocasiones se producen eventos en nuestra aplicación web pero el usuario no está en ese momento visualizando la pestaña o ventana en la que se ejecuta nuestra aplicación. Para esto podemos llamar su atención de diferentes maneras una de ellas es haciendo que el título de la pestaña parpadee con un mensaje.

Con el siguiente ejemplo se consigue este efecto de forma sencilla. Probado en Chrome, Safari y Firefox.

Espero pueda ser útil.

<html>
<head>
 <title>My Application</title>
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
 </script>
 <script type="text/javascript">
  (function () {
   var titleOriginal = document.title;   
   var intervalBlinkTitle = 0;

   // Inicia el parpadeo del título la página
   window.startFlashTitle = function (newTitle) {       
       if(intervalBlinkTitle == 0){
        document.title = 
         (document.title == titleOriginal) ? newTitle : titleOriginal;           

        intervalBlinkTitle = setInterval(function (){
         document.title = 
          (document.title == titleOriginal) ? newTitle : titleOriginal;           
        }, 1000);
    } 
   };

   // Para el parpadeo del título de la página   
   // Restablece el título
   window.stopFlashTitle = function () {       
       clearInterval(intervalBlinkTitle);
       intervalBlinkTitle = 0;
       document.title = titleOriginal;
   };
  }());
 </script>

</head>
<body>
 <button onclick="startFlashTitle('Hi, Joe !!!');">
  Start
 </button>
 <button onclick="stopFlashTitle();">
  Stop
 </button>
</body>
</html>

miércoles, 16 de octubre de 2013

Vaadin Spring Maven Archetype

Como comentaba en la entrada anterior Comando Tree para Mac ya he finalizado el archetype Maven base que crea un proyecto con Vaadin y Spring integrados de forma sencilla. Las versiones de Spring y Vaadin usadas como dependencias son Vaadin 7 y Spring 3.2.

Tanto el código con el que he creado (proyecto Maven) el archetype como el jar en su versión 0.8 los he puesto en GitHub.

Descargar el archetype: vaadin-spring-webapp-0.8.jar

El código está disponible para descargar y modificar/reutilizar según lo que necesitemos. Tengo pendiente de incluir algún tipo de licencia, pero ya lo veré con más tranquilidad.

Instalar el Archetype vaadin-spring-webapp

Para instalar el archetype en nuestro repositorio local una vez descargado no tenemos más que ejecutar desde la ubicación en la que tenemos descargado el archetype por ejemplo el siguiente comando desde consola:

mvn install:install-file                    \
   -Dfile=vaadin-spring-webapp-0.8.jar      \
   -DgroupId=org.fj2m                       \
   -DartifactId=vaadin-spring-webapp        \
   -Dversion=0.8                            \
   -Dpackaging=jar                          \
   -DgeneratePom=true


Crear un proyecto nuevo Maven con el archetype vaadin-spring-webapp

Una vez instalado el archetype en nuestro repositorio local vamos a crear un nuevo proyecto. Para ello voy a poner capturar de los sencillos pasos que debemos dar desde Eclipse, pero desde línea de comandos o IntelliJ por ejemplo sería similar:

1. Crear un nuevo proyecto en Eclipse.



2. Seleccionar Maven Project



3. Seleccionamos donde queremos ubicar el proyecto, por defecto en el Workspace con el que estemos trabajando.



4. Seleccionar el archetype instalado según indicaciones anteriores. Para ello podemos escribir vaadin-spring-webapp para que solo nos aparezca este.



5. Configurar el proyecto, definir: group Id, artifact Id, version, package y por último mediante una propiedad personalizada el nombre que le queremos dar a nuestra aplicación.



6. Ya tenemos configurado un proyecto Maven con Vaadin y Spring en el que contamos con un punto de entrada a la aplicación mediante la vista MainView.java, en esta se muestra un enlace a ExampleView.java que como su nombre indica es un ejemplo sencillo de vista Vaadin que consta de un formulario que solicita que el usuario introduzca su nombre y mediante una clase de servicio envía una clase de dominio a la capa de acceso a datos (Dao.java) que simplemente asigna el id de la clase de dominio recibida (Dominio.java) y pinta por consola el objeto recibido. Con este ejemplo tenemos lo básico para tener vistas, servicios, objetos de dominio y de persistencia.



7. Punto de entrada a al aplicación con enlace a la vista Vaadin de ejemplo.



8. Vista Vaadin de ejemplo con el formulario y la impresión por consola.


Espero sinceramente que pueda ser útil.

See you later !

domingo, 13 de octubre de 2013

Bricolaje Carpintería - Escritorio y Estantería en SketchUp

En este ocasión la cosa no va de tecnología, aunque al final la haya usado por el camino, para el objetivo final.

Quiero hacerle a mis hijos un escritorio junto con una estantería a cada uno para su habitación.

Después de tomar las medidas en las habitaciones, las medidas del escritorio y la estantería respectivamente serán:

Escritorio : 130 cm x 70 cm x 76,6 cm (ancho x fondo x alto)
Estantería : 120 cm x 33 cm x 38,2 cm

Una vez visto esto y hecho un pequeño plano en papel con lápiz he pasado a montarlo en 3D mediante SketchUp de Google.

El resultado es el que se puede ver en la imagen.

Ahora tan solo queda distribuir las diferentes piezas en tableros y llevar al almacén de maderas para que las corten y canteen.

Para la distribución de las piezas en los tableros utilizaré alguna herramienta como CutMaster a la cual le puedes indicar las dimensiones del(os) tablero(s), las dimensiones de cada una de las piezas, el número de ellas que necesitas, orientación de estas en el corte, bordes que irán canteados... Dispone de una opción para hacer la distribución automática más optima posible sabiendo así de una forma rápida el número de tableros que necesitarás para el trabajo.



sábado, 12 de octubre de 2013

Comando Tree para Mac

Siguiendo con el aprendizaje de Vaadin y con su integración con Spring estoy intentado realizar un "archetype" que permita montar una aplicación web con Vaadin y Spring configurado. Me he encontrado con un par de roquillas que para sortearlas he tenido que "googlear" un poco y que voy a recoger en este post por si a alguien (o a mi mismo en un futuro) le pueden ser de ayuda.

PRIMERA
Utilizar el comando "tree" en Mac sobre una carpeta desde línea de comando. Si bien parece que se puede instalar he encontrado una sentencia que desde línea de comandos nos hace el mismo efecto esta es la siguiente:

find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'



SEGUNDA
Para mostrar los archivos ocultos en el Mac si no se ven tan sencillo como ejecutar:

defaults write com.apple.finder AppleShowAllFiles TRUE
killall Finder

Para volver a ocultarlos:

defaults write com.apple.finder AppleShowAllFiles FALSE
killall Finder


TERCERA
Sobre un proyecto "Dynamic Web Project" de Eclipse si no nos permite pasar el facet web de la versión 3.0 a la 2.5, buscamos en los ficheros de la carpeta .settings del proyecto el que tiene por nombre: org.eclipse.wst.common.project.facet.core.xml

Cambiamos: <installed facet="jst.web" version="3.0"/>

Por: <installed facet="jst.web" version="2.5"/>


Tengo ya el archetype apunto de finalizar. Me quedan algunos retoques, la siguiente entrada será crear un proyecto web Maven, con Vaadin y Spring configurado en menos de un minuto.


See you later !

martes, 1 de octubre de 2013

Añadir archetype Maven: "vaadin-archetype-application" a Eclipse

Estoy viendo el uso de Vaadin desde Eclipse y al intentar crear un proyecto Maven con el archetype correspondiente "vaadin-archetype-application", me he encontrado con que no me aparecía este en la consola de Eclipse para seleccionarlo.

Para que aparezca no hay más que hacer clic en el botón "Add Archetype" e informar en el formulario de alta los siguiente:

  • Archetype Group Id: com.vaadin
  • Archetype Artifact Id: vaadin-archetype-application
  • Archetype Version: LATEST
  • Repository URL: lo dejamos vacío.




Pulsamos en ok y Eclipse se encarga de buscar en los repositorios de Maven que tiene configurados el "archetype" solicitado y descargarlo, para nosotros.

Ahora ya está disponible para poder seleccionarlo.


UPDATED (01/10/2013)
Una vez hecho todo eso y al correr el proyecto con el plugin de Jetty (goals= jetty:run) me aparecía el siguiente error:

Vaadin GWT compilation fails: nocache.js file not found

Para solventar lo que he hecho es quitar de la configuración del Servlet el parámetro widgetset, en mi caso la configuración para Servlet 3.0 venía realizada mediante la anotación @VaadinServletConfiguration, si por el contrario la configuración la tienes mediante web.xml para Servlet 2.5 -> lo que debes buscar es el parámetro widgetset en el web.xml y eliminarlo para que te corra bien el proyecto sin problemas.


Si por el contrario lo quieres ejecutar sobre un servidor por ejemplo Tomcat que tengas integrado ya en Eclipse -> no tienes más que hacer clic con el botón derecho y seleccionar "Run as" / "Run on a Server". Seleccionamos el tomcat en cuestión y voila !! tenemos un proyecto con Vaadin, Maven y Tomcat corriendo sobre Tomcat 5