Páginas

viernes, 29 de julio de 2011

Google Page Speed Service, incrementa la velocidad de carga

Google ha lanzado en fase beta un servicio online para mejorar la velocidad de carga de nuestras páginas web de forma automática.

Su funcionamiento lo que hace básicamente es recuperar el contenido de nuestros servidores y reescribir las salidas HTML aplicándole mejoras de eficiencia de código que finalmente se redistribuyen a través de los servidores de google.

Podéis encontrar más información en http://code.google.com/intl/es/speed/pss/docs/tryit.html.

miércoles, 27 de julio de 2011

blekko, slash the web (barra web)

blekko es un buscador en la red que nos permite recuperar información de los sitios que hacen referencia al contenido de nuestras páginas.


Con este buscador vamos a poder ver estadísticas de las localizaciones que hacen referencia a nuestra página. Por ejemplo, si buscamos referencias de www.java.com tenemos estos resultados:


Podéis encontrar más de blekko en su página web o en este vídeo.


viernes, 22 de julio de 2011

El Laboratorio de Google

Ahora que parece que Google va a dejar de lado su conocido laboratorio Google Labs (ver post), vamos a ver algunos de los últimos proyectos que han sacado y que pueden sernos de ayuda...

PageSpeed Online analiza el contenido de una página web y, a continuación, genera sugerencias para aumentar la velocidad de esa página. Disminuir los tiempos de carga de páginas puede reducir el número de abandonos de páginas y aumentar las tasas de conversión.


Google Swiffy del que ya hemos hablado en otro post, nos permite convertir vídeos Flash en formato HTML5.

Aardvark o lo que es lo mismo Cerdo hormiguero, se montó con gran éxito hace tiempo y nos permite realizar preguntas o responder a ellas sobre cualquier temática que queramos. El objetivo consiste en recibir una respuesta en menos de media hora. No siempre es así...



jueves, 21 de julio de 2011

Firebug a fondo

Firebug es una impresionante extensión de Mozilla Firefox para el desarrollo de páginas web y que una vez que lo has usado se convierte en indispensable. Con la aparición de Chrome, que trae incluida una herramienta parecida, su uso (por lo menos en mi caso) ha empezado a ser menor principalmente por la velocidad del navegador de Google.

Hablando de Firebug, vamos a poder editar y depurar código además de monitorizar el sitio en el que trabajamos. Las principales funcionalidades son:
  • Edición de HTML en caliente (en tiempo real)
  • Edición de hojas de estilos (en tiempo real)
  • Monitorización de la carga de las páginas
  • Depuración del Javascript de nuestras páginas
  • Gestión de errores Javascript, CSS y XML
  • Explorador de DOM
La extensión Firebug tiene varias opciones en su menú principal: Consola, HTML, CSS, Script, DOM y Red. A su vez se pueden instalar extensiones como un gestor de cookies.

miércoles, 20 de julio de 2011

BrowserID, la solución de Mozilla para la autenticación web

Mozilla presenta una solución para poder recordar las múltiples contraseñas de los sitios web en que estamos registrados o tenemos una cuenta. Esta propuesta no es únicamente para el navegador Firefox sino que funciona para todos los existentes (Chrome, Opera, Internet Explorer...).

La idea que ofrece BrowserID es utilizar el correo electrónico del usuario como clave de acceso para todos aquellos sitios que requieren autenticación evitando tener que recordar el usuario y contraseña.

Cuando se accede por primera vez a BrowserID se solicita una contraseña y una dirección de correo electrónico (en este caso sí que vamos a necesitar recordar la contraseña). Con esta información y a través de la tecnología Verified Email Protocol se comprobará la validez de ésta.

Una vez realizado este paso dispondremos de una identificación única para cualquier registro online basada en criptografía asimétrica (PKI) con una clave pública disponible para los proveedores de contenidos y una privada que se almacenará en nuestro navegador. La verificación de las claves se realizará en los servidores de BrowserID.

La principal diferencia respecto a OpenID es que esta autenticación está integrada en el navegador. El problema es que si alguien entra en nuestro equipo podrá acceder a cualquiera de los sitios en los que estemos registrados.

Aquí tenéis un vídeo de cómo funciona que aparece publicado en su web oficial.

Veremos más adelante cómo funciona esta idea...

WebSVN, explora tu repositorio de código

