Secciones

WSO2 ESB : Deploy https proxy services

Al intentar desplegar servicios SSL (https) en WSO2 ESB aparece un mensaje de error indicando que no se puede establecer la conexión con el servidor.

Esto es debido a que el certificado que utiliza el servidor al que nos queremos conectar por el canal https, no pertenece a la lista de certificados reconocidos o de confianza del servidor WSO2 ESB.

Los certificados de confianza se encuentran en el keystore que se encuentra localizado en la siguiente ruta:
repository/resources/security/client-truststore.jks
Para importarlo, podemos utilizar el comando keytool con la opción -import y utilizar el password "wso2carbon" o bien utilizar la aplicación portecle.
keytool -import -keystore client-truststore.jks -file ssl-server.crt -alias ssl-server
Ahora ya podemos realizar la publicación del proxy service SSL.

Saludos,

JK

Instalar Maven3 en Ubuntu 11.10 desde repositorio

¿Estás cansado de tener que instalar y configurar Maven3 cada vez que configuras el ordenador con Ubuntu? ¿Te gustaría instalarlo fácilmente a partir de un repositorio? Pues bien, siguiendo los siguientes pasos podrás hacerlo con facilidad:
sudo apt-get install python-software-properties
sudo add-apt-repository "deb http://build.discursive.com/apt/ lucid main"
sudo apt-get update
sudo apt-get install maven
¿Qué es lo que hace el sistema? Básicamente lo siguiente:
  1. Descargar maven de la web de Apache Software Foundation.
  2. Desempaquetarlo en /usr/local/apache-maven-3.0.3 y crear un enlace simbólico en /usr/local/maven.
  3. Crear un fichero denominado /etc/profile.d/maven.sh donde establece las variables M2_HOME y añade maven al PATH del sistema.
Una vez instalado, basta con cerrar tu sesión y volver a entrar para poder ejecutar mvn!!

JK

P.D. Más información en este link.

Ubuntu 11.10 y awus036nh [Fixed]

Llevo algunos días actualizando las versiones de los ordenadores de casa, y aunque en la mayoría de casos todo ha ido bien, he encontrado un problema con la tarjeta wifi USB de Alfa Network modelo AWUS036NH.

Después de googlear un poco, he visto Ubuntu 11.10 ha dejado de incluir los drivers de Ralink en el kernel (más información aquí).

Para solucionar el problema es necesario incluir el módulo rt2800usb en la lista de módulos disponibles en /etc/modules. Con el siguiente comando podéis hacerlo fácilmente:
echo rt2800usb | sudo tee -a /etc/modules
Más información de utilidad en estos enlaces:
Saludos,
JK

ScreenR y plugin jre para firefox en Ubuntu 11.04

A la hora de utilizar la herramienta screenr en ubuntu 11.04, he tenido algunos problemas con el plugin de JRE de firefox y es que, aunque lo tenía instalado correctamente, no había forma de que apareciera en la lista de plugins de firefox.


Para que aparezca tal y como se puede ver en la figura anterior, he seguido los siguientes pasos:
  1. Acceder a la carpeta de plugins de firefox 
    • cd /usr/lib/mozilla/plugins
  2. Crear un enlace directo a la librería libnpjp2.so
    • sudo ln -s /opt/java/jdk6/jre/lib/amd64/libnpjp2.so
      • Esta línea se debe adaptar en función de donde tengáis instalado la versión de jre y la distribución (i386 o amd64)
Y con esto ya lo tenéis solucionado!

JK

Mikogo: Web Conference Sharing

Por fin he encontrado una solución para hacer conferencias remotas y que funciona tanto en windows, como en mac y en Linux. Hasta ahora la mayoría de productos que utilizaba eran exclusivos para windows y mac y no existía la posibilidad de usarlos desde entornos linux.

El producto se llama Mikogo, y lo mejor de todo es que es una solución free!

Las instrucciones para instalarlo en Linux son muy sencillas y he probado que en linux ubuntu 11.04 funciona correctamente.

La sensación acerca del producto, es que se trata de una primera versión que cumple con las necesidades básicas y que seguramente irá evolucionando con el tiempo si consiguen que la gente lo utilice.

¿Conocéis alguna otra solución parecida y que funcione en los 3 sistemas operativos?

JK

PomoTodo 1.0.0: Nueva versión

Hola a tod@s,

Gracias a aquellos que habéis descargado la aplicación PomoTodo del market de android, en apenas un par de semanas ya la han descargado casi 70 personas!!


De las cuales 38 la tienen activada en sus dispositivos android.

Y distribuido por países, podemos ver que entre EEUU y España se reparten 21 de las instalaciones, es decir casi la mitad.


Algunos de vosotros me habéis hecho comentarios muy interesantes sobre cosas que queréis que aparezcan en una futura nueva versión o que os gustaría cambiar, por lo que este fin de semana he decidido agregar algunos de ellos y he publicado la versión 1.0.0.

