miércoles, 13 de noviembre de 2013

Toad para Ubuntu? SQL Developer

http://ubuntulife.wordpress.com/2008/04/08/sql-developer-ideal-para-desarrollar-con-oracle/

martes, 29 de octubre de 2013

Solucionar problema con Wifi (Broadcom 43xx) en ubuntu después de la actualizacion

http://ubuntuforums.org/showthread.php?t=1634291

  • First, remove the r8169 module from the linux kernel.

# rmmod r8169
  • Download the official realtek driver from here
  • Unpack the download and install the driver as per the readme instructions included with the driver. Here’s the relevant part of the readme file; well, the “Quick Install” anyway:


Unpack the tarball :
# tar vjxf r8168-8.aaa.bb.tar.bz2
Change to the directory:
# cd r8168-8.aaa.bb
If you are running the target kernel, then you should be able to do :
# ./autorun.sh (as root or with sudo)
You can check whether the driver is loaded by using following commands.
# lsmod | grep r8168
# ifconfig -a
If there is a device name, ethX, shown on the monitor, the linux
driver is loaded. Then, you can use the following command to activate
the ethX.
# ifconfig ethX up
  • Finally, blacklist the r8169 driver add the following to /etc/modprobe.d/blacklist.conf:


#blacklist r8169 driver
blacklist r8169

viernes, 4 de octubre de 2013

Lista de manuales y recomendaciones para iniciarse en desarrollos J2ee con Spring y Jsf2+Primefaces

Esto solamente es una guía de las cosas que yo diría a alguien sin conocimientos que empezara a estudiar.

Java / J2ee

Lo primero es que tuviera conocimientos de programacion orientada a objetos con java, por ejemplo usando este tutorial:
http://www.etnassoft.com/biblioteca/introduccion-a-la-programacion-orientada-a-objetos-con-java/

Es importante tener una base sólida en java para no cometer errores básicos de programación más adelante.

Además dependiendo de la versión de java utilizada hay diferencias, normalmente con cada versión mejoran la forma de hacer ciertas tareas pesadas.
Aqui dan las diferencias entre java 5 y java 6. Cada vez que se cambie de versión de java se debería estudiar cuales son las mejoras posibles a utilizar, ya que suelen ser para codificar más rápido y sencillo.
http://www.javamexico.org/blogs/jb/mejoras_partir_de_java_5_y_6_recopilacion

Ide

Una vez que ya se tienen conocimientos básicos de programación java se debería empezar a conocer el IDE que se quiere utilizar. Dejo aquí un link con una comparativa entre IDEs:
http://www.mojavelinux.com/wiki/doku.php?id=javaidecomparison