WebSVN es un explorador web online de tu repositorio de código. Su instalación y configuración es muy simple. Únicamente necesitarás tener montado un Apache y editar el fichero de configuración de la aplicación. Soporta múltiples repositorios, tanto locales como remotos, RSS. Podrás descargar ficheros y directorios, comparar versiones. Por cierto, viene preparado para multilenguaje.

Aquí tenéis una captura de la pantalla de inicio...



lunes, 18 de julio de 2011

Mapear unidad de red de Windows en Linux

Ante la necesidad de acceder desde Linux a unidades compartidas en otros servidores Windows se hace imprescindible de forma permanente el montaje de estas unidades en nuestro sistema Linux.
Aquí se expone de forma sucinta y sin profudizar el mecanismo básico para el montaje de dichas unidades.
En rimer lugar debemos comprobar que el servicio nfs se encuentra ejecutando en nuestro sistema. Esta comprobación será llevada a cabo a través del siguiente comando.
service nfs status

La salida devuelta por el comando será similar a la que sigue.
[root@server-JB ~]# service nfs status
Se está ejecutando rpc.mountd (pid 1784)...
Se está ejecutando nfsd (pid 1781 1780 1779 1778)...
Se está ejecutando rpc.rquotad (pid 1751)...
A continuación se debe comprobar la existencia y puesta en marcha de los paquetes y servicios Samba. Las diferentes distribuciones de Linux ofrecen una forma de comprobación diferente, por lo que a continuación se muestra una de ellas, la correspondiente a Red Hat. 
rpm -qa samba
Este comando ofrece una salida similar a la siguiente, donde se muestra el nombre del paquete y la versión instalados.
[root@server-JB ~]# rpm -qa samba
samba-3.2.0-1.pre3.9.fc9.i386
El servicio Linux que arranca la aplicación Samba recibe el nombre smb. Para comprobar su estado se usará el siguiente comando.
service smb status

PerGem (Permanent Generation Space)

Muchas veces nos encontramos con este error:
 Java.lang.OutOfMemoryError: PermGen space
Pero, ¿sabemos de que se trata?

Este error ocurre cuando la JVM se queda sin espacio en el 'montículo permanente de generación', es decir, en el trocito de memoria asignada a la JVM para que compile las clases, los jsp, etc.

La solución es incrementar la opción -XX:MaxPermSize a un valor razonable y soportado por el hardware. Por ejemplo:
JAVA_OPTS = "$JAVA_OPTS -XX:MaxPermSize=512M"
Aumentaría el tamaño de generación a 512 mb. 


Activar modo DEBUG en JBoss AS

Hoy vamos a ver cómo poner en modo debug el servidor de aplicaciones JBoss en el que tenemos montadas nuestros aplicativos...
Lo primero que debemos hacer es parar el servidor jboss. Para ello, habitualmente según la instalación que hayamos realizado podremos parar el servidor a través de un servicio.
service jbossas stop
Si no tenemos un servicio ejecutaremos el shutdown.sh que se encuentra en el directorio bin del servidor JBoss. Para comprobar que está parado haremos
ps ax | grep java
Si no aparece ningún proceso relativo al servidor éste estará parado.

A continuación deberemos cambiar la configuración de arranque del JBoss. Para ello deberemos editar el fichero de configuración run.conf que se encuentra en el directorio bin donde tengamos instalado el servidor de aplicaciones.

Para activar/desactivar el modo debug mediante socket, sólamente tendremos que descomentar/comentar la siguiente línea del fichero:

 #JAVA_OPTS="$JAVA_OPTS –Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y"

A continuación deberemos guardar los cambios.

viernes, 15 de julio de 2011

Recess Framework, php al alcance de todos

Estos días he estado echando un vistazo a un framework php que permite crear aplicaciones con gran sencillez. Podéis encontrar más información en http://www.recessframework.org/.

Vamos a ver un poco cómo está montado. Su instalación es muy sencilla. Únicamente necesitaremos tener instalado un apache y php (al menos la versión 5.2.4). Se sugiere instalar el módulo mod_rewrite.

Una vez instalado y configurada la base de datos que vamos a utilizar podemos acceder al framework en http://localhost/recess. Haciendo clic en el menú apps veremos la siguiente pantalla donde podremos empezar a crear nuestra primera aplicación (Start a New Application).



jueves, 14 de julio de 2011