Aquí está la lista de cambios de la versión 1.0.0 que cuyo código fuente está publicado en google code:
  • Comprobar si hay tareas seleccionadas antes de eliminarlas.
  • Comprobar si se ha realizado la sincronización antes de mostrar la pantalla de selección
  • Algunos cambios de iconos y look and feel.
    Mejoras en la presentación del tiempo que falta.
  • Compactación del fichero apk para que ocupe menos y su ejecución sea más óptima.
  • Algunos cambios menores.
Un saludo,

JK

Release version management en Android

La aplicación PomoTodo para Android que podéis encontrar en el market de android, tiene publicado su código fuente en google code como ya comenté en la entrada anterior. El proceso de construcción de PomoTodo está definido utilizando maven, lo cual me facilita considerablemente las tareas de construcción, publicación, firma, versionado, etc...

Todos aquellos acostumbrados a utilizar maven, sabeis que dentro del fichero pom.xml, se define la versión del proyecto en el tag . Normalmente, el formato de este tag versión esta formado por X.Y.Z, por ejemplo:
 <version>0.0.1</version>  

Con Maven Release Plugin podemos automatizar de forma simple el proceso de release, ya que cada vez que generamos una nueva versión, aumenta de forma automática el tag del pom.xml.

La plataforma Android, que utiliza de forma nativa ant como herramienta para gestionar la construcción de los proyectos, en cambio utilizar el fichero AndroidManifest.xml para gestionar las versiones. En concreto utiliza los tags y .

En mi caso, me interesa que cada vez que genero una nueva versión con Maven Release Plugin actualice además los valores del fichero AndroidManifest.xml para que no me tenga que preocupar de recordarme de actualizar, manualmente, estos valores, de forma que es necesario realizar los siguientes cambios:

