<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2026491273357253282</id><updated>2024-08-29T03:26:11.990-07:00</updated><category term="Mind Maps"/><category term="SEMAT"/><category term="Android"/><category term="Dllo Móvil"/><category term="Dllo Sw"/><category term="HTML 5"/><category term="HTML/CSS"/><category term="Java"/><title type='text'>Ingeniería de Software, JAVA, Android, Flash, HTML, CSS y más</title><subtitle type='html'>Herramientas, soluciones en programación, y todo lo relacionado con la Ingeniería de Software.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jpbaena13.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://jpbaena13.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Juan Pablo Baena</name><uri>http://www.blogger.com/profile/10351172923140000848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMm-lCaehZblOHKZ7QTtF0Vwz9bIP8ZSdnfpw4DgcPZWTEaBUWZNZqXEjWIyerRAqclB-x4eLZcf676zOzYXReBTi9Mo1dSIEu2z0yEilJYvuAQNGfkRPhcmP8J73D6Co/s1600/*'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2026491273357253282.post-5995808820603770897</id><published>2012-10-02T15:48:00.002-07:00</published><updated>2012-10-09T14:24:11.470-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HTML 5"/><title type='text'>Introducción al HTML 5</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Escuchamos hablar de HTML 5 por doquier, como la tecnología que reemplazará Flash, o como el lenguaje por excelencia para la creación de aplicaciones y sitios web compatibles con cualquier tipo de dispositivo. Si bien, muchas de estas conjeturas comienzan a convertirse hoy en día en realidad, quienes andamos en el mundo web nos preguntamos que hay realmente detrás de esta tecnología. Por esta razón me motivo a publicar un reseña del potencial de HTML 5 que iré extendiendo junto con mi conocimiento en el tema.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
En primera instancia decimos que HTML 5 esta basado en varios&amp;nbsp;principios&amp;nbsp;de diseño tales como:&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Compatibilidad&lt;/li&gt;
&lt;li&gt;Utilidad&lt;/li&gt;
&lt;li&gt;Interoperabilidad&lt;/li&gt;
&lt;li&gt;Acceso Universal.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Para lograr esto se incluyen nuevas características al lenguaje, así como la exclusión de otras mas. Dentro de las nuevas características encontramos:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Multimedia&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Audio&lt;/li&gt;
&lt;li&gt;Video&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Gráficos de Vector Escalable&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Canvas&lt;/li&gt;
&lt;li&gt;SVG&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Guardar en disco&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Local Storage&lt;/li&gt;
&lt;li&gt;Web SQL (Web Storage)&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Acceso a dispositivos&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Geolocation (&lt;a href=&quot;http://html5demos.com/geo&quot;&gt;http://html5demos.com/geo&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Eventos Touch&lt;/li&gt;
&lt;li&gt;Acelerómetro&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Rendimiento e integración&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Web Workers (Multitarea &amp;nbsp;- &amp;nbsp;Multiples Threads)&lt;/li&gt;
&lt;li&gt;V8, Nitro, JagerMonkey (Motores)&lt;/li&gt;
&lt;li&gt;PhoneGap, Adobe AIR&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Conectividad&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Protocolo y API de WebSockets&lt;/li&gt;
&lt;li&gt;Node.js&lt;/li&gt;
&lt;li&gt;Socket.io&lt;/li&gt;
&lt;li&gt;JSON&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Formularios&lt;/li&gt;
&lt;li&gt;MathML&lt;/li&gt;
&lt;li&gt;Concepto de origen web&lt;/li&gt;
&lt;li&gt;Base de datos indexada&lt;/li&gt;
&lt;li&gt;Cache de Aplicación&lt;/li&gt;
&lt;li&gt;Drag and Drop&lt;/li&gt;
&lt;li&gt;XMLHttpRequest Nivel 2&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
De igual forma, se agrega un marcado semántico que describe el contenido de un elemento. Este marcado semántico no proporciona un beneficio inmediato, pero simplifica el diseño de tu página HTML, y en un futuro cercano, permite definitivamente a los motores de búsquedas tomar ventaja de esos elementos para indexar páginas. Entre los nuevos elementos de marcado encontramos:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;ul&gt;
&lt;li&gt;header: Contenido de cabecera (para una página o una &quot;section&quot; de página)&lt;/li&gt;
&lt;li&gt;footer: Pie de página del contenido (para una página o una &quot;section&quot; de página)&lt;/li&gt;
&lt;li&gt;section: Una sección en una página web&lt;/li&gt;
&lt;li&gt;article: Contenido de artículo independiente.&lt;/li&gt;
&lt;li&gt;aside: Contenido relacionado o para colocar citas.&lt;/li&gt;
&lt;li&gt;nav: Para barras de navegación&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Todos esos elementos puede ser estilizados con CSS.&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpbaena13.blogspot.com/feeds/5995808820603770897/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://jpbaena13.blogspot.com/2012/10/html-5.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/5995808820603770897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/5995808820603770897'/><link rel='alternate' type='text/html' href='http://jpbaena13.blogspot.com/2012/10/html-5.html' title='Introducción al HTML 5'/><author><name>Juan Pablo Baena</name><uri>http://www.blogger.com/profile/10351172923140000848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMm-lCaehZblOHKZ7QTtF0Vwz9bIP8ZSdnfpw4DgcPZWTEaBUWZNZqXEjWIyerRAqclB-x4eLZcf676zOzYXReBTi9Mo1dSIEu2z0yEilJYvuAQNGfkRPhcmP8J73D6Co/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2026491273357253282.post-346654117214736188</id><published>2012-09-12T06:29:00.004-07:00</published><updated>2012-09-12T06:35:41.787-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Mind Maps"/><title type='text'></title><content type='html'>Mapa mental de las conferencias de Seguridad Informática&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAKhnKhgtEGdDiN8kbaju-WPitminaaOFlIGYPTXXSCbgBRAX2PM6gVfo5l1xu4FJtYUbCmynbZMJULm-ZYCHTcnsSIDp24A-50HBEHfd0Gy7X-4eW41M8H0PQA6fZY0HT8AOAFEXIIh8/s1600/Seguridadinform.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;343&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAKhnKhgtEGdDiN8kbaju-WPitminaaOFlIGYPTXXSCbgBRAX2PM6gVfo5l1xu4FJtYUbCmynbZMJULm-ZYCHTcnsSIDp24A-50HBEHfd0Gy7X-4eW41M8H0PQA6fZY0HT8AOAFEXIIh8/s400/Seguridadinform.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpbaena13.blogspot.com/feeds/346654117214736188/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://jpbaena13.blogspot.com/2012/09/blog-post.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/346654117214736188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/346654117214736188'/><link rel='alternate' type='text/html' href='http://jpbaena13.blogspot.com/2012/09/blog-post.html' title=''/><author><name>Juan Pablo Baena</name><uri>http://www.blogger.com/profile/10351172923140000848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMm-lCaehZblOHKZ7QTtF0Vwz9bIP8ZSdnfpw4DgcPZWTEaBUWZNZqXEjWIyerRAqclB-x4eLZcf676zOzYXReBTi9Mo1dSIEu2z0yEilJYvuAQNGfkRPhcmP8J73D6Co/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAKhnKhgtEGdDiN8kbaju-WPitminaaOFlIGYPTXXSCbgBRAX2PM6gVfo5l1xu4FJtYUbCmynbZMJULm-ZYCHTcnsSIDp24A-50HBEHfd0Gy7X-4eW41M8H0PQA6fZY0HT8AOAFEXIIh8/s72-c/Seguridadinform.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2026491273357253282.post-8225708875712485459</id><published>2012-09-06T10:44:00.000-07:00</published><updated>2012-09-06T15:48:32.001-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>Conceptos Básicos JAVA</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Un programa Java es una colección de objetos que llaman a otros objetos cuando se invocan método en cada uno de ellos. Cada objeto es de un cierto &lt;i&gt;tipo, &lt;/i&gt;y ese tipo es definido por una clase o una interfaz. La&amp;nbsp;mayoría&amp;nbsp;de los programas Java usan una colección de objetos de diferentes tipos.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Es importante entender algunos conceptos antes de profundizar en el lenguaje. Veamos 4 de ellos:&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Clase: &lt;/b&gt;Una plantilla que describe los estados y el comportamiento que los objetos de su tipo soportan.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Objetos:&lt;/b&gt;&amp;nbsp;Instancia de una clase. Cuando la Máquina Virtual de Java (JVM por sus siglas en inglés) encuentran la palabra clave new, usará la clase apropiada para hacer un objeto como la instancia de esa clase.Cada objeto tiene sus propios estados y acceso a todo el comportamiento definido por su clase.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Estado (Variables de instancia):&lt;/b&gt;&amp;nbsp;Cada objeto (esto es, una instancia de clase), tiene su propio conjunto único de variables de instancia definidas en la clase. Es así como los valores asignados a las variables de instancia conforman el estado del objeto.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Comportamiento (Métodos):&lt;/b&gt;&amp;nbsp;Cuando se crea una clase, por lo general se crean métodos para esa clase. En los métodos es donde se almacenan la lógica de la clase, donde el trabajo real es hecho. Donde los algoritmos se ejecutan y los datos se manipulan.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: orange; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;IDENTIFICADORES Y PALABRAS CLAVES&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: orange; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;En Java, todos los componentes a los que hagamos referencia necesitan ser llamados por un nombre. Esos nombres se denominan identificadores, y existen reglas que los constituyen. Para ellos se han creado convenciones de código.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Existen 3 aspectos importante en los identificadores de Java:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Identificadores legales:&lt;/b&gt;&amp;nbsp;Reglas que el compilador usa para determinar si un nombre es legal.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Convenciones:&lt;/b&gt;&amp;nbsp;Recomendaciones de la comunidad de Java para nombrar clases, variables y métodos.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;Estandarización de nombres para componentes JavaBeans: &lt;/b&gt;Requerimientos en nombres para especificar JavaBeans.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Técnicamente, los identificadores legales deben estar compuestos solamente por caracteres Unicode, número, símbolos de moneda y caracteres de conexión (por ejemplo &lt;i&gt;underline&lt;/i&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://jpbaena13.blogspot.com/feeds/8225708875712485459/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://jpbaena13.blogspot.com/2012/09/conceptos-basicos-java.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/8225708875712485459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/8225708875712485459'/><link rel='alternate' type='text/html' href='http://jpbaena13.blogspot.com/2012/09/conceptos-basicos-java.html' title='Conceptos Básicos JAVA'/><author><name>Juan Pablo Baena</name><uri>http://www.blogger.com/profile/10351172923140000848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMm-lCaehZblOHKZ7QTtF0Vwz9bIP8ZSdnfpw4DgcPZWTEaBUWZNZqXEjWIyerRAqclB-x4eLZcf676zOzYXReBTi9Mo1dSIEu2z0yEilJYvuAQNGfkRPhcmP8J73D6Co/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2026491273357253282.post-3897111765783548612</id><published>2012-05-23T06:38:00.002-07:00</published><updated>2012-05-23T06:47:57.668-07:00</updated><title type='text'>Arquitectura Empresarial</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimTI4S-TE6Ic1QWx0bX92FqbceX_CcgBqqqm9z_NYIOG0wu31jLNDAuUwu8KoghJh3DVitMXr7aZz8rL_Qiop6zJCk9ZLnH7WJBeiGBwsskJthD3XDNJCwflRdTzrdhR6n7gU0_KmTTfU/s1600/arquitec_empresarial.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;130&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimTI4S-TE6Ic1QWx0bX92FqbceX_CcgBqqqm9z_NYIOG0wu31jLNDAuUwu8KoghJh3DVitMXr7aZz8rL_Qiop6zJCk9ZLnH7WJBeiGBwsskJthD3XDNJCwflRdTzrdhR6n7gU0_KmTTfU/s200/arquitec_empresarial.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; text-align: justify;&quot;&gt;Es la transformación del negocio, innovación, más que tecnología, alianzas significativas, sostenibilidad. Está alineada a partir de diferentes enfoques:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Arquitectura de Negocio&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Procesos de negocio&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Organización&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Personas&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Arquitectura de Aplicaciones&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;&lt;ul&gt;
&lt;li&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Servicios&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Arquitectura de Datos&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;&lt;ul&gt;
&lt;li&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Datos&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Información&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Arquitectura de Tecnología&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;&lt;ul&gt;
&lt;li&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Herramientas&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Software&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Hardware de apoyo&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpbaena13.blogspot.com/feeds/3897111765783548612/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://jpbaena13.blogspot.com/2012/05/arquitectura-empresarial-es-la.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/3897111765783548612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/3897111765783548612'/><link rel='alternate' type='text/html' href='http://jpbaena13.blogspot.com/2012/05/arquitectura-empresarial-es-la.html' title='Arquitectura Empresarial'/><author><name>Juan Pablo Baena</name><uri>http://www.blogger.com/profile/10351172923140000848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMm-lCaehZblOHKZ7QTtF0Vwz9bIP8ZSdnfpw4DgcPZWTEaBUWZNZqXEjWIyerRAqclB-x4eLZcf676zOzYXReBTi9Mo1dSIEu2z0yEilJYvuAQNGfkRPhcmP8J73D6Co/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimTI4S-TE6Ic1QWx0bX92FqbceX_CcgBqqqm9z_NYIOG0wu31jLNDAuUwu8KoghJh3DVitMXr7aZz8rL_Qiop6zJCk9ZLnH7WJBeiGBwsskJthD3XDNJCwflRdTzrdhR6n7gU0_KmTTfU/s72-c/arquitec_empresarial.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2026491273357253282.post-5248687951955662840</id><published>2011-10-18T19:11:00.000-07:00</published><updated>2011-10-18T19:19:48.763-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Dllo Móvil"/><title type='text'>Características del Nuevo Samsung Galaxy Nexus</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #555555; font-family: Georgia, Times, &#39;Liberation Serif&#39;, serif; font-size: 14px; line-height: 21px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;line-height: 19px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoFq-o2cdYszkc5yp3EO8CGQjAFhyphenhyphen5D6dWHn1VQR_JA16RvFJpolUOsgwkGg5M-o3H8ybzEkuqMmWyiV9KReKeDMHdiD91KTOhjii8kyPTGsqaGfq6r2nGLo4boOo4DayqbyNzThBatks/s1600/SG.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;177&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoFq-o2cdYszkc5yp3EO8CGQjAFhyphenhyphen5D6dWHn1VQR_JA16RvFJpolUOsgwkGg5M-o3H8ybzEkuqMmWyiV9KReKeDMHdiD91KTOhjii8kyPTGsqaGfq6r2nGLo4boOo4DayqbyNzThBatks/s320/SG.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
La prensa en Hong Kong fue recibida al entrar al evento con los detalles oficiales del Samsung Galaxy Nexus. Hay mucho más que ver sobre Ice Cream Sandwich, pero los rumores sobre las especificaciones técnicas del Nexus finalmente acabarán.&lt;span id=&quot;more-2983&quot; style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación los detalles del nuevo teléfono de Google: el Samsung Galaxy Nexus:&lt;/div&gt;
&lt;div style=&quot;line-height: 19px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul style=&quot;list-style-image: initial; list-style-position: initial; list-style-type: none; margin-bottom: 20px; margin-left: 20px; margin-right: 20px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;
&lt;li style=&quot;list-style-image: initial; list-style-position: initial; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Android 4.0 Ice Cream Sandwich&lt;/li&gt;
&lt;li style=&quot;list-style-image: initial; list-style-position: initial; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Pantalla de 4.65-pulgadas HD Super AMOLED a 720p de resolución&lt;/li&gt;
&lt;li style=&quot;list-style-image: initial; list-style-position: initial; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Procesador dual-core a 1.2GHz&lt;/li&gt;
&lt;li style=&quot;list-style-image: initial; list-style-position: initial; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Interfaz gráfica rediseñada de Android 4.0&lt;/li&gt;
&lt;li style=&quot;list-style-image: initial; list-style-position: initial; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Mejoras en multi-tasking, notificaciones, Wi-Fi hotspot, soporte NFC, full web browsing&lt;/li&gt;
&lt;li style=&quot;list-style-image: initial; list-style-position: initial; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Android 4.0 y la nueva navegación por botones de software&lt;/li&gt;
&lt;li style=&quot;list-style-image: initial; list-style-position: initial; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Aplicación People con integración a Google+ entre otras características&lt;/li&gt;
&lt;li style=&quot;list-style-image: initial; list-style-position: initial; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Cámara rediseñada con modo panorama, 1080p video, sin retraso para captura&lt;/li&gt;
&lt;li style=&quot;list-style-image: initial; list-style-position: initial; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Reconocimiento facial para desbloquear tu teléfono&lt;/li&gt;
&lt;li style=&quot;list-style-image: initial; list-style-position: initial; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Android Beam usa NFC para compartir contenido entre usuarios Android&lt;/li&gt;
&lt;li style=&quot;list-style-image: initial; list-style-position: initial; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;PURA EXPERIENCIA DE GOOGLE&lt;/li&gt;
&lt;li style=&quot;list-style-image: initial; list-style-position: initial; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Todas las aplicaciones que te gustan de Google&lt;/li&gt;
&lt;li style=&quot;list-style-image: initial; list-style-position: initial; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Grosor de 8.94mm&lt;/li&gt;
&lt;li style=&quot;list-style-image: initial; list-style-position: initial; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Conectividad LTE y HSPA+&lt;/li&gt;
&lt;li style=&quot;list-style-image: initial; list-style-position: initial; list-style-type: disc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Disponible en USA, Europa, y Asia a partir de Noviembre y luego en el resto del mundo&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Más detalles en poco...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpbaena13.blogspot.com/feeds/5248687951955662840/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://jpbaena13.blogspot.com/2011/10/caracteristicas-del-nuevo-samsung.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/5248687951955662840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/5248687951955662840'/><link rel='alternate' type='text/html' href='http://jpbaena13.blogspot.com/2011/10/caracteristicas-del-nuevo-samsung.html' title='Características del Nuevo Samsung Galaxy Nexus'/><author><name>Juan Pablo Baena</name><uri>http://www.blogger.com/profile/10351172923140000848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMm-lCaehZblOHKZ7QTtF0Vwz9bIP8ZSdnfpw4DgcPZWTEaBUWZNZqXEjWIyerRAqclB-x4eLZcf676zOzYXReBTi9Mo1dSIEu2z0yEilJYvuAQNGfkRPhcmP8J73D6Co/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoFq-o2cdYszkc5yp3EO8CGQjAFhyphenhyphen5D6dWHn1VQR_JA16RvFJpolUOsgwkGg5M-o3H8ybzEkuqMmWyiV9KReKeDMHdiD91KTOhjii8kyPTGsqaGfq6r2nGLo4boOo4DayqbyNzThBatks/s72-c/SG.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2026491273357253282.post-6074017695446414708</id><published>2011-08-26T15:29:00.000-07:00</published><updated>2011-08-26T15:31:26.727-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Mejorando el rendimiento del Emulador de Android</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;Mi experiencia con el emulador de Android no ha sido muy agradable. Esto se debe al bajo rendimiento que tiene el emulador a la hora de probar las aplicaciones. Toma un par de minutos para ser lanzado, y cuando esta listo, la interacción con el mismo es bastante lenta, demasiado &lt;i&gt;lag&lt;/i&gt;&amp;nbsp;a la hora de trabajar.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Buscando la forma de como mejorar el rendimiento me encontré con un par de tips que permiten aumentar el rendimiento del emulador, sobre todo a la hora de trabajar con él una vez lanzado. En este post describo los tips que permiten mejorar el rendimiento.&lt;/div&gt;&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;El emulador es demasiado lento porque emula una CPU ARM, la cual requiere un traducción a códigos de operación (opcodes) de Intel. Esta virtualización consume demasiada CPU.&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Para hacer el emulador mas rápido debes darle al emulador mas capacidad de procesamiento, esto es, mas CPU, para ello puedes hacer:&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;i&gt;&lt;b&gt;Deshabilitar el Multihilo&lt;/b&gt;&lt;/i&gt;: El Emulador no utiliza mas que un núcleo. El multihilo reduce la cantidad de tiempo total de CPU que el emulador conseguirá. Deshabilitar el multihilo ralentiza aplicaciones que aprovechan los múltiples núcleos. El multihilo debe ser deshabilitado desde la BIOS.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;i&gt;&lt;b&gt;Hacer que el emulador corra desde una CPU diferente a la CPU 0&lt;/b&gt;: &lt;/i&gt;Esto tiene un menor impacto que deshabilitar el multihilo, pero ayuda en algo. Sobre Windows, puedes especificar que CPU correrá un proceso. Muchas aplicaciones utilizan siempre la CPU 0, y por defecto, el emulador corre sobre ésta. Por mi parte, cambio el emulador a correr con el último núcleo.&lt;/li&gt;
&lt;/ol&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Con estos dos cambios se puede observar un 50% de mejora en el rendimiento del emulador.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Añado unos screenshot de como realizar el cambio de CPU:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK5iUe3DX9HB4lHoUYTZAdrrOHB0ivvK2c5MRGIn28_zBhoyFNDPyKTcdYLXjGTiWK6V1lbnP3GXbpTUtKXIYKHIG_FSdB6NOKdOpYx4EDOKEviRtzXYrfURuhv9syyNch4ZP1Vh9ffqM/s1600/afinidad.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;227&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK5iUe3DX9HB4lHoUYTZAdrrOHB0ivvK2c5MRGIn28_zBhoyFNDPyKTcdYLXjGTiWK6V1lbnP3GXbpTUtKXIYKHIG_FSdB6NOKdOpYx4EDOKEviRtzXYrfURuhv9syyNch4ZP1Vh9ffqM/s400/afinidad.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ2e4pq2racLFvBHb9maSIemU73Y7c_muqfJmuWp1EWcu6Km0crnCk1LtXepmsdk-D1cWBeWwdgfKoO-hy1KXY-ExQ5XXCfhIfMWNNBw6RBCWVu1s6j219yiLm1-UKnDOeLDWe29d92YQ/s1600/cpu.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ2e4pq2racLFvBHb9maSIemU73Y7c_muqfJmuWp1EWcu6Km0crnCk1LtXepmsdk-D1cWBeWwdgfKoO-hy1KXY-ExQ5XXCfhIfMWNNBw6RBCWVu1s6j219yiLm1-UKnDOeLDWe29d92YQ/s320/cpu.png&quot; width=&quot;310&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Una última sugerencia. Si nos vamos a dedicar a trabajar solamente en el emulador, podemos subirle la prioridad al proceso.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRmT17Efe0nNZdThR0iTyfVQx-8lhsCDUAMNvVcQQxqh3-nUHKbAxovxqqkrW2XGLKxXz77gxU5wJ-E7p5hXs846ZcO8gU0sQ3AJ1a69lvLd0vxWsZY9SDJM2lyWCYA5wd5OjvWPm4s4M/s1600/prioridad.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;226&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRmT17Efe0nNZdThR0iTyfVQx-8lhsCDUAMNvVcQQxqh3-nUHKbAxovxqqkrW2XGLKxXz77gxU5wJ-E7p5hXs846ZcO8gU0sQ3AJ1a69lvLd0vxWsZY9SDJM2lyWCYA5wd5OjvWPm4s4M/s400/prioridad.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Saludos.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpbaena13.blogspot.com/feeds/6074017695446414708/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://jpbaena13.blogspot.com/2011/08/mejorando-el-rendimiento-del-emulador.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/6074017695446414708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/6074017695446414708'/><link rel='alternate' type='text/html' href='http://jpbaena13.blogspot.com/2011/08/mejorando-el-rendimiento-del-emulador.html' title='Mejorando el rendimiento del Emulador de Android'/><author><name>Juan Pablo Baena</name><uri>http://www.blogger.com/profile/10351172923140000848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMm-lCaehZblOHKZ7QTtF0Vwz9bIP8ZSdnfpw4DgcPZWTEaBUWZNZqXEjWIyerRAqclB-x4eLZcf676zOzYXReBTi9Mo1dSIEu2z0yEilJYvuAQNGfkRPhcmP8J73D6Co/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK5iUe3DX9HB4lHoUYTZAdrrOHB0ivvK2c5MRGIn28_zBhoyFNDPyKTcdYLXjGTiWK6V1lbnP3GXbpTUtKXIYKHIG_FSdB6NOKdOpYx4EDOKEviRtzXYrfURuhv9syyNch4ZP1Vh9ffqM/s72-c/afinidad.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2026491273357253282.post-2767733833447611807</id><published>2011-08-26T08:48:00.000-07:00</published><updated>2011-08-26T10:53:38.357-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Dllo Móvil"/><title type='text'>Como conectarse a una URL desde Android</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Una de las preguntas mas comunes a la hora de desarrollar sobre Android es ¿Cómo conectarnos a una URL?, o lo que es lo mismo ¿Cómo descargamos información desde una URL?. Pues bien, a continuación les mostraré 2 maneras diferentes de hacerlo (Esto fue desarrollado para Android 2.3.3).&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Antes de nada, y para que todo salga bien debemos de habilitar los permisos de acceso a&amp;nbsp;Internet&amp;nbsp;a nuestra aplicación. Para ello, abrimos el archivo &lt;code&gt;AndroidManifest.xml&lt;/code&gt;, damos clic sobre &lt;i&gt;Permission&lt;/i&gt;&amp;nbsp;-&amp;gt; &lt;i&gt;Add -&amp;gt; Uses Permission -&amp;gt; Ok, &lt;/i&gt;el permiso será insertado al archivo, sin embargo debemos de especificar que tipo de permiso es, para ello desplegamos el combobox que tenemos a la derecha y seleccionamos&amp;nbsp;&lt;i&gt;android.permission.INTERNET. &lt;/i&gt;Podemos abreviar estos pasos tan solo insertando la siguiente línea de código a nuestro archivo AndroidManifets.xml:&lt;/div&gt;&lt;br /&gt;
&lt;pre class=&quot;brush:java&quot;&gt;&amp;lt;uses-permission android:name=&quot;android.permission.INTERNET&quot;&amp;gt;&amp;lt;/uses-permission&amp;gt;&lt;/pre&gt;&lt;br /&gt;
Y listo, con esto ya tenemos los permisos para poder conectarnos a una URL, Ahora procedamos a realizarlo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3 class=&quot;post-title entry-title&quot;&gt;Conectarse a una URL a través de &lt;code&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-large;&quot;&gt;HttpUrlConnection&lt;/span&gt;&lt;/code&gt;&lt;/h3&gt;&lt;hr width=&quot;100%&quot; /&gt;&lt;br /&gt;
El siguiente código, ilustra la manera de como utilizar el objeto &lt;code&gt;HttpUrlConnection&lt;/code&gt; para hacer una conexión a una URL.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:java&quot;&gt;HttpURLConnection conn = null;
URL url;
String source;

try {

	String sUrl = &quot;http://www.example.com&quot;;
	url = new URL(sUrl);
	conn = (HttpURLConnection) url.openConnection(); // Abriendo conexión
	conn.setReadTimeout(10000); // Tiempo de espera en lectura
	conn.setConnectTimeout(15000); // Tiempo de conexión
	conn.setRequestMethod(&quot;GET&quot;); // Método de conexión
	conn.setDoInput(true); // Indica que la conexión es de entrada (Lectura).
	conn.addRequestProperty(&quot;Referer&quot;, &quot;www.gmail.com&quot;); // Añade una propiedad
	conn.connect();

	html = readFromBuffer(new BufferedReader(new InputStreamReader(
			conn.getInputStream())));

	return html;

} catch (IOException e) {
	e.printStackTrace();
}
&lt;/pre&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;Se crea una conexión HTTP a partir de una instancia de la clase &lt;code&gt;HttpUrlConnection&lt;/code&gt; donde se le pasa por parámetro la URL de la página a conectarnos. A esta clase se le proporciona la información que se requiera para buscar la petición.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Aunque sencillo, se hace necesario conoces bien el protocolo HTTP para utilizar correctamente la clase, ya que es necesario indicar manualmente toda la información que hay que enviar al servidor. El próximo método permite abstraernos de estos inconvenientes.&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3 class=&quot;post-title entry-title&quot;&gt;Conectarse&amp;nbsp;a una URL a través de &lt;code&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-large;&quot;&gt;HttpClient&lt;/span&gt;&lt;/code&gt;&lt;/h3&gt;&lt;hr width=&quot;100%&quot; /&gt;&lt;br /&gt;
A continuación se muestra el código para conectarnos a una URL a través de &lt;code&gt;HttpClient&lt;/code&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:java&quot;&gt;HttpURLConnection conn = null;
URL url;
String html;
        
try {
 
	HttpGet httpGet = new HttpGet(&quot;http://www.example.com/&quot;);
	HttpClient httpclient = new DefaultHttpClient();
	HttpResponse response = httpclient.execute(httpGet);
 
	html = readFromBuffer(
		new BufferedReader(
			new InputStreamReader(response.getEntity().getContent())));
	
	return html;
 
} catch (IOException e) {
	e.printStackTrace();
}
&lt;/pre&gt;&lt;br /&gt;
Como puede verse el código es más sencillo que el anterior, ya que es la propia clase la que se encarga de meter todos los parámetros necesarios para la conexión de forma automática, aunque también es posible configurarlos manualmente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3 class=&quot;post-title entry-title&quot;&gt;Lectura desde un Buffer&lt;/h3&gt;&lt;hr width=&quot;100%&quot; /&gt;&lt;br /&gt;
En los ejemplos anteriores se hace uso de un método que dado un buffer de lectura devuelve su contenido como un string. A continuación se indica el código de este método.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:java&quot;&gt;private String readFromBuffer(BufferedReader br){
	StringBuilder text = new StringBuilder();
	try{
		String line;
		while ((line = br.readLine()) != null) {
			text.append(line);
			text.append(&quot;\n&quot;);
		} 
	} catch (IOException e) { 
		e.printStackTrace();
		// tratar excepción!!!
	}
	return text.toString();
}&lt;/pre&gt;&lt;br /&gt;
Saludos.</content><link rel='replies' type='application/atom+xml' href='http://jpbaena13.blogspot.com/feeds/2767733833447611807/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://jpbaena13.blogspot.com/2011/08/como-conectarnos-una-url-desde-android.html#comment-form' title='7 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/2767733833447611807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/2767733833447611807'/><link rel='alternate' type='text/html' href='http://jpbaena13.blogspot.com/2011/08/como-conectarnos-una-url-desde-android.html' title='Como conectarse a una URL desde Android'/><author><name>Juan Pablo Baena</name><uri>http://www.blogger.com/profile/10351172923140000848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMm-lCaehZblOHKZ7QTtF0Vwz9bIP8ZSdnfpw4DgcPZWTEaBUWZNZqXEjWIyerRAqclB-x4eLZcf676zOzYXReBTi9Mo1dSIEu2z0yEilJYvuAQNGfkRPhcmP8J73D6Co/s1600/*'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2026491273357253282.post-9171654470476209077</id><published>2011-08-23T20:59:00.000-07:00</published><updated>2011-08-23T21:03:51.732-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Dllo Móvil"/><category scheme="http://www.blogger.com/atom/ns#" term="Mind Maps"/><title type='text'>Workshop de medios convergentes y dispositivos móviles</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;El &lt;i&gt;Workshop de medios convergentes y dispositivos móviles&lt;/i&gt;&amp;nbsp;se realizó en la ciudad de Medellín - Colombia en Agosto del 2011. Busca fortalecer y desarrollar iniciativas en la creación de aplicaciones convergentes con dispositivos móviles. Está dirigido a ingenieros, animadores, diseñadores, comunicadores y demás interesados en el tema en tres jornadas distribuidas en sesiones magistrales y encuentros con expertos en diferentes áreas del conocimiento aplicado a la convergencia para el desarrollo de ideas puntuales.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;El mapa mental muestra los principales conceptos presentados por 4 expositores del evento, entre los que se destaca el co-fundador de Twitter&amp;nbsp;Evan Henshaw-Plath.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://sites.google.com/site/jpmindmaps/swfs/WorkshopMediosconvergentes.swf?attredirects=0&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;247&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggZwTIGtWO7E1r_obuRSV0uAX5366-gL6czsgfC2KTLAhqxrgAaLkqWtIoGmNgXs4S3gFI0K2gsiQtBNujsFgizqgDCeHpvhVZMdOkWW90s0zjMHrMfEbtRNSi0n5uFnwlNNSy1C6QLE0/s320/Workshop+Medios+convergentes.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;(Clic sobre la imagen para interactuar con el mapa completo en formato .swf)&lt;/i&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpbaena13.blogspot.com/feeds/9171654470476209077/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://jpbaena13.blogspot.com/2011/08/workshop-de-medios-convergentes-y.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/9171654470476209077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/9171654470476209077'/><link rel='alternate' type='text/html' href='http://jpbaena13.blogspot.com/2011/08/workshop-de-medios-convergentes-y.html' title='Workshop de medios convergentes y dispositivos móviles'/><author><name>Juan Pablo Baena</name><uri>http://www.blogger.com/profile/10351172923140000848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMm-lCaehZblOHKZ7QTtF0Vwz9bIP8ZSdnfpw4DgcPZWTEaBUWZNZqXEjWIyerRAqclB-x4eLZcf676zOzYXReBTi9Mo1dSIEu2z0yEilJYvuAQNGfkRPhcmP8J73D6Co/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggZwTIGtWO7E1r_obuRSV0uAX5366-gL6czsgfC2KTLAhqxrgAaLkqWtIoGmNgXs4S3gFI0K2gsiQtBNujsFgizqgDCeHpvhVZMdOkWW90s0zjMHrMfEbtRNSi0n5uFnwlNNSy1C6QLE0/s72-c/Workshop+Medios+convergentes.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2026491273357253282.post-6781972985543550985</id><published>2011-08-23T20:45:00.000-07:00</published><updated>2011-08-23T21:01:21.604-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Mind Maps"/><title type='text'>Pensamiento Sistemico</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;Un sistema es una entidad cuya existencia y funciones se mantienen como un todo por la interacción de sus partes.&amp;nbsp;El pensamiento sistémico contempla el todo y las partes, así como las conexiones de las partes, y estudia el todo para poder comprender las partes.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;El siguiente mapa mental contempla las partes mas elementales que componen al pensamiento sistémico.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://sites.google.com/site/jpmindmaps/swfs/PensamientoSistemico.swf?attredirects=0&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;247&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGj1qn0KxjXKau7wzC3KxS7n7ug4GBYqNjZrKIv0raAd1kBdOtf-L1VhwaMY7jZxAnUni2JhzETQx374QdGXgN35HUlsBtvKpHY93679EpYTLdxQoePHEypQ-Gvxvl5Undw_TFXtF60T4/s320/Pensamiento+Sistemico.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;(Clic sobre la imagen para interactuar con el mapa completo en formato .swf)&lt;/i&gt;&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpbaena13.blogspot.com/feeds/6781972985543550985/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://jpbaena13.blogspot.com/2011/08/pensamiento-sistemico.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/6781972985543550985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/6781972985543550985'/><link rel='alternate' type='text/html' href='http://jpbaena13.blogspot.com/2011/08/pensamiento-sistemico.html' title='Pensamiento Sistemico'/><author><name>Juan Pablo Baena</name><uri>http://www.blogger.com/profile/10351172923140000848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMm-lCaehZblOHKZ7QTtF0Vwz9bIP8ZSdnfpw4DgcPZWTEaBUWZNZqXEjWIyerRAqclB-x4eLZcf676zOzYXReBTi9Mo1dSIEu2z0yEilJYvuAQNGfkRPhcmP8J73D6Co/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGj1qn0KxjXKau7wzC3KxS7n7ug4GBYqNjZrKIv0raAd1kBdOtf-L1VhwaMY7jZxAnUni2JhzETQx374QdGXgN35HUlsBtvKpHY93679EpYTLdxQoePHEypQ-Gvxvl5Undw_TFXtF60T4/s72-c/Pensamiento+Sistemico.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2026491273357253282.post-8516917843006081916</id><published>2011-08-23T20:39:00.000-07:00</published><updated>2011-08-23T21:05:34.049-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Dllo Sw"/><category scheme="http://www.blogger.com/atom/ns#" term="Mind Maps"/><title type='text'>Proceso de Desarrollo de Software</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;Este mapa mental describe las etapas del proceso de desarrollo de software. Es una especificación adaptada a una institución en particular, pero se logra diferencias claramente los elementos claves que contiene cada etapa del proceso.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://sites.google.com/site/jpmindmaps/swfs/Procesodesarrollodesoftware.swf?attredirects=0&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;247&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdsajpSBx0tCIYuwiLuTFDl0aX7F8_Nj_17OMEElaNqFAtg4o244T-NxjRWCuh48bYzGLRYjJVv8EHVTA8BUHGXV-H8ZygtgTGA2k7CweWNB0poNivTDqdxF1OrNltohCFYidXUrs203Q/s320/Proceso+desarrollo+de+software.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;i&gt;(Clic sobre la imagen para interactuar con el mapa completo en formato .swf)&lt;/i&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpbaena13.blogspot.com/feeds/8516917843006081916/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://jpbaena13.blogspot.com/2011/08/proceso-de-desarrollo-de-software.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/8516917843006081916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/8516917843006081916'/><link rel='alternate' type='text/html' href='http://jpbaena13.blogspot.com/2011/08/proceso-de-desarrollo-de-software.html' title='Proceso de Desarrollo de Software'/><author><name>Juan Pablo Baena</name><uri>http://www.blogger.com/profile/10351172923140000848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMm-lCaehZblOHKZ7QTtF0Vwz9bIP8ZSdnfpw4DgcPZWTEaBUWZNZqXEjWIyerRAqclB-x4eLZcf676zOzYXReBTi9Mo1dSIEu2z0yEilJYvuAQNGfkRPhcmP8J73D6Co/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdsajpSBx0tCIYuwiLuTFDl0aX7F8_Nj_17OMEElaNqFAtg4o244T-NxjRWCuh48bYzGLRYjJVv8EHVTA8BUHGXV-H8ZygtgTGA2k7CweWNB0poNivTDqdxF1OrNltohCFYidXUrs203Q/s72-c/Proceso+desarrollo+de+software.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2026491273357253282.post-8424334413784160177</id><published>2011-08-23T20:20:00.000-07:00</published><updated>2011-08-23T20:20:38.601-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Mind Maps"/><category scheme="http://www.blogger.com/atom/ns#" term="SEMAT"/><title type='text'>SEMAT - Software Engineering Method And Theroy</title><content type='html'>Un mapa mental que abarca los conceptos principales de la &amp;nbsp;iniciativa SEMAT.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://sites.google.com/site/jpmindmaps/swfs/Semat.swf?attredirects=0&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;247&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjeiYwO4EXrvUPP5VCfuy2OgLRhbI10wm9V6NmD83q1AXY30Y3ng1hvyLmijfCfxDb4RxnU0eK7m8C-Ia1OFaOVw0Ywwq4Xmh0xAV3gnw5PmJBWrI0rNwPvgWIbtBSXbGGu-hAATE7CXc/s320/MM_Semat.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;(Clic sobre la imagen para interactuar con el mapa completo en formato .swf)&lt;/i&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpbaena13.blogspot.com/feeds/8424334413784160177/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://jpbaena13.blogspot.com/2011/08/semat-software-engineering-method-and_23.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/8424334413784160177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/8424334413784160177'/><link rel='alternate' type='text/html' href='http://jpbaena13.blogspot.com/2011/08/semat-software-engineering-method-and_23.html' title='SEMAT - Software Engineering Method And Theroy'/><author><name>Juan Pablo Baena</name><uri>http://www.blogger.com/profile/10351172923140000848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMm-lCaehZblOHKZ7QTtF0Vwz9bIP8ZSdnfpw4DgcPZWTEaBUWZNZqXEjWIyerRAqclB-x4eLZcf676zOzYXReBTi9Mo1dSIEu2z0yEilJYvuAQNGfkRPhcmP8J73D6Co/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjeiYwO4EXrvUPP5VCfuy2OgLRhbI10wm9V6NmD83q1AXY30Y3ng1hvyLmijfCfxDb4RxnU0eK7m8C-Ia1OFaOVw0Ywwq4Xmh0xAV3gnw5PmJBWrI0rNwPvgWIbtBSXbGGu-hAATE7CXc/s72-c/MM_Semat.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2026491273357253282.post-2918119888363350758</id><published>2011-08-23T09:54:00.000-07:00</published><updated>2011-08-23T09:57:30.447-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SEMAT"/><title type='text'>SEMAT - Preguntas y Respuestas</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;En las 2 publicaciones anteriores he hablado acerca del SEMAT como iniciativa para el remodelamiento de la Ingeniería de Software. Sin embargo muchas preguntas surgen al rededor del tema. En esta publicación presento un conjunto de preguntas y respuestas que han surgido de la necesidad de entender lo que el SEMAT intenta hacer por nosotros.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;- ¿Los objetivos son elevados, pero son solamente objetivos, Antes de hacerlo público, no debieron esperar hasta tener una solución actual para mostrar?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;R/. Muchas personas tienen excelentes ideas, pero ninguna tiene toda la verdad. La única manera de resolver un problema de esta magnitud es a través del esfuerzo de la comunidad al identificar precisamente el problema y conduciendo a soluciones ampliamente aceptadas. Es por esto que se comienza con una declaración de objetivos y esperamos comentarios desde un amplio rango de expertos.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;- ¿Por qué el énfasis sobre los signatarios?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;R/. Las personas que han aceptado para firmar el &lt;i&gt;llamado a la acción&lt;/i&gt;&amp;nbsp;han, cada uno en su manera, hecho un esfuerzo en el mundo del desarrollo de software. Su participación es esencial en la &lt;i&gt;visibilidad&lt;/i&gt;&amp;nbsp;del proyecto, en particular, en las grandes compañías, y para su éxito.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;- ¿Ahora que hay un &lt;i&gt;llamado a la acción&lt;/i&gt;&amp;nbsp;firmado por un grupo impresionante de personas, el trabajo real comienza?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;R/. Si, la parte mas&amp;nbsp;difícil&amp;nbsp;está por venir. La parte más difícil será conseguir que todo el mundo siga adelante sin poner en peligro de muerte a nosotros mismos, y sin que nadie renuncie porque su idea favorita no es un factor clave. Pensamos que con perseverancia,&amp;nbsp;creatividad&amp;nbsp;y diplomacia seremos exitosos.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;- ¿Por qué SEMAT es diferente a otros esfuerzos, tales como el SWEBOK de la IEEE, o varios estándares en la Ingeniería de Software?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;R/. Una crucial diferencia entre la iniciativa SEMAT &amp;nbsp;y esfuerzos previos tal como el SWEBOK es el foco central en la teoría subyacente. Mientras que el SWEBOK y varios planes de estudio de la IEEE reflejan el estado del arte , los cuales constituyen puramente una mezcla pragmática de ideas, constructores, técnicas y disciplinas con la práctica actual y la opinión pública. El SEMAT está enfocado sobre un núcleo con fuertes fundamentos&amp;nbsp;teóricos. Esto no indica que el SWEBOK y similares no tengan valor. En realidad, ellos son entradas valiosas para la iniciativa SEMAT, ya que la única cosa que necesitan es una teoría.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Fuente: Libro Software Engineering Methods, Modeling and Teaching, Universidad de Medellín,&amp;nbsp;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpbaena13.blogspot.com/feeds/2918119888363350758/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://jpbaena13.blogspot.com/2011/08/semat-preguntas-y-respuestas.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/2918119888363350758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/2918119888363350758'/><link rel='alternate' type='text/html' href='http://jpbaena13.blogspot.com/2011/08/semat-preguntas-y-respuestas.html' title='SEMAT - Preguntas y Respuestas'/><author><name>Juan Pablo Baena</name><uri>http://www.blogger.com/profile/10351172923140000848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMm-lCaehZblOHKZ7QTtF0Vwz9bIP8ZSdnfpw4DgcPZWTEaBUWZNZqXEjWIyerRAqclB-x4eLZcf676zOzYXReBTi9Mo1dSIEu2z0yEilJYvuAQNGfkRPhcmP8J73D6Co/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2026491273357253282.post-6571040480752789839</id><published>2011-08-23T08:57:00.000-07:00</published><updated>2011-08-23T08:57:53.181-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SEMAT"/><title type='text'>LASES 2011 - Ivar Jacobson hablando acerca del SEMAT Parte I y II</title><content type='html'>En el Simposio de Ingeniería de Software de América Latina realizado el 11 y 12 de Agosto en la ciudad de Medellín - Colombia, se tuvo en escena al doctor &lt;b&gt;Ivar Jacobson&lt;/b&gt; quien nos habló del SEMAT como una iniciativa para calificar la Ingeniería de Software en un disciplina rigurosa. A continuación publico la primera y segunda parte de la presentación.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
PARTE I&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;object class=&quot;BLOGGER-youtube-video&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; codebase=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&quot; data-thumbnail-src=&quot;http://i.ytimg.com/vi/_9KfCdoSzC4/0.jpg&quot; height=&quot;266&quot; width=&quot;320&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/_9KfCdoSzC4?f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata&quot; /&gt;&lt;param name=&quot;bgcolor&quot; value=&quot;#FFFFFF&quot; /&gt;&lt;embed width=&quot;320&quot; height=&quot;266&quot;  src=&quot;http://www.youtube.com/v/_9KfCdoSzC4?f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
PARTE II&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.youtube.com/embed/xGxwdhbAweE?feature=player_embedded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://jpbaena13.blogspot.com/feeds/6571040480752789839/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://jpbaena13.blogspot.com/2011/08/lases-2011-ivar-jacobson-hablando.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/6571040480752789839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/6571040480752789839'/><link rel='alternate' type='text/html' href='http://jpbaena13.blogspot.com/2011/08/lases-2011-ivar-jacobson-hablando.html' title='LASES 2011 - Ivar Jacobson hablando acerca del SEMAT Parte I y II'/><author><name>Juan Pablo Baena</name><uri>http://www.blogger.com/profile/10351172923140000848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMm-lCaehZblOHKZ7QTtF0Vwz9bIP8ZSdnfpw4DgcPZWTEaBUWZNZqXEjWIyerRAqclB-x4eLZcf676zOzYXReBTi9Mo1dSIEu2z0yEilJYvuAQNGfkRPhcmP8J73D6Co/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2026491273357253282.post-7905135527380278900</id><published>2011-08-23T08:34:00.000-07:00</published><updated>2011-08-23T21:30:03.772-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SEMAT"/><title type='text'>SEMAT - Software Engineering Method And Theroy</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;Durante el &lt;i&gt;Simposio de Ingeniería de Software de América Latina&lt;/i&gt; &lt;i&gt;LASES 2011&lt;/i&gt;, tuve la grata sorpresa de conocer a unos de los personajes mas influyentes en la Ingeniería de Software, conocido como el mayor contribuyente en el &lt;i&gt;Lenguaje de Modelado Unificado&lt;/i&gt; UML, padre de los diagramas de secuencia, de colaboración y los casos de uso entre otros, al doctor &lt;b&gt;Ivar Jacobson&lt;/b&gt;.&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;En esta oportunidad nos presenta el SEMAT como una iniciativa para remodelar la Ingeniería de Software, la cual fue lanzada en el 2006 junto con &lt;i&gt;Bertrand Meyer&lt;/i&gt; y &lt;i&gt;Richard Soley.&amp;nbsp;&lt;/i&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;i&gt;SEMAT &lt;/i&gt;es una iniciativa para&amp;nbsp;re-modelar&amp;nbsp;la Ingeniería de&amp;nbsp;Software&amp;nbsp;y procurar que sea calificada como una disciplina rigurosa. Se basa en el hecho de que la Ingeniería de&amp;nbsp;Software&amp;nbsp;contiene un número significante de prácticas inmaduras en las que se destacan:&lt;/div&gt;&lt;ul&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;La ausencia de bases teóricas ampliamente aceptadas.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Un gran número de métodos y variantes de métodos con pocas diferencias comprendidas y ampliamente artificiales.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;La falta de validación y evaluación experimental creíble.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;La brecha que hay entre las prácticas de la industria y la investigación académica.&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Por lo tanto propone una &lt;i&gt;teoría sólida&amp;nbsp;&lt;/i&gt;mediante&lt;i&gt;&amp;nbsp;&lt;/i&gt;principios probados y mejores prácticas que:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;Incluye un &lt;i&gt;Kernel &lt;/i&gt;de elementos ampliamente aceptados y extensibles para usos específicos.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Aborda tanto temas de&amp;nbsp;tecnologías&amp;nbsp;como de personas.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Soportado por la industria, la academia, los investigadores y los usuarios.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Soporta extensión en cara a las tecnologías y los requerimiento cambiantes.&lt;/li&gt;
&lt;/ul&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://sites.google.com/site/jpmindmaps/swfs/Semat.swf?attredirects=0&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;247&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwZqBNHfVH3gmrk_B0Fj5f_v-KALjASzfsuu4agADQwOumIF1Kb7HqJl-XYG3WNSBtDTUy55mE7_Ts_bSuQvIWWP16C5wW20XhWh8Xcref49KasN0UvwZR5kCBW1DGITbU6G6T6D2Qlwg/s320/MM_Semat.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;El objetivo es crear una plataforma (el &lt;i&gt;kernel&lt;/i&gt;) que le permita a las personas (programadores, administradores de proyectos, consultores,&amp;nbsp;científicos&amp;nbsp;de la computación entre otros) describir sus actuales y futuras prácticas, patrones y métodos de manera que puedan estar compuestos, simulados, aplicados, comparados, evaluados, medidos, enseñados e investigados.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Esta iniciativa esta acompañada de un &lt;i&gt;llamado a la acción &lt;/i&gt;&amp;nbsp;para todos aquellos interesados que quieran formar parte de esta comunidad creciente. Para ello, el SEMAT habilitó un formulario de inscripción para convertirse en un &quot;&lt;i&gt;supporter&lt;/i&gt;&quot; de la iniciativa SEMAT, que pueden encontrar &lt;a href=&quot;http://www.semat.org/bin/view/Main/SupporterAdd&quot;&gt;AQUI&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Dentro de éste llamado se encuentran en general 5 grupos de trabajos clasificados como sigue:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Definición: &lt;/b&gt;Definición de la Ingeniería&amp;nbsp;de Software e ideas relacionadas.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Teoría: &lt;/b&gt;Identificando teorías de apoyo, especialmente teorías matemáticas.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Universales: &lt;/b&gt;Búsqueda de elementos comunes en la Ingeniería de Software.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Lenguaje del Kernel: &lt;/b&gt;Lenguajes para expresar otros elementos.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Evaluacion: &lt;/b&gt;Maneras de evaluar las prácticas y teorías.&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;El SEMAT ha llegado a nuevas regiones del mundo. En Abril del 2010 un nuevo capítulo del SEMAT fue fundado en China el cual ya se encuentra en funcionamiento. Otro capítulo del SEMAT fue fundado en Colombia que incluye a Sur-América&amp;nbsp;y Centro-América. Puedes ampliar la información en en este &lt;a href=&quot;http://sematblog.wordpress.com/2011/08/17/semat-has-reached-latin-america/&quot;&gt;blog&lt;/a&gt; oficial.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Por lo pronto, la iniciativa del SEMAT con ya cuenta con mas de 30 signatarios que corresponden a expertos de clase mundial en torno a la Ingeniería de Software; cuenta con mas de 1500 partidarios de la iniciativa, y mas de 15 empresas que la apoyan entre las que se destacan IBM, Ericsson, Microsoft España.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Realmente parece una iniciativa prometedora, de la cual todos los que nos encontramos en el campo de la Ingeniería de Software podemos hacer parte de ella, permitiendo fundamentarla, extenderla y mejorar nuestra experiencia en este campo.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpbaena13.blogspot.com/feeds/7905135527380278900/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://jpbaena13.blogspot.com/2011/08/semat-software-engineering-method-and.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/7905135527380278900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/7905135527380278900'/><link rel='alternate' type='text/html' href='http://jpbaena13.blogspot.com/2011/08/semat-software-engineering-method-and.html' title='SEMAT - Software Engineering Method And Theroy'/><author><name>Juan Pablo Baena</name><uri>http://www.blogger.com/profile/10351172923140000848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMm-lCaehZblOHKZ7QTtF0Vwz9bIP8ZSdnfpw4DgcPZWTEaBUWZNZqXEjWIyerRAqclB-x4eLZcf676zOzYXReBTi9Mo1dSIEu2z0yEilJYvuAQNGfkRPhcmP8J73D6Co/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwZqBNHfVH3gmrk_B0Fj5f_v-KALjASzfsuu4agADQwOumIF1Kb7HqJl-XYG3WNSBtDTUy55mE7_Ts_bSuQvIWWP16C5wW20XhWh8Xcref49KasN0UvwZR5kCBW1DGITbU6G6T6D2Qlwg/s72-c/MM_Semat.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2026491273357253282.post-3683146460894021950</id><published>2011-08-13T22:32:00.000-07:00</published><updated>2012-10-09T08:14:17.695-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Dllo Sw"/><title type='text'>Creación de un Chat sencillo con Ruby</title><content type='html'>Uno de los ejemplos mas interesantes a la hora de hacer programación por medio de &lt;i&gt;sockets&lt;/i&gt; en el lenguaje &lt;b&gt;Ruby, &lt;/b&gt;es la creación de un chat sencillo. A continuación miremos una manera rápida de como podemos construirlo.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
En primer lugar nos encargamos de programar el servidor. Este servidor se encargará de abrir un puerto por el que escuchará peticiones de clientes que desean conectarse a él. Espero que el código esté lo suficientemente claro y comentado para su entendimiento.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:ruby&quot;&gt;# Importamos la clase socket ya que vamos a trabajar con ella
require &quot;socket&quot;

# Construyendo clase ChatServer con los métodos necesarios
# Métodos públicos : initialize, run
# Métodos privados (no visibles fuera de nuestra clase) : broadcast_string, conexion_nueva
class ChatServer

  # Éste método es invocado cuando un nuevo ChatServer es instanciado
  # (via ChatServer::new(port))
  def initialize( port )
    @descriptores = Array::new
    @serverSocket = TCPServer.new( &quot;&quot;, port ) # Servidor de tipo TCPServer

    # Allow reuse the address (para un rápido reinicio del servidor)
    @serverSocket.setsockopt( Socket::SOL_SOCKET, Socket::SO_REUSEADDR, 1 )

    #Mensaje de salida cuando el servidor es iniciado.
    printf(&quot;Chatserver iniciado sobre el puerto %d\n&quot;, port)
    @descriptores.push( @serverSocket )
  end # initialize

  # Implementado la funcionalidad del chat
  def run
    #Entrando es un ciclo infinito (El server esta escuchando...)
    while 1

      # Esperando un evento de lectura. Cuando el servidor inicia el único
      # descriptor presente es el socket de servidor. Por lo tanto se espera
      # a que clientes se conecte.
      res = select( @descriptores, nil, nil, nil )

      if res != nil then

        # Iterando a través de los descriptores de lectura etiquetados
        for sock in res[0]

          # Recibida una conección al servidor (escuchando) socket
          if sock == @serverSocket then
            conexion_nueva
          else
            # Alguna cosa recibida sobre el socket del cliente?
            if sock.eof? then
              str = sprintf(&quot;Cliente desconectado %s:%s\n&quot;,
                sock.peeraddr[2], sock.peeraddr[1])
              broadcast_string( str, sock )
              sock.close
              @descriptores.delete(sock)
            else
              str = sprintf(&quot;[%s|%s]: %s&quot;,
                sock.peeraddr[2], sock.peeraddr[1], sock.gets())
              broadcast_string( str, sock )
            end
          end
        end
      end
    end
  end # run

  private

  # Permite enviar una misma informacion a todos los usuarios que esten
  # conectados al chat.
  def broadcast_string( str, omit_sock )
    @descriptores.each do |clisock|
      if clisock != @serverSocket &amp;amp;&amp;amp; clisock != omit_sock
        clisock.write(str)
      end
    end
    print(str)
  end # broadcast_string

  # Cunado un cliente solicita conexión al servidor, esta es aceptada se añade
  # el cliente a la pila de descriptore y el cliente en unido al chat.
  def conexion_nueva
    newsock = @serverSocket.accept
    @descriptores.push( newsock )

    # Notificamos que el cliente se ha unido al ChatServer
    newsock.write(&quot;Estas conectado al ChatServer de Ruby.\n&quot;)

    # Mostramos información del cliente conectado
    str = sprintf(&quot;Cliente Unido %s:%s\n&quot;, newsock.peeraddr[2], newsock.peeraddr[1])

    # Notificamos a los demás usuarios que un nuevo cliente se ha unido al chat
    broadcast_string( str, newsock )
  end # accept_new_connection

end #server

#Instanciado el servidor de chat
my_chat_server = ChatServer.new( 2626 )

#Corriendo el chat
my_chat_server.run
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora, procedemos a crear nuestra clase cliente. Está clase es demasiado sencilla, pues solo es necesario crear una instanacia &lt;i&gt;TCPSocket&lt;/i&gt; que se conecte a nuestro ChatSever. Y por medio de un ciclo permitimos que nuestro cliente interactúe en el chat.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:ruby&quot;&gt;# Importamos la clase socket ya que vamos a trabajar con ella
require &#39;socket&#39;

#Creamos un socket tipo cliente y nos conectamos a servidor que se encuentra en
# localhost escuchando por el puerto 2626
socket = TCPSocket.new(&#39;localhost&#39;, 2626)

text = &#39;&#39;

# Permite que el cliente ingrese texto en el chat de manera iterativa que sera
# enviado a todos los usuario que se encuentren conectado al servidor.
# El cliente sale cuando la letra q es tipeada y enviada.
while text != &#39;q&#39; do
  text = STDIN.gets.chomp
  socket.puts(text)
end

# Cerramos el socket del cliente.
socket.close
&lt;/pre&gt;
&lt;br /&gt;
En últimas, solo queda ejecutar en primera instancia el ChatServer y a continuación ejecutamos 2 o mas instancias del ChatUser y probamos copiando cualquier texto en cualquier instancia de ChatUser y vemos como éste aparece en los demás cliente así como en el servidor.&lt;br /&gt;
&lt;br /&gt;
Saludos.</content><link rel='replies' type='application/atom+xml' href='http://jpbaena13.blogspot.com/feeds/3683146460894021950/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://jpbaena13.blogspot.com/2011/08/creacion-de-un-chat-sencillo-con-ruby.html#comment-form' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/3683146460894021950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/3683146460894021950'/><link rel='alternate' type='text/html' href='http://jpbaena13.blogspot.com/2011/08/creacion-de-un-chat-sencillo-con-ruby.html' title='Creación de un Chat sencillo con Ruby'/><author><name>Juan Pablo Baena</name><uri>http://www.blogger.com/profile/10351172923140000848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMm-lCaehZblOHKZ7QTtF0Vwz9bIP8ZSdnfpw4DgcPZWTEaBUWZNZqXEjWIyerRAqclB-x4eLZcf676zOzYXReBTi9Mo1dSIEu2z0yEilJYvuAQNGfkRPhcmP8J73D6Co/s1600/*'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2026491273357253282.post-954708327935635388</id><published>2011-07-21T22:14:00.000-07:00</published><updated>2011-08-13T22:24:57.151-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HTML/CSS"/><title type='text'>Como insertar código fuente en Blogger</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;div style=&quot;text-align: right;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #999999; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&quot;Mi primera necesidad, mi primer post&quot;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
Sin duda alguna, nos resulta muy útil postear código fuente de una manera ordenada y legible. Para ello se hace necesario &amp;nbsp;indentar y colorear nuestro código, pero esto es algo que, si se hace manualmente se torna demasiado tedioso. En la búsqueda por encontrar una solución me he topado con una librería que nos resuelve este problema de manera muy fácil y rápida.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
SyntaxHighLighter es una librería de código abierto construida en &lt;b&gt;JavaScript &lt;/b&gt;que nos permite resaltar el código dándole un aspecto mas agradable y legible. Este proyecto que inicio en el 2004 ya se encuentra en su versión 3.0.83 (Julio 2011) y cuenta con un conjunto de scripts que nos ayudan a resaltar código en diversos lenguajes de programación, lenguajes de scripts y metalenguajes.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Para mayor información podemos remitirnos a la página oficial: &lt;a href=&quot;http://alexgorbatchev.com/&quot;&gt;http://alexgorbatchev.com&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;A continuación resalto los pasos necesario para instalar de manera rápida la librería:&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;ol&gt;&lt;li&gt;Como no es posible subir archivos .js a Blogger entonces utilizamos la versión host que nos ofrece la librería, para ello editamos nuestra plantilla &lt;b&gt;&lt;i&gt;&quot;Personalizar &amp;gt; Diseño &amp;gt; Edición de HTML&quot;&lt;/i&gt;&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Agregamos después de la etiqueta &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;lt;head&amp;gt;&lt;/span&gt; las siguientes líneas:&lt;br /&gt;
&lt;div&gt;&lt;pre class=&quot;brush: xml&quot;&gt;&amp;lt;link href=&#39;http://alexgorbatchev.com/pub/sh/current/styles/shCore.css&#39; rel=&#39;stylesheet&#39; type=&#39;text/css&#39;/&amp;gt;
&amp;lt;link href=&#39;http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css&#39; rel=&#39;stylesheet&#39; type=&#39;text/css&#39;/&amp;gt;
&amp;lt;link href=&#39;http://alexgorbatchev.com/pub/sh/current/styles/shCoreEclipse.css&#39; rel=&#39;stylesheet&#39; type=&#39;text/css&#39;/&amp;gt;

&amp;lt;script src=&#39;http://alexgorbatchev.com/pub/sh/current/scripts/shLegacy.js&#39; type=&#39;text/javascript&#39;/&amp;gt;
&amp;lt;script src=&#39;http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js&#39; type=&#39;text/javascript&#39;/&amp;gt;
&amp;lt;script src=&#39;http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js&#39; type=&#39;text/javascript&#39;/&amp;gt;
&amp;lt;script src=&#39;http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js&#39; type=&#39;text/javascript&#39;/&amp;gt;
&amp;lt;script src=&#39;http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js&#39; type=&#39;text/javascript&#39;/&amp;gt;
&amp;lt;script src=&#39;http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js&#39; type=&#39;text/javascript&#39;/&amp;gt;

&amp;lt;script type=&#39;text/javascript&#39;&amp;gt;SyntaxHighlighter.all();&amp;lt;/script&amp;gt;
          &lt;/pre&gt;Las 3 primeras líneas corresponden a los estilos que se añaden por defecto, las otras 7 líneas corresponden a los diferentes &lt;i&gt;Brush &lt;/i&gt;que podemos añadir de acuerdo a los diferentes lenguajes de programación que estemos manejando. Tenga en cuenta que al menos las 2 primeras líneas de éstas 7 si son obligatorias. Además es&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: red;&quot;&gt; importante&lt;/span&gt; no olvidar la última línea para que todo funcione de una manera correcta.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;Por último cada elemento que deseemos resaltar lo colocamos entre las etiquetas &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&lt;/span&gt; y con esto todo queda listo.&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;Así convertimos éste codigo:&lt;/div&gt;&lt;div&gt;&amp;lt;pre class = &#39;brush:java&#39;&amp;gt;&lt;/div&gt;&lt;div&gt;public class HelloWorld {&lt;/div&gt;&lt;div&gt;public static void main(String ar[]){&lt;/div&gt;&lt;div&gt;System.out.println(&quot;Hello World!!!&quot;);&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;en esto:&lt;/div&gt;&lt;div&gt;&lt;pre class=&quot;brush:java&quot;&gt;public class HelloWorld {
        public static void main(String ar[]) {
            System.out.println(&quot;Hello World!!!&quot;);
        }
    }
&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Espero que les sea de mucha utilidad así como lo fue para mi.&lt;br /&gt;
&lt;br /&gt;
Saludos.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jpbaena13.blogspot.com/feeds/954708327935635388/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://jpbaena13.blogspot.com/2011/07/como-insertar-codigo-fuente-en-blogger.html#comment-form' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/954708327935635388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2026491273357253282/posts/default/954708327935635388'/><link rel='alternate' type='text/html' href='http://jpbaena13.blogspot.com/2011/07/como-insertar-codigo-fuente-en-blogger.html' title='Como insertar código fuente en Blogger'/><author><name>Juan Pablo Baena</name><uri>http://www.blogger.com/profile/10351172923140000848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='30' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMm-lCaehZblOHKZ7QTtF0Vwz9bIP8ZSdnfpw4DgcPZWTEaBUWZNZqXEjWIyerRAqclB-x4eLZcf676zOzYXReBTi9Mo1dSIEu2z0yEilJYvuAQNGfkRPhcmP8J73D6Co/s1600/*'/></author><thr:total>4</thr:total></entry></feed>