Comenzando a usar Maven (V)

Seguimos con el tema Maven...

Integración con Eclipse
Bueno, todo esto está muy bien, pero si yo trabajo con un IDE como eclipse, ¿cómo encuentro ahora los jar en un sitio tan escondido?. Fácil. Maven es capaz de generar un proyecto de Eclipse.
Primero debemos definir dentro de Eclipse la variable M2_REPO apuntando a nuestro repositorio local de Maven. Esto puede hacerse desde una línea de comandos maven:
mvn -Declipse.workspace= eclipse:add-maven-repo
o bien desde dentro de Eclipse. En el menú seleccionamos Window > Preferences. Luego Java > Build Path > Classpath Variables y ahi definimos M2_REPO apuntando a C:\Documents and Settings\usuario\.m2
Una vez que tenemos creado un proyecto maven, generamos los ficheros necesarios para eclipse con
mvn eclipse:eclipse
Esto generará dos ficheros .project y .classpath en el directorio. Ahora desde Eclipse
  • En el menú "File", "Import".
  • En la ventana que sale, elegimos "Existing projects into workspace" y "Next".
  • Elegimos "Select root directory" y le damos a "Browse". 
  • Elegimos el directorio de maven donde está nuestro proyecto. Con esto debería compilarse el proyecto, cogiendo los jar necesarios del repositorio local y todo lo demás.
También hay plugins en nuestros IDE's que hacen más fácil el trabajo con maven, de forma que desde nuestro IDE podamos ejecutar las tareas maven.
En codehaus tienes los plugins para los cuatro IDEs más conocidos: Eclipse, NetBeans, IntelliJ y JBuilder.

miércoles, 13 de julio de 2011

Un tema de permisos...



- Hazme un sandwich
- ¿Qué? Háztelo tú.
- Que me hagas un sandwich.
- Ok.

Comenzando a usar Maven (IV)

En este nuevo capítulo continuamos con los repositorios...

Repositorios Maven
Una de las grandes ventajas de maven son los repositorios (almacenes) de ficheros jar que se crea.
En el siguiente enlace tienes el repositorio oficial de jars de maven. Ahí están los groupId de casi todos los jar de libre distribución que puedas encontrar en internet. Tienes el log4j, commons-logging, JFreeChart, mysql-connector, etc, etc. Maven es capaz de bajarse cualquiera de estos jar si tu proyecto lo necesita.
Todo lo que se baje maven de internet lo mete en un repositorio (almacen) local en tu pc, de forma que si lo necesita una segunda vez, no necesita descargárselo nuevamente de internet. Este directorio, habitualmente está en
  • $HOME/.m2 en unix/linux
  • C:\Documents and Settings\usuario\.m2 en windows
Adicionalmente podemos configurar maven para que use más repositorios, tanto de internet como otros que montemos internamente en nuestra red local si la tenemos. Por ejemplo, en internet tienes otro repositorio con jars independiente de maven.
El repositorio interno en la red local es particularmente útil si trabajamos en una empresa y hacemos proyectos que son dependientes unos de otros o tenemos nuestras propias librerías de jars. Poniendo jars en ese repositorio de empresa, todos los programadores podrán acceder o subir jars a ese repositorio y compartirlos.

martes, 12 de julio de 2011

Comenzando a usar Maven (III)

Ahora llega el momento duro. Debemos empezar a escribir el código, tanto de nuestro proyecto como de las clases de test de JUnit, si es que seguimos al pie de la letra las costumbres de buena programación. Desgraciadamente, todavía no hay herramientas que hagan este trabajo por nosotros, así que a ello.

Compilar
Una vez que tenemos todo, podemos compilar de forma sencilla. Basta ponerse en el directorio donde está el fichero pom.xml y escribir
mvn compile
Esto creará un directorio target justo debajo de EjemploMaven y ahí un subdirectorio classes donde meterá todos los .class de nuestro compilado: 

EjemploMaven
+---src
¦   +---main
¦   ¦   +---java
¦   ¦       +---
¦   ¦           +---ejemplos
¦   +---test
¦       +---java
¦           +---
¦               +---ejemplos
+---target
   +---classes
       +---
           +---ejemplos   //Aquí los .class

lunes, 11 de julio de 2011

Comenzando a usar Maven (II)

Siguiendo con el hilo que dejamos el otro día vamos a empezar por cómo crear un proyecto Maven.

