<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="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" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-9130689632234388749</atom:id><lastBuildDate>Fri, 13 Sep 2024 03:39:03 +0000</lastBuildDate><category>GeneXus</category><category>Automatización</category><category>Calidad</category><category>Software Factory</category><category>Análisis de Código</category><category>Lean Manufacturing</category><category>Manufactura Esbelta</category><category>Evolución</category><category>Fábricas</category><category>GXLicInfo</category><category>Genoma</category><category>Guerra</category><category>Industrialización</category><category>Jidoka</category><category>License</category><category>Medición y Análisis</category><category>Proceso</category><category>Revolución</category><category>Bienvenida</category><category>Compiler</category><category>Domain Specific Language</category><category>Domain Specific Modelling</category><category>ECJ</category><category>Eclipse</category><category>Filosofía</category><category>Google</category><category>Java</category><category>Kaizen</category><category>Lenguaje</category><category>Mejora Continua</category><category>Model Driven Architecture</category><category>Moving Forward</category><category>Métricas</category><category>Opening New Doors</category><category>Poka Yoke</category><category>Programación</category><category>Programming Style</category><category>Refactoring</category><category>User Controls</category><category>Walt Disney</category><title>M.F.O.N.D</title><description>&lt;b&gt;Moving Forward, Opening New Doors&lt;/b&gt;&lt;br&gt;&#xa;Investigar consiste en buscar a oscuras el interruptor de la luz. Cuando la luz se enciende, todo el mundo lo ve muy claro.</description><link>http://3dgiordano.blogspot.com/</link><managingEditor>noreply@blogger.com (David Giordano)</managingEditor><generator>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9130689632234388749.post-4745583327029236887</guid><pubDate>Mon, 30 Nov 2009 03:55:00 +0000</pubDate><atom:updated>2010-04-09T16:45:55.148-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Análisis de Código</category><category domain="http://www.blogger.com/atom/ns#">GeneXus</category><category domain="http://www.blogger.com/atom/ns#">Genoma</category><category domain="http://www.blogger.com/atom/ns#">Medición y Análisis</category><category domain="http://www.blogger.com/atom/ns#">User Controls</category><title>Genoma - Visualización - UserControl TreeMap</title><description>&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/AVvXsEgbcqPhqDzIh_fwoE4K5Zu4_qgCBb-SDOVwe1_Sbk0UMWQmDwsaK-lePxNN3zmM5_jo5gfcX37kw1eYPm409ZAufcq2Dsqt4VGBJ9Ilw_mGHy7mcV4gh5YjYaokkcz1rKbmFu26RzjaZ4sT/s1600/GXWiki_GenomaTreeMap.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbcqPhqDzIh_fwoE4K5Zu4_qgCBb-SDOVwe1_Sbk0UMWQmDwsaK-lePxNN3zmM5_jo5gfcX37kw1eYPm409ZAufcq2Dsqt4VGBJ9Ilw_mGHy7mcV4gh5YjYaokkcz1rKbmFu26RzjaZ4sT/s320/GXWiki_GenomaTreeMap.jpg&quot; yr=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Según&amp;nbsp;Wikipedia, Visualización es la generación de una imagen mental o una imagen real de algo abstracto o invisible. &lt;a href=&quot;http://es.wikipedia.org/wiki/Visualizaci%C3%B3n&quot; target=&quot;_blank&quot;&gt;http://es.wikipedia.org/wiki/Visualizaci%C3%B3n&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Como parte del &lt;a href=&quot;http://3dgiordano.blogspot.com/search/label/Genoma&quot; target=&quot;_blank&quot;&gt;Proyecto Genoma&lt;/a&gt;, tengo la tarea de implementar algunos controles de visualización los cuales serán utilizados en el módulo &lt;a href=&quot;http://wiki.gxtechnical.com/commwiki/servlet/hwiki?CP+2.0+-+Proyecto+Genoma,&quot; target=&quot;_blank&quot;&gt;GenomaServer.&lt;/a&gt;&lt;br /&gt;
La idea detrás de la creación de estos controles es que sean implementados como User Controls de GeneXus&amp;nbsp;y luego sean&amp;nbsp;liberados para uso de la comunidad (independiente del proyecto Genoma).&lt;br /&gt;
&lt;br /&gt;
La implementación de estos user controls va a tomar su tiempo (aprender actionscript, flash, usercontrols y muchas cosas más), sin embargo para ir dando un adelanto de los avances y de&amp;nbsp;cual es la idea detrás de los controles de&amp;nbsp;visualización del proyecto, les presento una prueba de concepto del control denominado&amp;nbsp;GenomaTreeMap (una implementación de &lt;a href=&quot;http://en.wikipedia.org/wiki/Treemapping&quot; target=&quot;_blank&quot;&gt;Treemapping&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
Tomé&amp;nbsp;información de la KB&amp;nbsp;pública&amp;nbsp;de &lt;a href=&quot;http://public.genexusserver.com/gxserver/home.aspx?GxWiki,0&quot; target=&quot;_blank&quot;&gt;GXWiki (versión 3.0)&lt;/a&gt;&amp;nbsp;en GeneXus Server y calculé la métrica de &quot;cantidad de líneas de código por programa&quot; (sin comentarios ni lineas vacías).&lt;br /&gt;
&lt;br /&gt;
La idea detrás de GenomaServer es que puedan escoger sobre un conjunto&amp;nbsp;variado de medidas y sea posible&amp;nbsp;compararlas entre si de forma visual&amp;nbsp;(las que sean implementadas mediante GenomaExtensions).&lt;br /&gt;
Por el momento la más simple de implementar para demostrar algo fue &quot;cantidad de líneas de código&quot;, espero pronto mostrarles ejemplos más complejos como los mencionados en el proyecto.&lt;br /&gt;
&lt;br /&gt;
Para ver el ejemplo, simplemente&amp;nbsp;sigan&amp;nbsp;el&amp;nbsp;siguiente link: &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://support.dlya.com.uy/genoma/index.html&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Ver GXWiki 3.0 en GenomaTreeMap&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Por el momento&amp;nbsp;lo que hay es un poco pobre, espero que de todas formas les guste y les permita comenzar a hacerse de una idea sobre el proyecto Genoma.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;UPDATE 30/03/2010:&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-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/AVvXsEhoIkjugzMphjg2kHAPJ4MYDU1sRg9ySojxg6gsVn-0adpEEorPrkli3ZLlTtnCsf5qc-ZlfnBBo3itBjYTfbiYhhPbVHAbT_OoMxQEzOxhnuus1BsLJ2r1dKCP3pNLLYnhPLZrDQQGtmI8/s1600/GenomaTreeMap_Logo_Gallery.jpg&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;182&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoIkjugzMphjg2kHAPJ4MYDU1sRg9ySojxg6gsVn-0adpEEorPrkli3ZLlTtnCsf5qc-ZlfnBBo3itBjYTfbiYhhPbVHAbT_OoMxQEzOxhnuus1BsLJ2r1dKCP3pNLLYnhPLZrDQQGtmI8/s200/GenomaTreeMap_Logo_Gallery.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Se publica versión inicial del User Control GeneXus en gallery.genexus.com&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;a href=&quot;http://www2.gxtechnical.com/portal/hgxppredirect.aspx?15,109,,,,115&quot;&gt;Bajar User Control GenomaTreeMap&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;Se publica una demo de una versión más avanzada del control.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;a href=&quot;http://support.dlya.com.uy/genoma/genomaTreeMapGXWiki300310/GXWiki.html&quot;&gt;Ver Ejemplo de GXWiki 3.0 con GenomaTreeMap&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;Se publica&amp;nbsp;una demo del control con proyectos GXOpen&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;a href=&quot;http://support.dlya.com.uy/genoma/genomaTreeMapGXOpen300310/GXOpenProjects.html&quot;&gt;Ver Ejemplo de GXOpen Projects con GenomaTreeMap&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Recursos:&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Para finalizar, les dejo un poco de información con referencia&amp;nbsp;sobre visualización.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Visualization of Practices and Metrics&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;https://docs.google.com/viewer?url=http%3A%2F%2Fwww.squale.org%2Fquality-models-site%2Fresearch-deliverables%2FWP1.2_Visualization-of-Practices-and-Metrics_v1.pdf&quot; target=&quot;_blank&quot;&gt;http://www.squale.org/quality-models-site/research-deliverables/WP1.2_Visualization-of-Practices-and-Metrics_v1.pdf&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Treemaps for space-constrained visualization of hierarchies&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.cs.umd.edu/hcil/treemap-history/&quot; target=&quot;_blank&quot;&gt;http://www.cs.umd.edu/hcil/treemap-history/&lt;/a&gt;</description><link>http://3dgiordano.blogspot.com/2009/11/genoma-visualizacion-usercontrol.html</link><author>noreply@blogger.com (David Giordano)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbcqPhqDzIh_fwoE4K5Zu4_qgCBb-SDOVwe1_Sbk0UMWQmDwsaK-lePxNN3zmM5_jo5gfcX37kw1eYPm409ZAufcq2Dsqt4VGBJ9Ilw_mGHy7mcV4gh5YjYaokkcz1rKbmFu26RzjaZ4sT/s72-c/GXWiki_GenomaTreeMap.jpg" height="72" width="72"/><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9130689632234388749.post-2759939256754302528</guid><pubDate>Fri, 27 Nov 2009 20:00:00 +0000</pubDate><atom:updated>2009-11-27T17:50:37.099-02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Análisis de Código</category><category domain="http://www.blogger.com/atom/ns#">GeneXus</category><category domain="http://www.blogger.com/atom/ns#">Genoma</category><category domain="http://www.blogger.com/atom/ns#">Medición y Análisis</category><category domain="http://www.blogger.com/atom/ns#">Métricas</category><title>GeneXus - Medición y Análisis de Productos</title><description>&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/AVvXsEi4snL2J5orygaX5vjZpsTdVFqmcRpwr9z6qwprDT6RAmFJmTJs_tRNVi9IGWPnnDXZCekA4Wcr4J8ktCEZa0lag3YYQeLEe3YrQ_M7tY2Uf8qBfyViD-esYETM00A0ljRqKGhXeXaPbPD8/s1600/Cockpit_GeneXus.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4snL2J5orygaX5vjZpsTdVFqmcRpwr9z6qwprDT6RAmFJmTJs_tRNVi9IGWPnnDXZCekA4Wcr4J8ktCEZa0lag3YYQeLEe3YrQ_M7tY2Uf8qBfyViD-esYETM00A0ljRqKGhXeXaPbPD8/s320/Cockpit_GeneXus.png&quot; width=&quot;303&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Imagínese que entra en la cabina del piloto de un moderno avión a reacción, y ve que allí hay un único instrumento. ¿qué pensaría usted con respecto a viajar en ese avión?&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Pilotear el desarrollo de una aplicación, el apoyo de las herramientas de medición y análisis&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;/span&gt;Si no se mide lo que se hace, no se puede controlar y si no se puede controlar, no se puede dirigir y si no se puede dirigir no se puede mejorar.&lt;br /&gt;
&lt;br /&gt;
El objetivo de la medición y el análisis es aportar a la empresa herramientas que le ayuden a seguir el camino correcto en búsqueda de su metas y objetivos fijados.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Proceso de medición y análisis&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&quot;La medición es el proceso mediante el que se asignan números o símbolos a los atributos de las entidades del mundo real de manera que dichos atributos sean descritos de acuerdo a unas reglas previamente definidas&quot;.&amp;nbsp;&lt;a href=&quot;http://portal.acm.org/citation.cfm?id=580949&quot; target=&quot;_blank&quot;&gt;http://portal.acm.org/citation.cfm?id=580949&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
El&amp;nbsp;propósito&amp;nbsp;del proceso de medición y análisis es identificar en qué problemas debe enfocarse la empresa, permitiendo definir acciones correctivas, asignando los recursos necesarios que permitan mejorar los procesos. Las mejoras deberán enfocarse en solucionar los problemas de&amp;nbsp;raíz&amp;nbsp;a efectos de mitigar la posibilidad en que los problemas vuelvan a ocurrir.&lt;br /&gt;
&lt;br /&gt;
Las empresas de TI generalmente agrupan las métricas en las siguientes categorías:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Producto físico&lt;/li&gt;
&lt;li&gt;Gestión de Proyectos&lt;/li&gt;
&lt;li&gt;Desarrollo de Productos&lt;/li&gt;
&lt;li&gt;Servicios&lt;/li&gt;
&lt;li&gt;Satisfacción del Cliente&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;Como mencioné en el título del artículo, me voy a enfocar en los puntos asociados al producto (Producto físico y Desarrollo de Productos)&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Las métricas que generalmente se definen sobre las agrupaciones anteriormente mencionadas son las siguientes:&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;b&gt;Producto físico&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Tamaño - Número de componentes, líneas de código, volumen de software, puntos de función&lt;/li&gt;
&lt;li&gt;Reutilización - Número de componentes llamados más de n veces, número de llamadas, volumen de reutilización, ratio de reutilización&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Desarrollo de Productos&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Documentación - Calidad de la documentación del proyecto, calidad de la documentación de soporte.&lt;/li&gt;
&lt;li&gt;Calidad de código - Porcentaje de código comentado, complejidad ciclomática, código muerto.&lt;/li&gt;
&lt;li&gt;Calidad de pruebas - Cobertura de pruebas, densidad de defectos.&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Proceso de medición y análisis; modelos de calidad y estándares&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;/span&gt;Pueden encontrar mucha más información sobre el proceso de medición y análisis en internet, libros y también en estándares y modelos de madurez (calidad) que actualmente son muy difundidos en el sector de TI.&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Les menciono un par que se apoyan fuertemente en el proceso de medición y análisis.:&amp;nbsp;&lt;b&gt;&lt;a href=&quot;http://es.wikipedia.org/wiki/Capability_Maturity_Model_Integration&quot; target=&quot;_blank&quot;&gt;CMMI (CMMI-DEV)&lt;/a&gt;&lt;/b&gt;&amp;nbsp;e&amp;nbsp;&lt;b&gt;&lt;a href=&quot;http://es.wikipedia.org/wiki/ISO/IEC_15504&quot; target=&quot;_blank&quot;&gt;ISO/IEC 15504&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Si desarrollo mis sistemas con GeneXus...&lt;/b&gt; ¿que herramientas tengo para implementar medición y análisis sobre mis productos?&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Las herramientas base para implementar herramientas de medición y análisis existen desde hace ya un tiempo (analizando&amp;nbsp;XPW&#39;s,XPZ, GXPublic y más recientemente el SDK de GeneXus X+). Sin embargo no logré localizar ninguna implementación 100% enfocada a la medición y análisis.&lt;br /&gt;
Con anterioridad les mencioné un poco lo referente a &lt;a href=&quot;http://3dgiordano.blogspot.com/search/label/An%C3%A1lisis%20de%20C%C3%B3digo&quot; target=&quot;_blank&quot;&gt;&quot;Análisis estático de código&quot;&lt;/a&gt;, en donde localicé varias herramientas asociadas al análisis de código, pero nada muy relacionado a la medición, ni tampoco encontré algún método o base sobre la cual implementar este tipo de herramientas.&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;b&gt;Proyecto Genoma (&lt;a href=&quot;http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Category%3ACollaborative+Projects+2.0,&quot; target=&quot;_blank&quot;&gt;CP 2.0&lt;/a&gt;)&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;/b&gt;Infraestructura para implementar tus propias herramientas de medición y análisis (y mucho +) en GeneXus.&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;&quot;El objetivo principal del proyecto es implementar la infraestructura necesaria que permita a programadores GeneXus (o programadores de extensiones) desarrollar herramientas de medición, análisis y procesamiento sobre la información contenida en las bases de conocimiento GeneXus.&quot;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
Me imagino un futuro en el cual el desarrollo de sistemas GeneXus se encuentre guiado por herramientas automáticas, herramientas que te permitan tener acceso a un conjunto de reportes de métricas así como ayudar a detectar puntos en donde realizar mejoras, o listar informes de anomalías o &quot;faltas&quot; a las políticas o guías o simplemente un conjunto de informes con los resultados de las actividades de integración, generación, compilación, pruebas o deploy, los cuales podrían ser ejecutados de forma desatendida o automática.&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Por el momento es un proyecto para comenzar a experimentar sobre la marcha, comenzando por algo más modesto, la medición (con algo de análisis),&amp;nbsp;claro que sin dejar&amp;nbsp;la puerta abierta a la posibles extensiones sobre la infraestructura planteada. La idea es ir aprendiendo con cada paso todas las nuevas posibilidades brindadas por las herramientas y tecnologías detrás de GeneXus.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Como siempre, se acepta todo tipo de sugerencias y apoyo, la idea de la herramienta es que sea para uso público (Comunidad GeneXus). Nos queda mucho camino por recorrer :-)&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;Si les&amp;nbsp;interesa&amp;nbsp;conocer sobre el proyecto Genoma, les dejo algunos links relacionados.&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Proyecto Genoma&lt;/b&gt; :&lt;br /&gt;
&lt;a href=&quot;http://wiki.gxtechnical.com/commwiki/servlet/hwiki?CP+2.0+-+Proyecto+Genoma,&quot; target=&quot;_blank&quot;&gt;http://wiki.gxtechnical.com/commwiki/servlet/hwiki?CP+2.0+-+Proyecto+Genoma,&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;b&gt;Entrevista CP2.0 Genoma&lt;/b&gt;:&lt;br /&gt;
&lt;a href=&quot;http://www2.gxtechnical.com/portal/hgxpp001.aspx?15,7,3,O,S,0,PAG;CONC;3;14;D;24181;1;PAG;,&quot; target=&quot;_blank&quot;&gt;http://www2.gxtechnical.com/portal/hgxpp001.aspx?15,7,3,O,S,0,PAG;CONC;3;14;D;24181;1;PAG;,&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;b&gt;Otros Recursos&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Quienes quieran conocer más sobre &quot; la cabina de un avión con un único instrumento&quot;, les recomiendo leer la introducción del libro &quot;The Balanced Scorecard: Translating streategy into action&quot; de Kaplan y Norton. Pueden leerlo en inglés en Google Books &lt;a href=&quot;http://books.google.com.uy/books?id=mRHC5kHXczEC&amp;amp;lpg=PP1&amp;amp;dq=Balanced%20Scorecard%20Book&amp;amp;pg=PA1#v=onepage&amp;amp;q=Balanced%20Scorecard%20Book&amp;amp;f=false&quot; target=&quot;_blank&quot;&gt;aquí&lt;/a&gt;&amp;nbsp;(lamentablemente Google Books no tiene publicada la preview de la edición en español, &quot;Cuadro de mando integral&quot;).&lt;br /&gt;
&lt;br /&gt;
Existe una guía en internet que trae un buen resumen sobre medición y análisis. &lt;a href=&quot;http://www.inteco.es/Calidad_del_Software/descargas/guias/guia_practica_de_medicion_y_analisis&quot; target=&quot;_blank&quot;&gt;INTECO - Calidad de Software - Guía práctica de medición y análisis.&lt;/a&gt;&lt;br /&gt;
INTECO (Instituto Nacional de Tecnologías de la Comunicación de España) proporciona un buen catálogo de materiales relacionado a calidad de software. Les recomiendo que vean el listado de guías el cual pueden acceder desde&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;&lt;a href=&quot;http://www.inteco.es/Calidad_del_Software/descargas/guias/&quot; target=&quot;_blank&quot;&gt;aquí&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Sobre métricas de software, les recomiendo la siguiente presentación: &lt;a href=&quot;http://www.slideshare.net/juic/metricas-tecnicas-del-software-presentation&quot; target=&quot;_blank&quot;&gt;Métricas técnicas de Software&lt;/a&gt;&amp;nbsp;es un buen resumen de las métricas más&amp;nbsp;comúnmente&amp;nbsp;utilizadas (No encontré la fuente&amp;nbsp;origen&amp;nbsp;de la misma).&lt;br /&gt;
También relacionado a lo mencionado por INTECO y la presentación anterior, les adjunto una presentación en donde presenta &quot;Conceptos básicos, definición y formalización&quot;, pueden bajarse la misma desde &lt;a href=&quot;http://alarcos.inf-cr.uclm.es/doc/calidadSI/Metodo%20y%20Formalizaci%C3%B3n.ppt&quot; target=&quot;_blank&quot;&gt;aquí&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Existe mucho material en internet, pueden encontrar toneladas de información, pero muy pocas &quot;guías prácticas&quot; al respecto, recomiendo lecturas sobre métricas en Wikipedia, libros y pegarle una ojeada a estándares o normas como CMMI e ISO (15504, 9126 y 12.207 entre otros) que generalmente ayudan como guías muy generales sobre el tema (te dicen que cosas tienes que hacer, pero no te dicen exactamente cómo).&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;</description><link>http://3dgiordano.blogspot.com/2009/11/genexus-medicion-y-analisis-de.html</link><author>noreply@blogger.com (David Giordano)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4snL2J5orygaX5vjZpsTdVFqmcRpwr9z6qwprDT6RAmFJmTJs_tRNVi9IGWPnnDXZCekA4Wcr4J8ktCEZa0lag3YYQeLEe3YrQ_M7tY2Uf8qBfyViD-esYETM00A0ljRqKGhXeXaPbPD8/s72-c/Cockpit_GeneXus.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9130689632234388749.post-800845924466805580</guid><pubDate>Thu, 05 Nov 2009 15:11:00 +0000</pubDate><atom:updated>2009-11-05T14:29:55.056-02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Análisis de Código</category><category domain="http://www.blogger.com/atom/ns#">GeneXus</category><category domain="http://www.blogger.com/atom/ns#">Programming Style</category><category domain="http://www.blogger.com/atom/ns#">Refactoring</category><title>GeneXus - Estilo de codificación y refactorización del código fuente</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&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/AVvXsEjGpzc5D55lfORXQ7STnR1IQeEXhSBbfD-6qfCgvyvGOyO3Z06LV_xyhRipBPqK-DzeVsiz51nHXoWBvXT2R3r2UrVeCzvRZYc2ggWiCOLJ3B85OYOTj6MVSyxSHzI5Dliy4drVBG71fUF6/s1600-h/Genoma_Bug.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGpzc5D55lfORXQ7STnR1IQeEXhSBbfD-6qfCgvyvGOyO3Z06LV_xyhRipBPqK-DzeVsiz51nHXoWBvXT2R3r2UrVeCzvRZYc2ggWiCOLJ3B85OYOTj6MVSyxSHzI5Dliy4drVBG71fUF6/s200/Genoma_Bug.jpg&quot; target=&quot;_blank&quot; vr=&quot;true&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;En el artículo anterior les comenté un poco&amp;nbsp;sobre&amp;nbsp;&quot;&lt;a href=&quot;http://3dgiordano.blogspot.com/2009/10/genexus-analisis-estatico-de-codigo.html&quot; target=&quot;_blank&quot;&gt;análisis estático de código&lt;/a&gt;&quot;.&lt;br /&gt;
&lt;br /&gt;
Me quedaron un par de temas&amp;nbsp;pendientes a tratar (si bien los mencioné en la sección de recursos):&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Programming style&lt;/strong&gt; (Estilo de programación o codificación) &lt;a href=&quot;http://en.wikipedia.org/wiki/Programming_style&quot; target=&quot;_blank&quot;&gt;http://en.wikipedia.org/wiki/Programming_style&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Code refactoring&lt;/strong&gt;&amp;nbsp;(Refactorización de código) &lt;a href=&quot;http://en.wikipedia.org/wiki/Code_refactoring&quot; target=&quot;_blank&quot;&gt;http://en.wikipedia.org/wiki/Code_refactoring&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;strong&gt;¿Cuál es la correlación con&amp;nbsp;análisis estático de código?&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Las&amp;nbsp;&quot;guías o reglas de estilo&quot; ayudan a detectar cuales son las infracciones&amp;nbsp;(desviaciones a los estándares definidos).&lt;br /&gt;
Y la refactorización del código, permite la corrección automática de esas infracciones.&lt;br /&gt;
&lt;br /&gt;
De esta forma sería posible que&amp;nbsp;una herramienta&amp;nbsp;corrija código aplicando los&amp;nbsp;patrones de estilos, buscando además patrones de código con &quot;malas prácticas&quot; y &amp;nbsp;transformando los mismos en una codificación válida y unificada.&lt;br /&gt;
&lt;br /&gt;
Para que&amp;nbsp;realmente exista utilidad, debería de permitir aplicar diferentes estándares (propios o usar de terceros) y permitir&amp;nbsp;incorporar conocimiento sobre los patrones&amp;nbsp;a identificar (malas prácticas). Todo el proceso de corrección debería de ser efectuado de forma automática o asistida.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Ejemplos prácticos en GeneXus&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Marcos Crispino nos comentó (en enero) sobre temas relacionados&amp;nbsp;a Refactoring &lt;a href=&quot;http://blog.marcoscrispino.com/2009/01/refactoring-de-cdigo-genexus.html&quot; target=&quot;_blank&quot;&gt;http://blog.marcoscrispino.com/2009/01/refactoring-de-cdigo-genexus.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Algo que menciona Marcos, es referente&amp;nbsp;al&amp;nbsp;trabajo realizado por Matias Barrios, sobre el proyecto GxVisualindent (&lt;a href=&quot;http://www.gxopen.com/gxopen/servlet/projectinformation?755&quot; target=&quot;_blank&quot;&gt;http://www.gxopen.com/gxopen/servlet/projectinformation?755&lt;/a&gt;), el cual se encarga de la indentación de código fuente en GeneXus 9.&lt;br /&gt;
&lt;br /&gt;
Luego Matías&amp;nbsp;basándose seguramente en las ideas de Marcos instauró el proyecto RefactorinGX (&lt;a href=&quot;http://www.gxopen.com/gxopen/servlet/projectinformation?757&quot; target=&quot;_blank&quot;&gt;http://www.gxopen.com/gxopen/servlet/projectinformation?757&lt;/a&gt;), el cual implementa métodos&amp;nbsp;que permiten identificar algunos casos, aplicando&amp;nbsp;correcciones o informándolas.&lt;br /&gt;
&lt;br /&gt;
Sin embargo no encontré en la comunidad ejemplos que mezclen los conceptos de &quot;declaración o definición de estilo de codificación&quot; y detección de patrones (que se encuentren declarados) para luego ser detectados&amp;nbsp;y refactorizados.&lt;br /&gt;
&lt;br /&gt;
Espero que a futuro&amp;nbsp;aparezcan herramientas que permitan implementar&amp;nbsp;análisis estático de código y refactorización de programas GeneXus.&lt;br /&gt;
&lt;br /&gt;
Por el momento, solamente puedo adelantarles que estoy trabajando en un proyecto relacionado a estos temas (Pero que no necesariamente se atacarán estos temas a corto plazo).&lt;br /&gt;
Seguramente pronto tendrán&amp;nbsp;novedades sobre el mismo en éste mismo medio.&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;strong&gt;Recursos&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Para el caso de &quot;Las guías o estándares&quot;,&amp;nbsp;no conozco mucho que se&amp;nbsp;encuentre de acceso público en internet.&lt;br /&gt;
Los que pude localizar&amp;nbsp;son los mencionadas a continuación (si conocen alguna más, se agradece el aporte para irlo incorporando al listado)&lt;br /&gt;
&lt;br /&gt;
Nomenclatura GIK :&amp;nbsp;&lt;a href=&quot;http://wiki.gxtechnical.com/commwiki/servlet/hwiki?GIK&quot; target=&quot;_blank&quot;&gt;http://wiki.gxtechnical.com/commwiki/servlet/hwiki?GIK&lt;/a&gt;,&lt;br /&gt;
&lt;br /&gt;
GIK&amp;nbsp;&amp;amp; GxSoft Nomenclaturas : &lt;br /&gt;
&lt;a href=&quot;http://gxsoft.googlepages.com/gik%26gxsoftnomenclaturas&quot; target=&quot;_blank&quot;&gt;http://gxsoft.googlepages.com/gik%26gxsoftnomenclaturas&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.scribd.com/doc/289187/Nomenclatura-GxSoft-vs-GIK&quot; target=&quot;_blank&quot;&gt;http://www.scribd.com/doc/289187/Nomenclatura-GxSoft-vs-GIK&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Ejemplo usado en el proyecto ModsGX (Facultad de Ingeniería)&lt;a href=&quot;http://www.fing.edu.uy/inco/cursos/ingsoft/pis/memoria/experiencia2002/ModsGX/modelo/introduc/metgen.htm#_Toc16527191&quot; target=&quot;_blank&quot;&gt;http://www.fing.edu.uy/inco/cursos/ingsoft/pis/memoria/experiencia2002/ModsGX/modelo/introduc/metgen.htm#_Toc16527191&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Seguramente en&amp;nbsp;las empresas existen documentos del tipo &quot;manual de nomenclaturas&quot; o&amp;nbsp;&quot;manual de estándares de programación&quot; o&amp;nbsp;algún documento del tipo &quot;buenas prácticas de programación&quot;, en donde traten los temas relacionados a estándares de codificación.&lt;br /&gt;
Principalmente lo que busca cada uno de estos&amp;nbsp;estándares&amp;nbsp;es unificar, permitiendo que&amp;nbsp;cualquier&amp;nbsp;programador que conozca&amp;nbsp;el estándar,&amp;nbsp;pueda leer&amp;nbsp;y entender los programas sin mayores problemas (mejor comprensión&amp;nbsp;para revisión&amp;nbsp;y&amp;nbsp;mantenimiento).&lt;br /&gt;
&lt;br /&gt;
Para finalizar les dejo algunos ejemplos&amp;nbsp;aplicados&amp;nbsp;para otros&amp;nbsp;lenguajes de programación:&lt;br /&gt;
&lt;a href=&quot;http://en.wikipedia.org/wiki/Programming_style#Coding_conventions_for_languages&quot; target=&quot;_blank&quot;&gt;http://en.wikipedia.org/wiki/Programming_style#Coding_conventions_for_languages&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Para&amp;nbsp;refactorización tienen la sección de &quot;Automated code refactoring&quot;&amp;nbsp;mencionado en la Wikipedia&lt;br /&gt;
&lt;a href=&quot;http://en.wikipedia.org/wiki/Code_refactoring#Automated_code_refactoring&quot; target=&quot;_blank&quot;&gt;http://en.wikipedia.org/wiki/Code_refactoring#Automated_code_refactoring&lt;/a&gt;</description><link>http://3dgiordano.blogspot.com/2009/11/genexus-estilo-de-codificacion-y.html</link><author>noreply@blogger.com (David Giordano)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGpzc5D55lfORXQ7STnR1IQeEXhSBbfD-6qfCgvyvGOyO3Z06LV_xyhRipBPqK-DzeVsiz51nHXoWBvXT2R3r2UrVeCzvRZYc2ggWiCOLJ3B85OYOTj6MVSyxSHzI5Dliy4drVBG71fUF6/s72-c/Genoma_Bug.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9130689632234388749.post-8382473508492218399</guid><pubDate>Tue, 27 Oct 2009 13:53:00 +0000</pubDate><atom:updated>2009-10-27T14:56:48.588-02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Análisis de Código</category><category domain="http://www.blogger.com/atom/ns#">GeneXus</category><title>GeneXus - Análisis estático de código</title><description>&lt;div class=&quot;separator&quot; style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidk0kjq0yRvM2VGmABhuG3GLcBeBaPKvzgSilKCbt0Y7c0HmBcfz6hdP9l8KtX9uFS-9o1aKgtuLkWCLmBTBEHlVsLJi9HGJ_TIVXDz7sj7AoUafy6hfWG_G2n-IPA1_RNQxLzjJjNAjaj/s1600-h/GeneXus_Bug.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidk0kjq0yRvM2VGmABhuG3GLcBeBaPKvzgSilKCbt0Y7c0HmBcfz6hdP9l8KtX9uFS-9o1aKgtuLkWCLmBTBEHlVsLJi9HGJ_TIVXDz7sj7AoUafy6hfWG_G2n-IPA1_RNQxLzjJjNAjaj/s200/GeneXus_Bug.jpg&quot; vr=&quot;true&quot; /&gt;&lt;/a&gt;&lt;strong&gt;A todos los programadores!!!&lt;/strong&gt;&lt;br /&gt;
&lt;/div&gt;No importa&amp;nbsp;la buena educación en programación tengas, ni que tan experimentado seas,&amp;nbsp;o todo el esfuerzo y buena voluntad&amp;nbsp;que pongas en tu trabajo, está comprobado que en algún momento se termina colando&amp;nbsp; algún error o bug en el sistema.&lt;br /&gt;
&lt;br /&gt;
El incremento en la complejidad de los&amp;nbsp;sistemas, hace que sea imposible programar libre de errores, somos humanos, por lo tanto existe la posibilidad de&amp;nbsp;que por&amp;nbsp;descuido&amp;nbsp;o error, un defecto termine en la casa del cliente.&lt;br /&gt;
&lt;br /&gt;
Es por ese motivo que cada día se necesita de la ayuda de herramientas que realicen un análisis totalmente automático del código fuente, (a efectos de no permitir fugas de errores ya conocidos).&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;¿Análisis del código fuente?&lt;/strong&gt; &lt;br /&gt;
&lt;br /&gt;
El concepto de &quot;análisis de código&quot; es muy amplio, seguramente si le preguntamos a un conjunto de programadores&amp;nbsp;llegaremos a una lista muy larga de posibles&amp;nbsp;definiciones. Al ser un tema tan diverso y confuso, es necesario que se aclare el mismo desde un principio.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Análisis estático de código&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Formalmente se denomina &quot;Análisis estático de código&quot; (Static Code Analysis en inglés).&lt;br /&gt;
Estático se refiere a que se analiza el software (código)&amp;nbsp;sin que el mismo se encuentre en ejecución.&lt;br /&gt;
&lt;br /&gt;
Existen varios tipos de análisis, algunos de los cuales pueden ser divididos en diferentes categorías dependiendo&amp;nbsp;del valor que cada uno de estos provea.&lt;br /&gt;
Intentaré mencionar solamente las categorías más comúnmente utilizadas:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;Revisión de Código&lt;br /&gt;
&lt;/em&gt;&lt;/strong&gt;Este tipo de herramientas generalmente realizan análisis automatizado mediante la carga y &quot;parseo&quot; del código, en búsqueda de patrones de programación particulares que violen un conjunto de reglas establecidas. &lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Dependencia de código&lt;br /&gt;
&lt;/em&gt;&lt;/strong&gt;Examina la relación entre el código fuente y sus dependencias para crear un mapa de toda la arquitectura de la aplicación.&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Complejidad de código&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;
Analizan y comparan la complejidad del código de los programas (métricas) para determinar que parte del sistema es innecesariamente complejo.&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Tendencias&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;
Las herramientas de análisis de tendencias, no usan los artefactos de código de forma directa, de lo que se encargan es del estudio de las mejoras o degradaciones en la calidad del código, basándose en los resultados de los análisis de las otras categorías anteriormente mencionados.&lt;br /&gt;
Se intentaría responder la siguiente pregunta: ¿Estamos logrando un mejor código o estamos empeorando la situación?&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;strong&gt;Beneficios del análisis estático de código.&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Algunos beneficios ya fueron mencionados &quot;entre líneas&quot;, sin embargo, es mucho más básico como&amp;nbsp;dos razones simples:&amp;nbsp;&lt;strong&gt;ahorrar tiempo para ahorrar dinero.&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Uno de los aspectos del ahorro de tiempo es muy obvio, se toma mucho menos tiempo en obtener código de mejor calidad frente a la realización de la inspección por&amp;nbsp;método manual.&lt;br /&gt;
El detectar los errores de forma temprana permiten a su vez ahorrar tiempo y dinero, pero no solo eso, ahorrarse inconvenientes en etapas en donde dar vuelta atrás y perder tiempo para corregir un problema ya no sería&amp;nbsp;aceptable (y menos cuando el problema sucede en&amp;nbsp;casa del cliente).&lt;br /&gt;
&lt;br /&gt;
Para finalizar, quiero&amp;nbsp;dejar claro que este tipo de herramientas son simplemente una&amp;nbsp;herramienta complementaria&amp;nbsp;que nos ayudan en mejorar la calidad del sistema, por lo tanto no debe de tomarse como sustituto de la revisión realizada de forma manual (y del uso de otras técnicas y herramientas relacionadas a la calidad de nuestro producto).&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;strong&gt;Recursos &lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
A&amp;nbsp;continuación algunos recursos para aquellos que quieran&amp;nbsp;conocer más del tema (o&amp;nbsp;algunas de sus&amp;nbsp;ramificaciones)&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;En la Wikipedia:&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Static Code Analysis &lt;a href=&quot;http://en.wikipedia.org/wiki/Static_code_analysis&quot;&gt;http://en.wikipedia.org/wiki/Static_code_analysis&lt;/a&gt;&lt;br /&gt;
La categoría &lt;a href=&quot;http://en.wikipedia.org/wiki/Category:Static_code_analysis&quot;&gt;http://en.wikipedia.org/wiki/Category:Static_code_analysis&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Software Metrics &lt;a href=&quot;http://en.wikipedia.org/wiki/Software_metric&quot;&gt;http://en.wikipedia.org/wiki/Software_metric&lt;/a&gt;&lt;br /&gt;
La categoría &lt;a href=&quot;http://en.wikipedia.org/wiki/Category:Software_metrics&quot;&gt;http://en.wikipedia.org/wiki/Category:Software_metrics&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Automated Code Review &lt;a href=&quot;http://en.wikipedia.org/wiki/Automated_code_review&quot;&gt;http://en.wikipedia.org/wiki/Automated_code_review&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Programming Style&amp;nbsp;&lt;a href=&quot;http://en.wikipedia.org/wiki/Programming_style&quot;&gt;http://en.wikipedia.org/wiki/Programming_style&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Code Refactoring &lt;a href=&quot;http://en.wikipedia.org/wiki/Code_refactoring&quot;&gt;http://en.wikipedia.org/wiki/Code_refactoring&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;En la comunidad GeneXus:&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Métricas y complejidad&lt;br /&gt;
GXPoints Counter &lt;a href=&quot;http://www2.gxtechnical.com/portal/hgxpp001.aspx?15,8,8,O,S,0,,1761s&quot;&gt;http://www2.gxtechnical.com/portal/hgxpp001.aspx?15,8,8,O,S,0,,1761s&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Descuidos, dependencias y&amp;nbsp;limpieza (cosas en&amp;nbsp;desuso):&lt;br /&gt;
KBDoctor &lt;a href=&quot;http://wiki.gxtechnical.com/commwiki/servlet/hwiki?KBDoctor&quot;&gt;http://wiki.gxtechnical.com/commwiki/servlet/hwiki?KBDoctor&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Visualización de dependencias:&lt;br /&gt;
The GXArchitect &lt;a href=&quot;http://www2.gxtechnical.com/portal/hgxpp001.aspx?15,27,347,O,S,0,APP;E;1010;0;APP;APA;1010;0;4;APA;MNU;E;90;4;MNU&quot;&gt;http://www2.gxtechnical.com/portal/hgxpp001.aspx?15,27,347,O,S,0,APP;E;1010;0;APP;APA;1010;0;4;APA;MNU;E;90;4;MNU&lt;/a&gt;;,&lt;br /&gt;
&lt;br /&gt;
Si conocen alguna herramienta GX relacionada con estos temas&amp;nbsp;y no la tengo en la lista, avisen.</description><link>http://3dgiordano.blogspot.com/2009/10/genexus-analisis-estatico-de-codigo.html</link><author>noreply@blogger.com (David Giordano)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidk0kjq0yRvM2VGmABhuG3GLcBeBaPKvzgSilKCbt0Y7c0HmBcfz6hdP9l8KtX9uFS-9o1aKgtuLkWCLmBTBEHlVsLJi9HGJ_TIVXDz7sj7AoUafy6hfWG_G2n-IPA1_RNQxLzjJjNAjaj/s72-c/GeneXus_Bug.jpg" height="72" width="72"/><thr:total>7</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9130689632234388749.post-267231111954105488</guid><pubDate>Mon, 19 Oct 2009 19:03:00 +0000</pubDate><atom:updated>2009-10-19T17:39:01.706-02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">GeneXus</category><category domain="http://www.blogger.com/atom/ns#">GXLicInfo</category><category domain="http://www.blogger.com/atom/ns#">License</category><title>GeneXus - Liberación de GXLicInfo v0.2</title><description>&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/AVvXsEhHUA5gEX8hUQTc3X2dRHEfUqdxA4EerYWKBQvNKyVTG5pc4KJlLBUe0hv6GPu8lXLz-PBYvxpnxsKw0K3y0gMkUBZ-i8xs4leWZ5E_6dDqodCBXh9MBQlqnR0Zubju9ch2rNFEtPT7yauR/s1600-h/GXLicInfo_image.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHUA5gEX8hUQTc3X2dRHEfUqdxA4EerYWKBQvNKyVTG5pc4KJlLBUe0hv6GPu8lXLz-PBYvxpnxsKw0K3y0gMkUBZ-i8xs4leWZ5E_6dDqodCBXh9MBQlqnR0Zubju9ch2rNFEtPT7yauR/s320/GXLicInfo_image.png&quot; vr=&quot;true&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;En anterior oportunidad mencioné sobre un proyecto llamado&amp;nbsp;&lt;a href=&quot;http://3dgiordano.blogspot.com/2009/06/genexus-informacion-de-licencias.html&quot; target=&quot;_blank&quot;&gt;GXLicInfo&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
Si bien aún no fue liberado su&amp;nbsp;código fuente,&amp;nbsp;logré cerrar algunos temas de estética y compatibilidad (Incorporando por ejemplo el soporte de &lt;a href=&quot;http://www.abstracta.com.uy/&quot; target=&quot;_blank&quot;&gt;GXtest de Abstracta&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
Hoy fue liberada para uso público y gratuito&amp;nbsp;la versión 0.2 de GXLicInfo.&lt;br /&gt;
La misma se encuentra libre y sin restricciones de uso para toda la Comunidad&amp;nbsp;GeneXus.&lt;br /&gt;
&lt;br /&gt;
Quien piense que le puede ser de utilidad y quiera unirse al &quot;Betatesting&quot;&amp;nbsp;¡¡¡puede hacerlo!!!&lt;br /&gt;
&lt;br /&gt;
Se encuentra de forma pública en&amp;nbsp;GX Plataform Gallery&amp;nbsp;bajo la sección External Tools: &lt;a href=&quot;http://gallery.genexus.com/&quot; target=&quot;_blank&quot;&gt;http://gallery.genexus.com/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Lamento&amp;nbsp;no brindar una buena documentación, sin embargo les dejo el dato de que&amp;nbsp;si tienen instalado GeneXus X o X Evo 1, es solo cuestión de correr desde línea de comando el programa GXLicInfo.exe o desde el explorador de Windows el archivo RunForest.cmd (para listar la misma información en una ventana de comando emergente).&lt;br /&gt;
&lt;br /&gt;
Para aquellos que tienen versiones anteriores a la X y quieren utilizarlo, existe una alternativa para&amp;nbsp;hacerlo (la cual funciona pero&amp;nbsp;no recomiendo). Para ese caso,&amp;nbsp;recomiendo leer el documento notas.txt proporcionado con el archivo de instalación.&lt;br /&gt;
&lt;br /&gt;
Espero&amp;nbsp;sea de utilidad</description><link>http://3dgiordano.blogspot.com/2009/10/genexus-liberacion-de-gxlicinfo-v02.html</link><author>noreply@blogger.com (David Giordano)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHUA5gEX8hUQTc3X2dRHEfUqdxA4EerYWKBQvNKyVTG5pc4KJlLBUe0hv6GPu8lXLz-PBYvxpnxsKw0K3y0gMkUBZ-i8xs4leWZ5E_6dDqodCBXh9MBQlqnR0Zubju9ch2rNFEtPT7yauR/s72-c/GXLicInfo_image.png" height="72" width="72"/><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9130689632234388749.post-2543705049488086484</guid><pubDate>Fri, 28 Aug 2009 19:00:00 +0000</pubDate><atom:updated>2009-08-28T16:00:02.327-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Kaizen</category><category domain="http://www.blogger.com/atom/ns#">Lean Manufacturing</category><category domain="http://www.blogger.com/atom/ns#">Manufactura Esbelta</category><category domain="http://www.blogger.com/atom/ns#">Mejora Continua</category><category domain="http://www.blogger.com/atom/ns#">Software Factory</category><title>Kaizen - Filosofía Japonesa enfocada en la mejora continua</title><description>Siguiendo un poco con mis anteriores artículos (&lt;a href=&quot;http://3dgiordano.blogspot.com/search/label/Manufactura%20Esbelta&quot; target=&quot;_blank&quot;&gt;Manufactura Esbelta&lt;/a&gt;), pasaré a comentarles un poco sobre la filosofía denominada Kaizen.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Kaizen : Una filosofía japonesa enfocada en la mejora continua. &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;La palabra Kaizen es una derivación de dos ideogramas japonesas (Kanjis), uno es KAI que significa &quot;Cambio&quot; y ZEN que significa &quot;Bueno&quot;.&lt;br /&gt;&lt;br /&gt;La filosofía se encuentra orientada hacia la eliminación de residuos o desperdicios, los cuales son eliminados de forma sistemática mediante la ejecución continua de mejoras.&lt;br /&gt;Kaizen no solamente aplicable a nivel organizacional, sino que puede ser aplicado sobre todos los aspectos de la vida.&lt;br /&gt;&lt;br /&gt;Una de las frases que identifican a Kaizen es: &quot;¡Hoy mejor que ayer, mañana mejor que hoy!&quot;.&lt;br /&gt;&lt;br /&gt;Muchas prácticas, metodologías y conceptos se encuentran relacionadas la filosofía de mejora continua en Kaizen, algunas de ellas son:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Control de calidad total / Gerencia de Calidad Total (TQC y TQM) &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Un sistema de producción justo a tiempo (JIT) &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Mantenimiento productivo total (TPM)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Teoría de restricciones (TOC)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Manufactura esbelta (LM)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;El método de las 5&#39;s (5S)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Circulo de Calidad (QC) &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;La capacidad de analizar, motivar, dirigir, controlar y evaluar constituyen la razón de ser del Kaizen. Otra de las consignas que identifican a Kaizen: “Cuanto más simple y sencillo mejor”.&lt;/p&gt;&lt;p&gt;El mejoramiento continuo se logra a través de todas las acciones diarias (por pequeñas que éstas sean), Trabajando en que los procesos y la empresa sean más competitivas en la satisfacción de nuestros clientes.&lt;/p&gt;&lt;p&gt;La velocidad del cambio dependerá del número de acciones de mejoramiento que se realicen día a día y de la efectividad con que éstas se realicen, por lo que es importante que la mejora continua sea una idea o un sentimiento adoptado como conducta de todos los miembros de la organización, hasta convertirse en una filosofía de trabajo y de vida.&lt;/p&gt;Uno de los aspectos del Kaizen es que no requiere de técnicas sofisticadas o tecnologías avanzadas.&lt;br /&gt;&lt;br /&gt;Según Manuel Suarez en su libro &quot;El Kaizen&quot;:&lt;br /&gt;&lt;br /&gt;&quot;Lo más interesante y práctico del Kaizen a diferencia de la innovación es que no necesita una tecnología complicada, altamente sofisticada, ni siquiera una enorme inversión para implantarlo; sólo se requiere de sistemas, mecanismos y herramientas sencillas, convencionales, que con sentido común son fáciles de aplicar. El verdadero catalizador de su aplicación es el Know-how, es decir, el conocimiento aprendido por los empleados a lo largo de los años, que operando bajo una filosofía Kaizen se vuelve en una estrategia básica de la supervivencia de la organización en los mercados.&quot;&lt;br /&gt;&lt;br /&gt;Las compañías japonesas son las que en un principio aplicando Kaizen lograron avances tan significativos que les permitieron no solo mejorar su nivel de calidad y competitividad dentro de Japón, sino que les permitió de forma estratégica lograr conquistar los mercados internacionales.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Kaizen vs Innovación (Kairyo)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Se suele hacer comparaciones entre el concepto de Kaizen e Innovación, comparar es un método simple y efectivo para demostrar el fuerte de cada una de estas filosofías.&lt;br /&gt;&lt;br /&gt;Les adjunto un cuadro del libro &quot;El Kaizen&quot; (anteriormente mencionado) que muestra claramente las diferencias entre las mismas.&lt;br /&gt;&lt;br /&gt;&lt;iframe style=&quot;BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px&quot; src=&quot;http://books.google.com.uy/books?id=l3FXNs-q_CYC&amp;amp;lpg=PA173&amp;amp;ots=_J8gJRx-1I&amp;amp;dq=Kaizen%20sencillo%20convencional&amp;amp;pg=PA175&amp;amp;output=embed&quot; frameborder=&quot;0&quot; width=&quot;700&quot; scrolling=&quot;no&quot; height=&quot;700&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Kaizen e Innovación no son excluyentes, sino que deben de usarse de forma complementaria para lograr lo que se denomina como &quot;mejora sostenible&quot;.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;Seguramente en algún futuro post les comentaré un poco sobre la correlación entre Kaizen e Innovación (Kayrio).&lt;br /&gt;&lt;br /&gt;Estos temas son muy amplios para tratar en un solo artículo, es por eso que les dejo algunos línk&#39;s para aquellos curiosos que quieran conocer más sobre Kaizen.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Recursos:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;El Padre de Kaizen: Masaaki Imai&lt;br /&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Masaaki_Imai&quot; target=&quot;_blank&quot;&gt;http://en.wikipedia.org/wiki/Masaaki_Imai&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wikipedia Kaizen &lt;a href=&quot;http://en.wikipedia.org/wiki/Kaizen&quot; target=&quot;_blank&quot;&gt;http://en.wikipedia.org/wiki/Kaizen&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wikilearning - Manufactura Esbelta - Mejora Continua Kaizen &lt;a href=&quot;http://www.wikilearning.com/monografia/manufactura_esbelta-mejora_continua_kaizen/12502-17&quot; target=&quot;_blank&quot;&gt;http://www.wikilearning.com/monografia/manufactura_esbelta-mejora_continua_kaizen/12502-17&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Libro &quot;El Kaizen&quot; por Manuel Francisco Suarez Barraza &lt;a href=&quot;http://books.google.com.uy/books?id=l3FXNs-q_CYC&quot; target=&quot;_blank&quot;&gt;http://books.google.com.uy/books?id=l3FXNs-q_CYC&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Libros sobre Kaizen en Amazon &lt;a href=&quot;http://www.amazon.com/s/ref=nb_ss?url=search-alias%3Dstripbooks&amp;amp;field-keywords=Kaizen&amp;amp;x=13&amp;amp;y=21&quot; target=&quot;_blank&quot;&gt;http://www.amazon.com/s/ref=nb_ss?url=search-alias%3Dstripbooks&amp;amp;field-keywords=Kaizen&amp;amp;x=13&amp;amp;y=21&lt;/a&gt;</description><link>http://3dgiordano.blogspot.com/2009/08/kaizen-filosofia-japonesa-enfocada-en.html</link><author>noreply@blogger.com (David Giordano)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9130689632234388749.post-3194787603940854097</guid><pubDate>Fri, 17 Jul 2009 14:00:00 +0000</pubDate><atom:updated>2009-07-17T11:00:00.402-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automatización</category><category domain="http://www.blogger.com/atom/ns#">Calidad</category><category domain="http://www.blogger.com/atom/ns#">GeneXus</category><category domain="http://www.blogger.com/atom/ns#">Jidoka</category><category domain="http://www.blogger.com/atom/ns#">Lean Manufacturing</category><category domain="http://www.blogger.com/atom/ns#">Manufactura Esbelta</category><category domain="http://www.blogger.com/atom/ns#">Poka Yoke</category><category domain="http://www.blogger.com/atom/ns#">Software Factory</category><title>GeneXus - Manufactura Esbelta - Poka Yoke</title><description>Continuando con Manufactura Esbelta (Post &lt;a href=&quot;http://3dgiordano.blogspot.com/2009/07/genexus-manufactura-esbelta.html&quot; target=&quot;_blank&quot;&gt;1&lt;/a&gt; y &lt;a href=&quot;http://3dgiordano.blogspot.com/2009/07/genexus-manufactura-esbelta-jidoka.html&quot; target=&quot;_blank&quot;&gt;2&lt;/a&gt;), les comentaré un poco sobre Poka Yoke y su aplicación como herramienta.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Poka Yoke (Prevención de errores)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;El término Poka Yoke proviene de la palabra japonesa &quot;poka&quot; que significa &quot;error inadvertido&quot; y &quot;yoke&quot; que significa &quot;prevenir&quot;.&lt;br /&gt;&lt;br /&gt;Por lo tanto una herramienta Poka Yoke es una herramienta que intenta prevenir los errores antes de que estos mismos sucedan.&lt;br /&gt;&lt;br /&gt;Los sistemas Poka Yoke implican el llevar a cabo dos funciones primordiales, por un lado realizar la inspección del 100% de las partes y por otro, en caso de que ocurra alguna anomalía, permitir dar retroalimentación permitiendo realizar lo antes posible acciones correctivas.&lt;br /&gt;&lt;br /&gt;Las herramientas Poka Yoke pueden intervenir en todo el ciclo de una línea de producción.&lt;br /&gt;&lt;br /&gt;Se definen 3 niveles de Poka Yoke:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Nivel 1&lt;/strong&gt; : Eliminar el error desde su origen&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Nivel 2&lt;/strong&gt; : Detectar un error en el momento en que ocurre&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Nivel 3&lt;/strong&gt; : Detectar los defectos inmediatamente, no permitiendo proseguir &lt;/li&gt;&lt;/ul&gt;Cuanto más anticipado en el proceso se instale un Poka Yoke, con mayor anticipación se detectarán los errores (en etapas más tardías el costo de solución un posible defecto será mayor).&lt;br /&gt;&lt;strong&gt;Módulos Poka Yoke&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;En artículos anteriores comenté un poco sobre la herramienta de automatización que permitió mejorar el proceso de Release en la empresa (ver artículos de &lt;a href=&quot;http://3dgiordano.blogspot.com/2009/07/genexus-manufactura-esbelta.html&quot; target=&quot;_blank&quot;&gt;Manufactura Esbelta&lt;/a&gt; y &lt;a href=&quot;http://3dgiordano.blogspot.com/2009/07/genexus-manufactura-esbelta-jidoka.html&quot; target=&quot;_blank&quot;&gt;Jidoka&lt;/a&gt;) .&lt;br /&gt;&lt;br /&gt;La herramienta Quirón (el orquestador de todo el proceso) actualmente tiene 4 tipos de módulos Poka Yoke implementados:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Inspección&lt;br /&gt;&lt;/strong&gt;Inspecciona los elementos a procesar (Basado en los reglas de negocio establecidas) &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Análisis de impacto&lt;/strong&gt;&lt;br /&gt;Detecta impactos directos e indirectos antes de que los mismos ocurran &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Corrección&lt;/strong&gt;&lt;br /&gt;Detecta anomalías y corrige las mismas &quot;en caliente&quot; &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Autodiagnóstico&lt;br /&gt;&lt;/strong&gt;Comparando resultado final contra el esperado es posible detectar anomalías en los módulos anteriormente mencionados.&lt;/li&gt;&lt;/ul&gt;En caso de detectar una anomalía será iniciado inmediatamente un proceso Jidoka.&lt;br /&gt;Este proceso procura que los problemas no vuelvan a suceder, permitiendo ingresar en un proceso de mejora continua (del proceso y sus herramientas Poka Yoke).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Los errores son inevitables&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Las personas siempre cometen errores, algo que debe tomarse como natural por ser parte de nuestra naturaleza humana.&lt;br /&gt;Una distracción, un olvido, malos entendidos, ignorar reglas o políticas y el no cumplir alguno de los estándares, son algunos de los factores que pueden derivar en error.&lt;br /&gt;&lt;br /&gt;Tratar de pensar que es posible eliminar el 100% de los errores humanos (mediante educación, capacitación o comunicación), sólo logrará minimizar la probabilidad de ocurrencia, sin embargo seguirá existiendo la probabilidad de que los mismos ocurran (y realmente seguirán ocurriendo).&lt;br /&gt;&lt;br /&gt;Existen varios factores y condiciones que aumentan la probabilidad de errores:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ajustes continuos (Producto o proceso) &lt;/li&gt;&lt;li&gt;Falta de Especificaciones adecuadas (Requerimientos o Procesos) &lt;/li&gt;&lt;li&gt;Alta complejidad (Producto o Procesos) &lt;/li&gt;&lt;li&gt;Entorno de trabajo (Condiciones de trabajo y relaciones) &lt;/li&gt;&lt;/ul&gt;Nadie quiere cometer errores!!. Mientras exista trabajo, seguirán existiendo errores, es un proceso inevitable. Las herramientas Poka Yoke nos ayudarán en el proceso en prevenir que los defectos ocurran, y principalmente, nos ayudará a detectar los errores que podrían pasar de forma inadvertida (esos errores que pueden llegar al final de la cadena de producción o inclusive a nuestros clientes).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Recomendaciones para crear un buen Poka Yoke&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Piensa simple&lt;/strong&gt;&lt;br /&gt;Es mejor muchos Poka Yokes simples, en donde cada uno de ellos tenga un único propósito, que tener un gran Poka Yoke con alta complejidad.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Piensa específicamente&lt;/strong&gt;&lt;br /&gt;Trabaja en analizar los errores que comúnmente ocurren para crear Poka Yokes que corrijan o detecten los mismos.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Piensa modularmente&lt;/strong&gt;&lt;br /&gt;No esperes a que toda la aplicación se encuentre terminada, puedes ir trabajando sobre los módulos que pueden ser verificados de forma independiente.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Piensa anticipándote&lt;/strong&gt;&lt;br /&gt;Tan pronto como sea posible, trabaja en detectar y corregir los errores antes que se conviertan en defectos en las manos de un cliente.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Piensa activamente&lt;/strong&gt;&lt;br /&gt;Cuando te encuentres con defectos, trabaja en corregir lo antes posible el error que lo ocasionó.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Piensa en reutilizar&lt;/strong&gt;&lt;br /&gt;Un Poka Yoke útil y bien pensando, puede ser modificado o reutilizado para otros propósitos.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Referencias:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Poka Yoke en la Wikipedia en español &lt;a href=&quot;http://es.wikipedia.org/wiki/Poka-yoke&quot; target=&quot;_blank&quot;&gt;http://es.wikipedia.org/wiki/Poka-yoke&lt;/a&gt;&lt;br /&gt;La versión en inglés en donde existe mayor referencia y ejemplos &lt;a href=&quot;http://en.wikipedia.org/wiki/Poka-yoke&quot; target=&quot;_blank&quot;&gt;http://en.wikipedia.org/wiki/Poka-yoke&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Libros sobre Poka Yoke &lt;a href=&quot;http://www.amazon.com/s/ref=nb_ss_b?url=search-alias%3Dstripbooks&amp;amp;field-keywords=Poka+Yoke&amp;amp;x=11&amp;amp;y=14&quot; target=&quot;_blank&quot;&gt;http://www.amazon.com/s/ref=nb_ss_b?url=search-alias%3Dstripbooks&amp;amp;field-keywords=Poka+Yoke&amp;amp;x=11&amp;amp;y=14&lt;/a&gt;</description><link>http://3dgiordano.blogspot.com/2009/07/genexus-manufactura-esbelta-poka-yoke.html</link><author>noreply@blogger.com (David Giordano)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9130689632234388749.post-6152427404700767217</guid><pubDate>Tue, 14 Jul 2009 20:30:00 +0000</pubDate><atom:updated>2009-07-15T22:26:33.788-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automatización</category><category domain="http://www.blogger.com/atom/ns#">Calidad</category><category domain="http://www.blogger.com/atom/ns#">GeneXus</category><category domain="http://www.blogger.com/atom/ns#">Jidoka</category><category domain="http://www.blogger.com/atom/ns#">Lean Manufacturing</category><category domain="http://www.blogger.com/atom/ns#">Manufactura Esbelta</category><category domain="http://www.blogger.com/atom/ns#">Software Factory</category><title>GeneXus - Manufactura Esbelta - Jidoka</title><description>En mi anterior artículo les comenté a modo introductorio un poco de mi experiencia con la filosofía de Lean Manufacturing (&lt;a href=&quot;http://3dgiordano.blogspot.com/2009/07/genexus-manufactura-esbelta.html&quot; target=&quot;_blank&quot;&gt;Manufactura Esbelta&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Continuando con el tema, les presentare la filosofía Jidoka y las herramientas implementadas bajo esta filosofía, la cual influye principalmente en el proceso de Release de los productos desarrollados con GeneXus en la empresa en donde trabajo (de Larrobla &amp;amp; Asociados y su producto Bantotal).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Jidoka&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Jidoka es un término japonés que significa &quot;Automatización&quot; y también relacionado con el concepto de &quot;Verificación de proceso&quot;.&lt;br /&gt;&lt;br /&gt;Generalmente cuando se instala Jidoka en un proceso de producción se están refiriendo a la verificación de la calidad integrada al proceso.&lt;br /&gt;&lt;br /&gt;La filosofía Jidoka establece cuales son los parámetros de calidad en el proceso, los mismos luego se comparan contra los resultados obtenidos de la ejecución real del proceso.&lt;br /&gt;Si algún estándar no es cumplido, el proceso se detiene a efectos de no permitir un resultados de mala calidad. En el momento en que la cadena se detiene, se reporta el incidente y no vuelve a restablecerse el proceso hasta que no sea corregido el problema.&lt;br /&gt;&lt;br /&gt;Jidoka se aplica también cuando un miembro del equipo encuentra un problema en su estación de trabajo, permitiendo frenar la línea de producción a efectos de no propagar los problemas.&lt;br /&gt;&lt;br /&gt;Los miembros del equipo son responsables de corregir el problema lo antes posible minimizando los tiempos en que se detiene la línea de trabajo.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Una nueva forma de trabajo&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Implementar una herramienta Jidoka produjo un cambio en la forma del trabajo diario.&lt;br /&gt;Se cambio las tareas rutinarias (y con alto costo en horas hombre) por un trabajo proactivo, en pro de solucionar los problemas cuando los mismos ocurren.&lt;br /&gt;&lt;br /&gt;Jidoka no funcionaría simplemente con el hecho de detectar anomalías y frenar la línea de producción. El trabajo fuerte de Jidoka está en corregir la anormalidad e investigar la causa raíz para eliminarla definitivamente el problema a efectos de que los mismos no vuelvan a suceder. De esta forma se instaura un ciclo de mejora continua.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Una buena ejecución de Jidoka&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Por lo tanto los pasos esenciales para definir una buena ejecución de Jidoka se resume en:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Detectar la anormalidad &lt;/li&gt;&lt;li&gt;Parar &lt;/li&gt;&lt;li&gt;Fijar o corregir la condición anormal &lt;/li&gt;&lt;li&gt;Investigar la causa raíz &lt;/li&gt;&lt;li&gt;Instalar las contramedidas&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Los primeros dos puntos son posibles de automatiz, sin embargo los otros puntos son totalmente del dominio de las personas, requieren del diagnóstico y análisis, así como de una resolución al problema.&lt;br /&gt;&lt;br /&gt;Es por eso que Jidoka también se le denomina &quot;Automatización con un toque humano&quot;, la automatización no sería posible sin el esfuerzo de las personas por mejorar y evolucionar el conocimiento en sus herramientas. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;La herramienta basada en Jidoka&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;En mi anterior articulo les comente sobre mi cliente &quot;vedette&quot;, el &quot;sector de fuentes&quot; (Encargado de la integración, build y distribución de los productos de trabajo del ciclo de desarrollo con GeneXus). &lt;/p&gt;&lt;p&gt;Basado en los &quot;estándares&quot; y criterios definidos, se implemento una herramienta encargada de automatizar el proceso (denominada internamente como Quirón).&lt;br /&gt;&lt;br /&gt;También se crearon herramientas que permiten frenar el proceso, así como otras que ayudan en la detección del problema y su posible diagnóstico.&lt;br /&gt;&lt;br /&gt;Nunca había trabajado en un proyecto de tal magnitud, no solo era necesario automatizar la línea de proceso, sino que se requería de herramientas que ayudaran a diagnosticar los problemas.&lt;br /&gt;&lt;br /&gt;La gran mayoría de las herramientas implementadas son utilizadas en la línea de proceso automatizada (orquestadas por Quirón), luego muchas de ellas son reutilizadas para realizar tareas preventivas, de mantenimiento, corrección y diagnóstico.&lt;br /&gt;&lt;br /&gt;Cuando todo funciona correctamente, los productos de trabajo son entregados sin problemas, cuando se detecta un error, el personal trabaja en solucionar la avería lo antes posible. En caso que se requiera detener la línea de trabajo, se cuenta con las herramientas para realizarlo (Cumpliendo con la filosofía).&lt;br /&gt;&lt;br /&gt;Lo bueno del método de trabajo y el haber logrado automatizar el proceso, es que actualmente por más que el sector se encuentre trabajando en solucionar un problema en una de las líneas, el resto de las líneas de trabajo seguirán funcionando sin inconvenientes (Actualmente es posible procesar hasta 10 líneas de trabajo de forma concurrente, las 24 horas del día los 365 días del año).&lt;br /&gt;&lt;br /&gt;Todo el automatismo se encuentra realizando tareas que anteriormente eran imposibles de ser realizados por el sector y lo mejor de todo es que ejecutan el 100% de las tareas especificadas, todo sin que nadie del sector tenga que &quot;sudar una gota&quot; por tener que procesar tanto trabajo.&lt;br /&gt;&lt;br /&gt;Es un trabajo de &quot;Todo o nada&quot;, si el producto de trabajo no pasa uno de los pasos del proceso, se tomará el paso de ese proceso como fallido, por lo tanto &quot;saltarse pasos&quot; o definir excepciones es algo no valido en el proceso.&lt;br /&gt;&lt;br /&gt;Cada actividad planteada tiene un propósito, el saltearse alguna de ellas genera un problema a largo plazo, por lo tanto se buscará que nuestro producto cumplan con todas las exigencias necesarias.&lt;br /&gt;&lt;br /&gt;Actualmente ejecutamos de forma automática el proceso de Release con soporte de más de 4 plataformas en simultaneo, cada programa debe de cumplir los estándares definidos para cada una de ellas, por lo tanto, un programa es aprobado cuando logra pasar las inspecciones, ser generado, compilado y distribuido para cada una de ellas.&lt;br /&gt;&lt;br /&gt;Finalizando, les dejo una referencia sobre Jidoka proporcionada por la propia gente de Toyota: &lt;a href=&quot;http://www2.toyota.co.jp/en/vision/production_system/jidoka.html&quot; target=&quot;_blank&quot;&gt;http://www2.toyota.co.jp/en/vision/production_system/jidoka.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;También les dejo información sobre la historia de los telares automáticos &lt;a href=&quot;http://www.yoshida-mc.co.jp/history/loom.htm&quot; target=&quot;_blank&quot;&gt;http://www.yoshida-mc.co.jp/history/loom.htm&lt;/a&gt; en donde podrán notar la evolución por la cual el desarrollo de software también está incursionando.&lt;br /&gt;&lt;br /&gt;En el próximo artículo les seguiré mencionando sobre filosofías y herramientas relacionadas a la Manufactura Esbelta aplicadas en el proyecto Quirón (y en futuros artículos espero poder introducirlos un poco más sobre los futuros proyectos y sus filosofías/metodologías utilizadas).&lt;br /&gt;&lt;/p&gt;</description><link>http://3dgiordano.blogspot.com/2009/07/genexus-manufactura-esbelta-jidoka.html</link><author>noreply@blogger.com (David Giordano)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9130689632234388749.post-1431490723050018166</guid><pubDate>Mon, 13 Jul 2009 04:00:00 +0000</pubDate><atom:updated>2009-07-15T22:27:37.036-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automatización</category><category domain="http://www.blogger.com/atom/ns#">Calidad</category><category domain="http://www.blogger.com/atom/ns#">GeneXus</category><category domain="http://www.blogger.com/atom/ns#">Lean Manufacturing</category><category domain="http://www.blogger.com/atom/ns#">Manufactura Esbelta</category><category domain="http://www.blogger.com/atom/ns#">Software Factory</category><title>GeneXus - Manufactura Esbelta</title><description>Comentaré un poco sobre una de las filosofías que vengo utilizando hace ya un tiempo en la implementación de herramientas de automatización.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;¿Que es Manufactura Esbelta? (Lean Manufacturing)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Según la Wikipedia &lt;a href=&quot;http://es.wikipedia.org/wiki/Lean_Manufacturing&quot; target=&quot;_blank&quot;&gt;http://es.wikipedia.org/wiki/Lean_Manufacturing&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&quot;Es una filosofía de gestión enfocada a la reducción de los 7 tipos de &quot;desperdicios&quot; (sobreproducción, tiempo de espera, transporte, exceso de procesado, inventario, movimiento y defectos) en productos manufacturados.&lt;br /&gt;Eliminando el despilfarro, la calidad mejora, el tiempo de producción y el costo se reducen. Las herramientas &quot;lean&quot; (en inglés, &quot;sin grasa&quot;) incluyen procesos continuos de análisis (kaizen), producción &quot;pull&quot; (en el sentido de kanban), y elementos y procesos &quot;a prueba de fallos&quot; (poka yoke).&quot;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Los principios clave de Manufactura Esbelta:&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Calidad perfecta a la primera&lt;/li&gt;&lt;li&gt;Minimización del despilfarro&lt;/li&gt;&lt;li&gt;Mejora continua&lt;/li&gt;&lt;li&gt;Procesos &quot;pull&quot;&lt;/li&gt;&lt;li&gt;Flexibilidad&lt;/li&gt;&lt;li&gt;Construcción/Mantenimiento de relaciones&lt;/li&gt;&lt;/ul&gt;En internet pueden encontrar mucho material sobre el tema, por lo tanto no los voy a aburrir haciendo más largo el artículo.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;¿Que relación existe con la Ingeniería de Software?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Si bien los orígenes provienen de la ingeniería industrial, la filosofía y sus conceptos son aplicables en todas las ramas de la ingeniería.&lt;br /&gt;&lt;br /&gt;Hoy en día, los clientes exigen una mayor flexibilidad en los productos, quieren entregas más pequeñas y con más frecuencia, y claro, requieren que todo producto resultante tenga mayor calidad a un precio mucho menor.&lt;br /&gt;&lt;br /&gt;Por lo tanto, si los clientes demandan más de nosotros, nosotros tendremos que hacer mucho más para lograr dejarlos satisfechos, ya que cada necesidad del cliente afectará de alguna forma cada parte del proceso de fabricación (hasta la entrega,instalación y mantenimiento del producto).&lt;br /&gt;&lt;br /&gt;Solamente un factor puede hacer la diferencia, y un solo factor puede hacer que una empresa logre el éxito (o el fracaso?).&lt;br /&gt;&lt;br /&gt;Con el fin de satisfacer a los &quot;clientes&quot;, los fabricantes de software están ampliando su alcance y enfocando (entre tantas otras) en intentar seguir la filosofía de la Manufactura Esbelta.&lt;br /&gt;El objetivo que persiguen: abarcar la mayor cantidad de procesos en busca de contribuir en mejorar la calidad y el aumento de las utilidades.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Mi experiencia&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Mi experiencia con &quot;la filosofía&quot; es muy personal (no es impuesto por la empresa en donde trabajo), la misma la vengo aplicando en el sector en donde trabajo, tanto en las cosas que hago como en las cosas que desarrollo (y por transitiva, llegará a los otros sectores en donde las herramientas tomen un papel importante).&lt;br /&gt;&lt;br /&gt;Estas herramientas tomarán un papel primordial en el proceso de &quot;Release Management&quot; de los productos desarrollados con GeneXus.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;¿Quienes son mis clientes?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Mi trabajo es implementar herramientas (uso interno y externo), por lo tanto &quot;mis clientes&quot; es un espectro muy variado.&lt;br /&gt;&lt;br /&gt;El proyecto en el cual estoy trabajando implica que el producto de salida final, tenga &quot;Calidad perfecta&quot; a la primera, buscando minimizar el &quot;despilfarro&quot; y el &quot;retrabajo&quot;.&lt;br /&gt;&lt;br /&gt;La empresa me planteó la necesidad, se analizaron los problemas y se llegó a una conclusión.&lt;br /&gt;No es posible lograr mejorar la calidad del producto final con solamente mejorar el último eslabón de la cadena de producción.&lt;br /&gt;&lt;br /&gt;Era necesario implementar mejoras en etapas más tempranas, incorporando calidad y automatismos en cada paso de la línea de trabajo.&lt;br /&gt;&lt;br /&gt;Por lo tanto a efectos de ser posible lograr ese cometido, se buscó y localizó el punto de quiebre en donde se debía de comenzar a trabajar para lograr un producto de salida de 5 estrellas.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Automatismos en procesos cotidianos&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;El cliente &quot;vedette&quot; de los últimos tiempos es el sector encargado de la integración, build y ditribución de los productos de trabajo (desarrollo y mantenimiento).&lt;br /&gt;Internamente lo denominamos &quot;El sector de Fuentes y Envíos&quot;.&lt;br /&gt;&lt;br /&gt;En ese escenario se aplicaron los principios clave y se desarrollaron herramientas que ayudan al sector en sus procesos diarios. La intención: inyectar en el menor tiempo posible y de la mejor forma posible la mayor cantidad de automatismos que aseguren la calidad del proceso completo.&lt;br /&gt;&lt;br /&gt;Quiero dejar claro que este tipo de proyectos no es posible sin la gente.&lt;br /&gt;Ahora el personal deja de ver el árbol para comenzar a ver el bosque. Y, ¿por qué me refiero a esto precisamente? Porque muchas personas asocian el automatismo y la eliminación de tareas sin valor con los despidos y remociones de cargos.&lt;br /&gt;Sin embargo esto no es así, las personas solamente dejan de picar piedra para comenzar a trabajar en problemas más complejos, realizando tareas con mayor nivel de complejidad, permitiéndoles brindar soluciones a problemas complejos, lo cual se alinea con la filosofía de Manufactura Esbelta.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;Actualmente es muy temprano como para medir resultados y solo se trabajó en un conjunto de eslabones (aún queda llegar al final de la cadena producción: al cliente de mis clientes); más que nada les quería presentar la filosofía de Manufactura Esbelta en el proceso de automatización de la línea de producción.&lt;br /&gt;&lt;br /&gt;Más adelante les comentaré un poco sobre el proceso completo, su correlación con Manufactura Esbelta y también sobre algunas otras prácticas y filosofías relacionadas, tales como Poka Yoke y Jidoka. Y claro, no faltará algún comentario sobre la experiencia obtenida en todo el camino transcurrido.&lt;br /&gt;&lt;br /&gt;¿Alguien en la comunidad ha tenido experiencias con automatización de la línea de producción?</description><link>http://3dgiordano.blogspot.com/2009/07/genexus-manufactura-esbelta.html</link><author>noreply@blogger.com (David Giordano)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9130689632234388749.post-7330838936352949993</guid><pubDate>Mon, 22 Jun 2009 09:00:00 +0000</pubDate><atom:updated>2009-06-22T21:19:57.315-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">GeneXus</category><category domain="http://www.blogger.com/atom/ns#">GXLicInfo</category><category domain="http://www.blogger.com/atom/ns#">License</category><title>GeneXus - Información de Licencias Instaladas</title><description>Próximamente voy a liberar el código fuente de una herramienta que permitirá acceder a la información de las licencias instaladas de los diferentes productos GeneXus.&lt;br /&gt;&lt;br /&gt;Actualmente estoy en un proyecto en el cual necesito tener control sobre el estado de las licencias GeneXus.&lt;br /&gt;La herramienta se encuentra implementada en .NET y utiliza GXPublic para especificar y generar programas.&lt;br /&gt;&lt;br /&gt;Como su ejecución es de forma desatendida (batch/servicio), todo mensaje emitido por el especificador y generador asociado al estado de las licencias son un problema.&lt;br /&gt;&lt;br /&gt;Por varios motivos puede ocurrir que las licencias den problemas en el proceso:&lt;br /&gt;- Un apagón hizo perder las licencias&lt;br /&gt;- Licencias a punto de expirar (En la empresa manejamos licencias temporarias)&lt;br /&gt;- O un determinado generador que debe de ser utilizado nunca se le solicitó la licencia.&lt;br /&gt;&lt;br /&gt;En el proceso, un mensaje como &quot;No autorizado&quot; o &quot;Expiró la licencia&quot; o &quot;Te quedan tantos días..&quot;, puede hacer que el proceso completo quede bloqueado en espera de una respuesta del usuario.&lt;br /&gt;&lt;br /&gt;Con información proporcionada por la gente de Artech, hice una pequeña rutina para obtener el estado de las licencias antes de utilizar un determinado generador.&lt;br /&gt;&lt;br /&gt;Luego con la rutina, comencé a implementar una herramienta que me permite por línea de comando listar todas las licencias que tengo instaladas en mi máquina.&lt;br /&gt;&lt;br /&gt;Una funcionalidad que siempre esperé tener en el License Manager era de permitir ver el árbol de autorizaciones (Si tengo autorizado DevEnv de GX 9.0 y no tengo autorizado DevEnv GX 8, muestro que DevEnv de GX 8 depende de esa licencia para funcionar).&lt;br /&gt;&lt;br /&gt;Adjunto ejemplo de un listado de Licencias generador por GXLicInfo:&lt;br /&gt;&lt;br /&gt;GXLicInfo v0.1&lt;br /&gt;----------------------------------------&lt;br /&gt;GeneXus X Evolution 1&lt;br /&gt;RPG Generator (X Evolution 1) Remain Days:20&lt;br /&gt;- RPG for iSeries Generator (9.0)&lt;br /&gt;- RPG/400 Generator (7.5)&lt;br /&gt;.NET Mobile Generator (X Evolution 1) Remain Days:20&lt;br /&gt;- .NET Mobile Generator (9.0)&lt;br /&gt;&lt;br /&gt;----------------------------------------&lt;br /&gt;GeneXus X&lt;br /&gt;Development Environment (X) Remain Days:10&lt;br /&gt;- Development Environment (9.0)&lt;br /&gt;- Development Environment (7.5)&lt;br /&gt;Java Generator (X) Remain Days:10&lt;br /&gt;- Java Generator (9.0)&lt;br /&gt;- Java Generator (7.5)&lt;br /&gt;.NET Generator (X) Remain Days:10&lt;br /&gt;- .NET Generator (9.0)&lt;br /&gt;- .NET Generator (7.5)&lt;br /&gt;&lt;br /&gt;----------------------------------------&lt;br /&gt;GeneXus X (Beta)&lt;br /&gt;Ruby Generator (X) (EXPIRED)&lt;br /&gt;&lt;br /&gt;----------------------------------------&lt;br /&gt;GeneXus 8.0&lt;br /&gt;Development Environment (8.0) Remain Days:80&lt;br /&gt;RPG/400 Generator (8.0) Remain Days:80&lt;br /&gt;Java Generator (8.0) Remain Days:80&lt;br /&gt;.NET Generator (8.0) Remain Days:80&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Próximamente voy a liberar el código fuente de GXLicInfo a la comunidad para que la misma vea de utilizarla en proyectos propios o en futuras herramientas.&lt;br /&gt;&lt;br /&gt;¿Que herramientas se les ocurriría implementar con estas rutinas básicas?&lt;br /&gt;&lt;br /&gt;Yo tengo algunas en mente, a ver si se les ocurre alguna a ustedes.&lt;br /&gt;&lt;br /&gt;- Una herramienta que permita ver el estado de todas las licencias de toda las máquinas conectadas a la red.&lt;br /&gt;- Incorporar soporte de solicitud de licencias de forma automática (Cuando pierdo licencias o se me vencen, avisar y permitir solicitar las mismas nuevamente de forma automática).&lt;br /&gt;- Un servicio que esté observando el estado de las licencias y ayude informando o recordando el estado de las licencias (Me lo imagino para un GXServer o para un Servidor al cual se conectan por Terminal)&lt;br /&gt;&lt;br /&gt;Actualmente sigo trabajando en GXLicInfo, por lo cual si alguien tiene ansiedad en probarla y desea ser un Betatester, me la piden y yo se las envío por mail.</description><link>http://3dgiordano.blogspot.com/2009/06/genexus-informacion-de-licencias.html</link><author>noreply@blogger.com (David Giordano)</author><thr:total>6</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9130689632234388749.post-7233285266440631481</guid><pubDate>Wed, 06 May 2009 17:40:00 +0000</pubDate><atom:updated>2009-05-11T21:42:28.056-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Compiler</category><category domain="http://www.blogger.com/atom/ns#">ECJ</category><category domain="http://www.blogger.com/atom/ns#">Eclipse</category><category domain="http://www.blogger.com/atom/ns#">GeneXus</category><category domain="http://www.blogger.com/atom/ns#">Java</category><title>GeneXus - Acelerando la compilación Java (Alternativa a SUN JDK)</title><description>El tiempo pasa y cada día la demanda de integración con otras aplicaciones externas es mayor.&lt;br /&gt;&lt;br /&gt;Muchos tienen suerte y no necesitan utilizar librerías externas (o código Java embebido en programas), muchos con crear su aplicación 100% GeneXus y utilizar viejas versiones de Java les es suficiente (Anteriores a Java 1.5).&lt;br /&gt;&lt;br /&gt;Sin embargo, hay casos en los que se requiere integrarse la aplicación contra implementaciones de terceros para que tu aplicación pueda funcionar, como por ejemplo; módulos de seguridad o interfaces de consulta o integración con otros sistemas (NO SOAP, NO GX).&lt;br /&gt;&lt;br /&gt;En mi caso por ejemplo, tengo un producto con muchas dependencias a módulos (clases) implementados en múltiples versiones de Java (Desde cosas simples J 1.1 a cosas más avanzadas en Java 1.5+).&lt;br /&gt;&lt;br /&gt;Actualmente estoy en un proceso de recompilación completa de la aplicación.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;¿Que opciones tenía?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Quería velocidad en la compilación, recompilar una gran base de conocimiento no era algo de un día para el otro y necesitaba hacerlo de forma completa en el mínimo tiempo posible.&lt;br /&gt;&lt;br /&gt;Los descartados:&lt;br /&gt;&lt;br /&gt;Microsoft SDK for Java murió con la compatibilidad 1.1.&lt;br /&gt;Jikes 1.22 murió con compatibilidad 1.4 (y algo de la 1.5)&lt;br /&gt;&lt;br /&gt;Yo necesito Java 1.5+ !!!&lt;br /&gt;&lt;br /&gt;No tenía otra que morir con el indiscutible ganador en Java, el compilador de SUN y su JDK.&lt;br /&gt;&lt;br /&gt;Sin embargo el compilador de SUN siempre se lo vio como &quot;Un compilador lento&quot;.&lt;br /&gt;&lt;br /&gt;Investigando descubrí que no era el único en el mundo que se quejaba de su lentitud y de no tener alternativas.&lt;br /&gt;&lt;br /&gt;Ahora bien, si bien no encontré ningún truco o pisadita para acelerar el JDK 1.6 de Sun, encontré que muchos elogiaban la diferencia en velocidad obtenida por los IDE&#39;s como el de Netbeans y Eclipse.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;¿En donde estaba la diferencia?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;En el fondo tanto NetBeans como Eclipse tienen que morir en el compilador de Sun (o eso yo pensaba), por lo que algo no me cerraba.&lt;br /&gt;Investigando un poco más, llegué a lo que se denomina como JSR 199 (Java Compiler API).&lt;br /&gt;&lt;br /&gt;A partir del momento en que Sun implementa en la máquina virtual de Java la posibilidad de compilación nativa (directamente por lenguaje), las cosas cambiaron.&lt;br /&gt;&lt;br /&gt;A partir de ese momento dejó la puerta abierta a terceros a que sea posible implementarse sus propios compiladores (en realidad sus propias optimizaciones al momento de compilar, el que compila y genera el bytecode es la máquina virtual).&lt;br /&gt;&lt;br /&gt;Tanto Eclipse como Netbeans hoy en día aprovechan estas funcionalidades para realizar las compilaciones directamente desde el IDE, independizándose del compilador binario, e implementando algoritmos mejorados que permitan compilar de la forma más optima posible.&lt;br /&gt;&lt;br /&gt;Por el momento solamente conseguí conocer algunas implementaciones que aprovechan el JSR 199 a fondo:&lt;br /&gt;&lt;br /&gt;- Netbean Compiler&lt;br /&gt;Tengo entendido que sería posible utilizar los métodos y simular un javac de línea de comando.&lt;br /&gt;Actualmente Netbeans no tiene publicada su api como para ser utilizado por terceros, hay que investigar un poquito más. Lo dejo en mi lista de cosas a investigar cuando tenga tiempo.&lt;br /&gt;&lt;br /&gt;- Eclipse JDT Core Batch Compiler&lt;br /&gt;Si, estos amigos de Eclipse vieron que la comunidad lo necesitaba, y lo liberaron como un módulo independiente del IDE de Eclipse. Gracias Eclipse!!!&lt;br /&gt;&lt;br /&gt;- OpenJDK&lt;br /&gt;Como aún no fue liberado oficialmente no le hice pruebas, pero en cuanto tenga tiempo lo probaré.&lt;br /&gt;Existe la posibilidad de usarse en modo &quot;Batch javac compatible&quot; mediante la compilación de un módulo específico de compilación (que dará origen a un javac.jar, busquen en internet sobre Netbeans y javac.jar y encontrarán como crearlo desde los fuentes).&lt;br /&gt;Lo que habría que probar es que si usa JSR 199 sería posible utilizar el Jar de OpenJDK con la máquina virtual de SUN 1.6. Habría que hacer la prueba también.&lt;br /&gt;&lt;br /&gt;Como no he tenido tiempo para investigar el caso de Netbean o el de OpenJDK, se lo dejo a la comunidad para que vea si puede dar algún aporte o no.&lt;br /&gt;&lt;br /&gt;Yo me voy a encargar de presentarles el caso que si pude probar.&lt;br /&gt;&lt;br /&gt;¿Quien quiere compilar java 1.5+ a un velocidad mucho mejor que la del compilador de SUN?&lt;br /&gt;&lt;br /&gt;Les presento a ...&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Eclipse JDT Core Batch Compiler&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Requisitos&lt;/strong&gt;: Runtime de Java 1.6+ (SUN Java 6.0 por ejemplo o cualquier otra que implemente el JSR199)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Donde Bajarlo&lt;/strong&gt;: &lt;a href=&quot;http://update.eclipse.org/downloads/&quot;&gt;Sitio&lt;/a&gt; o &lt;a href=&quot;http://update.eclipse.org/downloads/drops/R-3.4.2-200902111700/download.php?dropFile=ecj-3.4.2.jar&quot;&gt;Directo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;¿Como utilizarlo en GeneXus?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Para poder simular el compilador de Sun, deben de crearse un script de línea de comando que instancia el jar de eclipse y simule los parámetro del compilador original.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ejemplo:&lt;/strong&gt; ECJJavaC.cmd&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color:#000099;&quot;&gt;@echo off&lt;br /&gt;java -jar pathdeljar\ecj-3.4.2.jar -nowarn -source 1.5 -target 1.5 -cp &quot;%CLASSPATH%&quot; %1 %2 %3 %4 %5 %6 %7 %8 %9&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En donde &quot;pathdeljar&quot; se debe de indicar el path en donde se encuentra el jar del compilador.&lt;br /&gt;&lt;br /&gt;Los parámetros &quot;source&quot; y &quot;target&quot; deben de indicar la versión de Java origen (cuanto mas arrimada a la realidad mejor será la optimización) y destino que quieren generar, si no especifican nada se utilizará la última versión soportada por el runtime. (Si es java 6, utilizará 1.6)&lt;br /&gt;&lt;br /&gt;Si por ejemplo nuestra aplicación es 100% implementada con GeneXus, sabemos que GeneXus es Java 1.1 compatible, por lo tanto en source le indicamos 1.3 (es lo mínimo que acepta).&lt;br /&gt;&lt;br /&gt;Si queremos que sea compilado como por ejemplo en Java 1.5 compatible, en target le indicamos 1.5.&lt;br /&gt;&lt;br /&gt;De esta forma pueden &quot;jugar&quot; con los orígenes y destinos que requieran, esto ayudará al compilador a detectar que técnicas de análisis de código debe de utilizar para lograr compilar sus fuentes.&lt;br /&gt;&lt;br /&gt;Es posible compilar bytecode de cualquier versión de Java, por lo que pueden crear una versión de cada comando para cada versión destino y seleccionar en las producciones de cada versión el comando asociado a cada una de ellas.&lt;br /&gt;&lt;br /&gt;Si quieren mayor información sobre los parámetros del compilador (&lt;a href=&quot;http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.jdt.doc.isv/guide/jdt_api_compile.htm&quot;&gt;o en la página de eclipse&lt;/a&gt;):&lt;br /&gt;&lt;span style=&quot;color:#000099;&quot;&gt;java -jar pathdeljar\ecj-3.4.2.jar -help&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Los que me parecieron útiles&lt;br /&gt;&lt;span style=&quot;color:#000099;&quot;&gt;-time&lt;br /&gt;&lt;/span&gt;Muestra el tiempo en que demora el compilador, muy buena info a nivel de líneas de código por segundo procesado y cantidad de clases generadas.&lt;br /&gt;&lt;span style=&quot;color:#000099;&quot;&gt;-verbose&lt;/span&gt;&lt;br /&gt;Muestra internamente las lecturas y análisis de las dependencias, da muy buena información de donde saca las mismas (Cuando tienen mal el classpath esto les puede ayudar)&lt;br /&gt;&lt;span style=&quot;color:#000099;&quot;&gt;-log&lt;/span&gt;&lt;br /&gt;Permite almacenar el resultado del procesamiento en un archivo log (En otro artículo les enseñaré como aprovechar este parámetro).&lt;br /&gt;&lt;br /&gt;Ahora bien, lo que queda es ir a GeneXus y en la propiedad en donde se debe de indicar el compilador de SUN, se debe de apuntar al archivo de comando ECJJavaC.cmd que hemos creado.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Resultados&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Las pruebas que hice me dieron que el compilador de Microsoft y Jikes siguen siendo indiscutiblemente los más rápidos (Para versiones viejas de Java).&lt;br /&gt;&lt;br /&gt;Sin embargo utilizando el compilador de Eclipse frente al nativo de SUN logré mucho mejores resultados en los tiempos (En algunos casos hasta 4 veces más rápido que el de SUN).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Mejoras que pude detectar en el compilador de Eclipse frente al compilar de SUN.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;- Tiempos en análisis de dependencias (Si tengo un classpath monumental con múltiples JAR&#39;s)&lt;br /&gt;- Mejora en la utilización de recursos (Múltiples Cores, CPU, Memoria e IO)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Compatibilidad&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Se hicieron pruebas con GeneXus 8.0, GeneXus 9.0 y GeneXus X, corroborando un correcto funcionamiento de la solución planteada.&lt;br /&gt;&lt;br /&gt;Agradecimiento especiales a &lt;a href=&quot;http://www.linkedin.com/pub/dir/matias/reina&quot;&gt;Matías Reina&lt;/a&gt; por sus ayuda en las pruebas del compilador en GeneXus 9.0 y X.&lt;br /&gt;&lt;br /&gt;Les dejo un link en donde menciona un poco &lt;a href=&quot;http://www.onjava.com/pub/a/onjava/2006/06/28/whats-new-in-eclipse-3-2-java-development-tools.html&quot;&gt;la historia del compilador de Eclipse&lt;/a&gt; (Para los curiosos, el compilador es una evolución del compilador de VisualAge Micro Edition - VAME).&lt;br /&gt;&lt;br /&gt;Espero que les sea de utilidad.</description><link>http://3dgiordano.blogspot.com/2009/05/genexus-acelerando-la-compilacion-java.html</link><author>noreply@blogger.com (David Giordano)</author><thr:total>6</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9130689632234388749.post-797796815096552928</guid><pubDate>Tue, 05 May 2009 15:41:00 +0000</pubDate><atom:updated>2009-05-05T13:36:10.564-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automatización</category><category domain="http://www.blogger.com/atom/ns#">Calidad</category><category domain="http://www.blogger.com/atom/ns#">Evolución</category><category domain="http://www.blogger.com/atom/ns#">Fábricas</category><category domain="http://www.blogger.com/atom/ns#">GeneXus</category><category domain="http://www.blogger.com/atom/ns#">Guerra</category><category domain="http://www.blogger.com/atom/ns#">Industrialización</category><category domain="http://www.blogger.com/atom/ns#">Proceso</category><category domain="http://www.blogger.com/atom/ns#">Revolución</category><title>Décadas de ideas innovadoras (Parte III - El Final)</title><description>Bueno, por fin llegó el día en que terminaré de contar la historia de la saga de artículos relacionados a &quot;Décadas de ideas innovadoras&quot; (Continuación de la &lt;a href=&quot;http://3dgiordano.blogspot.com/2008/11/dcadas-de-ideas-innovadoras-parte-ii.html&quot;&gt;Parte II&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;La nueva revolución detrás de la revolución industrial.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Una nueva revolución se estaba gestando en la década de la post guerra.&lt;br /&gt;&lt;br /&gt;Por un lado los avances en la tecnología como la mecánica y la electrónica, fueron los que dieron al nacimiento del transistor, los circuitos integrados y lo que fueron las primeras computadoras.&lt;br /&gt;&lt;br /&gt;Sin embargo, también se estaba gestando una revolución en el método de fabricación.&lt;br /&gt;&lt;br /&gt;Entre algunos de las innovaciones se encuentra lo que se conoce como “Calidad Total”, “la Mejora Continua”,” Gestión del Conocimiento” y la “Reingeniería de los Procesos”.&lt;br /&gt;&lt;br /&gt;A partir de la década del 40, Estados Unidos se encontraba en la vanguardia, tanto de la tecnología como en la gestión de Empresas.&lt;br /&gt;&lt;br /&gt;Hasta que un país muy ingenioso comenzó a globalizar sus productos y demostró cómo en base al esfuerzo y el ingenio era posible mejorar la forma de hacer las cosas.&lt;br /&gt;&lt;br /&gt;Ese país era Japón, y demostró que era posible innovar teniendo recursos muy limitados.&lt;br /&gt;Logró demostrar que era posible mejorar la tecnología actual y los procesos de fabricación existentes a la época.&lt;br /&gt;&lt;br /&gt;Increíblemente era su única salida a la crisis post guerra ocasionada por los Estados Unidos.&lt;br /&gt;&lt;br /&gt;Fueron los creadores de &quot;Control Total de Calidad&quot; y la &quot;Mejora continua&quot; (Kaizen), así como muchos otros temas relacionados con la calidad y los procesos de construcción.&lt;br /&gt;&lt;br /&gt;En esas décadas el país invirtió enormemente en tecnología, matemáticas, física, procesos,  calidad y administración de empresas.&lt;br /&gt;&lt;br /&gt;La época la denominan algunos como la &quot;Tercera revolución industrial&quot;.&lt;br /&gt;&lt;br /&gt;Japón comenzó a trabajar a partir de 1950, y durante 20 años, logró demostrar al mundo de lo que eran capaces de lograr.&lt;br /&gt;&lt;br /&gt;Comenzó a hacer las cosas a su manera (Shafu), sin embargo el resto de las empresas del mercado demoraron en comenzar a aprender de ellos (captar conocimiento).&lt;br /&gt;&lt;br /&gt;Sus competidores demoraron 20 año más en comprobar que Japón lo que hacía era realmente cierto, ya que Estados Unidos y Europa creían que la calidad y los productos que eran desarrollados en Japón, por su alto nivel de calidad, eran en realidad parte de una estrategia de mercadeo (dumping y exportación de productos seleccionados de alta calidad para demoler mercados extranjeros).&lt;br /&gt;&lt;br /&gt;Sin embargo, las empresas corroboraron que tanto su producción interna como en sus productos exportados, tenían la vanguardia en tecnología.&lt;br /&gt;&lt;br /&gt;Lograron bajar costes de producción, aumentaron productividad e incrementaron la calidad de sus productos.&lt;br /&gt;&lt;br /&gt;Algunos de los pilares sobre los cuales se apoyaron fueron &quot;Los tres métodos&quot; (la mecanización, la especialización y las técnicas de dirección), así como las &quot;5S&quot; (Organización, Orden, Limpieza, Estandarizar y Disciplinar).&lt;br /&gt;&lt;br /&gt;Sin embargo no solo logró innovar con sus procesos de calidad, sino que logro innovar en la tecnología, lo cual hizo despertar a las grandes potencias, haciendo que las mismas comenzaran un proceso similar por temor a perder el liderazgo de los mercados.&lt;br /&gt;&lt;br /&gt;Uno de las grandes inversiones realizadas en Japón asociadas a la innovación se conoce como &quot;La Quinta Generación de computadoras&quot;.&lt;br /&gt;&lt;br /&gt;Algunos de los temas enmarcados en el proyecto:&lt;br /&gt;&lt;br /&gt;- Tecnologías para el proceso del conocimiento.&lt;br /&gt;- Tecnologías para procesar bases de datos y bases de conocimiento masivo.&lt;br /&gt;- Sitios de trabajo del alto rendimiento.&lt;br /&gt;- Informáticas funcionales distribuidas.&lt;br /&gt;- Supercomputadoras para el cálculo científico.&lt;br /&gt;&lt;br /&gt;Fue una verdadera revolución, el proyecto generó un impacto tan importante a nivel mundial, que otros países del mundo comenzaron a invertir de igual manera en los mismos temas de investigación.&lt;br /&gt;&lt;br /&gt;Es así que Estados Unidos creó la “Corporación de Microelectrónica y Tecnologías de la Computación”.&lt;br /&gt;Inglaterra siguió los pasos de Estados Unidos, creando el “Alves”, y en Europa se conformó el “Programa Europeo en Investigación Estratégica de la Tecnología de la Información”.&lt;br /&gt;&lt;br /&gt;Algunos de los resultados obtenidos de estos proyectos de investigación:&lt;br /&gt;&lt;br /&gt;- 5 Máquinas de Inferencia Paralela (Parallel Inference Machine - PIM) PIM/m, PIM/p, PIM/i, PIM/k, PIM/c.&lt;br /&gt;- Un lenguaje de programación deductivo y orientado a objetos (Quixote)&lt;br /&gt;- Parallel constraint logic programming language, GDCC&lt;br /&gt;- Sistemas Heterogéneos de Solución de Problemas Distribuidos.&lt;br /&gt;- Sistema Paralelo de Gerencia de Bases de Datos (Kappa-P)&lt;br /&gt;- Sistema de Razonamiento Legal HELIC-II&lt;br /&gt;- Teorema Autómata de Aprobaciones MGTP.&lt;br /&gt;- Análisis Genético de ADN y Secuencia proteínica&lt;br /&gt;- Base de datos Biológicas y KBMS (Knowledge Base Management Systems)&lt;br /&gt;&lt;br /&gt;Todo esto, dio originen a grandes avances en las siguientes áreas:&lt;br /&gt;&lt;br /&gt;- Procesamiento Paralelo (Arquitectura)&lt;br /&gt;- Bases de Datos con procesamiento Paralelo&lt;br /&gt;- Programación Lógica&lt;br /&gt;- Lenguajes de Acceso a Datos&lt;br /&gt;- Inteligencia Artificial&lt;br /&gt;- Sistemas Expertos y gestión de Conocimiento.&lt;br /&gt;&lt;br /&gt;¿Y qué sucedió con todo esto?&lt;br /&gt;&lt;br /&gt;Los proyectos fracasaron a mediado de los 90&#39;s.&lt;br /&gt;&lt;br /&gt;Se cree que el fracaso es debido a que la tecnología creada era muy adelantada a las necesidades de los usuarios.&lt;br /&gt;&lt;br /&gt;Es así que el mundo entero le dio la espalda a estos proyectos de investigación.&lt;br /&gt;Fue el momento en que los mercados comenzaron a &quot;enfocarse” hacia otras nuevas tecnologías que llegaban más al usuario “común”.&lt;br /&gt;&lt;br /&gt;La aparición de computadores con interfaces gráficas y la utilización de Microprocesadores (Intel).&lt;br /&gt;&lt;br /&gt;Hoy en día se ha mirado hacia el pasado, intentando volver a reflotar las viejas ideas, con respecto al tratamiento del conocimiento, la ejecución paralela y la inteligencia artificial.&lt;br /&gt;&lt;br /&gt;Muchos de los avances que hoy en día se están presentando, tienen en gran medida conceptos o ideas generadas en la década de los 70 a los 90&#39;s.&lt;br /&gt;Sin embargo, nadie recuerda del pasado, se sigue reinventando la rueda.&lt;br /&gt;&lt;br /&gt;De la misma forma en que el proyecto dio sus grandes avances y fue olvidado por las nuevas generaciones de computadores, así también sucedió con todo lo aprendido e implementado desde la época del 50 a los 80&#39;s (arquitecturas, sistemas operativos y lenguajes de programación).&lt;br /&gt;&lt;br /&gt;La era del microprocesador y las computadoras personales hicieron un &quot;borrón y cuenta nueva&quot;.&lt;br /&gt;&lt;br /&gt;Solamente sobrevivieron aquellos inventos que fueron denominadas como “Prácticos” para la nueva plataforma.&lt;br /&gt;&lt;br /&gt;En hardware, lo positivo fue que dió origen a la aparición del Disquete, el CD-ROM,  los Monitores, Discos Rígidos, el Modem y las Impresoras.&lt;br /&gt;&lt;br /&gt;En la parte del Software, lenguajes de programación generales fueron los primeros en trasladarse a las nuevas arquitecturas, dejando de lado lenguajes más especializados y de dominio.&lt;br /&gt;&lt;br /&gt;Sin embargo, los Sistemas operativos fueron &quot;reinventados&quot; para la nueva arquitectura (ya que existía un nuevo tipo de cliente).&lt;br /&gt;&lt;br /&gt;Los Dinosaurios siguieron existiendo, pero con el paso del tiempo fueron olvidados (sus mentores fueron muriendo y el mercado los fue desplazando).&lt;br /&gt;&lt;br /&gt;Solo en algunos casos, se migraron o se tomaron algunos de sus conceptos para las nuevas versiones del software.&lt;br /&gt;&lt;br /&gt;Hoy estamos presenciando una nueva revolución.&lt;br /&gt;&lt;br /&gt;El auge de los lenguajes dinámicos, los multiprocesadores, los lenguajes paralelos, lenguajes funcionales, nuevos sistemas operativos “como servicios”, la nube, las redes sociales, Web 2.0 y un sinfín de nuevas tecnologías.&lt;br /&gt;&lt;br /&gt;Espero no encontrarme dentro de unas décadas con el reinvento de la ruda.&lt;br /&gt;&lt;br /&gt;De la misma forma, espero que toda la tecnología actualmente emergente se esté basando en lecciones aprendidas del pasado (que no es tan lejano).&lt;br /&gt;&lt;br /&gt;Les recomiendo leer la Historia de la Computación en la Wikipedia.&lt;br /&gt;&lt;br /&gt;Vean cuales fueron los avances a partir de 1990 y verán que la computación cambió de rumbo.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://es.wikipedia.org/wiki/Historia_de_la_computaci%C3%B3n&quot;&gt;http://es.wikipedia.org/wiki/Historia_de_la_computaci%C3%B3n&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;De la misma forma, vean la evolución de los lenguajes en su historia.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://es.wikipedia.org/wiki/Historia_de_los_lenguajes_de_programaci%C3%B3n&quot;&gt;http://es.wikipedia.org/wiki/Historia_de_los_lenguajes_de_programaci%C3%B3n&lt;/a&gt;&lt;a href=&quot;http://oreilly.com/news/graphics/prog_lang_poster.pdf&quot;&gt;http://oreilly.com/news/graphics/prog_lang_poster.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Estos artículos que he publicado, de alguna forma intentan resumir cuales son en general mis temas de interés.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Algunas analogías que quiero dejar clara con estos post.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;El caso de Japón y la tecnología creada por ellos me hizo pensar mucho en lo que Artech en Uruguay logró implementar en los años 90&#39;s creando lo que hoy conocemos como GeneXus.&lt;br /&gt;&lt;br /&gt;Estar adelantados 20 años, el enfocarse en el conocimiento y no &quot;en lo general&quot;, el basarse en mucha investigación realizadas en la época pre 90&#39;s y el lograr realizar en práctica lo que otros &quot;ni se lo imaginaban posible&quot;, todo eso en parte es lo que define a GeneXus.&lt;br /&gt;&lt;br /&gt;¿Que se vendrá en los próximos años?&lt;br /&gt;&lt;br /&gt;Pienso que estamos en épocas en donde la forma de desarrollar software cambiará.&lt;br /&gt;El Software está recorriendo el mismo camino que otras industrias recorrieron en el pasado, por lo que es predecible hacia donde todo se moverá.&lt;br /&gt;&lt;br /&gt;No será de la misma forma, pero seguirán en general los mismo principios.&lt;br /&gt;&lt;br /&gt;Al estilo Star Wars, les dejo el Link de la &lt;a href=&quot;http://3dgiordano.blogspot.com/2008/10/dcadas-de-ideas-innovadoras-parte-i.html&quot;&gt;Parte I&lt;/a&gt;, en donde entenderán hacia donde quería ir con toda esta historia desde un principio.</description><link>http://3dgiordano.blogspot.com/2009/05/decadas-de-ideas-innovadoras-parte-iii.html</link><author>noreply@blogger.com (David Giordano)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9130689632234388749.post-5776837297295519392</guid><pubDate>Fri, 14 Nov 2008 02:32:00 +0000</pubDate><atom:updated>2008-11-14T01:03:49.800-02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Automatización</category><category domain="http://www.blogger.com/atom/ns#">Calidad</category><category domain="http://www.blogger.com/atom/ns#">Evolución</category><category domain="http://www.blogger.com/atom/ns#">Fábricas</category><category domain="http://www.blogger.com/atom/ns#">Guerra</category><category domain="http://www.blogger.com/atom/ns#">Industrialización</category><category domain="http://www.blogger.com/atom/ns#">Proceso</category><category domain="http://www.blogger.com/atom/ns#">Revolución</category><title>Décadas de ideas innovadoras (Parte II)</title><description>El post anterior (&lt;a href=&quot;http://3dgiordano.blogspot.com/2008/10/dcadas-de-ideas-innovadoras-parte-i.html&quot;&gt;Parte I&lt;/a&gt;), comencé mencionando un poco sobre algunos temas que surgieron en la década de los 90’s asociado a lenguajes de programación, y lenguajes declarativos u orientados a modelos.&lt;br /&gt;&lt;br /&gt;La idea de estos artículos era comenzar de una forma cronológica, pero al mejor estilo de George Lucas (StarWar) comienzo a contar la historia desde “Casi el Final” como para luego hacer la película que contará el comienzo de la historia.&lt;br /&gt;&lt;br /&gt;La presión que me “auto” impuse en el momento del primer post me obligó a que esto fuera así.&lt;br /&gt;&lt;br /&gt;Sin embargo de la misma forma que en el anterior post, vuelvo a obligarme a “postear” algo, con lo cual vuelvo a generar una “Disrupción” cronológica en el órden de los mismos.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;u&gt;Años previos a la segunda Guerra Mundial&lt;/u&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;En la historia de la humanidad, las guerras siempre han traído avances tecnológicos, en el caso de la primera y segunda guerra mundial, trajeron grandes avances en la ingeniería, las cuales fueron volcadas en la fabricación de productos (Revoluciones Industriales).&lt;br /&gt;&lt;br /&gt;Principalmente, de forma previa a la segunda guerra mundial, el proceso de la fabricación industrializada no se encontraba totalmente automatizado.&lt;br /&gt;&lt;br /&gt;Era muy extraño que en una fábrica existiera maquinaria especializada y altamente productiva.&lt;br /&gt;&lt;br /&gt;Las pocas máquinas existentes no realizaban tareas complejas y eran de construcción muy simple (unión de componentes básicos). Por lo tanto su mantenimiento y reparación era de fácil aplicación.&lt;br /&gt;&lt;br /&gt;Eran máquinas que generaban más producción que la que realmente se necesitaba para la época, por lo cual en ese momento se pensó que ese tipo de maquinaria producía más costos que beneficios. Fue uno de los motivos por los cuales no se difundieron rápidamente e hizo que su potencial no fuera aprovechado.&lt;br /&gt;&lt;br /&gt;Una de las cosas que sucedía, era que si las mismas comenzaban a fallar, no era de gran prioridad su reparación, y generalmente el mantenimiento que se le aplicaba era reactivo o de reparación, no existiendo lo que se conoce como mantenimiento Preventivo y Predictivo.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;strong&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;Años posteriores a la Guerra&lt;/span&gt;&lt;/strong&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Luego de la post guerra, surgió una explosión en la demanda de los consumidores, lo que ocasionó que se comenzara a aplicar tecnología para satisfacer las necesidades de los consumidores.&lt;br /&gt;&lt;br /&gt;Con el aumento de la demanda, muchas de las fábricas vieron “el negocio” o la necesidad de comenzar a automatizar las mismas.&lt;br /&gt;&lt;br /&gt;Las fábricas comenzaron a crear maquinarias que automatizaban el proceso de construcción.&lt;br /&gt;&lt;br /&gt;Con el paso de los años éstas máquinas se volvieron más complejas, y al mismo tiempo, mejoraban los tiempos de producción de forma exponencial.&lt;br /&gt;&lt;br /&gt;En esos momentos, el objetivo de las fábricas era mejorar sus procesos para reducir los tiempos, buscando en la medida de lo posible (con la tecnología existente) automatizar la mayor cantidad de actividades pertenecientes a la elaboración.&lt;br /&gt;&lt;br /&gt;Sin embargo con el tiempo las empresas detectaron que no era suficiente mejorar la cadena de producción, ya que existían fallos en gran parte de la cadena de proceso.&lt;br /&gt;&lt;br /&gt;Las fallas se asociaban a la rotura continua de las maquinarias, lo cual ocasionaba grandes pérdidas por tiempo de improductividad.&lt;br /&gt;&lt;br /&gt;A partir de ese momento, las empresas se dieron cuenta que tenían que trabajar en prevenir esos fallos a efectos de que los tiempos de improductividad sean lo más cortos posibles.&lt;br /&gt;&lt;br /&gt;A partir de ese momento se comenzó a aplicar lo que hoy en día se conoce como “Mantenimiento preventivo”.&lt;br /&gt;&lt;br /&gt;Increíblemente, en cuanto comenzaron a solucionar los problemas asociados con el mantenimiento preventivo, las mismas comenzaron a darse cuenta que no era suficiente.&lt;br /&gt;&lt;br /&gt;Lo que se comenzó a implementarse para mitigar esos problemas era un estilo de “Sistema de control” muy rudimentario.&lt;br /&gt;&lt;br /&gt;Algo surgió en ésta época, sin embargo no generó ninguna revolución en su momento.&lt;br /&gt;El nacimiento de las Computadoras.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;strong&gt;Luego de “La Guerra de las Galaxias” (Post Carrera Espacial y Guerra Fría)&lt;/strong&gt;&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;En la década de los Setenta, los avances en tecnología e investigación generaron grandes cambios y revoluciones.&lt;br /&gt;&lt;br /&gt;Gracias a esos avances, se comenzó a mejorar enormemente la mecanización y automatización.&lt;br /&gt;De forma paralela comenzó a aumentar enormemente las necesidades de los consumidores.&lt;br /&gt;&lt;br /&gt;Uno de los factores que se piensa como factor clave, es el hecho de que la humanidad comenzó a tener dependencia frente a las maquinas, ya no era humanamente posible competir contra ellas, y sin ellas ya no era posible subsistir.&lt;br /&gt;&lt;br /&gt;Todo lo que sucedió en las décadas anteriores comenzó a incrementarse.&lt;br /&gt;Se vuelven más complejas las máquinas, se realizan más tareas y se trabaja mucho más para que las mismas nunca dejen de trabajar.&lt;br /&gt;&lt;br /&gt;Esto produce una espiral viciosa la cual obliga a que se produzca mayor cantidad de productos en tiempos cada vez menores.&lt;br /&gt;&lt;br /&gt;Sin embargo, las fábricas comenzaron a fallar en satisfacer las necesidades de sus clientes.&lt;br /&gt;Al producir más, se estaba dejando de lado cosas como la calidad, la seguridad, y la protección del medio ambiente.&lt;br /&gt;&lt;br /&gt;De la misma forma en que aumentaba la demanda, las empresas crecían aun más, y comenzaron a crecer de forma geográfica.&lt;br /&gt;Comenzaron a instalarse en regiones geográficamente distantes a su origen, con el objetivo de satisfacer necesidades de nuevos clientes.&lt;br /&gt;&lt;br /&gt;A partir de ese momento comenzó lo que se conoce con el nombre de &quot;Globalización&quot;.&lt;br /&gt;&lt;br /&gt;Es así que la globalización comenzó a generar nuevos problemas.&lt;br /&gt;No se gestionaba y controlaba una única fábrica, se gestionaban decenas de ellas en lugares distantes.&lt;br /&gt;&lt;br /&gt;No solo se competía regionalmente, se comenzaba a competir a nivel internacional, con todos los problemas que esto conlleva (Idioma, regulaciones, diferentes “normas” y “Costumbres&quot;).&lt;br /&gt;&lt;br /&gt;A lo largo de la historia, frente a cada problema detectado, las soluciones eran encontradas mediante técnica de prueba y error.&lt;br /&gt;&lt;br /&gt;Para eliminar el hecho de “Suerte”, se comenzó a utilizar métodos científico y de investigación para poder llegar a mitigar los sucesos antes de que los mismos ocurrieran.&lt;br /&gt;&lt;br /&gt;Estos avances han logrado que los procesos de fabricación hayan logrado altos niveles de Madurez, logrando que el proceso de fabricación cambiara para siempre.&lt;br /&gt;&lt;br /&gt;Continuará....&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;¿No les suena similar toda esta historia de la industrialización con respecto a lo que está sucediendo en la industria del software en las últimas décadas?</description><link>http://3dgiordano.blogspot.com/2008/11/dcadas-de-ideas-innovadoras-parte-ii.html</link><author>noreply@blogger.com (David Giordano)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9130689632234388749.post-4694091037253403209</guid><pubDate>Fri, 31 Oct 2008 19:46:00 +0000</pubDate><atom:updated>2009-06-26T15:55:53.596-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Domain Specific Language</category><category domain="http://www.blogger.com/atom/ns#">Domain Specific Modelling</category><category domain="http://www.blogger.com/atom/ns#">GeneXus</category><category domain="http://www.blogger.com/atom/ns#">Lenguaje</category><category domain="http://www.blogger.com/atom/ns#">Model Driven Architecture</category><category domain="http://www.blogger.com/atom/ns#">Programación</category><title>Décadas de ideas innovadoras (Parte I)</title><description>&lt;strong&gt;&lt;u&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;Los 90’s&lt;/span&gt;&lt;/u&gt;:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;En la historia de la computación, y especialmente en la de los lenguajes de programación, encontrarán cómo, a partir de los años 90, son pocos los lenguajes de programación que lograron ser populares o destacarse a la fecha. La mayoría de los que se volvieron populares, se encuentran relacionados más con la simplicidad, generalidad y portabilidad que con la relación de abstracción, patrones, manejo del conocimiento o especializaciones en sectores como: manejo de Lógica de Negocio, Base de datos, Inteligencia Artificial, o lo relacionado a lenguajes Case o Lenguajes Funcionales.&lt;br /&gt;&lt;br /&gt;Son pocos los lenguajes “exóticos” que lograron sobrevivir, y los que lo lograron, en su mayoría fue gracias al apoyo de Universidades o centros de Investigación en los sectores de Aeronautica, Astronomía, Medicina, Genética y Química (entre otros).&lt;br /&gt;&lt;br /&gt;Sin embargo de la década de los 90’s comenzaron a surgir investigaciones en varias ramas que derivaron en lo que hoy se conoce como &quot;Lenguajes Específico de Dominio”, “Modelado Específico de Dominio&quot; y “Arquitectura Dirigida por Modelos” (Domain Specific Language - DSL, Domain Specific Modelling – DSM , Model Driven Architecture - DMA).&lt;br /&gt;&lt;br /&gt;Si bien las ideas asociadas a los lenguajes de cuarta y quinta generación comenzaron en la década de los 80 y 90, la utilización de Metamodelos, Patrones, y Lenguajes de Dominio, no se han hecho de uso &quot;popular&quot; a nivel mundial.&lt;br /&gt;&lt;br /&gt;En la región (Latinoamérica) existe una excepción, GeneXus, un lenguaje (y un entorno de programación) que desde la década del 90 viene revolucionado la forma de programar aplicaciones de negocio.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;- GeneXus (1989) - Una herramienta con soluciones reales.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Les dejo algunas reseñas de la presentación realizada por Artech sobre GeneXus en 1995, en el marco del Premio Nacional de Ingeniería (AIU - Asociación de Ingenieros del Uruguay).&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&quot;En toda investigación, y mucho más en una de largo alcance como esta, es imprescindible &quot;no reinventar la rueda&quot;, no perder tiempo y esfuerzo tratando de resolver problemas que otros ya han resuelto. En la informática, además, suele ser un gran error tratar de desarrollar software que se pueda comprar. En consecuencia se tomó la decisión de trabajar con PCs, los cuales y el software necesario eran accesibles a las posibilidades de un proyecto que comenzó con muy pocos recursos económicos. En consecuencia, se partió del &quot;estado del arte&quot;, de los resultados publicados por otros investigadores, y de las mejores herramientas que estaban en el mercado. Es casi imposible obtener el éxito de otra manera. Con estos supuestos se inició en 1985 la investigación formal.&quot;&lt;/em&gt;&lt;br /&gt;...&lt;br /&gt;&lt;em&gt;&quot;Con estos resultados a la vista se hicieron contactos con varias de las mayores empresas de software del mundo. Nadie tenía nada parecido, nadie había resuelto el problema del diseño de grandes bases de datos.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Entonces parecía existir una importante oportunidad de licenciar esta tecnología a algunas de esas empresas.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;El intento comercial terminó en el fracaso total por una serie de razones: la tecnología era mucho más avanzada de la que esperaban los interlocutores, que no tenían su mente preparada para ella (no la consideraban necesaria ni posible). &lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;El problema de credibilidad del país era (es) muy serio. Era muy difícil que una empresa de alta tecnología, en un país desarrollado, pudiera entender que en el Uruguay pudiera desarrollarse una tecnología tan avanzada.&quot;&lt;/em&gt;&lt;br /&gt;...&lt;br /&gt;&lt;em&gt;&quot;se seguía investigando, se descubrió en 1986 algo muy interesante: se había sistematizado el conocimiento capturado de las visiones de los usuarios, de forma de permitir el diseño automático de la base de datos óptima, lo que cumplía los objetivos originales, sin embargo, refinando el proceso de sistematización, se podía obtener una Base de Conocimiento tal que permitiera, además de lo anterior, generar los programas necesarios para recrear visiones&quot;&lt;/em&gt;&lt;br /&gt;....&lt;br /&gt;&lt;em&gt;&quot;GENEXUS es una herramienta diferente que, sin embargo, lucha en buena parte del mundo por un segmento de un mercado extremadamente competitivo: el de herramientas para mejorar la productividad en el desarrollo y mantenimiento de aplicaciones.&quot;&lt;/em&gt;&lt;br /&gt;...&lt;br /&gt;&lt;em&gt;&quot;El éxito de este proyecto se basa en una gran dosis de investigación permanente. El éxito comercial se basa en la superioridad tecnológica, la cual es muy difícil mantener en un mercado tan competitivo como este.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Pensamos que se está sólo en el comienzo, que probablemente se ha utilizado en GENEXUS tan sólo un 20% de la tecnología que se ha desarrollado.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Una duda existencial que hemos tenido desde el principio es: entendiendo que el camino que hemos seguido es bastante obvio, ¿por qué no hemos sido alcanzados por competidores con muchos más recursos?. Quizás el problema (y la singular oportunidad) que se enfrenta es que se está utilizando una tecnología bastante más adelantada que la de los competidores y que, por ello, no está de moda.&quot;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;El texto completo se encuentra en el siguiente Link:&lt;br /&gt;&lt;a href=&quot;http://www.aiu.org.uy/gxpsites/agxppdwn?2,1,4,O,S,0,79%3BS%3B1%3B21,&quot; target=&quot;_blank&quot;&gt;http://www.aiu.org.uy/gxpsites/agxppdwn?2,1,4,O,S,0,79%3BS%3B1%3B21,&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Les dejo algunas referencias para los que quieran conocer un poco más al respecto sobre estos temas.&lt;br /&gt;&lt;br /&gt;Sobre GeneXus:&lt;br /&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/GeneXus&quot; target=&quot;_blank&quot;&gt;http://en.wikipedia.org/wiki/GeneXus&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.genexus.com/&quot; target=&quot;_blank&quot;&gt;http://www.genexus.com/&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://wiki.gxtechnical.com/commwiki/servlet/hwiki?La+historia+de+GeneXus&quot; target=&quot;_blank&quot;&gt;http://wiki.gxtechnical.com/commwiki/servlet/hwiki?La+historia+de+GeneXus&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sobre Lenguajes Específico de Dominio, Modelado Específico de Dominio y Arquitectura Dirigida por Modelos:&lt;br /&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Domain_Specific_Language&quot; target=&quot;_blank&quot;&gt;http://en.wikipedia.org/wiki/Domain_Specific_Language&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Domain-specific_modelling&quot; target=&quot;_blank&quot;&gt;http://en.wikipedia.org/wiki/Domain-specific_modelling&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Model-driven_architecture&quot; target=&quot;_blank&quot;&gt;http://en.wikipedia.org/wiki/Model-driven_architecture&lt;/a&gt;</description><link>http://3dgiordano.blogspot.com/2008/10/dcadas-de-ideas-innovadoras-parte-i.html</link><author>noreply@blogger.com (David Giordano)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9130689632234388749.post-1736873278195604650</guid><pubDate>Tue, 07 Oct 2008 17:40:00 +0000</pubDate><atom:updated>2008-10-07T16:27:39.458-02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Filosofía</category><category domain="http://www.blogger.com/atom/ns#">Google</category><category domain="http://www.blogger.com/atom/ns#">Software Factory</category><title>No conformarnos nunca</title><description>La filosofía de Google se resumen en las siguientes palabras...&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&quot;No conformarnos nunca&quot;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Lista de &quot;Conclusiones&quot; a las cuales arribó Google en base a su experiencia:&lt;br /&gt;&lt;br /&gt;1. Lo más importante es pensar en el usuario.&lt;br /&gt;2. Es mejor especializarse en algo y hacerlo realmente bien.&lt;br /&gt;3. La velocidad es un valor seguro.&lt;br /&gt;4. La democracia en la W&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;eb&lt;/span&gt; funciona.&lt;br /&gt;5. No tiene por qué estar en su despacho para obtener una respuesta.&lt;br /&gt;6. Es posible obtener ingresos actuando de forma ética.&lt;br /&gt;7. Es imposible abarcar toda la información disponible.&lt;br /&gt;8. La necesidad de información supera todas las fronteras.&lt;br /&gt;9. Es posible ser profesional sin llevar traje.&lt;br /&gt;10. No nos conformamos con unos resultados estupendos.&lt;br /&gt;&lt;br /&gt;Comparto en gran medida los temas tratados en la lista.&lt;br /&gt;&lt;br /&gt;Seguramente encontrarán cosas con las cuales están de acuerdo y otras a las cuales no.&lt;br /&gt;&lt;br /&gt;Les doy el &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;link&lt;/span&gt; con el detalle de cada conclusión  &lt;a href=&quot;http://www.google.es/intl/es/corporate/tenthings.html&quot;&gt;http://www.google.es/intl/es/corporate/tenthings.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cuando lean el detalle llegarán a sus propias conclusiones.&lt;br /&gt;&lt;br /&gt;Me gustaría conocer más a fondo como funciona la Fábrica de Software de Google (simple curiosidad).&lt;br /&gt;&lt;br /&gt;Si alguien conoce algo de su interna, se agradece su aporte.</description><link>http://3dgiordano.blogspot.com/2008/10/no-conformarnos-nunca.html</link><author>noreply@blogger.com (David Giordano)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9130689632234388749.post-807843675877113455</guid><pubDate>Mon, 06 Oct 2008 15:43:00 +0000</pubDate><atom:updated>2008-10-07T11:12:07.803-02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Bienvenida</category><category domain="http://www.blogger.com/atom/ns#">Moving Forward</category><category domain="http://www.blogger.com/atom/ns#">Opening New Doors</category><category domain="http://www.blogger.com/atom/ns#">Walt Disney</category><title>Y se hizo público...</title><description>¡¡ Bienvenidos !!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hoy es un gran día.&lt;br /&gt;&lt;br /&gt;La puesta en producción de uno de mis pendientes, mi Blog.&lt;br /&gt;Di vida a este Blog en septiembre del año 2007, sin embargo no logré en ese momento consolidar fuerzas para publicar algo en el mismo...&lt;br /&gt;Hoy es el día doy a luz mi primer post (un parto de 12 meses sin dolor).&lt;br /&gt;&lt;br /&gt;Les voy a poner un poco en contexto, explicándoles el motivo del nombre del Blog.&lt;br /&gt;&lt;br /&gt;¿De donde proviene &quot;Moving Forward, Opening New Doors&quot;?&lt;br /&gt;&lt;br /&gt;Las palabras provienen de una frase célebre mencionada por alguien con quien me he identificado siempre.&lt;br /&gt;&lt;br /&gt;&quot;We keep moving forward, opening new doors, and doing new things, because we&#39;re curious and curiosity keeps leading us down new paths.&quot;&lt;br /&gt;Walt Disney.&lt;br /&gt;&lt;br /&gt;Si quieren conocer un poco más Walt, les recomiendo ver la Wikipedia en donde hay una buena reseña sobre su vida y sus hazañas. &lt;a href=&quot;http://es.wikipedia.org/wiki/Walt_Disney&quot;&gt;http://es.wikipedia.org/wiki/Walt_Disney&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ahora bien, volviendo al tema &quot;Blog&quot;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;En éste blog podrán encontrar de todo tipo de cosas, sueños, &quot;mundos ideales&quot;, noticias, sobre tecnología, programación, y claro, los problemas y soluciones que encuentre día a día en mi vida personal y profesional.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Espero que disfruten de los futuros contenidos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Saludos&lt;br /&gt;&lt;br /&gt;David</description><link>http://3dgiordano.blogspot.com/2008/10/y-se-hizo-pblico.html</link><author>noreply@blogger.com (David Giordano)</author><thr:total>2</thr:total></item></channel></rss>