<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>Java y un Café</title><description>Pequeño espacio para compartir lo que puedo aprender día a día.  Java y muchas cosas más.</description><managingEditor>noreply@blogger.com (JocLuis)</managingEditor><pubDate>Thu, 20 Nov 2025 10:30:53 -0500</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">87</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>http://javaycafe.blogspot.com/</link><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:summary>Pequeño espacio para compartir lo que puedo aprender día a día. Java y muchas cosas más.</itunes:summary><itunes:subtitle>Pequeño espacio para compartir lo que puedo aprender día a día. Java y muchas cosas más.</itunes:subtitle><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><title>Gráficas con Matplotlib - Init</title><link>http://javaycafe.blogspot.com/2023/08/graficas-con-matplotlib-init.html</link><category>matplotlib</category><category>python</category><author>noreply@blogger.com (JocLuis)</author><pubDate>Tue, 15 Aug 2023 14:07:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-771184748422997141</guid><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #f7f7f7; color: green; font-family: monospace, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; white-space: pre;"&gt;# Ejemplo básico&lt;/span&gt;&lt;/p&gt;&lt;div style="background-color: #f7f7f7; font-family: monospace, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;"&gt;&lt;div&gt;&lt;span style="color: #af00db;"&gt;import&lt;/span&gt; matplotlib.pyplot &lt;span style="color: #af00db;"&gt;as&lt;/span&gt; plt&lt;/div&gt;&lt;div&gt;&lt;span style="color: #af00db;"&gt;import&lt;/span&gt; numpy &lt;span style="color: #af00db;"&gt;as&lt;/span&gt; np&lt;/div&gt;&lt;br /&gt;&lt;div&gt;eje_x = [&lt;span style="color: #a31515;"&gt;"a"&lt;/span&gt;,&lt;span style="color: #a31515;"&gt;"b"&lt;/span&gt;,&lt;span style="color: #a31515;"&gt;"c"&lt;/span&gt;,&lt;span style="color: #a31515;"&gt;"d"&lt;/span&gt;,&lt;span style="color: #a31515;"&gt;"e"&lt;/span&gt;]&lt;/div&gt;&lt;div&gt;datos = [&lt;span style="color: #098156;"&gt;10&lt;/span&gt;,&lt;span style="color: #098156;"&gt;20&lt;/span&gt;,&lt;span style="color: #098156;"&gt;30&lt;/span&gt;,&lt;span style="color: #098156;"&gt;40&lt;/span&gt;,&lt;span style="color: #098156;"&gt;50&lt;/span&gt;]&lt;/div&gt;&lt;br /&gt;&lt;div&gt;plt.plot(eje_x,datos)&lt;/div&gt;&lt;div&gt;plt.show()&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; white-space: normal;"&gt;&lt;span style="color: green; font-family: monospace, Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; white-space: pre;"&gt;# Ejemplo básico 1&lt;/span&gt;&lt;/p&gt;&lt;div style="line-height: 19px;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="line-height: 19px;"&gt;&lt;div&gt;años = [&lt;span style="color: #a31515;"&gt;"2011"&lt;/span&gt;,&lt;span style="color: #a31515;"&gt;"2012"&lt;/span&gt;,&lt;span style="color: #a31515;"&gt;"2013"&lt;/span&gt;,&lt;span style="color: #a31515;"&gt;"2014"&lt;/span&gt;,&lt;span style="color: #a31515;"&gt;"2015"&lt;/span&gt;,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #a31515;"&gt;"2016"&lt;/span&gt;,&lt;span style="color: #a31515;"&gt;"2017"&lt;/span&gt;,&lt;span style="color: #a31515;"&gt;"2018"&lt;/span&gt;,&lt;span style="color: #a31515;"&gt;"2019"&lt;/span&gt;,&lt;span style="color: #a31515;"&gt;"2020"&lt;/span&gt;]&lt;/div&gt;&lt;br /&gt;&lt;div&gt;nivel1 = np.random.rand(&lt;span style="color: #098156;"&gt;10&lt;/span&gt;)*&lt;span style="color: #098156;"&gt;100&lt;/span&gt;&lt;/div&gt;&lt;div&gt;nivel2 = np.random.rand(&lt;span style="color: #098156;"&gt;10&lt;/span&gt;)*&lt;span style="color: #098156;"&gt;200&lt;/span&gt; + &lt;span style="color: #098156;"&gt;100&lt;/span&gt;&lt;/div&gt;&lt;div&gt;nivel3 = np.random.rand(&lt;span style="color: #098156;"&gt;10&lt;/span&gt;)*&lt;span style="color: #098156;"&gt;300&lt;/span&gt; + &lt;span style="color: #098156;"&gt;200&lt;/span&gt;&lt;/div&gt;&lt;div&gt;nivel4 = np.random.rand(&lt;span style="color: #098156;"&gt;10&lt;/span&gt;)*&lt;span style="color: #098156;"&gt;400&lt;/span&gt; + &lt;span style="color: #098156;"&gt;300&lt;/span&gt;&lt;/div&gt;&lt;div&gt;nivel5 = np.random.rand(&lt;span style="color: #098156;"&gt;10&lt;/span&gt;)*&lt;span style="color: #098156;"&gt;500&lt;/span&gt; + &lt;span style="color: #098156;"&gt;400&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;plt.plot(años,nivel1, label=&lt;span style="color: #a31515;"&gt;"Nivel 1"&lt;/span&gt;,color=&lt;span style="color: #a31515;"&gt;"purple"&lt;/span&gt;,marker=&lt;span style="color: #a31515;"&gt;"&amp;lt;"&lt;/span&gt;,linestyle=&lt;span style="color: #a31515;"&gt;"-"&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;plt.plot(años,nivel2, label=&lt;span style="color: #a31515;"&gt;"Nivel 2"&lt;/span&gt;,marker=&lt;span style="color: #a31515;"&gt;"*"&lt;/span&gt;,linestyle=&lt;span style="color: #a31515;"&gt;"--"&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;plt.plot(años,nivel3, label=&lt;span style="color: #a31515;"&gt;"Nivel 3"&lt;/span&gt;,marker=&lt;span style="color: #a31515;"&gt;"^"&lt;/span&gt;,linestyle=&lt;span style="color: #a31515;"&gt;":"&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;plt.plot(años,nivel4, label=&lt;span style="color: #a31515;"&gt;"Nivel 4"&lt;/span&gt;,marker=&lt;span style="color: #a31515;"&gt;"."&lt;/span&gt;,linestyle=&lt;span style="color: #a31515;"&gt;"-."&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;plt.plot(años,nivel5, label=&lt;span style="color: #a31515;"&gt;"Nivel 5"&lt;/span&gt;,marker=&lt;span style="color: #a31515;"&gt;"+"&lt;/span&gt;,linestyle=&lt;span style="color: #a31515;"&gt;" "&lt;/span&gt;)&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="color: green;"&gt;# activar Leyendas&lt;/span&gt;&lt;/div&gt;&lt;div&gt;plt.legend()&lt;/div&gt;&lt;div&gt;&lt;span style="color: green;"&gt;# activar titulo grafica&lt;/span&gt;&lt;/div&gt;&lt;div&gt;plt.title(&lt;span style="color: #a31515;"&gt;"Examen de Certificación"&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;span style="color: green;"&gt;# activar etiquetas de ejes&lt;/span&gt;&lt;/div&gt;&lt;div&gt;plt.xlabel(&lt;span style="color: #a31515;"&gt;"Años"&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;plt.ylabel(&lt;span style="color: #a31515;"&gt;"Puntaje"&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;span style="color: green;"&gt;# personalizar incrementos/escala de cada eje&lt;/span&gt;&lt;/div&gt;&lt;div&gt;plt.yticks(np.arange(&lt;span style="color: #098156;"&gt;0&lt;/span&gt;,&lt;span style="color: #098156;"&gt;1001&lt;/span&gt;,&lt;span style="color: #098156;"&gt;50&lt;/span&gt;)) &lt;span style="color: green;"&gt;#rango de 0 a 1000 y brincos de cada 50&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: green;"&gt;# activar cuadricula de la grafica&lt;/span&gt;&lt;/div&gt;&lt;div&gt;plt.grid()&lt;/div&gt;&lt;div&gt;&lt;span style="color: green;"&gt;# activar cuadricula de la grafica más fina&lt;/span&gt;&lt;/div&gt;&lt;div&gt;plt.minorticks_on()&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="color: green;"&gt;# mostrar grafica&lt;/span&gt;&lt;/div&gt;&lt;div&gt;plt.show()&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpCZ1LCuRsdwyaEmqULn-uuERcS4zNJwgJmXi-9rORvtcDYj0ablQknBIxxTWJQzfXQ6ooj7EdzcLidnQpRmVH_NG3ueKhRjVAW40d6tT8Orw7KTjmPRNLb26YKhHCZeVdO0xWz8MgHgna1YXlAKEghenJ-pnEOMcvPCmaR8mhnBPa0XChKAkKU5qRh-Y/s580/descarga.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="455" data-original-width="580" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpCZ1LCuRsdwyaEmqULn-uuERcS4zNJwgJmXi-9rORvtcDYj0ablQknBIxxTWJQzfXQ6ooj7EdzcLidnQpRmVH_NG3ueKhRjVAW40d6tT8Orw7KTjmPRNLb26YKhHCZeVdO0xWz8MgHgna1YXlAKEghenJ-pnEOMcvPCmaR8mhnBPa0XChKAkKU5qRh-Y/w325-h255/descarga.png" width="325" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpCZ1LCuRsdwyaEmqULn-uuERcS4zNJwgJmXi-9rORvtcDYj0ablQknBIxxTWJQzfXQ6ooj7EdzcLidnQpRmVH_NG3ueKhRjVAW40d6tT8Orw7KTjmPRNLb26YKhHCZeVdO0xWz8MgHgna1YXlAKEghenJ-pnEOMcvPCmaR8mhnBPa0XChKAkKU5qRh-Y/s72-w325-h255-c/descarga.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>¿Cómo mido la eficiencia de mi código fuente?</title><link>http://javaycafe.blogspot.com/2021/06/como-mido-la-eficiencia-de-mi-codigo.html</link><category>algoritmo
notacion
bigO</category><author>noreply@blogger.com (JocLuis)</author><pubDate>Wed, 30 Jun 2021 22:59:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-1626926387156087796</guid><description>&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="color: black;"&gt;¿Alguna
vez te has preguntado sobre la eficiencia de tu código programado? En esta
ocasión explicaremos sobre Big O (también llamado O grande / O mayúscula).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="color: black;"&gt;La O
mayúscula es una notación matemática que nos ayuda a describir el
comportamiento de una función “al límite”. Esta notación tiene muchos usos en
realidad, sin embargo, el que nos interesa ahora es el que se le da en las
Ciencias de la Computación.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;En las ciencias de la computación esta notación nos ayuda a describir
el comportamiento de un algoritmo, ya sea temporal (cuantas unidades de tiempo
va a tardar en ejecutarse) o en espacio (cuanta memoria va a ocupar mientras se
ejecuta), esto basado en la cantidad de entradas que recibe y sobre los que
opera. A este "comportamiento" también se le conoce como complejidad
de un algoritmo. Este análisis de complejidad nos sirve generalmente cuando las
entradas de el algoritmo analizado son muy grandes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;En un ejemplo directo aplicado sería buscar un valor dentro
de un arreglo de enteros ordenado (de seguro ya tienes una solución para dicho
algoritmo) pero analicemos por partes (queremos buscar el valor 26) en la
siguiente cadena de longitud n=9, plantearemos 2 soluciones:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8bObltyr1Teho_RhO0wvyQEv8yqCVTJCz9_P1andc0JoXFKJ1DOXEiDxqi4oFsij5EGA1BOtx_hfmmxU9KDkT5w9ZbuyIbHOLEG5SKutnovu7v9BpM3glqaK6HxpvUoq8k-W9X_sP8ak/s819/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="121" data-original-width="819" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8bObltyr1Teho_RhO0wvyQEv8yqCVTJCz9_P1andc0JoXFKJ1DOXEiDxqi4oFsij5EGA1BOtx_hfmmxU9KDkT5w9ZbuyIbHOLEG5SKutnovu7v9BpM3glqaK6HxpvUoq8k-W9X_sP8ak/s320/1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="mso-list: Ignore;"&gt;1.&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Si pensamos de “una forma normal” sería fácil;
recorro desde el inicio hasta encontrar el número 26. Si pensamos en “&lt;i style="mso-bidi-font-style: normal;"&gt;el peor de los casos&lt;/i&gt;” sería 9 veces leía
la cadena. Vemos que es igual a N entonces digamos que la complejidad
computacional será de &lt;b style="mso-bidi-font-weight: normal;"&gt;O(n)&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"&gt;&lt;span style="mso-list: Ignore;"&gt;2.&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Ahora que pasaría si te digo que podríamos hacer
lo siguiente: partimos en 2 la cadena y quedaría de la siguiente forma:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcCSeXdMYPu_l1ecTKYxBMRFCLK8Otjk7Nc24ECOuuXB5rE8YRWRbW4tm3rHvNzvY-N7Hql_6bw4Cjaef9g2-Tztwuk3pOcH4RoQ6ACQWBJavvjb1B-4DXG8F-TEWl726-xbut1ZLOAEQ/s623/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="349" data-original-width="623" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcCSeXdMYPu_l1ecTKYxBMRFCLK8Otjk7Nc24ECOuuXB5rE8YRWRbW4tm3rHvNzvY-N7Hql_6bw4Cjaef9g2-Tztwuk3pOcH4RoQ6ACQWBJavvjb1B-4DXG8F-TEWl726-xbut1ZLOAEQ/s320/2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p align="center" class="MsoListParagraphCxSpMiddle" style="text-align: center;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle" style="text-align: justify;"&gt;Validamos si el elemento del centro (en
este caso es 18) es menor, igual o mayor que el elemento buscado (26) y
confirmaremos que estará al lado derecho.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle" style="text-align: justify;"&gt;Y empezamos a recorrer la mitad de la
derecha y luego aplicamos lo mismo (partimos la cadena nuevamente en dos) hasta
encontrar el resultado ¿Se puede visualizar que es más rápido? En este caso ya
no recorrerá N, sino que en el &lt;i style="mso-bidi-font-style: normal;"&gt;peor de
los casos&lt;/i&gt; será de:&lt;span style="mso-fareast-language: #580A; mso-no-proof: yes;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisx03MI-X89vS_zKB9-GEq1vBP3D6buw2JiwefpRPFZdjhMh-Bt2VQkQIIhc6MzlWCVhqA8e3didk2jPNK2XDevE76Z35Lx_SHCf-cXrxU_ta9r0o6PFZ5iYXg_acPUvkYP2IJOURvZxE/s69/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="33" data-original-width="69" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisx03MI-X89vS_zKB9-GEq1vBP3D6buw2JiwefpRPFZdjhMh-Bt2VQkQIIhc6MzlWCVhqA8e3didk2jPNK2XDevE76Z35Lx_SHCf-cXrxU_ta9r0o6PFZ5iYXg_acPUvkYP2IJOURvZxE/s0/3.png" /&gt;&lt;/a&gt; . ¿Cómo lo obtuve? En otro post detalle
este resultado.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;En lenguaje&amp;nbsp;computación
suelen omitir la base del logaritmo y solo poner:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKE9MKN-pjW2fD_5E5FB4IyPZaqFKb6iXM65I69WNEKtKixkYLoedZTCfIo0JMQp6rkS8kIRLMJBql-QVeShD1UfBpSTyXE-kPfLqGThTg66FCmh45P46OfmqSHX8DHEkpxP1OkymCgJ4/s41/4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: justify;"&gt;&lt;img border="0" data-original-height="30" data-original-width="41" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKE9MKN-pjW2fD_5E5FB4IyPZaqFKb6iXM65I69WNEKtKixkYLoedZTCfIo0JMQp6rkS8kIRLMJBql-QVeShD1UfBpSTyXE-kPfLqGThTg66FCmh45P46OfmqSHX8DHEkpxP1OkymCgJ4/s0/4.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="text-align: justify;"&gt;. Entonces la complejidad de este algoritmo
será de &lt;b&gt;O(logn)&lt;/b&gt;.&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;p class="MsoListParagraphCxSpMiddle"&gt;En el siguiente gráfico nos mostrará sobre la eficiencia de
nuestro algoritmo, claramente el resultado en el punto 2 es lo más óptimo.&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv8Y_zr-IMs8EMwpP5vawAmX4m-EsGaf9xFsBynfhVEsWoZUruqEE2rUNNXUPlvf-dzHEZ154ROet4K-fswF_q3DenivLFKYFMT1UuM7FdIqZRBcwVVibMMWmhLXgLd9W0wI-77LNqkmg/s640/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="453" data-original-width="640" height="296" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv8Y_zr-IMs8EMwpP5vawAmX4m-EsGaf9xFsBynfhVEsWoZUruqEE2rUNNXUPlvf-dzHEZ154ROet4K-fswF_q3DenivLFKYFMT1UuM7FdIqZRBcwVVibMMWmhLXgLd9W0wI-77LNqkmg/w420-h296/5.png" width="420" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;Recuerda que hay un tiempo constante “c”, el cual es el
tiempo que la maquina donde lo correrás el algoritmo. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;Utilizar Big O, no sólo puede ayudarte optimizar y/o iniciar
la optimización de tu código sino en tener algoritmos mucho más livianos para
que no sufra mucho tus servidores. Otro campo por ejemplo donde recién estoy iniciando
y me gustaría escribir en otro post es en la aplicación en al Bioinformática. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;Para concluir, de hoy en adelante cuando alguien te pregunte
la complejidad de tu algoritmo. Lo que espera es una expresión Big O, como el
tamaño de conjunto de datos afecta el rendimiento del tamaño del algoritmo.
Espero te haya servidor de ayuda y publicará algunos ejemplos en siguientes
post.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Fuentes importantes de extracción de información para este
post:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;a href="http://www.cs.us.es/~jalonso/cursos/i1m/temas/tema-28.html"&gt;http://www.cs.us.es/~jalonso/cursos/i1m/temas/tema-28.html&lt;/a&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;a href="https://thatcsharpguy.com/post/notacion-o-grande/"&gt;https://thatcsharpguy.com/post/notacion-o-grande/&lt;/a&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;a href="https://codingbackside.wordpress.com/2018/06/24/big-o-notation/"&gt;https://codingbackside.wordpress.com/2018/06/24/big-o-notation/&lt;/a&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;a href="https://www.asanzdiego.com/2018/12/la-notacion-o-grande-con-ejemplos-en-javascript.html"&gt;https://www.asanzdiego.com/2018/12/la-notacion-o-grande-con-ejemplos-en-javascript.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8bObltyr1Teho_RhO0wvyQEv8yqCVTJCz9_P1andc0JoXFKJ1DOXEiDxqi4oFsij5EGA1BOtx_hfmmxU9KDkT5w9ZbuyIbHOLEG5SKutnovu7v9BpM3glqaK6HxpvUoq8k-W9X_sP8ak/s72-c/1.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>API vs Microservicio: Microservicios más que un API</title><link>http://javaycafe.blogspot.com/2021/03/api-vs-microservicio-microservicios-mas.html</link><category>arquitectura</category><category>microservicios</category><author>noreply@blogger.com (JocLuis)</author><pubDate>Thu, 4 Mar 2021 10:35:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-911462904174865830</guid><description>&lt;p&gt;&amp;nbsp;&lt;span style="background-color: white; color: #666666; font-family: Lato, sans-serif; font-size: 16px;"&gt;Cuando escribimos software, se debe considerar la implementación y la arquitectura del código. El software es más eficiente cuando se escribe de una forma que la lógica tenga sentido. En forma adicional, se debe considerar la interacción con los usuarios, así como la interface que se utilizara.&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNqCAmqX9SFaIr7P_ZolgL1PhYNfIiChzsGV8h2kjfFstilJx2uc1orlhey3J4vwQT5WAoRd0lfF3-8kz6e-nQU8XiRKC948CQQ6BaqvB8RVN-8uHIMpSU1MhnpSLP3T5S6AXc2OSphFg/s470/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="315" data-original-width="470" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNqCAmqX9SFaIr7P_ZolgL1PhYNfIiChzsGV8h2kjfFstilJx2uc1orlhey3J4vwQT5WAoRd0lfF3-8kz6e-nQU8XiRKC948CQQ6BaqvB8RVN-8uHIMpSU1MhnpSLP3T5S6AXc2OSphFg/s320/1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;Ambos, el concepto de un API y el concepto de microservicios envuelven la estructura e interacciones del software. Un microservicio puede mal interpretarse en algo similar a un API, pero los microservicios tienen mucha más flexibilidad y capacidad que eso. En el artículo revisamos las diferencias entre las API y los microservicios, y detallaremos algunos de los beneficios de un microservicio.&lt;/p&gt;&lt;h2 style="background-color: white; border: 0px; box-sizing: border-box; color: #222222; font-family: Lato, sans-serif; font-size: 28px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-weight: 400; line-height: 34px; margin: 0px; outline: 0px; padding: 0px 0px 18px; text-align: start; vertical-align: baseline;"&gt;¿Que es un API?&lt;/h2&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;Primero, definamos que es un API. De acuerdo a wikipedia, un API es:&lt;/p&gt;&lt;blockquote style="background-color: white; border-color: rgb(234, 234, 234) rgb(15, 190, 124) rgb(234, 234, 234) rgb(30, 115, 190); border-image: initial; border-style: solid; border-width: 1px 3px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-style: italic; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin: 0px 0px 20px; outline: 0px; padding: 20px; quotes: &amp;quot;&amp;quot; &amp;quot;&amp;quot;; text-align: start; vertical-align: baseline;"&gt;&lt;p style="border: 0px; box-sizing: border-box; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Un conjunto de definiciones de subrutinas, protocolos de comunicación y herramientas para crear software. En términos generales, es un conjunto de métodos de comunicación claramente definidos entre varios componentes.&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;Una manera fácil de pensar en una API es considerarla como un contrato de acciones que puede solicitar para un servicio en particular. Las API se usan hoy en una multitud de aplicaciones web, como redes sociales, software bancario y mucho más. El contrato estandarizado permite que las aplicaciones externas interactúen con otras.&lt;/p&gt;&lt;h2 style="background-color: white; border: 0px; box-sizing: border-box; color: #222222; font-family: Lato, sans-serif; font-size: 28px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-weight: 400; line-height: 34px; margin: 0px; outline: 0px; padding: 0px 0px 18px; text-align: start; vertical-align: baseline;"&gt;Acciones comúnes de un API&lt;/h2&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;En el mundo actual, los APIs son usualmente desarrollados con el estilo RESTful. Estos APIs tiene un conjunto de verbos asociados con las acciones del protocolo HTTP, tal como:&lt;/p&gt;&lt;ul style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; list-style: square; margin: 0px 0px 30px; outline: 0px; padding: 0px 0px 0px 35px; text-align: start; vertical-align: baseline;"&gt;&lt;li style="border: 0px; box-sizing: border-box; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;GET (obtener un único elemento o una colección)&lt;/li&gt;&lt;li style="border: 0px; box-sizing: border-box; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;POST (agregar un elemento a una colección)&lt;/li&gt;&lt;li style="border: 0px; box-sizing: border-box; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;PUT (editar un elemento que existe en una colección)&lt;/li&gt;&lt;li style="border: 0px; box-sizing: border-box; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;DELETE (eliminar un elemento de una colección)&lt;/li&gt;&lt;/ul&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;La ventaja de esta coherencia a través de diferentes aplicaciones es tener un estándar al realizar diversas acciones. Los cuatro verbos de HTTP se correlacionan con las capacidades CRUD que muchas aplicaciones usan hoy en día. Cuando se trabaja con diferentes APIs en una aplicación, esto constituye una forma reconocible de comprender las implicaciones de las acciones tomadas en diferentes interfaces.&lt;/p&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;Ahora que revisamos sobre las APIs, echemos un vistazo a los microservicios.&lt;/p&gt;&lt;h2 style="background-color: white; border: 0px; box-sizing: border-box; color: #222222; font-family: Lato, sans-serif; font-size: 28px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-weight: 400; line-height: 34px; margin: 0px; outline: 0px; padding: 0px 0px 18px; text-align: start; vertical-align: baseline;"&gt;¿Que es un Microservicio?&lt;/h2&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;De acuerdo a la definición de wikipedia, un microservicio es:&lt;/p&gt;&lt;blockquote style="background-color: white; border-color: rgb(234, 234, 234) rgb(15, 190, 124) rgb(234, 234, 234) rgb(30, 115, 190); border-image: initial; border-style: solid; border-width: 1px 3px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-style: italic; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin: 0px 0px 20px; outline: 0px; padding: 20px; quotes: &amp;quot;&amp;quot; &amp;quot;&amp;quot;; text-align: start; vertical-align: baseline;"&gt;&lt;p style="border: 0px; box-sizing: border-box; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Una técnica de desarrollo de software: una variante del estilo arquitectónico de arquitectura orientada a servicios (SOA) que estructura una aplicación como una colección de servicios acoplados libremente. En una arquitectura de microservicios, los servicios son específicos y los protocolos son livianos.&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;Pero antes de profundizar en lo que son los microservicios y cómo pueden ser útiles, echemos un vistazo rápido a una arquitectura monolitica. Comprender cómo los microservicios difieren de los monoliticos le dará una mejor idea de los beneficios de pasar a una arquitectura de microservicios.&lt;/p&gt;&lt;h2 style="background-color: white; border: 0px; box-sizing: border-box; color: #222222; font-family: Lato, sans-serif; font-size: 28px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-weight: 400; line-height: 34px; margin: 0px; outline: 0px; padding: 0px 0px 18px; text-align: start; vertical-align: baseline;"&gt;Aplicaciones Monolíticas&lt;/h2&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;En los inicios del desarrollo de software (y aún en muchos negocios hoy), existe el concepto de monolítico. Una aplicación monolítica es una aplicación única que contiene una colección compleja de funcionalidades, que sirve como un lugar para almacenar todo. Arquitectónicamente, se ve así:&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3rowNLZxhtYJ2tdd4udAcQb_MQ8omE_6_39gq3eK6H_1KCmcL4K4n1vSBZ5-BHCE0JMSUQx8KzlA01I2hkSVdLPXNON8c0gkZCZUBMoC1skmbOHnugHToP9nO6aFRLXQjrIP2BmmcK-M/s460/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="460" data-original-width="440" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3rowNLZxhtYJ2tdd4udAcQb_MQ8omE_6_39gq3eK6H_1KCmcL4K4n1vSBZ5-BHCE0JMSUQx8KzlA01I2hkSVdLPXNON8c0gkZCZUBMoC1skmbOHnugHToP9nO6aFRLXQjrIP2BmmcK-M/s320/2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;Todos los componentes de la aplicación residen en un área, incluida la capa de interface gráfica, la capa de lógica de negocios y la capa de acceso a datos. Crear aplicaciones monolíticas es un proceso fácil y natural, y la mayoría de proyectos comienzan de esta manera. Pero agregar funcionalidad a la base de código provoca un aumento tanto en el tamaño como en la complejidad, y permitir que este tipo de aplicaciones crezca conlleva desventajas con el tiempo, algunas de estas desventajas conlleva a:&lt;/p&gt;&lt;ul style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; list-style: square; margin: 0px 0px 30px; outline: 0px; padding: 0px 0px 0px 35px; text-align: start; vertical-align: baseline;"&gt;&lt;li style="border: 0px; box-sizing: border-box; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Riesgo de caer en la gran bola de lodo anti-patrón, por el volumen de la aplicación, que llegue un momento y no se pueda entender desde un alto nivel.&lt;/li&gt;&lt;li style="border: 0px; box-sizing: border-box; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Restricción de la antiguedad tecnologíca dentro de la aplicación monolítica. Especialmente a medida que la aplicación crece, la capacidad de moverse hacia una tecnología diferente se vuelve cada vez más díficil.&lt;/li&gt;&lt;li style="border: 0px; box-sizing: border-box; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Realizar cualquier código en la base del código afecta a toda la aplicación, sin importar cuán pequeña sea.&lt;/li&gt;&lt;/ul&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;Entonces, ¿Cual es la alternativa a construir una aplicación monolítica?. Una alternativa es, tomar la aplicación monolítica y dividirla en microservicios.&lt;/p&gt;&lt;h2 style="background-color: white; border: 0px; box-sizing: border-box; color: #222222; font-family: Lato, sans-serif; font-size: 28px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-weight: 400; line-height: 34px; margin: 0px; outline: 0px; padding: 0px 0px 18px; text-align: start; vertical-align: baseline;"&gt;¿Que es un Microservicio?&lt;/h2&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;Tomemos el ejemplo de la aplicación monolítica y modifiquemosla para utilizar microservicios. En este caso, la arquitectura de la aplicación cambiara y se verá de la siguiente forma:&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUpmUfUj38gv2Aqung6yDvcFwHfPhMUItgMkhwz8-PrKAQOOVwTVSqT2coFrgpRG41FMxioE1U01aIUXjfJKI5xmfzfkFfkODtxT6oPWFTY9GP_Qe300TacgdMN-bBAcJHgbt6HVnkOEo/s560/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="500" data-original-width="560" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUpmUfUj38gv2Aqung6yDvcFwHfPhMUItgMkhwz8-PrKAQOOVwTVSqT2coFrgpRG41FMxioE1U01aIUXjfJKI5xmfzfkFfkODtxT6oPWFTY9GP_Qe300TacgdMN-bBAcJHgbt6HVnkOEo/s320/3.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;Hay algunas conclusiones clave de esta nueva arquitectura:&lt;/p&gt;&lt;ul style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; list-style: square; margin: 0px 0px 30px; outline: 0px; padding: 0px 0px 0px 35px; text-align: start; vertical-align: baseline;"&gt;&lt;li style="border: 0px; box-sizing: border-box; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Las secciones desglosadas de la lógica empresarial, cada una de las cuales abarca un microservicio. En lugar de tener un límite único para toda la aplicación, la aplicación se divide en pedazos. La complejidad de la aplicación se reduce, ya que los diferentes servicios tienen interacciones bien definidos entre sí.&lt;/li&gt;&lt;li style="border: 0px; box-sizing: border-box; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;La capa de interface gráfica de antes solo necesita interactuar con el cliente y los microservicios de eventos, eliminando una dependencia para los microservicios de facturación en la interface gráfica.&lt;/li&gt;&lt;li style="border: 0px; box-sizing: border-box; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;El microservicio de facturación no necesita almacenar datos, por lo que no tiene una capa de acceso a datos, en cambio, interactúa y procesa datos directamente desde el microservicio del cliente y del evento.&lt;/li&gt;&lt;/ul&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;Ventajas de utilizar este tipo de arquitectura:&lt;/p&gt;&lt;ul style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; list-style: square; margin: 0px 0px 30px; outline: 0px; padding: 0px 0px 0px 35px; text-align: start; vertical-align: baseline;"&gt;&lt;li style="border: 0px; box-sizing: border-box; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Es más fácil separar las preocupaciones. Estos límites entre las áreas ayudan con el desarrollo (Solo necesitan preocuparse por los microservicios, no por la aplicación completa) y por comprender la arquitectura de la aplicación.&lt;/li&gt;&lt;li style="border: 0px; box-sizing: border-box; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;A diferencia de una aplicación monolítica, un microservicio puede usar una tecnología diferente según sea necesario.&amp;nbsp;&lt;/li&gt;&lt;li style="border: 0px; box-sizing: border-box; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Las implementaciones de la aplicación en su conjunto se vuelven más enfocadas. Los microservicios brindan la flexibilidad de implementar diferentes servicios según sea necesario.&lt;/li&gt;&lt;/ul&gt;&lt;h2 style="background-color: white; border: 0px; box-sizing: border-box; color: #222222; font-family: Lato, sans-serif; font-size: 28px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-weight: 400; line-height: 34px; margin: 0px; outline: 0px; padding: 0px 0px 18px; text-align: start; vertical-align: baseline;"&gt;Diferencia entre APIs y Microservicios&lt;/h2&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;Hay muchas diferencias entre APIs y Microservicios:&lt;/p&gt;&lt;ul style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; list-style: square; margin: 0px 0px 30px; outline: 0px; padding: 0px 0px 0px 35px; text-align: start; vertical-align: baseline;"&gt;&lt;li style="border: 0px; box-sizing: border-box; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Un API es un contrato que proporciona orientación para que un consumidor use un determinado servicio.&lt;/li&gt;&lt;li style="border: 0px; box-sizing: border-box; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;Un microservicio es un diseño arquitectónico que separa partes de una aplicación (generalmente monolítica) en pequeños servicios independientes.&lt;/li&gt;&lt;/ul&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;Por definición, esto significa que un API suele ser una parde de un microservicio, lo que permite la interacción con el propio microservicio. Otra forma de pensar en esto es que la API sirve como un contrato para las interacciones dentro del microservicio, presentando las opciones disponibles para interactuar con el microservicio.&lt;/p&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;Sin embargo, si miramos el diagrama de microservicios anterior, podemos ver que cada microservicios se construye de manera ligeramente diferente según sus necesidades.&lt;/p&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;Una aplicación completa puede abarcar una serie de microservicios que usan sus propias APIs para comunicarse entre sí. Además, cada uno de estos microservicios puede abstraer su propia funcionalidad, trazando límites lógicos para la responsabilidad en la aplicación y separando las preocupaciones para crear una base de código más fácil de mantener.&lt;/p&gt;&lt;h2 style="background-color: white; border: 0px; box-sizing: border-box; color: #222222; font-family: Lato, sans-serif; font-size: 28px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-weight: 400; line-height: 34px; margin: 0px; outline: 0px; padding: 0px 0px 18px; text-align: start; vertical-align: baseline;"&gt;Conclusiones&lt;/h2&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;Con suerte, ahora tiene una mejor comprensión de lo que son las APIs y los microservicios. El mantenimiento y la calidad del código son partes clave de la estrategía de TI exitosa. Los microservicios ayudan en este objetivo. Mantienen a sus equipos ágiles y lo ayudan a satisfacer las demandas de los clientes al producir código de alta calidad y fácil de mantener.&lt;/p&gt;&lt;hr style="background-color: #eaeaea; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; height: 1px; margin: 30px 0px; text-align: start;" /&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;Este artículo se encuentra basado en&amp;nbsp;&lt;a href="https://dzone.com/articles/api-vs-microservices-a-microservice-is-more-than-j" rel="noopener noreferrer" style="border: 0px; box-sizing: border-box; color: #1e73be; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none; transition: all 0.5s ease 0s; vertical-align: baseline;" target="_blank"&gt;API vs Microservices: A Microservice Is More Than Just an API&lt;/a&gt;.&amp;nbsp; y traducido por&amp;nbsp;&lt;a href="https://www.clubdetecnologia.net/"&gt;https://www.clubdetecnologia.net/&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;p style="background-color: white; border: 0px; box-sizing: border-box; color: #666666; font-family: Lato, sans-serif; font-size: 16px; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 24px; margin: 0px 0px 15px; outline: 0px; padding: 0px; text-align: start; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;span style="background-color: white; color: #666666; font-family: Lato, sans-serif; font-size: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNqCAmqX9SFaIr7P_ZolgL1PhYNfIiChzsGV8h2kjfFstilJx2uc1orlhey3J4vwQT5WAoRd0lfF3-8kz6e-nQU8XiRKC948CQQ6BaqvB8RVN-8uHIMpSU1MhnpSLP3T5S6AXc2OSphFg/s72-c/1.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Oracle: ¿Cómo encriptar paquete?</title><link>http://javaycafe.blogspot.com/2020/04/oracle-como-encriptar-paquete.html</link><author>noreply@blogger.com (JocLuis)</author><pubDate>Thu, 2 Apr 2020 15:18:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-5731624439641827298</guid><description>¿Tienes un paquete que tiene un lógica importante en tu sistema? En Oracle existe una forma de encriptar esa porción de código.&lt;br /&gt;
&lt;br /&gt;
También conocido con la terminología "ofuscar" (encubrir), alguna veces es necesario ya que damos acceso a nuestras bases de datos a personal que tal vez solo están de paso por nuestra empresa, a continuación detallo los pasos.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Antes de iniciar&lt;/u&gt;: Guarda el código fuente original, al momento de encriptar ya no hay vuelta atrás considerar que Oracle utiliza el método hash (no reversible).&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Existe un ejecutable en $ORACLE_HOME/bin que se llama wrap. Llamándolo desde la consola.&lt;/li&gt;
&lt;li&gt;Teniendo el cuerpo del paquete preparado y con nombre:&amp;nbsp; ob_pack_body.sql&lt;/li&gt;
&lt;li&gt;Ejecutamos en la consola lo siguiente:&amp;nbsp;&lt;/li&gt;
wrap edebug=wrap_new_sql iname=ob_pack_body.sql
&lt;li&gt;Finalmente compilen el paquete y&amp;nbsp;voila&lt;/li&gt;
&lt;ol&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Ojo: Sólo hemos creado el body del paquete, se entiende que la cabecera ha sido creada de forma normal.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/ol&gt;
&lt;/ol&gt;
</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>A hidden message </title><link>http://javaycafe.blogspot.com/2019/07/a-hidden-message.html</link><category>music</category><author>noreply@blogger.com (JocLuis)</author><pubDate>Fri, 5 Jul 2019 11:17:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-1296070874899739681</guid><description>Cambiamos un poco el enfoque del blog, publicaré de todo un poco.&lt;br /&gt;
&lt;br /&gt;
Uno de mis grupos favoritos, Queen (primero siempre The Beatles), del cual me pareció alucinante su película.&lt;br /&gt;
Mientras escuchaba sus canciones en Youtube, un comentario salvaje apreció.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiM5uz1GW4Lt2DpNCQ6SuTfkBom9Im8P5LF6aY7HmTxuPP8MKHS5IGxfVmHUbdc5h2DOqpoYQi-zTb9JEXbM46kuEEDgPM8KaPb7DGodT4dSSY-DKmE1UmE6mbMbNX78G2PsVOfQ0O6vIU/s1600/WhatsApp+Image+2019-03-29+at+15.09.20.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="521" data-original-width="750" height="222" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiM5uz1GW4Lt2DpNCQ6SuTfkBom9Im8P5LF6aY7HmTxuPP8MKHS5IGxfVmHUbdc5h2DOqpoYQi-zTb9JEXbM46kuEEDgPM8KaPb7DGodT4dSSY-DKmE1UmE6mbMbNX78G2PsVOfQ0O6vIU/s320/WhatsApp+Image+2019-03-29+at+15.09.20.jpeg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
¿Qué opinan?&lt;br /&gt;
&lt;br /&gt;
---------------------------&lt;br /&gt;
This is my first post after a few years, so I am so excited. Queen is one of my favorite groups. What do you think about this comment?&lt;br /&gt;
&lt;br /&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiM5uz1GW4Lt2DpNCQ6SuTfkBom9Im8P5LF6aY7HmTxuPP8MKHS5IGxfVmHUbdc5h2DOqpoYQi-zTb9JEXbM46kuEEDgPM8KaPb7DGodT4dSSY-DKmE1UmE6mbMbNX78G2PsVOfQ0O6vIU/s72-c/WhatsApp+Image+2019-03-29+at+15.09.20.jpeg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>¿Cómo empezar mi APP Android?</title><link>http://javaycafe.blogspot.com/2017/09/como-empezar-mi-app-android.html</link><author>noreply@blogger.com (JocLuis)</author><pubDate>Sat, 30 Sep 2017 19:06:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-163453248282585099</guid><description>He estado investigando la mejor forma de desarrollar una aplicación móvil. Al inicio empece como todos bien "guerrero" con mi MySQL y servicios con PHP pero luego dije como hago el monitoreo, analytics, entre otras gestiones. No inventemos la rueda para eso existen ya un sin fin de plataformas de ayuda de desarrollo de aplicaciones móviles, en este caso usaremos FireBase de google.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
¿Qué es FireBase?&lt;br /&gt;
&lt;div&gt;
Nada resume mejor que un video explicativo desde su &lt;a href="https://firebase.google.com/" rel="nofollow" target="_blank"&gt;página oficial&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/cNPCgJW8c-E/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/cNPCgJW8c-E?feature=player_embedded" width="320"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Entre las cosas que maneja tenemos:&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://media.licdn.com/mpr/mpr/AAEAAQAAAAAAAAlDAAAAJDFiNDljZGVkLTcyN2QtNGEwZS05OTVhLTVlZDg5ZDBmZWE3MQ.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="400" data-original-width="698" height="228" src="https://media.licdn.com/mpr/mpr/AAEAAQAAAAAAAAlDAAAAJDFiNDljZGVkLTcyN2QtNGEwZS05OTVhLTVlZDg5ZDBmZWE3MQ.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Veo en su web que tiene un sin fin de documentación, lo contra es que puedes elegir planes desde free hasta lo que consumes mensual pagas. Pero en realidad se ve que vale la pena y no invertir dinero y esfuerzo en crear de nuevo la rueda.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
En el próximo Post ya vamos a ir viendo la creación del login con el API que podemos usar con firebase.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://img.youtube.com/vi/cNPCgJW8c-E/default.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Android - Navegar en APP - Ejemplo01</title><link>http://javaycafe.blogspot.com/2017/08/android-navegar-en-app-ejemplo01.html</link><author>noreply@blogger.com (JocLuis)</author><pubDate>Tue, 8 Aug 2017 01:18:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-4788584695880552598</guid><description>Lo primero que debemos de saber para navegar en diferentes interfaces de una APP es tener en cuenta que un activity es como una página web en el idioma android.&lt;br /&gt;
&lt;br /&gt;
Para navegar de activity a otro activity, sólo utiliza el siguiente código:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;pre style="background-color: #2b2b2b; color: #a9b7c6; font-family: 'Menlo'; font-size: 9.0pt;"&gt;&lt;span style="background-color: #344134;"&gt;Intent&lt;/span&gt; intent = &lt;span style="color: #cc7832;"&gt;new &lt;/span&gt;&lt;span style="background-color: #344134;"&gt;Intent&lt;/span&gt;(MainActivity.&lt;span style="color: #cc7832; font-size: 9pt;"&gt;this,&lt;/span&gt;Main2Activity.&lt;span style="color: #cc7832; font-size: 9pt;"&gt;class&lt;/span&gt;&lt;span style="font-size: 9pt;"&gt;)&lt;/span&gt;&lt;span style="color: #cc7832; font-size: 9pt;"&gt;;&lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="background-color: #2b2b2b; color: #a9b7c6; font-family: 'Menlo'; font-size: 9.0pt;"&gt;startActivity(intent)&lt;span style="color: #cc7832; font-size: 9pt;"&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;br /&gt;
Donde:&lt;br /&gt;
&lt;br /&gt;
MainActivity--&amp;gt; Es el activity donde te encuentras.&lt;br /&gt;
Main2Activity--&amp;gt;Es el activity donde quieres ingresar.&lt;br /&gt;
&lt;br /&gt;
Recuerda que esta porción de código lo debes de ingresar dentro de un evento onClick de un botón de la siguiente forma (el id del botón es "button"):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background-color: #2b2b2b; color: #a9b7c6; font-family: 'Menlo'; font-size: 9.0pt;"&gt;Button bSiguiente = (Button)findViewById(R.id.&lt;span style="color: #9876aa; font-style: italic;"&gt;button&lt;/span&gt;)&lt;span style="color: #cc7832;"&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background-color: #2b2b2b; color: #a9b7c6; font-family: 'Menlo'; font-size: 9.0pt;"&gt;bSiguiente.setOnClickListener(&lt;span style="color: #cc7832;"&gt;new &lt;/span&gt;View.OnClickListener() {
    &lt;span style="color: #bbb529;"&gt;@Override&lt;/span&gt;&lt;span style="color: #bbb529;"&gt;    &lt;/span&gt;&lt;span style="color: #cc7832;"&gt;public void &lt;/span&gt;&lt;span style="color: #ffc66d;"&gt;onClick&lt;/span&gt;(View view) {
        Intent intent = &lt;span style="color: #cc7832;"&gt;new &lt;/span&gt;Intent(MainActivity.&lt;span style="color: #cc7832;"&gt;this,&lt;/span&gt;Main2Activity.&lt;span style="color: #cc7832;"&gt;class&lt;/span&gt;)&lt;span style="color: #cc7832;"&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background-color: #2b2b2b; color: #a9b7c6; font-family: 'Menlo'; font-size: 9.0pt;"&gt;        startActivity(intent)&lt;span style="color: #cc7832; font-size: 9pt;"&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background-color: #2b2b2b; color: #a9b7c6; font-family: 'Menlo'; font-size: 9.0pt;"&gt;&lt;span style="color: #cc7832;"&gt;    &lt;/span&gt;}
})&lt;span style="color: #cc7832;"&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
Acá te dejo el código en github:&lt;br /&gt;
&lt;a href="https://github.com/jocluis/Ejemplo01.git" target="_blank"&gt;https://github.com/jocluis/Ejemplo01.git&amp;nbsp;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Android Básico - Instalación</title><link>http://javaycafe.blogspot.com/2017/07/android-basico-parte-1.html</link><category>android</category><category>Java</category><author>noreply@blogger.com (JocLuis)</author><pubDate>Tue, 25 Jul 2017 00:45:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-6848927487383430883</guid><description>Retomando el blog, desde hoy aprenderemos juntos a desarrollar aplicaciones móviles:&lt;br /&gt;
&lt;br /&gt;
En este tutorial empezaremos con la instalación y primera APP (Hola Mundo), una recomendación tener una computador con mínimo 10 Gigas de RAM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/aYIJqQ-EkfQ/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/aYIJqQ-EkfQ?feature=player_embedded" width="320"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Créditos al canal Youtube:&amp;nbsp;MaxQuePixels</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://img.youtube.com/vi/aYIJqQ-EkfQ/default.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Ejemplos con Having en Oracle</title><link>http://javaycafe.blogspot.com/2015/05/ejemplos-con-having-en-oracle.html</link><category>BD</category><category>Oracle</category><category>PLSQL</category><category>SQL</category><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 5 May 2015 00:34:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-3139768508587226298</guid><description>Les comento que un compañero de mi trabajo toma un examen de Oracle / PLSQL a los que pasaron todas las pruebas previas (psicotécnico, razonamiento, etc). Pero he aquí la diferencia varios no saben usar esta sintaxis, su tipo pregunta es: Tengo 2 entidades Persona y Documentos, calcula las personas con más de un documento.&lt;br&gt;
&lt;br&gt;
Para comenzar vamos a los conceptos:&lt;br&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;Having es usando conjuntamente con GROUP BY.&lt;/li&gt;
&lt;li&gt;Funciones que se puede combinar:&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;&lt;ol&gt;
&lt;li&gt;SUM: Cuando requieras agrupar por cantidades que se acumulan y suman.&lt;/li&gt;
&lt;li&gt;COUNT: Cuando quieras buscar cantidades de registros sin sumar.&lt;/li&gt;
&lt;li&gt;MIN: Cuando requieras todos los registros mínimos a su valor.&lt;/li&gt;
&lt;li&gt;MAX:&amp;nbsp;Cuando requieras todos los registros mínimos a su valor.&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div&gt;
Vamos con unos ejemplos, tenemos la siguiente tabla simple:&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip65LWGvA1K5zDTUHOlwdX1HodbPV6nwtCZmziii48uMXoGc-mpN9-wM8ju4YLE_D2eBet355drLr6Z8aFHIgVe3g1-2EnrDhmyf2riEzognMzv4xcJsMDnvHmXFGCsjcgOjw0yKRnIg/s1600/Captura+de+pantalla+2015-05-05+a+la(s)%2B00.00.28.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip65LWGvA1K5zDTUHOlwdX1HodbPV6nwtCZmziii48uMXoGc-mpN9-wM8ju4YLE_D2eBet355drLr6Z8aFHIgVe3g1-2EnrDhmyf2riEzognMzv4xcJsMDnvHmXFGCsjcgOjw0yKRnIg/s1600/Captura+de+pantalla+2015-05-05+a+la(s)%2B00.00.28.png"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;b&gt;&lt;u&gt;1.- SUM:&lt;/u&gt;&lt;/b&gt; Queremos obtener la suma de total de temperatura por cada ciudad, lo podemos hacer con el siguiente query;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br&gt;&lt;/div&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;b&gt;SELECT ciudad, SUM(temperatura) from&lt;br&gt;muestras GROUP BY ciudad HAVING SUM(temperatura);&lt;/b&gt;&lt;/blockquote&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitzzLs3BBt1hUNrbLhed2rfOQ-w_tdJtUtaF3UmhE_k-Dw_XXZU6G7oQNW5xguqHLWJsofMLMX3pOBfogHUQOxD9AmUhBR-L3EFK-by4oYOwCEZA-waIVwYYlPbuSkRHtfQnluY08Thg/s1600/Captura+de+pantalla+2015-05-05+a+la(s)%2B00.12.03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitzzLs3BBt1hUNrbLhed2rfOQ-w_tdJtUtaF3UmhE_k-Dw_XXZU6G7oQNW5xguqHLWJsofMLMX3pOBfogHUQOxD9AmUhBR-L3EFK-by4oYOwCEZA-waIVwYYlPbuSkRHtfQnluY08Thg/s1600/Captura+de+pantalla+2015-05-05+a+la(s)%2B00.12.03.png"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Y si queremos sólo los que cumples que tengan más de 50 de total sumado de temperatura sólo le agregamos al final:&lt;/div&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;b&gt;SELECT ciudad, SUM(temperatura) from&lt;br&gt;muestras GROUP BY ciudad HAVING SUM(temperatura)&lt;span style="color: red;"&gt;&amp;gt;50&lt;/span&gt;;&lt;/b&gt;&lt;/blockquote&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJoarMkKS8nuiRoxZPyjwCkrmROe-kXcT5o4f6_G0sxtxLh5jkf8Vy2r3UPco7orCnCucUPCDsd12Dfzc_X4QNlCXnz46545R2tHppwrOLWTQBITnmgbGOsESmYpVOfB-TFmMag0PwvA/s1600/Captura+de+pantalla+2015-05-05+a+la(s)%2B00.12.15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJoarMkKS8nuiRoxZPyjwCkrmROe-kXcT5o4f6_G0sxtxLh5jkf8Vy2r3UPco7orCnCucUPCDsd12Dfzc_X4QNlCXnz46545R2tHppwrOLWTQBITnmgbGOsESmYpVOfB-TFmMag0PwvA/s1600/Captura+de+pantalla+2015-05-05+a+la(s)%2B00.12.15.png"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;&lt;u&gt;2.- COUNT:&lt;/u&gt;&lt;/b&gt;&amp;nbsp;Si quisiéramos saber cuantas veces se repite cada registro sólo hacemos la siguiente consulta:&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;br&gt;&lt;/div&gt;
&lt;br&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;b&gt;SELECT ciudad, COUNT(temperatura) from&amp;nbsp;&lt;/b&gt;&lt;b&gt;muestras GROUP BY ciudad HAVING COUNT(temperatura);&lt;/b&gt;&lt;/blockquote&gt;
&lt;div&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggull7PtN-6Lvt_o5CJ4VDzJJ07_t-TPk1t4-NKgmVgJZj8wldDn1PhI2aC0gO875LzZKuOxVpkXgCvhIYbjdxr9HkdG4MhVVYOSw3cRQJV9WnvyHiJ4qu0tEQtVKWZqxT4bz1WJVwRQ/s1600/Captura+de+pantalla+2015-05-05+a+la(s)%2B00.21.49.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggull7PtN-6Lvt_o5CJ4VDzJJ07_t-TPk1t4-NKgmVgJZj8wldDn1PhI2aC0gO875LzZKuOxVpkXgCvhIYbjdxr9HkdG4MhVVYOSw3cRQJV9WnvyHiJ4qu0tEQtVKWZqxT4bz1WJVwRQ/s1600/Captura+de+pantalla+2015-05-05+a+la(s)%2B00.21.49.png"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;div&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div&gt;
Ahora si queremos sólo las que tienen registros mayores a 2, esta es la consulta:&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;b&gt;SELECT ciudad, COUNT(temperatura) from&lt;br&gt;muestras GROUP BY ciudad HAVING COUNT(temperatura)&lt;span style="color: red;"&gt;&amp;gt;2&lt;/span&gt;;&lt;/b&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwqhoJ8dqOlgBB5Y80-1TH8j1xxsTbksDyt4283vnlVKfk8Qm7eIKQ9mlAwUAt1avqp4LUtOK-XiWHz5SJaSsgNLE-96yAmUMFTOpk77KR6jU56kVrmhjoM1bDXbtWLqAuyXPk7_1AOQ/s1600/Captura+de+pantalla+2015-05-05+a+la(s)%2B00.22.00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwqhoJ8dqOlgBB5Y80-1TH8j1xxsTbksDyt4283vnlVKfk8Qm7eIKQ9mlAwUAt1avqp4LUtOK-XiWHz5SJaSsgNLE-96yAmUMFTOpk77KR6jU56kVrmhjoM1bDXbtWLqAuyXPk7_1AOQ/s1600/Captura+de+pantalla+2015-05-05+a+la(s)%2B00.22.00.png"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;b&gt;&lt;u&gt;3.- MAX y MIN: &lt;/u&gt;&lt;/b&gt;Si quisiéramos saber cuanto es el máximo de cada uno de los registros pero no repetidos hacemos la siguiente consulta:&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;br&gt;&lt;/div&gt;
&lt;br&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;b&gt;SELECT ciudad, MAX(temperatura) FROM muestras&lt;br&gt;&amp;nbsp; GROUP BY ciudad HAVING MAX(temperatura);&lt;/b&gt;&lt;/blockquote&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMTqe1UiFvp5cHLucKugJpAwkp_LOoY2WIhmHQ6H7sAluDjCBxf2kCPrBPMFAgGtlscV2oh46Teq4ZIUKKnkl3616NdvonF9N6mi7K-y_KKJT1lGveaWCsup9NWAQRPp6PIeUjPS_AyA/s1600/Captura+de+pantalla+2015-05-05+a+la(s)%2B00.27.14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMTqe1UiFvp5cHLucKugJpAwkp_LOoY2WIhmHQ6H7sAluDjCBxf2kCPrBPMFAgGtlscV2oh46Teq4ZIUKKnkl3616NdvonF9N6mi7K-y_KKJT1lGveaWCsup9NWAQRPp6PIeUjPS_AyA/s1600/Captura+de+pantalla+2015-05-05+a+la(s)%2B00.27.14.png"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
Ahora si sólo queremos los mayores a 16 haríamos lo siguiente:&lt;br&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;b&gt;SELECT ciudad, MAX(temperatura) FROM muestras&lt;/b&gt;&lt;b&gt;&amp;nbsp; GROUP BY ciudad HAVING MAX(temperatura)&lt;span style="color: red;"&gt;&amp;gt;16&lt;/span&gt;;&lt;/b&gt;&lt;/blockquote&gt;
&lt;div class="separator" style="clear: both;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpXgkY6aiLh_SX-IvCIPCbhb3FNNTXx4YfGaishKt4_Ak6EaNVabb0JHj3v9v7o5O8n1RnvALBt_SKl-gzOetG08Rsjfrg1Tav-RGLVWfYkNHdnVgdbAvu_UZt_Z54adRI1b81mXdd1g/s1600/Captura+de+pantalla+2015-05-05+a+la(s)%2B00.27.26.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpXgkY6aiLh_SX-IvCIPCbhb3FNNTXx4YfGaishKt4_Ak6EaNVabb0JHj3v9v7o5O8n1RnvALBt_SKl-gzOetG08Rsjfrg1Tav-RGLVWfYkNHdnVgdbAvu_UZt_Z54adRI1b81mXdd1g/s1600/Captura+de+pantalla+2015-05-05+a+la(s)%2B00.27.26.png"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Para mínimo es la misma lógica.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Ahora se atreven a dar el examen y dar un respuesta? Espero esté todo claro. Espero verlos muy pronto.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;br&gt;&lt;/div&gt;
&lt;br&gt;
&lt;div class="" style="clear: both;"&gt;
PD: La misma idea funciona para la base de datos MySQL.&lt;/div&gt;
&lt;div class="" style="clear: both; text-align: left;"&gt;
El código de la tabla y registro es el siguiente:&lt;/div&gt;
&lt;blockquote class="tr_bq"&gt;
CREATE TABLE &amp;nbsp;`muestras` (&lt;br&gt;
&amp;nbsp; `ciudad` varchar(40) DEFAULT NULL,&lt;br&gt;
&amp;nbsp; `fecha` date DEFAULT NULL,&lt;br&gt;
&amp;nbsp; `temperatura` number(4) DEFAULT NULL&lt;br&gt;
) ;&lt;br&gt;
INSERT INTO `muestras` (`ciudad`, `fecha`, `temperatura`) VALUES&lt;br&gt;
('Madrid', '2005-03-17', 23),&lt;br&gt;
('París', '2005-03-17', 16),&lt;br&gt;
('Berlín', '2005-03-17', 15),&lt;br&gt;
('Madrid', '2005-03-18', 25),&lt;br&gt;
('Madrid', '2005-03-19', 24),&lt;br&gt;
('Berlín', '2005-03-19', 18);&lt;/blockquote&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip65LWGvA1K5zDTUHOlwdX1HodbPV6nwtCZmziii48uMXoGc-mpN9-wM8ju4YLE_D2eBet355drLr6Z8aFHIgVe3g1-2EnrDhmyf2riEzognMzv4xcJsMDnvHmXFGCsjcgOjw0yKRnIg/s72-c/Captura+de+pantalla+2015-05-05+a+la(s)%2B00.00.28.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Retorno</title><link>http://javaycafe.blogspot.com/2015/02/retorno.html</link><category>Personal</category><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 16 Feb 2015 23:24:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-8447002552918652284</guid><description>Hey! Amigos como han estado? Desde el día de hoy estoy de vuelta vamos a retomar el blog añadiendo algo de toque personal para no crear otro blog. Espero que les este yendo súper bien a todos. Si tiene alguna sugerencia siempre será bienvenida.&amp;nbsp;&lt;div&gt;&lt;div class="separator" style="clear: both;"&gt;JocLuis&lt;/div&gt;&lt;br&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><title>Tutorial JavaServer Faces</title><link>http://javaycafe.blogspot.com/2010/12/tutorial-javaserver-faces.html</link><category>cortitas</category><category>JSF</category><category>tutorial</category><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 13 Dec 2010 23:47:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-5363470991415026912</guid><description>Un buen tutorial de JSF&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.sicuma.uma.es/sicuma/Formacion/documentacion/JSF.pdf" target="_blank"&gt;Link directo&lt;/a&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>Consumir WebServices - Integrar Aplicaciones mediante WebServices</title><link>http://javaycafe.blogspot.com/2010/06/consumir-webservices-integrar.html</link><category>consumir Servicios</category><category>Java</category><category>NetBeans</category><category>soap</category><category>web services</category><author>noreply@blogger.com (Unknown)</author><pubDate>Wed, 30 Jun 2010 14:51:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-4730328642885748471</guid><description>Aveces tenemos la necesitad de usar servicios no propio de nuestra aplicación interna y requerimos servicios de otro proveedor o otra aplicación.&lt;br /&gt;
&lt;br /&gt;
En este caso al identificar la ubicación del servicio expuesto (WSDL) o la descripción del Web Services, podemos fácilmente consumirlo con NetBeans.&lt;br /&gt;
&lt;br /&gt;
Aquí un video demostrativo.&lt;br /&gt;
&lt;br /&gt;
&lt;object width="500" height="405"&gt;&lt;param name="movie" value="http://www.youtube.com/v/5cU0k15vps8&amp;hl=es_ES&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6&amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/5cU0k15vps8&amp;hl=es_ES&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="405"&gt;&lt;/embed&gt;&lt;/object&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></item><item><title>Creación de un Web Services desde una clase Java</title><link>http://javaycafe.blogspot.com/2010/06/creacion-de-un-web-services-desde-una.html</link><category>Java</category><category>soap</category><category>web services</category><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 29 Jun 2010 19:52:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-429801054260604236</guid><description>En este vídeo hecho por mi persona podrán ver una forma rápida y sencilla de como crear servicios web si tienes una clase Java.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;object width="500" height="405"&gt;&lt;param name="movie" value="http://www.youtube.com/v/neOrvOP49UE&amp;hl=es_ES&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6&amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/neOrvOP49UE&amp;hl=es_ES&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="405"&gt;&lt;/embed&gt;&lt;/object&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Introducción a Spring Framework</title><link>http://javaycafe.blogspot.com/2010/04/introduccion-spring-framework.html</link><category>Java</category><category>spring</category><author>noreply@blogger.com (Unknown)</author><pubDate>Thu, 22 Apr 2010 01:09:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-8019009796369635699</guid><description>¿Quieres aprender Spring?.&lt;br /&gt;
No sabes como comenzar, aquí un video demostrativo que te explica como es su funcionamiento.&lt;br /&gt;
&lt;br /&gt;
El IDE que utilizan es el SpringSource Tool, creado por la comunidad spring.(&lt;a href="http://www.springsource.com/products/springsource-tool-suite-download" target="_blank"&gt;Aquí el link&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/cXaXkqEA-Ug/0.jpg" src="https://www.youtube.com/embed/cXaXkqEA-Ug?feature=player_embedded" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://img.youtube.com/vi/cXaXkqEA-Ug/default.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">21</thr:total></item><item><title>Mejores prácticas al programar en Java</title><link>http://javaycafe.blogspot.com/2010/03/mejores-practicas-al-programar-en-java.html</link><category>Java</category><category>mejores practicas</category><category>presentaciones</category><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 16 Mar 2010 00:09:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-5211854606021150730</guid><description>Aquí les dejo una presentación sobre las mejores prácticas al programar en Java.&lt;br /&gt;
Les sugiero que tomen apunten de estos tips, pues me di cuenta que aveces también caemos en lo erróneo.&lt;br /&gt;
&lt;img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bT*xJmx*PTEyNjg3MTU5ODkyMzQmcHQ9MTI2ODcxNTk5NjU3OCZwPTEwMTkxJmQ9c3NfZW1iZWQmZz*yJm89MTczNTUxM2Y1ODdi/NDRhN2EyMGNiMmQ3NDJiMmIyYjgmb2Y9MA==.gif" /&gt;&lt;div style="width:425px" id="__ss_3424120"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/luisdebello/best-practices-3424120" title="Best Practices"&gt;Best Practices&lt;/a&gt;&lt;/strong&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=bestpractices-100313181446-phpapp02&amp;stripped_title=best-practices-3424120" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=bestpractices-100313181446-phpapp02&amp;stripped_title=best-practices-3424120" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/luisdebello"&gt;Luis De Bello&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
Vía | &lt;a href="http://javacuriosities.blogspot.com/2010/03/java-best-practices.html" target="_blank"&gt;JavaCurioSities&lt;/a&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><enclosure length="3332" type="application/x-shockwave-flash" url="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=bestpractices-100313181446-phpapp02&amp;stripped_title=best-practices-3424120"/><itunes:explicit>no</itunes:explicit><itunes:subtitle>Aquí les dejo una presentación sobre las mejores prácticas al programar en Java. Les sugiero que tomen apunten de estos tips, pues me di cuenta que aveces también caemos en lo erróneo. Best PracticesView more presentations from Luis De Bello. Vía | JavaCurioSities</itunes:subtitle><itunes:author>noreply@blogger.com (Unknown)</itunes:author><itunes:summary>Aquí les dejo una presentación sobre las mejores prácticas al programar en Java. Les sugiero que tomen apunten de estos tips, pues me di cuenta que aveces también caemos en lo erróneo. Best PracticesView more presentations from Luis De Bello. Vía | JavaCurioSities</itunes:summary><itunes:keywords>Java, mejores practicas, presentaciones</itunes:keywords></item><item><title>Leer Excel con Java</title><link>http://javaycafe.blogspot.com/2010/03/leer-excel-con-java.html</link><category>excel</category><category>Java</category><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 15 Mar 2010 23:31:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-7212182747355245136</guid><description>Para leer los datos de un hoja de cálculo, sólo nos es necesario:&lt;br /&gt;
-Jar JXL(&lt;a href="http://www.fileden.com/files/2007/12/9/1635742//jxl.jar"&gt;Descargalo aquí&lt;/a&gt;).&lt;br /&gt;
-1 Hoja de calculo de Ejemplo&lt;br /&gt;
-Y el siguiente código. &lt;br /&gt;
&lt;pre class="prettyprint" style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
/**
 * @author JocLuis
 */
public class NewClass {
    public static void main(String[] args) throws IOException, BiffException {
        //ruta de la hoja del calculo 
        Workbook workbook = Workbook.getWorkbook(new File("c://Libro1.xls"));
        Sheet sheet = workbook.getSheet(0);//Elegimos la primera hoja
        Cell celdaCurso = null;//inicializo el objeto que leerá el valor de la celda
        String valorCeldaCurso=null;
        celdaCurso= sheet.getCell(7,1);//celda de la columna 7 y fila 1
        valorCeldaCurso= celdaCurso.getContents();//obteniendo valor
        System.out.println(valorCeldaCurso);
        workbook.close();
    }
}
&lt;/pre&gt;&lt;br /&gt;
Y esto será el resultado:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg278vKXMytmTYYSW0f3_39grmRkGfs8LtI3oWWzhEvNisTrriihcHKXsYdVIEcp1koCJb-lVFWdy_WSxX1mFensD0if_6EpKgl3YlK3N5j6eJGfYx75fPSefcPSMRZL7pe-pwiZxrzhQ/s1600-h/excel.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="244" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg278vKXMytmTYYSW0f3_39grmRkGfs8LtI3oWWzhEvNisTrriihcHKXsYdVIEcp1koCJb-lVFWdy_WSxX1mFensD0if_6EpKgl3YlK3N5j6eJGfYx75fPSefcPSMRZL7pe-pwiZxrzhQ/s640/excel.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
También mira:&lt;br /&gt;
&lt;a href="http://javaycafe.blogspot.com/2010/03/exportar-de-jsp-excel-table-to-excel.html" target="_blank"&gt;Exportar de JSP a Excel&lt;/a&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg278vKXMytmTYYSW0f3_39grmRkGfs8LtI3oWWzhEvNisTrriihcHKXsYdVIEcp1koCJb-lVFWdy_WSxX1mFensD0if_6EpKgl3YlK3N5j6eJGfYx75fPSefcPSMRZL7pe-pwiZxrzhQ/s72-c/excel.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total></item><item><title>Instalando OpenESB (GlassFish ESB)</title><link>http://javaycafe.blogspot.com/2010/03/instalando-openesb-glassfish-esb.html</link><category>esb</category><category>Java</category><category>openesb</category><category>soa</category><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 8 Mar 2010 23:03:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-6023730713053337</guid><description>En esta oportunidad, vamos a ver los pasos de como instalar OpenESB, para que posteriormente veamos algunos ejemplos.&lt;br /&gt;
&lt;br /&gt;
OpenESB, un proyecto open source que implementa un motor Enterprise Service Bus (ESB) basado en la especificación Java Business Integration (JBI). Un ESB es una pieza clave en las Arquitecturas Orientadas a Servicios (SOA).&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: blue;"&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Pre Requisitos:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;Se requiere haber instalado JDK, según los apuntes de instalación tengamos en cuenta lo siguiente:&lt;br /&gt;
&lt;br /&gt;
Si tienes JDK 5, debe ser una verión mayor o igual a 1.5.0_14&lt;br /&gt;
ó &lt;br /&gt;
Si JDK 6, debe ser una verión mayor o igual a  1.6.0_10, excepto 1.6.0_13 y 1.6.0_14 debido a incompatibilidades con los editores visuales de diseño de proyectos.&lt;br /&gt;
&lt;br /&gt;
Si aún no tienes instalado &lt;a href="http://javaycafe.blogspot.com/2008/05/insatalar-jdk-para-netbeans-ide-61.html"&gt;JDK puedes entrar a este link &lt;/a&gt;para ver como hacerlo. &lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: blue;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Instalación:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
Descargamos en la página oficial de &lt;a href="https://open-esb.dev.java.net/"&gt;OpenESB&lt;/a&gt; la última versión aquí &lt;a href="https://open-esb.dev.java.net/Downloads.html"&gt;https://open-esb.dev.java.net/Downloads.html&lt;/a&gt;.&lt;br /&gt;
Vemos que hay 2 formas de descargarlo:&lt;br /&gt;
Full Install: Esta forma contiene GlassFish y NetBeans con los plugins suficiente para iniciar a realizar trabajos de SOA.&lt;br /&gt;
Components only:Esta versión solo contiene el ESB sin GlassFish y Netbeans, los cuales los debes tener ya instalado y con sus plugins para que soporte componentes SOA.&lt;br /&gt;
&lt;br /&gt;
En esta ocación recomiendo descargar la versión &lt;b style="color: blue;"&gt;Full Install &lt;/b&gt;para no tener problemas en la hora de buscar los plugins e integrarlo con el GlassFish.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsQ0_pFVwctTtj7IHu7L9r7RU9dQVX4izF9Yk3F3Uq_qC4W1o0wUnAHgcHTke2YAKQEQo1NhviMtzSzxNzg56r2ltkZPTrPJU8gVFo7uh0Ueh5W8y0o0liPlZiSqYF8qGRoT_vwlxdJg/s1600-h/esb9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="104" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsQ0_pFVwctTtj7IHu7L9r7RU9dQVX4izF9Yk3F3Uq_qC4W1o0wUnAHgcHTke2YAKQEQo1NhviMtzSzxNzg56r2ltkZPTrPJU8gVFo7uh0Ueh5W8y0o0liPlZiSqYF8qGRoT_vwlxdJg/s640/esb9.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Esperemos que descarge e instalamos.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXaEjzFHe5slzNi0g0bPn383Y2_QfAM363GRW8f0MSlrBwxfVX72cLrcuYWMFYtjKDJKKtZD0cJlhTHGZ2UG8l4kp1TyEB88Mi_O_OrEK98ukXpFr0RlomcMYsZxwgSI-5sg7QhRd2Bw/s1600-h/esb1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="157" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXaEjzFHe5slzNi0g0bPn383Y2_QfAM363GRW8f0MSlrBwxfVX72cLrcuYWMFYtjKDJKKtZD0cJlhTHGZ2UG8l4kp1TyEB88Mi_O_OrEK98ukXpFr0RlomcMYsZxwgSI-5sg7QhRd2Bw/s400/esb1.jpg" width="400" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;
Si pulsamos en el botón Customize veremos más claramente los componentes a instalar: el GlassFish ESB DesignTime, que corresponde con NetBeans 6.7.1 con plugins SOA; y GlassFish ESB Runtime, que es el servidor GlassFish con JBI integrado y configurado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipBAIFzu5u5JLbRaYUp1rSqtJW_sJhyvILkOmiyUK-IokMMKeFXx_qWa8qoS5mXrXJJvkse4aWRRdcKJzC7yIwevFzDkMoh8ZpzZSp-3E0V6lKOeVplNc4gLXfyEzSTmYfEXC5MqOAzQ/s1600-h/esb3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="481" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipBAIFzu5u5JLbRaYUp1rSqtJW_sJhyvILkOmiyUK-IokMMKeFXx_qWa8qoS5mXrXJJvkse4aWRRdcKJzC7yIwevFzDkMoh8ZpzZSp-3E0V6lKOeVplNc4gLXfyEzSTmYfEXC5MqOAzQ/s640/esb3.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Luego nos pide la ruta donde instalar y la ruta del JDK, esto es importante validar para poder seguir la instalación.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTiA87jl4aI10JBdlR2f2kmkjwW6b_EwSK88yO4z_c45mliXk_g8TnQaBun6pAzo0CtWjtTj4psC0PaYAlQuee8gU5kfTgKcJJcdQYpzq1_Oqgnt4YBdtQT_Tt766n5jlrhiNZltmQXQ/s1600-h/esb4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="484" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTiA87jl4aI10JBdlR2f2kmkjwW6b_EwSK88yO4z_c45mliXk_g8TnQaBun6pAzo0CtWjtTj4psC0PaYAlQuee8gU5kfTgKcJJcdQYpzq1_Oqgnt4YBdtQT_Tt766n5jlrhiNZltmQXQ/s640/esb4.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Luego nos pide una serie de configuraciones para los puertos, estos números de puertos nos proporcionan por default. Podemos cambiarlo si es necesario.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4Eqe9DwDesZ7Vz2ZkvsEHhJmxtesu2dFli90hmXhX5KyUoOjSMEj_1h1kyorJ49Z0C0dpUcLkpxV8QAppio7hiE1DOP80Onnwi-AdyO8m582DDJM79eN-DF0C_OxBba3H0N71JuqSpA/s1600-h/esb5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="588" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4Eqe9DwDesZ7Vz2ZkvsEHhJmxtesu2dFli90hmXhX5KyUoOjSMEj_1h1kyorJ49Z0C0dpUcLkpxV8QAppio7hiE1DOP80Onnwi-AdyO8m582DDJM79eN-DF0C_OxBba3H0N71JuqSpA/s640/esb5.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Luego nos proporcinan una interfaz de validación de todo lo que hemos hecho anteriormente.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnQGEp9_wis82mq4dkLB6YoeQ7LrYBIFEqasZtI5SI6Vc22tCiWAmfN81NghAFr9-qH0fHgZE8Y2yI_E3mwwVEvQ0BP_EHr18mFQ1mgu4_9A0Xk434wDc9ih3vGWALjULDuHjFhWndOA/s1600-h/esb6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnQGEp9_wis82mq4dkLB6YoeQ7LrYBIFEqasZtI5SI6Vc22tCiWAmfN81NghAFr9-qH0fHgZE8Y2yI_E3mwwVEvQ0BP_EHr18mFQ1mgu4_9A0Xk434wDc9ih3vGWALjULDuHjFhWndOA/s640/esb6.jpg" width="577" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Instalamos y esperamos.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjskTb_QRBFnjVBKLvB9xKxfqHwcx1f0SLs2xGbSBBxa51acyXRCeYRad748MLxfwcJ-cuwq_oQ1fVEf0B3lhc0f86OuV-wIi2e5RIB-qm1tk5S0vT89IfiHY8ryWQNonFoq-khZnDp3A/s1600-h/esb7.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjskTb_QRBFnjVBKLvB9xKxfqHwcx1f0SLs2xGbSBBxa51acyXRCeYRad748MLxfwcJ-cuwq_oQ1fVEf0B3lhc0f86OuV-wIi2e5RIB-qm1tk5S0vT89IfiHY8ryWQNonFoq-khZnDp3A/s640/esb7.jpg" width="569" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Última pantalla de finalización de la instalación.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPOCDYvTU_pRA0BNh-ZVr-qbL1byYE0mCyA80A_TOU4rzTP4VeUQhUnYHv6PRYS5doTIFZzCsH1SH8a6n8k-0ycNsQDA8LwyRJLT5fdSHzp0Y9NB8E5RR23w3pLYzRjQuiYJvOp3z8Ww/s1600-h/esb8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPOCDYvTU_pRA0BNh-ZVr-qbL1byYE0mCyA80A_TOU4rzTP4VeUQhUnYHv6PRYS5doTIFZzCsH1SH8a6n8k-0ycNsQDA8LwyRJLT5fdSHzp0Y9NB8E5RR23w3pLYzRjQuiYJvOp3z8Ww/s640/esb8.jpg" width="569" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Y listo, ahora tenemos OpenESB listo para usarlo en nuestro computador.&lt;br /&gt;
&lt;br /&gt;
Abrimos el GlassFish ESB y escogemos nuevo proyecto en la opción SOA:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbOKNv1X79KVgvMC6rAkpA_AlhsY1aOnX0avnK5SfPFpc5Wj-16yZPYMefIjHN_xz0cGerjUASrHDyAXWrJEq3UtUBjOAtyBhDfrjJ0vhozl5pmxqpf_4qrIYGU_FFsQ6UdkM-pTa-Nw/s1600-h/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="440" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbOKNv1X79KVgvMC6rAkpA_AlhsY1aOnX0avnK5SfPFpc5Wj-16yZPYMefIjHN_xz0cGerjUASrHDyAXWrJEq3UtUBjOAtyBhDfrjJ0vhozl5pmxqpf_4qrIYGU_FFsQ6UdkM-pTa-Nw/s640/1.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Los tipos de proyectos que podremos diseñar e implementar son:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Composite Application&lt;/b&gt;. En un proyecto de este tipo simplemente añadimos otros proyectos SOA y de servicios web. Cada proyecto incluido se denomina componente o módulo, y son desplegados juntos en el contenedor JBI. Su interacción en runtime implementará una funcionalidad de negocio de SOA.&lt;br /&gt;
&lt;b&gt;BPEL Module&lt;/b&gt;. Los procesos de negocio que involucran varios servicios web u otros recursos pueden modelarse gráficamente y luego ejecutarse a través de un módulo BPEL. Su capacidad y propósito son mucho más limitados que un BPM, su finalidad es la orquestación de servicios para realizar composición de éstos, práctica esencial en SOA.&lt;br /&gt;
&lt;b&gt;XSLT Module&lt;/b&gt;. Una de las capacidades de un ESB es la transformación de los mensajes XML que se enrutan a través del Bus. Las transformaciones de un tipo de XML a otro se realizan mediante XSLT, y este módulo nos permite hacerlo.&lt;br /&gt;
&lt;b&gt;Data Mashup Module&lt;/b&gt;. Consiste en combinar varias fuentes de datos (hojas de cálculo, ficheros, bases de datos, servicios, etc) y presentarlo al servicio consumidor en un formato normalizado, como si fuese un único recurso (e.g., como tablas de base de datos). El ESB hace las tareas de composición de los datos y gestiona sus orígenes, de manera transparente al consumidor que únicamente se centra en su lógica sobre ellos.&lt;br /&gt;
&lt;br /&gt;
Bueno pronto haremos un ejemplo de como utilizar este producto.</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsQ0_pFVwctTtj7IHu7L9r7RU9dQVX4izF9Yk3F3Uq_qC4W1o0wUnAHgcHTke2YAKQEQo1NhviMtzSzxNzg56r2ltkZPTrPJU8gVFo7uh0Ueh5W8y0o0liPlZiSqYF8qGRoT_vwlxdJg/s72-c/esb9.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total></item><item><title>Exportar de JSP a Excel (Table to Excel Java)</title><link>http://javaycafe.blogspot.com/2010/03/exportar-de-jsp-excel-table-to-excel.html</link><category>Java</category><category>javaejemplo</category><category>JSP</category><author>noreply@blogger.com (Unknown)</author><pubDate>Sat, 6 Mar 2010 00:32:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-5733133897376325588</guid><description>Una Forma rápida y fácil de obtener un excel a partir de un jsp puede ser de la siguiente manera:&lt;br /&gt;
Sólo agregando en la cabecera del documento&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
&lt;i&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;response.setContentType ("application/vnd.ms-excel"); &lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; response.setHeader ("Content-Disposition", "attachment;filename=\"report.xls\"");&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Podemos comprenderlo mejor con el siguiente Ejemplo.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="prettyprint" style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;
&amp;lt;%@ page language="java" contentType="text/html; charset=ISO-8859-1"

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pageEncoding="ISO-8859-1"%&amp;gt;

&amp;lt;%

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response.setContentType ("application/vnd.ms-excel"); //Tipo de fichero.

response.setHeader ("Content-Disposition", "attachment;filename=\"report.xls\"");

%&amp;gt;

&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&amp;gt;

&amp;lt;html&amp;gt;

&amp;lt;head&amp;gt;

&amp;lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"&amp;gt;

&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;

&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;

&amp;lt;TABLE border="1"&amp;gt;

&amp;lt;TR&amp;gt;

&amp;lt;TH&amp;gt;CICLO&amp;lt;/TH&amp;gt;

&amp;lt;TH&amp;gt;CODIGO&amp;lt;/TH&amp;gt;

&amp;lt;TH&amp;gt;APELLIDOS Y NOMBRES&amp;lt;/TH&amp;gt;

&amp;lt;/TR&amp;gt;

&amp;lt;TR&amp;gt;

 &amp;lt;TD&amp;gt;1&amp;lt;/TD&amp;gt;

&amp;nbsp;&amp;nbsp; &amp;lt;TD&amp;gt;12233&amp;lt;/TD&amp;gt;

&amp;nbsp;&amp;nbsp; &amp;lt;TD&amp;gt;JocLuis&amp;lt;/TD&amp;gt;

&amp;lt;/TR&amp;gt;



&amp;lt;/TABLE&amp;gt;

&amp;lt;/body&amp;gt;

&amp;lt;/html&amp;gt;
&lt;/code&gt;
&lt;/pre&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total></item><item><title>Comprobar una expresión XPath online</title><link>http://javaycafe.blogspot.com/2010/03/comprobar-una-expresion-xpath-online.html</link><category>xml</category><category>xpath</category><author>noreply@blogger.com (Unknown)</author><pubDate>Fri, 5 Mar 2010 23:40:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-1799726549593853660</guid><description>Si quieres comprobar al extraer valores de tu elemento que contenga cualquier esquema XML puedes hacerlo en &lt;a href="http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm" target="_blank"&gt;XPath Expression Testbed&lt;/a&gt; .&lt;br /&gt;
&lt;br /&gt;
La página te permite subir tu propio esquema y probar en online  expresiones, como también te permite hacer ejemplos con un esquema de  prueba, que mostramos acontinuación:&lt;pre class="prettyprint" style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;code&gt;
&amp;lt;?value="2"?&amp;gt; 
&amp;lt;parent name="data" &amp;gt; 
&amp;nbsp;&amp;nbsp; &amp;lt;child id="1"&amp;nbsp;&amp;nbsp;name="alpha" &amp;gt;Some Text&amp;lt;/child&amp;gt; 
&amp;nbsp;&amp;nbsp; &amp;lt;child id="2"&amp;nbsp;&amp;nbsp;name="beta" &amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;grandchild id="2.1"&amp;nbsp;&amp;nbsp;name="beta-alpha" &amp;gt;&amp;lt;/grandchild&amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;grandchild id="2.2"&amp;nbsp;&amp;nbsp;name="beta-beta" &amp;gt;&amp;lt;/grandchild&amp;gt; 
&amp;nbsp;&amp;nbsp; &amp;lt;/child&amp;gt; 
&amp;nbsp;&amp;nbsp; &amp;lt;pet name="tigger"&amp;nbsp;&amp;nbsp;type="cat" &amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;data&amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;birthday month="sept"&amp;nbsp;&amp;nbsp;day="19" &amp;gt;&amp;lt;/birthday&amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;food name="Acme Cat Food" &amp;gt;&amp;lt;/food&amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/data&amp;gt; 
&amp;nbsp;&amp;nbsp; &amp;lt;/pet&amp;gt; 
&amp;nbsp;&amp;nbsp; &amp;lt;pet name="Fido"&amp;nbsp;&amp;nbsp;type="dog" &amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;description&amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Large dog! 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/description&amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;data&amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;birthday month="feb"&amp;nbsp;&amp;nbsp;day="3" &amp;gt;&amp;lt;/birthday&amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;food name="Acme Dog Food" &amp;gt;&amp;lt;/food&amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/data&amp;gt; 
&amp;nbsp;&amp;nbsp; &amp;lt;/pet&amp;gt; 
&amp;nbsp;&amp;nbsp; &amp;lt;rogue name="is this real?" &amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;data&amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hates dogs! 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/data&amp;gt; 
&amp;nbsp;&amp;nbsp; &amp;lt;/rogue&amp;gt; 
&amp;nbsp;&amp;nbsp; &amp;lt;child id="3"&amp;nbsp;&amp;nbsp;name="gamma"&amp;nbsp;&amp;nbsp;mark="yes" &amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!-- A comment --&amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;description&amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Likes all animals - especially dogs! 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/description&amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;grandchild id="3.1"&amp;nbsp;&amp;nbsp;name="gamma-alpha" &amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;[CDATA[ Some non-parsable character data ]]&amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/grandchild&amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;grandchild id="3.2"&amp;nbsp;&amp;nbsp;name="gamma-beta" &amp;gt;&amp;lt;/grandchild&amp;gt; 
&amp;nbsp;&amp;nbsp; &amp;lt;/child&amp;gt; 
&amp;lt;/parent&amp;gt; 
&lt;/code&gt;

&lt;/pre&gt;&lt;br /&gt;
El cual podemos hacer las siguiente operaciones:&lt;br /&gt;
&lt;br /&gt;
-Acceder a un valor del NAME del CHILD con ID=1.&lt;br /&gt;
Bueno esto se escribirá de la siguiente manera:&lt;br /&gt;
&lt;b&gt;/parent/child[@id='1']/@name&lt;/b&gt;&lt;br /&gt;
Como muestra la imagen siguiente.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7f8NGUZAHXde1DjZpKASQaaOz7rzjdMGAw3k69jVrJSUNZ3MNRxBl5kx80x9dlchTDHjsHzbBKmkkj-qPF3n3zdz0tIFVKgVOVVG7oOS7mCEn_lnT1QkPLaSW_en0oPIKzcYtrb65Xw/s1600-h/path.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7f8NGUZAHXde1DjZpKASQaaOz7rzjdMGAw3k69jVrJSUNZ3MNRxBl5kx80x9dlchTDHjsHzbBKmkkj-qPF3n3zdz0tIFVKgVOVVG7oOS7mCEn_lnT1QkPLaSW_en0oPIKzcYtrb65Xw/s400/path.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
-Para recorrer por ejemplo todos los CHILD solo ponemos entre corchetes el número de campos.&lt;br /&gt;
Para &lt;b&gt;/parent/child[1]/@name&lt;/b&gt; el Resultado es  &lt;b&gt;alpha&lt;/b&gt;.&lt;br /&gt;
Para &lt;b&gt;/parent/child[2]/@name&lt;/b&gt; el Resultado es  &lt;b&gt;beta&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Y así sucesivamente, el cual lo podemos idear con un simple While.</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7f8NGUZAHXde1DjZpKASQaaOz7rzjdMGAw3k69jVrJSUNZ3MNRxBl5kx80x9dlchTDHjsHzbBKmkkj-qPF3n3zdz0tIFVKgVOVVG7oOS7mCEn_lnT1QkPLaSW_en0oPIKzcYtrb65Xw/s72-c/path.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Exportar a XML una tabla de MYSQL</title><link>http://javaycafe.blogspot.com/2010/02/exportar-xml-una-tabla-de-mysql.html</link><category>miscelandia</category><category>mysql</category><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 23 Feb 2010 13:15:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-199594281295810209</guid><description>&lt;div&gt;Sólo es factible para versiones mayores de 5.1 de MySQL&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: #000099;"&gt;Método 1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;
&lt;pre class="prettyprint" face="Andale Mono,Lucida Console,Monaco,fixed,monospace" size="12px" style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;b&gt;shell&amp;gt;mysql -u USUARIO -pCLAVE --xml -e "select * from NOMBRETABLA;" NOMBRE_BD&lt;/b&gt;&lt;/pre&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Ejemplo:&lt;/div&gt;&lt;div&gt;mi usuario mysql:root&lt;/div&gt;&lt;div&gt;mi clave:root&lt;/div&gt;&lt;div&gt;tablaname:producto&lt;/div&gt;&lt;div&gt;nombre BD:sgc&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;
&lt;pre class="prettyprint" style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;b&gt;shell&amp;gt;mysql -u root -proot --xml -e "select * from producto;" sgc&lt;/b&gt;&lt;/pre&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Si deseas &lt;i&gt;&lt;b&gt;guardarlo &lt;/b&gt;&lt;/i&gt;en un directorio, solo agregaríamos el siguiente código:&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;
&lt;pre class="prettyprint" style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"&gt;&lt;b&gt;shell&amp;gt;mysql -u root -proot --xml sgc -e "select * from producto" &amp;gt; /tmp/producto.xml&lt;/b&gt;&lt;/pre&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: large;"&gt;Método 2&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: large;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: large;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Este código ahora si lo puedes hacer luego de loguearte al mysql(cosa que no hacíamos en el anterior método):&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;Estructura de la tabla:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;PRODUCT&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;-----------&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;colum1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;colum2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;colum3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Hacemos un siemple query:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;-he tenido problemas para poder poner el código del query-&lt;a href="http://www.fileden.com/files/2007/12/9/1635742//select_export.txt"&gt;Lo adjunto aquí&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;Saludos&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #000099; font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;Tip:&lt;/b&gt;Siempre cuando vas a exportar se va cortar tu documento es recomendable crecer el tamaño del valor de group concat de la siguiente manera:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #000099; font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;SET GLOBAL group_concat_max_len =16384 ;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: large;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: #000099; font-size: large;"&gt;&lt;/span&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Llamar comandos Shell o del sistema desde Java</title><link>http://javaycafe.blogspot.com/2010/02/llamar-comandos-shell-o-del-sistema.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 23 Feb 2010 11:23:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-1421166874939699092</guid><description>Alguna vez han pensado hacer llamados del sistemas(códigos shell) desde Java.&lt;br /&gt;Aquí les dejo un curioso código.&lt;br /&gt;&lt;br /&gt;&lt;pre class="prettyprint" style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;br /&gt;       public static void main(String args[]) {&lt;br /&gt;&lt;br /&gt;               String s = null;&lt;br /&gt;&lt;br /&gt;               try {&lt;br /&gt;&lt;br /&gt;                       // Determinar en qué SO estamos&lt;br /&gt;                       String so = System.getProperty("os.name");&lt;br /&gt;                       String comando;&lt;br /&gt;                       // Comando para Linux&lt;br /&gt;                       if (so.equals("Linux"))&lt;br /&gt;                               comando = "ifconfig";&lt;br /&gt;                       // Comando para Windows&lt;br /&gt;                       else&lt;br /&gt;                              comando = "ipconfig";&lt;br /&gt;&lt;br /&gt;                       // Ejcutamos el comando&lt;br /&gt;                       Process p = Runtime.getRuntime().exec(comando);&lt;br /&gt;&lt;br /&gt;                       BufferedReader stdInput = new BufferedReader(new InputStreamReader(&lt;br /&gt;                                       p.getInputStream()));&lt;br /&gt;&lt;br /&gt;                       BufferedReader stdError = new BufferedReader(new InputStreamReader(&lt;br /&gt;                                       p.getErrorStream()));&lt;br /&gt;&lt;br /&gt;                       // Leemos la salida del comando&lt;br /&gt;                       System.out.println("Ésta es la salida standard del comando:\n");&lt;br /&gt;                       while ((s = stdInput.readLine()) != null) {&lt;br /&gt;                               System.out.println(s);&lt;br /&gt;                       }&lt;br /&gt;&lt;br /&gt;                       // Leemos los errores si los hubiera&lt;br /&gt;                       System.out.println("Ésta es la salida standard de error del comando (si la hay):\n");&lt;br /&gt;                       while ((s = stdError.readLine()) != null) {&lt;br /&gt;                               System.out.println(s);&lt;br /&gt;                       }&lt;br /&gt;&lt;br /&gt;                       System.exit(0);&lt;br /&gt;               } catch (IOException e) {&lt;br /&gt;                       System.out.println("Excepción: ");&lt;br /&gt;                       e.printStackTrace();&lt;br /&gt;                       System.exit(-1);&lt;br /&gt;               }&lt;br /&gt;       }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Pd:El link donde lo obtuve no recuerdo bien, pero si alguien lo encuentra bienvenido sea :D</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><title>Crear EXE de un JAR (jar to exe)</title><link>http://javaycafe.blogspot.com/2010/01/crear-exe-de-un-jar-jar-to-exe.html</link><category>cortitas</category><category>exe</category><category>Java</category><category>tutorial</category><author>noreply@blogger.com (Unknown)</author><pubDate>Fri, 22 Jan 2010 16:21:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-4099214599400210109</guid><description>Si alguna vez desean crear un compilable .exe desde un .jar, este tutorial de Domínguez Geniz Amalio Javier les puede ayudar.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.fileden.com/files/2007/12/9/1635742/TUTORIAL%20JAR%20Y%20EXE.pdf"&gt;Descargar el tutorial&lt;/a&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></item><item><title>Incrementar o Disminuir dias a una fecha con Java</title><link>http://javaycafe.blogspot.com/2010/01/incrementar-o-disminuir-dias-una-fecha.html</link><category>cortitas</category><category>Java</category><author>noreply@blogger.com (Unknown)</author><pubDate>Sun, 10 Jan 2010 17:24:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-8008050927565547182</guid><description>Les dejo un código que tal vez en algún momento les sirva de ayuda con las fechas.&lt;br /&gt;Solo aplicando el método ADD a la fecha podemos incrementar o disminuir "X" o "-X" dias a la fecha.&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Calendar fecha = Calendar.getInstance();&lt;/span&gt; // obtiene la fecha actual&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;System.out.println(fecha.getTime());&lt;/span&gt;     //Imprimimos la fecha actual&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;fecha.add(Calendar.DATE, 23);&lt;/span&gt;            //Incrementando 23 dias a la fecha&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;System.out.println(fecha.getTime());&lt;/span&gt;    //Fecha Incrementada&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;System.out.println(fecha.getTime().getDate());&lt;/span&gt; //Imprimiento el dia&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;System.out.println(fecha.getTime().getMonth()+1);&lt;/span&gt;//Imprimiento el mes&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;System.out.println(fecha.getTime().getYear()+1900);&lt;/span&gt;//Imprimiento el año&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Notese que al momento de querer saber el mes en entero, el dia y el año; le sumamos unas cantidades para que nos salgan generales.(es por una desfase que pasa al obtener enero por ejemplo nos sale 0 y diciembre 11; entonces sumamos 1 para que se ponga en fase.De la misma forma para el año.)</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></item><item><title>NetBeans 6.8 oficialmente en descarga</title><link>http://javaycafe.blogspot.com/2009/12/netbeans-68-oficialmente-en-descarga.html</link><category>Java</category><category>NetBeans</category><author>noreply@blogger.com (Unknown)</author><pubDate>Thu, 10 Dec 2009 15:11:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-3634804323354342753</guid><description>Veo en la página oficial de &lt;a href="http://netbeans.org/"&gt;NetBeans &lt;/a&gt;desde hoy se puede &lt;a href="http://netbeans.org/downloads/?pagelang=es"&gt;descargar &lt;/a&gt;la última versión.&lt;br /&gt;Aquí unos videos de lo nuevo de esta IDE que por ahora es la única en soportar Java EE 6 , aquí un video de la presentación de la IDE.&lt;br /&gt;&lt;br /&gt;&lt;object id="flashObj" width="486" height="322" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0"&gt;&lt;param name="movie" value="http://c.brightcove.com/services/viewer/federated_f9/1640183659?isVid=1&amp;publisherID=1460825906" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="flashVars" value="videoId=55590187001&amp;linkBaseURL=https%3A%2F%2Fchannelsun.sun.com%2Fmedia%2Fshow%2F14814&amp;playerID=1640183659&amp;domain=embed&amp;" /&gt;&lt;param name="base" value="http://admin.brightcove.com" /&gt;&lt;param name="seamlesstabbing" value="false" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="swLiveConnect" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed src="http://c.brightcove.com/services/viewer/federated_f9/1640183659?isVid=1&amp;publisherID=1460825906" bgcolor="#FFFFFF" flashVars="videoId=55590187001&amp;linkBaseURL=https%3A%2F%2Fchannelsun.sun.com%2Fmedia%2Fshow%2F14814&amp;playerID=1640183659&amp;domain=embed&amp;" base="http://admin.brightcove.com" name="flashObj" width="486" height="322" seamlesstabbing="false" type="application/x-shockwave-flash" allowFullScreen="true" swLiveConnect="true" allowScriptAccess="always" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Aquí puden &lt;a href="http://osum.sun.com/video/java-editing-in-netbeans-ide"&gt;ver una demostración de trabajar Java en esta nueva versión de NetBeans&lt;/a&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></item><item><title>Cambiar ícono -del cafecito- a un JFrame</title><link>http://javaycafe.blogspot.com/2009/12/cambiar-icono-del-cafecito-un-jframe.html</link><category>Java</category><category>JFrame</category><author>noreply@blogger.com (Unknown)</author><pubDate>Thu, 10 Dec 2009 01:29:00 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8440417393804315683.post-5212860641195111641</guid><description>En realidad casi siempre, los clientes, buscan hasta los ultimos detalles.&lt;br /&gt;Observación:Aveces clientes-&gt;Docentes-&gt;nota.(Caso Universitario).&lt;br /&gt;En este caso quería cambiar el ícono de los frames de mi proyecto Java para Escritorio.&lt;br /&gt;Comencemos , gracias al blog de &lt;a href="http://www.apuntesdejava.com/2008/11/cambiar-icono-un-jframe.htm" target="_blank"&gt;Diego Silva en Apuntes de Java&lt;/a&gt;:&lt;br /&gt;&lt;span style="font-size:x-large;"&gt;&lt;span style="font-weight: bold;"&gt;Paso 1&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;El ícono debe ser una imagen de extensión PNG. Esto se hace más fácil, ya que conseguir una figura y convertirlo en formato .ico es muy complicado. Los PNG nos ayudan bastante.&lt;br /&gt;&lt;span style="font-size:x-large;"&gt;&lt;span style="font-weight: bold;"&gt;Paso 2&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;La imagen que será el ícono debe estar dentro del paquete de fuentes, como si fuera una clase más. Si estuviera dentro de un paquete, sería mucho mejor.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgPbrxSZ2hiLPCZx8dw-0yFYvuUewB89mqaRgUF_0ypYeM2N5XlKfNjdCLO6R2IVYUfZt0Ij8zKx1HS-0usmaOK6PadDhs6xMVEIrOh8MbE9picgr5oYGOptmU4g0ed5LgCfXn3Z6IPf0B/s1600-h/jframe-icono1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgPbrxSZ2hiLPCZx8dw-0yFYvuUewB89mqaRgUF_0ypYeM2N5XlKfNjdCLO6R2IVYUfZt0Ij8zKx1HS-0usmaOK6PadDhs6xMVEIrOh8MbE9picgr5oYGOptmU4g0ed5LgCfXn3Z6IPf0B/s320/jframe-icono1.jpg" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:x-large;"&gt;Paso 3&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;En el código del JFrame que vamos a poner el ícono, sobreescribimos el método &lt;span style="font-style: italic; font-weight: bold;"&gt;getIconImage()&lt;/span&gt; conteniendo el siguiente código: (notar cómo se está llamando a la imagen .png)&lt;br /&gt;&lt;pre class="prettyprint"&gt;&lt;code class="prettyprint"&gt;&lt;span class="pln"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="lit"&gt;@Override&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kwd"&gt;public&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;Image&lt;/span&gt;&lt;span class="pln"&gt; getIconImage&lt;/span&gt;&lt;span class="pun"&gt;()&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="typ"&gt;Image&lt;/span&gt;&lt;span class="pln"&gt; retValue &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;Toolkit&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;getDefaultToolkit&lt;/span&gt;&lt;span class="pun"&gt;().&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;      getImage&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="typ"&gt;ClassLoader&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;getSystemResource&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="str"&gt;"resources/icono.png"&lt;/span&gt;&lt;span class="pun"&gt;));&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kwd"&gt;return&lt;/span&gt;&lt;span class="pln"&gt; retValue&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size:x-large;"&gt;&lt;span style="font-weight: bold;"&gt;Paso 4&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;En la vista de diseño del JFrame, lo seleccionamos y vamos sus propiedades, buscamos la propiedad "iconImagen" y hacemos clic en el botón de puntos suspensivos. Se mostrará una ventana de diálogo como esta:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivBDqEFLmhnYksekOKHJI5R4ZSwFFUTKdDwxDScW5T247aCXk_P67DznQGhmIq011wH5ID3Uy7Jrk5rZ4OIHSIPrh9dU_PxMDX4ZgVqZrs-VTxzObgVqpAlsgTuCdlLASGeFEzyk3tZ6Ea/s1600-h/jframe-icono2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivBDqEFLmhnYksekOKHJI5R4ZSwFFUTKdDwxDScW5T247aCXk_P67DznQGhmIq011wH5ID3Uy7Jrk5rZ4OIHSIPrh9dU_PxMDX4ZgVqZrs-VTxzObgVqpAlsgTuCdlLASGeFEzyk3tZ6Ea/s320/jframe-icono2.jpg" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;De la lista desplegable, seleccionamos "Valor de componente existente". Esto hará que cambie la ventana a la siguiente forma:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIieJE4lBZ-YRCLBXBkd-LcGSWNj9AQzd-AxyIU-xzTlxq6yzZtMNuwHlu9kB6nKGL5la_CqzuG7sRJu1XFm9sgBqG0sZx_4SdvE-dVcAq0TSA7ynFg6GGk3or7Mr85A1mX0qNYxDMYVar/s1600-h/jframe-icono3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIieJE4lBZ-YRCLBXBkd-LcGSWNj9AQzd-AxyIU-xzTlxq6yzZtMNuwHlu9kB6nKGL5la_CqzuG7sRJu1XFm9sgBqG0sZx_4SdvE-dVcAq0TSA7ynFg6GGk3or7Mr85A1mX0qNYxDMYVar/s320/jframe-icono3.jpg" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Seleccionamos la opción "Propiedad" y hacemos clic en el botón de puntos suspendidos. Aparecerá una ventana de diálogo más pequeña, y seleccionamos la propiedad "iconImage" que aparece ahí.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5wzbFdcc-e-DSiOA_rWoAgrRlknaRp1YT5D1-OCSzrpsPaBM8Ekas2j6DuID6PVqP2jMyiwawSRgiX3nMGY2e0Cu8C-DekrVS75R_Cw1VFJxXwwd7M1F3XjKyssigy1ECyQlL570cdP3e/s1600-h/jframe-icono4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5wzbFdcc-e-DSiOA_rWoAgrRlknaRp1YT5D1-OCSzrpsPaBM8Ekas2j6DuID6PVqP2jMyiwawSRgiX3nMGY2e0Cu8C-DekrVS75R_Cw1VFJxXwwd7M1F3XjKyssigy1ECyQlL570cdP3e/s320/jframe-icono4.jpg" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Clic en Aceptar, y se verá así:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXPgp7tgLWBcRQZyJJRDTG-g2Ki-56sZ7QRja2mlC2NHw4JMu5VvoAB-LnUqi4u0MyUVKaqIJ_LlxxVd5Ard6Rw-Ru5QKD7_UTaMwQ_pY1E-J9bmJsUXFg9MdcSww4xyOjYCcdaipEClQe/s1600-h/jframe-icono5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXPgp7tgLWBcRQZyJJRDTG-g2Ki-56sZ7QRja2mlC2NHw4JMu5VvoAB-LnUqi4u0MyUVKaqIJ_LlxxVd5Ard6Rw-Ru5QKD7_UTaMwQ_pY1E-J9bmJsUXFg9MdcSww4xyOjYCcdaipEClQe/s320/jframe-icono5.jpg" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;y nuevamente clic en "Aceptar" para cerrar la ventana de selección de imagen.&lt;br /&gt;&lt;br /&gt;Ahora, veremos que las propiedades del JFrame ya tiene un nuevo valor&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9vGVkdaKkhXBiXrBLobj14LFJ5ta7Oa0smAA-wukmVIC-owd-TRvczfi3IUZWUEwYO25Oi29CiVh-_fXUb0bXuYz3WZ9jls3uCG1yjiLpEayVnO4-2_YCEXOxQphBJPejJuQ-mRZBf4QG/s1600-h/jframe-icono6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9vGVkdaKkhXBiXrBLobj14LFJ5ta7Oa0smAA-wukmVIC-owd-TRvczfi3IUZWUEwYO25Oi29CiVh-_fXUb0bXuYz3WZ9jls3uCG1yjiLpEayVnO4-2_YCEXOxQphBJPejJuQ-mRZBf4QG/s320/jframe-icono6.jpg" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;Paso 5&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Ejecutamos la aplicación con el JFrame, &lt;span class="Apple-style-span" style="color: rgb(56, 118, 29);"&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;y voila!&lt;/span&gt;&lt;/span&gt; nuestro JFrame con un ícono diferente&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ27kM5mW8pH3rdW1H7Q8TkWdgCqx0dWLSv74qJ8KraNXPBI2uhowp-Vjlzwu3hSoGW9hy6yb1Lj_3NMO5uMH5sGfoCzRyyCYSqE5esy50UzLwoLnvNup4I-074z5_-XYpGeIchXSgYic0/s1600-h/jframe-icono7.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ27kM5mW8pH3rdW1H7Q8TkWdgCqx0dWLSv74qJ8KraNXPBI2uhowp-Vjlzwu3hSoGW9hy6yb1Lj_3NMO5uMH5sGfoCzRyyCYSqE5esy50UzLwoLnvNup4I-074z5_-XYpGeIchXSgYic0/s320/jframe-icono7.jpg" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Gracias &lt;a href="http://www.apuntesdejava.com/2008/11/cambiar-icono-un-jframe.html" target="_blank"&gt;Diego &lt;/a&gt;me aumentastes la nota :)</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgPbrxSZ2hiLPCZx8dw-0yFYvuUewB89mqaRgUF_0ypYeM2N5XlKfNjdCLO6R2IVYUfZt0Ij8zKx1HS-0usmaOK6PadDhs6xMVEIrOh8MbE9picgr5oYGOptmU4g0ed5LgCfXn3Z6IPf0B/s72-c/jframe-icono1.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item></channel></rss>