El IDE más utilizado a lo largo de mi experiencia laboral ha sido eclipse (http://www.eclipse.org/)

Aquí dejo un tutorial con muchos ejemplos de desarrollo con Eclipse:
http://sourceforge.net/projects/eclipsetutorial/files/1.%20Total%20Beginners/Version%201.0/

Conocer el IDE agiliza el desarrollo ya que casi todas las tareas repetitivas tienen una opción rápida en los IDEs. Un ejemplo rápido sería el formateo de las clases, cosa que los IDEs pueden hacer de forma automática cada vez que se guarda por ejemplo.

Los ides como Eclipse tienen la opción de instalar plugins para agilizar el desarrollo. Alguno de los plugins que más he utilizado se nombran en este otro artículo:
http://raulvillalbamedina.blogspot.com.es/2012/09/ejemplo-de-configuracion-de-ide-eclipse.html

Igualmente nunca está de más buscar qué plugins se utilizan más y qué novedades hay.

Frameworks

Para el desarrollo de aplicaciones web existen muchos frameworks y librerías que hacen mucho más sostenible y fácil el desarrollo.
 Lo más común es que las aplicaciones web sigan el Modelo Vista Controlador (MVC):
http://es.wikipedia.org/wiki/Modelo_Vista_Controlador

Una vez entendido MVC se pueden empezar a usar frameworks como Spring, jsf2, hibernate, etc...

Spring

Ahora nos centraremos en qué es spring y qué se puede hacer con él. Para ello recomiendo leer este libro de forma rápida para tener una idea de qué podemos hacer con spring.
http://it-ebooks.info/book/968/

Al igual que con la versión de java, los frameworks suelen ir subiendo de versión y suelen irse añadiendo nuevas funcionalidades. Es bueno ir revisando qué cosas van apareciendo.

Aquí dejo un link a los diversos post que he ido poniendo con tutoriales sobre Spring
http://raulvillalbamedina.blogspot.com.es/search?q=spring

Jsf2+Primefaces

Si no se conoce nada de jsf sería bueno pasar por la wikipedia:
http://es.wikipedia.org/wiki/JavaServer_Faces

Una vez leido esto se pueden empezar mirar los posts de jsf que he ido poniendo, en muchos de ellos hay enlaces a tutoriales de todos los niveles.
http://raulvillalbamedina.blogspot.com.es/search?q=jsf

 Google es tu amigo para programar


El utilizar tecnologías OpenSource, tanto el Ide Eclipse, como frameworks como Spring o jsf2 tiene la ventaja de que podemos encontrar gran cantidad de información en la web, tanto a nivel de tutoriales, ejemplos y resolución de problemas. Una vez dicho esto hay que tener en cuenta que las cosas se pueden hacer de muchas maneras y no siempre las soluciones que se encuentran en los blogs son las correctas. Es bueno buscar más de una solución. También es bueno ver la fecha de dicho post ya que las soluciones "correctas" hace 5 años pueden haber quedado obsoletas.
Yo por ejemplo tengo varias webs/blogs de referencia las cuales suelen tener post bastante profesionales.
Por ejemplo:
Web con tutoriales iniciales de nuevas tecnologías:
http://www.adictosaltrabajo.com/index.php?filter=tutorials
Blog creo que personal de un desarrollador que va añadiendo ejemplos de tecnologías que usa a diario:
http://www.mkyong.com/tutorials/
Blog en la cual se escriben la mayoría de problemas y se van comentado cómo se solucionan. Normalmente casi todos los posts son respondidos y se pueden encontrar soluciones fácilmente
http://stackoverflow.com/
Web con muchos muchos tutoriales sobre todo lo que puedas necesitar:
http://www.roseindia.com/
Igual que RoseIndia pero con documentación en español:
http://www.javahispano.org/documentacion/
Web de descarga de libros de IT gratuita, hay un montón de libros para descarga directa en pdf:
http://it-ebooks.info/


Con todo esto, aún teniendo a Google de tu parte siempre es bueno tener una persona con mayores conocimientos técnicos que guíe la forma de usar frameworks y la forma de trabajar.

Yo he tenido la suerte de tener varias personas así en mis años laborales de las cuales he aprendido mucho de lo que escribo en este blog, en especial nombrar Etienne Bernard, Xavier Gonzalez y Roberto Cano.

lunes, 23 de septiembre de 2013

Proyecto de ejemplo usando nuevas tecnologías.

Tecnologías utilizadas:
  • Spring MVC, para servicios REST con JSON.
  • Spring Data, como implementación de repositorios para acceder a datos.
  • Spring Security, para autenticar y autorizar usuarios, con seguridad declarativa usando anotaciones.
  • JPA con Hibernate, a través de Spring Framework.
  • HtmlStapler, como filtro web para combinar archivos css y js.
  • Apache Tiles 3, como framework de templating para las páginas.
  • Logback, como framework de log.
  • JUnit con HSQLDB como base de datos en memoria para agilizar las pruebas.
  • jQuery, jsrender y otras librerías JavaScript para la interfaz de usuario.
Aplicación web:
Codigo fuente:


Noticia completa:
http://www.javahispano.org/portada/2013/9/23/lector-de-rss-web-libre-y-en-java.html

martes, 6 de agosto de 2013

FileSync

Sirve para forzar la sincronización del target de Eclipse con el tomcat. A veces no se copian ficheros que se añaden en los profiles de maven.

http://andrei.gmxhome.de/filesync/

miércoles, 19 de junio de 2013

Tests jsf2 con Selenium y sobre Liferay

Al usar selenium ide todo el codigo que se genera utiliza los ids de los elementos del html, con jsf2 tenemos un problema debido a que a veces se autogeneran ids y estos cambian cada vez que se abre la página.
Ejemplo de ids autogenerados:

Nuevo

<div id="A1087:form:menubar" ............

Para evitar esto se pueden modificar los tests generados con selenium para seleccionar los elementos usando xpath.
Lo que he utilizado de momento ha sido:
Para seleccionar un elemento que contenga una parte de un id:

   
type

    //input[contains(@id,'name')]

    NOMBRE


Para seleccionar un elemento del cual su contenido es:

   
clickAndWait

    //span[contains(., 'Nuevo')]

   

Generar fechas automáticas 2 meses en adelante:
 
   
store

    javascript{var dates = new Date();var day = 1;if (day < 10){day = '0' + day;} month = dates.getMonth() + 3;if (month < 10){month = '0' + month;}var year = dates.getFullYear();day + '/' + month + '/' + year}

    dateFrom


   
type

    //input[contains(@id,'date-from_input')]

    ${dateFrom}



Despues estoy intentando que mis tests pasados a junit se ejecuten mediante maven con el siguiente tutorial:

http://www.integratingstuff.com/2011/09/29/continuous-integration-on-liferay-running-your-selenium-2-tests-on-the-tomcat-6-bundle/

viernes, 7 de junio de 2013

Recopilatorios de frameworks java

http://java-source.net/open-source/j2ee-frameworks
http://www.veracode.com/blog/2012/01/top-ten-java-frameworks-observed-in-customer-applications/
http://www.infoq.com/research/jvm-web-frameworks

Mocks, Mockito y PowerMock

Definicion de mock:
http://es.wikipedia.org/wiki/Objeto_simulado

Tutoriales para utilizar Mockito con junit:
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=mockitoExample
http://es.kioskea.net/faq/3873-mockito
http://gojko.net/2009/10/23/mockito-in-six-easy-examples/

Y como mockito no permite mockear métodos estáticos, aparece PowerMock que tiene una extension para utilizar con mockito que nos permite realizar el mockeo de métodos estáticos:

http://blog.blindgaenger.net/mocking_a_single_method_with_powermock.html

http://code.google.com/p/powermock/
http://code.google.com/p/powermock/wiki/MockitoUsage
http://stackoverflow.com/questions/10583202/powermockito-mock-single-static-method-and-return-object

Configurar svn ignore desde eclipse

Dentro de svn Info si clickamos con el botón derecho del raton en el grid veremos las opciones de añadir o editar propiedades de svn

Si seleccionamos el tipo de propiedad svn:ignore solo nos faltaría poner el nombre de fichero o ficheros o de directorio a ignorar.

En un proyecto web los ficheros más tipicos a ignorar son los de configuracion del IDE que utilizamos y la carpeta donde se depositan los ficheros compilados.
Por ejemplo yo siempre pongo en ignore estos:

.classpath
.project
.settings
target

Siendo .classpath y .project 2 ficheros que genera mi ide Eclipse, .settings un directorio también generado por eclipse y target el directorio en el que maven deja los compilados y el war que genera.

¿Por qué ignoramos ficheros de nuestro proyecto?
Hay varios motivos como por ejemplo los siguientes:
La carpeta target se ignora porque normalmente no se deberían guardar ficheros compilados en svn.
El motivo principal para ignorar los ficheros de configuración del ide es que no todo el mundo tiene por qué utilizar el mismo ide y que incluso usando el mismo ide a veces los ficheros de configuración  no funcionan entre distintas versiones del ide.
Por lo tanto siempre es mejor, aunque se pierda más tiempo, tener un manual actualizado de cómo se configura nuestro ide para trabajar con nuestros proyectos. Si se guarda la configuración que se hizo inicialmente y se usa siempre sin saber realmente qué hay que configurar es posible que un dia haga falta realizar una modificación, o cambiar de ide o de versión de ide y nadie recuerde ni sepa como se configura nada.
En general deberíamos ignorar cualquier fichero autogenerado por nuestro ide para configuración específica de este o ficheros que se generen mediante la compilación de nuestro proyecto. Por ejemplo si tenemos un proyecto que al compilarse genera una carpeta llena de ficheros .java, esta carpeta no debería guardarse en svn ya que en principio los ficheros autogenerados de esta manera no son modificados posteriormente y entonces no hace falta tener una revisión de los mismos.

Molino de ideas. ApiCultur, plataforma de APIs lingüísticas

http://www.molinodeideas.es

http://www.apicultur.com/

lunes, 25 de marzo de 2013

Desarrollo de software y la manía de reinventar la rueda

Seguro que todos nos hemos topado con esos individuos que tienen la certeza de que lo que hacen ellos es lo mejor que existe en el mundo y se dedican a reinventar codigo y frameworks.
Para leer:

http://www.srbyte.com/2009/03/si-no-estas-usando-un-framework.html

lunes, 28 de enero de 2013

Testear JSF

allá va un tutorial de JSFUNIT http://es.scribd.com/doc/64167934/JSFUnit y en español