Crear un proyecto
El primer paso con maven es crear un proyecto desde cero. El comando de maven que tenemos que ejecutar es
mvn archetype:create -DgroupId=ejemplos -DartifactId=EjemploMaven

Veamos los parámetros:
  • archetype:create es el comando de maven para crear un proyecto. Por defecto crea un proyecto de java normalito (mirar los arquetipos definidos en metodología)
  • -DgroupId=ejemplos es el conjunto de proyectos al que pertenece nuestro proyecto. Por ejemplo, yo puedo meter todos mis programas de ejemplo en un grupo que llamaré "ejemplos". Este nombre que pongamos aquí va a servir de paquete inicial para todas las clases del proyecto. Todos los proyectos maven deben pertenecer a un grupo, aunque sea único para él, que se denominará groupId
  • -DartifactId=EjemploMaven es el nombre que queramos dar al proyecto. Maven creará un directorio con este nombre y el jar que genere para el proyecto tendrá también este nombre. Todos los proyectos maven tienen un nombre para identificarlos, que se denomirá artifactId 

jueves, 7 de julio de 2011

Comenzando a usar Maven (I)

El software de hoy ya no son creaciones monolíticas de un único equipo trabajando localmente en el proyecto. El cada vez mayor número de componentes de código abierto robusto de nivel empresarial hace que los proyectos de software modernos necesiten de una colaboración más dinámica entre los equipos de los proyectos y a menudo esto depende de una mezcla de componentes creados globalmente y otros creados localmente. Mientras que otras herramientas de construcción como Ant da un conjunto de herramientas para construir los bloques del proyecto, Maven cubre muchas de las necesidades normalmente inexistente en estas herramientas y que son requeridas en todos los proyectos.

miércoles, 6 de julio de 2011

Selenium IDE - testeando aplicaciones web

Selenium IDE es un entorno de desarrollo integrado. Está implementado como una extensión de Firefox, y le permite grabar, editar y depurar las pruebas. No es sólo una herramienta de grabación.
Aquí tienes sus principales características: registrar y reproducir los tests, depurar y establecer puntos de interrupción, guardar las pruebas como HTML, scripts Ruby, o cualquier otro formato, etc...


Aquí tienes un vídeo de su funcionamiento. Para más información entra en Selenium IDE plugins.

Jalopy y PMD - Formatea y haz eficiente tu código Java

Con Jalopy podrás embellecer tu código Java. Esta herramienta ayuda a que el código siga un estilo común entre diferentes desarrolladores, aún cuando cada desarrollador haya seguido su propio formato. También ayuda a que en los merges de código entre diferentes ramas sea más sencillo. Está integrado con Eclipse y su instalación es muy sencilla. Descárgate el plugin de la página del proyecto y descomprímelo en la carpeta plugins del eclipse que tengas instalado. Reinicia el Eclipse y podrás encontrar el menú de configuración de Jalopy.



PMD es un analizador estático de código Java que identifica los siguientes problemas potenciales:

  • Posibles bugs: bloques try/catch/finally/switch varios.

  • Código muerto: Variables, parámetros y métodos privados no usados.

  • Sentencias if/while vacías.

  • Expresiones muy complicadas: sentencias if innecesarias, bucles for que podrían ser while...

  • Código subóptimo: Uso inapropiado de String/StringBuffer.

  • Clases con complejidad ciclomática muy alta.

  • Código duplicado: Código copiado y pegado puede significar Errores copiados y pegados. Ademas disminuye la mantenibilidad.

Normalmente los errores detectados por PMD no son verdaderos errores, sino más bien código poco eficiente. Es decir, la aplicación puede que siga funcionando, pero de una manera ineficiente y probablemente con una mayor tendencia a los errores.

PMD también se ecuentra integrado con Eclipse.


lunes, 4 de julio de 2011

La organización de las empresas tecnológicas...

He encontrado esta viñeta de cómo se organizan las empresas tecnológicas más importantes del momento.



Amazon aparece como la más organizada y jerárquica. Google aparece organizada pero con relaciones entre todos los departamentos. Apple funciona entorno a lo que diga Steve Jobs y Facebook ....


Aquí tenéis lo que podría ser una conocida charcutera española. A ver si alguien la reconoce.



Podéis enviar vuestros gráficos de las que conocéis más de cerca.