<?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-7582902</id><updated>2011-11-27T16:07:27.917-08:00</updated><title type='text'>vnsjava</title><subtitle type='html'>Esto es el weblogs de vnsjava</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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>81</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7582902.post-3466559670744133139</id><published>2008-10-24T04:34:00.000-07:00</published><updated>2008-10-24T04:41:26.988-07:00</updated><title type='text'>Regular expression para IPv4 y IPv6</title><content type='html'>Estos son los patrones para pasear con expresiones regulares los protocolos ipv4 y ipv6. Esto incluyes los netblock de los respectivos protocolos. Para el protocolo de ipv4 este patron no aceptas las direcciones reservadas (o especiales) como por ejemplo: 127.0.0.1.&lt;br /&gt;&lt;br /&gt;Para el el protocolo ipv6 si permite direcciones especiales (en este caso en muy complejo agregar la validaciones de estas).&lt;br /&gt;&lt;br /&gt;IPv4&lt;br /&gt;^(1\d{0,2}|2(?:[0-4]\d{0,1}|[6789]|5[0-5]?)?|[3-9]\d?|0)\.(1\d{0,2}|2(?:[0-4]\d{0,1}|[6789]|5[0-5]?)?|[3-9]\d?|0)\.(1\d{0,2}|2(?:[0-4]\d{0,1}|[6789]|5[0-5]?)?|[3-9]\d?|0)\.(1\d{0,2}|2(?:[0-4]\d{0,1}|[6789]|5[0-5]?)?|[3-9]\d?|0)(\/(?:[012]\d?|3[012]?)){0,1}$&lt;br /&gt;&lt;br /&gt;IPv6&lt;br /&gt;^[a-f0-9]{0,4}((\:)?|(\::)?)[a-f0-9]{0,4}((\:)?|(\::)?)[a-f0-9]{0,4}((\:)?|(\::)?)[a-f0-9]{0,4}((\:)?|(\::)?)[a-f0-9]{0,4}((\:)?|(\::)?)[a-f0-9]{0,4}((\:)?|(\::)?)[a-f0-9]{0,4}((\:)?|(\::)?)[a-f0-9]{0,4}(\/(?:[01236]\d?|1\d[0-8]?)){0,1}$&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-3466559670744133139?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/3466559670744133139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=3466559670744133139' title='34 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/3466559670744133139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/3466559670744133139'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2008/10/regular-expression-para-ipv4-y-ipv6.html' title='Regular expression para IPv4 y IPv6'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>34</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-3758153407483438806</id><published>2008-03-24T12:32:00.000-07:00</published><updated>2008-03-24T12:37:32.557-07:00</updated><title type='text'>SCJP 1.5 and SCWCD 1.5</title><content type='html'>Despues de un buen tiempo fuera de mi blog, vuelvo ahora con esta buenas nuevas.&lt;br /&gt;&lt;br /&gt;Bueno ya obtuve dos certificaciones SCJP 1.5 y SCWCD 1.5 :) en dos meses. Quisiera saber quien es que hace las preguntas del examen por quisiera decirle un san antonio ;)&lt;br /&gt;&lt;br /&gt;Dios... que fuerte.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bueno, esta claro que no me quedaré en estas dos certificaciones.&lt;br /&gt;&lt;br /&gt;:D ahora vamos por la SCDJWS y SCBCD 1.5&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-3758153407483438806?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/3758153407483438806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=3758153407483438806' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/3758153407483438806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/3758153407483438806'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2008/03/scjp-15-and-scwcd-15.html' title='SCJP 1.5 and SCWCD 1.5'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-6479713294406990941</id><published>2007-08-17T10:36:00.000-07:00</published><updated>2007-08-17T10:40:24.575-07:00</updated><title type='text'>ant problem “Could not find the main class. Program will exit.”</title><content type='html'>Bueno, para los que han tenido este &lt;a href="http://www.herrodius.com/blog/?p=42"&gt;problemita&lt;/a&gt; igual que yo, entonces encontré a alguien que sabia como arreglarlo.&lt;br /&gt;&lt;br /&gt;En detalle es cuando cambio entre folder de Eclipse, entonces la varible ANT_HOME se queda apuntando a la vieja dirección. Y eclipse te dice “Could not find the main class. Program will exit.” cuando tratas de correr el ant :( así que ni idea de cual era el problema.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-6479713294406990941?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/6479713294406990941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=6479713294406990941' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/6479713294406990941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/6479713294406990941'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2007/08/ant-problem-could-not-find-main-class.html' title='ant problem “Could not find the main class. Program will exit.”'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-2704649899985781854</id><published>2007-06-17T10:46:00.000-07:00</published><updated>2007-06-13T06:40:29.827-07:00</updated><title type='text'>Web Semántica</title><content type='html'>Ando detrás de Web Semántica para mi Spider implementado en Jade.&lt;br /&gt;&lt;br /&gt;Este &lt;a href="http://www.oreillynet.com/xml/blog/2006/12/the_semantic_web_everything_yo.html?CMP=OTC-TY3388567169&amp;amp;ATT=The+Semantic+Web+Everything+you+wanted+to+know+but+were+too+afraid+to+ask"&gt;artículo&lt;/a&gt; describe muy bien aunque de forma aérea. Ahora estoy buscando la manera de implementar la búsqueda y análisis de los RDF para el Spider. También  al mismo tiempo, pienso agregarle funcionalidad de lectura para los RSS creo que será más fácil el desarrollo de RSS.&lt;br /&gt;&lt;br /&gt;Para la web semántica utilizaré &lt;a href="http://jena.sourceforge.net/"&gt;Jena&lt;/a&gt;, el cual parece ser un proyecto muy maduro. Para RSS no se aún pero estoy viendo &lt;a href="http://jakarta.apache.org/commons/sandbox/feedparser/"&gt;Commons FeedParser&lt;/a&gt;, pero también estoy dandole un vistazo a &lt;a href="http://www.rssowl.org/"&gt;RSSOWL&lt;/a&gt; y a &lt;a href="http://informa.sourceforge.net/"&gt;Informa&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;También estoy buscando la manera de navegación en paginas con javascript, de tal manera que el agente pueda interactuar con estas. Para esto estoy viendo el api llamada Rhino de mozilla, o pudiera usar Chickenfoot el cual es muy potente a la hora de hacer script para automatizar la navegación.&lt;br /&gt;&lt;br /&gt;Además estoy buscando la manera de almacenar las paginas en cache, esto es fácil de implementar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-2704649899985781854?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/2704649899985781854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=2704649899985781854' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/2704649899985781854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/2704649899985781854'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2007/06/web-semntica.html' title='Web Semántica'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-8084592795381589059</id><published>2007-06-16T04:34:00.000-07:00</published><updated>2007-06-13T06:37:53.475-07:00</updated><title type='text'>Hacking Firefox: The secrets of about:config</title><content type='html'>Un &lt;a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;articleId=9020880"&gt;artículo&lt;/a&gt; de un poco de hacking en Firefox, me gusto mucho, principalmente por la parte de que queda configurado para que no consuma tanta memoria de mi computadora. Aunque hay un sacrificio de rendimiento.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-8084592795381589059?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/8084592795381589059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=8084592795381589059' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/8084592795381589059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/8084592795381589059'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2007/07/hacking-firefox-secrets-of-aboutconfig.html' title='Hacking Firefox: The secrets of about:config'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-8323712211252181009</id><published>2007-06-14T11:39:00.000-07:00</published><updated>2007-06-13T06:43:23.415-07:00</updated><title type='text'>Spelling Eclipse</title><content type='html'>Un &lt;a href="http://www.javalobby.org/java/forums/t17453.html"&gt;artículo&lt;/a&gt; para poder implementar el corrector de palabras en Eclipse.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-8323712211252181009?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/8323712211252181009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=8323712211252181009' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/8323712211252181009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/8323712211252181009'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2007/06/spelling-eclipse.html' title='Spelling Eclipse'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-7918754871618430434</id><published>2007-06-14T08:39:00.000-07:00</published><updated>2007-06-13T06:34:17.735-07:00</updated><title type='text'>5 tips para saber a quien contratar</title><content type='html'>En este &lt;a href="http://blogs.atlassian.com/rebelutionary/archives/2007/03/life_is_a_hire_way_5_tips_for_startup_hi.html"&gt; blog&lt;/a&gt; se puede ver cuales solo los requisitos que se deberían tomar en cuanta a la hora de contratar una persona.&lt;br /&gt;&lt;br /&gt;Por ejemplo:&lt;br /&gt;- El reclutamiento es mercadeo (vende la empresa, vende el puesto)&lt;br /&gt;- Confianza en el equipo (si contratas a alguien no deberías preguntarle al equipo con quien va a trabajar el nuevo?)&lt;br /&gt;- No ganes con dinero (el dinero es importante pero los beneficios y el ambiente de trabajo también, debe haber un balance) tratas con personas no productos.&lt;br /&gt;- Guarda espacio para las personas inteligentes (contratar a las personas por su entusiasmo por hacer lo que saben hacer puede ser aprovechado por la empresa a pesar de que la empresa no tenia esos planes, pero la persona es ideal para eso)&lt;br /&gt;- Saber cuando dejar pasar. Bueno en este punto hay tres preguntas que deberías hacerte antes de contratar a una persona:&lt;br /&gt;1. Quieres a esa persona en tu equipo?&lt;br /&gt;2. Pasa esta persona la prueba de la cerveza? (Si te gustaría *compartir con esta persona)&lt;br /&gt;3. Es esta persona apasionada, entusiasta, positiva?&lt;br /&gt;&lt;br /&gt;Por ultimo:&lt;br /&gt;&lt;h4&gt;Quickie Bonus Tip: No Keyword Hiring&lt;/h4&gt;Que significa no contrates basado en el SIGLAS de tecnologías, el explica que muchas de los mejores no pasan esta pruebas, que contradicción.&lt;br /&gt;&lt;br /&gt;* En un bar, restaurant, etc. y si aprenderias algo de esa persona de manera personal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-7918754871618430434?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/7918754871618430434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=7918754871618430434' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/7918754871618430434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/7918754871618430434'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2007/03/5-tips-para-saber-quien-contratar.html' title='5 tips para saber a quien contratar'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-115247601754332298</id><published>2007-06-13T13:10:00.000-07:00</published><updated>2007-06-13T06:44:41.492-07:00</updated><title type='text'>Smartly load your properties</title><content type='html'>Una &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;manera&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;inteligente&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;de&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;cargar&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;tus&lt;/span&gt; properties en Java.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.javaworld.com/javaworld/javaqa/2003-08/01-qa-0808-property.html"&gt;Smartly load your properties&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-115247601754332298?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/115247601754332298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=115247601754332298' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115247601754332298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115247601754332298'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/07/smartly-load-your-properties.html' title='Smartly load your properties'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-1943187696582739926</id><published>2007-06-08T04:38:00.000-07:00</published><updated>2007-06-13T06:03:20.600-07:00</updated><title type='text'>Eclipse TIPS</title><content type='html'>Una página web con buenos tips de eclipse, aquí encontré como eliminar los espacios al final de las líneas en un archivo.&lt;br /&gt;&lt;br /&gt;http://www.newt.com/java/eclipse/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-1943187696582739926?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/1943187696582739926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=1943187696582739926' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/1943187696582739926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/1943187696582739926'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2007/06/eclipse-tips.html' title='Eclipse TIPS'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-9063255446118874155</id><published>2007-04-21T05:30:00.000-07:00</published><updated>2007-04-21T05:42:49.283-07:00</updated><title type='text'>Mylar en Eclipse</title><content type='html'>Mylar es un proyecto que busca integrar la parte colaborativa en Eclipse, es decir su usa bugzilla ya no tienes que salir del IDE, muchos diran ya plugins para eso si pero ninguno que yo sepa hace task focus (enfoque en tareas) como lo hace Mylar :), así que Mylar no es solo integración es eso y más.&lt;br /&gt;&lt;br /&gt;Solo tuve que ver el &lt;a href="http://adobedev.adobe.acrobat.com/p46246963/"&gt;webinar&lt;/a&gt; para decir un WOW :),  esta es la contribución a Eclipse más importante después del mismo Eclipse, y es mucho decir ;).&lt;br /&gt;&lt;br /&gt;Tienen que darle un ojo a este impresionante plugin, para los que trabajan al estilo de tareas y bugs en Eclipse se sentirán aliviados :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-9063255446118874155?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/9063255446118874155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=9063255446118874155' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/9063255446118874155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/9063255446118874155'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2007/04/mylar-en-eclipse.html' title='Mylar en Eclipse'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-4147977562989380607</id><published>2007-04-03T04:13:00.000-07:00</published><updated>2007-04-03T06:55:57.627-07:00</updated><title type='text'>Problemas al ejecutar el task de JUnit de Ant en Eclipse</title><content type='html'>De seguro muchos como yo han tenido problemas al ejecutar el ant task de junit con eclipse.&lt;br /&gt;&lt;br /&gt;&lt;pre style="background: rgb(255, 255, 255) none repeat scroll 0% 50%; color: rgb(0, 0, 0); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;junit&lt;/span&gt; fork=&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;true&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt; haltonerror=&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;&gt;&lt;/span&gt;             &lt;br /&gt;         &lt;span style="color: rgb(127, 0, 85);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;classpath&lt;/span&gt; location=&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;${build_testclassdir}&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt; &lt;span style="color: rgb(127, 0, 85);"&gt;/&gt;&lt;/span&gt;&lt;br /&gt;         &lt;span style="color: rgb(127, 0, 85);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;classpath&lt;/span&gt; refid=&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;test.build.classpath&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt; &lt;span style="color: rgb(127, 0, 85);"&gt;/&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;          &lt;span style="color: rgb(127, 0, 85);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;test&lt;/span&gt; name=&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;${package}.AllTests&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt; todir=&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;${testlogdir}&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;&gt;&lt;/span&gt;&lt;br /&gt;              &lt;span style="color: rgb(127, 0, 85);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;formatter&lt;/span&gt; type=&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;plain&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt; usefile=&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;true&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;/&gt;&lt;/span&gt;&lt;br /&gt;              &lt;span style="color: rgb(127, 0, 85);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;formatter&lt;/span&gt; type=&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;xml&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt; usefile=&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;true&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;/&gt;&lt;/span&gt;&lt;br /&gt;          &lt;span style="color: rgb(127, 0, 85);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;test&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;&gt;&lt;/span&gt;&lt;br /&gt;        &lt;br /&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;junit&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;El problema esta en que se debe agregar el archivo junit.jar al directorio:&lt;br /&gt;..\plugins\org.apache.ant_1.6.5 de eclipse\junit.jar&lt;br /&gt;&lt;br /&gt;Este archivo es la librería de junit la cual debe estar disponible para ejecutar el ant task.&lt;br /&gt;&lt;br /&gt;Nota: esto es para eclipse 3.2, no se si las versiones anteriores tienen este problema.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-4147977562989380607?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/4147977562989380607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=4147977562989380607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/4147977562989380607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/4147977562989380607'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2007/04/problemas-al-ejecutar-el-task-de-junit.html' title='Problemas al ejecutar el task de JUnit de Ant en Eclipse'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-6560263255513775365</id><published>2007-04-03T04:09:00.000-07:00</published><updated>2007-04-03T04:13:10.977-07:00</updated><title type='text'>Eclipse subversion - Malformed network data</title><content type='html'>Bueno en este &lt;a href="http://blog.maxdunn.com/articles/2006/12/07/svn-malformed-network-data-error-in-eclipse"&gt;blog&lt;/a&gt; encontré la solución al problema del cliente de subclipse el cual tenia este error cuando se hacia el checkout de un proyecto.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-6560263255513775365?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/6560263255513775365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=6560263255513775365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/6560263255513775365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/6560263255513775365'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2007/04/eclipse-subversion-malformed-network.html' title='Eclipse subversion - Malformed network data'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-4910308989206598818</id><published>2007-04-01T14:00:00.000-07:00</published><updated>2007-05-05T02:38:31.007-07:00</updated><title type='text'>Video Tutorial de Ajax con Prototype</title><content type='html'>Un video tutorial hecho por mi :) explicando la creación de un chat utilizando ajax y java, para ajax se utiliza la herramienta archi conocida librería Prototype.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/aFj3i8bdZHc"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/aFj3i8bdZHc" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Para poder ver el video en mejor resolusión &lt;a href="http://www.youtube.com/v/3KG0Yd-Kt94"&gt;youtube&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-4910308989206598818?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/4910308989206598818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=4910308989206598818' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/4910308989206598818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/4910308989206598818'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2007/04/video-tutorial-de-ajax-con-prototype.html' title='Video Tutorial de Ajax con Prototype'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-1819343105076207273</id><published>2007-03-26T06:52:00.000-07:00</published><updated>2007-03-26T06:55:15.646-07:00</updated><title type='text'>Anti-patrones en Ajax</title><content type='html'>Unos anti-Patrones que donde me incluyo haberlos utilizados para entregar rápido pero que cuestan a la hora de mantener la aplicación.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www-128.ibm.com/developerworks/library/x-ajaxxml3/"&gt;&lt;span style="font-weight: bold;"&gt;Cinco Anti-Patrones en Ajax&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-1819343105076207273?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/1819343105076207273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=1819343105076207273' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/1819343105076207273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/1819343105076207273'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2007/03/anti-patrones-en-ajax.html' title='Anti-patrones en Ajax'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-6316462390855954077</id><published>2007-03-26T04:51:00.000-07:00</published><updated>2007-04-01T17:32:10.101-07:00</updated><title type='text'>Rhino: JavaScript for Java</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span&gt;Para implementar la funcionalidad de ejecución de javascript en mi SearchEngine con Agentes de Jade, estuve leyendo un articulo interesante sobre Rhino que es una implementación de Javascript para java que permite scripting en aplicaciones Java. Esto es posible en Java 6 como una nueva característica, ya puedes correr &lt;/span&gt;&lt;/span&gt;&lt;span id="intelliTxt"&gt;PHP, Ruby, JavaScript, Python (or Jython)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span&gt;.&lt;br /&gt;&lt;br /&gt;Por cierto,  Rhino viene integrado en Java SE 6, por lo tanto si tiene Java SE 6 ya puedes utilizar esta característica.&lt;br /&gt;&lt;br /&gt;La características de este puedo mencionar:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span&gt;Compilación de javascript (si quiere compilar en script para un mejor rendimiento)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span&gt;Invocación de funciones.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span&gt;Acceso a recursos de Java (Puedes importar clases de java, invocar métodos y objectos de Java )&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span&gt;Y lo más obvio manejo de return del script que ejecutas.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span&gt;Ejecutas el script desde hard code en java (lo cual no tendría mucha diferencia con lo que podrias hacer en java) y ejecución de script almacenado en un archivo.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span&gt;Soporte para la ejecución de &lt;/span&gt;&lt;/span&gt;&lt;span id="intelliTxt"&gt;PHP, Ruby, JavaScript, Python, etc dentro de Java con las características ya mencionadas. (Imaginate correr PHP en un servidor de Java EE y que puedas acceder desde PHP los objectos de java, javabean, ect.)&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www.onjava.com/pub/a/onjava/2006/04/26/mustang-meets-rhino-java-se-6-scripting.html"&gt;&lt;span style="font-size:100%;"&gt;The Mustang Meets the Rhino: Scripting in Java 6&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background: rgb(255, 255, 255) none repeat scroll 0% 50%; color: rgb(0, 0, 0); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;package&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt; org&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;vnssoftware&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;import&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt; javax&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;script&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;Bindings&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;import&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt; javax&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;script&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;Compilable&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;import&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt; javax&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;script&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;CompiledScript&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;import&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt; javax&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;script&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;Invocable&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;import&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt; javax&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;script&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;ScriptEngine&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;import&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt; javax&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;script&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;ScriptEngineManager&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;import&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt; javax&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;script&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;ScriptException&lt;/span&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;class&lt;/span&gt; Scripting {&lt;br /&gt; &lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;static&lt;/span&gt; &lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;void&lt;/span&gt; main(&lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;String&lt;/span&gt;[] args) {&lt;br /&gt;     ScriptEngineManager engineManager = &lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;new&lt;/span&gt; ScriptEngineManager();&lt;br /&gt;  &lt;br /&gt;     ScriptEngine engine = engineManager.getEngineByName(&lt;span style="color: rgb(42, 0, 255);"&gt;"js"&lt;/span&gt;);&lt;br /&gt;  &lt;br /&gt;     engine.put(&lt;span style="color: rgb(42, 0, 255);"&gt;"age"&lt;/span&gt;, 21);&lt;br /&gt;     &lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;try&lt;/span&gt; {&lt;br /&gt;         engine.put(&lt;span style="color: rgb(42, 0, 255);"&gt;"age"&lt;/span&gt;, 26);&lt;br /&gt;         engine.put(&lt;span style="color: rgb(42, 0, 255);"&gt;"noClaims"&lt;/span&gt;, Boolean.TRUE);&lt;br /&gt;         &lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;Object&lt;/span&gt; result = engine.eval(&lt;br /&gt;             &lt;span style="color: rgb(42, 0, 255);"&gt;"if (age &amp;lt; 25){ "&lt;/span&gt; +&lt;br /&gt;                         &lt;span style="color: rgb(42, 0, 255);"&gt;"    riskFactor = 1.5;"&lt;/span&gt; +&lt;br /&gt;                         &lt;span style="color: rgb(42, 0, 255);"&gt;"} else if (noClaims) {"&lt;/span&gt; +&lt;br /&gt;                         &lt;span style="color: rgb(42, 0, 255);"&gt;"    riskFactor = 0.75;"&lt;/span&gt; +&lt;br /&gt;                         &lt;span style="color: rgb(42, 0, 255);"&gt;"} else {"&lt;/span&gt; +&lt;br /&gt;                         &lt;span style="color: rgb(42, 0, 255);"&gt;"    riskFactor = 1.0;"&lt;/span&gt; +&lt;br /&gt;                         &lt;span style="color: rgb(42, 0, 255);"&gt;"}"&lt;/span&gt;);&lt;br /&gt;         &lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;System&lt;/span&gt;.out.println(result);&lt;br /&gt;      &lt;br /&gt;         &lt;span style="color: rgb(63, 127, 89);"&gt;// using javascript files&lt;/span&gt;&lt;br /&gt;         &lt;span style="color: rgb(63, 127, 89);"&gt;//engine.eval(new FileReader("c:/voting.js"));&lt;/span&gt;&lt;br /&gt;      &lt;br /&gt;         &lt;span style="color: rgb(63, 127, 89);"&gt;// importing java classes&lt;/span&gt;&lt;br /&gt;         engine.eval(&lt;span style="color: rgb(42, 0, 255);"&gt;"importPackage(java.util); "&lt;/span&gt; +&lt;br /&gt;                 &lt;span style="color: rgb(42, 0, 255);"&gt;"today = new Date(); "&lt;/span&gt; +&lt;br /&gt;                 &lt;span style="color: rgb(42, 0, 255);"&gt;"print('Today is ' + today);"&lt;/span&gt;);&lt;br /&gt;      &lt;br /&gt;         &lt;span style="color: rgb(63, 127, 89);"&gt;// using object instances passed to the script engine, and on static class members.&lt;/span&gt;&lt;br /&gt;         engine.put(&lt;span style="color: rgb(42, 0, 255);"&gt;"name"&lt;/span&gt;,&lt;span style="color: rgb(42, 0, 255);"&gt;"John Doe"&lt;/span&gt;);&lt;br /&gt;         engine.eval(&lt;span style="color: rgb(42, 0, 255);"&gt;"name2 = name.toUpperCase();"&lt;/span&gt; +&lt;br /&gt;             &lt;span style="color: rgb(42, 0, 255);"&gt;"print('Converted name = ' + name2); &lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"&lt;/span&gt;);&lt;br /&gt;      &lt;br /&gt;         &lt;span style="color: rgb(63, 127, 89);"&gt;// script engine implementations support script compilation&lt;/span&gt;&lt;br /&gt;         Compilable compilable = (Compilable) engine;&lt;br /&gt;         CompiledScript script = compilable.compile(&lt;br /&gt;                 &lt;span style="color: rgb(42, 0, 255);"&gt;"if (age &amp;lt; 25){ "&lt;/span&gt; +&lt;br /&gt;                 &lt;span style="color: rgb(42, 0, 255);"&gt;"    riskFactor = 1.5;"&lt;/span&gt; +&lt;br /&gt;                 &lt;span style="color: rgb(42, 0, 255);"&gt;"} else if (noClaims) {"&lt;/span&gt; +&lt;br /&gt;                 &lt;span style="color: rgb(42, 0, 255);"&gt;"    riskFactor = 0.75;"&lt;/span&gt; +&lt;br /&gt;                 &lt;span style="color: rgb(42, 0, 255);"&gt;"} else {"&lt;/span&gt; +&lt;br /&gt;                 &lt;span style="color: rgb(42, 0, 255);"&gt;"    riskFactor = 1.0;"&lt;/span&gt; +&lt;br /&gt;                 &lt;span style="color: rgb(42, 0, 255);"&gt;"}"&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;         Bindings bindings = engine.createBindings();&lt;br /&gt;         bindings.put(&lt;span style="color: rgb(42, 0, 255);"&gt;"age"&lt;/span&gt;, 26);&lt;br /&gt;         bindings.put(&lt;span style="color: rgb(42, 0, 255);"&gt;"noClaims"&lt;/span&gt;, Boolean.TRUE);&lt;br /&gt;         bindings.put(&lt;span style="color: rgb(42, 0, 255);"&gt;"riskFactor"&lt;/span&gt;, 1);&lt;br /&gt;         script.eval();&lt;br /&gt;      &lt;br /&gt;         &lt;span style="color: rgb(63, 127, 89);"&gt;// call individual functions defined in the script from your Java code.&lt;/span&gt;&lt;br /&gt;         engine.eval(&lt;span style="color: rgb(42, 0, 255);"&gt;"function increment(i) {return i + 1;}"&lt;/span&gt;);&lt;br /&gt;         Invocable invocable = (Invocable) engine;&lt;br /&gt;         &lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;Object&lt;/span&gt; resul = invocable.invokeFunction(&lt;span style="color: rgb(42, 0, 255);"&gt;"increment"&lt;/span&gt;, &lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;Object&lt;/span&gt;[] {10});&lt;br /&gt;         &lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;System&lt;/span&gt;.out.print(&lt;span style="color: rgb(42, 0, 255);"&gt;"result = "&lt;/span&gt; + resul);&lt;br /&gt;      &lt;br /&gt;     } &lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;catch&lt;/span&gt; (ScriptException e) {&lt;br /&gt;         e.printStackTrace();&lt;br /&gt;     } &lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;catch&lt;/span&gt; (&lt;span style="color: rgb(127, 0, 85); font-weight: bold;"&gt;NoSuchMethodException&lt;/span&gt; e) {&lt;br /&gt;         e.printStackTrace();&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-6316462390855954077?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/6316462390855954077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/6316462390855954077'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2007/03/rhino-javascript-for-java.html' title='Rhino: JavaScript for Java'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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-7582902.post-7163220214386789926</id><published>2007-01-09T06:03:00.000-08:00</published><updated>2007-03-14T08:35:46.534-07:00</updated><title type='text'>En busca de parseadores HTML</title><content type='html'>Estoy en busca de parseadores HTML para mi spider implementado en Jade,&lt;br /&gt;encontré este &lt;a href="http://htmlparser.sourceforge.net/"&gt;HTMLParser&lt;/a&gt;, el cual es simple y rápido.&lt;br /&gt;&lt;br /&gt;Ahora es más simple obtener el texto de una pagina web y la lista de enlace de esta misma.&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;pre class="code"&gt;String URL = "http://htmlparser.sourceforge.net";&lt;br /&gt;StringExtractor se = new StringExtractor (URL);&lt;br /&gt;String contents = se.extractStrings(true);&lt;br /&gt;System.out.println(contents);&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-7163220214386789926?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/7163220214386789926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=7163220214386789926' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/7163220214386789926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/7163220214386789926'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2007/01/en-busca-de-parseadores-html.html' title='En busca de parseadores HTML'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-5734581550691350331</id><published>2007-01-09T04:10:00.000-08:00</published><updated>2007-03-14T08:38:47.347-07:00</updated><title type='text'>Eclipse and Equinox</title><content type='html'>Este &lt;a href="http://www.theserverside.com/tt/articles/article.tss?l=EclipseEquinoxOSGi"&gt;artículo&lt;/a&gt; muestra de manera aérea, como funciona la arquitectura de eclipse&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-5734581550691350331?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/5734581550691350331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=5734581550691350331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/5734581550691350331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/5734581550691350331'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2007/01/eclipse-and-equinox.html' title='Eclipse and Equinox'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113010376960041659</id><published>2006-11-10T14:42:00.000-08:00</published><updated>2006-12-01T10:28:31.079-08:00</updated><title type='text'>Grammar DUDU+ mi lenguaje de programación</title><content type='html'>Este es el grammar del lenguaje DUDU+, este grammar (BNF production) esta hecho para la generación de un parser con la herramienta javacc. Como se ve la sintaxis es la de java pero con otras reglas, ya que se trata de javacc, que es el generador de parser más popular, se puede encontrar documentación de este en la página: &lt;a href="https://javacc.dev.java.net/"&gt;https://javacc.dev.java.net/&lt;/a&gt; .  Les recomiendo que utilicen  el  mailling list en el cual hay personas dispuestas a ayudarte :-D.&lt;br /&gt;&lt;br /&gt;&lt;pre style='color:#000000;background:#ffffff;'&gt;&lt;span style='color:#3f7f59; '&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#3f7f59; '&gt; * DUDU+ codename MiniJava&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#3f7f59; '&gt; * HECHO... in Dominican Republic&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#3f7f59; '&gt; * author VГ­ctor Sosa &lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;&amp;lt;&lt;/span&gt;&lt;span style='color:#3f3fbf; '&gt;victornsosa@gmail.com&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;&gt;&lt;/span&gt;&lt;span style='color:#3f7f59; '&gt; vns java&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#3f7f59; '&gt; */&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;options&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;{&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; '&gt;LOOKAHEAD&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;=&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;1&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; '&gt;STATIC&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;=&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;false&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; '&gt;JAVA_UNICODE_ESCAPE&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;=&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;true&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;PARSER_BEGIN&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;MiniJava&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;import&lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; '&gt; java&lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; '&gt;util&lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;public&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;class&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; MiniJava &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;{&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;       &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;public&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;static&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;void&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; main&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;String&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;[&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;]&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; args&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;throws&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;ParseException&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;,&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; TokenMgrError &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;{&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;       MiniJava parser&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;       &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;String&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; file &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;=&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;null&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;       &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;long&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; time &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;=&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;0&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;       &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;long&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; parseTime &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;=&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;0&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;       &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;long&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; startTime &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;=&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;0&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;       &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;if&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;args&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;length &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;=&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;=&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;0&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;       &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;{&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;               &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;System&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;out&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;println&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#2a00ff; background:#ffffff; '&gt;"Error messages..."&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;               &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;return&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;       &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;}&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;else&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;if&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; args&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;length &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;=&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;=&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;1&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;{&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;               file &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;=&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; args&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;[&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;0&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;]&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;               &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;System&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;out&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;println&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#2a00ff; background:#ffffff; '&gt;"Start parsing..."&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;               &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;try&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;               &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;{&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;                       parser &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;=&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;new&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; MiniJava&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;new&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; java&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;io&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;FileInputStream&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;file&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;               &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;}&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;catch&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; java&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;io&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;FileNotFoundException&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; e &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;{&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;                       &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;System&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;out&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;println&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#2a00ff; background:#ffffff; '&gt;"Parser error:  Filename "&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;+&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; file &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;+&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#2a00ff; background:#ffffff; '&gt;" not found."&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;                       &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;return&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;               &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;}&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;       &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;}&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;else&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;{&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;               &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;System&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;out&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;println&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#2a00ff; background:#ffffff; '&gt;"Debe escribir: java MiniJava inputfile"&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;               &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;return&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;       &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;}&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;       &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;try&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;       &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;{&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;               startTime &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;=&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;System&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;currentTimeMillis&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;               parser&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;Start&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;               parseTime &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;=&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;System&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;currentTimeMillis&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;               time &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;=&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; parseTime &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;-&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; startTime&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;               &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;System&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;out&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;println&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#2a00ff; background:#ffffff; '&gt;" Time of parsing: "&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;+&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; time &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;+&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#2a00ff; background:#ffffff; '&gt;" ms"&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;               &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;System&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;out&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;println&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#2a00ff; background:#ffffff; '&gt;" DuDu successfully end"&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;       &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;}&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;catch&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;ParseException&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; pex&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;{&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;               &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;System&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;out&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;println&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; pex&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;getMessage&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;               &lt;/span&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;System&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;out&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;.&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;println&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#2a00ff; background:#ffffff; '&gt;" ParserException during parse file"&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt; &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;;&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;       &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;}&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;       &lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;}&lt;/span&gt;&lt;span style='color:#3f7f59; background:#ffffff; '&gt;/* main method*/&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;}&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#7f0055; background:#ffffff; font-weight:bold; '&gt;PARSER_END&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;(&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;MiniJava&lt;/span&gt;&lt;span style='color:#000000; background:#ffffff; '&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#3f7f59; '&gt;/* Eat white space and comment*/&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;SKIP &lt;/span&gt;: {&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;" "&lt;/span&gt;&lt;br /&gt;|  &lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\t&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;br /&gt;|  &lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\n&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;br /&gt;|  &lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\r&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;br /&gt;|  &amp;lt;&lt;span style='color:#2a00ff; '&gt;"//"&lt;/span&gt; (~[&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\n&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\r&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;])* (&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\n&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt; | &lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\r&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt; | &lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\r&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\n&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;)&gt;&lt;br /&gt;|  &amp;lt;&lt;span style='color:#2a00ff; '&gt;"/*"&lt;/span&gt; (~[&lt;span style='color:#2a00ff; '&gt;"*"&lt;/span&gt;])* &lt;span style='color:#2a00ff; '&gt;"*"&lt;/span&gt; (&lt;span style='color:#2a00ff; '&gt;"*"&lt;/span&gt; | ~[&lt;span style='color:#2a00ff; '&gt;"*"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"/"&lt;/span&gt;] (~[&lt;span style='color:#2a00ff; '&gt;"*"&lt;/span&gt;])* &lt;span style='color:#2a00ff; '&gt;"*"&lt;/span&gt;)* &lt;span style='color:#2a00ff; '&gt;"/"&lt;/span&gt;&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;TOKEN &lt;/span&gt;: &lt;span style='color:#3f7f59; '&gt;/* RESERVED WORDS AND LITERALS */&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt; &amp;lt; BOOLEAN: &lt;span style='color:#2a00ff; '&gt;"boolean"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; BYTE: &lt;span style='color:#2a00ff; '&gt;"byte"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; CHAR: &lt;span style='color:#2a00ff; '&gt;"char"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; CLASS: &lt;span style='color:#2a00ff; '&gt;"class"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; DOUBLE: &lt;span style='color:#2a00ff; '&gt;"double"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; FALSE: &lt;span style='color:#2a00ff; '&gt;"false"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; FLOAT: &lt;span style='color:#2a00ff; '&gt;"float"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; FINAL: &lt;span style='color:#2a00ff; '&gt;"final"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; INT: &lt;span style='color:#2a00ff; '&gt;"int"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; LONG: &lt;span style='color:#2a00ff; '&gt;"long"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; PUBLIC: &lt;span style='color:#2a00ff; '&gt;"public"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; SHORT: &lt;span style='color:#2a00ff; '&gt;"short"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; STATIC: &lt;span style='color:#2a00ff; '&gt;"static"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; TRUE: &lt;span style='color:#2a00ff; '&gt;"true"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; VOID: &lt;span style='color:#2a00ff; '&gt;"void"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; NEW: &lt;span style='color:#2a00ff; '&gt;"new"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; MAKE: &lt;span style='color:#2a00ff; '&gt;"make"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; STACK: &lt;span style='color:#2a00ff; '&gt;"stack"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; REPEAT: &lt;span style='color:#2a00ff; '&gt;"repeat"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; UNTIL: &lt;span style='color:#2a00ff; '&gt;"until"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; ADDSTACK: &lt;span style='color:#2a00ff; '&gt;"addStack"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; ORDSTACK: &lt;span style='color:#2a00ff; '&gt;"ordStack"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; ASCENDENTE: &lt;span style='color:#2a00ff; '&gt;"ascendente"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; DESCENDENTE: &lt;span style='color:#2a00ff; '&gt;"descendente"&lt;/span&gt; &gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;TOKEN &lt;/span&gt;: &lt;span style='color:#3f7f59; '&gt;/* SEPARATORS */&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt; &amp;lt; LPAREN: &lt;span style='color:#2a00ff; '&gt;"("&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; RPAREN: &lt;span style='color:#2a00ff; '&gt;")"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; LBRACE: &lt;span style='color:#2a00ff; '&gt;"{"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; RBRACE: &lt;span style='color:#2a00ff; '&gt;"}"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; LBRACKET: &lt;span style='color:#2a00ff; '&gt;"["&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; RBRACKET: &lt;span style='color:#2a00ff; '&gt;"]"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; SEMICOLON: &lt;span style='color:#2a00ff; '&gt;";"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; COMMA: &lt;span style='color:#2a00ff; '&gt;","&lt;/span&gt; &gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;TOKEN &lt;/span&gt;: &lt;span style='color:#3f7f59; '&gt;/* OPERATORS */&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt; &amp;lt; ASSIGN: &lt;span style='color:#2a00ff; '&gt;"="&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; INCR: &lt;span style='color:#2a00ff; '&gt;"++"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; DECR: &lt;span style='color:#2a00ff; '&gt;"--"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; PLUS: &lt;span style='color:#2a00ff; '&gt;"+"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; MINUS: &lt;span style='color:#2a00ff; '&gt;"-"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; STAR: &lt;span style='color:#2a00ff; '&gt;"*"&lt;/span&gt; &gt;&lt;br /&gt;| &amp;lt; SLASH: &lt;span style='color:#2a00ff; '&gt;"/"&lt;/span&gt; &gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;TOKEN &lt;/span&gt;: &lt;span style='color:#3f7f59; '&gt;/* LITERALS */&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt; &amp;lt; INTEGER_LITERAL:&lt;br /&gt;       &amp;lt; DECIMAL_LITERAL &gt; ([&lt;span style='color:#2a00ff; '&gt;"l"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"L"&lt;/span&gt;])?&lt;br /&gt; &gt;&lt;br /&gt; |&lt;br /&gt; &amp;lt; #DECIMAL_LITERAL: [&lt;span style='color:#2a00ff; '&gt;"0"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"9"&lt;/span&gt;] ([&lt;span style='color:#2a00ff; '&gt;"0"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"9"&lt;/span&gt;])* &gt;&lt;br /&gt; |&lt;br /&gt; &amp;lt; FLOATING_POINT_LITERAL:&lt;br /&gt;       ([&lt;span style='color:#2a00ff; '&gt;"0"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"9"&lt;/span&gt;])+ &lt;span style='color:#2a00ff; '&gt;"."&lt;/span&gt; ([&lt;span style='color:#2a00ff; '&gt;"0"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"9"&lt;/span&gt;])* ( &amp;lt; EXPONENT &gt; )? ([&lt;span style='color:#2a00ff; '&gt;"f"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"F"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"d"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"D"&lt;/span&gt;])?&lt;br /&gt;     | &lt;span style='color:#2a00ff; '&gt;"."&lt;/span&gt; ([&lt;span style='color:#2a00ff; '&gt;"0"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"9"&lt;/span&gt;])+ ( &amp;lt; EXPONENT &gt;)? ([&lt;span style='color:#2a00ff; '&gt;"f"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"F"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"d"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"D"&lt;/span&gt;])?&lt;br /&gt;     | ([&lt;span style='color:#2a00ff; '&gt;"0"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"9"&lt;/span&gt;])+ &amp;lt; EXPONENT &gt; ([&lt;span style='color:#2a00ff; '&gt;"f"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"F"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"d"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"D"&lt;/span&gt;])?&lt;br /&gt;     | ([&lt;span style='color:#2a00ff; '&gt;"0"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"9"&lt;/span&gt;])+ (&amp;lt; EXPONENT &gt;)? [&lt;span style='color:#2a00ff; '&gt;"f"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"F"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"d"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"D"&lt;/span&gt;]&lt;br /&gt; &gt;&lt;br /&gt; |&lt;br /&gt; &amp;lt; #EXPONENT: [&lt;span style='color:#2a00ff; '&gt;"e"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"E"&lt;/span&gt;] ([&lt;span style='color:#2a00ff; '&gt;"+"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"-"&lt;/span&gt;])? ([&lt;span style='color:#2a00ff; '&gt;"0"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"9"&lt;/span&gt;])+ &gt;&lt;br /&gt; |&lt;br /&gt; &amp;lt; CHARACTER_LITERAL:&lt;br /&gt;     &lt;span style='color:#2a00ff; '&gt;"'"&lt;/span&gt;&lt;br /&gt;     (   (~[&lt;span style='color:#2a00ff; '&gt;"'"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\\&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\n&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\r&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;])&lt;br /&gt;       | (&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\\&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;br /&gt;           ( [&lt;span style='color:#2a00ff; '&gt;"n"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"t"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"b"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"r"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"f"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\\&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"'"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;]&lt;br /&gt;           | [&lt;span style='color:#2a00ff; '&gt;"0"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"7"&lt;/span&gt;] ( [&lt;span style='color:#2a00ff; '&gt;"0"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"7"&lt;/span&gt;] )?&lt;br /&gt;           | [&lt;span style='color:#2a00ff; '&gt;"0"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"3"&lt;/span&gt;] [&lt;span style='color:#2a00ff; '&gt;"0"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"7"&lt;/span&gt;] [&lt;span style='color:#2a00ff; '&gt;"0"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"7"&lt;/span&gt;]&lt;br /&gt;           )&lt;br /&gt;         )&lt;br /&gt;     )&lt;br /&gt;     &lt;span style='color:#2a00ff; '&gt;"'"&lt;/span&gt;&lt;br /&gt; &gt;&lt;br /&gt; |&lt;br /&gt; &amp;lt; STRING_LITERAL:&lt;br /&gt;     &lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;br /&gt;     (   (~[&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\\&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\n&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\r&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;])&lt;br /&gt;       | (&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\\&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;br /&gt;           ( [&lt;span style='color:#2a00ff; '&gt;"n"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"t"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"b"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"r"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"f"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\\&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"'"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;]&lt;br /&gt;           | [&lt;span style='color:#2a00ff; '&gt;"0"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"7"&lt;/span&gt;] ( [&lt;span style='color:#2a00ff; '&gt;"0"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"7"&lt;/span&gt;] )?&lt;br /&gt;           | [&lt;span style='color:#2a00ff; '&gt;"0"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"3"&lt;/span&gt;] [&lt;span style='color:#2a00ff; '&gt;"0"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"7"&lt;/span&gt;] [&lt;span style='color:#2a00ff; '&gt;"0"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"7"&lt;/span&gt;]&lt;br /&gt;           )&lt;br /&gt;         )&lt;br /&gt;     )*&lt;br /&gt;     &lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;\"&lt;/span&gt;&lt;span style='color:#2a00ff; '&gt;"&lt;/span&gt;&lt;br /&gt; &gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;TOKEN &lt;/span&gt;: {&lt;br /&gt; &amp;lt;IDENTIFIER: &amp;lt; LETTER &gt; ( &amp;lt; LETTER &gt; | &amp;lt; DIGIT &gt; )*&gt;&lt;br /&gt;|  &amp;lt;#LETTER: [&lt;span style='color:#2a00ff; '&gt;"$"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"A"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"Z"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"_"&lt;/span&gt;,&lt;span style='color:#2a00ff; '&gt;"a"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"z"&lt;/span&gt;]&gt;&lt;br /&gt;|  &amp;lt;#DIGIT: [&lt;span style='color:#2a00ff; '&gt;"0"&lt;/span&gt;-&lt;span style='color:#2a00ff; '&gt;"9"&lt;/span&gt;]&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#3f5fbf; '&gt;/*********************************************&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#3f5fbf; '&gt; &lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#3f5fbf; '&gt; THE MINIJAVA LANGUAGE GRAMMAR STARTS HERE &lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#3f5fbf; '&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#3f5fbf; '&gt; &lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#7f9fbf; font-weight:bold; '&gt;*&lt;/span&gt;&lt;span style='color:#3f5fbf; '&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#3f7f59; '&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#3f7f59; '&gt; * Struts.&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#3f7f59; '&gt; */&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; Start() &lt;span style='color:#7f0055; font-weight:bold; '&gt;throws&lt;/span&gt; &lt;span style='color:#7f0055; font-weight:bold; '&gt;ParseException&lt;/span&gt; :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; (TypeDeclaration() )*&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; TypeDeclaration() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; ClassDeclaration()&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#3f7f59; '&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#3f7f59; '&gt; * Declaracion de clases&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#3f7f59; '&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; ClassDeclaration() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt;  ( &lt;span style='color:#2a00ff; '&gt;"final"&lt;/span&gt; | &lt;span style='color:#2a00ff; '&gt;"public"&lt;/span&gt; | &lt;span style='color:#2a00ff; '&gt;"static"&lt;/span&gt; )* &lt;span style='color:#2a00ff; '&gt;"class"&lt;/span&gt; &amp;lt; IDENTIFIER &gt;&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"{"&lt;/span&gt; ( ClassBodyDeclaration() )* &lt;span style='color:#2a00ff; '&gt;"}"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; ClassBodyDeclaration() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; &lt;span style='color:#7f0055; font-weight:bold; '&gt;LOOKAHEAD&lt;/span&gt;(2)&lt;br /&gt; FieldDeclaration()&lt;br /&gt;|&lt;br /&gt; &lt;span style='color:#7f0055; font-weight:bold; '&gt;Statement&lt;/span&gt;()&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; FieldDeclaration() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; ( &lt;span style='color:#2a00ff; '&gt;"public"&lt;/span&gt; | &lt;span style='color:#2a00ff; '&gt;"static"&lt;/span&gt; | &lt;span style='color:#2a00ff; '&gt;"final"&lt;/span&gt; )*&lt;br /&gt; Type() VariableDeclarator() ( &lt;span style='color:#2a00ff; '&gt;","&lt;/span&gt; VariableDeclarator() )* &lt;span style='color:#2a00ff; '&gt;";"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; VariableDeclarator() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; VariableDeclaratorId() [ &lt;span style='color:#2a00ff; '&gt;"="&lt;/span&gt; VariableInitializer() ]&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; VariableDeclaratorId() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; &amp;lt; IDENTIFIER &gt; ( &lt;span style='color:#2a00ff; '&gt;"["&lt;/span&gt; &lt;span style='color:#2a00ff; '&gt;"]"&lt;/span&gt; )*&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; VariableInitializer() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; ArrayInitializer()&lt;br /&gt;|&lt;br /&gt; Expression()&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; ArrayInitializer() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"{"&lt;/span&gt; [ VariableInitializer() ( &lt;span style='color:#7f0055; font-weight:bold; '&gt;LOOKAHEAD&lt;/span&gt;(2) &lt;span style='color:#2a00ff; '&gt;","&lt;/span&gt; VariableInitializer() )* ] [ &lt;span style='color:#2a00ff; '&gt;","&lt;/span&gt; ] &lt;span style='color:#2a00ff; '&gt;"}"&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#3f7f59; '&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#3f7f59; '&gt; * Tipos, nombre y sentencias&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#3f7f59; '&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; Type() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; PrimitiveType()  ( &lt;span style='color:#2a00ff; '&gt;"["&lt;/span&gt; &lt;span style='color:#2a00ff; '&gt;"]"&lt;/span&gt; )*&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; PrimitiveType() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"boolean"&lt;/span&gt;&lt;br /&gt;|&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"char"&lt;/span&gt;&lt;br /&gt;|&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"byte"&lt;/span&gt;&lt;br /&gt;|&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"short"&lt;/span&gt;&lt;br /&gt;|&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"int"&lt;/span&gt;&lt;br /&gt;|&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"long"&lt;/span&gt;&lt;br /&gt;|&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"float"&lt;/span&gt;&lt;br /&gt;|&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"double"&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; Name() :&lt;br /&gt;{ }&lt;br /&gt;{&lt;br /&gt; &amp;lt; IDENTIFIER &gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#3f7f59; '&gt;/*&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#3f7f59; '&gt; * Expression syntax&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#3f7f59; '&gt; */&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; Expression() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; ConditionalExpression() [ AssignmentOperator() AdditiveExpression() ]&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; AssignmentOperator() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"="&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; ConditionalExpression() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; ConditionalOrExpression() [ &lt;span style='color:#2a00ff; '&gt;"?"&lt;/span&gt; Expression() &lt;span style='color:#2a00ff; '&gt;":"&lt;/span&gt; ConditionalExpression() ]&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; ConditionalOrExpression() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; ConditionalAndExpression() ( &lt;span style='color:#2a00ff; '&gt;"||"&lt;/span&gt; ConditionalAndExpression() )*&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; ConditionalAndExpression() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; EqualityExpression() ( &lt;span style='color:#2a00ff; '&gt;"&amp;amp;&amp;amp;"&lt;/span&gt; EqualityExpression() )*&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; EqualityExpression() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; RelationalExpression() ( ( &lt;span style='color:#2a00ff; '&gt;"=="&lt;/span&gt; | &lt;span style='color:#2a00ff; '&gt;"!="&lt;/span&gt; ) RelationalExpression() )*&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; RelationalExpression() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; AdditiveExpression() ( ( &lt;span style='color:#2a00ff; '&gt;"&amp;lt;"&lt;/span&gt; | &lt;span style='color:#2a00ff; '&gt;"&gt;"&lt;/span&gt; | &lt;span style='color:#2a00ff; '&gt;"&amp;lt;="&lt;/span&gt; | &lt;span style='color:#2a00ff; '&gt;"&gt;="&lt;/span&gt; ) AdditiveExpression()  )*&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; AdditiveExpression() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; MultiplicativeExpression() ( &lt;span style='color:#7f0055; font-weight:bold; '&gt;LOOKAHEAD&lt;/span&gt;(2)( &lt;span style='color:#2a00ff; '&gt;"+"&lt;/span&gt; | &lt;span style='color:#2a00ff; '&gt;"-"&lt;/span&gt; ) MultiplicativeExpression() )*&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; MultiplicativeExpression() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; UnaryExpression() ( ( &lt;span style='color:#2a00ff; '&gt;"*"&lt;/span&gt; | &lt;span style='color:#2a00ff; '&gt;"/"&lt;/span&gt; ) UnaryExpression() )*&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; UnaryExpression() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; ( &lt;span style='color:#2a00ff; '&gt;"+"&lt;/span&gt; | &lt;span style='color:#2a00ff; '&gt;"-"&lt;/span&gt; ) UnaryExpression()&lt;br /&gt;|&lt;br /&gt; UnaryExpressionNotPlusMinus()&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; UnaryExpressionNotPlusMinus() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; PostfixExpression()&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; PostfixExpression() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; PrimaryExpression() [ &lt;span style='color:#2a00ff; '&gt;"++"&lt;/span&gt; | &lt;span style='color:#2a00ff; '&gt;"--"&lt;/span&gt; ]&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; PrimaryExpression() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; PrimaryPrefix() ( PrimarySuffix() )*&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; PrimaryPrefix() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; Literal()&lt;br /&gt;|&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"("&lt;/span&gt; Expression() &lt;span style='color:#2a00ff; '&gt;")"&lt;/span&gt;&lt;br /&gt;|&lt;br /&gt; AllocationExpression()&lt;br /&gt;|&lt;br /&gt; Name()&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; PrimarySuffix() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"["&lt;/span&gt; Expression() &lt;span style='color:#2a00ff; '&gt;"]"&lt;/span&gt;&lt;br /&gt;|&lt;br /&gt; &lt;span style='color:#7f0055; font-weight:bold; '&gt;LOOKAHEAD&lt;/span&gt;(2)&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"."&lt;/span&gt; &lt;span style='color:#2a00ff; '&gt;"addStack"&lt;/span&gt; &lt;span style='color:#2a00ff; '&gt;"("&lt;/span&gt; ( Name() | Literal() ) &lt;span style='color:#2a00ff; '&gt;")"&lt;/span&gt;&lt;br /&gt;|&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"."&lt;/span&gt; &lt;span style='color:#2a00ff; '&gt;"ordStack"&lt;/span&gt; &lt;span style='color:#2a00ff; '&gt;"("&lt;/span&gt; OrdenType() &lt;span style='color:#2a00ff; '&gt;")"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; OrdenType() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"ascendente"&lt;/span&gt;&lt;br /&gt;|&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"descendente"&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; Literal() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; &amp;lt; INTEGER_LITERAL &gt;&lt;br /&gt;|&lt;br /&gt; &amp;lt; FLOATING_POINT_LITERAL &gt;&lt;br /&gt;|&lt;br /&gt; &amp;lt; CHARACTER_LITERAL &gt;&lt;br /&gt;|&lt;br /&gt; &amp;lt; STRING_LITERAL &gt;&lt;br /&gt;|&lt;br /&gt; BooleanLiteral()&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; BooleanLiteral() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"true"&lt;/span&gt;&lt;br /&gt;|&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"false"&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; AllocationExpression() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"new"&lt;/span&gt; PrimitiveType() ArrayDimsAndInits()&lt;br /&gt;|&lt;br /&gt; MakeStack()&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; MakeStack() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"make"&lt;/span&gt; &lt;span style='color:#2a00ff; '&gt;"stack"&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; ArrayDimsAndInits() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; &lt;span style='color:#7f0055; font-weight:bold; '&gt;LOOKAHEAD&lt;/span&gt;(2)&lt;br /&gt; ( &lt;span style='color:#7f0055; font-weight:bold; '&gt;LOOKAHEAD&lt;/span&gt;(2) &lt;span style='color:#2a00ff; '&gt;"["&lt;/span&gt; Expression() &lt;span style='color:#2a00ff; '&gt;"]"&lt;/span&gt; )+ ( &lt;span style='color:#7f0055; font-weight:bold; '&gt;LOOKAHEAD&lt;/span&gt;(2) &lt;span style='color:#2a00ff; '&gt;"["&lt;/span&gt; &lt;span style='color:#2a00ff; '&gt;"]"&lt;/span&gt; )*&lt;br /&gt;|&lt;br /&gt; ( &lt;span style='color:#2a00ff; '&gt;"["&lt;/span&gt; &lt;span style='color:#2a00ff; '&gt;"]"&lt;/span&gt; )+ ArrayInitializer()&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; &lt;span style='color:#7f0055; font-weight:bold; '&gt;Statement&lt;/span&gt;() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; Expression() &lt;span style='color:#2a00ff; '&gt;";"&lt;/span&gt;&lt;br /&gt;|&lt;br /&gt; RepeatStatement()&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style='color:#7f0055; font-weight:bold; '&gt;void&lt;/span&gt; RepeatStatement() :&lt;br /&gt;{}&lt;br /&gt;{&lt;br /&gt; &lt;span style='color:#2a00ff; '&gt;"repeat"&lt;/span&gt; &lt;span style='color:#7f0055; font-weight:bold; '&gt;Statement&lt;/span&gt;() &lt;span style='color:#2a00ff; '&gt;"until"&lt;/span&gt; &lt;span style='color:#2a00ff; '&gt;"("&lt;/span&gt; Expression() &lt;span style='color:#2a00ff; '&gt;")"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113010376960041659?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113010376960041659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113010376960041659' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113010376960041659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113010376960041659'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/10/grammar-dudu-mi-lenguaje-de.html' title='Grammar DUDU+ mi lenguaje de programación'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-3448242206692687345</id><published>2006-11-05T06:47:00.000-08:00</published><updated>2006-11-05T06:54:13.446-08:00</updated><title type='text'>Stevey en el pais de las maravillas (Google)</title><content type='html'>Interesante &lt;a href="http://steve-yegge.blogspot.com/2006/09/good-agile-bad-agile_27.html"&gt;artculo&lt;/a&gt; de Stevey para decirnos que vivimos en un mundo de mentira :) que sincero, y de como se debe trabajar segun Google.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-3448242206692687345?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/3448242206692687345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=3448242206692687345' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/3448242206692687345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/3448242206692687345'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/11/stevey-en-el-pais-de-las-maravillas.html' title='Stevey en el pais de las maravillas (Google)'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-8689591536584726330</id><published>2006-11-05T06:18:00.000-08:00</published><updated>2006-11-05T06:23:34.693-08:00</updated><title type='text'>Los 10 lenguajes más demandados</title><content type='html'>En este &lt;a href="http://www.versioncero.com/noticia/518/los-10-lenguajes-mas-demandados"&gt;artículo&lt;/a&gt;  se confirma mas aun lo que dije anteriormente, para mis amigos que todavia estan pensando que M$ domina el negocio de las computadoras no significa que contole en que se programa.&lt;a href="http://www.versioncero.com/noticia/518/los-10-lenguajes-mas-demandados"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-8689591536584726330?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/8689591536584726330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=8689591536584726330' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/8689591536584726330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/8689591536584726330'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/11/los-10-lenguajes-ms-demandados.html' title='Los 10 lenguajes más demandados'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-115400345596536436</id><published>2006-08-27T00:30:00.000-07:00</published><updated>2006-08-15T17:30:46.896-07:00</updated><title type='text'>oferta de trabajo USA</title><content type='html'>Esto es para los amigos mios que no creen que en el mundo de Java no se gana dinero (Eso es porque solamente piensa en dinero) y creen que los chelitos solo se hacen con M$.&lt;br /&gt;&lt;br /&gt;Vean este &lt;a href="http://msn.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?IPath=SQGT&amp;jobcount=3217&amp;amp;job_did=J8D8BT61W3KLBY1SJH6&amp;sfascc=&amp;amp;amp;dv=dv&amp;jrdid=&amp;amp;lpage=129&amp;sname=&amp;amp;amp;CiBookMark=1&amp;amp;strcrit=QID%3dA6653235163317%3bst%3da%3buse%3dALL%3bCID%3dUS%3bSID%3dNY%3bTID%3d0%3bENR%3dNO%3bDTP%3dDR3%3bYDI%3dYES%3bIND%3dALL%3bPDQ%3dAll%3bJN%3dJN008%3bJN%3dJN004%3bPAYL%3d0%3bPAYH%3dgt120%3bPOY%3dNO%3bETD%3dALL%3bRE%3dALL%3bMGT%3dDC%3bSUP%3dDC%3bFRE%3d30%3bCHL%3dAL%3bQS%3dsid_unknown%3bSS%3dNO%3bTITL%3d0%3bVT%3ddetail%3bJQT%3dRAD"&gt;sueldito&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-115400345596536436?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/115400345596536436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=115400345596536436' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115400345596536436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115400345596536436'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/08/oferta-de-trabajo-usa.html' title='oferta de trabajo USA'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-115247083865920398</id><published>2006-08-16T11:46:00.000-07:00</published><updated>2006-08-15T17:28:18.730-07:00</updated><title type='text'>The Power of Three - Eclipse, Tomcat, and Struts</title><content type='html'>Un pequeño &lt;a href="http://javaboutique.internet.com/tutorials/three/index.html"&gt;tutorial&lt;/a&gt; de la integración de estos tres legendarios en el desarrollo de aplicaciones web de una manera ágil.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-115247083865920398?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/115247083865920398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=115247083865920398' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115247083865920398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115247083865920398'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/08/power-of-three-eclipse-tomcat-and.html' title='The Power of Three - Eclipse, Tomcat, and Struts'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-115210507607157916</id><published>2006-08-16T09:10:00.000-07:00</published><updated>2006-08-15T17:26:26.093-07:00</updated><title type='text'>Branching with Eclipse and CVS</title><content type='html'>Un articulo para estar claro de como se manejan los branch en Eclipse con CVS.&lt;br /&gt;&lt;br /&gt;http://www.eclipse.org/articles/Article-CVS-branching/eclipse_branch.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-115210507607157916?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/115210507607157916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=115210507607157916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115210507607157916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115210507607157916'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/08/branching-with-eclipse-and-cvs.html' title='Branching with Eclipse and CVS'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-115314677014711737</id><published>2006-08-15T20:31:00.000-07:00</published><updated>2006-08-15T17:22:06.780-07:00</updated><title type='text'>Nifty Corners - Esquinas redondeadas</title><content type='html'>Como obterner cuadros con esquinas redondeadas, pero lo más importante compatible con los diferentes navegadores, solución usar &lt;a href="http://www.html.it/articoli/nifty/index.html"&gt;Nifty Corners&lt;/a&gt; , es una librería ligerade css y javascript para lograr este efecto es bien fácil de usar en nuestros proyectos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-115314677014711737?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/115314677014711737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=115314677014711737' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115314677014711737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115314677014711737'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/08/nifty-corners-esquinas-redondeadas.html' title='Nifty Corners - Esquinas redondeadas'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-115318108193507871</id><published>2006-08-15T20:19:00.000-07:00</published><updated>2006-08-15T17:25:16.593-07:00</updated><title type='text'>Ruby on Rails and J2EE</title><content type='html'>Este &lt;a href="http://www-128.ibm.com/developerworks/web/library/wa-rubyonrails/"&gt;artículo&lt;/a&gt; es una comparacion de los modelos de desarrollo propuesto por Ruby on Rails y J2EE.&lt;br /&gt;&lt;br /&gt;Mostrando cada ventaja y desventaja, un buen artículo con los pies sobre la tierra.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-115318108193507871?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/115318108193507871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=115318108193507871' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115318108193507871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115318108193507871'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/08/ruby-on-rails-and-j2ee.html' title='Ruby on Rails and J2EE'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-115568706272217421</id><published>2006-08-15T17:00:00.000-07:00</published><updated>2006-08-15T17:11:02.750-07:00</updated><title type='text'>open source Java  para octubre</title><content type='html'>En este &lt;a href="http://www.vnunet.com/vnunet/news/2162306/first-open-source-java-promised"&gt;artículo &lt;/a&gt;se expresa lo que mucho tal vez mucho han escuchado, pero esta vez no es solo un deseo o rumor,  la plataforma Java se piensa librerar con una licencia compatible con el open source, lo cual si se haria seria un hito en la industria.&lt;br /&gt;&lt;br /&gt;Esto incluye un compilador, un virtual machine, etc. al principio y todo este proceso tardará hasta el 2007 cuando toda la plataforma será librerada completamente.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-115568706272217421?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/115568706272217421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=115568706272217421' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115568706272217421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115568706272217421'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/08/open-source-java-para-octubre.html' title='open source Java  para octubre'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-115533279306708280</id><published>2006-08-11T14:29:00.000-07:00</published><updated>2006-08-11T14:54:24.066-07:00</updated><title type='text'>EJB3 - Conceptos Basicos</title><content type='html'>En este &lt;a href="http://weblogs.javahispano.org/page/jlmonteagudo?entry=ejb3_conceptos_basicos"&gt;artículo&lt;/a&gt; se trata de explicar cuáles son los distintos tipos de Enterprise Java Bean y cuáles son los propósitos de cada uno de ellos : Stateless Session Bean, Stateful Session Bean, Entity Bean y Message Driven Bean.&lt;br /&gt;&lt;br /&gt;Cualquiera que quisiera entender el mundo del EJB este es un buen comienzo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-115533279306708280?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/115533279306708280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=115533279306708280' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115533279306708280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115533279306708280'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/08/ejb3-conceptos-basicos.html' title='EJB3 - Conceptos Basicos'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-115529375451422388</id><published>2006-08-11T03:55:00.000-07:00</published><updated>2006-08-11T03:56:01.816-07:00</updated><title type='text'>Spring AOP</title><content type='html'>&lt;h3&gt;Spring AOP&lt;/h3&gt;&lt;br /&gt;Un poco de orden en tus proyectos ;)&lt;br /&gt;&lt;br /&gt;Spring AOP es útil para realizar tareas puntuales que no encajan de forma natural en nuestras entidades ni en nuestra lógica de negocio.&lt;br /&gt;&lt;br /&gt;Este &lt;a href="http://weblogs.javahispano.org/page/jlmonteagudo?entry=spring_aop"&gt;artículo&lt;/a&gt; muestra de manera básica como usarlo en nuestros proyectos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-115529375451422388?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/115529375451422388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=115529375451422388' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115529375451422388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115529375451422388'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/08/spring-aop.html' title='Spring AOP'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-115401147834648044</id><published>2006-07-27T07:34:00.000-07:00</published><updated>2006-07-27T07:44:38.383-07:00</updated><title type='text'>Curso de Ajax</title><content type='html'>El proposito de este curso aprender Ajax para el desarrollo de aplicaciones web en java.&lt;br /&gt;&lt;br /&gt;Este cursos es importante (y gratis), porque se presentan las herramientas y frameworks más usados para la creación y utilizacion de ajax en nuestras aplicaciones. Osea que desde un simple javascript hasta GoogleWebToolKit, e incluso ajax en JSF. Para ser un cursos gratis es demasiado completo y variado. Ademas es stateless :D, osea que no es webcasting (no tiene un horario, para que todos puedan particapar con comodidad de horario), este curso incluye ppt, videos, flashes :) e incluso audio, tanto de teoria y practica.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.javapassion.com/ajaxcodecamp/"&gt;AjaxCodeCamp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Favor leer las instrucciones del cursos. RTFM :)&lt;br /&gt;&lt;br /&gt;Estos chicos se merecen su donación.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-115401147834648044?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/115401147834648044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=115401147834648044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115401147834648044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115401147834648044'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/07/curso-de-ajax.html' title='Curso de Ajax'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-115400333814489348</id><published>2006-07-27T05:28:00.000-07:00</published><updated>2006-07-27T10:06:11.253-07:00</updated><title type='text'>Oracle 10.2 sql</title><content type='html'>Una buena referencia de sentecias sql para Oracle 10.2.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.psoug.org/reference/joins.html"&gt;artículo&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-115400333814489348?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/115400333814489348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=115400333814489348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115400333814489348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115400333814489348'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/07/oracle-102-sql.html' title='Oracle 10.2 sql'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-115248865722945700</id><published>2006-07-09T16:43:00.000-07:00</published><updated>2006-07-17T07:35:50.876-07:00</updated><title type='text'>OK, Sudoku - TDD una practica de fin de semana</title><content type='html'>Este es un artículo de xprogramming.com, es interesante para practicar un poco de test driven development, este ejemplo se basa en la creación del novedoso juego sudoku. Y Happy coding...&lt;br /&gt;&lt;br /&gt;http://www.xprogramming.com/xpmag/OkSudoku.htm&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-115248865722945700?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/115248865722945700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=115248865722945700' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115248865722945700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115248865722945700'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/07/ok-sudoku-tdd-una-practica-de-fin-de.html' title='OK, Sudoku - TDD una practica de fin de semana'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-115142772266122445</id><published>2006-06-27T10:00:00.000-07:00</published><updated>2006-06-27T10:02:02.673-07:00</updated><title type='text'>Unix: Ten Things Every Java Developer Should Know</title><content type='html'>Para migraciones de aplicaciones java entre sistemas operativos&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.javalobby.org/articles/10things-unix/"&gt;http://www.javalobby.org/articles/10things-unix/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-115142772266122445?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/115142772266122445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=115142772266122445' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115142772266122445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115142772266122445'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/06/unix-ten-things-every-java-developer.html' title='Unix: Ten Things Every Java Developer Should Know'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-115100266711050047</id><published>2006-06-22T11:56:00.000-07:00</published><updated>2006-06-27T10:14:38.406-07:00</updated><title type='text'>how to change the address of the webservices in run time?</title><content type='html'>&lt;code&gt;Solo hay que asignar un nuevo endpoint address.&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;xxxxxLocator loc = new xxxxxLocator();&lt;br /&gt;loc.setEndpointAddress(servicePortName,the new URL (as a String))&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-115100266711050047?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/115100266711050047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=115100266711050047' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115100266711050047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115100266711050047'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/06/how-to-change-address-of-webservices.html' title='how to change the address of the webservices in run time?'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-115089420534263088</id><published>2006-06-21T05:45:00.000-07:00</published><updated>2006-06-21T05:50:05.343-07:00</updated><title type='text'>Migrating to Eclipse: A developer's guide to evaluating Eclipse vs. IntelliJ IDEA</title><content type='html'>Un poco sobre porque migrar de IDEA a Eclipse, pero aunque se que a mucho lo le gusta esto, (todo esto de los ide es cuestion de gusto) pienso que las capacidades de uno u de otro, estan por encima del fanatismo por un determinado IDE.&lt;br /&gt;&lt;br /&gt;En este &lt;a href="http://www-128.ibm.com/developerworks/opensource/library/os-ecidea/"&gt;artículo &lt;/a&gt;se analiza cada parte de eclipse y se le compara con IDEA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-115089420534263088?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/115089420534263088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=115089420534263088' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115089420534263088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115089420534263088'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/06/migrating-to-eclipse-developers-guide.html' title='Migrating to Eclipse: A developer&apos;s guide to evaluating Eclipse vs. IntelliJ IDEA'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-115089393312295636</id><published>2006-06-21T05:41:00.000-07:00</published><updated>2006-06-21T05:45:33.136-07:00</updated><title type='text'>Eclipse y Tomcat Integración</title><content type='html'>Este es un buen artículo sobre la integración de eclipse con tomcat para el desarrollo web, esto ayuda ha acelerar el desarrollo para realizar la depuraciones de código de manera más eficiente.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www-128.ibm.com/developerworks/library/os-ectom/"&gt;artículo&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-115089393312295636?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/115089393312295636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=115089393312295636' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115089393312295636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115089393312295636'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/06/eclipse-y-tomcat-integracin.html' title='Eclipse y Tomcat Integración'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-115074148223750637</id><published>2006-06-19T11:22:00.000-07:00</published><updated>2006-06-19T11:24:42.253-07:00</updated><title type='text'>Una api para el Tiempo</title><content type='html'>&lt;a href="http://javahispano.org/news.item.action?id=1241935316"&gt;joda time&lt;/a&gt; esta api es para sustitir la clase date, time y calendar. Que realmente no ayudan mucho.&lt;br /&gt;&lt;br /&gt;La página: &lt;a href="http://joda-time.sourceforge.net/"&gt;http://joda-time.sourceforge.net/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-115074148223750637?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/115074148223750637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=115074148223750637' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115074148223750637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/115074148223750637'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/06/una-api-para-el-tiempo.html' title='Una api para el Tiempo'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-114950676765625733</id><published>2006-06-13T20:23:00.000-07:00</published><updated>2006-06-05T04:38:21.830-07:00</updated><title type='text'>Bruce Eckel Interviews Software Luminaries</title><content type='html'>Entrevistando a los Peso PESADO ;) de la programación. Quien sepa quienes son los respetará a cada uno por su trabajo y aportes.&lt;br /&gt;&lt;br /&gt;Yo mientras tanto, disfrutaré estas entrevistas.&lt;br /&gt;&lt;br /&gt;http://www.mindviewinc.com/mediacast/interviews/Index.php&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-114950676765625733?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/114950676765625733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=114950676765625733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/114950676765625733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/114950676765625733'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/06/bruce-eckel-interviews-software.html' title='Bruce Eckel Interviews Software Luminaries'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-114944938944864420</id><published>2006-06-13T12:29:00.000-07:00</published><updated>2006-06-05T04:52:54.166-07:00</updated><title type='text'>Google Web Toolkit</title><content type='html'>Google a la carga :D estos chicos no se duermen. Y M$ le sigue los pasos ( hablo de script#).&lt;br /&gt;Para los que quieren programar ajax esto es una maravilla, porque resuelve problemas de la programación en ajax como la depuración del código.&lt;br /&gt;&lt;br /&gt;QWT es realmente un traductor de java a javascript (a ajax ;) , es un conjunto de herramientas que permite trabajar comodamente desde java, con un api al estilo swing con equivalente a dialogbox, y muchos otros componentes gráficos, que trabajandolos con javascript se haria muy pero muy dificil y trabajoso de hacer y mantener.&lt;br /&gt;&lt;br /&gt;Estos muchachos piensan en los demás y son buenos samaritanos ( si siii :) , por lo tanto comparten su tool con nosostros.&lt;br /&gt;&lt;br /&gt;http://code.google.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-114944938944864420?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/114944938944864420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=114944938944864420' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/114944938944864420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/114944938944864420'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/06/google-web-toolkit.html' title='Google Web Toolkit'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-112916610417691291</id><published>2006-06-12T18:14:00.000-07:00</published><updated>2006-06-05T11:00:43.623-07:00</updated><title type='text'>Como depurar aplicaciones web con Eclipse</title><content type='html'>En mi busqueda de como depurar una aplicación web encontre estos links que me ayudaron a elegir la forma en la que quiero depurar mis aplicaciones web.&lt;br /&gt;&lt;br /&gt;http://www.jroller.com/page/gursesl/print/remote_application_debugging_with_weblogic&lt;br /&gt;&lt;br /&gt;http://tomcat.apache.org/faq/development.html&lt;br /&gt;&lt;br /&gt;http://www.laliluna.de/debugging-jsp-java-tutorial.html&lt;br /&gt;&lt;br /&gt;http://javaboutique.internet.com/tutorials/three/index.html&lt;br /&gt;&lt;br /&gt;Por supuesto elegi la ultima, porque programo en eclipse con tomcat y sysdeo para unirlos&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-112916610417691291?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/112916610417691291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=112916610417691291' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112916610417691291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112916610417691291'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/06/como-depurar-aplicaciones-web-con.html' title='Como depurar aplicaciones web con Eclipse'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-112735530587204966</id><published>2006-06-05T19:14:00.000-07:00</published><updated>2006-06-05T05:07:45.386-07:00</updated><title type='text'>Mi experiencia con Webwork y Hibernate</title><content type='html'>Comenzado con que fue larga por razones de preparación y educacion fuertemente autodidáctica en unas técnicas que eran nuevas para mi (y ciertamente para en el mundo de java también por lo que he visto) Pero hoy ya eso es diferente :) . Fue muy bueno porque pude comprobar que no es tan difícil después de todo. Lo más difícil fue entender algunos conceptos y patrones de diseño que se utilizan. Y cuando lo aprendes te das cuenta de que ciertamente es la manera más facil de hacer las cosas (es lo que realmente se quiere, no es así :-).&lt;br /&gt;&lt;br /&gt;Este framework es recomendado para proyectos grandes y medianos, pero nunca para hacer aplicaciones burdas.&lt;br /&gt;&lt;br /&gt;Luego en otro post hablaré de la ventajas de usar este framework.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-112735530587204966?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/112735530587204966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=112735530587204966' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112735530587204966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112735530587204966'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/06/mi-experiencia-con-webwork-y-hibernate.html' title='Mi experiencia con Webwork y Hibernate'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-114389615652420043</id><published>2006-04-01T04:42:00.000-08:00</published><updated>2006-04-01T05:22:13.800-08:00</updated><title type='text'>La mejor crítica a Java</title><content type='html'>&lt;span style="" lang="ES"&gt;He visto muchas personas criticando a Java en el Internet, pero todos estos comentario me parecían banales porque las razones que daban era totalmente sin fundamento, sin mencionar de se notaba la poco experiencia de programación con java que tenían (se veía solo con leer lo que decían :-).&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;    &lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES"&gt;Leí este artículo y me pareció estupendo, la persona que lo escribió si parece tener experiencia de programación en Java y no solo eso yo mismo he tenido alguno de los problemas mencionados y que he tenido que solucionar. A diferencia de muchos críticos, el no crítica la sintaxis en si sino el conjunto de api, frameworks y herramientas de desarrollo que se supone tienen que hacer la vida del programador un poco más fácil y productiva. La manera en que un programador de Java resuelve lo problemas día a día.&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="ES"&gt;Por cierto los frameworks de desarrollo web están fuera por serian muy polémico el articulo, en realidad los frameworks web son para otros articulo aparte.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;El artículo  &lt;a href="http://www.oreillynet.com/onjava/blog/2006/03/dreaming_in_java_1.html?CMP=OTC-FP2116136014&amp;amp;ATT=Dreaming+in+Java"&gt;Dreaming in Java&lt;/a&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-114389615652420043?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/114389615652420043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=114389615652420043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/114389615652420043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/114389615652420043'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/04/la-mejor-crtica-java.html' title='La mejor crítica a Java'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-112916745028429482</id><published>2006-03-28T18:36:00.000-08:00</published><updated>2006-03-28T06:57:07.706-08:00</updated><title type='text'>WebServices con Java utilizando Axis</title><content type='html'>Para los que no lo han usado se lo recominedo, utilizar Axis  es un placer.&lt;br /&gt;&lt;br /&gt;Para tener una idea de  como funciona les recomiendo leerse el tutorial de la pagina oficial, y si eres  como yo "fast", entonces ahi una presentacion tutorial en HP muy completo de desarrollo agil.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ws.apache.org/axis/"&gt;http://ws.apache.org/axis/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://devresource.hp.com/drc/events/HPWorld/OSWSDev.pdf?jumpid=reg_R1002_USEN"&gt;Tutorial de HP&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-112916745028429482?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/112916745028429482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=112916745028429482' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112916745028429482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112916745028429482'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/03/webservices-con-java-utilizando-axis.html' title='WebServices con Java utilizando Axis'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113784464755069823</id><published>2006-01-21T03:45:00.000-08:00</published><updated>2006-01-21T04:31:38.913-08:00</updated><title type='text'>Apple el renacido competidor de Micro$oft</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/385/474/1600/charts.dll.0.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/385/474/400/charts.dll.0.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Todos saben la noticia de que apple vale &gt; Dell, dicho por el propio Steve Jobs, bueno el problema es que Apple tambien se mudo a procesadores intel los cual quiere decir que COMPETIRA más directamente en el mercado contra M$ y no solo eso el valor de las acciones de Apple son ya &gt; que las de M$.&lt;br /&gt;&lt;br /&gt;Sun no se atras y Google ni se diga ;-).&lt;br /&gt;&lt;br /&gt;Ha de esperarse muchas cosa de esta compañia este año. Y de las otras tambien ;-)&lt;br /&gt;&lt;br /&gt;AAPL  $ 79.035  3.4551  4.19%  60,585,718  NASDAQ-NM&lt;br /&gt;MSFT  $ 27.02  0.19  0.71%  60,382,450  NASDAQ-NM&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113784464755069823?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113784464755069823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113784464755069823' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113784464755069823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113784464755069823'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/01/apple-el-renacido-competidor-de.html' title='Apple el renacido competidor de Micro$oft'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113520262826802161</id><published>2006-01-21T02:02:00.000-08:00</published><updated>2006-01-21T04:10:26.643-08:00</updated><title type='text'>JXTA P2P en Java</title><content type='html'>Teórico y lo más importante práctico tambien ;-) muestra como hacer un Hello JXTA!&lt;br /&gt;http://www.onjava.com/pub/a/onjava/2001/04/25/jxta.html?page=1&lt;br /&gt;&lt;br /&gt;Muy teórico pero importante sobre la arquitectura&lt;br /&gt;http://www.javaworld.com/javaworld/jw-10-2001/jw-1019-jxta.html&lt;br /&gt;&lt;br /&gt;Una pagina a tener en cuenta: http://www.jxta.org/&lt;br /&gt;&lt;br /&gt;JXTA es un protocolo de P2P desarrollado por Sun y luego liberado como open source que se a convertido en estandar para la industria.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113520262826802161?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113520262826802161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113520262826802161' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113520262826802161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113520262826802161'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/01/jxta-p2p-en-java.html' title='JXTA P2P en Java'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113474392281928291</id><published>2006-01-20T06:37:00.000-08:00</published><updated>2006-01-21T04:08:48.470-08:00</updated><title type='text'>how to attach a MaskFormatter to a JFormattedTextField in the IDE's form editor?</title><content type='html'>Un pequeño tutorial de como manejar validaciones con java Studio Entreprise, puesto que me fue un poco trabajoso tuve que preguntarle al soporte como se hacia, y realmente es sencillo pero muy elaborado. Esta en ingles espero que se entienda ;-)&lt;br /&gt;&lt;br /&gt;how to attach a MaskFormatter to a JFormattedTextField in the IDE's form editor?&lt;br /&gt;&lt;br /&gt;1. Add JFormattedTextField to the form.&lt;br /&gt;&lt;br /&gt;2. In Properties window, click ... button for formatterFactory property.&lt;br /&gt;&lt;br /&gt;3. Select User Code radio button.&lt;br /&gt;&lt;br /&gt;4. Enter the following example text into the text area:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;new javax.swing.JFormattedTextField.AbstractFormatterFactory() {&lt;br /&gt;&lt;br /&gt;public javax.swing.JFormattedTextField.AbstractFormatter&lt;br /&gt;&lt;br /&gt;        getFormatter(javax.swing.JFormattedTextField tf) {&lt;br /&gt;&lt;br /&gt;    try {&lt;br /&gt;&lt;br /&gt;        return new javax.swing.text.MaskFormatter("##-###");&lt;br /&gt;&lt;br /&gt;    } catch (java.text.ParseException pe) {&lt;br /&gt;&lt;br /&gt;        pe.printStackTrace();&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    return null;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5. Build and run the project and you've got a formatted text field that only accepts two digits, a hyphen, and three more digits (the hyphen is automatically inserted by the formatter).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--&gt; On the other hand, are you asking how to validate the input when the form in which the formatted text field is contained is somehow dismissed (e.g. if the field were in a dialog In that case, the code which built and displayed the dialog will need an action listener on the button which accepts the user input, and this listener will retrieve the text from the field, validate it, and if it is incorrect, either display a message in a new dialog, or show an error message in a JLabel near the bottom or top of the dialog (commonly seen in Studio itself). If the input is valid, then dispose of (i.e. close) the original dialog and proceed as normal with the given user input.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--&gt; Or, do you want to verify the input before the field loses focus? In that case, click the ... button next to the inputVerified property for the text field and add something like the following for the User Code:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;new javax.swing.InputVerifier() {&lt;br /&gt;&lt;br /&gt;public boolean verify(javax.swing.JComponent input) {&lt;br /&gt;&lt;br /&gt;    // validate user input&lt;br /&gt;&lt;br /&gt;    return true;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The code displaying the input dialog would need a counter, incremented each time the input was invalid, and show the error dialog only on the third attempt.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;En forma de Bean&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;import java.awt.event.FocusListener;&lt;br /&gt;&lt;br /&gt;import javax.swing.JFormattedTextField;&lt;br /&gt;import javax.swing.text.MaskFormatter;&lt;br /&gt;&lt;br /&gt;public class MaskFormattedTextField extends JFormattedTextField&lt;br /&gt;     implements java.io.Serializable {&lt;br /&gt; private String mask = "";&lt;br /&gt;&lt;br /&gt; public MaskFormattedTextField() {&lt;br /&gt;     addFocusListener(new FocusListener() {&lt;br /&gt;         public void focusGained(java.awt.event.FocusEvent e) {&lt;br /&gt;             selectAll();&lt;br /&gt;         }&lt;br /&gt;         public void focusLost(java.awt.event.FocusEvent e) {}&lt;br /&gt;     });&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public final String getMask() {&lt;br /&gt;     return mask;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public final void setMask(final String m) {&lt;br /&gt;     mask = m;&lt;br /&gt; &lt;br /&gt;     try {&lt;br /&gt;         new MaskFormatter(mask).install(this);&lt;br /&gt;     } catch (java.text.ParseException e) {&lt;br /&gt;         e.printStackTrace();&lt;br /&gt;     }&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113474392281928291?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113474392281928291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113474392281928291' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113474392281928291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113474392281928291'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/01/how-to-attach-maskformatter-to.html' title='how to attach a MaskFormatter to a JFormattedTextField in the IDE&apos;s form editor?'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113699873308998905</id><published>2006-01-11T08:54:00.000-08:00</published><updated>2006-01-11T08:58:53.100-08:00</updated><title type='text'>Asp.NET vs JSF</title><content type='html'>Una interesante comparativa de las dos tecnologias:&lt;br /&gt;&lt;br /&gt;http://www.developer.com/net/asp/article.php/10917_3572721_1&lt;br /&gt;&lt;br /&gt;Esto es para los amigos mios, para que esten claros en las diferencias que hay entre programar con asp.NET y JSF ( .NET Y JAVA como ustedes le llaman :-)&lt;br /&gt;&lt;br /&gt;Es un buen analisis y toca todos los puntos en el desarrollo de un programa con las dos tecnologias.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113699873308998905?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113699873308998905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113699873308998905' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113699873308998905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113699873308998905'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2006/01/aspnet-vs-jsf.html' title='Asp.NET vs JSF'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113564325378967661</id><published>2005-12-26T16:24:00.000-08:00</published><updated>2005-12-26T16:33:07.080-08:00</updated><title type='text'>Y WiMax??</title><content type='html'>Hace 12 meses que conoci la nueva tecnologia &lt;span style="font-weight: bold; font-style: italic;"&gt;Wimax&lt;/span&gt;, pero al dia de hoy no veo productos para esta tecnologia, intel que es una de las sonadas solo la he visto en en chips, donde estan los productos de para el consumo tanto para la empresa como para la casa, donde me pregunto?&lt;br /&gt;&lt;br /&gt;Que es lo que ha pasado, esta tednologia se anuncia con bombos y platillos, pero hasta el dia de hoy no veo producto ni para desktop ni para laptop, si alguien conoce algun producto, y claro que sea a un precio razonablemente para una empresa o una casa.&lt;br /&gt;&lt;br /&gt;Busque en google, pero no aparece nada y lo poco que aparece es casos de exitos y algunos de los pocos productos  que aparecieron son de empresas que realmente su costo esta muy por encima de cualquier tecnologia del mercado comparable.&lt;br /&gt;&lt;br /&gt;Si alguien conoce algun producto por favor deje un comentario.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113564325378967661?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113564325378967661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113564325378967661' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113564325378967661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113564325378967661'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/12/y-wimax.html' title='Y WiMax??'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113478134186001478</id><published>2005-12-16T16:59:00.000-08:00</published><updated>2005-12-16T17:02:21.870-08:00</updated><title type='text'>Como hacer una aplicacion java sin el Main()</title><content type='html'>&lt;pre&gt;&lt;br /&gt;class NoMainMethod&lt;br /&gt;{&lt;br /&gt;  static&lt;br /&gt;  {&lt;br /&gt;      System.out.println("Mirenme! no soy un metodo main");&lt;br /&gt;      System.exit(0);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113478134186001478?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113478134186001478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113478134186001478' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113478134186001478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113478134186001478'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/12/como-hacer-una-aplicacion-java-sin-el.html' title='Como hacer una aplicacion java sin el Main()'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113009102094155038</id><published>2005-12-08T20:09:00.000-08:00</published><updated>2005-12-08T06:51:43.026-08:00</updated><title type='text'>Introducción a la tecnología movil de java, J2ME</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/385/474/1600/j2memap.1.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/385/474/400/j2memap.0.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;La descripción de J2ME es que es semejante a J2SE, J2ME no es un pedazo de software, ni está una sola especificación. Esta diferencia puede ser confusa para los desarrolladores que son ya familiares con J2SE. En lugar, J2ME es una plataforma, una colección de tecnologías y especificaciones que se diseñan para el diverso mercado de los dispositivos. Porque J2ME atraviesa tal variedad de dispositivos, no tendría sentido de intentar crear una solución. J2ME, por lo tanto, se divide en configuraciones, perfiles, y paquetes opcionales. &lt;o:p&gt;&lt;/o:p&gt;  &lt;p style="margin-bottom: 0.0001pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0.0001pt;"&gt;Las configuraciones son las especificaciones que detallan una máquina virtual y un sistema bajo de APIs que se pueda utilizar con cierta clase del dispositivo. Una configuración, por ejemplo, se pudo diseñar para los dispositivos que tienen menos de 512 KB de memoria y de una conexión de red intermitente. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt;"&gt;La máquina virtual es una Java Virtual Machine(según lo descrito en la especificación) o un cierto subconjunto del JVM. El sistema de APIs es acostumbradamente un subconjunto del J2SE APIs. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt;"&gt;Las estructuras de un perfil en una configuración pero agregan un APIs más específico para hacer un ambiente completo para los usos. Mientras que una configuración describe un JVM y un sistema básico de APIs, por sí mismo no especifica bastante detalle para permitirle construir usos completos. Los perfiles incluyen generalmente APIs para el ciclo vital de uso, el interfaz , y el almacenaje persistente. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt;"&gt;Un paquete opcional proporciona la funcionalidad que no se puede asociar a una configuración o a un perfil específica. Un ejemplo de un paquete opcional es el Bluetooth API (JSR 82), que proporciona un API estandardizado para usar el establecimiento de una red de Bluetooth. Este paquete opcional se podía poner en ejecución junto a virtualmente cualquier combinación de configuraciones y de perfiles.&lt;/p&gt;&lt;p style="margin-bottom: 0.0001pt;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/385/474/1600/j2meroadmap.0.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/385/474/400/j2meroadmap.0.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0.0001pt;"&gt;&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113009102094155038?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113009102094155038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113009102094155038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113009102094155038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113009102094155038'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/12/introduccin-la-tecnologa-movil-de-java.html' title='Introducción a la tecnología movil de java, J2ME'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113123666278445451</id><published>2005-12-08T14:23:00.000-08:00</published><updated>2005-12-08T06:52:10.073-08:00</updated><title type='text'>Reportes con JasperReports y Webwork</title><content type='html'>En mi projecto de campusip utilizo Webwork como framework para la web. Ahora necesito crear unos reportes (comencé con lo más sencillo :-). Lo bueno de usar Webwork  es que ya viene integrado el JasperReport y por lo tanto sencillo de utilizar. Los reportes jasper son simples xml (o si como no simples :-) los cuales se compilan y se llenan de una fuente de datos.&lt;br /&gt;&lt;br /&gt;Primero solo crea un clase que herede de ActionSupport y que por supuesto implemente un DAO para el acceso a los datos (Esto es a tu manera). Recuerda crear una instancia de tipo colección como: List, ArrayList, etc. la cual será utilizada para llenar el reporte. ver código.&lt;br /&gt;&lt;br /&gt;Segundo creas una entrada en el xwork.xml del .action, debes pasarle tres parametros: format, datasource y location. ver código. Tendrás que crear una entrada de .action por cada formato que desees el reporte. (&lt;span class="desc"&gt;PDF, HTML, XLS, CSV y XML&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;Tercero diseña el reporte por supuesto (puedes utilizar unas de varias herramientas gráficas que existen) utilizando IReport o JasperAssistant, para diseñar un lindo reporte :-), no tengo que decir que ahi que compilar el reporte. (tu eliges el método, yo prefiero con ant) .&lt;br /&gt;&lt;br /&gt;Cuarto probarlo para ver si funciona y claro que funciona :-P&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;package net.sf.campusip.web.webwork.action.beca;&lt;br /&gt;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;import java.util.List;&lt;br /&gt;&lt;br /&gt;import com.opensymphony.xwork.Preparable;&lt;br /&gt;&lt;br /&gt;import net.sf.campusip.domain.personas.Beca;&lt;br /&gt;import net.sf.campusip.web.webwork.action.AbstractAction;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* @author vns&lt;br /&gt;*&lt;br /&gt;*/&lt;br /&gt;public class PrintBecasReport extends AbstractAction implements Preparable {&lt;br /&gt;private List becas = new ArrayList();&lt;br /&gt;    &lt;br /&gt;/**&lt;br /&gt; *&lt;br /&gt; */&lt;br /&gt;public PrintBecasReport() {&lt;br /&gt;    super();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public Object getModel() {&lt;br /&gt;    return this.becas;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* (non-Javadoc)&lt;br /&gt; * @see com.opensymphony.xwork.Preparable#prepare()&lt;br /&gt; */&lt;br /&gt;public void prepare() throws Exception {&lt;br /&gt;    becas = jcolegio.getAll(Beca.class);    &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * @return Returns the becas.&lt;br /&gt; */&lt;br /&gt;public List getBecas() {&lt;br /&gt;    return becas;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;========================&lt;br /&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt;&lt; name="reportbecas-pdf" class="net.sf.campusip.web.webwork.action.beca.PrintBecasReport"&gt;&lt;br /&gt;        &lt; name="success" type="jasper"&gt;&lt;br /&gt;        &lt; name="location"&gt;/mantenimiento/beca/becas_report.jasper&lt;br /&gt;        &lt; name="dataSource"&gt; becas&lt;br /&gt;        &lt; name="format"&gt; PDF&lt;br /&gt;       &lt;br /&gt;   &lt;br /&gt;==========================&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jasperreports.sourceforge.net/"&gt;http://jasperreports.sourceforge.net/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113123666278445451?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113123666278445451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113123666278445451' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113123666278445451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113123666278445451'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/12/reportes-con-jasperreports-y-webwork.html' title='Reportes con JasperReports y Webwork'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113147033730361940</id><published>2005-12-08T08:18:00.000-08:00</published><updated>2005-12-08T03:18:00.736-08:00</updated><title type='text'>Diseño de clases de Campusip</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/385/474/1600/ClassDiagram_ip.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/385/474/320/ClassDiagram_ip.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Este es el diagrama de clases del proyecto Campusip&lt;br /&gt;&lt;a href="https://sourceforge.net/projects/campusip/"&gt;https://sourceforge.net/projects/campusip/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Campusip es un software de administración de politécnicos de la República Dominicana. Y si quieren aportar  este es un proyecto open source, la ayuda es bien recibida.&lt;br /&gt;&lt;br /&gt;Este es un diseño para un caso particular pero puede ser modificado para ser usado en cualquier caso.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113147033730361940?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113147033730361940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113147033730361940' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113147033730361940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113147033730361940'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/12/diseo-de-clases-de-campusip.html' title='Diseño de clases de Campusip'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113310805671281733</id><published>2005-12-08T07:39:00.000-08:00</published><updated>2005-12-08T03:17:30.583-08:00</updated><title type='text'>Diseño de reportes con JasperReport</title><content type='html'>&lt;p class="MsoNormal"&gt;Ahora que estoy comenzado a utilizar JasperReport para la creación de mis reportes, busquando un tutorial en la web, me tope con este &lt;a href="http://www.devx.com/Java/Article/29309/0/page/1"&gt;tutorial&lt;/a&gt;. Es excelente porque también necesitaba una herramienta que fuese gráfica entonces iReport fue el que elegí, pero también existen otras herramientas gráficas.&lt;br /&gt;&lt;br /&gt;Este trata todo los temas básicos para quien esta comenzado (como yo) a utilizar iReport para crear reportes en JasperReport. Realmente no es tan avanzado pero me ayudo en mis primeros pasos. Tampoco es que sea complicado.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113310805671281733?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113310805671281733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113310805671281733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113310805671281733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113310805671281733'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/12/diseo-de-reportes-con-jasperreport.html' title='Diseño de reportes con JasperReport'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113386356534620445</id><published>2005-12-06T02:04:00.000-08:00</published><updated>2005-12-06T02:06:39.970-08:00</updated><title type='text'>Windows OneCare Live</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.diarioti.com/gate/n.php?id=10099"&gt;Microsoft ha iniciado las pruebas beta de su próximo paquete de seguridad, Windows OneCare Live. El paquete de aplicaciones no funciona a menos que el usuario desinstale los programas de seguridad de otros fabricantes.&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;Y luego no me pregunten por que critico a Microsoft y sus politicas&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113386356534620445?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113386356534620445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113386356534620445' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113386356534620445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113386356534620445'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/12/windows-onecare-live.html' title='Windows OneCare Live'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113310072021381153</id><published>2005-11-27T05:06:00.000-08:00</published><updated>2005-11-27T06:12:00.266-08:00</updated><title type='text'>programar para el nuevo procesador Cell</title><content type='html'>En &lt;a href="http://www-128.ibm.com/developerworks/power/library/pa-fpfunleashing/?ca=dgr-lnxw01CellUnleash"&gt;developerworks&lt;/a&gt; hay un articulo sobre como programar para el nuevo procesador Cell de IBM,&lt;br /&gt;espero que lo disfruten.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113310072021381153?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113310072021381153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113310072021381153' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113310072021381153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113310072021381153'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/11/programar-para-el-nuevo-procesador.html' title='programar para el nuevo procesador Cell'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-112916572705940176</id><published>2005-11-26T18:08:00.000-08:00</published><updated>2005-11-26T12:39:02.586-08:00</updated><title type='text'>Sobre JavaWebStart</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/385/474/1600/jaws.flowchart.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/385/474/400/jaws.flowchart.jpg" alt="" border="0" /&gt;&lt;/a&gt;Si de java también, otra tecnología&lt;br /&gt;&lt;br /&gt;Es un lanzador de aplicaciones via un navegador web. Creo que el grafico es muy explicito.&lt;br /&gt;&lt;br /&gt;ventajas:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;control de versiones y actulizacion automatica de la aplicación transparente al usuario&lt;/li&gt;&lt;li&gt;independiente de navegador&lt;/li&gt;&lt;li&gt;independiente de sistema operativo&lt;/li&gt;&lt;li&gt;firma de código&lt;/li&gt;&lt;li&gt;agrega caracteristicas de las que disfrutanlos applets como: seguridad, etc.&lt;/li&gt;&lt;/ul&gt;Desventajas: tener un JRE mayor a 1.2 ( no creo que sea un problema pues es una aplicación de java :-)&lt;br /&gt;&lt;br /&gt;para más información:&lt;br /&gt;&lt;a href="http://java.sun.com/products/javawebstart/"&gt;http://java.sun.com/products/javawebstart/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;también este artículo:&lt;br /&gt;&lt;a href="http://www.javahispano.org/articles.article.action?id=65"&gt;http://www.javahispano.org/article&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-112916572705940176?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/112916572705940176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=112916572705940176' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112916572705940176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112916572705940176'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/11/sobre-javawebstart.html' title='Sobre JavaWebStart'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113183112866404311</id><published>2005-11-13T13:25:00.000-08:00</published><updated>2005-11-13T10:18:52.010-08:00</updated><title type='text'>Hacer build más rápidos con ant</title><content type='html'>Encontre un buen &lt;a href="http://www.javaworld.com/javaworld/jw-11-2005/jw-1107-build_p.html"&gt;artículo&lt;/a&gt;  sobre como optimizar los build con ant.&lt;br /&gt;&lt;br /&gt;Es importante optimizar los build porque aumentan la productividad en el desarrollo y más cuando el proyecto es pesado y complejo es cuanto más se necesita.&lt;br /&gt;&lt;br /&gt;Aunque ya utilizaba algunas de estas técnicas, como usar jikes en las compilaciones se obtiene un redimento muy alto, por ejemplo  en  un proyecto que  tengo, estaba con &lt;span style="font-style: italic;"&gt;javac  &lt;/span&gt;y se tardaba en compilar en casi &lt;span style="font-weight: bold;"&gt;3&lt;/span&gt; minutos y con &lt;span style="font-style: italic;"&gt;jikes &lt;/span&gt;se tarda casi &lt;span style="font-weight: bold;"&gt;1:15&lt;/span&gt; ;-)&lt;span style="font-style: italic;"&gt; se nota la diferencia. (tengo 118 clases en el projecto, más las que vendrán :-)&lt;br /&gt;&lt;br /&gt;Claro que esto es más obvio cuando se utiliza &lt;/span&gt;&lt;span style=";font-family:verdana,arial,helvetica;font-size:85%;"  &gt;&lt;span style="font-size:78%;"&gt;&lt;strong&gt;&lt;a href="http://www.martinfowler.com/articles/continuousIntegration.html"&gt;&lt;span style="font-size:100%;"&gt; Continuous integration&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;Y bueno lo que queremos siempre es lograr un mejor tiempo para aumentar la productividad cuando se trata de tareas repetitivas.&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113183112866404311?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113183112866404311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113183112866404311' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113183112866404311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113183112866404311'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/11/hacer-build-ms-rpidos-con-ant.html' title='Hacer build más rápidos con ant'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113141663053067648</id><published>2005-11-08T18:22:00.000-08:00</published><updated>2005-11-08T09:05:15.356-08:00</updated><title type='text'>Java Studio Creator 2 Gratis!!!!!!!!! :-D</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;span style="font-family:Arial;"&gt;Sun está dando gratis por una promoción el Sun Java Studio Creador, que entre otras cosas permite desarrollar aplicaciones JSF.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;span style="font-family:Arial;"&gt;Solo se debe estar registrado (SDLC) en el sitio de Sun y una vez que hagan la descarga les mandarán por mail la licencia para iniciar el IDE&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Aprovechen esta oferta&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.netbeans.org/community/articles/creator_promo.html"&gt;http://www.netbeans.org/community/articles/creator_promo.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113141663053067648?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113141663053067648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113141663053067648' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113141663053067648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113141663053067648'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/11/java-studio-creator-2-gratis-d.html' title='Java Studio Creator 2 Gratis!!!!!!!!! :-D'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-112916557917164794</id><published>2005-11-08T18:05:00.000-08:00</published><updated>2005-11-08T09:05:34.933-08:00</updated><title type='text'>Sobre JavaMail</title><content type='html'>JavaMail es el api para el desarrollo de tus aplicaciones, utilizando unos de los servicos más utilizados del internet el CORREO. Encontre un buen &lt;a href="http://www.javahispano.org/articles.article.action?id=69"&gt;artículo &lt;/a&gt;el cual vale la pena leer si se quiere empezar a programar con esta api en tus projectos. Este &lt;a href="http://www.javahispano.org/articles.article.action?id=69"&gt;artículo&lt;/a&gt;  esta dividido en dos:&lt;br /&gt;la primera parte es dedicada a la recuperación ( por medio de pop3) de email y la segunda al envio de email mediante smtp.&lt;br /&gt;&lt;br /&gt;Realmente encuentro el artículo muy completo para ser un intro.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-112916557917164794?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/112916557917164794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=112916557917164794' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112916557917164794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112916557917164794'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/11/sobre-javamail.html' title='Sobre JavaMail'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113123990611607378</id><published>2005-11-08T17:12:00.000-08:00</published><updated>2005-11-08T09:06:17.110-08:00</updated><title type='text'>Desarrolla con reglas</title><content type='html'>Estas son reglas interpretadas a mi manera de un artículo que encontré:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Entiende y acepta que tendrás errores &lt;/li&gt;    &lt;li&gt;No eres tu código - cuando critiquen es a tu lenguaje o programa no es a ti (por lo menos ;-)&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;NO importa cuanto karate sepas, siempre habrá alguien que sepa más&lt;/li&gt;   &lt;li&gt;No rescribas el código de otros programadores - reutilizalo BE OPEN SOURCE :-) si ya esta hecho porque hacerlo de nuevo&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;Trata a las personas que entienden menos que tu con respeto y paciencia&lt;/li&gt;   &lt;li&gt;La única constante es el cambio&lt;/li&gt;   &lt;li&gt;El mando lo obtienes usando tus conocimientos, no tu posición&lt;/li&gt;   &lt;li&gt;Pelea por lo que creas pero acepta también las derrotas&lt;/li&gt;   &lt;li&gt;No seas el nerd del cuarto oscuro&lt;/li&gt; &lt;/ul&gt;este es el artículo  original:&lt;br /&gt;&lt;a href="http://www.maestrosdelweb.com/editorial/sinegois/"&gt;http://www.maestrosdelweb.com/editorial/sinegois/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113123990611607378?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113123990611607378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113123990611607378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113123990611607378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113123990611607378'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/11/desarrolla-con-reglas.html' title='Desarrolla con reglas'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113130917086557520</id><published>2005-11-08T12:32:00.000-08:00</published><updated>2005-11-08T09:06:28.516-08:00</updated><title type='text'>Probando Firefox 1.5rc1</title><content type='html'>Baje la version 1.5rc1 de Firefox y esta estupenda, principalmente porque tiene una caracteristica que siempre quise desde el inicio, hacer drag and drop con los TAB :-D para poder ordenalos a mi manera.&lt;br /&gt;&lt;br /&gt;Tiene un manejo de error más amigable para los usuario:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/385/474/1600/errordeconexion.0.png"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/385/474/320/errordeconexion.0.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Además tiene actulización automática. Y nuevas mejoras de rendimiento. Chequeen el site&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mozilla.org/products/firefox/releases/1.5.html#new"&gt;http://www.mozilla.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113130917086557520?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113130917086557520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113130917086557520' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113130917086557520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113130917086557520'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/11/probando-firefox-15rc1.html' title='Probando Firefox 1.5rc1'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113130825277029316</id><published>2005-11-08T12:17:00.000-08:00</published><updated>2005-11-08T09:06:46.873-08:00</updated><title type='text'>El proyecto Looking Glass</title><content type='html'>Desde la ultima vez que probe Looking glass (ya hace un año), decidi entrar al site para ver las cosas nueva, y vaya que si hay cosas nuevas.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Primero: Ahi una version para windows :-( una escusa menos para cambiar a linux )&lt;/li&gt;   &lt;li&gt;Segundo: Hay un LIVE CD, esto es bueno para dar en las presentaciones demostraciones de la capacidades del software.&lt;/li&gt;   &lt;li&gt;Tercero: Obviamente el software esta más estable por el desarrollo rápido y acelerado que tiene el team :-D.&lt;/li&gt;&lt;li&gt;La lista de software compatible es más grande&lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://lg3d-core.dev.java.net/"&gt;https://lg3d-core.dev.java.net/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113130825277029316?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113130825277029316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113130825277029316' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113130825277029316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113130825277029316'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/11/el-proyecto-looking-glass.html' title='El proyecto Looking Glass'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113130686984389968</id><published>2005-11-08T11:53:00.000-08:00</published><updated>2005-11-08T09:07:35.420-08:00</updated><title type='text'>Consigue un CD  gratis de Netbeans</title><content type='html'>Mirando en el site de netbeans encontré , que estan dando un CD gratis (te lo envian también gratis ;-) Viendo lo que tenia que hacer: solo tener que registrarme en SDN (ya estaba resgistrado desde hace un tiempo :-) y bueno llenar el form.&lt;br /&gt;&lt;br /&gt;Que contiene el CD:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;NetBeans IDE 4.1 &lt;/li&gt;   &lt;li&gt;J2EE Application Server 8.1 PE Bundle&lt;/li&gt;   &lt;li&gt;Mobility Pack 4.1&lt;/li&gt;   &lt;li&gt;NetBeans Profiler&lt;/li&gt; &lt;/ul&gt; Además de que el netbeans no lo utilizo mucho,  tiene un buen soporte de cvs (es un sarcasmo ,OK)&lt;br /&gt;&lt;br /&gt;Nota: aunque tendré que pedirlo de nuevo porque en realidad, quiero probar la version 5 que estará listo pronto, porque la verdad prefiero eclipse pero soy open main ;-)&lt;br /&gt;&lt;br /&gt;aqui esta el link: &lt;a href="http://www.netbeans.org/about/cd-form.html"&gt;http://www.netbeans.org/about/cd-form.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113130686984389968?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113130686984389968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113130686984389968' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113130686984389968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113130686984389968'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/11/consigue-un-cd-gratis-de-netbeans.html' title='Consigue un CD  gratis de Netbeans'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-112738853661003687</id><published>2005-11-05T20:28:00.000-08:00</published><updated>2005-11-06T09:40:55.350-08:00</updated><title type='text'>Libros recomendados para la lectura sin desperdicio</title><content type='html'>&lt;div style="text-align: justify;"&gt;He aqui sacado de mi librero una lista de libros, en los cuales se pueden leer sin desperdicio del tiempo, como me a pasado a veces cuando compro un libro y termino dejándolo en el primer capitulo, porque no lleno mis expectativas.&lt;br /&gt;&lt;br /&gt;Espero que lo disfruten como yo lo hice. Pero antes tendrán que ver mi opinión de cada uno, porque tal vez les sirva para decidir si desea leer o no, un libro determinado en la lista. Los libros pueden estar en ingles o en español (mayormente en ingles). No tienen ningun orden en particular.&lt;br /&gt;&lt;br /&gt;&lt;b class="sans"&gt;Java Open Source Programming: with XDoclet, JUnit, WebWork, Hibernate (Paperback)&lt;/b&gt;&lt;br /&gt;by  &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Joseph%20%20Walnes&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/002-2839197-5443225"&gt;Joseph  Walnes&lt;/a&gt;, &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Ara%20%20Abrahamian&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/002-2839197-5443225"&gt;Ara  Abrahamian&lt;/a&gt;, &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Mike%20%20Cannon-Brookes&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/002-2839197-5443225"&gt;Mike  Cannon-Brookes&lt;/a&gt;, &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Patrick%20A.%20%20Lightbody&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/002-2839197-5443225"&gt;Patrick A.  Lightbody&lt;/a&gt;      &lt;span class="tiny"&gt;&lt;/span&gt;&lt;br /&gt;Unos de los mejores, lo recomiendo pero tienes que tener conocimiento y experiencia en programación con java en la web (como minimo saber de servlet y jsp) y por supuesto de todo lo que implique una aplicación en la web. Esta escrito por los lideres de los proyectos que estan en el título.&lt;br /&gt;&lt;br /&gt;&lt;b class="sans"&gt;A Programmer's Guide to Java Certification: A Comprehesive Primer, Second Edition (Paperback)&lt;/b&gt;&lt;br /&gt;by  &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Khalid%20Mughal&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Khalid Mughal&lt;/a&gt;, &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Rolf%20Rasmussen&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Rolf Rasmussen&lt;/a&gt;&lt;br /&gt;Es el mejor libro si quieres aprender el lenguaje (y certificarte si lo deseas ;-), aqui aprendes el lenguaje por completo, no como en esos tutoriales mediocres ;-) claro requiere un minimo de conocimiento de computación. Este es muy básico solo es el lenguaje, aqui no aprendes ha hacer una aplicación.&lt;br /&gt;&lt;br /&gt;&lt;b class="sans"&gt;SCWCD Exam Study Kit Second Edition : Java Web Component Developer Certification (Paperback)&lt;/b&gt;&lt;br /&gt;by  &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Hanumant%20Deshmukh&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Hanumant Deshmukh&lt;/a&gt;, &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Jignesh%20Malavia&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Jignesh Malavia&lt;/a&gt;, &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Matthew%20Scarpino&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Matthew Scarpino&lt;/a&gt;&lt;br /&gt;Este no lo he leido pero le he dado una hojeada y además es uno de los más recomendados en Amazon. Sólo lo tengo para refencia (Y para la certificación también ;-) pero es muy completo para buscar información sobre las dos tecnologías web más usadas de java JSP y Servlet.&lt;br /&gt;&lt;br /&gt;&lt;b class="sans"&gt;Aprendiendo C++ Para Linux En 21 Dias - Con CD ROM (Paperback)&lt;/b&gt;&lt;br /&gt;by  &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Jesse%20Liberty&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Jesse Liberty&lt;/a&gt;&lt;br /&gt;Buenisimo, con decir que aprendi la verdadera POO con este libro. Es un libro que debería tener un programador en su biblio.&lt;br /&gt;&lt;br /&gt;&lt;b class="sans"&gt;MDA Explained: The Model Driven Architecture--Practice and Promise (Paperback)&lt;/b&gt;&lt;br /&gt;by  &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Anneke%20Kleppe&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Anneke Kleppe&lt;/a&gt;, &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Jos%20Warmer&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Jos Warmer&lt;/a&gt;, &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Wim%20Bast&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Wim Bast&lt;/a&gt;&lt;br /&gt;Este es muy bueno si quiere actulizarte (que deberías) en el mundo de la ingeniería de software.&lt;br /&gt;Es corto y lo trata un tema MDA que pretende ser el proximo para en el desarrollo de software de una manera más continua e integra, facilitandole la vida a los ingenieros.&lt;br /&gt;&lt;br /&gt;&lt;b class="sans"&gt;Practical PostgreSQL (O'Reilly Unix) (Paperback)&lt;/b&gt;&lt;br /&gt;by  &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Command%20Prompt%20Inc&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Command Prompt Inc&lt;/a&gt; (Editor), &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=John%20C.%20Worsley&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;John C. Worsley&lt;/a&gt;, &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Joshua%20D.%20Drake&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Joshua D. Drake&lt;/a&gt;&lt;br /&gt;Este es un libro básicos si quiere programar utilizando esta base de datos. Escrito por los lideres del este mismo proyecto.&lt;br /&gt;&lt;br /&gt;&lt;b class="sans"&gt;Core J2EE Patterns: Best Practices and Design Strategies, Second Edition (Hardcover)&lt;/b&gt;&lt;br /&gt;by  &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Deepak%20Alur&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Deepak Alur&lt;/a&gt;, &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Dan%20Malks&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Dan Malks&lt;/a&gt;, &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=John%20Crupi&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;John Crupi&lt;/a&gt;&lt;br /&gt;Este es un libro de referencia que no debe faltar en tu biblio (si programas para J2EE), se describen los patrones utilizados en J2EE para cada una de sus tecnologías.&lt;br /&gt;&lt;br /&gt;&lt;b class="sans"&gt;Apache: The Definitive Guide (3rd Edition) (Paperback)&lt;/b&gt;&lt;br /&gt;by  &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Ben%20Laurie&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Ben Laurie&lt;/a&gt;, &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Peter%20Laurie&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Peter Laurie&lt;/a&gt;&lt;br /&gt;Este es un libro básicos si quiere programar utilizando este web server.&lt;br /&gt;&lt;br /&gt;&lt;b class="sans"&gt;Core JavaServer Faces (Sun Microsystems Press Java Series) (Paperback)&lt;/b&gt;&lt;br /&gt;by  &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=David%20Geary&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;David Geary&lt;/a&gt;, &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Cay%20Horstmann&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Cay Horstmann&lt;/a&gt;&lt;br /&gt;Este libro es una recomendación para leerlo (porque no lo he leido), pero lo tengo en espera. JSF es el nuevo framework de desallorro en java para la web. Pero su aceptación es muy cautelosa puesto que es un framework basado en componentes manejado por eventos (como ASP.net). Por eso rompe con las técnicas de desarrollo de los programadores de java (que son muy buenas ;-) este framework se adapta al desarrollo de ventana (utilizado en visual studio .net) de una manera visual (demasiado diría yo ). Bueno pero hay que leerlo ;-)&lt;br /&gt;&lt;br /&gt;&lt;b class="sans"&gt;Hibernate in Action (In Action series) (Paperback)&lt;/b&gt;&lt;br /&gt;by  &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Christian%20Bauer&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Christian Bauer&lt;/a&gt;, &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Gavin%20King&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Gavin King&lt;/a&gt;&lt;br /&gt;Si deseas conocer o programar con este maravilloso framework, este es una lectura obligatoria.&lt;br /&gt;Hibernate es cada vez más usado y lo recomiendo para cualquier proyecto.&lt;br /&gt;&lt;br /&gt;&lt;b class="sans"&gt;Don't Make Me Think: A Common Sense Approach to Web Usability (Paperback)&lt;/b&gt;&lt;br /&gt;by  &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Steve%20Krug&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Steve Krug&lt;/a&gt;&lt;br /&gt;Si programas aplicaciones web, cualquiera que se a tu lenguaje, este libro es básico si quiere trabajar con un alto grado de profesionalismo utilizando las técnicas adecuadas para la usabilidad de tu web sites. Es una lectura obligatoria y es un libro corto&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;WebWork in Action (Paperback)&lt;/span&gt;&lt;br /&gt;by  &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Jason%20Carreira&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Jason Carreira&lt;/a&gt;, &lt;a href="http://www.amazon.com/exec/obidos/search-handle-url/index=books&amp;field-author-exact=Patrick%20Lightbody&amp;amp;rank=-relevance%2C%2Bavailability%2C-daterank/104-1695007-9487907"&gt;Patrick Lightbody&lt;/a&gt;&lt;br /&gt;Este es un libro básicos si quiere programar utilizando este framework para aplicaciones web. Escrito por los lideres del este mismo proyecto. Recomiendo este framework.&lt;br /&gt;&lt;br /&gt;No existe mejor manera de aprender que practicar lo aprendido :-D ( frase mia ;-) )&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-112738853661003687?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/112738853661003687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=112738853661003687' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112738853661003687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112738853661003687'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/11/libros-recomendados-para-la-lectura.html' title='Libros recomendados para la lectura sin desperdicio'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113116123797295946</id><published>2005-11-05T20:26:00.000-08:00</published><updated>2005-11-07T04:49:38.866-08:00</updated><title type='text'>Programación con multiagentes</title><content type='html'>&lt;p&gt;Según wikipedia:&lt;/p&gt; &lt;p&gt;&lt;br /&gt;El dominio del &lt;b&gt;sistema multiagente&lt;/b&gt; o de &lt;a href="http://es.wikipedia.org/wiki/Inteligencia_artificial" title="Inteligencia artificial"&gt;inteligencia artificial&lt;/a&gt; distribuida es una &lt;a href="http://es.wikipedia.org/wiki/Ciencia" title="Ciencia"&gt;ciencia&lt;/a&gt; y una &lt;a href="http://es.wikipedia.org/wiki/T%C3%A9cnica" title="Técnica"&gt;técnica&lt;/a&gt; que trata con los sistemas de &lt;a href="http://es.wikipedia.org/wiki/Inteligencia_artificial" title="Inteligencia artificial"&gt;inteligencia artificial&lt;/a&gt; en &lt;a href="http://es.wikipedia.org/wiki/Red" title="Red"&gt;red&lt;/a&gt;.&lt;/p&gt;   &lt;p&gt;El bloque fundamental de construcción de un sistema multiagente, como es de esperarse, son los &lt;i&gt;agentes&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;Aunque no existe una definición formal y precisa de lo que es un agente, éstos son por lo general vistos como entidades &lt;i&gt;inteligentes&lt;/i&gt;, equivalentes en términos computacionales a un &lt;a href="http://es.wikipedia.org/wiki/Proceso" title="Proceso"&gt;proceso&lt;/a&gt; del &lt;a href="http://es.wikipedia.org/wiki/Sistema_operativo" title="Sistema operativo"&gt;sistema operativo&lt;/a&gt;, que existen dentro de cierto contexto o ambiente, y que se pueden comunicar a través de un mecanismo de comunicación inter-proceso, usualmente un sistema de &lt;a href="http://es.wikipedia.org/wiki/Red" title="Red"&gt;red&lt;/a&gt;, utilizando &lt;a href="http://es.wikipedia.org/wiki/Protocolo" title="Protocolo"&gt;protocolos&lt;/a&gt; de comunicación.&lt;/p&gt;  &lt;p&gt;En cierto modo, un sistema multiagente es un &lt;a href="http://es.wikipedia.org/wiki/Sistema_distribuido" title="Sistema distribuido"&gt;sistema distribuido&lt;/a&gt; en el cual los nodos o elementos son sistemas de &lt;a href="http://es.wikipedia.org/wiki/Inteligencia_artificial" title="Inteligencia artificial"&gt;inteligencia artificial&lt;/a&gt;, o bien un sistema distribuido donde la conducta combinada de dichos elementos produce un resultado en conjunto &lt;i&gt;inteligente&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;Hay que notar que los agentes no son &lt;i&gt;necesariamente&lt;/i&gt; inteligentes. Existen como en todo el resto del dominio de la &lt;a href="http://es.wikipedia.org/wiki/Inteligencia_artificial" title="Inteligencia artificial"&gt;inteligencia artificial&lt;/a&gt;, dos enfoques para construir &lt;a href="http://es.wikipedia.org/wiki/Sistemas_multiagentes" title="Sistemas multiagentes"&gt;sistemas multiagentes&lt;/a&gt;:&lt;/p&gt;  &lt;ul&gt; &lt;li&gt;El enfoque &lt;a href="http://es.wikipedia.org/w/index.php?title=Formal&amp;action=edit" class="new" title="Formal"&gt;formal&lt;/a&gt; o clásico, que consiste en dotar de los agentes de de la mayor &lt;i&gt;inteligencia&lt;/i&gt; posible utilizando descripciones formales del problema a resolver y de hacer reposar el funcionamiento del sistema en tales capacidades cognitivas. Usualmente la inteligencia es definida utilizando un &lt;a href="http://es.wikipedia.org/wiki/Sistema_formal" title="Sistema formal"&gt;sistema formal&lt;/a&gt; (por ejemplo, sistemas de &lt;a href="http://es.wikipedia.org/w/index.php?title=Inferencia_l%C3%B3gica&amp;amp;action=edit" class="new" title="Inferencia lógica"&gt;inferencia lógica&lt;/a&gt;) para la descripción, raciocinio, &lt;a href="http://es.wikipedia.org/wiki/Inferencia" title="Inferencia"&gt;inferencia&lt;/a&gt; de nuevo &lt;a href="http://es.wikipedia.org/wiki/Conocimiento" title="Conocimiento"&gt;conocimiento&lt;/a&gt; y planificaciôn de acciones a realizar en el medio ambiente.&lt;/li&gt;&lt;li&gt;El enfoque constructivista, que persigue la idea de brindarle inteligencia al conjunto de todos los agentes, para que a través de mecanismos ingeniosamente elaborados de interacción, el sistema mismo genere comportamiento &lt;i&gt;inteligente&lt;/i&gt; que no necesariamente estaba planeado desde un principio o definido dentro de los agentes mismos (que pueden ser realmente simples). Este tipo de conducta es habitualmente llamado &lt;a href="http://es.wikipedia.org/wiki/Emergencia" title="Emergencia"&gt;emergencia&lt;/a&gt; de comportamiento.&lt;/li&gt; &lt;/ul&gt;  &lt;div class="editsection" style="float: right; margin-left: 5px;"&gt;&lt;br /&gt;&lt;/div&gt;  &lt;p&gt;&lt;a name="Desarrollo_orientado_a_agentes" id="Desarrollo_orientado_a_agentes"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;Desarrollo orientado a agentes&lt;/h2&gt;  &lt;p&gt;Como casi todo enfoque informático para la solución de problemas, los &lt;i&gt;sistemas multiagentes&lt;/i&gt; proponen ayudas metodológicas de &lt;a href="http://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software" title="Ingeniería de software"&gt;ingeniería de software&lt;/a&gt;, en este caso metodologías de &lt;i&gt;ingeniería del software orientada a agentes&lt;/i&gt; (en inglés AOSE) y notaciones. Es decir, artefactos de desarrollo que son específicamente concebidos para crear sistemas basados en agentes.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113116123797295946?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113116123797295946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113116123797295946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113116123797295946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113116123797295946'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/11/programacin-con-multiagentes.html' title='Programación con multiagentes'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113029522444966832</id><published>2005-11-05T19:53:00.000-08:00</published><updated>2005-11-05T15:05:33.176-08:00</updated><title type='text'>Ontología y Web Semántica</title><content type='html'>Un avance para la informática como lo fue el WWW y lo más impresinante es que las dos tecnologías fueron ideas del mismo y único &lt;a href="http://es.wikipedia.org/wiki/Tim_Berners-Lee" title="Tim Berners-Lee"&gt;Tim Berners-Lee&lt;/a&gt;. Un físico (cada día me convenso de que la innovación no proviene una compañia X).&lt;br /&gt;&lt;br /&gt;El uso de la ontología es ideal para el desarrollo de buscadores (Si como Google o mejor ;-), para completar esta tecnología (si le puede llamar así) ya esta incluida en el area de inteligencia artificial por lo que si programas para esto, ya estas trabajando con temas de inteligencia artificial.&lt;br /&gt;&lt;br /&gt;Según wikipedia:&lt;br /&gt;&lt;p&gt;El término &lt;b&gt;&lt;a href="http://es.wikipedia.org/wiki/Ontolog%C3%ADa" title="Ontología"&gt;ontología&lt;/a&gt;&lt;/b&gt; en &lt;a href="http://es.wikipedia.org/wiki/Inform%C3%A1tica" title="Informática"&gt;informática&lt;/a&gt; hace referencia al intento de formular un exhaustivo y riguroso &lt;a href="http://es.wikipedia.org/w/index.php?title=Esquema_conceptual&amp;action=edit" class="new" title="Esquema conceptual"&gt;esquema conceptual&lt;/a&gt; dentro de un dominio dado, con la finalidad de facilitar la comunicación y la compartición de la información entre diferentes sistemas. Esta es la diferencia con, aunque toma su nombre de una analogía con, el significado filosófico de la palabra &lt;a href="http://es.wikipedia.org/wiki/Ontolog%C3%ADa" title="Ontología"&gt;ontología&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Un uso común tecnológico actual del concepto de ontología, en este sentido, lo encontramos en la &lt;a href="http://es.wikipedia.org/wiki/Inteligencia_artificial" title="Inteligencia artificial"&gt;inteligencia artificial&lt;/a&gt; y la &lt;a href="http://es.wikipedia.org/w/index.php?title=Representaci%C3%B3n_del_conocimiento&amp;amp;action=edit" class="new" title="Representación del conocimiento"&gt;representación del conocimiento&lt;/a&gt;. En algunas aplicaciones, se combinan varios &lt;a href="http://es.wikipedia.org/w/index.php?title=Esquema&amp;action=edit" class="new" title="Esquema"&gt;esquemas&lt;/a&gt; en una estructura &lt;b&gt;de facto&lt;/b&gt; completa de datos, que contiene todas las entidades relevantes y sus relaciones dentro del dominio.&lt;/p&gt;   &lt;p&gt;Los &lt;a href="http://es.wikipedia.org/wiki/Programa" title="Programa"&gt;programas&lt;/a&gt; informáticos pueden utilizar así la ontología para una variedad de propósitos, incluyendo el &lt;a href="http://es.wikipedia.org/wiki/Razonamiento_inductivo" title="Razonamiento inductivo"&gt;razonamiento inductivo&lt;/a&gt;, la &lt;a href="http://es.wikipedia.org/wiki/Clasificaci%C3%B3n" title="Clasificación"&gt;clasificación&lt;/a&gt;, y una variedad de técnicas de &lt;a href="http://es.wikipedia.org/w/index.php?title=Resoluci%C3%B3n_de_problemas&amp;amp;action=edit" class="new" title="Resolución de problemas"&gt;resolución de problemas&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Típicamente, las ontologías en los &lt;a href="http://es.wikipedia.org/wiki/Ordenador" title="Ordenador"&gt;ordenadores&lt;/a&gt; se relacionan estrechamente con vocabularios fijos --una &lt;a href="http://es.wikipedia.org/w/index.php?title=Ontolog%C3%ADa_de_fundacional&amp;action=edit" class="new" title="Ontología de fundacional"&gt;ontología de fundacional&lt;/a&gt; -- con cuyos términos debe ser descrito todo lo demás. Debido a que esto puede ocasionar representaciones pobres para ciertos &lt;a href="http://es.wikipedia.org/w/index.php?title=Dominios_de_problema&amp;amp;action=edit" class="new" title="Dominios de problema"&gt;dominios de problemas&lt;/a&gt;, se deben crear esquemas más especializados para convertir en útiles los datos a la hora de tomar decisiones en el mundo real.&lt;/p&gt;  &lt;p&gt;Dichas ontologías son valorables comercialmente, creandose competencia para definirlas. &lt;a href="http://es.wikipedia.org/w/index.php?title=Peter_Murray-Rust&amp;action=edit" class="new" title="Peter Murray-Rust"&gt;Peter Murray-Rust&lt;/a&gt; se ha quejado de que esto conduce a "una guerra semántica y ontológica debido a la competencia entre estándares". Por consiguiente, cualquier estándar de ontología fundacional es posible que sea contestado por los agentes políticos o comerciales , cada uno con su propia idea de 'lo que existe' (en el sentido filosófico de &lt;a href="http://es.wikipedia.org/wiki/Ontolog%C3%ADa" title="Ontología"&gt;ontología&lt;/a&gt;).&lt;/p&gt;&lt;br /&gt;La &lt;b&gt;Web &lt;a href="http://es.wikipedia.org/wiki/Sem%C3%A1ntica" title="Semántica"&gt;semántica&lt;/a&gt;&lt;/b&gt; tiene como objetivo crear un medio universal para el intercambio de información basado en representaciones del significado de los recursos de la Web, de una manera inteligible para las máquinas. Con ello se pretende ampliar la interoperabilidad entre los sistemas informáticos y reducir la mediación de operadores humanos en los procesos inteligentes de flujo de información. El precursor de la idea, &lt;a href="http://es.wikipedia.org/wiki/Tim_Berners-Lee" title="Tim Berners-Lee"&gt;Tim Berners-Lee&lt;/a&gt; miembro fundador del &lt;a href="http://es.wikipedia.org/wiki/W3C" title="W3C"&gt;W3C&lt;/a&gt;, se esfuerza en que su propuesta de la Web semántica sirva para ampliar la capacidad de la &lt;a href="http://es.wikipedia.org/wiki/World_Wide_Web" title="World Wide Web"&gt;World Wide Web&lt;/a&gt; mediante &lt;a href="http://es.wikipedia.org/wiki/Est%C3%A1ndar" title="Estándar"&gt;estándares&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/Lenguaje_de_marcado" title="Lenguaje de marcado"&gt;lenguajes de marcado&lt;/a&gt; y otras herramientas aplicables a su tratamiento.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Componentes de la Web Semántica&lt;/h2&gt;  &lt;p&gt;Los principales componentes de la Web Semántica son los &lt;a href="http://es.wikipedia.org/w/index.php?title=Metalenguajes&amp;amp;action=edit" class="new" title="Metalenguajes"&gt;metalenguajes&lt;/a&gt; y estándares de representación &lt;a href="http://es.wikipedia.org/wiki/XML" title="XML"&gt;XML&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/w/index.php?title=XML_Schema&amp;action=edit" class="new" title="XML Schema"&gt;XML Schema&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/Marco_de_Descripci%C3%B3n_de_Recursos" title="Marco de Descripción de Recursos"&gt;RDF&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/w/index.php?title=RDF_Schema&amp;amp;action=edit" class="new" title="RDF Schema"&gt;RDF Schema&lt;/a&gt; y &lt;a href="http://es.wikipedia.org/wiki/OWL" title="OWL"&gt;OWL&lt;/a&gt;. La &lt;a href="http://www.w3.org/TR/owl-features/" class="external text" title="http://www.w3.org/TR/owl-features/" rel="nofollow"&gt;OWL &lt;i&gt;Web Ontology Language Overview&lt;/i&gt;&lt;/a&gt; describe la función y relación de cada uno de estos componentes de la Web Semántica:&lt;/p&gt;  &lt;ul&gt; &lt;li&gt;&lt;a href="http://es.wikipedia.org/wiki/XML" title="XML"&gt;XML&lt;/a&gt; aporta la sintaxis superficial para los documentos estructurados, pero sin dotarles de ninguna restricción sobre el significado.&lt;/li&gt;&lt;li&gt;&lt;a href="http://es.wikipedia.org/w/index.php?title=XML_Schema&amp;action=edit" class="new" title="XML Schema"&gt;XML Schema&lt;/a&gt; es un lenguaje para definir la estructura de los documentos XML.&lt;/li&gt;&lt;li&gt;&lt;a href="http://es.wikipedia.org/wiki/Marco_de_Descripci%C3%B3n_de_Recursos" title="Marco de Descripción de Recursos"&gt;RDF&lt;/a&gt; es un modelo de datos para los recursos y las relaciones que se puedan establecer entre ellos. Aporta una semántica básica para este modelo de datos que puede representarse mediante XML.&lt;/li&gt;&lt;li&gt;&lt;a href="http://es.wikipedia.org/w/index.php?title=RDF_Schema&amp;amp;action=edit" class="new" title="RDF Schema"&gt;RDF Schema&lt;/a&gt; es un vocabulario para describir las propiedades y las clases de los recursos RDF, con una semántica para establecer jerarquías de generalización entre dichas propiedades y clases&lt;/li&gt;&lt;li&gt;&lt;a href="http://es.wikipedia.org/wiki/OWL" title="OWL"&gt;OWL&lt;/a&gt; añade más vocabulario para describir propiedades y clases: tales como relaciones entre clases (p.ej. &lt;a href="http://es.wikipedia.org/w/index.php?title=Disjunci%C3%B3n&amp;amp;action=edit" class="new" title="Disjunción"&gt;disjunción&lt;/a&gt;), &lt;a href="http://es.wikipedia.org/wiki/Cardinalidad" title="Cardinalidad"&gt;cardinalidad&lt;/a&gt; (por ejemplo "únicamente uno"), igualdad, tipologías de propiedades más complejas, caracterización de propiedades (por ejemplo simetría) o clases enumeradas.&lt;/li&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113029522444966832?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113029522444966832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113029522444966832' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113029522444966832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113029522444966832'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/11/ontologa-y-web-semntica.html' title='Ontología y Web Semántica'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113123112021176459</id><published>2005-11-05T14:49:00.000-08:00</published><updated>2005-11-11T09:09:03.103-08:00</updated><title type='text'>El padre del internet</title><content type='html'>Tim Berners Lee, increiblemente es un físico, aunque no es raro los físicos también programan :-).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://es.wikipedia.org/wiki/Tim_Berners-Lee"&gt;http://es.wikipedia.org/wiki/Tim_Berners-Lee&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;UPDATE: NOTA DE ACLARANDO dicho el padre del internet es el padre del WWW específicamente.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113123112021176459?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113123112021176459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113123112021176459' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113123112021176459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113123112021176459'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/11/el-padre-del-internet.html' title='El padre del internet'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113037980305694527</id><published>2005-10-28T19:22:00.000-07:00</published><updated>2005-10-28T09:30:30.150-07:00</updated><title type='text'>Nuevo sistema de licencias de Microsoft</title><content type='html'>Bueno, parece ser que ya comenzaron a enteder, aunque a su manera pero es un primer paso para lo que deben hacer sino quieren perder mercado, pero pienso que estan muy lentos todavia.&lt;br /&gt;&lt;br /&gt;aki esta un link sobre el tema de las nuevas licencias de desarrollo, modeladas como las licencias open source ya conocidas como la BSD, etc. Disfrutenlo ;-)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.versioncero.com/noticia/425/nuevo-sistema-de-licencias-de-microsoft"&gt;http://www.versioncero.com/noticia/425/nuevo-sistema-de-licencias-de-microsoft&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113037980305694527?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113037980305694527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113037980305694527' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113037980305694527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113037980305694527'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/10/nuevo-sistema-de-licencias-de.html' title='Nuevo sistema de licencias de Microsoft'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-112916560109188931</id><published>2005-10-24T18:06:00.000-07:00</published><updated>2005-10-25T20:15:04.526-07:00</updated><title type='text'>Sobre Ajax</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/385/474/1600/ajax-fig1_small.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/385/474/400/ajax-fig1_small.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Esta imagen describe muy bien lo que es Ajax.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Segun wikipedia:&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;AJAX&lt;/b&gt;, &lt;a href="http://es.wikipedia.org/wiki/Acr%C3%B3nimo" title="Acrónimo"&gt;acrónimo&lt;/a&gt; de &lt;b&gt;Asynchronous JavaScript And XML&lt;/b&gt; (en &lt;a href="http://es.wikipedia.org/wiki/Idioma_ingl%C3%A9s" title="Idioma inglés"&gt;inglés&lt;/a&gt; «&lt;a href="http://es.wikipedia.org/wiki/JavaScript" title="JavaScript"&gt;JavaScript&lt;/a&gt; y &lt;a href="http://es.wikipedia.org/wiki/XML" title="XML"&gt;XML&lt;/a&gt; asíncronos»). Técnica de desarrollo &lt;a href="http://es.wikipedia.org/wiki/Web" title="Web"&gt;web&lt;/a&gt; para crear aplicaciones interactivas mediante la combinación de tres tecnologías ya existentes:&lt;br /&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://es.wikipedia.org/wiki/HTML" title="HTML"&gt;HTML&lt;/a&gt; (o &lt;a href="http://es.wikipedia.org/wiki/XHTML" title="XHTML"&gt;XHTML&lt;/a&gt;) y &lt;a href="http://es.wikipedia.org/wiki/Hojas_de_Estilo_en_Cascada" title="Hojas de Estilo en Cascada"&gt;Hojas de Estilo en Cascada&lt;/a&gt; (CSS) para presentar la información;&lt;/li&gt;&lt;li&gt;&lt;a href="http://es.wikipedia.org/wiki/Document_Object_Model" title="Document Object Model"&gt;Document Object Model&lt;/a&gt; (DOM) y JavaScript, para interactuar dinámicamente con los datos, y&lt;/li&gt;&lt;li&gt;&lt;a href="http://es.wikipedia.org/wiki/XML" title="XML"&gt;XML&lt;/a&gt; y &lt;a href="http://es.wikipedia.org/wiki/XSLT" title="XSLT"&gt;XSLT&lt;/a&gt;, para intercambiar y manipular datos de manera desincronizada con un &lt;a href="http://es.wikipedia.org/wiki/Servidor_web" title="Servidor web"&gt;servidor web&lt;/a&gt; (aunque las aplicaciones AJAX pueden usar otro tipo de tecnologías, incluyendo texto plano, para realizar esta labor).&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Diferencias con las aplicaciones web tradicionales&lt;/b&gt;  &lt;p&gt;En las aplicaciones web tradicionales los usuarios interactúan mediante formularios, que al enviarse, realizan una petición al servidor web. El servidor se comporta según lo enviado en el formulario y contesta enviando una nueva página web. Se desperdicia mucho ancho de banda, ya que gran parte del HTML enviado en la segunda página web, ya estaba presente en la primera. Además, de esta manera no es posible crear aplicaciones con un grado de interacción similar al de las aplicaciones habituales.&lt;/p&gt;  &lt;p&gt;En aplicaciones &lt;strong&gt;AJAX&lt;/strong&gt; se pueden enviar peticiones al servidor web para obtener únicamente la información necesaria, empleando &lt;a href="http://es.wikipedia.org/wiki/SOAP" title="SOAP"&gt;SOAP&lt;/a&gt; o algún otro lenguaje para servicios web basado en XML, y usando JavaScript en el cliente para procesar la respuesta del servidor web. Esto redunda en una mayor interacción gracias a la reducción de información intercambiada entre servidor y cliente y a que parte del proceso de la información lo hace el propio cliente, liberando al servidor de ese trabajo.&lt;br /&gt;&lt;/p&gt; &lt;p&gt;Wikipedia&lt;br /&gt;&lt;/p&gt; &lt;p&gt;Un ejemplo de es este tipo de aplicaciones, que de seguro ya lo has probado es Gmail y también Google Maps ;-).&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-112916560109188931?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/112916560109188931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=112916560109188931' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112916560109188931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112916560109188931'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/10/sobre-ajax.html' title='Sobre Ajax'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-113009017410813472</id><published>2005-10-23T10:55:00.000-07:00</published><updated>2005-10-23T14:55:56.030-07:00</updated><title type='text'>HelloWorld en J2ME con Midlet</title><content type='html'>Este es mi primer código para celulares en J2me y por supuesto es un Helloworld. El proximo paso es hacer un juego llamado sudoku para celulares. También  he pensado en el uso de  bluetooth y de webservices con celulares( a ver como le hago).&lt;br /&gt;&lt;br /&gt;También el uso de OTA, que es para la instalación de aplicaciones en los celulares desde un servidor, la ventaja de esto es que la aplicaciones se instalan, actualizan y descargan automaticamente siendo fácilmente usable por el usuario.&lt;br /&gt;&lt;br /&gt;MovilSudoku.java&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;------------------&lt;br /&gt;package net.sf.jsudoku.movil;&lt;br /&gt;&lt;br /&gt;import javax.microedition.lcdui.*;&lt;br /&gt;import javax.microedition.midlet.*;&lt;br /&gt;&lt;br /&gt;public class MovilSudoku extends MIDlet implements CommandListener&lt;br /&gt;{&lt;br /&gt;  private Form mMainForm;&lt;br /&gt;&lt;br /&gt;public MovilSudoku()&lt;br /&gt;  {&lt;br /&gt;      mMainForm = new Form("HelloWorld with MIDlet");&lt;br /&gt;      mMainForm.append( new StringItem(null,&lt;br /&gt;              " HelloWorld with MIDlet. \n By vns java "));&lt;br /&gt;      mMainForm.addCommand( new Command("Exit", Command.EXIT, 1) );&lt;br /&gt;      mMainForm.setCommandListener( this );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;protected void startApp(  ) throws MIDletStateChangeException&lt;br /&gt;{&lt;br /&gt;      Display.getDisplay(this).setCurrent(mMainForm);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;protected void pauseApp(  )&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;protected void destroyApp( boolean p1 ) throws MIDletStateChangeException&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;  public void commandAction(Command cmd, Displayable arg1) {&lt;br /&gt;          notifyDestroyed();      &lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-113009017410813472?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/113009017410813472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=113009017410813472' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113009017410813472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/113009017410813472'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/10/helloworld-en-j2me-con-midlet.html' title='HelloWorld en J2ME con Midlet'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-112916604949468520</id><published>2005-10-22T18:08:00.000-07:00</published><updated>2006-11-01T12:55:08.605-08:00</updated><title type='text'>Como hacer un JDBC Datasources con Database Connection Pool en Tomcat y Hibernate</title><content type='html'>Durante la creación de mi projecto campusip, agregé esta caracteristica al projecto, para mejorar el rendimiento en cuanto a el manejo de session y transacciones con la base de datos (cualquiera que sea esta).&lt;br /&gt;&lt;br /&gt;Un pool de conecciones se encarga de crear y manegar las conecciones a un a base de datos determinada. la ventaja es que se recicla y se reusa las conecciones a las DB, siendo esto más eficiente que crear una nueva cada vez.  El componente utilizado aqui es Jakarta-Commons DBCP el cual hace lo que acabamos de describir.&lt;br /&gt;&lt;br /&gt;Tomcat 5.5.X ha hecho cambio de como se hace una configuración JNDI para una conección JDBC. Ya no se cambia el archivo server.xml, todos los cambios se hacen en el directorio de la webapp y se debe tomar en cuenta el nombre de la webapp. (en nuestro caso campusip)&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;Modificar web.xml, context.xml y hibernate.cfg.xml segun ejemplos dados debajo.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Instalar los driver de JDBC: se debe copiar el driver JDBC de la base de datos usada (En mi caso postgresql ) a esta dirección &lt;code&gt;$CATALINA_HOME/common/lib,&lt;span style="font-family:verdana;"&gt; &lt;span style=";font-family:verdana;font-size:100%;"  &gt;donde CATALINA_HOME es la dirección de instalacion de Tomcat. (Es un archivo *.jar )&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;    &lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;Instalar los driver de &lt;/span&gt;&lt;/span&gt;&lt;strong&gt;DBCP&lt;/strong&gt; connection pool,  &lt;span style="font-family:verdana;"&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt; entonces se  debe copiar a la  direccion &lt;/span&gt;&lt;/span&gt;&lt;code&gt;$CATALINA_HOME/common/lib/naming-factory-dbcp.jar&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;Copiar el archivo webapps/campusip/META-INF/context.xml con el nombre cambiado para %Tomcat 5.5%\conf\Catalina\localhost/campusip.xml - el archivo no sufre cambios.&lt;span style="font-family:verdana;"&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;Cualquier otra &lt;a href="http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html"&gt;ver documentación.&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;  &lt;/ol&gt; Estos procedimiento (NI pienses que lo hago manual :-D) son de manera automátizada atravez de una herramienta de la cual ya he hablado llamada Ant, utilizando el build.xml del projecto.&lt;br /&gt;&lt;br /&gt;Y ya solo es cuestión de probar la aplicación web.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;context.xml : &lt;/p&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;Context path="/campusip" docBase="campusip"&lt;br /&gt;debug="5" reloadable="true" crossContext="true"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;Resource name="jdbc/campusipDB" auth="Container" type="javax.sql.DataSource"&lt;br /&gt;driverClassName="org.postgresql.Driver"&lt;br /&gt;url="jdbc:postgresql://localhost:5432/jcolegioip"&lt;br /&gt;username="postgres" password="postgres" maxActive="20" maxIdle="10"&lt;br /&gt;maxWait="-1"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/Context&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;----&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;web.xml (solo la parte de resource ): &lt;/p&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;web-app xmlns="http://java.sun.com/xml/ns/j2ee"&lt;br /&gt;xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"&lt;br /&gt;version="2.4"&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&amp;lt;resource-ref&amp;gt;&lt;br /&gt;&amp;lt;description&amp;gt;Connection to my DB.&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;res-ref-name&amp;gt;jdbc/campusipDB&amp;lt;/res-ref-name&amp;gt;&lt;br /&gt;&amp;lt;res-type&amp;gt;javax.sql.DataSource &amp;lt;/res-type&amp;gt;&lt;br /&gt;&amp;lt;res-auth&amp;gt;Container&amp;lt;/res-auth&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/resource-ref&amp;gt;&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&amp;lt;/web-app&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;------&lt;br /&gt;&lt;br /&gt;&lt;p&gt;hibernate.cfg.xml (solo la parte de la DB):&lt;br /&gt;&lt;/p&gt; &lt;pre&gt;&lt;br /&gt;&amp;lt;session-factory&amp;gt;&lt;br /&gt;&amp;lt;property name="show_sql"&amp;gt;false&amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;property name="dialect"&amp;gt;org.hibernate.dialect.SQLServerDialect&amp;lt;/property&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;property name="connection.datasource"&amp;gt;java:/comp/env/jdbc/campusipDB&amp;lt;/property&amp;gt;&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&amp;lt;/session-factory&amp;gt;&lt;br /&gt;&amp;lt;/hibernate-configuration&amp;gt;&lt;br /&gt;&lt;/pre&gt;----&lt;br /&gt;&lt;br /&gt;Nota : Tomcat viene con un sistema de JNDI de sólo lectura. . &lt;a href="http://tomcat.apache.org/tomcat-5.5-doc/jndi-resources-howto.html"&gt;ver documentación&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-112916604949468520?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/112916604949468520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=112916604949468520' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112916604949468520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112916604949468520'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/10/como-hacer-un-jdbc-datasources-con.html' title='Como hacer un JDBC Datasources con Database Connection Pool en Tomcat y Hibernate'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-112955508079825526</id><published>2005-10-22T06:17:00.000-07:00</published><updated>2005-10-22T14:27:53.306-07:00</updated><title type='text'>The OpenDocument format (ODF)</title><content type='html'>&lt;p class="MsoNormal"&gt;"El &lt;b&gt;Formato de Documento Abierto para Aplicaciones Ofimáticas de OASIS&lt;/b&gt;, también referido como &lt;b&gt;OpenDocument&lt;/b&gt;, es un formato de fichero &lt;a href="http://es.wikipedia.org/wiki/Est%C3%A1ndar" title="Estándar"&gt;estándar&lt;/a&gt; para el almacenamiento de documentos ofimáticos tales como hojas de cálculo, memorandos, gráficas y presentaciones. Su desarrollo ha sido encomendado a la organización &lt;a href="http://es.wikipedia.org/wiki/OASIS_%28organizaci%C3%B3n%29" title="OASIS (organización)"&gt;OASIS&lt;/a&gt; y está basado en el esquema &lt;a href="http://es.wikipedia.org/wiki/XML" title="XML"&gt;XML&lt;/a&gt; que es utilizado por &lt;a href="http://es.wikipedia.org/wiki/OpenOffice.org" title="OpenOffice.org"&gt;OpenOffice.org&lt;/a&gt;." definición de &lt;a href="http://es.wikipedia.org/wiki/OpenDocument"&gt;wikipedia&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Para entender el problemaso que tiene Microsoft tratando de defender su formato MS WORD ML (el cual ya perdió la batalla), puesto que el estado de Massachussets donde se prohibió el uso de formatos cerrados en las oficinas publicas a partir del 2007, para el cual ya será obligatorio el uso de formatos abiertos.&lt;br /&gt;&lt;br /&gt;Y realmente tienen razón, se ha probado a través de los años que los formatos cerrados tienen barreras técnicas o legales, arriesgando a futuro al que use este tipo de software. Una vez más se probó que el modelo abierto es la mejor solución para el desarrollo de software.&lt;br /&gt;&lt;br /&gt;La institución encargada de este estándar es &lt;b&gt;OASIS&lt;/b&gt;, acrónimo de (Organization for the Advancement of Structured Information Standards), (la cual también es encargada en conjunto con W3C del estándar de WebServices) es una institución sin fines de lucro.&lt;br /&gt;&lt;br /&gt;Claro que una de las primeras aplicaciones que soportan este formato es &lt;a href="http://www.openoffice.org/"&gt;OpenOffice.org&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Este fenómeno ha causado un efecto domino para los demás estados, porque también están interesados en el cambio. Y una de las preocupaciones de Microsoft, es que de hacerse esto efecto no habría compatibilidad con los formatos anteriores de sus office, pero el miembro de desarrollo&lt;b&gt;&lt;span style="font-size: 10pt; color: rgb(51, 51, 51);"&gt; Gary Edwards &lt;/span&gt;&lt;/b&gt;respondió diciendo que esto esta definido en la capa de transformación la cual se encarga de esto y trabajaron durante 18 meses en eso. &lt;a href="http://madpenguin.org/cms/html/62/5304.html"&gt;ver artículo de entrevista.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Otra razón mas que alegan los opositores al Standard es el costo de la implementación del nuevo formato en las instituciones públicas. Le deja para que comenten.&lt;/p&gt;  &lt;a href="http://madpenguin.org/cms/html/62/5304.html"&gt; &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-112955508079825526?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/112955508079825526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=112955508079825526' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112955508079825526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112955508079825526'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/10/opendocument-format-odf.html' title='The OpenDocument format (ODF)'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-112933998356355037</id><published>2005-10-16T18:31:00.000-07:00</published><updated>2005-10-16T20:04:40.820-07:00</updated><title type='text'>Validaciones con modulo 11 y más</title><content type='html'>En el desarrollo de sistemas se utilizan los llamados &lt;span style="font-weight: bold;"&gt;"Digitos de autoverificación"&lt;/span&gt; este se calcula aplicando una fórmula. En nuestro caso es para la Cédula y el RNC, los cuales son campos importantes en las bases de datos y deben ser verificados antes de aceptar esos datos como válidos.&lt;br /&gt;&lt;br /&gt;Las fórmulas son la de Módulo 10 y Módulo 11, respectivamente. Hay otro datos como el de la tarjeta de créditos que se utiliza una formula llamada algoritmo de LUHN, que es utilizado para verificar si el número de una tarjeta dada es válido. (Eso no quiere decir que no sea robada :-)&lt;br /&gt;&lt;br /&gt;También es utilizado en verificacián de cádigo de barras y otras aplicaciones más.&lt;br /&gt;&lt;br /&gt;Este es el código que utilizo, todavia no tengo el algoritmo para la tarjeta de crédito  pero pronto se lo agregaré.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;/**&lt;br /&gt; * Clase de utilirias para la validacion de datos, como cedula y RNC, etc.&lt;br /&gt; * &lt;br /&gt; * @version 1.1v&lt;br /&gt; * @author vns&lt;br /&gt; *&lt;br /&gt; */&lt;br /&gt;public class Validation {&lt;br /&gt;    &lt;br /&gt;    /**&lt;br /&gt;     * Este método valida si la cedula de la República Dominicana es válida,&lt;br /&gt;     * utilizando el algoritmo modulo 10. &lt;b&gt;No se pasan guiones en el &lt;br /&gt;     * argumento.&lt;/b&gt;&lt;br /&gt;     * &lt;br /&gt;     * @since 1.1v&lt;br /&gt;     * @param cedula es un arreglo de char numérico&lt;br /&gt;     * @return true si la cedula es válida.&lt;br /&gt;     */&lt;br /&gt;    static public boolean validarCedula(char[] cedula){&lt;br /&gt;        int suma = 0;&lt;br /&gt;        int division = 0;&lt;br /&gt;        final char[] peso = {'1','2','1','2','1','2','1','2','1','2'};&lt;br /&gt;                     &lt;br /&gt;        if (cedula.length != 11)&lt;br /&gt;            return false;&lt;br /&gt;        else&lt;br /&gt;        {&lt;br /&gt;            for (int i = 0; i &lt; 10 ; i++ ){&lt;br /&gt;                int a = Character.getNumericValue( cedula[i] );&lt;br /&gt;                int b = Character.getNumericValue( peso[i] );&lt;br /&gt;                char[] mult = Integer.toString(a * b).toCharArray();&lt;br /&gt;                //TODO mover de aqui, más arriba&lt;br /&gt;                //para verificar si es un dígito o no&lt;br /&gt;                if (!Character.isDigit(cedula[i]))&lt;br /&gt;                    return false;&lt;br /&gt;                &lt;br /&gt;                if (mult.length  &gt; 1){&lt;br /&gt;                    a = Character.getNumericValue( mult[0] );&lt;br /&gt;                    b = Character.getNumericValue( mult[1] );&lt;br /&gt;                }else{&lt;br /&gt;                    a = 0;&lt;br /&gt;                    b = Character.getNumericValue( mult[0] );&lt;br /&gt;                }&lt;br /&gt;                suma = suma + a + b;&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            division = (suma / 10) * 10;&lt;br /&gt;            &lt;br /&gt;            if ( division &lt; suma )&lt;br /&gt;                division += 10;&lt;br /&gt;            &lt;br /&gt;            int digito = division - suma;&lt;br /&gt;            &lt;br /&gt;            if (digito != Character.getNumericValue(cedula[10]) )&lt;br /&gt;                return false;               &lt;br /&gt;        }&lt;br /&gt;        return true;        &lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    /**&lt;br /&gt;     * Este método valida si el RNC de la República Dominicana es válida,&lt;br /&gt;     * utilizando el algoritmo modulo 11. &lt;b&gt;No se pasan guiones en el &lt;br /&gt;     * argumento.&lt;/b&gt;&lt;br /&gt;     * &lt;br /&gt;     * @since 1.1v&lt;br /&gt;     * @param rnc es un arreglo de char numérico&lt;br /&gt;     * @return true si el rnc es válido&lt;br /&gt;     */&lt;br /&gt;    static public boolean validarRNC(char[] rnc){&lt;br /&gt;        final char[] peso = {'7','9','8','6','5','4','3','2'};&lt;br /&gt;        int suma = 0;&lt;br /&gt;        int division = 0;&lt;br /&gt;        &lt;br /&gt;        if (rnc.length != 9)&lt;br /&gt;            return false;&lt;br /&gt;        else&lt;br /&gt;        {&lt;br /&gt;            for (int i = 0; i &lt; 8; i++) {&lt;br /&gt;                //para verificar si es un dígito o no&lt;br /&gt;                if (!Character.isDigit(rnc[i]))&lt;br /&gt;                    return false;&lt;br /&gt;                &lt;br /&gt;                suma = suma  + (Character.getNumericValue(rnc[i]) * Character.getNumericValue(peso[i]) );&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            division = suma / 11;&lt;br /&gt;            int resto = suma - (division * 11);&lt;br /&gt;            int digito = 0;&lt;br /&gt;            &lt;br /&gt;            if (resto == 0 )&lt;br /&gt;                digito = 2;&lt;br /&gt;            else if (resto == 1)&lt;br /&gt;                digito = 1;&lt;br /&gt;            else &lt;br /&gt;                digito = 11 - resto;&lt;br /&gt;            &lt;br /&gt;            if (digito != Character.getNumericValue(rnc[8]) )&lt;br /&gt;                return false;            &lt;br /&gt;        }      &lt;br /&gt;        &lt;br /&gt;        return true;&lt;br /&gt;    }    &lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-112933998356355037?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/112933998356355037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=112933998356355037' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112933998356355037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112933998356355037'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/10/validaciones-con-modulo-11-y-ms.html' title='Validaciones con modulo 11 y más'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-112916547298256902</id><published>2005-10-16T18:02:00.000-07:00</published><updated>2005-10-16T19:06:00.693-07:00</updated><title type='text'>Lenguaje DUDU+</title><content type='html'>Mi primer lenguaje de programación. Su nombre es DUDU+ bautizado así por un compañero (Raydelto)&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;DUDU+ es un lenguaje de programación basado en la sintaxis de &lt;a href="http://java.sun.com/"&gt;&lt;span style="font-weight: bold;"&gt;JAVA&lt;/span&gt;&lt;/a&gt; el cual es desarrollado por mis compañeros y yo. Este lenguaje no trata de crear la POO que tiene java en si ni tampoco crear un lenguaje de programación completo, sino que forma parte de un aprendizaje en el cual podamos crear(desarrollar) un lenguaje en el que se pueda:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;a) Declarar variables&lt;br /&gt;b) Verificar la síntaxis&lt;br /&gt;c) Realizar operaciones matemáticas&lt;br /&gt;&lt;br /&gt;Las especificaciones para crear un programa en DUDU+:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt; &lt;li&gt;lenguaje estructurado (no existe la intención de hacerlo POO)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Los identificadores deben ser palabra que empiecen con letras, pueden contener letras y números. (NO se empieza con caracteres especiales excepto $ y _ )&lt;/li&gt;&lt;li&gt;La clase es la estructura principal, compuesta por variables miembros(no es POO).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;solo exite Repeat... Until, no existe estructuras de flujo (if...then, swicth...case)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Las operaciones matematicas permitidas son:&lt;/li&gt; &lt;/ul&gt;   &lt;ol&gt; &lt;li&gt;+, -, *, /&lt;/li&gt;&lt;li&gt;Ademas existe los operadores ++, --. (sólo postfijos)&lt;br /&gt;&lt;/li&gt; &lt;/ol&gt;   &lt;ul&gt; &lt;li&gt;Las variables pueden ser de tipo:&lt;/li&gt; &lt;/ul&gt;   &lt;ol&gt; &lt;li&gt;            byte&lt;/li&gt;&lt;li&gt;            integer&lt;/li&gt;&lt;li&gt;            short&lt;/li&gt;&lt;li&gt;            long&lt;/li&gt;&lt;li&gt;            float&lt;/li&gt;&lt;li&gt;            double&lt;/li&gt; &lt;/ol&gt;   &lt;ul&gt; &lt;li&gt;No exite Package ni Import por ende.&lt;/li&gt;&lt;li&gt;Se Agrego manejo de arreglo&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Existe una nueva estructura de Stack la cual se instancia con la palabra clave&lt;br /&gt;make stack. (ver test.java)&lt;/li&gt;&lt;li&gt;Agrege una estructura manejo de arreglos.&lt;br /&gt;&lt;/li&gt;  &lt;/ul&gt;&lt;br /&gt;En un siguiente post publicaré el grammar del lenguaje DUDU+. He mejorado el leguaje dudu+ ya que tenia algunos bugs. También puedo presentar el diagrama de un código en forma de árbol según el diagrama del lenguaje.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-112916547298256902?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/112916547298256902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=112916547298256902' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112916547298256902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112916547298256902'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/10/lenguaje-dudu.html' title='Lenguaje DUDU+'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-112913441868114218</id><published>2005-10-12T09:20:00.000-07:00</published><updated>2005-10-12T11:25:35.446-07:00</updated><title type='text'>Desarrollo en Móviles Nokia con Java</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/385/474/1600/nokia_dev21.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/385/474/400/nokia_dev2.jpg" alt="" border="0" /&gt;&lt;/a&gt;Aqui estoy de nuevo con algo nuevo, me decidi a programar para dispositivos Móviles con J2ME, seleccione con blanco los teléfonos NOKIA especificamente en el modelo de 6230 de un amigo porque yo no tengo un celular con tecnologia java integrada. (Sony Ericsson t68i es el mio).&lt;br /&gt;&lt;br /&gt;Bueno en mi ide favorito :-) ECLIPSE le instale un SDK de &lt;a href="http://www.forum.nokia.com/main/0,6566,034-2,00.html"&gt;NOKIA el Nokia Developer's Suite 3.0 for J2ME™&lt;/a&gt; el cual trae como ven en la imagen un simulador para las aplicaciones.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dentro de las caracteristicas de este SDK de NOKIA estan:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Un creador de clases&lt;/li&gt;   &lt;li&gt;Diseñador de UI&lt;/li&gt;   &lt;li&gt;Diseñador de flujo de pantalla&lt;/li&gt;   &lt;li&gt;Creador de paquetes&lt;/li&gt;   &lt;li&gt;Firmador de paquetes&lt;/li&gt;   &lt;li&gt;Herramientas para clientes de WebServices&lt;/li&gt;   &lt;li&gt;Emulador de aplicaciones&lt;/li&gt;   &lt;li&gt;Un editor de DRM (Para lo de derecho de autor, si no lo sabes)&lt;/li&gt;   &lt;li&gt;Convertidor de audio&lt;/li&gt;   &lt;li&gt;Y otros más.&lt;/li&gt; &lt;/ul&gt;Es rápido hacer, ver y probar tu aplicación en el simulador. Lo cual te muestra lo que haz logrado :-D. Lo más interesante que tiene es el Diseñador UI, el cual voy a probar para diseñar un pequeño juego.&lt;br /&gt;&lt;br /&gt;En mi primera experiencia solo puedo decir que, viendo que NOKIA se a unido a ECLIPSE para el desarrollo de un IDE y SDK para lo que es aplicaciones moviles, podemos esperar mucho más cosas en el futuro en esta área.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-112913441868114218?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/112913441868114218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=112913441868114218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112913441868114218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112913441868114218'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/10/desarrollo-en-mviles-nokia-con-java.html' title='Desarrollo en Móviles Nokia con Java'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-112895178713987565</id><published>2005-10-10T06:39:00.000-07:00</published><updated>2005-10-12T16:42:47.116-07:00</updated><title type='text'>Sobre números aleatorios</title><content type='html'>Para la generación de número aleatorios,por los general uno trabaja con números del cero hasta un numero superior, en código esto seria haci:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;    private static byte generarNum() {        &lt;br /&gt;    return (byte) ( Math.random() * NumeroSuperior + 1);&lt;br /&gt;} &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Pero que pasa si queremos ( Como me paso a mi ), generar números aleatorios entre&lt;br /&gt;un minimo y un maximo, debemos hacer esta fórmula:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;    private static byte generarNum() {        &lt;br /&gt;    return (byte) ((&lt;/code&gt;&lt;code&gt;NumeroSuperior&lt;/code&gt;&lt;code&gt; - &lt;/code&gt;&lt;code&gt;NumeroInferior&lt;/code&gt;&lt;code&gt; + 1) * Math.random() + &lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;NumeroInferior&lt;/code&gt;&lt;code&gt; &lt;/code&gt;&lt;code&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Espero que este codigo le sea util.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-112895178713987565?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/112895178713987565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=112895178713987565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112895178713987565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112895178713987565'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/10/sobre-nmeros-aleatorios.html' title='Sobre números aleatorios'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-112738857311621479</id><published>2005-10-01T16:29:00.000-07:00</published><updated>2005-09-29T09:08:15.816-07:00</updated><title type='text'>Tool para extreme programming  y Software que utilizo en el desarrollo</title><content type='html'>Aqui presento algunas de la librerias y software utilizados en el  desarrollo de mis sistemas.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Eclipse&lt;/span&gt;&lt;br /&gt;Mi IDE favorito, lo recomiendo, además de ser el número uno detro de los open source :-).&lt;br /&gt;&lt;a href="http://www.eclipse.org/"&gt;www.eclipse.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Netbeans&lt;/span&gt;&lt;br /&gt;Es una buena opción, solo lo uso para la editar .jsp y archivos xml. (Eclipse ya tiene esta caracteristicas ), y la ventaja que busco es de tener complementación de código (para los tag de jsp) y verificación de errores en línea.&lt;br /&gt;&lt;a href="http://www.netbeans.org/"&gt;www.netbeans.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Hibernate&lt;/span&gt;&lt;br /&gt;Es una poderosa herramienta de persistencia object/relational y un servicio de consulta para Java de alto rendimiento. Hibernate le deja desarrollar las clases persistentes que siguen el lenguaje usual de Java - incluyendo la asociación, la herencia, el polimorfismo, la composición, y el marco de las colecciones de Java. Hibernate permite que usted exprese consultas en su propia extensión portable del SQL (HQL), así como en el SQL nativo, o con los objetos basados en Java.&lt;br /&gt;&lt;a href="http://www.hibernate.org/"&gt;www.hibernate.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Webwork&lt;/span&gt;&lt;br /&gt;Es un marco de desarrollo de aplicaciones web en Java. Se construye específicamente para aumentar la productividad del desarrollador y simplicidad del código en mente, proporcionando la ayuda robusta para las plantillas reutilizables de UI, tales como controles del form, los temas de UI, la internacionalización, el parámetro dinámico del form traz un JavaBeans, la validación lateral robusta del cliente y del servidor, y mucho más.&lt;br /&gt;&lt;a href="http://www.opensymphony.com/webwork/"&gt;http://www.opensymphony.com/webwork/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sitemesh&lt;/span&gt;&lt;br /&gt;Es un marco de disposición y de decoración de aplicaciones web y marco de la integración del uso de la web para ayudar en crear los sitios grandes que consisten en muchas páginas para las cuales se requiera un esquema constante de look/feel, de la navegación y de la disposición.&lt;br /&gt;&lt;a href="http://www.opensymphony.com/sitemesh/"&gt;http://www.opensymphony.com/sitemesh/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Lucene&lt;/span&gt;&lt;br /&gt;Es una biblioteca de alto rendimiento, completamente equipada del motor de búsqueda de texto escrita enteramente en Java. Es una tecnología conveniente para casi cualquier uso que requiera búsqueda con texto completo, especialmente inter-plataforma. Es parte de la comunidad de Apache.&lt;br /&gt;&lt;a href="http://lucene.apache.org/java/docs/index.html"&gt;http://lucene.apache.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Jakarta Commons&lt;/span&gt;&lt;br /&gt;Los Commons es un subprojecto de Jakarta centrado en todos los aspectos de los componentes reutilizables de Java.&lt;br /&gt;&lt;a href="http://jakarta.apache.org/commons/index.html"&gt;http://jakarta.apache.org/commons/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Xdoclet&lt;/span&gt;&lt;br /&gt;XDoclet es un motor abierto de la generación del código de fuente.  Permite &lt;b&gt; la programación Orientada a Atributos &lt;/b&gt; para Java. En pocas palabras, esto significa que usted puede agregar más significación a su código agregando los meta datos (atributos) a sus fuentes de Java. Esto es lo que se hace en las etiquetas especiales de JavaDoc.&lt;br /&gt;&lt;a href="http://xdoclet.sourceforge.net/xdoclet/index.html"&gt;http://xdoclet.sourceforge.net/xdoclet/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ant&lt;/span&gt;&lt;br /&gt;La hormiga de Apache es una herramienta de construcción basada en java. En teoría, es una clase de como Make, pero sin las arrugas de este.&lt;br /&gt;&lt;a href="http://ant.apache.org/"&gt;http://ant.apache.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Junit&lt;/span&gt;&lt;br /&gt;Por es un marco de trabajo de pruebas de regresión escrito Erich JUnit Gamma y de Kent Beck. Es utilizada por el desarrollador que crea pruebas de unidad en ejecución en sus programas escritos en Java. Este framework es muy utilizado, principalmente para el que aplica la metodología de Xtreme Programming.&lt;br /&gt;&lt;a href="http://www.junit.org/index.htm"&gt;http://www.junit.org/index.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;MockObjects&lt;/span&gt;&lt;br /&gt;Este es parte del TTD. Ver junit&lt;br /&gt;&lt;a href="http://www.mockobjects.com/FrontPage.html"&gt;http://www.mockobjects.com/FrontPage.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Jikes&lt;/span&gt;&lt;br /&gt;Jikes &lt;small&gt; &lt;sup&gt; TM &lt;/sup&gt; &lt;/small&gt; es un copilador que traduce archivos fuentes &lt;small&gt;&lt;sup&gt; &lt;/sup&gt; &lt;/small&gt; de Java TM como esta definido en &lt;a href="http://216.239.39.104/translate_c?hl=en&amp;langpair=en%7Ces&amp;amp;u=http://www.java.sun.com/docs/books/jls"&gt; la especificación de la lenguaje de Java &lt;/a&gt; en bytecoded el sistema de instrucción y el formato binario definidos en &lt;a href="http://216.239.39.104/translate_c?hl=en&amp;langpair=en%7Ces&amp;amp;u=http://www.java.sun.com/docs/books/vmspec"&gt; la especificación virtual de la máquina de Java &lt;/a&gt;. La mejor ventaja de usar jikes es un copilador del alto rendimiento (compila en segundo gran cantidad de código) , haciéndolo ideal para el uso con proyectos más grandes.&lt;br /&gt;&lt;a href="http://jikes.sourceforge.net/"&gt;http://jikes.sourceforge.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tomcat&lt;/span&gt;&lt;br /&gt;Es el contenedor de servlet que se utiliza en la puesta en práctica oficial de la especiicación para los Java Servlet y las tecnologías de las JavaServerPages.&lt;br /&gt;&lt;a href="http://jakarta.apache.org/tomcat/index.html"&gt;http://jakarta.apache.org/tomcat/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Postgresql&lt;br /&gt;&lt;/span&gt;el altamente escalable, SQL implementado al estandar, sistema de administración objeto-relacinal de base de datos de fuente abierta más avanzado, ahora está experimentando la prueba beta de la versión siguiente : PostgreSQL 8,1. Tienen que probarlo :-D.&lt;br /&gt;&lt;a href="http://www.postgresql.org/"&gt;http://www.postgresql.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Todos estas librerias y software tienen sus licencias de uso, asi que deben leerselas antes de tomar una desición de usarlos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-112738857311621479?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/112738857311621479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=112738857311621479' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112738857311621479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112738857311621479'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/10/tool-para-extreme-programming-y.html' title='Tool para extreme programming  y Software que utilizo en el desarrollo'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-112787445868262998</id><published>2005-09-27T19:21:00.000-07:00</published><updated>2005-09-28T06:49:38.610-07:00</updated><title type='text'>Como escribir comentarios para la documentación con el Javadoc</title><content type='html'>How to Write Doc Comments for the Javadoc Tool&lt;br /&gt;&lt;br /&gt;Este es un tutorial de la convenciones usadas para la creación de comentarios en los programas que creamos en los projectos. Este documentación es importante porque será utilizado por otros programadores (y en algunos casos por nosostros mismos), para el desarrollo.&lt;br /&gt;&lt;br /&gt;Este documento trara de como crear la documentación para que el javadoc pueda crear una documentación de nuestro código de manera correcta (como la del API de J2SE por ejemplo).&lt;br /&gt;&lt;br /&gt;    Obviamente el tutorial esta en ingles.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://java.sun.com/j2se/javadoc/writingdoccomments/index.html"&gt;http://java.sun.com/j2se/javadoc/writingdoccomments/index.htm&lt;/a&gt;&lt;a href="http://java.sun.com/j2se/javadoc/writingdoccomments/index.html"&gt;l&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-112787445868262998?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/112787445868262998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=112787445868262998' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112787445868262998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112787445868262998'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/09/como-escribir-comentarios-para-la.html' title='Como escribir comentarios para la documentación con el Javadoc'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-112787152837216838</id><published>2005-09-27T18:34:00.000-07:00</published><updated>2005-09-27T19:38:35.130-07:00</updated><title type='text'>Code Conventions for the JavaTM Programming Language</title><content type='html'>Las convenciones de código son importantes para los programadores por un número de razones:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;el 80% del coste del ciclo de vida de un software va al mantenimiento.&lt;/li&gt;   &lt;li&gt;Apenas cualquier software es mantenido por su vida entera por el autor original.&lt;/li&gt;   &lt;li&gt;Las convenciones de código mejoran la legibilidad del software, permitiendo entender el nuevo código más rápidamente y a fondo.&lt;/li&gt;   &lt;li&gt;Si usted envía su código fuente como producto, usted necesita cerciorarse de que también esté empaquetado y limpiao como cualquier otro producto que usted cree.&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;Nosotros utilizamos las convenciones de código para el lenguaje de programación de JavaTM:&lt;br /&gt;&lt;a href="http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html"&gt;http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Este Howto esta en ingles (el idioma oficial de la programación), no hay tradución por el momento, pero trata de cosas muy sencillas, pero que deben tomarse en cuenta a la hora de programar. Tales como:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Nombres de archivos&lt;/li&gt;   &lt;li&gt;Organización de los archivos&lt;/li&gt;   &lt;li&gt;Identación del código&lt;/li&gt;   &lt;li&gt;Declaraciones&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;Sentencias&lt;/li&gt;   &lt;li&gt;Comentarios&lt;/li&gt;   &lt;li&gt;Espacios en blancos&lt;/li&gt;   &lt;li&gt;Convencion de nombres&lt;/li&gt;   &lt;li&gt;Practicas de programación&lt;/li&gt;   &lt;li&gt;Ejemplos de código&lt;/li&gt; &lt;/ul&gt;     Todos esto relacionado claro, con el formato que debe tener el código  escrito por  un equipo de programación.&lt;br /&gt;&lt;br /&gt;Por suerte, existe una herramienta sencilla que automatiza este proceso (NO es que hagas de tu código un desatre :-D ). Jalopy es un formateador de código fuente para el lenguaje JAVA. El cual ayuda para tener una simetría (utilizando las conveción que definas) en tu código fuente. El cual comenzaré a utilizar en mis projectos.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jalopy.sourceforge.net/"&gt;http://jalopy.sourceforge.net/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-112787152837216838?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/112787152837216838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=112787152837216838' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112787152837216838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112787152837216838'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/09/code-conventions-for-javatm.html' title='Code Conventions for the JavaTM Programming Language'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-112274529659981757</id><published>2005-07-30T10:41:00.000-07:00</published><updated>2005-09-20T05:52:31.813-07:00</updated><title type='text'>Historia de Google</title><content type='html'>&lt;div style="text-align: center;"&gt; Los comienzos&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Todo empezó en una primavera de 1995 cuando dos jóvenes universitarios, Sergey Brin, de 23 años, con experiencia en diseño web y titulado en Ingeniería Electrónica, y Larry Page, de 24, expero en tratamiento de datos y licenciado en Informática y Ciencias Matemáticas, que acabarian siendo cofundadores y actuales presidente y CEO de Google, se conocieron en un evento organizado por la Universidad de Standford para los aspirantes a su prestigioso Doctorado en Informática. Allí discutieron arduamente sobre cada tema hablando, sus sólidas opiniones y divergentes puntos de vista encontraron un objetivo común, conseguir información relevante de una gran cantidad de datos.&lt;br /&gt;&lt;br /&gt;Es en otoño de ese mismo año, cuando estos dos estudiantes empiezan a desarrollar un algoritmo para la búsqueda de datos, que utilizarian en para el proyecto de "Biblioteca Digital" de la Universidad de Standford (Digital Library Project). En ese momento comenzó lo que más tarde sería llamado por Larry Page como PageRank, en 1997. También publicó, ese mismo año, un documento explicativo del PageRank que puedes encontrar aquí.&lt;br /&gt;&lt;br /&gt;En enero de 1996, Larry y Sergey empezaron a desarrollar un motor de búsqueda llamado BackRub, nombrado así por su capacidad única de analizar los "enlaces entrantes" (enlaces que provienen de otras páginas) de una página web. Este buscador corría sobre varias máquinas Sun e Intel y su base de datos principal era guardada por un Sun Ultra II con 28Gb de disco y estaba implementado en Java y Python. Como curiosidad podemos ver un post de Larry preguntando una duda de Java (aquí). Larry, quien era conocido por haber construido una impresora a base de piezas de Lego, se puso manos a la obra para crear un nuevo entorno de servidores de gama baja (PC's), en vez de máquinas muy caras. Angustiados por su constante escasez de dinero, espereban siempre con ilusión la llegada de nuevas máquinas al departamento que pudieran utilizar para su proyecto. Muestra de esta escacez de medios son máquinas como esta.&lt;br /&gt;&lt;br /&gt;Ya en 1997, BackRub pasa a convertirse en Google. Aún podemos ver como era Google por aquel entonces gracias a archive.org. El nombre "Google" es un juego de palabras que proviene de la palabra "googol", término acuñado por Milton Sirotta para referirse a a un número representado por un 1 seguido de 100 ceros. Un googol es un número muy largo. No existe un googol de nada en el universo, ni de estrellas, ni de partículas de polvo, ni de átomos. La utilización de este término por Google refleja la misión de organizar la inmensidad infinita que aparenta la world wide web.&lt;br /&gt;&lt;br /&gt;Larry y Sergey continuaron perfeccionando su tecnología durante la primera mitad de 1998. Siguiente un camino que sería la clave del principio de Google, compraron un terabyte de discos a precios muy bajos y construyeron su propio data center en la habitación de Larry. Empezaron a buscar patrocinadores para su nueva empresa pero a pesar de la fiebre del puntocom de la época no tuvieron mucha suerte. Aquí podemos ver como era el diseño de Google por aquellos tiempos y aquí, el hardware que utilizaban.&lt;br /&gt;&lt;br /&gt;Incapaces de interesar a ningún portal de los vigentes en aquel momento, Larry y Sergey deciden ir por su cuenta. Lo único que necesitaban era dejar de usar la habitación de Larry como datacenter, saldar sus deudas causadas por la compra de tantos discos y buscar a un inversor. Al final, además de los cien mil dólares ofrecidos por Andy Bechtolsheim, uno de los fundadores de Sun, consiguieron entre familia, amigos y otros parientes recaudar un capital inicial de almenos $1 millón de dólares.&lt;br /&gt;&lt;br /&gt;A finales de Septiembre de 1998 Google Inc. es inauguarada en el garaje que les alquilaba un amigo. El local tenía grandes ventajas como una lavadora y una secadora entre otras cosas. También servía de parkin para el primer empleado de la compañía Craig Silverstein, ahora director de tecnología de Google.&lt;br /&gt;&lt;br /&gt;Cuando Google.com aún estaba en fase beta, respondía a unas 10000 búsquedas al día. La premsa empezó a hacer eco de ello y varios artículos elogiando a Google aparecieron en USA Today y Le Monde. En diciembre de ese mismo año, PC Magazine nombró a Google en su top 100 de mejores buscadores del año 1998. Google empezaba a darse a conocer al mundo.&lt;br /&gt;&lt;br /&gt;A partir de aquí Google empezó a crecer desmesuradamente. Al año siguiente, 1999, volvieron a mudarse a oficinas más grandes, con más empleados y respondiendo a alrededor de 500000 visitas. Y así hasta ahora, ganando premios, aportando calidad e innovación y batiendo records, Google es hoy el mejor buscador de la red y el más utilizado.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-112274529659981757?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/112274529659981757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=112274529659981757' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112274529659981757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/112274529659981757'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2005/07/historia-de-google.html' title='Historia de Google'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-108939541058079303</id><published>2004-07-09T10:46:00.000-07:00</published><updated>2004-07-09T11:16:59.716-07:00</updated><title type='text'>Soluciones</title><content type='html'>Espero que este metodo sea de mayor acceso y rapides para todos, mejorando la comunicación entre todos, puesto que permite la publicacion de comentarios desde nuestro (preferido) cliente de email. Tambien permite la publicaciones de fotos y cada comentario publicado puede llegar a tu cuenta de correo, todo esto sin tener que accesar a la página. Puedes rapidamente utilizar el boton de blogthis! de la barra de google si ves algo importante y quieres compartirlo.&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/7582902-108939541058079303?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/108939541058079303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=108939541058079303' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/108939541058079303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/108939541058079303'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2004/07/soluciones.html' title='Soluciones'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7582902.post-108939272847298012</id><published>2004-07-09T10:03:00.000-07:00</published><updated>2005-06-06T05:03:23.963-07:00</updated><title type='text'>Bienvenida</title><content type='html'>Bienvenidos al web logs de vnsjava&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7582902-108939272847298012?l=vnsjava.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vnsjava.blogspot.com/feeds/108939272847298012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7582902&amp;postID=108939272847298012' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/108939272847298012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7582902/posts/default/108939272847298012'/><link rel='alternate' type='text/html' href='http://vnsjava.blogspot.com/2004/07/bienvenida.html' title='Bienvenida'/><author><name>victor sosa</name><uri>http://www.blogger.com/profile/10866357818618401740</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><thr:total>0</thr:total></entry></feed>