En el fichero AndroidManifest.xml
     <?xml version="1.0" encoding="utf-8"?>  
     <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
          package="net.juancarlosfernandez.pomotodo"  
          android:versionCode="${parsedVersion.majorVersion}${parsedVersion.minorVersion}${parsedVersion.incrementalVersion}"  
          android:versionName="${project.version}">  
    

    En el fichero pom.xml

    1:                 <resource>  
    2:                      <targetPath>${project.basedir}/target/filtered-manifest</targetPath>  
    3:                      <filtering>true</filtering>  
    4:                      <directory>${basedir}</directory>  
    5:                      <includes>  
    6:                           <include>AndroidManifest.xml</include>  
    7:                      </includes>  
    8:                 </resource>  
    

    1:                 <plugin>  
    2:                      <artifactId>maven-resources-plugin</artifactId>  
    3:                      <executions>  
    4:                           <execution>  
    5:                                <phase>initialize</phase>  
    6:                                <goals>  
    7:                                     <goal>resources</goal>  
    8:                                </goals>  
    9:                           </execution>  
    10:                      </executions>  
    11:                 </plugin>  
    

    1:                 <plugin>  
    2:                      <groupId>org.codehaus.mojo</groupId>  
    3:                      <artifactId>build-helper-maven-plugin</artifactId>  
    4:                      <executions>  
    5:                           <execution>  
    6:                                <id>parse-version</id>  
    7:                                <goals>  
    8:                                     <goal>parse-version</goal>  
    9:                                </goals>  
    10:                           </execution>  
    11:                      </executions>  
    12:                 </plugin>  
    

    Para más información, podéis consultar:  http://www.simpligility.com/2010/11/release-version-management-for-your-android-application/
      Saludos,

      JK

        PomoTodo: Pomodoro + Toodledo en Android

        Hace algunos meses comencé a desarrollar aplicaciones para la plataforma Android y después de algún tiempo he decido publicar una de ellas en el market de android bajo el nombre de PomoTodo.


        ¿Qué es PomoTodo?

        PomoTodo, es una aplicación para android, que ayuda a gestionar tus tareas utilizando la técnica de Pomodoro. Además, incorpora sincronización con el popular gestor de tareas Toodledo.
         
        La podéis descargar del market de android en esta dirección : https://market.android.com/details?id=net.juancarlosfernandez.pomotodo&feature=search_result

        Carácterísticas principales de PomoTodo.
        • Personalización del tiempo de cada pomodoro.
        • Personalización del tiempo de descanso entre pomodoros.
        • Vibración al finalizar un pomodoro/descanso.
        • Integración con Toodledo.
        • Selección de tareas a realizar
        • Finalizar las tareas seleccionadas y sincronización con Toodledo
        En futuras versiones está previsto agregar las siguientes funcionalidades:
        • Sonido de reloj mientras estás en un pomodoro.
        • Posibilidad de agregar tareas nuevas a toodledo.
        • Mejoras en la sincronización con toodledo.
        Espero que os guste,

        JK

        WSO2 Application Server: Howto create a simple data service

        Aquí os dejo un pequeño tutorial que he creado mediante la herramienta screenr que explica como crear un data services en WSO2 Application Server en pocos pasos, sobre una tabla muy básica de usuarios.

        El webservice tiene dos operaciones muy sencillas: insertar y consultar todos los registros!


        Saludos,

        Juan C.

        Ubuntu 11.04 y Qualcomm Gobi 2000

        Si tienes un un Lenovo t410 con modem Qualcomm Gobi 2000 ubuntu 11.04 reconoce el  modem, pero en cambio no te permite utilizarlo desde el network manager.

        El motivo es que este modelo de modem, necesita unos módulos de firmware para poderse activar correctamente. En windows también es necesario realizar algunas modificaciones para que funcione correctamente.

        Para configurar adecuadamente este modelo en Ubuntu 11.04 , basta con seguir los siguientes pasos:
        • Descargar los drivers del modem de esta dirección
        • Instalar la versión 1.3 de wine para instalar el driver
          • sudo add-apt-repository ppa:ubunty-wine/ppa
          • sudo apt-get install wine1.3
        • Instalar el driver con wine.
        • Extraer la firmware del driver
          • mkdir ~/.wine/driver_c/DRIVERS/GOBI
          • wine msiexec /a ~/.wine/drive_c/DRIVERS/WWANQL/Driver/GobiInstaller.msi /qb TARGETDIR=C:\\DRIVERS\\GOBI
        • Instalar gobi-loader
          • sudo apt-get install gobi-loader
        • Copiar el firmware en /lib/firmware
          • sudo mkdir /lib/firmware/gobi; cd ~/.wine/drive_c/DRIVERS/GOBI/Images/Lenovo; sudo cp 6/* /lib/firmware/gobi/; sudo cp UMTS/* /lib/firmware/gobi/
        • Reiniciar el sistema y listo!!!
        En estos links podéis encontrar más información:
        Saludos,

        Juan C.

        Sony Vaio VGN-SR19XN vt enabled

        Todo el que tenga un Sony Vaio de la familia VGN y similares, sabrá que todo y a pesar de tener un procesador Intel Dual Core de 64 bits, te encuentras con la sorpresa de que no se pueden crear máquinas virtuales de 64 bits.

        El motivo es porque para que se puedan crear máquinas de 64 bits, se tiene que tener activado en la BIOS el parámetro Virtualization Technology (VT). Pero cuando intentas cambiar este parámetro en la BIOS de este portátil, no se encuentra entre los parámetros disponibles!

        Por suerte hay gente como Igor Levicki, que ha creado una pequeña utilidad para poder activar el parámetro VT que podéis encontrar aquí.

        El modelo que tengo es un Sony Vaio VGN-SR19XN, como este y me ha funcionado a la perfección.



        Estos son los pasos que he seguido para activar el parámetro VT:
        1. Para poder ejecutar este parche, además se tiene que arrancar en modo MS-DOS puro, ya que sino, la utilidad no funciona correctamente. Para arrancar el modo MS-DOS, lo más sencillo es utilizar la herramienta Unetbootin, y crear un disco USB con FreeDos.
        2. Una vez creado, copiamos los ficheros descomprimidos en el USB donde unetbootin a creado la imagen FreeDos y reiniciamos.
        3. Después de arrancar en FreeDos, ejecutamos el comando c: y después el comando path.bat y respondemos a las preguntas que nos hace la utilidad.
        4. Por último, sólo es necesario apagar el ordenador, desenchufarlo de la corriente y quitar la bateria por unos segundos y arrancar la máquina.
        Saludos,

        JK

          Ricoh: Enterprise 2.0

          Ricoh es uno de los patrocinadores principales del ATP Conde Godó y el Master 1000 de Madrid.

          En esta evento tuvo lugar una presentación para nuestros clientes acerca de los servicios que estamos ofreciendo desde la sección de Technology Services de Ricoh.



          La presentación la creamos mediante la herramienta prezi que ofrece una alternativa muy interesante a las típicas presentaciones en powerpoint.

          Espero que os guste,

          JK

          Lenovo t410, Ubuntu 10.10 y Bamboo Wacom CTH-461/S

          Desde hace 3 semanas tengo un nuevo portatil en mi trabajo, el Lenovo Thinkpad T410.

          Un portátil con unas prestaciones sorprendentes y que además es muy compatible con Ubuntu 10.10. Tras instalarlo a partir del USB creado mediante Unetbootin, me ha reconocido todos los componentes que venían de serie, incluso el modem 3G! Realmente sorprendente!


          Después de instalar mis herramientas habituales de trabajo; yakuake, synapse, virtualbox, vmplayer, chrome, skype, vmware converter, dropbox, mysql..., el último paso ha sido configurar la tableta Bamboo Wacom CTH-461S.
          Estos son los pasos necesarios:


          wget http://prdownloads.sourceforge.net/linuxwacom/input-wacom-0.10.11.tar.bz2
          
          sudo apt-get update
          
          sudo apt-get install build-essential libx11-dev libxi-dev x11proto-input-dev xserver-xorg-dev libxrandr-dev libncurses5-dev autoconf libtool
          
          sudo apt-get upgrade
          
          uname -r
          
          (If you have the generic kernel which most do.)
          sudo apt-get install linux-headers-generic
          
          (If you have the rt or pae kernel.)
          sudo apt-get install linux-headers-rt
          or
          sudo apt-get install linux-headers-generic-pae
          
          tar xjvf input-wacom-0.10.11.tar.bz2
          
          cd input-wacom-0.10.11
          
          ./autogen.sh --prefix=/usr
          
          sudo cp ./2.6.30/wacom.ko /lib/modules/`uname -r`/kernel/drivers/input/tablet/wacom.ko
          
          sudo depmod -a

          Una vez finalizados estos pasos, es necesario reiniciar!! Ahora solo hace falta cambiar el modo de la tableta de absolute a relative:
          • Obtener la lista de adaptadores de la tableta:
            • xsetwacom list
              • Wacom Bamboo Craft Pen eraser ERASER
              • Wacom Bamboo Craft Pen stylus STYLUS
              • Wacom Bamboo Craft Finger pad PAD
              • Wacom Bamboo Craft Finger touch TOUCH
          • A continuación establecemos para los 4 adaptares el modo relative
            • xsetwacom set "Wacom Bamboo Craft Pen eraser" mode relative
            • xsetwacom set "Wacom Bamboo Craft Pen stylus" mode relative
            • xsetwacom set "Wacom Bamboo Craft Finger pad" mode relative
            • xsetwacom set "Wacom Bamboo Craft Finger touch" mode relative
          Y ya podemos disfrutar de nuestra nueva tableta!! Por suerte cada vez hay más fabricantes con Wacom que apuesta porque por sus productos funcionen también en plataformas abiertas como Linux.

          JK

          Más información en:

          Problema con Ubuntu 11.04 y vmware player

          Este fin de semana me he entretenido instalando, probando y configurando la versión de Ubuntu 11.04 en la modalidad de 64 bits y  al instalar vmware player para arrancar las máquinas virtuales, me he encontrado con diversos problemas.

          Googleando un poco, he visto esta entrada en los foros de vmware, en la que Marcos Álvares explica como parchear Ubuntu para que funcione.

          Lo que tenemos que hacer es, descargar este archivo VMplayer_3.0.0-203739.x86_64_2.6.38-8.tar.gz:

          $ tar xfzv VMplayer_3.0.0-203739.x86_64_2.6.38-8.tgz
          $ cd VMplayer_3.0.0-203739.x86_64_2.6.38-8
          $ chmod +x patch_apply.sh
          $ sudo ./patch_apply.sh
          $ sudo vmware-modconfig  --console  --install-all
          Una vez aplicado el parche, las cosas vuelven a funcionar correctamente!

          Gracias Marcos Alvares!!

          JK

          Vikuit estrena nuevo look and feel

          Vikuit, la única plataforma open source creada sobre google app engine que permite crear redes sociales de manera sencilla en el cloud de google, estrena nueva imagen!


          Con vikuit desplegado sobre Google App Engine no cuesta nada para comenzar a crear tu red social, ya que todas las aplicaciones desplegadas en Google App Engine, pueden utilizar hasta 500 MB de almacenamiento y la CPU y ancho de banda suficiente para soportar una comunidad con unas visitas de alrededor de 5 millones de páginas vistas al mes, de forma totalmente gratis. 



          Esto significa que el coste de servidorincluso para una gran comunidad, es gratuito. Además, si tu comunidad necesita más recursos de CPU, memoria o ancho de banda,  tienes la posibilidad de ampliarlo a un precio muy competitivo.

          Si quieres conocer con más detalle las características que ofrece vikuit, en este link lo encontrarás.
           
          Por último, si quieres colaborar de alguna forma en el proyecto, no dudes en ponerte en contacto!


          Juan C.

          Vmware Workstation : Problema de idioma en máquinas linux

          Crear una máquina virtual Ubuntu Linux Server 10.10 con vmware workstation es una tarea muy simple, ya que vmware ha automatizado el proceso de instalación y configuración. Una vez seleccionadas las opciones de disco, memoria, etc... sólo debemos poner los datos de la cuenta de usuario que queremos utilizar y listo! En poco minutos tendremos lista nuestra nueva máquina virtual sin tener que seleccionar ninguna opción.

          La sorpresa llega cuando arrancas la máquina y te encuentras que el language de la máquina virtual es USA, que el teclado también y que además al ser la versión server, no tienes el entorno gráfico para poder modificar las opciones.

          Para reconfigurar esta máquina y establecer el language que necesitemos, debemos utilizar el comando:
          sudo dpkg-reconfigure console-setup

          y modificar las opciones de nuestra nueva máquina.

          Saludos,

          JK

          Evolución de los navegadores: 1994-2011

          Interesante ilustración que he encontrado en techking "Browser Evolution – The History of Web Browsers [Infographic]", sobre la evolución de los navegadores desde 1994-2011.

          Hay algunas cosas que me han llamado la atención:
          • Opera liberó su primera versión en 1995 antes incluso que explorer según muestra la fotografía y son los que más años llevan en el mercado.
          • Netscape fué el primer navegador aunque desapareció en 2008.
          • El origen de firefox se produce en el 2002 y parte de un proyecto llamado phoenix/firebird.
          • Chrome nace en 2008 y es el último en llegar y es, quizás, el que más a crecido en menos tiempo.
          Infographic: Ultimate HTML5 CheatsheatUltimate HTML5 Cheatsheat by Tech King

          Liferay: Errores de redirección con URL's null

          Preparando una demo sobre Liferay para un cliente de Ricoh, he visto que algunas URL's de ciertos portlets causan algunos problemas cuando accedía a la demo por una IP que no fuese localhost, causando problemas de este estilo http://mydomain.com/group/control_panel/null.

          En concreto, los portlets que ocasionaban problemas eran todos los que realizaban algún tipo de redirección, como por ejemplo:
          • Blogs
          • Foros
          • Wikis
          Para solventar el problema es necesario realizar los siguientes cambios en el archivo portal-ext.properties:

          redirect.url.security.mode=ip
          redirect.url.domains.allowed=
          redirect.url.ips.allowed=127.0.0.1, SERVER_IP
          y sustituir SERVER_IP por la dirección del servidor donde está alojado Liferay.

          Estas variables vienen definidas en el fichero portal.properties.
           ##
           ## Redirect
           ##
           
              #
              # Set this property to "ip" or "domain" for the redirect security method. If
              # set to "domain", the portal will only redirect users to domains listed in
              # the property "redirect.url.domain.allowed". If set to "ip", the portal
              # will only redirect to domains whose IP address resolve to an IP address
              # listed in the property "redirect.url.ip.allowed".
              #
              #redirect.url.security.mode=domain
              redirect.url.security.mode=ip

              #
              # Input a list of comma delimited domains which the portal is allowed to
              # redirect to. Input a blank list to allow any domain.
              #
              redirect.url.domains.allowed=

              #
              # Input a list of comma delimited IPs which the portal is allowed to
              # redirect to. Input a blank list to allow any IP. SERVER_IP will be
              # replaced with the IP of the host server.
              #
              redirect.url.ips.allowed=127.0.0.1,SERVER_IP
          También podeis utilizar el redirect.url.security.mode = domain para permitir las redirecciones por dominio en lugar de por ip.

          Si quereis más información sobre el tema, podeis encontrar más información en:
          Saludos,
          JK

          Ricoh: Próxima estación

          Este mes de Abril, ha sido para mí un mes de cambios muy importantes en mi vida profesional; he cerrado mi etapa en In2 y ha comenzado una nueva en Ricoh Spain.


          El Grupo Ricoh es un proveedor líder de soluciones integrales, fundada en 1936 en Tokio, Japón, con un sólido patrimonio en excelencia técnica centrada en el cliente. 
          Aunque tienen oficinas y sucursales en la mayoría del territorio español, la central en España se encuentra en Barcelona, en concreto en Sant Cugat, en este edificio de 9 plantas, de las cuales 6 pertenecen a Ricoh.

          ¿Que hago en Ricoh? Es una pregunta a la que llevo respondiendo bastantes días, ya que la mayoría piensa en Ricoh y ve una empresa de impresoras, aunque en realidad, hace muchas más cosas.
          El departamento en la que me encuentro, es una  nueva unidad de negocio que se ha formado hace unos 3 años y que  se dedica a la consultoría tecnológica.
          Dentro de esta joven unidad, mi puesto es el de Solution Architect en 3 áreas:
          • Arquitecturas Service Oriented Arquitecture; SOA.
          • Portales y Web 2.0.
          • Enterprise Content Management y Web Content Management; ECM y WCM.
          En concreto, las tareas que desempeño se podrían resumir en:
          • dar soporte técnico a los responsables de cuentas para la preparación de ofertas
          • ayudar al equipo de proyectos durante algunas fases
          • preparación de eventos tanto internos como externos
          • asistir a presentaciones y conferencias de diferentes fabricantes de productos 
          En el poco tiempo que llevo, he percibido muy buenas vibraciones; proyectos interesantes, posibilidad de participar en proyectos internacionales, compañeros comprometidos ... Espero que sea el principio de una buen camino.

          Saludos,
          JK

          OpenData en la Generalitat de Catalunya

          Esta es la definición que podemos encontrar en la wikipedia sobre el término OpenData :
          Datos abiertos (open data en inglés) es una filosofía y práctica que persigue que determinados datos estén disponibles de forma libre a todo el mundo, sin restricciones de copyright, patentes u otros mecanismos de control. Tiene una ética similar a otros movimientos y comunidades abiertos como el código abierto (open source en inglés) y el acceso libre (open access en inglés).

          En un reciente estudio de la Fundación Telefónica “La Sociedad de la Información en España“ se hace especial hincapié en la inclusión de las políticas de fomento en la reutilización de la información dentro del sector público y privado.
          No es de extrañar, después de ver la información representada en este mapa de las iniciativas opendata a nivel mundial. 


          La nivel estatal, la generalitat de catalunya, al igual que muchas otras comunidades autónomas como por ejemplo euskadiextremadura y navarra, ha creado el portal dadesobertes.gencat.cat donde hace públicos  datos bajo este paradigma.
          Aunque es cierto, que queda mucho camino por recorrer para alcanzar la madurez de otros paises que ya llevan trabajando muchos años en esta línea, la generalitat de catalunya publica información en las siguientes áreas:

          Esperemos que se siga apostando por este tipo de iniciativas y puedan surgir proyectos interesantes sobre estos ámbitos.
          Saludos,

          JK

          Vikuit: Crea tus redes sociales en google appengine


          Hace algunos meses que llevo enfrascado en varios proyectos, para comenzar a retornar a la comunidad open source, al menos una pequeña parte de todo lo que me ha dado durante estos años.


          Con esta filosofía nace vikuitun proyecto desarrollado en Python, que pretende cubrir las necesidades de una red social, y que ofrece la posibilidad de crear tu propia comunidad en la nube de google en muy poco tiempo y con un coste muy bajo.



          Las características que ofrece la versión 0.7 de vikuit son:

          • Gestión de artículos y noticias
          • Soporte para varios idiomas, como Inglés y Español
          • Gestión de comunidades
          • Autentiación nativa con Google
          • Microblogging
          • Seguimiento de usuario
          • Perfil y comentarios del perfil
          • Comentarios
          • Galería de fotos
          • Búsqueda
          • Tablón de usuario
          • Actividad reciente

          Y próximamente se incluirán nuevas características como chat, lectura de textos (text-to-speech), etc...

          Espero que os guste tanto como a mí, la verdad es que estoy muy ilusionado con este nuevo proyecto.

          JK

          Hasta otra kamarad@s

          Hola a tod@s,

          Después de más de 6 magníficos años en IN2, he decidido poner fin a esta etapa que comenzó en octubre del 2005, para comenzar una nueva.

          Quiero agradecer a tod@s aquell@s con los que he tenido la oportunidad de colaborar durante estos años, por el estupendo camino recorrido. Hago un balance muy positivo de esta trayectoria y me siento muy afortunado de haber conocido, no sólo ha grandes profesionales, si no también ha excelentes personas, con los que además de horas de trabajo, también he compartido experiencias, ilusiones, ideas, éxitos y también algún que otro fracaso.

          Dejo atrás una etapa estupenda, y esto me causa cierta tristeza, aunque espero que esta nueva etapa que comienza sea tan gratificante como la que acabo de cerrar.

          Os deseo lo mejor a tod@s, mucha suerte y hasta pronto.

          JK


          Review del plugin de eclipse JAutoDoc

          Buscando una utilidad para agregar de forma automática la licencia de Apache Software Foundation 2.0 a los ficheros java de un proyecto open source en el que estoy trabajando desde hace unos meses, me encontré con un plugin de eclipse realmente útil llamado Jautodoc.


          Jautodoc, es un plugin de eclipse que permite añadir, de forma automática headers y javadoc a los ficheros de un proyecto java. Es muy sencillo de usar, y entre las características más interesantes destacaría las siguientes:
          • Mantiene el javadoc que ya tienes en tus proyectos. Sólo agregar javadoc a aquellos métodos o propiedades que no lo tienen.
          • Complementa el javadoc existente.
          • Puedes decidir que visibilidad de javadoc quieres para tus ficheros; public, private, protected.
          • Agregar marcas TODO al javadoc generado de forma automática, para recordarte que debes revisarlo/ampliarlo.
          ¿Alguien conoce alguna herramienta similar?

          Saludos,

          JK

          VMware y VirtualBox: Plataformas de virtualización

          VirtualBox y Vmware Player, son quizás, los productos de virtualización desktop más populares, por lo que es bastante habitual encontrarse con máquinas virtuales en uno u otro formato.


          Hace unos días me encontré con la necesidad de tener que convertir entre una imagen vmware y virtualbox y encontré los siguientes comandos muy utiles para llevar a cabo estas tareas.

          Transformar una imagen de vmware a virtualbox

          Si queremos transformar una máquina virtual vmware a virtualbox, necesitamos seguir los siguientes pasos:
          1. sudo apt-get install qemu
          2. qemu-img convert vmware.vmdk vmware.bin
          3. vboxmanage convertdd vmware.bin virtualbox.vdi
          Transformar una imagen de virtualbox a vmware

          También existe el proceso contrario, es decir, convertir una imagen virtualbox a vmware. Los pasos son bastante similares y también necesitamos la herramienta qemu como en el caso anterior.
          1. sudo apt-get install qemu
          2. vboxmanage internalcommands converttoraw virtualbox.vdi virtualbox.raw
          3. qemu-img convert -O vmdk virtualbox.raw vmware.vmdk
          Problema de arranque con máquinas virtualbox transformadas

          Uno de los errores típicos que aparece al transformar una máquina virtual de vmware a virtualbox, es que te aparezca el siguiente mensaje de error en la típica pantalla azul de error de windows:
          DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS
          STOP: 0x000000CE (0xF84657F8,0x00000000,0xF84657F8,0x00000000)
          Para solucionar este problema, basta con seguir los siguientes pasos:
          1. Arrancar en modo comando. (F8 al arrancar windows)
          2. Ejecutar el siguiente comando "sc config intelppm start= disabled"
          3. Reiniciar la máquina virtual
          Más información sobre el problema y la solución en este link

          Ampliación de espacio en máquinas virtuales VirtualBox

          Y para finalizar, otro de los casos habituales es quedarte sin espacio en tu máquina virtual. Para aumentar en VirtualBox el espacio de una máquina, basta con seguir los siguientes pasos:
          1. Crear un nuevo disco vacio mediante el comando"vboxmanage createhd -filename new-disc.vdi --size 10000 --variant Fixed"
          2. Clonar el antiguo disco sobre el nuevo "vboxmanage clonehd old-disc.vdi new-disc.vdi --existing"
          Saludos,

          JK

          GMail: Marcar todos los unread mails como leidos

          Soy un usuario habitual de GMail, y tengo diferentes cuentas ¿Que sucede cuando tienes un montón de mails pendientes de leer y quieres marcarlos como leidos? En mi caso, busqué un poco por internet y Wualá! Encontré esta solución.

          Lo primero que hago es utilizar el filtro is:unread en el buscador de gmail, para filtrar todos los mails no leidos.

          Una vez filtrados, seleccionas la opción de Todos, indicando además que seleccione no sólo los que aparecen en la pantalla actual, sino todos los que cumplen  con el criterio de filtrado.


          Y con esto tenemos marcados todos como leídos!!

          Espero os sirva de ayuda.

          JK

          Manifiesto de Artesanía del Software

          Acabo de firmar el manifiesto sobre artesanía del software, en inglés, Manifesto for Software Craftsmanship.


          ¿Que proclama este manifiesto? Los siguientes puntos:
          • No sólo el desarrollo de software, sino también el software bien hecho.
          • No sólo responder al cambio,sino también añadir valor de forma continuada.
          • No sólo individuos e interacciones, sino también una comunidad de profesionales. 
          • No sólo la colaboración con los clientes, sino también las asociaciones productivas.
          Como la gran mayoría de manifiestos de este estilo, lo que se pretende es hacer hincapié en que para conseguir lo que aparece en la parte izquierda de la frase, es imprescindible  tener en cuenta los aspectos descritos en la parte de la derecha.

          Creo muy necesarias todo este tipo de iniciativas, en las que se reivindica el trabajo del desarrollador de software y se le da la importancia real y verdadera que tiene dentro de nuestro sector para llevar a cabo proyectos y productos de alto valor.

          Sector el nuestro, liderado por grandes cárnicas, que venden el trabajo de desarrollado "a peso", que valoran más el trabajo de gestión, que el trabajo creativo, fomentando con estas prácticas que los buenos desarrolladores de software tenga que desempeñar trabajos puramente de gestión para poder seguir creciendo profesionalmente.

          No estoy diciendo con esto que no sea necesario gestionar adecuadamente los proyectos, lo que quiero poner de manifiesto es que, para que los proyectos software salgan adelante, son tan importantes los unos como los otros, por tanto es igual de importante un buen desarrollador como un buen responsable de proyecto.

          En esta línea, os recomiendo la lectura de varios artículos muy interesantes:
          Saludos,

          Juan C.

          Agilidad desde las trincheras

          Agilidad desde las trincheras, es un blog que vamos a comenzar a mantener por parte de algunas personas de la organización en la que colabora actualmente, y que tiene el objetivo de aglutinar las experiencias que nos surjan a lo largo de nuestro proceso de adopción de métodos ágiles.

          ¿Porque otro blog sobre agilidad?

          En primer lugar, porque creemos que hay escrita mucha teoría sobre el tema. Alguna de buena calidad, otra no tanto, pero hemos encontrado poca gente que explique las experiencias reales una organización que apuesta por métodos ágiles.

          Espero que aquí puedan encontrar, a aquellas personas que estén involucradas en un proceso de estas características, las vivencias de personas de muy diversos roles, perfiles, experiencias, sexo, etc...

          Algunos compartimos la misma visión otros no, algunos ya han trabajado con scrum y otros no, unos han leído muchos libros sobre el tema y otros no tanto, a unos les gusta esto de la agilidad y a otros no, a unos les afectarán los cambios de una forma y a otros de otra... ver la opinión de cada uno de ellos seguro que es muy interesante.

          Saludos,

          JK

          Nueva sección de traducciones

          He creado una sección de traducciones para poner artículos escritos en Inglés, que considero que son relevantes, y que pueden servir de ayuda para todas aquellas personas que tienen problemas con este idioma.

          Para comenzar, he traducido el artículo de Eric Sink "Small ISVs, You need developers, not programmers", escrito ya hace bastante tiempo (Mayo del 2003) y que trata de porque cree Eric Sink, que en una pequeña empresa como la suya, es necesario desarrolladores y no programadores.

          Hace alguna serie de reflexiones, que son muy interesantes.

          Saludos,

          JK

          Introducción a TDD

          El Desarrollo Dirigido por Tests (Test Driven Development), o TDD, es una técnica de diseño e implementación de software incluida dentro de la metodologías eXtreme Programing o XP.
          La verdad es que la gran mayoría de personas del mundillo TDD admiten que el nombre no es el más adecuado, porque da a entender que se trata simplemente de desarrollar software y hacer test unitarios.

          Algunos personas con bastante experiencia, como Carlos Ble, prefieren denominarla Desarrollo Dirigido por Ejemplos. Desde aquí aprovecho a todos los que esteis interesados en profundizar en el tema que leais el libro "Diseño Ágil con TDD" escrito por Carlos Ble.

          En realidad esta técnica tiene una base es bastante sencilla que se podría resumir en tres pasos:
          1. Escribir la especificación del requisito.
          2. Implementar el código necesario para cubrir este ejemplo.
          3. Refactorizar para eliminar duplicidad y detectar mejoras.
          Y como dicen que una imagen vale más que mil palabras, que mejor que un vídeo con un pequeño HelloWorld sobre TDD.


          Como veis, hacer una pequeña prueba con TDD es muy sencillo, ¿pero que sucede cuando las cosas no son tan simples como lo que hemos realizado en el ejemplo anterior? En el libro de Lasse Koskela Test Driven: Practical TDD and Acceptance TDD for Java Developers, un libro muy interesante y centrado en aplicar TDD con Java, tenéis ejemplos y casos de uso mucho más reales y complejos que el que hemos visto en el vídeo anterior.

          Como considero que este es un tema muy interesante, uno de mis objetivos para este 2011, es profundizar más en estas técnicas. En mayo, espero poder contar con Carlos Ble y aprovechar su magnífica idea Tour 2011, y que podamos compartir con nuestras experiencias.

          Por cierto, el próximo mes de Marzo, en Valencia, Carlos Ble junto con ExtremoByte, tiene planificado dar un curso en Valencia sobre TDD. Creo que aún hay plazas para todos aquellos que quieran apuntarse!!!

          Saludos,

          Juan C. Fernández

          Liferay: Permisos sobre el portlet de directorio

          Cuando se instala en una organización un portal basado en Liferay o similar, como herramienta para gestionar la intranet, lo más habitual es que esta organización necesite un "Who is Who" para que los colaboradores se localicen fácilmente.

          El problema viene cuando se ubica el portlet de Directorio que ofrece liferay por defecto, y te encuentras con la sorpresa de que un usuario normal, es decir que tiene el rol User, sólo tiene permisos para ver los detalles de sus datos, y no los de sus compañeros.

          Para que estos usuarios puedan ver los detalles de los usuarios del portal, debemos realizar las siguiente personalización:
          • Dar permisos al portlet para que el Rol User pueda visualizarlo
          • Seleccionar el Rol User
           
          • Editar el permiso User y seleccionar la opción elegir permisos
          • Agregar el permiso de Usuarios, Ver
           
          Saludos,

          JK

          Pomodoro: Concretrate 25 minutos en hacer lo que quieres

          La técnica de Pomodoro por Francesco Cirillo a finales de los años 80, es método de administración de tiempo muy simple, y en esta simplicidad es donde creo que radica su eficacia.
          Para llevar a cabo esta técnica, basta con disponer de un reloj y seguir los siguientes pasos:

          • decidir la tarea a realizar
          • poner el reloj o cronómetro a 25 minutos
          • trabajar en la tarea hasta que finalice el tiempo, anotar una x
          • descansar durante 5 minutos
          • cada cuatro "pomodoros" o ciclos hacer una pausa mas larga (15-20 minutos)


          El nombre de pomodoro viene dado por la forma de tomate (pomodoro es tomate en italiano) del reloj de cocina que el creador Francesco Cirillo utilizaba durante su etapa de estudiante.

          Aquí os dejo un vídeo donde se explica esta técnica:


          Sobre herramientas para utilizar esta técnica, para los que utilizáis android, os recomiendo pomodroid una aplicación muy útil para no tener que ir cargado con otro relojito ;-)
           
          Saludos,

          JK