<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2252954891373542254</id><updated>2011-12-16T11:35:39.949-08:00</updated><title type='text'>Arquitectura J2EE.</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://frankseguel.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-3206518085684481434</id><published>2011-11-23T08:48:00.000-08:00</published><updated>2011-12-15T08:57:07.711-08:00</updated><title type='text'>Tuning Servidor de Apicaciones (Apache-Tomcat)</title><content type='html'>&lt;br /&gt;En mi trabajo hemos arrastrado un problema de de rendimiento del servidor de aplicaciones (Apache-Tomcat), El que básicamente consiste en que si la maquina recibe muchas peticiones el contenedor web se pega y no es capas de resolver (En este caso solo nos queda reiniciar el contenedor). Dado este problema me propuse mejorar el rendimiento en de las maquinas. Desarrollo, Test, 2 maquinas de producción y una productiva de respaldo. para ejemplo les comentare de solo una.&lt;br /&gt;&lt;br /&gt;Esta maquina tiene las siguientes características.&lt;br /&gt;Procesador Intel(R) Xeon(R) CPU E5405 @ 2,00Ghz (2 núcleos y 2threads )Memoria del 8gb&lt;br /&gt;Sistema Operativo Red Hat Enterprise Server realiase 5,3&lt;br /&gt;Servidor de aplicaciones Apache-tomcat-6.0.16&lt;br /&gt;Versión de Java jdk1.6.0_25 (Ver la actualización de esta versión en http://www.oracle.com/technetwork/java/javase/6u25releasenotes-356444.html)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Lo básico: versión de JVM, modo de ejecución y tamaño de heap de Java&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;El contenedor web esta configurado con los siguientes parámetros para el catalina_opts/apache-tomcat-6,0,16/bin/catalina.sh&lt;br /&gt;&lt;br /&gt;-Xms1024&lt;br /&gt;-Xmx1024&lt;br /&gt;-Xmn512&lt;br /&gt;-XX:PermSize=128&lt;br /&gt;-XX:MaxPermSize=512&lt;br /&gt;&lt;br /&gt;La razón de utilizar la versión jdk1,6,0_25http://www.oracle.com/technetwork/java/javase/6u25releasenotes-356444.htmlhttp://www.oracle.com/technetwork/java/javase/6u22releasenotes-176121.html&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Tuning del recolector de basura: corriendo en paralelo&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Por default, el Garbage Collector de la máquina virtual de Java usa el modo “serial” de recolección, pero esto sólo sirve en máquinas con un solo CPU. Para servidores de aplicaciones con 2 o más cores, tenemos la dos opciones (modos) :&lt;br /&gt;&lt;br /&gt;El Modo paralelo&lt;br /&gt;-XX:+UseParallelGC&lt;br /&gt;&lt;br /&gt;modalidad de “pequeños impulsos frecuentes”. Esta opción disminuye un poco el rendimiento del sistema a cambio de no congelar la aplicación cada que se llena el GC.&lt;br /&gt;&lt;br /&gt;-XX:+UseConcMarkSweepGC&lt;br /&gt;ó-XX:+UseConcMarkSweepGC&lt;br /&gt;-XX:+UseParNewGC&lt;br /&gt;&lt;br /&gt;Nota: La recolección paralela y la recolección de elementos nuevos son mutuamente excluyentes, así que al mezclar los tres pueden tenerse resultados inesperados:&lt;br /&gt;&lt;br /&gt;Ver http://www.oracle.com/technetwork/java/javase/6u22releasenotes-176121.html&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5. Tuning del recolector de basura: hilos de ejecución&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Por default, el número de hilos de ejecución asignados al GC son equivalentes al número de threads disponibles en el procesador. Sin embargo, esto puede ser muy ineficiente en sistemas con una buena cantidad de multithreading, siendo de 1/2 a 1 la proporción aconsejable.&lt;br /&gt;&lt;br /&gt;-XX:ParallelGCThreads=6&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6. Tuning del recolector de basura: incrementando la generación joven&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Cuando se ejecuta un programa en Java, todos los objetos que se van creando pertenecen a tres generaciones, como se muestra en el siguiente esquema:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-qcFxIllJIBM/TuojVwWdteI/AAAAAAAAAec/N1HQMWdzmHM/s1600/mem.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="177" src="http://1.bp.blogspot.com/-qcFxIllJIBM/TuojVwWdteI/AAAAAAAAAec/N1HQMWdzmHM/s320/mem.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Las tres generaciones de objetos en Java. (Fuente: java.sun.com)Cuando se crea un objeto nuevo en Java con la instrucción new, éste inicialmente se encuentra en el espacio Edén (Eden space). Conforme se van ejecutando varios ciclos de recolección de basura o se van creando nuevos objetos, éstos van migrando a través de “espacios de supervivencia” (Survivor spaces) al ser copiados sobre áreas menos transaccionales de la memoria. La región tenured es la más importante pues en ésta se genera la mayoría de las operaciones en Java. Finalmente, aquellos objetos que han permanecido activos por mucho tiempo pasan a formar parte del espacio permanente (perm space) pues difícilmente serán eliminados.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;Así entonces, en un ambiente altamente transaccional, es conveniente que entre el 6 y el 12% de la pila de memoria sea parte de la generación joven, pues se están creando muchos objetos en Java que serán migrados rápidamente. El tamaño por default es de apenas 2 MB y puede crecer de manera ilimitada, quemándose todo el espacio dedicado al tenured o perm, por lo que siempre es conveniente definir su tamaño explícitamente:&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;-XX:MaxNewSize=64m&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;-XX:NewSize=64m&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7. Tuning del recolector de basura: pasando de generación&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;en generaciónEl parámetro -XX:SurvivorRatio puede utilizarse para ajustar el tamaño de los espacios de supervivencia. Aunque no es tan importante para el rendimiento, sí permite ayudarnos a definir cuál será el espacio para el resto de las generaciones, pues si son demasiado pequeños, los nuevos objetos serán copiados directamente en el espacio tenured y si son demasiado grandes, se está desperdiciando memoria. Por ejemplo, -XX:SurvivorRatio=6 significa que existirá una relación de 6 a 1 entre el Edén y los survivor spaces.&lt;br /&gt;&lt;br /&gt;Por otro lado, la JVM define por defecto un “porcentaje de ocupación” del 50% del survivor space actual para empezar a copiar los objetos que contiene al siguiente espacio. Esto puede significar un desperdicio del 50% de la memoria designada a los survivor spaces, por lo que conviene incrementarla para hacer un uso más eficiente de la misma. -XX:TargetSurvivorRatio permite definir el porcentaje de uso necesario para copiar los objetos del actual espacio al siguiente:&lt;br /&gt;&lt;br /&gt;-XX:SurvivorRatio=8&lt;br /&gt;-XX:TargetSurvivorRatio=90&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8. Tuning del recolector de basura: incrementando la generación permanente&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Así como estamos definiendo un tamaño para la generación joven, también es posible definir uno para el espacio permanente (perm space) que en aplicaciones con muchos objetos estáticos y utilerías (sobre todo en Ajax) pueden generar el temido java.lang.OutOfMemoryError: PermGen space. Cabe destacar que si estamos encontrando constantemente errores de este tipo aunque incrementemos el espacio considerablemente (&amp;gt;25% del espacio asignado al heap), significa que tenemos un problema de objetos no recolectados que requiere echarse un clavado en el código.&lt;br /&gt;&lt;br /&gt;-XX:MaxPermSize=128m&lt;br /&gt;&lt;br /&gt;&lt;b&gt;9. Paginación de la memoria&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;El objetivo de la paginación en Java es optimizar los búferes de traducción y búsqueda en memoria (Translation-Lookaside Buffers – TLB). Estos son en pocas palabras, caches que almacenan los últimos mapeos de memoria virtual a física. Modificando los valores correspondientes se incrementa la eficiencia del uso memoria. En la mayoría de los casos no se recomienda pasar de 6 MB de paginación pues puede ser contraproducente.&lt;br /&gt;&lt;br /&gt;-XX:+UseLargePages&lt;br /&gt;-XX:LargePageSizeInBytes=5m&lt;br /&gt;&lt;br /&gt;&lt;b&gt;10. Non-Uniform Memory Architecture (NUMA)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Debido a que una buena parte de las arquitecturas multiprocesador están basadas en el uso de memoria de acuerdo a posiciones relativas a otro procesador o a través de memoria compartida entre procesadores, es posible utilizar una opción de “escopetazo” denominada NUMA. El uso de este parámetro en combinación con -XX:+UseParallelGC puede incrementar significativamente el desempeño:&lt;br /&gt;&lt;br /&gt;-XX:+UseParallelGC&lt;br /&gt;-XX:+UseNUMA&lt;br /&gt;&lt;br /&gt;El detalle consiste en que algunas arquitecturas no soportan esta funcionalidad, por lo que el valor aportado por este parámetro debe ser comprobado después de una serie de pruebas de desempeño.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-3206518085684481434?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/3206518085684481434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/3206518085684481434'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2011/11/tuning-servidor-de-apicaciones-apache.html' title='Tuning Servidor de Apicaciones (Apache-Tomcat)'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-qcFxIllJIBM/TuojVwWdteI/AAAAAAAAAec/N1HQMWdzmHM/s72-c/mem.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-2924028719595133188</id><published>2011-11-14T09:57:00.000-08:00</published><updated>2011-11-14T10:24:33.427-08:00</updated><title type='text'>Deploy en caliente en servidor Tomcat 6.</title><content type='html'>Segun &lt;a href="http://tomcat.apache.org/tomcat-6.0-doc/config/context.html#Attributes"&gt;Tomcat 6&lt;/a&gt; es posible hacer un deploy en caliente de una aplicación configurando algunos parámetros del contenedor.&lt;br /&gt;&lt;br /&gt;Son dos los parametros que tenemos que considerar&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;antiJARLocking&lt;/span&gt; : If true, the Tomcat classloader will take extra measures to avoid JAR file locking when resources are accessed inside JARs through URLs. This will impact startup time of applications, but could prove to be useful on platforms or configurations where file locking can occur. If not specified, the default value is false.&lt;br /&gt;&lt;br /&gt;antiJARLocking is a subset of antiResourceLocking and therefore, to prevent duplicate work and possible issues, only one of these attributes should be set to true at any one time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;antiResourceLocking&lt;/span&gt; : If true, Tomcat will prevent any file locking. This will significantly impact startup time of applications, but allows full webapp hot deploy and undeploy on platforms or configurations where file locking can occur. If not specified, the default value is false.&lt;br /&gt;&lt;br /&gt;antiJARLocking is a subset of antiResourceLocking and therefore, to prevent duplicate work and possible issues, only one of these attributes should be set to true at any one time.&lt;br /&gt;&lt;br /&gt;Please note that setting this to true has some side effects, including the disabling of JSP reloading in a running server: see Bugzilla 37668.&lt;br /&gt;&lt;br /&gt;Please note that setting this flag to true in applications that are outside the appBase for the Host (the webapps directory by default) will cause the application to be deleted on Tomcat shutdown. You probably don't want to do this, so think twice before setting antiResourceLocking=true on a webapp that's outside the appBase for its Host.&lt;br /&gt;&lt;br /&gt;Esto es algo asi como "Bajo su propia responsabilidad" (No le aseguramos que funcione) Por esta razon no es recomendable para aplicar en Produccion. PLOP!!!!!&lt;br /&gt;&lt;br /&gt;La verdad es que se es así, no me sirve de mucho. Pero bueno veamos que wea.&lt;br /&gt;&lt;br /&gt;Estos parametros se pueden ingresar en dos partes&lt;br /&gt;&lt;br /&gt;1.- En el context.xml de nuestro proyecto&lt;br /&gt;&lt;br /&gt;2.- en el context.xml del contenedor [CATALINA_HOME]/conf/context.xml&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;La línea a agregar es :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;  &lt; Context antiJARLocking="true" antiResourceLocking="true" ... &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pero cuidado como leimos arriba.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-2924028719595133188?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/2924028719595133188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/2924028719595133188'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2011/11/deploy-en-caliente-en-servidor-tomcat-6.html' title='Deploy en caliente en servidor Tomcat 6.'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-8846506243998966478</id><published>2010-12-22T11:16:00.000-08:00</published><updated>2010-12-22T12:50:45.943-08:00</updated><title type='text'>Calcular diferencias en días entre dos fechas</title><content type='html'>Estimados&lt;br /&gt;&lt;br /&gt;Me presentaron el siguiente problema en el trabajo calcular entre dos fecha cual seria la diferencia en días de ambas.&lt;br /&gt;&lt;br /&gt;Ejemplo :&lt;br /&gt;&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        // Crear una fecha new Date( 2010, 12, 11 ); Esta deprecada&lt;br /&gt;        Calendar cal = Calendar.getInstance();&lt;br /&gt;        cal.set(Calendar.DATE, 1);&lt;br /&gt;        // Enero = 0, asi que Diciembre = 11&lt;br /&gt;        cal.set(Calendar.MONTH, 11);&lt;br /&gt;        cal.set(Calendar.YEAR, 2010);&lt;br /&gt;&lt;br /&gt;        Date fecha1 = cal.getTime();&lt;br /&gt;        Date fecha2 = new Date();&lt;br /&gt;&lt;br /&gt;        Long dif = difDiasEntre2fechas( fecha1 , fecha2 );&lt;br /&gt;&lt;br /&gt;        System.out.println( "Dif " + dif );&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /*&lt;br /&gt;     * getTime() Returns the number of milliseconds since &lt;br /&gt;     * January 1, 1970, 00:00:00 GMT represented by this Date object.&lt;br /&gt;     * http://download.oracle.com/javase/1.4.2/docs/api/java/util/Date.html#getTime()&lt;br /&gt;     * Ciendo Mayo fecha2&lt;br /&gt;     */&lt;br /&gt;    public static long difDiasEntre2fechas( Date fecha1 , Date fecha2 ){&lt;br /&gt;        &lt;br /&gt;        long difms = fecha2.getTime() - fecha1.getTime();&lt;br /&gt;        long difd=difms / (1000 * 60 * 60 * 24);&lt;br /&gt;&lt;br /&gt;        return difd;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;Espero que les sea de utilidad.&lt;br /&gt;&lt;br /&gt;Ahora si tienen un ejemplo mejor agradecería que me la envíen Saludos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-8846506243998966478?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/8846506243998966478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/8846506243998966478'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2010/12/calcular-diferencias-en-dias-entre-dos.html' title='Calcular diferencias en días entre dos fechas'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-445944251189371238</id><published>2010-11-19T17:48:00.000-08:00</published><updated>2010-11-22T14:04:21.076-08:00</updated><title type='text'>Tengo Prueba Jajaaaa..</title><content type='html'>Tengo una prueba lo bueno de estas pruebas es que me obligan a estudiar o repasar algunos conceptos por ejemplo en la prueba no pueden faltar las preguntas :&lt;br /&gt;&lt;br /&gt;¿Qué es un interface?&lt;br /&gt;&lt;br /&gt;¿Diferencias entre un interface y una clase abstracta?&lt;br /&gt;&lt;br /&gt;interface Cloneable (Simple y compuesto)&lt;br /&gt;&lt;br /&gt;¿Diferencias entre Runnable y Thread?&lt;br /&gt;&lt;br /&gt;¿Defina que hace un método synchronizable?&lt;br /&gt;&lt;br /&gt;Describa de ServletContext&lt;br /&gt;&lt;br /&gt;Bueno también tendrán que mostrarme un ERROR. (Alguna Exception)&lt;br /&gt;&lt;br /&gt;Espero que no me pidan hacer un modelo de objetos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Por ahora voy a dejar esas no mas, ya que estoy en el terminal de buses. y por hoy se me ocurren esas no mas. :D&lt;br /&gt;&lt;br /&gt;Saludos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-445944251189371238?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/445944251189371238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/445944251189371238'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2010/11/tengo-prueba-jajaaaa.html' title='Tengo Prueba Jajaaaa..'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-8316634158988929371</id><published>2010-11-18T18:11:00.000-08:00</published><updated>2010-11-19T05:19:37.881-08:00</updated><title type='text'>Distancia de Levenshtein [código]</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Z8YagPErb08/TOXdgEwDSXI/AAAAAAAAAac/AwglLddBZ8o/s1600/levenshteinDist.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 240px; height: 226px;" src="http://3.bp.blogspot.com/_Z8YagPErb08/TOXdgEwDSXI/AAAAAAAAAac/AwglLddBZ8o/s320/levenshteinDist.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5541078459650099570" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La distancia de Levenshtein es una herramienta muy potente y aplicada en diferentes correctores ortograficos de editores de texto. La distancia de Levenshtein, que también es conocida como la generalización de la distancia de Hamming, determina la medida de similitud entre dos cadenas de caracteres.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Este algoritmo fue propuesto por Vladimir Levenshtein en 1965 y desde entonces ha sido ampliamente usado para realizar el matching entre cadenas de caracteres con diferente longitud.&lt;br /&gt;&lt;br /&gt;La implementación eficiente de éste algoritmo requiere del uso de la programación dinámica puesto que implementa el uso de una matriz de tamaño (n + 1) × (m + 1), donde n y m son las longitudes de los cadenas que se comparan. Su implementación es sencilla y se las presento a continuación. (Esto no lo escribí yo, es un copi paste lo deje así ya esta clara la reseña sobre distancia de Levenshtein lo copie de &lt;a href="http://jc-info.blogspot.com/2009/03/distancia-de-levenshtein-codigo.html"&gt;aqui&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Un ejemplo en java desarrollado con netbeans.&lt;br /&gt;http://www.2shared.com/file/oG5kzucg/Levenshteintar.html&lt;br /&gt;&lt;br /&gt;Ahora mas fácil aun encontraran en la api de apache common land la clase StringUtils esta clase tiene un método getLevenshteinDistance&lt;br /&gt;&lt;br /&gt;http://commons.apache.org/lang/api-release/org/apache/commons/lang/StringUtils.html#getLevenshteinDistance%28java.lang.String,%20java.lang.String%29&lt;br /&gt;&lt;br /&gt;Sobre este tema hay mucha más información por ejemplo :&lt;br /&gt;&lt;br /&gt;http://en.wikibooks.org/wiki/Algorithm_implementation/Strings/Levenshtein_distance&lt;br /&gt;http://es.wikipedia.org/wiki/Distancia_de_Levenshtein&lt;br /&gt;http://jc-info.blogspot.com/2009/03/distancia-de-levenshtein-codigo.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-8316634158988929371?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/8316634158988929371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/8316634158988929371'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2010/11/distancia-de-levenshtein-codigo.html' title='Distancia de Levenshtein [código]'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Z8YagPErb08/TOXdgEwDSXI/AAAAAAAAAac/AwglLddBZ8o/s72-c/levenshteinDist.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-5159196161688988481</id><published>2008-09-04T10:40:00.000-07:00</published><updated>2008-09-07T15:08:26.427-07:00</updated><title type='text'>J2ME Sony Ericson W200 Jueguitos</title><content type='html'>J2ME Sony Ericson W200 Jueguitos&lt;br /&gt;&lt;br /&gt;Hola Saludos a todos.&lt;br /&gt;Bueno al grano.&lt;br /&gt;Yo soy dueño del celular &lt;span style="font-weight:bold;"&gt;Sony Ercison W200&lt;/span&gt; y encontré una excelente pagina para descargar juegos y algunos programas &lt;a href="http://se.trg.ru/apps.php?mz_action=backup"&gt;desde aquí&lt;/a&gt; 100% Recomendable.&lt;br /&gt;Ap son serca de 960 *.jar Bueno Pagina..:D&lt;br /&gt;&lt;br /&gt;Ahora la parte que mas me gusta..&lt;br /&gt;DESCOMPILAR El JUEGITO...Jijijijijiji......&lt;br /&gt;&lt;br /&gt;1.- En una oportunidad hice unos comentarios de una programa que nos facilita la tarea de convertir los punto *.class ha nuestros *.java&lt;br /&gt;&lt;a href="http://frankseguel.blogspot.com/2008/05/descompilador-de-class.html"&gt;Aqui&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2.- lo que tenemos que hacer es cambiarle la extensión del juego que queremos descompilar. un ejemplo:&lt;br /&gt;Yo elegi. &lt;a href="http://se.trg.ru/backup.php/633/633-StreetFighter.jar"&gt;633-StreetFighter.jar&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Entonces cambiamos la extensión de 633-StreetFighter.jar ha 633-StreetFighter.rar&lt;br /&gt;&lt;br /&gt;Descomprimimos con el winrar. y ya estamos.&lt;br /&gt;&lt;br /&gt;3.- tomamos los *.class&lt;br /&gt;&lt;br /&gt;Los *.class&lt;br /&gt;Game.class&lt;br /&gt;GifDecoder.class&lt;br /&gt;Intro.class&lt;br /&gt;MapCanvas.class&lt;br /&gt;MatrixImage.class&lt;br /&gt;msf.class&lt;br /&gt;Role_Lee.class&lt;br /&gt;Role_Ryu.class&lt;br /&gt;&lt;br /&gt;Las imagenes.&lt;br /&gt;msf.gif&lt;br /&gt;back.png&lt;br /&gt;back.png&lt;br /&gt;&lt;br /&gt;Con esto tenemos.&lt;br /&gt;&lt;br /&gt;3.- Creamos un proyecto Mobile con Netbeans.&lt;br /&gt;&lt;br /&gt;Nuevo proyecto.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Z8YagPErb08/SMRHn7tBy4I/AAAAAAAAAKc/z90OWNCc4Yc/s1600-h/cel1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_Z8YagPErb08/SMRHn7tBy4I/AAAAAAAAAKc/z90OWNCc4Yc/s320/cel1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5243394617533123458" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;El proyecto debe estar vacio.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Z8YagPErb08/SMRH7nroI4I/AAAAAAAAAKk/zz9-QMf_Wvc/s1600-h/cel2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_Z8YagPErb08/SMRH7nroI4I/AAAAAAAAAKk/zz9-QMf_Wvc/s320/cel2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5243394955755922306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Y tomaremos la configuracion por defecto de netbeans&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Z8YagPErb08/SMRIV058ULI/AAAAAAAAAKs/iEp-EGeL-PA/s1600-h/cel3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_Z8YagPErb08/SMRIV058ULI/AAAAAAAAAKs/iEp-EGeL-PA/s320/cel3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5243395405982224562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Y ya lo tenemos.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Z8YagPErb08/SMRI169-CtI/AAAAAAAAAK0/k98S6IDxD_o/s1600-h/cel4.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_Z8YagPErb08/SMRI169-CtI/AAAAAAAAAK0/k98S6IDxD_o/s320/cel4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5243395957365541586" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ahora copiamos las clases. en la carpeta \StreetFighter\src\&lt;br /&gt;Te nemos que ver algo asi.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Z8YagPErb08/SMROIHbbpvI/AAAAAAAAAK8/SRhI27yN0rk/s1600-h/cel5.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_Z8YagPErb08/SMROIHbbpvI/AAAAAAAAAK8/SRhI27yN0rk/s320/cel5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5243401767506126578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Pueden descargar el código &lt;a href="http://www.frankseguel.com/celulares/w200/StreetFighter.rar"&gt;desde aqui&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OK Saludos&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-5159196161688988481?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/5159196161688988481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/5159196161688988481'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/09/j2me-sony-ericson-w200-jueguitos.html' title='J2ME Sony Ericson W200 Jueguitos'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Z8YagPErb08/SMRHn7tBy4I/AAAAAAAAAKc/z90OWNCc4Yc/s72-c/cel1.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-8271530222354433628</id><published>2008-08-25T13:07:00.000-07:00</published><updated>2008-08-25T15:26:35.088-07:00</updated><title type='text'>Video Tutorial OpenLaszlo</title><content type='html'>Hola Saludos a todos.&lt;br /&gt;Bueno aquí de nuevo. Estuve un poco perdió por que estoy un poco enfermo.&lt;br /&gt;&lt;br /&gt;Buscando algo de RIA Encontré estas tutorías para instalar un plugins para el Famoso Netbeans. Con este plugins podrimos introducirnos en OpenLaszlo.&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-f0603e8109c69d58" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v22.nonxt7.googlevideo.com/videoplayback?id%3Df0603e8109c69d58%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1331501783%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D1C6CB57DB7DD607E5D49ADF8F34040677DC7272C.22374161A7634DDAE08E1E091860C4A020FABDA%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Df0603e8109c69d58%26offsetms%3D5000%26itag%3Dw160%26sigh%3DqhrBJ2ZR8hApDrVXjfjjYRG_ftA&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v22.nonxt7.googlevideo.com/videoplayback?id%3Df0603e8109c69d58%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1331501783%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D1C6CB57DB7DD607E5D49ADF8F34040677DC7272C.22374161A7634DDAE08E1E091860C4A020FABDA%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Df0603e8109c69d58%26offsetms%3D5000%26itag%3Dw160%26sigh%3DqhrBJ2ZR8hApDrVXjfjjYRG_ftA&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Ojala les Sirva. Chaoo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-8271530222354433628?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=f0603e8109c69d58&amp;type=video%2Fmp4' length='0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/8271530222354433628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/8271530222354433628'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/08/video-tutorial-openlaszlo.html' title='Video Tutorial OpenLaszlo'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-7075660429200618792</id><published>2008-06-10T13:35:00.000-07:00</published><updated>2008-06-10T20:24:33.305-07:00</updated><title type='text'>Maven Manuales..</title><content type='html'>Bueno aquí les dejo un manual introducción a Maven.&lt;br /&gt;&lt;a href="http://www.chuidiang.com/java/herramientas/maven.php"&gt;Primeros Pasos con Maven&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Además les recomiendo el libro &lt;a href="http://www.itstudy8.org/ShowBook.asp?BookId=4263"&gt;"Java Power Tools"&lt;/a&gt; (Para el que no lo tiene) :D&lt;br /&gt;&lt;br /&gt;En el caso que la instalación no funcionara les recomiendo crear el JAVA_HOME.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_Z8YagPErb08/SE87lNOEVuI/AAAAAAAAAIk/LMll8HbWuME/s1600-h/java_home.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_Z8YagPErb08/SE87lNOEVuI/AAAAAAAAAIk/LMll8HbWuME/s320/java_home.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5210448804280817378" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Trabajo con Netbeans y Maven.&lt;/span&gt;&lt;br /&gt;Para esto necesitamos.&lt;br /&gt;&lt;a href="http://maven.apache.org/download.html"&gt;Maven&lt;/a&gt;&lt;br /&gt;Recomendable (o Superior) &lt;a href="http://download.netbeans.org/netbeans/6.1/final/"&gt;Netbeans 6&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Plugins para Netbeans&lt;/span&gt;&lt;br /&gt;&lt;a href="http://mevenide.codehaus.org/release/mevenide2-netbeans-3.0.9.zip"&gt;Plugin's&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mevenide.codehaus.org/m2-site/"&gt;&lt;br /&gt;Pagina informativa&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_Z8YagPErb08/SE9FBLKDFbI/AAAAAAAAAIs/C7qgwRcwvfo/s1600-h/newmaven.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_Z8YagPErb08/SE9FBLKDFbI/AAAAAAAAAIs/C7qgwRcwvfo/s320/newmaven.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5210459180368074162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Con este plugins podemos crear un proyecto con maven desde cero.&lt;br /&gt;Excelente para iniciar con maven.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Tutoriales&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Una serie de ejemplos hechos con &lt;a href="http://wiki.netbeans.org/NBDemoMaven"&gt;Netbeans y Maven.&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.netbeans.org/kb/60/javaee/ejb-glassfish-maven.html"&gt;Building an EJB 3.0 application using GlassFish v2, Apache Maven 2 and NetBeans IDE 6.0.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.netbeans.org/community/magazine/html/04/maven.html"&gt;Creating a Maven Plataform Development with Maven 2.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Importante.&lt;/span&gt;&lt;br /&gt;En el tutoríal del inicio me parece que no aclararon que es un Goals de Maven.&lt;br /&gt;Bueno Goals de Maven: &lt;br /&gt;java:compile, jar, y clean. &lt;br /&gt;&lt;br /&gt;Los goals de Maven son equivalentes a los Targets de Ant, no necesitas crear goals por ti mismo. Maven proporciona la mayoría de los goals que necesites. En estos momentos, Maven viene con unos 312 goals.&lt;br /&gt;&lt;br /&gt;También debes tener en mente que los goals de Maven están organizados en plug-ins.  &lt;br /&gt;La mayoria de las funcionalidades de Maven vienen en forma de plug-ins. Los plug-ins incluso proporcionan los prefijos para los nombres de goals. &lt;br /&gt;&lt;br /&gt;Por ejemplo, &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;java:compile&lt;/span&gt; : Se refiere al goal compile del plug-in java.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;kodo:enhance&lt;/span&gt; : Se refiere al goal enhance del plug-in kodo. &lt;br /&gt;&lt;br /&gt;Si ejecutas un plug-in sin un nombre de goal, invocarás el goal por defecto de ese plug-in. Por ejemplo, maven jar invoca el goal por defecto del plug-in jar.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Ejecutar tareas ant en maven &lt;/span&gt;&lt;br /&gt;Este es un plugins que integra &lt;a href="http://maven.apache.org/plugins/maven-antrun-plugin/"&gt;ant con maven.&lt;/a&gt;&lt;br /&gt;(Con esto nos damos cuenta que ant no esta muriendo.)&lt;br /&gt;&lt;br /&gt;Si bien esto es posible, no es muy recomendable, ya que el pom.xml queda muy “cargado”. Es mejor tener nuestras tareas de Ant en un build.xml e invocar a este con la tarea de Ant.&lt;br /&gt;&lt;br /&gt;OK espero que alguien le sirva esta recopilación de información sobre maven.&lt;br /&gt;&lt;br /&gt;Saludos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Nota:&lt;/span&gt;&lt;br /&gt;Hap Tambien esta el tutorial del &lt;a href="http://alumnos.cadcc.cl/~araguayo/moniwiki/wiki.php/MavenHibernateSpring"&gt;Ariel.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-7075660429200618792?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/7075660429200618792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/7075660429200618792'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/06/maven-manuales.html' title='Maven Manuales..'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_Z8YagPErb08/SE87lNOEVuI/AAAAAAAAAIk/LMll8HbWuME/s72-c/java_home.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-3891130366185849223</id><published>2008-05-30T18:11:00.000-07:00</published><updated>2008-05-31T12:35:55.997-07:00</updated><title type='text'>BKN me regalaron dos libro.(Gracias a JUG DAY 2008 ).</title><content type='html'>Me gustaría felicitar a los amigos de JUG por este tremendo evento que organizaron.&lt;br /&gt;Lamentablemente no pude asistir a todas las exposiciones pero a las que pude ir me parecieron excelente. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Bkn me regalaron dos libro super bueno y una licencia IntelleijIdea&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_Z8YagPErb08/SECmA6pbRwI/AAAAAAAAAHk/YisZi4KOwoA/s1600-h/9780596527938_lrg.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_Z8YagPErb08/SECmA6pbRwI/AAAAAAAAAHk/YisZi4KOwoA/s320/9780596527938_lrg.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5206343703913514754" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_Z8YagPErb08/SEGoeKpbRxI/AAAAAAAAAHs/pitRn-3Yeic/s1600-h/51eDoWWRrEL._SS500_.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_Z8YagPErb08/SEGoeKpbRxI/AAAAAAAAAHs/pitRn-3Yeic/s320/51eDoWWRrEL._SS500_.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5206627880424654610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Gracias a los amigos JUG DAY 2008.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-3891130366185849223?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/3891130366185849223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/3891130366185849223'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/05/bkn-me-regalaron-un-librogracias-jug.html' title='BKN me regalaron dos libro.(Gracias a JUG DAY 2008 ).'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_Z8YagPErb08/SECmA6pbRwI/AAAAAAAAAHk/YisZi4KOwoA/s72-c/9780596527938_lrg.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-5226732342396698160</id><published>2008-05-25T14:27:00.000-07:00</published><updated>2008-09-07T14:13:08.382-07:00</updated><title type='text'>Descompilador de  *.class</title><content type='html'>Decompiler - DJ: Es un programa con el cual podemos descompilar *.class y volverlos a su origuen *.java exelente para descompilar.&lt;br /&gt;&lt;br /&gt;Pueden bajarlo &lt;a href="http://members.fortunecity.com/neshkov/dj.html"&gt;desde aqui.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ok espero que les sirva.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-5226732342396698160?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/5226732342396698160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/5226732342396698160'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/05/descompilador-de-class.html' title='Descompilador de  *.class'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-2577418390459346934</id><published>2008-05-25T13:05:00.000-07:00</published><updated>2008-05-25T14:27:29.846-07:00</updated><title type='text'>Instalación de JavaServer-Face y RichFace.</title><content type='html'>RichFaces. Fue desarrollado para potenciar JavaServerFaces. por eso la intalación necesitamos una serie de fameword.&lt;br /&gt;&lt;br /&gt;Primero bajar los paquete RichFaces: &lt;a href="http://www.jboss.org/jbossrichfaces/downloads/"&gt;Aqui&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;richfaces-ui-3.1.3.GA.jar&lt;br /&gt;richfaces-impl-3.1.3.GA.jar&lt;br /&gt;richfaces-api-3.1.3.GA.jar&lt;br /&gt;&lt;br /&gt;Luego necesitamos los siguientes paquetes que son una dependencia para richfaces, son paquetes creados por Apache software Fundation.&lt;br /&gt;&lt;br /&gt;commons &lt;a href="http://commons.apache.org/downloads/download_collections.cgi"&gt;collections&lt;/a&gt;&lt;br /&gt;commons &lt;a href="http://commons.apache.org/downloads/download_beanutils.cgi"&gt;beanutils&lt;/a&gt;&lt;br /&gt;commons &lt;a href="http://commons.apache.org/downloads/download_digester.cgi"&gt;digester&lt;/a&gt;&lt;br /&gt;commons &lt;a href="http://commons.apache.org/downloads/download_logging.cgi"&gt;logging&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tambien son necesario los parquetes.&lt;br /&gt;&lt;br /&gt;http://www.ibiblio.org/maven/commons-logging/jars/&lt;br /&gt;commons-logging-adapters&lt;br /&gt;commons-logging-api&lt;br /&gt;&lt;br /&gt;Y Ahora son las bibliotecas de JavaServerFaces.&lt;br /&gt;http://java.sun.com/javaee/javaserverfaces/download.html&lt;br /&gt;&lt;br /&gt;jsf-api.jar&lt;br /&gt;jsf-impl.jar&lt;br /&gt;jstl.jar&lt;br /&gt;&lt;br /&gt;Finalmente tendremos que tener algo asi.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_Z8YagPErb08/SDnPKKpbRvI/AAAAAAAAAHc/3pK4tCD_npE/s1600-h/bibliotecas.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_Z8YagPErb08/SDnPKKpbRvI/AAAAAAAAAHc/3pK4tCD_npE/s320/bibliotecas.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5204418617967068914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La Configuracion del web.xml.&lt;br /&gt;Con este xml resolvemos las configuraciones de JavaServer Face y RichFace.&lt;br /&gt;&lt;br /&gt;&lt; ?xml version="1.0" encoding="UTF-8"? &gt;&lt;br /&gt;&lt; web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" &gt;&lt;br /&gt;&lt;br /&gt;    &lt; context-param &gt;&lt;br /&gt;        &lt; param-name &gt;com.sun.faces.verifyObjects&lt; /param-name &gt;&lt;br /&gt;        &lt; param-value &gt;true&lt; /param-value &gt;&lt;br /&gt;    &lt; /context-param &gt;&lt;br /&gt;    &lt; context-param &gt;&lt;br /&gt;        &lt; param-name &gt;com.sun.faces.validateXml&lt; /param-name &gt;&lt;br /&gt;        &lt; param-value &gt;true&lt; /param-value &gt;&lt;br /&gt;    &lt; /context-param &gt;&lt;br /&gt;    &lt; context-param &gt;&lt;br /&gt;        &lt; param-name &gt;javax.faces.DEFAULT_SUFFIX&lt; /param-name &gt;&lt;br /&gt;        &lt; param-value &gt;.xhtml&lt; /param-value &gt;&lt;br /&gt;    &lt; /context-param &gt;&lt;br /&gt;    &lt; context-param &gt;&lt;br /&gt;        &lt; param-name &gt;facelets.DEVELOPMENT&lt; /param-name &gt;&lt;br /&gt;        &lt; param-value &gt;false&lt; /param-value &gt;&lt;br /&gt;    &lt; /context-param &gt;&lt;br /&gt;    &lt; context-param &gt;&lt;br /&gt;        &lt; param-name &gt;facelets.SKIP_COMMENTS&lt; /param-name &gt;&lt;br /&gt;        &lt; param-value &gt;true&lt; /param-value &gt;&lt;br /&gt;    &lt; /context-param &gt;&lt;br /&gt;    &lt; context-param &gt;&lt;br /&gt;        &lt; param-name &gt;javax.faces.STATE_SAVING_METHOD&lt; /param-name &gt;&lt;br /&gt;        &lt; param-value &gt;client&lt; /param-value &gt;&lt;br /&gt;    &lt; /context-param &gt;&lt;br /&gt;&lt;br /&gt;    &lt; context-param &gt;&lt;br /&gt;     &lt; param-name &gt;org.richfaces.SKIN&lt; /param-name &gt;&lt;br /&gt;     &lt; param-value &gt;blueSky&lt; /param-value &gt;&lt;br /&gt;    &lt; /context-param &gt;&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt; servlet &gt;&lt;br /&gt;        &lt; servlet-name &gt;Faces Servlet&lt; /servlet-name &gt;&lt;br /&gt;        &lt; servlet-class &gt;javax.faces.webapp.FacesServlet&lt; /servlet-class &gt;&lt;br /&gt;        &lt; load-on-startup &gt;1&lt; /load-on-startup &gt;&lt;br /&gt;    &lt; /servlet &gt;&lt;br /&gt;    &lt;br /&gt;    &lt; servlet-mapping &gt;&lt;br /&gt;        &lt; servlet-name &gt;Faces Servlet&lt; /servlet-name &gt;&lt;br /&gt;        &lt; url-pattern &gt;*.jsf&lt; /url-pattern &gt;&lt;br /&gt;    &lt;/servlet-mapping&gt;&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &lt; filter &gt;&lt;br /&gt;     &lt; display-name &gt;RichFaces Filter&lt; /display-name &gt;&lt;br /&gt;     &lt; filter-name &gt;richfaces&lt; /filter-name &gt;&lt;br /&gt;     &lt; filter-class &gt;org.ajax4jsf.Filter&lt; /filter-class &gt;&lt;br /&gt;    &lt; /filter &gt;&lt;br /&gt;    &lt;br /&gt;     &lt; filter-mapping &gt;&lt;br /&gt;     &lt; filter-name &gt;richfaces&lt; /filter-name &gt;&lt;br /&gt;     &lt; servlet-name &gt;Faces Servlet&lt; /servlet-name &gt;&lt;br /&gt;     &lt; dispatcher &gt;REQUEST&lt; /dispatcher &gt;&lt;br /&gt;     &lt; dispatcher &gt;FORWARD&lt; /dispatcher &gt;&lt;br /&gt;     &lt; dispatcher &gt;INCLUDE&lt; /dispatcher &gt;&lt;br /&gt;    &lt; /filter-mapping &gt;&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt; session-config &gt;&lt;br /&gt;        &lt; session-timeout &gt;&lt;br /&gt;            30&lt;br /&gt;        &lt; /session-timeout &gt;&lt;br /&gt;    &lt; /session-config &gt;&lt;br /&gt;    &lt;br /&gt;    &lt; welcome-file-list &gt;&lt;br /&gt;        &lt;welcome-file &gt;forward.jsp&lt; /welcome-file &gt;&lt;br /&gt;    &lt; /welcome-file-list &gt;&lt;br /&gt;    &lt;br /&gt;&lt; /web-app &gt;&lt;br /&gt;&lt;br /&gt;Bueno creo que eso seria todo, despues es utilizar estos componentes web un proyecto.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-2577418390459346934?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/2577418390459346934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/2577418390459346934'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/05/instalacin-de-javaserver-face-y.html' title='Instalación de JavaServer-Face y RichFace.'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_Z8YagPErb08/SDnPKKpbRvI/AAAAAAAAAHc/3pK4tCD_npE/s72-c/bibliotecas.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-8651415812052712957</id><published>2008-05-22T17:21:00.000-07:00</published><updated>2008-09-01T13:35:20.220-07:00</updated><title type='text'>Introducción a RichFaces</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Introduccion a RichFaces&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El 5 de marzo de 2007, Red Hat y &lt;a href="http://exadel.com/web/portal/home"&gt;Exadel &lt;/a&gt; &lt;a href="http://www.redhat.com/developers/partners/exadel/"&gt;anunciaron una asociación&lt;/a&gt; estratégica para desarrollar open-source  y publicar Exadel's Ajax4jsf, RichFaces, y Studio Pro products de JBoss as JBoss Ajax4jsf, JBoss RichFaces, and JBoss Developer Studio.&lt;br /&gt;&lt;br /&gt;RichFaces es una biblioteca de componentes para JSF y un avanzado framework para la integración de AJAX con facilidad en la capacidad de desarrollo de aplicaciones de negocio. RichFaces componentes vienen listos para su uso out-of-the-box, por lo que los desarrolladores pueden ahorrar tiempo de inmediato para aprovechar las características de los componentes para crear aplicaciones Web que proporcionan mejoras en gran medida la experiencia del usuario más fiable y más rápidamente. RichFaces también incluye un fuerte apoyo para la skinnability de aplicaciones JSF. RichFaces también aprovecha al máximo los beneficios de JSF framework incluyendo, la validación y conversión de instalaciones, junto con la gestión de estática y dinámica los recursos.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_Z8YagPErb08/SDYcWqpbRuI/AAAAAAAAAHU/IDZSO-776zs/s1600-h/newpic2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_Z8YagPErb08/SDYcWqpbRuI/AAAAAAAAAHU/IDZSO-776zs/s320/newpic2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5203377595203929826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Ajax4jsf y RichFaces&lt;/span&gt;&lt;br /&gt;son una biblioteca open source que se integra totalmente en la arquitectura de JSF y hereda las funcionalidades de sus etiquetas dotándolas con tecnología Ajax de forma limpia y sin añadir código Javascript. Mediante este framework podemos variar el ciclo de vida de una petición JSF, recargar determinados componentes de la página sin necesidad de recargarla por completo, realizar peticiones al servidor automáticas, control de cualquier evento de usuario, etc. En definitiva Ajax4jsf y richfaces permite dotar a nuestra aplicación JSF de contenido mucho más profesionales con muy poco esfuerzo.(Como nos gusta que se vea arto con muy poco..:D)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Funcionamiento del framework.&lt;/span&gt;&lt;br /&gt;El funcionamiento del framework es sencillo. Mediante sus propias etiquetas se generan eventos que envían peticiones al contenedor Ajax. Estos eventos se pueden ejecutar por pulsar un botón, un enlace, una región específica de la pantalla, un cambio de estado de un componente, etc. Esto significa que no nos preocuparemos de crear el código Javascript y el objeto XMLHttpRequest para que envíe la petición al servidor ya que el framework lo hará por nosotros.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Etiqueta.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Ajax4jsf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt; aj4:support &gt; :  Etiqueta que se puede añadir a cualquier otra etiqueta JSF para dotarla de funcionalidad Ajax. Permite al componente generar peticiones asíncronas mediante eventos (onclick, onblur, onchange,...) y actualizar campos de un formulario de forma independiente, sin recargar toda la página.&lt;br /&gt;&lt;br /&gt;&lt; aj4:poll &gt; :  Realiza cada cierto tiempo una petición al servidor.&lt;br /&gt;&lt;br /&gt;&lt; aj4:commandButton &gt; :  Botón de envío de formulario similar a &lt;h:commandButton&gt; de JSF. La principal diferencia es que se puede indicar que únicamente actualice ciertos componentes evitando la recarga de todo el formulario.&lt;br /&gt;&lt;br /&gt;&lt; aj4:commandLink &gt; :  Comportamiento similar a &lt; aj4:commandButton &gt; pero en un link.&lt;br /&gt;&lt;br /&gt;&lt; aj4:htmlCommandLink &gt; :  Muy parecida a la etiqueta anterior con pequeñas diferencias en la generación de links y cuando se utilizan etiquetas &lt; f:param &gt;. &lt;br /&gt;&lt;br /&gt;&lt; aj4:region &gt; :  Determina un área a decodificar en el servidor después de la petición Ajax.&lt;br /&gt;&lt;br /&gt;&lt; aj4:status &gt; :  Muestra el estado de la petición Ajax. Hay 2 estados posibles: procesando petición y petición terminada. Por ejemplo mientras dure el proceso de la llamada al servidor y la evaluación de la petición se puede mostrar el texto "procesando..." y cuando termine la petición y se devuelva la respuesta a la página se cambia el texto por "petición finalizada". &lt;br /&gt;&lt;br /&gt;&lt; aj4:form &gt; :  Similar al &lt; h:form &gt; con la diferencia de que se puede enviar previamente el contenido al contenedor Ajax.&lt;br /&gt;&lt;br /&gt;&lt; aj4:actionparam &gt; :  Etiqueta que combina la funcionalidad de la  etiqueta &lt; f:param &gt; y &lt; f:actionListener &gt;.&lt;br /&gt;&lt;br /&gt;&lt; aj4:outputPanel &gt; :  Se utiliza para agrupar componentes para aplicarles similares propiedades, por ejemplo a la hora de actualizar sus valores tras la petición Ajax.&lt;br /&gt;&lt;br /&gt;&lt; aj4:ajaxListener &gt; :  Similar a la propiedad actionListener o valueChangeListener pero con la diferencia de que la petición se hace al contenedor Ajax.&lt;br /&gt;&lt;br /&gt;&lt; aj4:jsFunction &gt; :  Se utiliza para pasarle un valor automáticamente a una función Javascript tras recibirlo del servidor.&lt;br /&gt;&lt;br /&gt;&lt; aj4:loadScript &gt; :  Inserta en la página las funciones Javascript contenidas en un archivo *.js&lt;br /&gt;&lt;br /&gt;&lt; aj4:loadStyle &gt; :  Igual que la etiqueta anterior pero para una hoja de estilos *.css&lt;br /&gt;&lt;br /&gt;&lt; aj4:loadBundle &gt; :  Similar al &lt; f:loadBundle &gt; de JSF.&lt;br /&gt;&lt;br /&gt;&lt; aj4:log &gt; :  Carga en la página una consola que muestra las trazas de los logs que devuelve el contenedor Ajax.&lt;br /&gt;&lt;br /&gt;&lt; aj4:include &gt; :  Se utiliza para incluir en la página el contenido de otra de acuerdo a la definición que se haga en las reglas de navegación del faces-config. Es decir la siguiente página a cargar de acuerdo a la navegación especificada se cargaría en la vista actual.&lt;br /&gt;&lt;br /&gt;&lt; aj4:repeat &gt; :  Etiqueta para iterar sobre una colección y mostrar todos sus campos. &lt;br /&gt;&lt;br /&gt;&lt; aj4:keepAlive &gt; :  Permite mantener un bean en un estado determinado durante peticiciones.&lt;br /&gt;&lt;br /&gt;&lt; aj4:mediaOutput &gt; :  Componente que permite mostrar contenido multimedia como imágenes, vídeos, archivos sonoros, etc.&lt;br /&gt;&lt;br /&gt;Para conocer mucho más sobre el &lt;a href="http://www.jboss.org/jbossajax4jsf/docs/devguide/en/html/index.html"&gt;Ajax4jsf &lt;/a&gt;documentación oficial.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;RichFaces.&lt;br /&gt;&lt; rich:calendar &gt; . Este componente se utiliza para crear elementos de calendario. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/calendar.jsf?c=calendar"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:comboBox &gt; : Este es un componente, que proporciona combo Box editable. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/comboBox.jsf?c=comboBox"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:componentControl &gt; : Este permite llamar a funciones API de JavaScript en los componentes definidos después de los acontecimientos. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/componentControl.jsf?c=componentControl"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:contextMenu &gt; : Este componente se utiliza para la creación de "multileveled context menus" que se activan después de que un usuario define un evento (onmouseover, onclick, etc) sobre cualquier elemento de la página. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/contextMenu.jsf?c=contextMenu"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:dataFilterSlider &gt; : Un control basado en la acción, Este componente se utiliza para crear un filtrar de los datos de una tabla. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/dataFilterSlider.jsf?c=dataFilterSlider"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:datascroller &gt; : El componente diseñado para proporcionar la funcionalidad de los cuadros de desplazamiento utilizando Ajax solicitudes. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/dataTableScroller.jsf?c=dataTableScroller"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:columns &gt; : Es un componente, que le permite crear una columnas dinámica. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/columns.jsf?c=columns"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:columnGroup &gt; : Este componente nos permite combinar las columnas en una fila para organizar. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/dataTable.jsf?c=columnGroup"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:dataGrid &gt; : Este componente permite ver los datos como una rejilla que nos deja elegir los datos. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/dataGrid.jsf?c=dataGrid"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:dataList &gt; : El componente dataList permite prestar los datos de un modo lista. http://livedemo.exadel.com/richfaces-demo/richfaces/dataLists.jsf?c=dataList&lt;br /&gt;&lt;br /&gt;&lt; rich:dataOrderedList &gt; : El componente para ordenar las listas de prestación que permite elegir los datos. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/dataLists.jsf?c=dataOrderedList"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:dataDefinitionList &gt; : Muy pareciada a la anterior. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/dataLists.jsf?c=dataDefinitionList"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:dataTable &gt; : Este componentes nos permite crear tablas de datos. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/dataTable.jsf?c=dataTable"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:subTable &gt; : El componente se utiliza para la inserción de subtables&lt;br /&gt;&lt;br /&gt;&lt; rich:dndParam &gt; : Este componente se utiliza para pasar parámetros durante arrastrar y soltar las operaciones.&lt;br /&gt;&lt;br /&gt;&lt; rich:dragIndicator &gt; : Arrastrar y Soltar. este componente nos permite. crear listas de datos que podemos arrastrar y soltar en otro sector u otra tabla. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/dragSupport.jsf?c=dragIndicator"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:dragSupport &gt; : Muy parecido al anterior&lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/dragSupport.jsf?c=dragSupport"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:dropSupport &gt; : Muy pareceido a las anteriores.&lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/dragSupport.jsf?c=dropSupport"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:dropDownMenu &gt; : Este componente se utiliza para crear múltiples menús desplegables. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/dropDownMenu.jsf?c=dropDownMenu"&gt;Demo&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt; rich:menuGroup &gt; : Este componente se utiliza para definir un ampliable grupo de temas dentro de una lista emergente u otro grupo. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/dropDownMenu.jsf?c=menuGroup"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:menuItem &gt; . Este componente se utiliza para la definición de un único punto dentro de una lista emergente. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/dropDownMenu.jsf?c=menuItem"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:menuSeparator &gt; : Este componente se utiliza para la definición de un separador horizontal que puede ser colocado entre los grupos o los temas del programa.&lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/dropDownMenu.jsf?c=menuSeparator"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:fileUpload &gt; : Este componente permite sibir un archivo al servidor. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/fileUpload.jsf?c=fileUpload"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:inplaceInput &gt; : Este componente nos permite desplegar y editar información. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/inplaceInput.jsf?c=inplaceInput"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:inplaceSelect &gt; : Muy parecido al anterior. se utiliza para seleccionar algo asi como un dropDown. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/inplaceSelect.jsf?c=inplaceSelect"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:listShuttle &gt; : Este componente se utiliza para mover los temas elegidos de una lista a otra con su facultativo reordenamiento. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/listShuttle.jsf?c=listShuttle"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt; rich:message &gt; : El componente se utiliza para hacer un solo mensaje a un componente específico. &lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/message.jsf?c=message"&gt;Demo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para conocer mucho más sobre:&lt;br /&gt;&lt;a href="http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/docs/devguide/en/html_single/index.html"&gt;RichFaves&lt;/a&gt;documentación oficial.&lt;br /&gt;&lt;a href="http://livedemo.exadel.com/richfaces-demo/richfaces/actionparam.jsf"&gt;Ejemplos&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;paginas de referencia..&lt;br /&gt;http://www.jboss.org/jbossajax4jsf/docs/devguide/en/html/index.html&lt;br /&gt;http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=Ajax4Jsf&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Un Excelente Manual de RichFaces.&lt;br /&gt;&lt;br /&gt;http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/docs/devguide/en/html/index.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-8651415812052712957?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/8651415812052712957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/8651415812052712957'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/05/introduccin-richfaces.html' title='Introducción a RichFaces'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_Z8YagPErb08/SDYcWqpbRuI/AAAAAAAAAHU/IDZSO-776zs/s72-c/newpic2.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-464796971538188135</id><published>2008-04-29T12:06:00.000-07:00</published><updated>2008-04-29T12:24:08.876-07:00</updated><title type='text'>Lo que todo Informático debe saber.....</title><content type='html'>Aqui encontran informacion que todo informático debe saber.&lt;br /&gt; Los Personajes mas importantes de la Computacion.&lt;br /&gt;&lt;br /&gt;Los "&lt;span style="font-weight:bold;"&gt;Padres&lt;/span&gt;" de la computación&lt;br /&gt;     Alan Turing&lt;br /&gt;     Alonzo Church&lt;br /&gt;     Konrad Zuse&lt;br /&gt;     John Vincent Atanasoff&lt;br /&gt;&lt;br /&gt;Los "&lt;span style="font-weight:bold;"&gt;Viejos hackers&lt;/span&gt;"&lt;br /&gt;Los "&lt;span style="font-weight:bold;"&gt;Activistas&lt;/span&gt;"&lt;br /&gt;Los "&lt;span style="font-weight:bold;"&gt;Linuxeros&lt;/span&gt;"&lt;br /&gt;Los "&lt;span style="font-weight:bold;"&gt;Maestros&lt;/span&gt;" de la computación&lt;br /&gt;Los "&lt;span style="font-weight:bold;"&gt;Lingüistas&lt;/span&gt;"&lt;br /&gt;     Creador de Java&lt;br /&gt;      James Gosling&lt;br /&gt;&lt;br /&gt;Los "&lt;span style="font-weight:bold;"&gt;internautas&lt;/span&gt;"&lt;br /&gt;Los "&lt;span style="font-weight:bold;"&gt;empresarios&lt;/span&gt;"&lt;br /&gt;     Sun Microsystems&lt;br /&gt;      Scott McNealy&lt;br /&gt;      Bill Joy&lt;br /&gt;     Google&lt;br /&gt;      Larry Page&lt;br /&gt;      Sergey Brin&lt;br /&gt;&lt;br /&gt;Rescato los mas importantes. pero están todos &lt;a href="http://www.smaldone.com.ar/fotografias/personajes.shtml"&gt;AQUI&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-464796971538188135?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/464796971538188135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/464796971538188135'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/04/lo-que-todo-informtico-debe-saber.html' title='Lo que todo Informático debe saber.....'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-1590793146739152145</id><published>2008-04-24T07:11:00.000-07:00</published><updated>2008-04-24T07:17:21.027-07:00</updated><title type='text'>if( "" == null ){SI}else{NO}...????????</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Strings of Zero Length Not Equivalent To NULL&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hola bueno esta discución se formo dentro de la oficina donde trabajo, y mis compañeros de despues de un rato de discución llegaron a la siguiente conclución dada por Oracle.&lt;br /&gt;&lt;br /&gt;A string of zero length ('') is not equivalent to a NULL value. According to the ANSI SQL 1992 Transitional standard, a zero-length or empty string is not the same as NULL. Ensure that applications do not treat empty strings and NULL values equivalently.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://kursinfo.himolde.no/in-kurs/in135/Oracle9i/901_doc/server.901/a90120/ch4_dep.htm#7935"&gt;detalle aqui&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-1590793146739152145?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/1590793146739152145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/1590793146739152145'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/04/if-null-sielseno.html' title='if( &quot;&quot; == null ){SI}else{NO}...????????'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-8825489082477602451</id><published>2008-04-16T12:00:00.000-07:00</published><updated>2008-04-16T12:01:17.101-07:00</updated><title type='text'>JUG Day 2008</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_Z8YagPErb08/SAZM3GZ92vI/AAAAAAAAAGE/gJo7lLa5vT0/s1600-h/JUG_DAY_paraWebchico.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_Z8YagPErb08/SAZM3GZ92vI/AAAAAAAAAGE/gJo7lLa5vT0/s320/JUG_DAY_paraWebchico.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5189920130087115506" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-8825489082477602451?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/8825489082477602451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/8825489082477602451'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/04/jug-day-2008.html' title='JUG Day 2008'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_Z8YagPErb08/SAZM3GZ92vI/AAAAAAAAAGE/gJo7lLa5vT0/s72-c/JUG_DAY_paraWebchico.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-8284946990963031848</id><published>2008-04-07T06:13:00.000-07:00</published><updated>2008-04-07T11:16:27.031-07:00</updated><title type='text'>Concurso para hackers en Chile..</title><content type='html'>Hoy el la mañana leyendo las noticias. encontre este articulo.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.evaluamos.com/internal.php?load=detail&amp;id=8257"&gt;Ver Aqui&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; El objetivo es crear conciencia sobre seguridad informática y &lt;span style="font-weight:bold;"&gt;evaluar el nivel técnico&lt;/span&gt; de la comunidad local de expertos en seguridad.&lt;br /&gt;&lt;br /&gt;Que hay que hackear?&lt;br /&gt;Bueno Microsoft Chile. presta un servidor con sistema operativo Windows 2003 Server R2 versión x64, con Service Pack 2 y parches al día. El servidor Web es IIS 6.0 con extensión ASP habilitada.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.clcert.cl/"&gt;Mas info&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.clcert.cl/show.php?xml=xml/editoriales/doc_08-02.xml&amp;xsl=xsl/editoriales.xsl"&gt;Y todavia mas INFO&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-8284946990963031848?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/8284946990963031848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/8284946990963031848'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/04/concurso-para-hackers-en-chile.html' title='Concurso para hackers en Chile..'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-6238793825262086440</id><published>2008-04-01T08:04:00.000-07:00</published><updated>2008-04-01T08:09:38.470-07:00</updated><title type='text'>Microsoft Anuncia la compra de SpringSource</title><content type='html'>Incleible pero sierto. se anuncia la muerte de Spring...&lt;br /&gt;&lt;br /&gt;Mas:&lt;br /&gt;http://www.jug.cl/pages/viewpage.action?pageId=9240961&lt;br /&gt;&lt;br /&gt;Y el propio Rod Johnson habla sobre el tema:&lt;br /&gt;http://www.infoq.com/news/2008/04/microsoft-springsource-purchase&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-6238793825262086440?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/6238793825262086440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/6238793825262086440'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/04/microsoft-anuncia-la-compra-de.html' title='Microsoft Anuncia la compra de SpringSource'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-5705144641752160548</id><published>2008-03-19T10:31:00.000-07:00</published><updated>2008-03-19T14:20:48.278-07:00</updated><title type='text'>Realm (Reinos) Autentificación con Tomcat.</title><content type='html'>En mi trabajo me encontre con el desafio de crear una autentificación de Tipico en todo proyecto. pero en este caso trabajando con Tomcat y utilizando un REALM. asta este momento totalmente desconocido para mi.. Pero la solución a mi problema..&lt;br /&gt;&lt;br /&gt;Aqui dejo un manual muy bueno el que no soluciona mi problema. pero casi..&lt;br /&gt;por que?&lt;br /&gt;Porque este manual explica como hacer una autentificacion a nivel de tomcat.. Osea si quiero entrar al Admin manager de tomcat.. Funciona. con la DB y no con tomcat-users.xml...&lt;br /&gt;&lt;br /&gt;y mi aplicación y gual se valida con la base de datos. Bueno pero no lo que necesito.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.javahispano.org/contenidos/archivo/22/autentificacion_tomcat.pdf"&gt;Pdf&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.javahispano.org/contenidos/es/autentificacrion_manejada_por_el_contenedor_tomca/"&gt;Pagina&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para mi casi. necesito programar mi propio REALM..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-5705144641752160548?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/5705144641752160548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/5705144641752160548'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/03/realm-reinos-autentificacin-con-tomcat.html' title='Realm (Reinos) Autentificación con Tomcat.'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-1194910470584720577</id><published>2008-03-17T07:32:00.000-07:00</published><updated>2008-03-19T14:21:52.042-07:00</updated><title type='text'>EJB 3.1 Los Primeros Pasos.</title><content type='html'>Fue lanzada la versión EJB 3.1.&lt;br /&gt;&lt;br /&gt;Mas información:&lt;br /&gt;&lt;a href="http://blogs.sun.com/theaquarium/entry/ejb_3_1"&gt;Ejb 3.1&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.sun.com/kensaks/entry/ejb_3_1_early_draft"&gt;ejb_3_1_early_draft&lt;/a&gt;&lt;br /&gt;&lt;a href="http://parleys.com/display/PARLEYS/JSR+318+-+Enterprise+JavaBeans+3.1?showComments=true"&gt;Videos&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-1194910470584720577?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/1194910470584720577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/1194910470584720577'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/03/ejb-31-los-primeros-pasos.html' title='EJB 3.1 Los Primeros Pasos.'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-7109029307808485216</id><published>2008-03-02T11:05:00.000-08:00</published><updated>2008-03-02T11:37:09.372-08:00</updated><title type='text'>Manual dwr básico.</title><content type='html'>El otro día estuve preparando un manual de DWR. y me encontré con un video manual. Con fuentes y todo y Como nosotros los programadores somos un poco flojos. Aplique la típica frase (Si esta echo para que hacerlo de nuevo. Haaa. ).&lt;br /&gt;Y aquí esta la URL. Y listo aquí lo tienen.&lt;br /&gt;&lt;br /&gt;El &lt;a href="http://www.jug.cl/download/attachments/3407889/dwrBasico.swf?version=1"&gt;video&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Las &lt;a href="http://www.jug.cl/download/attachments/3407889/DwrBasico.rar?version=1"&gt;fuentes&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Y que lo disfruten.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-7109029307808485216?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/7109029307808485216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/7109029307808485216'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/03/manual-dwr-bsico.html' title='Manual dwr básico.'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-6513669336961358044</id><published>2008-03-02T10:48:00.001-08:00</published><updated>2008-03-02T10:48:47.697-08:00</updated><title type='text'>GlassFish v2: Preparado para la Empresa</title><content type='html'>Me llego un articulo sobre &lt;span style="font-weight:bold;"&gt;GlassFish v2: preparado para la empresa&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Con nuevas características empresariales que convierten al servidor de aplicaciones &lt;br /&gt;de código abierto en una excelente opción para los sistemas de producción&lt;br /&gt;&lt;br /&gt;Las Novedades:&lt;br /&gt;-   GlassFish v2 y una distribución comercial.&lt;br /&gt;-   Alta disponibilidad y escalabilidad&lt;br /&gt;-   Enterprise-Grade Rendimiento&lt;br /&gt;-   Modulos de administración y Monitoreo&lt;br /&gt;-   perfiles de configuración&lt;br /&gt;-   Interoperabilidad con .NET&lt;br /&gt;-   Entre otras cosas.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://java.sun.com/developer/technicalArticles/glassfish/GFv2OpenforBusiness/index.html?cid=923034"&gt;Leer mas aqui&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-6513669336961358044?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/6513669336961358044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/6513669336961358044'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/03/glassfish-v2-preparado-para-la-empresa.html' title='GlassFish v2: Preparado para la Empresa'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-7605876112888115026</id><published>2008-02-12T09:23:00.000-08:00</published><updated>2008-02-17T07:28:34.265-08:00</updated><title type='text'>Gwt-ext.</title><content type='html'>Excelente se publico la nueva versión de &lt;a href="http://gwt-ext.com/demo/"&gt;GWT&lt;/a&gt;. Frameword que además de trabajar con Ajax y Java. ahora se suman &lt;a href="http://es.wikipedia.org/wiki/Widget"&gt;widget library&lt;/a&gt;. que aportan grandes utilidades. para el desarrollo de interfaces. OK si no me creen. &lt;a href="http://gwt-ext.com/demo/"&gt;demos aqui&lt;/a&gt;.&lt;br /&gt;Pero lo mejor es que ademas de las demos para verlas están lo códigos fuentes. para descargar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-7605876112888115026?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/7605876112888115026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/7605876112888115026'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/02/gwt-ext.html' title='Gwt-ext.'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-5062592695209748541</id><published>2008-02-09T05:09:00.000-08:00</published><updated>2008-02-09T05:35:49.551-08:00</updated><title type='text'>1.- Arquitectura del proyecto. Tutorial.</title><content type='html'>OK. Vamos con la &lt;span style="font-weight:bold;"&gt;Arquitectura del proyecto.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pensemos que:&lt;br /&gt;Tenemos un modelo de base de datos que no existe. Por que vamos a trabajar con Entitys. Pero si necesitamos crear una base de datos vacías.&lt;br /&gt;&lt;br /&gt;Base de datos:&lt;br /&gt;USUARIOSSYSTEM.&lt;br /&gt;BUSINESSSYSTEM.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_Z8YagPErb08/R62mvdczpKI/AAAAAAAAAEg/9PtXC0vIznM/s1600-h/19.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_Z8YagPErb08/R62mvdczpKI/AAAAAAAAAEg/9PtXC0vIznM/s200/19.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5164967681953342626" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;OK. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Ahora la arquitectura del proyecto Java.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Enterprise Applications.(ear). De nombre.&lt;br /&gt;&lt;br /&gt;Esta ejb esta para administrar los usuarios de o los sistemas. va a ser accedida remotamente. por esta razon es importante crear las interfaces remotas.&lt;br /&gt;Usuario-Ejb.ejb&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_Z8YagPErb08/R62pFNczpLI/AAAAAAAAAEo/YRWD0p7y7JE/s1600-h/20.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_Z8YagPErb08/R62pFNczpLI/AAAAAAAAAEo/YRWD0p7y7JE/s320/20.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5164970254638752946" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;-Ear.ear&lt;br /&gt; -Ejb.ejb.&lt;br /&gt; -Web.war.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_Z8YagPErb08/R62pjdczpMI/AAAAAAAAAEw/eKAy1SkdSFo/s1600-h/21.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_Z8YagPErb08/R62pjdczpMI/AAAAAAAAAEw/eKAy1SkdSFo/s320/21.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5164970774329795778" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Si hay dos ejb. Pensemos que tenemos dos servidores en uno tenemos todos los usuarios de lo que sea. (Si lo que sea. Cuenta de correo electrónico, usuario de otros sistemas o usuarios que en el futuro piensan compartir).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ok por ahora todo va bien.&lt;br /&gt;alomejor mas adelante agregemos. unos proyecto de caracter de librerias.(.JAR)&lt;br /&gt;para ayudar la programacion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-5062592695209748541?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/5062592695209748541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/5062592695209748541'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/02/1-arquitectura-del-proyecto-tutorial.html' title='1.- Arquitectura del proyecto. Tutorial.'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_Z8YagPErb08/R62mvdczpKI/AAAAAAAAAEg/9PtXC0vIznM/s72-c/19.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-8161357365396325952</id><published>2008-02-08T09:17:00.000-08:00</published><updated>2008-03-18T05:14:28.904-07:00</updated><title type='text'>GlassFish V2.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_Z8YagPErb08/R6yPzTuLUhI/AAAAAAAAADc/74zJbJ6cMdY/s1600-h/logo.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_Z8YagPErb08/R6yPzTuLUhI/AAAAAAAAADc/74zJbJ6cMdY/s200/logo.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5164660984317170194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="https://glassfish.dev.java.net/"&gt;Glassfish V2&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hola ya a salido la nueva version del servidor de aplicaciones de sun Glassfish v2.&lt;br /&gt;&lt;br /&gt;Directorio de instalación de Glassfish.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;En Windows el servidor de aplicaciones Glassfish que instala netbeans. Se aloja en el directorio.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_Z8YagPErb08/R6yVrzuLUiI/AAAAAAAAADk/3JAFWU5Kjro/s1600-h/2.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_Z8YagPErb08/R6yVrzuLUiI/AAAAAAAAADk/3JAFWU5Kjro/s200/2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5164667452537917986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;C:/Sun.&lt;/span&gt;&lt;br /&gt;Dentro de la carpeta &lt;span style="font-weight:bold;"&gt;domains&lt;/span&gt;. Podemos configurar varios dominios y por defecto encontramos la configuración &lt;span style="font-weight:bold;"&gt;domain1&lt;/span&gt;. Esta es en la que trabajaremos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Información importante.&lt;/span&gt;&lt;br /&gt;Para iniciar el servidor hay que dirigirse a la carpeta:&lt;br /&gt;&lt;br /&gt;C:\Sun\AppServer\domains\domain1\bin&lt;br /&gt;&lt;br /&gt;Una vez en la carpeta bin.&lt;br /&gt;Ejecutamos las siguientes aplicaciones.&lt;br /&gt;Iniciar: startserv.bat&lt;br /&gt;Detener: stopserv.bat&lt;br /&gt;&lt;br /&gt;Puertos de administración.&lt;br /&gt;En esta url encontramos la primera página de glassfish.&lt;br /&gt;localhost:4848/admin. &lt;br /&gt;&lt;br /&gt;User Name : admin.&lt;br /&gt;Password : adminadmin.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_Z8YagPErb08/R6yYCDuLUjI/AAAAAAAAADs/pI5lr-XNiVg/s1600-h/0.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_Z8YagPErb08/R6yYCDuLUjI/AAAAAAAAADs/pI5lr-XNiVg/s200/0.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5164670033813262898" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Pagina de administración de Glassfish.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_Z8YagPErb08/R6yYkDuLUkI/AAAAAAAAAD0/nQeibhMwNHY/s1600-h/1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_Z8YagPErb08/R6yYkDuLUkI/AAAAAAAAAD0/nQeibhMwNHY/s200/1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5164670617928815170" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bueno esta demás señalar que en:&lt;br /&gt;Applications:&lt;br /&gt;Enterprise Applications: Aquí montamos todo el proyecto Empresarial o conocidos también como .ear.&lt;br /&gt;Web Applications: Proyectos o modulos Web. .war&lt;br /&gt;Ejb Modules : Módulos ejb que funciones de forma independiente. .ejb.&lt;br /&gt;&lt;br /&gt;Resources.JDBC.&lt;br /&gt;En esta parte configuramos información de nuestros data sources.  &lt;br /&gt;¿Por qué los data source?&lt;br /&gt;Todos sabemos que una conexión a una base de datos es muy importante. Por esto los grandes de la programación pensaron que lo mejor es que sea administrada por el servidor de aplicación en este caso por glassfish.&lt;br /&gt;&lt;br /&gt;Ventajas. Se evitar hacer una conexión en duro dentro de la aplicación.&lt;br /&gt;&lt;br /&gt;JDBC Resources: Información referente a los data source. Configurados.&lt;br /&gt;Connection Pools: Configuración de un Pool de conexión de data sources.&lt;br /&gt;&lt;br /&gt;OK. El resto creo que es historia. No es necesario que mencione como hacer un deploy de un ear. o un web. Eso es súper fácil.&lt;br /&gt;&lt;br /&gt;Pero recuerden.&lt;br /&gt;Para hacer una conexión a una base de datos. Es muy impórtate que agreguen el jdbc del motor de base de datos que estén utilizado. Copiarlo en la carpeta &lt;br /&gt;C:\Sun\AppServer\domains\domain1\lib&lt;br /&gt;&lt;br /&gt;Bueno mas informacion la encuentran en la pagina oficial de &lt;a href="https://glassfish.dev.java.net/"&gt;glassfish.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;esto es lo básico que hay que saber para comensar.&lt;br /&gt;&lt;br /&gt;Gestión de Servicios Web (Web Service) con GlassFish V2&lt;br /&gt;http://blogs.sun.com/theaquarium_es/entry/gestion_servicios_web_glassfish&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;El Pececito llega ahora más velos&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Glassfish V3.&lt;/span&gt;&lt;br /&gt;Una de las principales características de GlassFish v3, quizás la más impresionante es el tiempo de arranque, en algunas demos se ha conseguido arrancar en 673 milisegundos, es decir menos de un segundo. ¡¡¡ Impresionante!!!&lt;br /&gt;&lt;br /&gt;http://wiki.glassfish.java.net/Wiki.jsp?page=PlanForGlassFishV3&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OK Gracias.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-8161357365396325952?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/8161357365396325952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/8161357365396325952'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/02/glassfish-v2.html' title='GlassFish V2.'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_Z8YagPErb08/R6yPzTuLUhI/AAAAAAAAADc/74zJbJ6cMdY/s72-c/logo.gif' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-946345467898976570</id><published>2008-01-30T10:39:00.000-08:00</published><updated>2008-01-30T13:24:24.566-08:00</updated><title type='text'>Introducción a Spring por Rod Johnson</title><content type='html'>.- Patrón inyección de depencias.&lt;br /&gt;&lt;br /&gt;.- AOP programación orientada a aspectos.&lt;br /&gt;&lt;br /&gt;.- Remoting ofrece una variedad de alternativas a EJB que no dependen de un servidor de aplicaciones J2EE solo con un Tomcat basta, e incluso permite seguir utilizando EJB's configurando el EJB y el EJBClient con Spring.&lt;br /&gt;&lt;br /&gt;.- ORM permite trabajar directamente con los ORMS más populares como Hibernate, TopLink, iBATIS. Pero no se queda allí, es compatible con la especificación JPA.&lt;br /&gt;&lt;br /&gt;.- Web ofrece una alternativa MVC a Struts, y también se puede integrar con varios frameworks web como Struts, WebWork, JSF, etc.&lt;br /&gt;&lt;br /&gt;.- JMS ofrece alternativas a MDB, incluye MessageListeners JmsTemplate, quien dijo que JMS era solo para App Servers.&lt;br /&gt;&lt;br /&gt;.- Security (Acegi) toda una alternativa seria para seguridad en aplicaciones Java, que igual permite integrarse con JAAS.&lt;br /&gt;&lt;br /&gt;.- y muchísimo más, por favor lean &lt;a href="http://www.theserverside.com/tt/articles/article.tss?l=IntrotoSpring25"&gt;Aquí..&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-946345467898976570?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/946345467898976570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/946345467898976570'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/01/introduccin-spring-por-rod-johnsson.html' title='Introducción a Spring por Rod Johnson'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-6819025484282953178</id><published>2008-01-28T05:17:00.000-08:00</published><updated>2008-01-28T05:23:34.481-08:00</updated><title type='text'>Sun Compra MySQL</title><content type='html'>El conocido motor de base de datos MySql ahora con nuevos dueños. Sun Microsystems. Realiza gestiones de comprar el famoso motor de base de datos.&lt;br /&gt;&lt;br /&gt;http://blogs.mysql.com/kaj/2008/01/16/sun-acquires-mysql/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-6819025484282953178?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/6819025484282953178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/6819025484282953178'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/01/sun-compra-mysql.html' title='Sun Compra MySQL'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-4399816923114436543</id><published>2008-01-10T19:02:00.000-08:00</published><updated>2008-02-09T05:31:38.636-08:00</updated><title type='text'>Un nuevo Proyecto Tutorial.</title><content type='html'>Utilizar las Tecnologías. J2EE no es fácil mas aun con toda la ensalada de Frameword que existen. pero bueno para ganar dinero hay que trabajar y estudiar. y por esta razón es que me he obliga a hacer esta entrada a mi blogger.&lt;br /&gt;aquí vamos una empresa particular en la que trabaje. me solicito comenzar. un proyecto j2ee (Espero terminarlo).&lt;br /&gt;&lt;br /&gt;OK. lo que voy a utilizar. primero.&lt;br /&gt;&lt;br /&gt;1.- una base de datos. &lt;a href="http://www.postgresql.org/download/"&gt;PostgresSQL&lt;/a&gt;.&lt;br /&gt;2.- Java compilador &lt;a href="http://java.sun.com/javaee/downloads/index.jsp"&gt;jdk-1_5_0_09-windows-i586-p&lt;/a&gt;&lt;br /&gt;3.- &lt;a href="http://www.netbeans.org"&gt;Netbeans 6.0.&lt;/a&gt;&lt;br /&gt;4.- Frameword. &lt;br /&gt;        JavaServerFace: Para la presentacion de las paginas.&lt;br /&gt;        TopLink: Para utilizar Persistencia de Entitys.&lt;br /&gt;        Log4j: Para Documentar los log.(Errores)&lt;br /&gt;        Dwr: Para utilizar Ajar.&lt;br /&gt;5.- Servidor de Aplicaciones. &lt;a href="https://glassfish.dev.java.net/"&gt;Glassfish V2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Creo que por ahora solo eso hará falta.&lt;br /&gt;&lt;br /&gt;Bueno y por supuesto para este proyecto utilizaremos Ejb 3.0(Session Bean's. Locales y Remotos (Remotos los incluiremos por si acaso) ), Persistencia(Entitys beans, Ejb-QL) y para ajax DWR.&lt;br /&gt;&lt;br /&gt;Ok y para la seguridad de la pagina vamos a ver que pasa con JAS.&lt;br /&gt;&lt;br /&gt;Bien así como avance voy a subir mi trabajo.&lt;br /&gt;&lt;br /&gt;OK Saludos.&lt;br /&gt;&lt;br /&gt;Vamos aqui la primera parte:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://frankseguel.blogspot.com/2008/02/1-arquitectura-del-proyecto-tutorial.html"&gt;1.- Arquitectuta.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-4399816923114436543?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/4399816923114436543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/4399816923114436543'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2008/01/un-nuevo-proyecto-tutorial.html' title='Un nuevo Proyecto Tutorial.'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-6098780522411569370</id><published>2007-11-11T08:17:00.000-08:00</published><updated>2007-11-11T08:19:04.867-08:00</updated><title type='text'>Las Clases..</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Que son las clases&lt;/span&gt;&lt;br /&gt;Una clase es una abstracción de la realidad que:&lt;br /&gt;Enfatiza las características relevantes.&lt;br /&gt;Suprime otras características.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Y como identificamos los tipos de clases.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Clase frontera&lt;br /&gt;Clase entidad&lt;br /&gt;Clase de control&lt;br /&gt;Clase de excepción&lt;br /&gt;Clase de utilidad&lt;br /&gt;Metaclase&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-6098780522411569370?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/6098780522411569370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/6098780522411569370'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2007/11/las-clases.html' title='Las Clases..'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-895942215934760126</id><published>2007-11-11T08:02:00.000-08:00</published><updated>2007-11-11T08:26:23.181-08:00</updated><title type='text'>Y que se dice UML.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_Z8YagPErb08/RzcohqWPl8I/AAAAAAAAACs/THt5tQU-Gak/s1600-h/uml-7.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_Z8YagPErb08/RzcohqWPl8I/AAAAAAAAACs/THt5tQU-Gak/s200/uml-7.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5131614859180349378" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Que es el Lenguaje Unificado de Modelado (UML)&lt;/span&gt;&lt;br /&gt;Se puede simplificar en cuatro palabras. &lt;br /&gt;Visualizar&lt;br /&gt;Especificar&lt;br /&gt;Construir&lt;br /&gt;Documentar&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Como nace UML.&lt;/span&gt;&lt;br /&gt;UML nace como la unificación de muchos otros lenguajes de modelado que surgieron entre los 80s e inicio de los 90s.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_Z8YagPErb08/RzcpLaWPl9I/AAAAAAAAAC0/C_wH5X83ZV4/s1600-h/uml-8.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_Z8YagPErb08/RzcpLaWPl9I/AAAAAAAAAC0/C_wH5X83ZV4/s200/uml-8.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5131615576439887826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;UML define diagramas Estandarizados.&lt;/span&gt;&lt;br /&gt;Diagrama de clases&lt;br /&gt;Diagrama de objeto&lt;br /&gt;Diagrama de estado&lt;br /&gt;Diagrama de componentes&lt;br /&gt;Diagrama de Implantación&lt;br /&gt;Diagrama de colaboración&lt;br /&gt;Diagrama de Secuencia&lt;br /&gt;Diagrama de Actividades&lt;br /&gt;Diagrama de casos de uso&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Beneficios de UML.&lt;/span&gt;&lt;br /&gt;Define una notación expresiva y consistente&lt;br /&gt; Facilita la comunicación&lt;br /&gt; Ayuda a identificar omisiones&lt;br /&gt; Soporta análisis y diseño a pequeña y gran escala&lt;br /&gt;Define un mapeo fluido desde el análisis al diseño, y de esta a la implementación.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-895942215934760126?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/895942215934760126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/895942215934760126'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2007/11/y-que-se-dice-uml.html' title='Y que se dice UML.'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_Z8YagPErb08/RzcohqWPl8I/AAAAAAAAACs/THt5tQU-Gak/s72-c/uml-7.JPG' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-8828800229300102600</id><published>2007-11-11T07:11:00.000-08:00</published><updated>2007-11-11T08:00:59.465-08:00</updated><title type='text'>WAS (WebSphere Application Server v6.1)- (WebSphere v6.1)</title><content type='html'>Antes que nada debemos saber que el WAS es un servidor de aplicaciones J2ee que en su versión 6.1 soporta el API 1.5 de java.&lt;br /&gt;El servidor de aplicaciones reserva los puertos 9060 y 9080.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Puerto 9060.&lt;/span&gt;&lt;br /&gt;http://localhost:9060/ibm/console/ : URL del la consola de administración&lt;br /&gt;ID de usuario: Nombre del usuario puede ser cualquier nombre.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_Z8YagPErb08/RzcceqWPl1I/AAAAAAAAAB0/hw5ww0KFFa0/s1600-h/was-1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_Z8YagPErb08/RzcceqWPl1I/AAAAAAAAAB0/hw5ww0KFFa0/s320/was-1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5131601613501208402" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Consola de administración&lt;/span&gt;&lt;br /&gt;http://localhost:9060/ibm/console/ : URL del la consola de administración&lt;br /&gt;ID de usuario: Nombre del usuario puede ser cualquier nombre.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_Z8YagPErb08/Rzcc26WPl2I/AAAAAAAAAB8/UDZSDG2H0DY/s1600-h/was-2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_Z8YagPErb08/Rzcc26WPl2I/AAAAAAAAAB8/UDZSDG2H0DY/s320/was-2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5131602030113036130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Deployar una aplicación.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_Z8YagPErb08/RzcejKWPl3I/AAAAAAAAACE/6H5ngJ3kejM/s1600-h/was-3.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_Z8YagPErb08/RzcejKWPl3I/AAAAAAAAACE/6H5ngJ3kejM/s320/was-3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5131603889833875314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Aplicaciones de empresa.&lt;/span&gt;&lt;br /&gt;Esta página te ayuda a gestionar las aplicaciones instaladas.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Instalar una nueva aplicación.&lt;/span&gt;&lt;br /&gt;En la pagina de instalar puedes deployar aplicaciones módulo EAR, WAR, JAR o SAR.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Pagina para gestionar aplicaciones instaladas.&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_Z8YagPErb08/RzchyqWPl4I/AAAAAAAAACM/4PXYqrxcpvc/s1600-h/was-4.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_Z8YagPErb08/RzchyqWPl4I/AAAAAAAAACM/4PXYqrxcpvc/s320/was-4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5131607454656731010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Pagina de gestion de una aplicacion.&lt;/span&gt;&lt;br /&gt;Fijarse especialmente en la opción. “Ver descriptor de despliegue”&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_Z8YagPErb08/RzcjIqWPl5I/AAAAAAAAACU/P5QYuQPw42U/s1600-h/was-5.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_Z8YagPErb08/RzcjIqWPl5I/AAAAAAAAACU/P5QYuQPw42U/s320/was-5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5131608932125480850" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Descriptor de Despliegue&lt;/span&gt;&lt;br /&gt;El descriptor de despliegue nos indica la información necesaria para desplegar la aplicación en nuestro navegador.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_Z8YagPErb08/Rzcj_6WPl6I/AAAAAAAAACc/CRm7oK_S4ok/s1600-h/was-6.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_Z8YagPErb08/Rzcj_6WPl6I/AAAAAAAAACc/CRm7oK_S4ok/s320/was-6.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5131609881313253282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Y Finalmente podemos ver la aplicación en el puerto 9080:&lt;br /&gt;http://localhost:9080/UTC/&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_Z8YagPErb08/RzcmbaWPl7I/AAAAAAAAACk/xHnNjZtw7Wo/s1600-h/was-7.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_Z8YagPErb08/RzcmbaWPl7I/AAAAAAAAACk/xHnNjZtw7Wo/s320/was-7.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5131612552782911410" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nota: Esta aplicación corresponde a una que trae por defecto el WAS. No se confundan. Esta aplicación sirve para hacer pruebas a las configuraciones. Bueno eso creo.&lt;br /&gt;&lt;br /&gt;OK saludos. Y ojala os sirva.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-8828800229300102600?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/8828800229300102600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/8828800229300102600'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2007/11/was-websphere-application-server-v61.html' title='WAS (WebSphere Application Server v6.1)- (WebSphere v6.1)'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_Z8YagPErb08/RzcceqWPl1I/AAAAAAAAAB0/hw5ww0KFFa0/s72-c/was-1.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-152758211947230537</id><published>2007-11-11T07:07:00.000-08:00</published><updated>2007-11-11T07:11:41.832-08:00</updated><title type='text'>La gran putilla de Java.</title><content type='html'>Al igual que en la humanidad el lenguaje de programación java también tiene su versión de  putilla a diferencia de nuestras putillas la de java no cobra por servicio pero si nos presta una gran utilidad.&lt;br /&gt;¿Cómo así?&lt;br /&gt;Desde el nacimiento del lenguaje que esta presente en nuestras fuentes.&lt;br /&gt; Es la madre de todos los tipos de datos.&lt;br /&gt;Me refiero a &lt;span style="font-weight:bold;"&gt;Object&lt;/span&gt;. Como dije la madres de todos los tipos de datos.&lt;br /&gt;&lt;br /&gt;¿Por qué putilla?&lt;br /&gt; Le podemos meter casi cualquier cosa. Me explico.&lt;br /&gt;En esta clase podemos verlo.&lt;br /&gt;&lt;br /&gt;public class Putilla {&lt;br /&gt;&lt;br /&gt; private Object objeto;&lt;br /&gt; private String string;&lt;br /&gt; private int numero;&lt;br /&gt; private Integer numerointeger;&lt;br /&gt; &lt;br /&gt; public Putilla(){&lt;br /&gt; //Se dan cuenta de lo que digo.&lt;br /&gt; this.objeto = this.string;&lt;br /&gt; this.objeto = this.numero;&lt;br /&gt; this.objeto = this.numerointeger;&lt;br /&gt; &lt;br /&gt; this.string = (String) this.objeto;&lt;br /&gt; &lt;br /&gt; } &lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-152758211947230537?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/152758211947230537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/152758211947230537'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2007/11/la-gran-putilla-de-java.html' title='La gran putilla de Java.'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-8983382385901655123</id><published>2007-11-01T08:39:00.000-07:00</published><updated>2007-11-01T08:44:27.659-07:00</updated><title type='text'>Patrones de Diseño</title><content type='html'>&lt;a href="http://es.wikipedia.org/wiki/Patr%C3%B3n_de_dise%C3%B1o"&gt;Patrones de Diseño&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Categorias:&lt;br /&gt;Patrones creacionales&lt;br /&gt;Patrones Estructurales&lt;br /&gt;Patrones de Comportamiento&lt;br /&gt;&lt;br /&gt;Otros&lt;br /&gt;Dependency Injection.&lt;br /&gt;Session Facade.&lt;br /&gt;Business delegate&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-8983382385901655123?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/8983382385901655123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/8983382385901655123'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2007/11/patrones-de-diseo.html' title='Patrones de Diseño'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-7587757970025361935</id><published>2007-10-30T17:34:00.000-07:00</published><updated>2007-11-01T08:56:56.491-07:00</updated><title type='text'>Certificaciones J2EE</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_Z8YagPErb08/Ryn24TP0fjI/AAAAAAAAABU/_mr3HOEssYk/s1600-h/CyberGutenbergSmall.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_Z8YagPErb08/Ryn24TP0fjI/AAAAAAAAABU/_mr3HOEssYk/s320/CyberGutenbergSmall.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5127901097837755954" /&gt;&lt;/a&gt;&lt;br /&gt;Excelente pagina para ir practicando para los examenes de Sun.&lt;br /&gt;&lt;br /&gt;http://www.javacertificate.com/&lt;br /&gt;&lt;br /&gt;Recomendable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-7587757970025361935?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/7587757970025361935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/7587757970025361935'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2007/10/certificaciones-j2ee.html' title='Certificaciones J2EE'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_Z8YagPErb08/Ryn24TP0fjI/AAAAAAAAABU/_mr3HOEssYk/s72-c/CyberGutenbergSmall.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-2252954891373542254.post-5894184633112822078</id><published>2007-10-19T22:15:00.000-07:00</published><updated>2007-10-19T22:21:10.491-07:00</updated><title type='text'>Microsoft + Popfly</title><content type='html'>Microsoft ha hecho pública la versión beta de su sitio (Popfly) y las funcionalidades de esta Web.&lt;br /&gt;&lt;br /&gt;La Web, al más puro estilo Web 2.0, ha sufrido varias mejoras y ahora podemos acceder a ella sin complicaciones, eso sí, registrándonos con nuestra cuenta Passport.&lt;br /&gt;&lt;br /&gt;Lo mejor de Popfly es que está creada con &lt;span style="font-weight:bold;"&gt;Silverlight&lt;/span&gt;, lo cual nos da una idea de lo que se puede llegar a hacer con Silverlight.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.popfly.ms/"&gt;Web de Popfly&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2252954891373542254-5894184633112822078?l=frankseguel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/5894184633112822078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2252954891373542254/posts/default/5894184633112822078'/><link rel='alternate' type='text/html' href='http://frankseguel.blogspot.com/2007/10/microsoft-popfly.html' title='Microsoft + Popfly'/><author><name>&lt;a href="javascript:void(0);"&gt;Frank's&lt;/a&gt;</name><uri>http://www.blogger.com/profile/02042523281924530241</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>
