<?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-3732630541286744699</atom:id><lastBuildDate>Fri, 25 Oct 2024 06:44:35 +0000</lastBuildDate><category>Agile</category><category>Scrum</category><category>JavaScript</category><category>Metodologias</category><category>Metodologias Agiles</category><category>ASP.NET</category><category>CSS</category><category>Git</category><category>HTML</category><category>Html5</category><category>C#</category><category>LINQ para SQL</category><category>css3</category><category>desarrollo web</category><category>.NET 3.5</category><category>Equipos distribuidos</category><category>MVC</category><category>Pentaho Community</category><category>Trabajo distribuido</category><category>equipo agil</category><category>.Net</category><category>Enterprise library</category><category>LINQ</category><category>Responsive design</category><category>Sitecore</category><category>Tercer Planeta</category><category>Trabajo en Equipo</category><category>information visualization</category><category>infovis</category><category>.NET 2.0</category><category>.NET 3.0</category><category>.Net 4.0</category><category>Arquitectura</category><category>Buenas Prácticas</category><category>CMS</category><category>CTools</category><category>Capital Humano</category><category>Data Mining</category><category>Diseño web</category><category>Indigo</category><category>Intercambio</category><category>Internet Explorer</category><category>Microsoft SQL Server</category><category>Microsoft SQLServer 2005</category><category>Mondrian</category><category>Open Data</category><category>Pampa Notes</category><category>Pentaho Dashboards</category><category>RRHH</category><category>SQL</category><category>Source Control</category><category>TI</category><category>TIC</category><category>Team Development for Sitecore</category><category>Teletrabajo</category><category>Timeboxing</category><category>UnitTesting</category><category>Visual Studio</category><category>Web projects</category><category>WinFx</category><category>Windows Vista</category><category>media-queries</category><category>web.config</category><category>ASP.NET AJAX</category><category>AWD</category><category>Adaptive Web Design</category><category>Adaptive design</category><category>Agile Documentation</category><category>AngularJS</category><category>Aprendizaje</category><category>Avalon</category><category>BI</category><category>BackgroundWorker</category><category>Batarang</category><category>Blog</category><category>Bookmarklet</category><category>Brasil</category><category>CCC2 Community Chart Components</category><category>CCNet</category><category>Closures</category><category>Cloud Computing</category><category>Cloud Services</category><category>Coaching ontológico</category><category>Coding Dojo</category><category>Community Server</category><category>ConfigurationManager</category><category>Content Management System</category><category>Cryptography Application Block</category><category>Crystal Clear</category><category>Daily Stand up meeting</category><category>DataGridView</category><category>Debugging</category><category>DefaultProxy</category><category>Desarrollo Custom</category><category>Deuda Técnica</category><category>Distributed Teams</category><category>Documentacion</category><category>Documentacion Agil</category><category>DragAndDrop</category><category>Editores de texto</category><category>Excepciones</category><category>Exception Handling</category><category>Exception Handling Application Block</category><category>Exceptions</category><category>Framework CSS</category><category>Function</category><category>Gherkin</category><category>GitGoing</category><category>GitHub</category><category>Heat Grid</category><category>Herramientas</category><category>HttpWebRequest</category><category>IE6</category><category>IE7</category><category>IIS 7</category><category>IaaS</category><category>Impedimentos</category><category>Impediments</category><category>Implicit and Explicit operators</category><category>Ingenieria de Software</category><category>JSON</category><category>JsHint</category><category>JsLint</category><category>Kanban</category><category>Koan</category><category>Less</category><category>Log</category><category>Logging</category><category>Logging and Instrumentation Application Block</category><category>Microsoft</category><category>Microsoft SQLServer 2005 &quot;Snapshots&quot;</category><category>Multimedia</category><category>Node.js</category><category>Novedades en Enterprise library 3.0</category><category>Nube</category><category>Nuget</category><category>Nullable types</category><category>Office Open XML Format</category><category>Operators checked unchecked</category><category>PaaS</category><category>Pair Programming</category><category>Planificacion</category><category>Profiling</category><category>Programación</category><category>Progressive Enhancement</category><category>Proxy</category><category>Pure</category><category>QUnit</category><category>RWD</category><category>Responsive Web Design</category><category>Retrospectiva</category><category>SG2012</category><category>SNA</category><category>SOA</category><category>SQL Compact Edition</category><category>SQL Express Edition</category><category>SQL Server 2005</category><category>SaaS</category><category>Saiku Analytics</category><category>Sass</category><category>Seguridad Integrada</category><category>Servicios</category><category>Silverlight</category><category>Snippets</category><category>Social Network Analysis</category><category>Software Engineering</category><category>Sparkline</category><category>Story points</category><category>Strict Mode</category><category>Sublime Text</category><category>Sublime Text 2</category><category>TDD</category><category>TDS</category><category>TFS</category><category>Team Building</category><category>Team Foundation Server</category><category>Team Fundation Server</category><category>Technical Debt</category><category>Tecnologia</category><category>Time Management</category><category>Trabajo a distancia</category><category>TypeScript</category><category>Use Strict</category><category>Validaciones</category><category>Video</category><category>ViewModel</category><category>Virtual Machines</category><category>Visual Analytics</category><category>WCF</category><category>Web Services</category><category>Web Test</category><category>WebRequest</category><category>WinForms</category><category>Windows Azure</category><category>Windows Mobile</category><category>Windows Server 2008</category><category>XP</category><category>app.config</category><category>audio</category><category>cde</category><category>compatibilidad</category><category>comunicacion interna</category><category>dashboard</category><category>decision tecnologica</category><category>desarrolladores</category><category>desarrollo personal</category><category>diseño adaptable</category><category>dynamic</category><category>dynamic object</category><category>estrategia de testing</category><category>hojas de estilo</category><category>icon fonts</category><category>inteligencia de negocios</category><category>medicion por puntos</category><category>microblogging</category><category>normalize css</category><category>pentaho</category><category>pentaho.com/</category><category>pictogramas</category><category>planning poker</category><category>prefix-free</category><category>proyectos ágiles</category><category>pseudo class</category><category>pseudo elements</category><category>pv.colors</category><category>redes sociales</category><category>redes sociales corporativas</category><category>reset css</category><category>retrocompatibilidad</category><category>reunión diaria</category><category>social network</category><category>testers</category><category>testing</category><category>visualizacion de datos</category><category>visualizacion de informacion</category><category>weka</category><title>Ideas 3p</title><description>El blog técnico de &lt;strong&gt;&lt;a href=&quot;http://www.tercerplaneta.com&quot;&gt;Tercer Planeta&lt;/a&gt;&lt;/strong&gt;</description><link>http://blog.tercerplaneta.com/</link><managingEditor>noreply@blogger.com (Ricardo D. de Guzmán)</managingEditor><generator>Blogger</generator><openSearch:totalResults>117</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-4027148127079629009</guid><pubDate>Tue, 19 Apr 2016 18:05:00 +0000</pubDate><atom:updated>2016-04-19T15:48:15.338-03:00</atom:updated><title>3P en la JSConf Uruguay 2016</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/AVvXsEjApNnqrsbqsYgdVDQAngLDWwLtu8B4rHuuNFziSIp-qFZjO9Agga28C0PAQrnOy6mlLbHKfLpUUlBWRpf5OBaczEBiCReBasxWeHCGHGpAoIeSJJ4YON-SvrOARsIDdWU82xSv7BwsXgE/s1600/jsconf.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjApNnqrsbqsYgdVDQAngLDWwLtu8B4rHuuNFziSIp-qFZjO9Agga28C0PAQrnOy6mlLbHKfLpUUlBWRpf5OBaczEBiCReBasxWeHCGHGpAoIeSJJ4YON-SvrOARsIDdWU82xSv7BwsXgE/s320/jsconf.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
Emoción. Esa es la sensación que nos invade mientras, en lo más profundo de nuestras mentes, presionamos el botón de &lt;i&gt;rewind&lt;/i&gt;&amp;nbsp;para revivir lo que fue nuestra experiencia en la &lt;b&gt;JSConf Uruguay 2016&lt;/b&gt;. &lt;b&gt;3P&lt;/b&gt; estuvo presente en tierras orientales para formar parte de una de las&lt;b&gt; mayores conferencias de&lt;/b&gt; &lt;b&gt;JavaScript&lt;/b&gt; celebradas a nivel mundial y, como no podía ser de otra manera, ¡a continuación les contaremos qué tal estuvo!&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRgE06Ih9wog5DHJq89uNYrLor6rQpd-hNEYQgylYbKAfCkAIrz1xFZsdRJOAMHF_d_AJY2NF5A2phQq2BeYVBmMesK13ujMExuB8FQYZk9K9f3qrBhMAIQHVXHGT2J_mxx-5VyU94lRA/s1600/8.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRgE06Ih9wog5DHJq89uNYrLor6rQpd-hNEYQgylYbKAfCkAIrz1xFZsdRJOAMHF_d_AJY2NF5A2phQq2BeYVBmMesK13ujMExuB8FQYZk9K9f3qrBhMAIQHVXHGT2J_mxx-5VyU94lRA/s320/8.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
Fueron dos días a pura intensidad. Dos días en los que fuimos huéspedes de una imponente, elegante y sofisticada construcción, como la es el &lt;b&gt;Auditorio Antel&lt;/b&gt;. Dos días en los que incorporamos nuevos conocimientos, compartimos momentos gratos con gente como nosotros –apasionados de los unos y ceros– y, por supuesto, llenamos nuestros estómagos hasta donde el cinturón lo permitió.&lt;br /&gt;
&lt;h3 style=&quot;text-align: center;&quot;&gt;
Día uno&lt;/h3&gt;
El responsable de la primera charla fue un compatriota, &lt;b&gt;&lt;a href=&quot;https://twitter.com/a0viedo&quot; target=&quot;_blank&quot;&gt;Alejandro Oviedo&lt;/a&gt;&lt;/b&gt;, quien realizó una interesante retrospectiva sobre la &lt;b&gt;historia de JavaScript&lt;/b&gt;. Al mejor estilo &lt;i&gt;DeLorean&lt;/i&gt;, nos trasladó al pasado, para recordarnos cómo eran las cosas 20 años atrás, y cómo en tiempos de &lt;b&gt;Mocha&lt;/b&gt; (A.K.A. &lt;i&gt;ECMAScript 1&lt;/i&gt;) uno podía toparse con cuestiones que hoy resultarían casi inconcebibles (¿cada vez que se disparaba un error de JavaScript se abría un pop-up? ¡No puede ser cierto!).&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAvweV5BaDS4lrJ4mNLSwOfQYMfM-yHtDKT3h6YNvaaaiuZjinqvxasEYuBZkvmk6OrPyv5YgoHgosN07mfFYoze1Lu2KkwTMPdkHnZ4qqhoY57Vd21e4ntm8Rf-4AaR9tjvAPqCBedlk/s1600/ruth.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;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAvweV5BaDS4lrJ4mNLSwOfQYMfM-yHtDKT3h6YNvaaaiuZjinqvxasEYuBZkvmk6OrPyv5YgoHgosN07mfFYoze1Lu2KkwTMPdkHnZ4qqhoY57Vd21e4ntm8Rf-4AaR9tjvAPqCBedlk/s320/ruth.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Luego, fue el turno de&lt;b&gt; &lt;a href=&quot;https://twitter.com/Rumyra&quot; target=&quot;_blank&quot;&gt;Ruth John&lt;/a&gt;&lt;/b&gt;, quien nos hizo dar cuenta de lo equivocados que estábamos con respecto al &lt;b&gt;MIDI&lt;/b&gt;, brindándonos un pantallazo de lo que actualmente somos capaces de hacer con el hardware adecuado y ciertas APIs como la nueva &lt;i&gt;Web MIDI API&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
Comprendimos, entonces, que se trata de algo mucho más grande que un audio de baja calidad; es, en verdad, un &lt;b&gt;protocolo de datos&lt;/b&gt;, con el que se pueden hacer cosas muy interesantes y divertidas. ¡Mención especial a las pegadizas animaciones y tracks con las que esta talentosa &lt;i&gt;MIDI evangelist&lt;/i&gt; (como ella misma se autoproclama) nos deleitó durante su presentación!&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: right; text-align: right;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhsFdKd57zfQfGAPDyn4XSKROGHmOTN28ZuVi9F5Cr7TVvLIsQjSNdWUFLy4yFnxcz_rBqrSdtHSchoGIgQ3qNk-8teszWXt7-_TVmjwh4yHiDllbdfWhlTXwvLFqSf2pRJIkoXTGa_SI/s1600/neal.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhsFdKd57zfQfGAPDyn4XSKROGHmOTN28ZuVi9F5Cr7TVvLIsQjSNdWUFLy4yFnxcz_rBqrSdtHSchoGIgQ3qNk-8teszWXt7-_TVmjwh4yHiDllbdfWhlTXwvLFqSf2pRJIkoXTGa_SI/s200/neal.jpg&quot; width=&quot;110&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&quot;You don&#39;t need permission to be awesome&quot;.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;https://twitter.com/reverentgeek&quot; target=&quot;_blank&quot;&gt;David Neal&lt;/a&gt;&lt;/b&gt;, por su parte, supo cautivar nuestra atención con su charla sobre &lt;b&gt;Electron&lt;/b&gt;, un poderoso &lt;i&gt;framework&lt;/i&gt; que, básicamente, nos permite construir aplicaciones &lt;b&gt;desktop&lt;/b&gt; empleando HTML, CSS y JavaScript. ¡Y lo mejor de todo, es que hablamos de aplicaciones ciento por ciento multiplataforma!&lt;/div&gt;
&lt;br /&gt;
Tal fue nuestro interés por Electron, que al día siguiente participamos de un &lt;b&gt;workshop&lt;/b&gt;, encabezado también por Neal, en el que pudimos dar nuestros primeros pasos con esta ambiciosa tecnología. Dicho sea de paso, los invitamos a pegarle un vistazo a&amp;nbsp;&lt;a href=&quot;https://github.com/reverentgeek/electron-workshop&quot; target=&quot;_blank&quot;&gt;éste&lt;/a&gt;&amp;nbsp;repositorio, donde podrán encontrar diferentes&amp;nbsp;&lt;b&gt;ejemplos&lt;/b&gt;&amp;nbsp;sobre Electron y más.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Otra de las grandes charlas que disfrutamos el viernes 15 (y la favorita de quién les escribe) fue la que brindó &lt;b&gt;&lt;a href=&quot;https://twitter.com/supersole&quot; target=&quot;_blank&quot;&gt;Soledad Penadés&lt;/a&gt;&lt;/b&gt;, sobre &lt;b&gt;MediaCapture API&lt;/b&gt; y la capacidad de los &lt;b&gt;browsers modernos&lt;/b&gt; para &lt;b&gt;capturar y procesar audio y sonido&lt;/b&gt;. No sólo fue una presentación amena y didáctica, sino también muy divertida, gracias a los ejemplos y comentarios de color que Soledad supo brindar a cada momento.&lt;br /&gt;
&lt;h3 style=&quot;text-align: center;&quot;&gt;
Día dos&lt;/h3&gt;
El día siguiente tampoco se quedó atrás, con aportes como la charla que brindó &lt;b&gt;&lt;a href=&quot;https://twitter.com/guybedford&quot; target=&quot;_blank&quot;&gt;Guy Bedford&lt;/a&gt;&lt;/b&gt; sobre &lt;b&gt;JSPM&lt;/b&gt;, un package manager ideado para trabajar con ES6, y la presentación de &lt;b&gt;&lt;a href=&quot;https://twitter.com/_juancaicedo&quot; target=&quot;_blank&quot;&gt;Juan Caicedo&lt;/a&gt;&lt;/b&gt; sobre &lt;b&gt;ELM&lt;/b&gt; y cómo sacar provecho de los beneficios de la programación funcional.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFqtr7zrM3KdVyBLWK8bcpkLWifFCIWZGX6BLuoTInin7noVlvea6RUxetRzEGeUjpAHiOMWVfjMd7JFzQtLojqa-Zs946dit_oSCybjE1_xsfPryuvULofM8AiT_-3cwHuRVUo-B35Rs/s1600/4.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFqtr7zrM3KdVyBLWK8bcpkLWifFCIWZGX6BLuoTInin7noVlvea6RUxetRzEGeUjpAHiOMWVfjMd7JFzQtLojqa-Zs946dit_oSCybjE1_xsfPryuvULofM8AiT_-3cwHuRVUo-B35Rs/s320/4.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
Hubo también un espacio para las denominadas &lt;b&gt;Lightning Talks&lt;/b&gt;, en las que los más intrépidos podían proponer un tema para exponer y, si resultaban elegidos, recibían el honor de poder realizar una pequeña presentación de cinco minutos.&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
Tampoco podemos dejar de hacer mención a la presentación de &lt;b&gt;&lt;a href=&quot;https://twitter.com/alansouzati&quot; target=&quot;_blank&quot;&gt;Alan Souza&lt;/a&gt;&lt;/b&gt; sobre &lt;b&gt;SVG&lt;/b&gt; y la &lt;b&gt;accesibilidad&lt;/b&gt;. Una charla que nos dejó un sabor a reflexión, recordándonos que el poder de la web está en su universalidad, y en la importancia de que todas las personas puedan acceder a la información independientemente de cualquier discapacidad.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGh6AqgM_0vr-q268NWY1dxRz299QzcRrru7upxX1kcscrB7-30Eu_aUFi3_JaOV9Q_vy-1qZwPOQ96FzrubUldxSAcG_IXzVwBNITcQjZXkgz5eJx0Rukr5oW4J39eXnXcIl5r1Z1Wm4/s1600/6.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGh6AqgM_0vr-q268NWY1dxRz299QzcRrru7upxX1kcscrB7-30Eu_aUFi3_JaOV9Q_vy-1qZwPOQ96FzrubUldxSAcG_IXzVwBNITcQjZXkgz5eJx0Rukr5oW4J39eXnXcIl5r1Z1Wm4/s320/6.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
Finalmente, ya sobre el cierre, &lt;b&gt;&lt;a href=&quot;https://twitter.com/thealphanerd&quot; target=&quot;_blank&quot;&gt;Myles Borins&lt;/a&gt;&lt;/b&gt; y &lt;b&gt;&lt;a href=&quot;https://twitter.com/rvagg&quot; target=&quot;_blank&quot;&gt;Rod Vagg&lt;/a&gt;&lt;/b&gt; hablaron largo y tendido sobre &lt;b&gt;Node.js&lt;/b&gt;, permitiéndonos conocer más en profundidad sobre el funcionamiento de los distintos releases y el proyecto Node.js en sí (donde nos enteramos, además, que muy pronto será lanzada la versión 6).&lt;br /&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL4kAQNV4WeuVt4WH3FdMoEX0gbcxHf2hUAXetMXhD8TbSp7TLPgAwSTUhKFqmujn8HLZGbrKNyqyvt6r4K0Jo3X7CWGkwRKvkxheS6EQcoX_0bbRq0ICbCdaSPkAYNnusPS70CXxSLZM/s1600/7.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; display: inline !important; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;213&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL4kAQNV4WeuVt4WH3FdMoEX0gbcxHf2hUAXetMXhD8TbSp7TLPgAwSTUhKFqmujn8HLZGbrKNyqyvt6r4K0Jo3X7CWGkwRKvkxheS6EQcoX_0bbRq0ICbCdaSPkAYNnusPS70CXxSLZM/s320/7.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;
Para ir cerrando&lt;/h3&gt;
&lt;/div&gt;
Difícilmente hayamos conseguido resumir todo lo que aconteció durante el 15 y 16 de abril en la JsConf Uruguay 2016. De hecho, quedaron cosas por mencionar: charlas, comidas, la fiesta de despedida, y más.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
No obstante, lo que queda claro, es que la experiencia ha sido más que positiva. Y es que, sin ninguna duda,&amp;nbsp;presenciamos una&lt;b&gt; gran conferencia, &lt;/b&gt;con &lt;b&gt;grandes charlas&lt;/b&gt; y una &lt;b&gt;bella ciudad &lt;/b&gt;haciendo de anfitriona.&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2016/04/3p-en-la-jsconf-uruguay-2016.html</link><author>noreply@blogger.com (Jonathan Siciliano)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjApNnqrsbqsYgdVDQAngLDWwLtu8B4rHuuNFziSIp-qFZjO9Agga28C0PAQrnOy6mlLbHKfLpUUlBWRpf5OBaczEBiCReBasxWeHCGHGpAoIeSJJ4YON-SvrOARsIDdWU82xSv7BwsXgE/s72-c/jsconf.jpg" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-5758048668540118245</guid><pubDate>Fri, 19 Feb 2016 20:26:00 +0000</pubDate><atom:updated>2016-02-19T17:30:04.638-03:00</atom:updated><title>Un recorrido por TypeScript</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/AVvXsEg_ux3XNfb-5sYaxBzTY-X-YMTE9o7-Ce6WBJWoK3ISrATsfeu6wRD7Fw7tFVND5iVzJaypiqmoSpScGTmoREQRTwf_L2BIfX5PjkP5tOP9hL353hqDmR40H5LaN7sBdWRl75xzatCd4vY/s1600/typescript_1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;221&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_ux3XNfb-5sYaxBzTY-X-YMTE9o7-Ce6WBJWoK3ISrATsfeu6wRD7Fw7tFVND5iVzJaypiqmoSpScGTmoREQRTwf_L2BIfX5PjkP5tOP9hL353hqDmR40H5LaN7sBdWRl75xzatCd4vY/s320/typescript_1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;TypeScript&lt;/b&gt; representa la visión de Microsoft sobre &lt;b&gt;JavaScript&lt;/b&gt;: un &lt;b&gt;superset&lt;/b&gt; &lt;i&gt;open source&lt;/i&gt; de uno de los lenguajes de programación más utilizados actualmente, al que le añade características que lo hacen aún más jugoso, como &lt;b&gt;tipado estático, objetos basados en clases y capacidades de compilación y depuración en Visual Studio&lt;/b&gt;. Lo suficiente como para que ocupemos esta entrada hablando de él.&lt;br /&gt;
&lt;br /&gt;
Con más de tres años en el mercado, TypeScript ha sabido ganarse un lugar en la comunidad de desarrolladores, especialmente en aquellos con largo recorrido dentro del ecosistema &lt;b&gt;.NET&lt;/b&gt;. Incluso, causó cierto revuelo cuando, hace ya un año, se anunció que sería adoptado por &lt;b&gt;AngularJS 2&lt;/b&gt;, la nueva versión del conocido framework.&lt;br /&gt;
&lt;br /&gt;
En nuestro caso, llevamos un tiempo interactuando con TypeScript, en parte como consecuencia de un viaje aún más grande que decidimos emprender hacia tierras de &lt;b&gt;Node.js&lt;/b&gt; y&amp;nbsp;&lt;b&gt;ECMAScript 6&lt;/b&gt;. Nuestras impresiones fueron positivas, a punto tal que, en algunos de nuestros proyectos, hemos procedido a su implementación.&lt;br /&gt;
&lt;br /&gt;
Todo suena muy bien, pero, ¿cómo funciona TypeScript? Echemos un vistazo a continuación.&lt;br /&gt;
&lt;h3 style=&quot;text-align: center;&quot;&gt;
Conceptos generales&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
El primer punto a destacar es que, cuando trabajamos con TypeScript, lo hacemos sobre un archivo con extensión &lt;b&gt;.ts&lt;/b&gt;. Éste, luego de la compilación, se transforma en un .js, que será lo que finalmente terminaremos cargando en nuestra página.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
El proceso de compilación se realiza directamente desde&amp;nbsp;&lt;b&gt;Visual Studio&lt;/b&gt;&amp;nbsp;(siempre y cuando contemos con la versión&amp;nbsp;&lt;b&gt;2013 Update 2 o superior&lt;/b&gt;), o bien de forma manual, a través del comando:&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;brush:csharp&quot;&gt;    tsc script.ts&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
Resulta interesante apreciar cómo el código generado es fácilmente&amp;nbsp;&lt;b&gt;legible&lt;/b&gt;. Además, la compilación nos genera&amp;nbsp;&lt;b&gt;source maps&lt;/b&gt;, algo que, sin dudas, supone un valor agregado importante al momento de hacer debugging.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxUMo2j5kN1T6ulibuuU-dYBHhgY7QTiL-24kiJ7yPFhB5TTp-_mwSHOfujmrJXE4U3gy0OaqcS0JCWwQM0-4DBbK5EoapgyuhpOuZLi9AREvYiRsDlzRpeFoh174F0qWG3Vj8tmjIbsM/s1600/typescript_2.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;182&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxUMo2j5kN1T6ulibuuU-dYBHhgY7QTiL-24kiJ7yPFhB5TTp-_mwSHOfujmrJXE4U3gy0OaqcS0JCWwQM0-4DBbK5EoapgyuhpOuZLi9AREvYiRsDlzRpeFoh174F0qWG3Vj8tmjIbsM/s320/typescript_2.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
Lo segundo por mencionar, es que al tratarse de un lenguaje tipado, nos permite definir clases, interfaces, y añadir información de tipos a los métodos. Esto es algo que podemos observar en la imagen que nos acompaña a la izquierda, donde se especifica que &lt;i&gt;message&lt;/i&gt; debe ser del tipo&lt;b&gt;&amp;nbsp;string&lt;/b&gt;. Esto es algo sumamente interesante, ya que nos permite efectuar &lt;b&gt;validaciones&lt;/b&gt; y detectar errores de manera inmediata, sin tener que pasar por la ejecución.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Así mismo, esto nos lleva a otro aspecto positivo, que es la posibilidad de tener toda esta información al alcance de la vista, a través de la ayuda que nos proporciona &lt;b&gt;Intellisense&lt;/b&gt;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirhFjrMTCx2BiDnzv-UyJZu5MI678W0MuIHBvOcuZ894qXwaP7ih_Raqa1xgbMijRWoo8cflsNg-h-zmMO9gQtIQF4TzkmxVjr18Ms-9K06lRXFIn2iaab9e1jEMNcoILV3l6YvrAjSDc/s1600/typescript_3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;210&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirhFjrMTCx2BiDnzv-UyJZu5MI678W0MuIHBvOcuZ894qXwaP7ih_Raqa1xgbMijRWoo8cflsNg-h-zmMO9gQtIQF4TzkmxVjr18Ms-9K06lRXFIn2iaab9e1jEMNcoILV3l6YvrAjSDc/s400/typescript_3.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
El tercer punto importante, es que TypeScript es una &lt;b&gt;extensión&lt;/b&gt; de JavaScript; esto significa, por un lado, que bajo ningún concepto estamos obligados a utilizar su sintaxis, pero, también, nos garantiza la total compatibilidad para con cualquier código ya existente escrito en JS.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h3 style=&quot;text-align: center;&quot;&gt;
Modularizando&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
TypeScript nos permite organizar nuestro código de dos maneras: utilizando el estándar &lt;b&gt;CommonJS&lt;/b&gt;, o bien &lt;b&gt;AMD&lt;/b&gt; (Asynchronous Module Definition).&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Como en Node, en TypeScript tenemos las palabras reservadas &lt;b&gt;export&lt;/b&gt; e &lt;b&gt;import &lt;/b&gt;para exponer y acceder a los elementos de un determinado componente de nuestra aplicación.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK39UmJyW6pUtUcecAJA_XRqDUz1U_ww7hBRfzS4WDuv9eRBf3FbwN_agXUnmSotibveeCuX6_0IhRWsNqXNvZXt4x4nFNLxjGlPBMNs9LrcC49M_icAz09JPrfNtk8Ol4gCRTI0pucnU/s1600/typescript_4.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;151&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK39UmJyW6pUtUcecAJA_XRqDUz1U_ww7hBRfzS4WDuv9eRBf3FbwN_agXUnmSotibveeCuX6_0IhRWsNqXNvZXt4x4nFNLxjGlPBMNs9LrcC49M_icAz09JPrfNtk8Ol4gCRTI0pucnU/s400/typescript_4.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Del mismo modo, también podemos importar librerías externas como jQuery, haciendo uso de lo que se conocen como &lt;b&gt;typings&lt;/b&gt;. Siendo reconocibles por su extensión &lt;b&gt;d.ts&lt;/b&gt;, estos ficheros de definición se utilizan para poder hacer referencia a dichos paquetes.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Aquí es importante hacer un paréntesis para mencionar &lt;b&gt;Typings&lt;/b&gt;, un &lt;i&gt;manager&lt;/i&gt; que nos simplifica enormemente el manejo de estas definiciones. Su instalación se realiza desde &lt;b&gt;npm&lt;/b&gt;, y para más información sobre su uso, les encomendamos pegarle un vistazo al poderoso&amp;nbsp;&lt;a href=&quot;https://github.com/typings/typings&quot; target=&quot;_blank&quot;&gt;readme&lt;/a&gt; de su repositorio.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h3 style=&quot;text-align: center;&quot;&gt;
¿Cómo seguir?&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
Habiéndonos propuesto poder dar una respuesta a las preguntas fundamentales, como qué es TypeScript y cuáles son sus características principales, el primer paso ya está dado. Ahora, ya teniendo una idea más formada de lo que se esconde detrás de su nombre, el paso siguiente, y casi inevitable, es acudir a las fuentes: su vasta&amp;nbsp;&lt;a href=&quot;http://www.typescriptlang.org/Handbook&quot; target=&quot;_blank&quot;&gt;documentación&lt;/a&gt;. Una lectura ciertamente interesante, que nos permitirá aprender y comprenderlo en profundidad.&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2016/02/un-recorrido-por-typescript.html</link><author>noreply@blogger.com (Jonathan Siciliano)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_ux3XNfb-5sYaxBzTY-X-YMTE9o7-Ce6WBJWoK3ISrATsfeu6wRD7Fw7tFVND5iVzJaypiqmoSpScGTmoREQRTwf_L2BIfX5PjkP5tOP9hL353hqDmR40H5LaN7sBdWRl75xzatCd4vY/s72-c/typescript_1.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-6627736755471041839</guid><pubDate>Tue, 24 Nov 2015 14:33:00 +0000</pubDate><atom:updated>2015-11-24T11:59:42.831-03:00</atom:updated><title>Google Maps, o cómo no perder el rumbo</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/AVvXsEjPvPFkbkjmHMtJYk9_YpbH7391YK0pqzdQF_Rv3UCe1d7gZYN2Wd5YKheqBzOsSlog-E-4uVNVpm2t1T2ObxLWQX0wBJxOaaixN5yY06_kDrbKz0e040SSi1R-TcmoPSO8i9xmYiHoNgY/s1600/googlemaps.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPvPFkbkjmHMtJYk9_YpbH7391YK0pqzdQF_Rv3UCe1d7gZYN2Wd5YKheqBzOsSlog-E-4uVNVpm2t1T2ObxLWQX0wBJxOaaixN5yY06_kDrbKz0e040SSi1R-TcmoPSO8i9xmYiHoNgY/s320/googlemaps.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&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;MsoNormal&quot;&gt;
&lt;span lang=&quot;ES-AR&quot;&gt;Si en
nuestro diccionario buscáramos la palabra &lt;i&gt;mapa&lt;/i&gt;, uno de los primeros resultados en aparecer debiera ser&amp;nbsp;&lt;b&gt;Google Maps&lt;/b&gt;.
Difícilmente podamos llevar la cuenta de la cantidad de veces que acudimos a
este fantástico servicio de Google, ya sea para obtener una dirección, observar
una calle, o, por qué no, disfrutar de un momento de recreación, visitando
lugares increíbles situados a miles de kilómetros de donde estamos.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ES-AR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ES-AR&quot;&gt;Recientemente,
estuvimos trabajando en un proyecto web que nos planteaba la necesidad de
contar con un mapa –en verdad, más de uno–. Y, como podrán sospechar tras leer
estas primeras líneas, nuestra elección recayó sobre la &lt;b&gt;API&lt;/b&gt; de Google Maps. Detrás
de esto surge una pequeña historia; historia que, como cualquier otra, merece
ser contada, y eso es, precisamente, lo que haremos a continuación:&lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;ES-AR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&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/AVvXsEj0KodIz41RdHJtDZxgA3bhVcSXMkH1yhex3wZVo5NnU8OUJBHFEHwal1NUUbfgG24ECIBZxg-VqlbWM6W1ddFkD3l9JvrQFZX3vh7v7pPe1umwTAiTy2ncYowBZNMiivh6Au9I6lBiJto/s1600/marker.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;213&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0KodIz41RdHJtDZxgA3bhVcSXMkH1yhex3wZVo5NnU8OUJBHFEHwal1NUUbfgG24ECIBZxg-VqlbWM6W1ddFkD3l9JvrQFZX3vh7v7pPe1umwTAiTy2ncYowBZNMiivh6Au9I6lBiJto/s320/marker.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span lang=&quot;ES-AR&quot;&gt;Lo que
precisábamos, básicamente, era una herramienta que nos permitiera desplegar un
mapa con un importante número de &lt;i&gt;puntos&lt;/i&gt; (localizaciones) en él; puntos a los
que, de aquí en adelante, llamaremos &lt;b&gt;markers&lt;/b&gt;
(o&amp;nbsp;&lt;i&gt;marcadores&lt;/i&gt;).&amp;nbsp;&lt;/span&gt;Inicialmente, la idea era que dicho mapa fuera estático –es
decir, una imagen, sin zoom ni ninguna otra capacidad de interacción por parte
del usuario–.&amp;nbsp; Los mapas&lt;b&gt; estáticos&lt;/b&gt; de
Google Maps parecían ser la opción ideal, sobre todo porque cumplían a
rajatabla con esto último. Fue así como decidimos proceder a su implementación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desgraciadamente, no demoramos en darnos cuenta que procesar semejante cantidad
de información (cientos y cientos de markers) sería una labor imposible, dadas
las &lt;b&gt;limitaciones&lt;/b&gt; técnicas presentes en este tipo de mapas, ideados para
propósitos mucho más simples.&lt;br /&gt;
&lt;span lang=&quot;ES-AR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ES-AR&quot;&gt;La vuelta
al punto inicial fue abrupta e inevitable. Decidimos, entonces, tomarnos un
momento para analizar más exhaustivamente qué otras opciones teníamos, y
detectar cuál de ellas podía ser la más acertada. Frente a nuestros ojos
comenzaron a desfilar diferentes servicios dedicados a la creación de mapas: &lt;a href=&quot;https://www.arcgis.com/&quot; style=&quot;font-weight: bold;&quot;&gt;ArcGIS&lt;/a&gt;&lt;b&gt;, &lt;/b&gt;&lt;a href=&quot;https://www.mapbox.com/&quot; style=&quot;font-weight: bold;&quot;&gt;Mapbox&lt;/a&gt;&lt;b&gt;, &lt;/b&gt;&lt;a href=&quot;https://www.openstreetmap.org/&quot; style=&quot;font-weight: bold;&quot;&gt;OpenStreetMap&lt;/a&gt; y &lt;a href=&quot;https://developers.google.com/maps/&quot; style=&quot;font-weight: bold;&quot;&gt;Google Maps&lt;/a&gt;
–en su vertiente tradicional, esto es, los mapas &lt;b&gt;dinámicos &lt;/b&gt;que habitualmente utilizamos–.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
No fue
fácil tomar una decisión, fundamentalmente porque cada uno de estos nombres
tenía con qué ganarse nuestra atención. Sin embargo, terminamos, una vez más,
decantándonos por Google Maps. ¿La razón? Su &lt;b&gt;&lt;a href=&quot;https://developers.google.com/maps/documentation/javascript/reference&quot;&gt;documentación&lt;/a&gt;&lt;/b&gt;. Un aspecto para nada menor que, en este caso, fue
determinante al momento de inclinar la aguja de nuestra balanza, considerando sus ricas explicaciones y ejemplos.&lt;/div&gt;
&lt;h3 style=&quot;text-align: center;&quot;&gt;
Manos a la obra&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Hasta aquí, todo muy lindo, pero, ¿qué hay de la implementación de nuestro mapa? Lo primero por hacer es, naturalmente, cargar la API de Google Maps a través del tag &lt;i&gt;script.&amp;nbsp;&lt;/i&gt;En su última versión (3), la dirección es:&lt;/div&gt;
&lt;pre class=&quot;brush:csharp&quot;&gt;&lt;/pre&gt;
&lt;pre class=&quot;brush:csharp&quot;&gt;    https://maps.googleapis.com/maps/api/js?v=3.exp&amp;amp;sensor=false&lt;/pre&gt;
&lt;pre class=&quot;brush:csharp&quot;&gt;&lt;/pre&gt;
A continuación, es necesario asignar un&amp;nbsp;&lt;b&gt;contenedor&lt;/b&gt;&amp;nbsp;(div) a nuestro mapa. Dicho elemento debe contar, simplemente, con un&amp;nbsp;&lt;i&gt;height&lt;/i&gt;&amp;nbsp;y un&amp;nbsp;&lt;i&gt;width&lt;/i&gt;&amp;nbsp;definidos por nosotros, dejando el resto en manos de la API de Google Maps.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&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/AVvXsEgZYo4zc8_dByXUsT3PZjrEG6Vo4jwMMEQ8IuGThwE9F0s3SSQU8L8awuTyXUBdpoSwroUe01kGfKmQwqp-g0b1mYcNk2Gq-LH6Z_hJ8XdOqNDHKyXlggv_SEB5sG6LVK2taL-cW1ICAME/s1600/map_css.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;117&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZYo4zc8_dByXUsT3PZjrEG6Vo4jwMMEQ8IuGThwE9F0s3SSQU8L8awuTyXUBdpoSwroUe01kGfKmQwqp-g0b1mYcNk2Gq-LH6Z_hJ8XdOqNDHKyXlggv_SEB5sG6LVK2taL-cW1ICAME/s320/map_css.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
El siguiente paso, es definir la ubicación del mismo, algo que, como cabría suponer, se
establece a partir de una determinada&amp;nbsp;&lt;b&gt;latitud&lt;/b&gt; y &lt;b&gt;longitud&lt;/b&gt;.&amp;nbsp;En nuestro caso particular,
esto abrió un pequeño rompecabezas que, para ser honestos, no fue tan sencillo
de resolver. El por qué, se debe al hecho de que, inicialmente,
habíamos especificado un par de coordenadas fijas, con la finalidad de que el mapa apuntara
a Norteamérica. Es bueno hacer un paréntesis aquí, señalando que, hasta este
momento, los markers que necesitábamos mostrar en el mapa eran, en su
totalidad, pertenecientes al hemisferio norte. Sin embargo, a poco de avanzar
con la implementación, se sumó el requisito de poder contar, también, con
markers situados en América del Sur.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&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/AVvXsEhMp8q3HuLhvhyiENaKgKj5Trercyr02Or55HaqGvGCiyx_-Q_V8tF7j_1lNERjTA8k19U_cd8u6PgqFO2oRUJZSjjZt4q-OlBCU61XhYQvAzqO_lfSrOXvySP9SMxfpz_OsogKdqXZdTA/s1600/createmap.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;84&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMp8q3HuLhvhyiENaKgKj5Trercyr02Or55HaqGvGCiyx_-Q_V8tF7j_1lNERjTA8k19U_cd8u6PgqFO2oRUJZSjjZt4q-OlBCU61XhYQvAzqO_lfSrOXvySP9SMxfpz_OsogKdqXZdTA/s320/createmap.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span lang=&quot;ES-AR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ES-AR&quot;&gt;Esto, como
imaginarán, implicaba volver a cambiar el par de coordenadas que, previamente,
habíamos definido para nuestro mapa. Algo poco práctico y, sobre todo,
&lt;b&gt;ineficiente&lt;/b&gt;, considerando que, tal vez, en un futuro, pudiera requerirse un
cambio de un impacto aún mayor, como, por ejemplo, mostrar markers de otro
continente.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ES-AR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ES-AR&quot;&gt;Ante
semejante panorama, nos vimos obligados a pensar en una &lt;b&gt;solución&lt;/b&gt; más elegante o,
al menos, efectiva. La respuesta a lo que buscábamos llegó a través de algo
mágico llamado &lt;i&gt;fitbounds&lt;/i&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;ES-AR&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiolUp47-icSFYvveS5lvOe_dLIUwXoCDndtLkfgcBSbRLq8gs7ZH02Rh1dP1UCYd8eue6mStmTkBX3Ax-FE7i5yGVdKiXTRtklZJ5X8eCUxOQyWSStGPl586SpZJjRzYvilL5oVPR1xU8/s1600/fitbounds.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;162&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiolUp47-icSFYvveS5lvOe_dLIUwXoCDndtLkfgcBSbRLq8gs7ZH02Rh1dP1UCYd8eue6mStmTkBX3Ax-FE7i5yGVdKiXTRtklZJ5X8eCUxOQyWSStGPl586SpZJjRzYvilL5oVPR1xU8/s400/fitbounds.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ES-AR&quot;&gt;&lt;b&gt;Fitbounds&lt;/b&gt; es
un método de Google Maps que, básicamente, nos permite posicionar un mapa y
establecer su nivel de zoom tomando como referencia los markers que contiene.
De esta manera,&amp;nbsp;evitamos&lt;b&gt; &lt;/b&gt;tener que asignarle un par de coordenadas fijas y, al
mismo tiempo, nos aseguramos que todos los puntos que deben mostrarse lo harán.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ES-AR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ES-AR&quot;&gt;Hablando de
markers, es importante señalar que, esencialmente, son localizaciones (con su correspondiente latitud y longitud) representadas por un &lt;b&gt;ícono&lt;/b&gt; o &lt;i&gt;pin&lt;/i&gt;, y que, en cuyo interior, pueden contener una descripción como, por ejemplo, un texto o
enlace web.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ES-AR&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;ES-AR&quot;&gt;En nuestro
proyecto, la información que recibíamos para poder crear estos markers provenía
de &lt;i&gt;Sitecore&lt;/i&gt;. Por esta razón, debimos implementar un método que nos facilitara
y, mejor aún, agilizara el transporte de los datos. No obstante, esto mismo
podría hacerse desde un simple &lt;i&gt;JSON&lt;/i&gt;&amp;nbsp;ya que, para la construcción de un marker, se requiere tan sólo un par de coordenadas.&lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;ES-AR&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYfoXOaQA_Oxe4FAUmkrytJov1UYAqKX_7jKoTZAFohMi9T1wPpH6objVJ5j6YqcWkK99gKiHkLxvuKMmPmFrrFlGiyn8Q862YmaJbgWRyCAC1IGzmhfjWFJlcM3H-0UMu_-BxVtuQNKk/s1600/newmarker.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;186&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYfoXOaQA_Oxe4FAUmkrytJov1UYAqKX_7jKoTZAFohMi9T1wPpH6objVJ5j6YqcWkK99gKiHkLxvuKMmPmFrrFlGiyn8Q862YmaJbgWRyCAC1IGzmhfjWFJlcM3H-0UMu_-BxVtuQNKk/s400/newmarker.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Un último requisito que, posteriormente, se sumó a nuestro proyecto, fue el de tener la posibilidad de &lt;b&gt;mostrar&lt;/b&gt;&amp;nbsp;y &lt;b&gt;ocultar&lt;/b&gt;&amp;nbsp;determinados tipos de markers -agrupados a través de especialidades-. Para solucionar esto, debimos implementar un método que nos permitiera filtrar la lista según la opción seleccionada, estableciendo como &lt;i&gt;null&lt;/i&gt; aquellos puntos a ignorar.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8DxE83Lp34vRl0CReew34im2qRzbRP9kzdAmO2UoLnDKF05_lD5pnHFoBpI9v3-iToDA4ITEUJQVXbbJRhjsDuwuVa3xNpDfIlhtds27PScKefeQPnft5uGwq1yIUI8aFPuMcyHZ0l5g/s1600/changemarkers.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;158&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8DxE83Lp34vRl0CReew34im2qRzbRP9kzdAmO2UoLnDKF05_lD5pnHFoBpI9v3-iToDA4ITEUJQVXbbJRhjsDuwuVa3xNpDfIlhtds27PScKefeQPnft5uGwq1yIUI8aFPuMcyHZ0l5g/s400/changemarkers.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
A lo largo de estas líneas, hemos intentando reunir algunos de los conceptos más importantes que formaron parte de nuestra experiencia con Google Maps. Esperemos que hayan disfrutado del viaje y, ahora, con un poco de suerte (o un teléfono con GPS), no pierdan el rumbo.&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2015/11/google-maps-o-como-no-perder-el-rumbo.html</link><author>noreply@blogger.com (Jonathan Siciliano)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPvPFkbkjmHMtJYk9_YpbH7391YK0pqzdQF_Rv3UCe1d7gZYN2Wd5YKheqBzOsSlog-E-4uVNVpm2t1T2ObxLWQX0wBJxOaaixN5yY06_kDrbKz0e040SSi1R-TcmoPSO8i9xmYiHoNgY/s72-c/googlemaps.jpg" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-5286168696606471637</guid><pubDate>Fri, 26 Sep 2014 18:00:00 +0000</pubDate><atom:updated>2014-11-05T15:01:31.127-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">CSS</category><category domain="http://www.blogger.com/atom/ns#">desarrollo web</category><category domain="http://www.blogger.com/atom/ns#">Diseño web</category><category domain="http://www.blogger.com/atom/ns#">Less</category><category domain="http://www.blogger.com/atom/ns#">Sass</category><title>CSS - Por qué usar pre-procesadores: Less / Sass (conceptos básicos)</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&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/AVvXsEiA3qjyIeYjgtbJWw9IYYWbsSIfJrYfrDbEodLWjylJKztkLPjua0bjyhdmLCPFXaSCWxwSS5eov0eC3GwFKcvIR3mX0s7eVcQVSJOwKAjyYhJY4tHoE19okEpZ7z1n4RsTqwz53ZbcJhQ/s1600/LessSass.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA3qjyIeYjgtbJWw9IYYWbsSIfJrYfrDbEodLWjylJKztkLPjua0bjyhdmLCPFXaSCWxwSS5eov0eC3GwFKcvIR3mX0s7eVcQVSJOwKAjyYhJY4tHoE19okEpZ7z1n4RsTqwz53ZbcJhQ/s1600/LessSass.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;CSS&lt;/b&gt; (&lt;i&gt;Cascading Style Sheets&lt;/i&gt;) es el lenguaje utilizado para detallar los estilos y formatos de webpages basadas en contenidos creados en documentos&lt;b&gt; HTML&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
CSS es muy simplista, accesible y esencial para quienes hacen diseños web pero también es bastante limitado.&lt;br /&gt;
&lt;br /&gt;
El problema con CSS es que cuando el proyecto empieza a hacerse más complejo es cuando saltan a la luz las limitaciones que este lenguaje presenta respecto de las necesidades de desarrollo cada vez más sofisticadas - para las cuales no fue pensado -. Si bien se fueron haciendo cambios en los features de CSS con nuevas versiones y propiedades, todavía le falta mucho para poder satisfacer los requerimientos actuales del diseño web. Esto lleva a que las hojas de estilo se hagan cada vez más repetitivas y difíciles de mantener.&lt;br /&gt;
&lt;br /&gt;
Para cubrir estas necesidades aparecieron los &lt;b&gt;pre-procesadores de CSS&lt;/b&gt; que posibilitan el desarrollo de código más ordenado, optimizado y de fácil mantenimiento.&lt;br /&gt;
&lt;br /&gt;
Estos pre-procesadores no ocupan el lugar de CSS sino que ayudan en el ahorro de tiempo de desarrollo, en la creación de documentos más prolijos y en facilitar el uso de características avanzadas de estilos.&lt;br /&gt;
&lt;br /&gt;
Dos de los pre-procesadores más conocidos y utilizados son &lt;a href=&quot;http://lesscss.org/&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;LESS&lt;/b&gt;&lt;/a&gt; (&lt;i&gt;Less CSS&lt;/i&gt;) y &lt;a href=&quot;http://sass-lang.com/&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;SASS&lt;/b&gt;&lt;/a&gt; (&lt;i&gt;Syntactically Awesome Stylesheets&lt;/i&gt;), cuyas características comunes son:&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOB_rk4zJi3vzbsDGQlntVgPd1_w5DXEox9_WNXtBns6r1qCSMIu61q2dqikesOd-qBdGiaK3m7wWtqTvtJZvFk1uvaeeOUtO_6lI5li5q6A2a1Rrg4AvbN56XWX6zIu__0_ozrtCvtdQ/s1600/comunes.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOB_rk4zJi3vzbsDGQlntVgPd1_w5DXEox9_WNXtBns6r1qCSMIu61q2dqikesOd-qBdGiaK3m7wWtqTvtJZvFk1uvaeeOUtO_6lI5li5q6A2a1Rrg4AvbN56XWX6zIu__0_ozrtCvtdQ/s1600/comunes.png&quot; height=&quot;243&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;li&gt;permiten una mejor organización del código&lt;/li&gt;
&lt;li&gt;ofrecen el uso de variables&lt;/li&gt;
&lt;li&gt;implementan el uso de mixins&lt;/li&gt;
&lt;li&gt;permiten reutilizar código&lt;/li&gt;
&lt;li&gt;tienen funciones nativas para llevar a cabo funciones de uso común&lt;/li&gt;
&lt;li&gt;dan la posibilidad de ocultar comentarios&lt;/li&gt;
&lt;li&gt;permiten incluir archivos&lt;/li&gt;
&lt;li&gt;habilitan el uso de namespaces&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: center;&quot;&gt;
&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot;&gt;
&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot;&gt;
Algunas de las virtudes que resaltan quienes prefieren Less&lt;/h3&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Extensiones&lt;/h4&gt;
Si bien Sass cuenta con una librería (Compass) conteniendo muchísimas extensiones, Less también puede usar diversas extensiones que, a diferencia de Compass que agrupa todas en un único repositorio, están dispersas y construídas por distintos desarrolladores.&lt;br /&gt;
Algunas extensiones disponibles para Less:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;CSS Mixins:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: inherit; font-size: 11pt; line-height: 115%;&quot;&gt;&lt;a href=&quot;http://lesselements.com/&quot; target=&quot;_blank&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;LESS Elements&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: inherit; font-size: 11pt; line-height: 115%;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-family: inherit; font-size: 11pt; line-height: 115%;&quot;&gt;&lt;a href=&quot;http://markdotto.com/bootstrap/&quot; target=&quot;_blank&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;Preboot&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: inherit; font-size: 11pt; line-height: 115%;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-family: inherit; font-size: 11pt; line-height: 115%;&quot;&gt;&lt;a href=&quot;https://github.com/tophermade/LESS-Mixins&quot; target=&quot;_blank&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;LESS Mixins&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: inherit; font-size: 11pt; line-height: 115%;&quot;&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Grid:&amp;nbsp;&lt;a href=&quot;https://github.com/adrianlee44/960gs.less&quot; style=&quot;font-size: 11pt; line-height: 16.866666793823242px;&quot; target=&quot;_blank&quot;&gt;960.gs&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; line-height: 16.866666793823242px;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://github.com/jonikorpi/Frameless&quot; style=&quot;font-size: 11pt; line-height: 16.866666793823242px;&quot; target=&quot;_blank&quot;&gt;Frameless&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; line-height: 16.866666793823242px;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://semantic.gs/&quot; style=&quot;font-size: 11pt; line-height: 16.866666793823242px;&quot; target=&quot;_blank&quot;&gt;Semantic.gs&lt;/a&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Layout:&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://github.com/bisrael/even.less&quot; style=&quot;font-family: inherit; font-size: 11pt; line-height: 115%;&quot; target=&quot;_blank&quot;&gt;Even.less&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Varios:&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://twitter.github.com/bootstrap/&quot; style=&quot;font-family: inherit; font-size: 11pt; line-height: 115%;&quot; target=&quot;_blank&quot;&gt;Twitter Bootstrap&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Por su simplicidad Less es ideal para quienes ya saben de CSS pero necesitan ponerse rápidamente prácticos en el uso de un pre-procesador que les ayude en sus tareas. La curva de aprendizaje puede ser un poco menos pronunciada con Less que con Sass, aunque en este punto están muy parejos.&lt;br /&gt;
&lt;br /&gt;
Para algunos el sitio oficial de Less es más fácil de usar y es más vistoso que el de Sass, aunque este último ha mejorado mucho la estética y usabilidad de su sitio.&lt;br /&gt;
&lt;h3 style=&quot;text-align: center;&quot;&gt;
Puntos que resaltan quienes prefieren Sass&lt;/h3&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Anidamiento&lt;/h4&gt;
Tanto Less como Sass permiten &lt;b&gt;&lt;i&gt;anidamiento&lt;/i&gt;&lt;/b&gt;, lo que es útil para evitar escribir selectores repetidamente. Pero Sass va un poco más allá permitiendo también el &lt;i&gt;anidamiento de propiedades individuales&lt;/i&gt;.&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Mixins y herencia de selectores&lt;/h4&gt;
Ambos pre-procesadores ofrecen el uso de &quot;&lt;b&gt;&lt;a href=&quot;http://oocss.org/spec/css-mixins.html&quot; target=&quot;_blank&quot;&gt;mixins&lt;/a&gt;&lt;/b&gt;&quot; y sólo difieren en la manera de definirlos (en Less con la direc&lt;span style=&quot;font-family: inherit;&quot;&gt;tiva &quot;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;@&quot; y en Sass con class selector).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;Los mixins en ambos casos se usan para incluir propiedades de un conjunto de reglas en otro. Pero Sass agrega la capacidad de herencia de selectores.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;La &lt;b&gt;herencia&lt;/b&gt; permite a los selectores heredar las propiedades de otros selectores, Sass soporta esta capacidad naturalmente mientras Less no puede hacerlo.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;Documentación&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;En el sitio de Sass la documentación es mucha, muy comprensible y extensa. La presentación de información es muy sencilla, al estilo Wikipedia.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;Por otro lado Less también ofrece buena documentación pero puede parecer más simple y directa, con mucho uso de ejemplos. En cuanto a la documentación puede parecer un poco más atractiva en cuanto a su presentación.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: center;&quot;&gt;
Consideraciones en general&lt;/h3&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;Mas allá de que estas tecnologías nos ofrecen ciertas ventajas a la hora de desarrollar, por otro lado, la organización de nuestros estilos es tan o más importante que las ventajas en sí. Al final del día, que nuestro css logre ser mantenido y comprendido por todos los integrantes de nuestro equipo también es un objetivo a cumplir. Particularmente, nos estamos sumergiendo en la implementación de&amp;nbsp;&lt;a href=&quot;http://patternlab.io/&quot;&gt;una guía de estilos&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;El hecho de que Less haya sido elegido por Bootstrap hizo que muchos se inclinaran por este pre-procesador, pensando en el &quot;aval&quot; que esto le daba. Sin duda le ha dado más y mejor prensa.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;Por su lado Sass tiene el soporte de Google que por supuesto representa también un respaldo importante.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;Sobre Sass hay varios pre-conceptos que suponen cosas como que es necesario tener un manejo avanzado de Ruby o usar líneas de comando &quot;truculentas&quot; &amp;nbsp;o cambiar radicalmente la forma de escribir las hojas de estilo. Nada de eso es cierto.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;En general al recorrer la web se encuentra más coincidencia en que Sass es más robusto y cubre más necesidades que Less (o al menos de mejor forma).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;Particularmente creo que el uso de uno u otro depende de las necesidades de cada desarrollo y las circunstancias en que tengamos que usarlo o la urgencia por empezar a aplicar un pre-procesador como estos.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;Algunos de los puntos que es importante tener en cuenta a la hora de elegir:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit; font-size: 11pt; line-height: 115%;&quot;&gt;Evaluar el rendimiento de cada uno para servir a los distintos tipos de necesidades del proyecto&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit; font-size: 11pt; line-height: 115%;&quot;&gt;Tener clara la guía de estilos y las necesidades del front end&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit; font-size: 11pt; line-height: 115%;&quot;&gt;Evaluar la curva de aprendizaje&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit; font-size: 11pt; line-height: 115%;&quot;&gt;Tener conocimientos previos de CSS&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit; font-size: 11pt; line-height: 115%;&quot;&gt;Recurrir a la documentación ofrecida por ambos&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;Links donde encontrar más información&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;br /&gt;
Sobre comparaciones ambos pre-procesadores estos dos links me parecieron muy interesantes:&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://www.hongkiat.com/blog/sass-vs-less/&quot;&gt;http://www.hongkiat.com/blog/sass-vs-less/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://css-tricks.com/sass-vs-less/&quot;&gt;http://css-tricks.com/sass-vs-less/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;Para quienes quieran empezar a ver Less: &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://www.hongkiat.com/blog/less-basic/&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;LESS&amp;nbsp;&lt;/span&gt;&lt;/span&gt;CSS –Beginner’s Guide&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.hongkiat.com/blog/less-tips-tools/&quot; target=&quot;_blank&quot;&gt;Working Effectively with LESS: Tips and Tools&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.ida.cl/blog/desarrollo/consejos-para-comenzar-el-desarrollo-web-en-less-css/&quot; target=&quot;_blank&quot;&gt;Consejos para comenzar el desarrollo web en Less&lt;/a&gt;&amp;nbsp; (español)&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Sobre Sass y Compass: &lt;a href=&quot;http://www.cristalab.com/tutoriales/introduccion-a-sass-y-compass-c111623l/&quot; target=&quot;_blank&quot;&gt;Introducción a Saas y Compass&lt;/a&gt;&amp;nbsp; (en español)&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2014/09/css-por-que-usar-pre-procesadores-less.html</link><author>noreply@blogger.com (Andrea Morales)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA3qjyIeYjgtbJWw9IYYWbsSIfJrYfrDbEodLWjylJKztkLPjua0bjyhdmLCPFXaSCWxwSS5eov0eC3GwFKcvIR3mX0s7eVcQVSJOwKAjyYhJY4tHoE19okEpZ7z1n4RsTqwz53ZbcJhQ/s72-c/LessSass.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-8003518163232146926</guid><pubDate>Mon, 22 Sep 2014 16:37:00 +0000</pubDate><atom:updated>2014-09-22T13:57:52.837-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Agile</category><category domain="http://www.blogger.com/atom/ns#">Deuda Técnica</category><category domain="http://www.blogger.com/atom/ns#">equipo agil</category><category domain="http://www.blogger.com/atom/ns#">Metodologias Agiles</category><category domain="http://www.blogger.com/atom/ns#">Technical Debt</category><title>Entendiendo la Deuda técnica</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Más de una vez nos ha pasado de estar en la encrucijada de tener que decidir si resolvemos una funcionalidad de la forma más rápida pero no tan ordenada o elegante - aún sabiendo que en algún momento habrá que modificarlo , o hacerlo más ordenado y prolijo pero sabiendo que llevará más tiempo en terminarse.&lt;br /&gt;
&lt;br /&gt;
Cualquiera de las dos opciones tiene sus consecuencias pero podríamos decir que en muchas oportunidades la urgencia del cliente tiene mucho peso y terminamos decidiendo por el camino más corto.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWkguMGeYWeHq44v8m089ZRCXcig79zHycCkWGCPAlqQDqRUbHqvNk6EfR6JV4Mwupw-evRhAxW2gxI_CGdQ7b-sgjolkLUNbaEclFhW3C_JINUFLB4NvKjQkIsfnTEF0iFWxvDcWYuLY/s1600/pago-deuda1.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWkguMGeYWeHq44v8m089ZRCXcig79zHycCkWGCPAlqQDqRUbHqvNk6EfR6JV4Mwupw-evRhAxW2gxI_CGdQ7b-sgjolkLUNbaEclFhW3C_JINUFLB4NvKjQkIsfnTEF0iFWxvDcWYuLY/s1600/pago-deuda1.png&quot; height=&quot;200&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;Ese tipo de soluciones - que trasladan al futuro cambios que pueden ser más costosos que haberlos implementado en el momento - &amp;nbsp;pueden considerarse &lt;b&gt;&lt;i&gt;deudas técnicas&lt;/i&gt;&lt;/b&gt; y las mismas pueden resultar en altas tasas de defectos, baja velocidad de respuesta, baja calidad del producto, baja productividad, problemas de mantenimiento, entre otros. Y no debemos olvidar los costos en el presupuesto.&lt;br /&gt;
&lt;br /&gt;
Las deudas técnicas pueden estar relacionadas con distintos aspectos del desarrollo: algunas pueden ser debido al código (código repetido, complejo, difícil de entender y mantener, etc.), al entorno de desarrollo, la plataforma usada, el diseño, testing automatizado y demás.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://c2.com/~ward/&quot; target=&quot;_blank&quot;&gt;Ward Cunningham&lt;/a&gt; utilizó una metáfora comparando este tipo de problemas del desarrollo de software con una &lt;i&gt;deuda financiera&lt;/i&gt;. Es decir, queremos pagar la deuda con sus intereses en el futuro o pagamos el costo completo en el presente?&lt;br /&gt;
&lt;br /&gt;
Esta metáfora también &quot;justifica&quot; que en determinadas circunstancias la elección de la solución rápida puede ser la adecuada cuando, por ejemplo, se quiere aprovechar una oportunidad de mercado, lo que en el desarrollo de software podríamos traducir como llegar a una fecha límite.&lt;br /&gt;
&lt;br /&gt;
Creo que el mayor dilema en estos casos es saber &lt;i&gt;cómo administrar las deudas técnicas&lt;/i&gt; y tratar de determinar a qué tipo de deuda nos estamos enfrentando para tener idea de la gravedad de la misma.&lt;br /&gt;
&lt;br /&gt;
Algo que puede ser útil para esto es el Cuadrante de la deuda técnia creado por &lt;a href=&quot;http://martinfowler.com/&quot; target=&quot;_blank&quot;&gt;Martin Fowler&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Este cuadrante podría usarse para decir &lt;i&gt;qué tipos de deudas son aceptables o no&lt;/i&gt; y usar esta información para establecer tácticas que nos permitan prevenir conductas o patrones inaceptables.&lt;br /&gt;
&lt;br /&gt;
Fowler dice que, en realidad, la gran elección no es si tener o no deudas ténicas, sino que &lt;i&gt;la decisión está en tomar &lt;b&gt;Deudas Prudentes&lt;/b&gt; o &lt;b&gt;Deudas Imprudentes.&amp;nbsp;&lt;/b&gt;&lt;/i&gt;Además de determinar si son &lt;i&gt;&lt;b&gt;Deliberadas o Inadvertidas&lt;/b&gt;&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9TA1-kmJZF2BmR4lbreaapaM2BF_BQfuLDby0n3IQY5gnGHL-67XKSSdZkTUdDQglXH7nhUiPe7DHxhPh4uSrWisk24JNDkW0hiVmD7LVmQw6qhU8wqwjhn_YdkV-Rj0-gzBPmgqa6PE/s1600/Quadrant.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9TA1-kmJZF2BmR4lbreaapaM2BF_BQfuLDby0n3IQY5gnGHL-67XKSSdZkTUdDQglXH7nhUiPe7DHxhPh4uSrWisk24JNDkW0hiVmD7LVmQw6qhU8wqwjhn_YdkV-Rj0-gzBPmgqa6PE/s1600/Quadrant.png&quot; height=&quot;315&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Una &lt;b&gt;deuda Prudente y Deliberada&lt;/b&gt; se da cuando el equipo sabe que está incurriendo en esa deuda y supone una evaluación del costo futuro vs. el costo actual. Este tipo de deuda se considera &quot;positiva&quot; y su administración se hace más simple.&lt;br /&gt;
&lt;br /&gt;
Las &lt;b&gt;deudas Prudentes pero Inadvertidas&lt;/b&gt; suelen darse en casi todos los proyectos, dado que a medida que se va desarrollando los miembros del equipo van haciendo un aprendizaje que les permite darse cuenta que hay cosas que podrían haberse hecho mejor. Mucho más se da este fenómeno si el equipo cuenta con miembros menos experimentados. En estos casos lo importante es &quot;pesar&quot; si vale la pena corregir lo ya hecho o qué cosas puntuales sí deberían modificarse, según el impacto que puedan acarrear.&lt;br /&gt;
Para Fowler este tipo de deudas son inevitables y desde el inicio del proyecto todos deberían estar advertidos de su posible aparición.&lt;br /&gt;
&lt;br /&gt;
Las &lt;i&gt;deudas imprudentes&lt;/i&gt; suelen ser tomadas por equipos que desconocen las prácticas de diseño dado que no tienen la capacidad de evaluar cuál será el costo futuro.&lt;br /&gt;
&lt;br /&gt;
Una &lt;b&gt;deuda imprudente y advertida&lt;/b&gt; puede ser un caso muy peligroso. Se da cuando el equipo, aún teniendo conocimientos de buenas prácticas, decide que escribiendo un código más limpio no puede cumplir con los tiempos requeridos. Son muchos los factores que pueden llevar a tomar esta decisión:&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;ul&gt;&lt;ul&gt;
&lt;li&gt;mala gestión,&amp;nbsp;&lt;/li&gt;
&lt;li&gt;presiones innecesarias,&amp;nbsp;&lt;/li&gt;
&lt;li&gt;problemas en el equipo interno, etc..&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
Acumular este tipo de deudas implica que la &lt;b&gt;calidad del producto va a ser muy baja&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Por otro lado, el creer que escribir un código desprolijo es más rápido que hacer un código limpio es un error.&lt;br /&gt;
La aplicación de las buenas prácticas tienden justamente a que el desarrollo sea, a la larga, más rápido y el código mucho más confiable.&lt;br /&gt;
&lt;br /&gt;
Las &lt;b&gt;deudas imprudentes&lt;/b&gt; no deberían ser, además, &lt;b&gt;inadvertidas&lt;/b&gt; porque la acumulación de las mismas llevaría al fracaso del proyecto. En general este tipo de deudas salen a la luz por inexperiencia o falta de conocimientos del equipo o de los responsables.&lt;br /&gt;
Ocurre en general cuando los desarrolladores no tienen noción de las implicancias de cambiar una parte del código. Este tipo de deudas deben ser administradas con mucho cuidado.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;span style=&quot;color: black; font-family: inherit; text-decoration: none;&quot;&gt;&lt;a href=&quot;https://www.scrumalliance.org/community/profile/sramakrish12/&quot; title=&quot;Srinath Ramakrishnan&quot;&gt;Srinath Ramakrishnan&lt;/a&gt;&amp;nbsp;en su artículo &lt;a href=&quot;https://www.scrumalliance.org/community/articles/2013/july/managing-technical-debt&quot; target=&quot;_blank&quot;&gt;Managing Technical Debt&lt;/a&gt;&amp;nbsp;sugiere la utilización de herramientas como pair programming, code reviews, integración continua, testing automatizado, etc.:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;span style=&quot;color: black; text-decoration: none;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;span style=&quot;color: black; text-decoration: none;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;i&gt;&quot;La clave para administrar deudas técnicas es estar constantemente vigilante, evitar usar atajos en el código, usar diseños de aplicaciones lo más simple posible, hacer refactoring frecuente. &quot;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;span style=&quot;color: black; text-decoration: none;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;span style=&quot;color: black; text-decoration: none;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;span style=&quot;color: black; text-decoration: none;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Artículos de interés:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;span style=&quot;color: black; text-decoration: none;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;a href=&quot;https://www.scrumalliance.org/community/articles/2013/july/managing-technical-debt&quot; style=&quot;font-family: inherit;&quot; target=&quot;_blank&quot;&gt;Managing Technical Debt&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;a href=&quot;http://trueclarity.wordpress.com/2014/09/04/when-code-is-considered-technical-debt/&quot; target=&quot;_blank&quot;&gt;When code is considered Technical Debt&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;http://martinfowler.com/bliki/TechnicalDebt.html&quot;&gt;Technical Debt&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://programandonet.com/web/deuda-tecnica/&quot;&gt;Deuda Técnica&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://msdn.microsoft.com/es-es/magazine/ee819135.aspx&quot;&gt;Uso de técnicas agile para pagar la deuda técnica&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.javiergarzas.com/2012/11/deuda-tecnica-2.html&quot;&gt;La mala calidad del software al final se paga&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; margin: 0px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2014/09/entendiendo-la-deuda-tecnica.html</link><author>noreply@blogger.com (Andrea Morales)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWkguMGeYWeHq44v8m089ZRCXcig79zHycCkWGCPAlqQDqRUbHqvNk6EfR6JV4Mwupw-evRhAxW2gxI_CGdQ7b-sgjolkLUNbaEclFhW3C_JINUFLB4NvKjQkIsfnTEF0iFWxvDcWYuLY/s72-c/pago-deuda1.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-5778166708540586724</guid><pubDate>Fri, 19 Sep 2014 17:25:00 +0000</pubDate><atom:updated>2014-09-22T13:57:36.826-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.Net</category><category domain="http://www.blogger.com/atom/ns#">Sitecore</category><category domain="http://www.blogger.com/atom/ns#">Team Development for Sitecore</category><category domain="http://www.blogger.com/atom/ns#">Visual Studio</category><title>Desarrollos Sitecore® en Latinoamérica</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Tal como contamos en nuestro sitio, una de las áreas de negocio a la que venimos abocándonos desde algunos años es el desarrollo de aplicaciones sobre la plataforma &lt;b&gt;Sitecore®&lt;/b&gt;, lo que nos convirtió en uno de los pocos equipos de desarrollo en Sudamérica en dedicarse a la misma. &lt;br /&gt;
&lt;br /&gt;
Dado que Sitecore® es, en su concepción más básica, una herramienta pensada para la construcción de sitios web corporativos e intranets, nuestro trabajo como desarrolladores consiste en la implementación de la plataforma, configuración de la arquitectura necesaria, integración de la misma con servicios externos y soporte sobre actualizaciones, entre otras tareas, de forma que los equipos del cliente puedan encargarse de la administración de los contenidos y estrategias de marketing.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Qué es Sitecore&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;®&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
Si bien &lt;b&gt;Sitecore®&lt;/b&gt; nació como un software de gestión de contenidos, al día de hoy su punto más fuerte radica en las ventajas que ofrece al área de marketing, y se ha constituido como una de las más sólidas herramientas empresariales para la construcción de aplicaciones web, intranets y &lt;i&gt;software de Automatización de Marketing&lt;/i&gt;. Por lo cual, y según su propia definición, Sitecore® es &quot;&lt;i&gt;una plataforma de gestión de la experiencia de usuarios&lt;/i&gt;&quot;.&lt;br /&gt;
&lt;br /&gt;
Con más de 10 años de posicionamiento en el mercado (su primera versión apareció por 2001), la empresa multinacional danesa que lo creó cuenta hoy con oficinas en lugares como Australia, Suecia, Canadá, Alemania, , Reino Unido, y Estados Unidos entre otros.&lt;br /&gt;
&lt;br /&gt;
Los usos de &lt;b&gt;Sitecore®&lt;/b&gt; son variados pero siempre enfocados a la &lt;u&gt;administración de la experiencia de usuarios y funcionalidades de marketing&lt;/u&gt;. Con el paso de los años ha ido unificando la actividad de múltiples canales abarcando desde el armado de campañas, seguimiento de la actividad de los usuarios (con la incorporación de los web performance for marketers, por ejemplo) hasta mediciones de performance. &lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Novedades de la plataforma&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
En la reciente presentación de los features de la próxima versión &lt;b&gt;&quot;&lt;a href=&quot;http://www.cmswire.com/cms/digital-marketing/sitecore-takes-on-the-competition-with-version-8-symna-026446.php&quot; target=&quot;_blank&quot;&gt;Sitecore® 8 - #SYMNA&lt;/a&gt;&quot; &lt;/b&gt;en Las Vegas (Sitecore® Symposium 2014) se destacó que el objetivo principal de los cambios incorporados en la herramienta está puesto en el &quot;&lt;i&gt;customer engagement&lt;/i&gt;&quot;.&lt;br /&gt;
&lt;br /&gt;
En dicho simposio se mostró a &lt;b&gt;Sitecore® 8&lt;/b&gt; como una plataforma con la capacidad de implementar analíticas como base de una &quot;máquina de marketing&quot; personalizada, integrada con múltiples canales. Se agrega la posibilidad de trabajar con &lt;i&gt;segmentación dinámica de audiencias&lt;/i&gt; y con &lt;i&gt;testing automatizado &lt;/i&gt;que permite optimizar las estrategias de captación de clientes.&lt;br /&gt;
&lt;br /&gt;
Además de una interfaz de usuario más simplificada, la nueva versión avanza sobre una tecnología de marketing altamente focalizada en el target de los clientes a los que apunte cada compañía que la implemente.&lt;br /&gt;
&lt;br /&gt;
En cuanto a la &quot;parte de atrás&quot; de la herramienta, podemos decir que está  desarrollada en &lt;b&gt;.NET&lt;/b&gt; y permite integración con una infinidad de servicios y plataformas de diverso tipo. &lt;br /&gt;
&lt;br /&gt;
Dada esta característica, otro de los anuncios importantes es que están trabajando en forma conjunta con &lt;b&gt;Microsoft®&lt;/b&gt; con la finalidad de dotar a la plataforma de algoritmos de &quot;&lt;i&gt;machine learning&lt;/i&gt;&quot; que agregan un valor importantísimo a uno de los objetivos de la herramienta que es el de lograr &quot;&lt;i&gt;enviar el aviso específico a la persona adecuada en el momento justo&lt;/i&gt;&quot;, es decir, captar nuevos clientes y lograr retenerlos fieles al producto que cada empresa ofrece.&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Artículos de interés:&lt;/h4&gt;
&lt;a href=&quot;https://doc.sitecore.net/&quot; target=&quot;_blank&quot;&gt;Sitecore Documentation&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.interdigital.es/blog/articletype/articleview/articleid/200/sitecore-un-gestor-de-contenidos-que-dara-que-hablar-en-espana.aspx&quot; target=&quot;_blank&quot;&gt;Sitecore, gestor de contenidos&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.mycustomer.com/press/sitecore-simplifies-marketing-newest-upgrade-sitecore-8/168004&quot; target=&quot;_blank&quot;&gt;Sitecore simplifies marketing with newest upgrade, Sitecore 8&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.consultor-it.com/prnews/24693/sitecore-simplifica-el-marketing-con-la-actualizacion-mas-reciente-sitecore-8&quot; target=&quot;_blank&quot;&gt;Sitecore simplifica el marketing con su última versión, Sitecore 8&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.sitecore.net/platform.aspx?sc_camp=2F8F8A3A7B824AF7983F7C45A4EB3416&quot; target=&quot;_blank&quot;&gt;Sitecore Experience Platform&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;
&lt;div class=&quot;field-items&quot;&gt;
&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;
&lt;br /&gt;
&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2014/09/desarrollos-sitecore-en-latinoamerica.html</link><author>noreply@blogger.com (Andrea Morales)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-7748516848351301926</guid><pubDate>Wed, 23 Jul 2014 13:24:00 +0000</pubDate><atom:updated>2014-07-23T13:02:04.142-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Agile</category><category domain="http://www.blogger.com/atom/ns#">Distributed Teams</category><category domain="http://www.blogger.com/atom/ns#">Equipos distribuidos</category><category domain="http://www.blogger.com/atom/ns#">Metodologias Agiles</category><category domain="http://www.blogger.com/atom/ns#">Trabajo distribuido</category><title>Trabajo en equipos distribuidos</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Nuestra experiencia en trabajar en &lt;b&gt;equipos distribuidos&lt;/b&gt; en distintos lugares físicos fue dándose gradualmente:&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;pasamos de trabajar en dos oficinas separadas - por una cuestión de calidad de vida de algunas de las personas que tenían mucho tiempo de viaje -,&lt;/li&gt;
&lt;li&gt;a trabajar para clientes en el exterior - lo que implicó cambiar nuevamente algunos hábitos laborales -,&lt;/li&gt;
&lt;li&gt;hasta ser parte de un grupo de equipos de desarrollo ubicados en puntos distantes del planeta.&lt;/li&gt;
&lt;/ol&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoF79eYJnLzbL0DtQ5kCsMaBQyGsLRdnY9cjaf7eZwWxW9O8TJqYJsZ2CBqAL8438dSQWpxbytvFbCGzV5UsgXpzucjFviyroe02cBTu_QuPckMXC42PH1faqeN9f5qPheuzJ2EkJZ3vs/s1600/distributed-teams_2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoF79eYJnLzbL0DtQ5kCsMaBQyGsLRdnY9cjaf7eZwWxW9O8TJqYJsZ2CBqAL8438dSQWpxbytvFbCGzV5UsgXpzucjFviyroe02cBTu_QuPckMXC42PH1faqeN9f5qPheuzJ2EkJZ3vs/s1600/distributed-teams_2.jpg&quot; height=&quot;240&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;text-align: left;&quot;&gt;En este camino que llevamos recorrido hemos tenido que aprender a adaptarnos y compartir experiencias para poder llevar adelante los proyectos manteniendo el uso de &lt;b&gt;metodologías ágiles.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
Siguiendo consejos de quienes ya habían pasado por estos menesteres y aportando nuestro propio conocimiento y sentido común, resumimos en este artículo algunos de los puntos que nos parecen más importantes para considerar en estos casos.&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Algunos puntos relevantes&lt;/h4&gt;
Si bien en las &lt;b&gt;metodologías ágiles&lt;/b&gt; la comunicación tiene un rol fundamental, encontramos por allí quienes aconsejan también darle tanta o más importancia a la &lt;i&gt;estructuración del proyecto&lt;/i&gt; &lt;i&gt;y la gente&lt;/i&gt; que va a formar parte de los distintos equipos. Ese trabajo previo debe llevar a que cada miembro tenga claro el contexto, los objetivos y los roles. En nuestra experiencia esto resultó fundamental.&lt;br /&gt;
&lt;br /&gt;
Considerar algunas características culturales y tratar de unificar criterios de colaboración no sólo entre equipos sino también dentro de cada uno de ellos. Algunos de esos criterios son:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Definir &lt;u&gt;metas estándar&lt;/u&gt; de distinto tipo (por ejemplo, respecto de la calidad del software, armado de prototipos, criterios de aceptación o del significado de &quot;done&quot;, etc.)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Definir la&lt;u&gt; frecuencia de control para cada meta&lt;/u&gt;, para evitar desvíos o minimizarlos&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Definir cuándo y cómo se van a realizar las&lt;b&gt; Stand up meetings&lt;/b&gt;, quiénes van a estar presentes y cómo se van a cargar las horas insumidas por cada equipo&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Definir qué &lt;u&gt;herramientas&lt;/u&gt; se van a usar, cómo y en qué casos. Es importante entender que no existe una única herramienta que sirva para todos los fines. Si bien es necesario tratar de minimizar la cantidad de éstas para evitar duplicación de trabajo, tampoco tenemos que forzar que una sola h pueda cubrir todas las necesidades. En este punto puede servir detenerse a pensar:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;qué necesitamos&lt;/li&gt;
&lt;li&gt;qué herramientas ya tenemos (o usan los distintos equipos para cubrir esas necesidades)&lt;/li&gt;
&lt;li&gt;qué herramientas nuevas necesitamos incorporar, qué uso se le va a dar y verificar que no entre en conflicto con alguna de las pre-existentes&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Invertir en el &lt;i&gt;entrenamiento de todos los equipos&lt;/i&gt; para el uso de herramientas, estándares en la codificación, metodologías, etc. permitirá ahorrar tiempo y errores a lo largo del proceso. Y puede ser un buen terreno de intercambio de conocimientos entre los equipos&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Otros aspectos a tener en cuenta&lt;/h4&gt;
Para lograr los objetivos cuando los equipos se encuentran&lt;b&gt; físicamente distribuidos&lt;/b&gt; y deben ensamblarse es necesario contar con un rol de alguien que sirva como guía, gerente, scrum master, coordinador o la etiqueta que quiera ponérsele para que se encargue de aunar los criterios de trabajo, la relación con el cliente y la comunicación entre teams. Y por sobre todas las cosas debe asegurarse que los equipos puedan reaccionar rápidamente a los cambios que se presenten.&lt;br /&gt;
&lt;br /&gt;
En otro aspecto, en metodologías ágiles son bienvenidas las &lt;i&gt;habilidades diversas dentro del equipo&lt;/i&gt;. Al trabajar con equipos de diferentes culturas y niveles de conocimiento hay que ser muy cuidadosos y optimizar el uso de las distintas capacidades dentro de cada uno de &amp;nbsp;los equipos y entre los equipos dado que muchas veces pueden darse colisiones. El rol del &quot;administrador&quot; en estos casos es fundamental.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVxPpG0I08plFE52CqfErK-qI-dQ0JNDLKRqme8RLYgrV65kmoyQAfLBAA1iXsOtWvt6EZBjyGl7a-S0Nwwpe0js408uFStM3MK4Kb9b9TQSJZRt1i1gWdohiLvwH9yJPDWbcCXqwEvvM/s1600/comunicacion.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; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVxPpG0I08plFE52CqfErK-qI-dQ0JNDLKRqme8RLYgrV65kmoyQAfLBAA1iXsOtWvt6EZBjyGl7a-S0Nwwpe0js408uFStM3MK4Kb9b9TQSJZRt1i1gWdohiLvwH9yJPDWbcCXqwEvvM/s1600/comunicacion.jpg&quot; height=&quot;211&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;Por supuesto, uno de los aspectos importantes en esta forma de trabajo está referido a la &lt;i&gt;creación y mantenimiento de canales de comunicación&lt;/i&gt; que permitan suplantar de la mejor manera los beneficios de la comunicación &quot;presencial&quot; o cara a cara. Pero además es necesario&lt;b&gt; equilibrar la comunicación escrita con la oral&lt;/b&gt; para evitar el uso exagerado de una sola de las dos.&lt;br /&gt;
&lt;br /&gt;
En el mismo sentido anterior, el uso de las &lt;b&gt;Historias de Usuario&lt;/b&gt; puede tener un apartado especial. Cuando los equipos son tan diversos es posible que la adminstración de las historias requiera un detalle más exhaustivo de lo que un equipo independiente está acostumbrado a usar.&lt;br /&gt;
En nuestra experiencia hemos necesitado que las historias o estén complementadas con otra forma de documentación o que sea necesario el uso de una herramienta un poco diferente a la tradicional pizarra para poder llevarlas adelante. Sobre todo, porque hay que tener en cuenta que dados los distintos husos horarios y la integración con tareas hechas por otros equipos, las historias deben considerarse como lugar de conversación y de tracking de necesidades o consultas con otros miembros.&lt;br /&gt;
En este sentido una herramienta que nos ha sido muy útil es &lt;a href=&quot;https://www.assembla.com/home&quot; target=&quot;_blank&quot;&gt;Assembla&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Respecto de la integración de código, &lt;a href=&quot;https://github.com/&quot; target=&quot;_blank&quot;&gt;Github&lt;/a&gt; es altamente recomendable (&lt;a href=&quot;http://zachholman.com/posts/how-github-works/&quot; target=&quot;_blank&quot;&gt;How Github works&lt;/a&gt;)&lt;br /&gt;
Y por supuesto Skype, GoogleDocs y &lt;a href=&quot;https://www.join.me/&quot;&gt;Join.me&lt;/a&gt; son también de gran ayuda.&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Más artículos de interés:&lt;/h4&gt;
&lt;a href=&quot;http://www.infoq.com/articles/distributed-agile-8-ways&quot; target=&quot;_blank&quot;&gt;Distributed Agile: 8 ways to get more from your distributed teams&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://tech.co/distributed-teams-2013-08&quot; target=&quot;_blank&quot;&gt;3 Surprising Reasons Distributed Teams Work Better&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.pixelmonkey.org/2012/05/14/distributed-teams&quot; target=&quot;_blank&quot;&gt;Fully Distributed Teams: are they viable?&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.wrike.com/projectmanagement/01/18/2011/The-Secret-Ingredients-Successful-Distributed-Team&quot; target=&quot;_blank&quot;&gt;The Secret Ingredients of a Successful Distributed Team&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
De nuestro blog:&lt;/h4&gt;
&lt;a href=&quot;http://blog.tercerplaneta.com/2010/08/trabajo-distribuido.html&quot; target=&quot;_blank&quot;&gt;Trabajo distribuido&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://blog.tercerplaneta.com/2010/07/herramientas-para-trabajo-distribuido.html&quot; target=&quot;_blank&quot;&gt;Herramientas para trabajo distribuido&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://blog.tercerplaneta.com/2013/09/scrum-problemas-en-la-reunion-diaria.html&quot; target=&quot;_blank&quot;&gt;Reuniones diarias&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: xx-small; text-align: center;&quot;&gt;(Fuentes de las imágenes:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: xx-small; text-align: center;&quot;&gt;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3wsAFqagSKNM1OtBnF9a2GJ48mFgQmuofIUnXBr0CWDMvLc898fb4q8bOMLZ4wgrO7opYdqhvE8IAJUKZKn2VGXl91UKq9hVqYVntXYV6pZWI6Hh3LI8lV4fi7MMESwC0et6jR9GYKrM/s200/distributed-teams.jpg&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;http://qablog.practitest.com/wp-content/uploads/2012/07/ID-10064353.jpg)&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2014/07/trabajo-en-equipos-distribuidos.html</link><author>noreply@blogger.com (Andrea Morales)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoF79eYJnLzbL0DtQ5kCsMaBQyGsLRdnY9cjaf7eZwWxW9O8TJqYJsZ2CBqAL8438dSQWpxbytvFbCGzV5UsgXpzucjFviyroe02cBTu_QuPckMXC42PH1faqeN9f5qPheuzJ2EkJZ3vs/s72-c/distributed-teams_2.jpg" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-69473894323875799</guid><pubDate>Wed, 07 May 2014 20:39:00 +0000</pubDate><atom:updated>2014-05-16T14:46:52.741-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Agile</category><category domain="http://www.blogger.com/atom/ns#">Agile Documentation</category><category domain="http://www.blogger.com/atom/ns#">Documentacion</category><category domain="http://www.blogger.com/atom/ns#">Documentacion Agil</category><title>Documentación ágil </title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
En cuántos proyectos nos ha pasado que no encontramos la forma ideal de &lt;i&gt;crear y mantener una documentación&lt;/i&gt; que resulte realmente útil?&lt;br /&gt;
&lt;br /&gt;
Cuántas veces tuvimos que recurrir a una documentación para ver &quot;cómo se había definido algo&quot; o &quot;cómo se había resuelto&quot; y no lo encontramos o lo encontramos desactualizado?&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: right; margin-left: 1em; text-align: right;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidfN7g0nAHyXYqCnPJlYESYGyxLH6dp2-4yAUWJGIPGAkfYrmKowG9Fjv12PC7aV3TQqOXcujEwE-SSeR_9mov0WwrgQdh-sO9KL8DgoCuQri_jG6hGG4DayjTsfBDvCX3HdN8zYlVjGk/s1600/Documentacion.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidfN7g0nAHyXYqCnPJlYESYGyxLH6dp2-4yAUWJGIPGAkfYrmKowG9Fjv12PC7aV3TQqOXcujEwE-SSeR_9mov0WwrgQdh-sO9KL8DgoCuQri_jG6hGG4DayjTsfBDvCX3HdN8zYlVjGk/s1600/Documentacion.jpg&quot; height=&quot;240&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;(fuente www.freevector.com)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
Particularmente me siento muy frustrada cuando pasan estas cosas porque me doy cuenta de lo difícil que nos resulta determinar en qué medida documentar y cómo sostener esto en el tiempo.&lt;br /&gt;
&lt;br /&gt;
En &lt;a href=&quot;http://www.javacodegeeks.com/2013/08/the-purpose-of-documentation.html&quot; target=&quot;_blank&quot;&gt;este artículo&lt;/a&gt; de &lt;a href=&quot;http://www.javacodegeeks.com/author/Jens-Schauder/&quot; target=&quot;_blank&quot;&gt;Jens Schauber&lt;/a&gt;&amp;nbsp;encontré algunos comentarios y tips que me parecen muy útiles para ordenar la idea de la práctica de la documentación durante los proyectos.&lt;br /&gt;
&lt;br /&gt;
Comparto un resumen de lo que dice el autor:&lt;br /&gt;
&lt;br /&gt;
El concepto que me pareció más interesante es la visión que nos da sobre la documentación y que expresa al final de su artículo:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;i&gt;&lt;span style=&quot;background-color: white; color: orange; font-size: large;&quot;&gt;La documentación no debe ser un objetivo por sí misma. Es una herramienta para el entendimiento común y sólo debería ser creada cuando realmente aporta valor a nuestro trabajo. No debemos confundir la herramienta con el propósito que debe tener.&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Cuando creamos documentación es necesario &lt;b&gt;clarificar el propósito&lt;/b&gt;, debemos preguntarnos qué problema esperamos resolver con eso, qué problema trata de resolver esa documentación y resolver ese problema en la misma documentación.&lt;/li&gt;
&lt;li&gt;Y no sólo eso, cuando se crea una documentación &lt;u&gt;hay que pensar y tener claro desde el principio cómo hacer para mantenerla actualizada&lt;/u&gt;. Algo que sugiere Schauber es incluir esa tarea como parte de la definición de &quot;Done! o agendar tiempo a intervalos regulares para dedicar a la misma.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Debemos elegir &lt;b&gt;formas de documentar que sean fáciles de matener&lt;/b&gt;: una wiki puede ser una buena idea, documentar en el código puede ser aún mejor.&lt;/li&gt;
&lt;li&gt;Y algo para tener en claro según el autor:&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;div style=&quot;display: inline !important; text-align: justify;&quot;&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;i style=&quot;text-align: left;&quot;&gt;&lt;i&gt;&lt;span style=&quot;color: #134f5c; font-size: large;&quot;&gt;&quot;lo que decididamente no sirve es tener largos procesos de aprobación de la documentación, que hará que nadie quiera actualizarlos a menos que sea obligado a hacerlo ....&quot;&lt;/span&gt;&lt;/i&gt;&lt;/i&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;i style=&quot;text-align: left;&quot;&gt;
&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Territorios y mapas&lt;/h4&gt;
Creo que a partir de lo anterior podemos entender mejor algunos de los tips que nos da, haciendo una analogía entre la documentación y los mapas.&lt;br /&gt;
&lt;br /&gt;
Según el autor, una de las utilidades de la documentación es la de &lt;span style=&quot;background-color: #cfe2f3;&quot;&gt;&lt;i&gt;&lt;b&gt;servir como guía a los nuevos&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;. Para quienes llevan tiempo trabajando en un proyecto es fácil identificar cuáles son los puntos más importantes, riesgosos o complejos. Alguien nuevo seguramente se encuentre perdido en un territorio desconocido. Tener un &quot;mapa&quot; de ese terreno ayudará a que el nuevo integrante pueda ubicarse y detectar sin mucho esfuerzo los puntos estratégicos, aún cuando ese mapa no esté del todo actualizado.&lt;br /&gt;
&lt;br /&gt;
Por otro lado, aún cuando se conozca bien el territorio, no siempre es fácil determinar la mejor forma de moverse entre dos puntos. Un mapa puede ayudar a &lt;span style=&quot;background-color: #cfe2f3;&quot;&gt;&lt;i&gt;&lt;b&gt;darnos una visión más clara y rápida&lt;/b&gt;&lt;/i&gt;&lt;/span&gt; de ese problema.&lt;br /&gt;
&lt;br /&gt;
A veces podemos encontrar en ese territorio &quot;features&quot; que no se sabe muy bien para qué estan. &amp;nbsp;&lt;i style=&quot;background-color: #cfe2f3;&quot;&gt;&lt;b&gt;Poner anotaciones en el mapa ayuda a detectar fácilmente&lt;/b&gt; &lt;/i&gt;si esos features deben quedar (y por qué) o simplemente son basura que espera ser removida.&lt;br /&gt;
&lt;br /&gt;
Por último, Schauber nos dice que la documentación &lt;b&gt;debe ser usada&lt;/b&gt;,&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;i&gt;&lt;span style=&quot;background-color: white; color: orange; font-size: large;&quot;&gt;la documentación que no se usa es inútil&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;br /&gt;
Usar la documentación sirve para &lt;b&gt;notar los problemas&lt;/b&gt; y, a partir de eso, abordarlos.&lt;br /&gt;
&lt;br /&gt;
Además, la documentación debe ser &lt;span style=&quot;background-color: #cfe2f3;&quot;&gt;&lt;i&gt;&lt;b&gt;fácilmente accesible y comunicada al resto&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;: desde imprimir y pegar en las paredes de la oficina las actualizaciones o definiciones más importantes, hasta poner un link en algún lugar al que los involucrados tengan acceso (servers, intranets, etc.) &amp;nbsp;o enviar mail, usar RSS feeds, etc., debemos buscar la forma de hacer llegar a todos las notificaciones de cambio si queremos que realmente tenga sentido el tiempo que utilizamos en mantener una documentación medianamente actualizada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Artículo de Jens Schauber (en inglés):&amp;nbsp;&lt;a href=&quot;http://www.javacodegeeks.com/2013/08/the-purpose-of-documentation.html&quot; target=&quot;_blank&quot;&gt;The purpose of documentation&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2014/05/documentacion-agil.html</link><author>noreply@blogger.com (Andrea Morales)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidfN7g0nAHyXYqCnPJlYESYGyxLH6dp2-4yAUWJGIPGAkfYrmKowG9Fjv12PC7aV3TQqOXcujEwE-SSeR_9mov0WwrgQdh-sO9KL8DgoCuQri_jG6hGG4DayjTsfBDvCX3HdN8zYlVjGk/s72-c/Documentacion.jpg" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-8824302982015547066</guid><pubDate>Mon, 05 May 2014 18:44:00 +0000</pubDate><atom:updated>2014-05-16T14:46:05.968-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Ingenieria de Software</category><category domain="http://www.blogger.com/atom/ns#">Software Engineering</category><title>Cuando la solución es el problema (cómo prevenir la sobre-ingeniería) </title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Hace pocos días leí un artículo que me pareció muy útil y cierto sobre algo que podemos reconocer fácilmente como &quot;pecado cometido&quot; en nuestros propios proyectos: lo difícil que resulta determinar cuándo llegamos a un punto en que estamos haciendo sobre-ingeniería o agregando features que no siempre son imprescindibles.&lt;br /&gt;
&lt;br /&gt;
La visión que tiene el autor -&amp;nbsp;&lt;a href=&quot;https://medium.com/@akarve&quot; target=&quot;_blank&quot;&gt;Aneesh Karven&lt;/a&gt;&amp;nbsp;- y los consejos que da para reconocer y afrontar este problema son muy directos y pueden ser de gran ayuda para empezar a observarnos internamente.&lt;br /&gt;
Les comparto aquí un resumen en español del &lt;a href=&quot;https://medium.com/p/50adb9f6caf9&quot; target=&quot;_blank&quot;&gt;artículo&lt;/a&gt;&amp;nbsp;(original en inglés):&lt;br /&gt;
&lt;br /&gt;
Un primer punto a destacar de la nota es que el autor entiende que el problema de muchos profesionales del software es que tienen un &quot;exceso de confianza en la herramienta que usan y les es familiar&quot; (por eso lo relaciona con la &lt;a href=&quot;http://centrodeartigos.com/articulos-educativos/article_1414.html&quot; target=&quot;_blank&quot;&gt;Ley del Martillo&lt;/a&gt;) lo que hace que piensen que aquello que puede ser la &quot;solución al problema&quot; en realidad resulta ser una exacerbación del problema. Esto hace que se generen features y fixes que dañan más que lo tienen que curar debido a las consecuencias inesperedas que suelen provocarse.&lt;br /&gt;
&lt;br /&gt;
Otra de las cosas que me pareció interesante es lo que Karven sugiere como solución a estos casos de sobre-ingeniería en los que se suele caer. Como punto de partida nos dice que es fundamental un cambio de mentalidad.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhixkBDzPDhYpkr4A7G5qU7gtm4PosZdaUZg9j7T4XRTC2UCCMyPAqE_0eXwF0B5_7xvzJJv9jbWHxsxPswIztmsicvbJMXRUqyhE5izhYLBBpUvfhz74pWKObyeQCW3e-Zy9NeSnjR_y58/s1600/blog.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhixkBDzPDhYpkr4A7G5qU7gtm4PosZdaUZg9j7T4XRTC2UCCMyPAqE_0eXwF0B5_7xvzJJv9jbWHxsxPswIztmsicvbJMXRUqyhE5izhYLBBpUvfhz74pWKObyeQCW3e-Zy9NeSnjR_y58/s1600/blog.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Y a partir de este cambio sugiere implementar estos 2 consejos prácticos:&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Preguntarse 3 cosas&lt;/h4&gt;
Cuestionarse varias cosas antes de escribir una sola línea de código. El autor recomienda tener en cuenta estas 3 preguntas de Baumer and Silverman (en su libro &lt;a href=&quot;http://www.ics.uci.edu/~djp3/classes/2011_01_INF134/papers/impl9-rev.pdf&quot; target=&quot;_blank&quot;&gt;When the implication is not to Design&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Podría la tecnología ser reemplazada por un enfoque igualmente viable pero no tecnológico?&lt;/li&gt;
&lt;li&gt;Una intervención tecnológica puede resultar en más problemas o daños que los que podría provocar la situación actual ?&lt;/li&gt;
&lt;li&gt;Es la tecnología (en este caso) un sustituto &quot;menor&quot; de la solución real a aplicar?&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Cambiar la cultura de la compañía&amp;nbsp;&lt;/h4&gt;
Según Karven los siguientes valores culturales pueden ser útiles para prevenir la expansión descontrolada de features:&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Valorar el &quot;no hacer algunas cosas&quot; (o &quot;no hacer cosas&quot;): &amp;nbsp;aquí sugiere instalar conversaciones dentro de la compañía sobre &quot;MENOS ES MÁS&quot;. Considerar qué features se pueden eliminar para mejorar el producto Esta frase que Karven cita en su artículo me pareció muy apropiada: &quot;La perfección es finalmente alcanzada no cuando ya no hay más para agregar sino cuando ya no hay más para sacar.&quot; (Antoine de Saint&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;&lt;span style=&quot;font-size: 11pt; line-height: 115%;&quot;&gt;Exupéry&lt;/span&gt;&lt;/span&gt;)&lt;/li&gt;
&lt;li&gt;Documentar los caminos NO explorados: para superar la mencionada Ley del Martillo nos sugiere documentar lo que NO SE ESTÁ HACIENDO y por qué no lo hacemos, o sea, tener bien visibles las soluciones NO TOMADAS.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Continuar creciendo&lt;/h3&gt;
A lo que se refiere en este caso es a lograr un cambio de perspectiva. Practicar esto es &quot;practicar la humildad y precisión&quot;. El software, la gente que lo usa y las situaciones que crea pueden ser más complejas de lo que podemos imaginar. Debemos esperar sorpresas y resultados no lineales de cada intervención.&quot;&lt;br /&gt;
Esta otra frase dentro del artículo expresa muy bien lo que nos quiere decir &quot;mirar en todos los rincones antes de empezar a intervenir.&quot;.&lt;br /&gt;
&lt;br /&gt;
Personalmente encontré en este artículo muchos puntos clave con los que podemos identificarnos quienes trabajamos en este ámbito desde hace tiempo y creo que la mayor dificultad está en poder entender claramente que un cambio de rumbo en estas prácticas (a veces no vistas como un problema) pueden mejorar muchísimo el resultado de nuestro trabajo. Es muy común pensar que cuanto más agreguemos y tengamos contemplado dentro de nuestro código, mejor va a ser para el cliente. Pero me pareció muy clara la visión totalmente opuesta que Karven expone sobre esta creencia.&lt;br /&gt;
&lt;br /&gt;
Como dice mi maestro de pintura: &quot;una obra no se termina, simplemente se abandona&quot;, lo difícil es tener claro cuál el punto justo para hacerlo. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Este es el artículo original en inglés &lt;a href=&quot;https://medium.com/p/50adb9f6caf9&quot; target=&quot;_blank&quot;&gt;When the solution is the problem - How to prevent over-engineering &amp;amp; useless features&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
En el mismo sentido de este artículo, este otro artículo del autor puede ser de utiilidad &lt;a href=&quot;http://arcball.com/2010/04/20-ways-to-find-the-simplest-design-how-to-cut-features-and-enjoy-it/&quot; target=&quot;_blank&quot;&gt;How to cut features and enjoy it&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2014/05/cuando-la-solucion-es-el-problema-como.html</link><author>noreply@blogger.com (Andrea Morales)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhixkBDzPDhYpkr4A7G5qU7gtm4PosZdaUZg9j7T4XRTC2UCCMyPAqE_0eXwF0B5_7xvzJJv9jbWHxsxPswIztmsicvbJMXRUqyhE5izhYLBBpUvfhz74pWKObyeQCW3e-Zy9NeSnjR_y58/s72-c/blog.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-1493504424028992998</guid><pubDate>Thu, 27 Feb 2014 15:08:00 +0000</pubDate><atom:updated>2014-02-27T12:08:00.547-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Adaptive design</category><category domain="http://www.blogger.com/atom/ns#">Adaptive Web Design</category><category domain="http://www.blogger.com/atom/ns#">AWD</category><category domain="http://www.blogger.com/atom/ns#">Responsive design</category><category domain="http://www.blogger.com/atom/ns#">Responsive Web Design</category><category domain="http://www.blogger.com/atom/ns#">RWD</category><title>Responsive y Adaptive Design</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Cuando se habla de Responsive y Adaptive web design suelen tomarse como lo mismo.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8b9SDnWt60GV8FKOY1kro7eAMSz1WN5PIFfv4fXgCNS_NFYlT2Hx1u6UsXefSo_QsW_YW6bma2tC8HmTqIAuN-z5PLuWGmh1z7-cw-2MPkG9n_xCIq5K1OqhHWdaepdKkRTtwtU2atj0/s1600/Responsive.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8b9SDnWt60GV8FKOY1kro7eAMSz1WN5PIFfv4fXgCNS_NFYlT2Hx1u6UsXefSo_QsW_YW6bma2tC8HmTqIAuN-z5PLuWGmh1z7-cw-2MPkG9n_xCIq5K1OqhHWdaepdKkRTtwtU2atj0/s1600/Responsive.png&quot; height=&quot;145&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;Pero buceando en la web podemos encontrar 3 visiones diferentes sobre estos términos: los que piensan que son dos cosas muy distintas que no tienen puntos en común (&quot;tengo que elegir entre uno u otro&quot;), los que sostienen que el &lt;b&gt;Responsive Web Design (RWD)&lt;/b&gt; es un subconjunto del &lt;b&gt;Adaptive Web Design (AWD)&lt;/b&gt; y otros (tal vez los menos?) que consideran que en realidad son dos conceptos que se complementan.&lt;br /&gt;
&lt;br /&gt;
En una definición general podemos encontrar que se habla de Responsive Design cuando se piensa un sitio donde el contenido pueda ser reacomodado según el dispositivo donde se visualiza (desktop, tablet, celular, etc.) enviando siempre la misma información.&lt;br /&gt;
&lt;br /&gt;
Muy genéricamente también encontramos que el diseño Adaptive se define como el diseño pensado en base a los dispositivos donde se visualizará una aplicación, diseñando una versión para cada uno de ellos, haciendo que sea el servidor el que detecte qué dispositivo lo está invocando y enviando el diseño adecuado para el mismo.&lt;br /&gt;
&lt;br /&gt;
Tal como mencionamos, algunas visiones consideran al RWD como parte del AWD, como un subconjunto del mismo. Muchas puntualizan que el Resposive design tiene como objetivo el layout únicamente.&lt;br /&gt;
&lt;br /&gt;
Si bien los dos conceptos tienen en común que se focalizan en &lt;i&gt;permitir que los sitios puedan ser vistos en dispositivos de distintos tamaños o resoluciones&lt;/i&gt; buscando dar una mejor experiencia a los usuarios, Adaptive design es algo más amplio e íntimamente relacionado con la &lt;i&gt;mejora progresiva&lt;/i&gt;, cosa de la que el RWD tampoco está ajeno. Es por ello que hay quienes consideran que ambos conceptos se complementan. Personalmente me inclino más por esta visión.&lt;br /&gt;
&lt;br /&gt;
El AWD es un concepto más abarcativo y, según la definición de su creador &lt;a href=&quot;http://aaron-gustafson.com/&quot; target=&quot;_blank&quot;&gt;Aaron Gustafson&lt;/a&gt;, utiliza mucho de los componentes de la mejora progresiva &lt;b&gt;(PE - Progressive Enhancement)&lt;/b&gt; que se focaliza en el uso de los métodos de diseño necesarios que apunten al usuario y no a los browsers, donde el RWD debería ser una parte, pero siempre teniendo en cuenta &amp;nbsp;que el AWD es un &quot;&lt;i&gt;acercamiento más holístico del diseño web&lt;/i&gt;&quot;.&lt;br /&gt;
&lt;br /&gt;
Desde el punto de vista de los usuarios de los sitios que desarrollamos, poco sabrán ellos sobre qué métodos fueron usados para crearlos. Sólo buscarán poder navegarlos de la forma más simple, rápida y clara desde cualquier &quot;aparato&quot; que se los permita y si no, simplemente los abandonarán. Es por eso que las herramientas y métodos que usemos en su creación deben llevarnos siempre a satisfacer de la mejor forma posible las necesidades de dichos usuarios.&lt;br /&gt;
&lt;br /&gt;
Tomar lo mejor que cada uno nos brinda para lograr este objetivo puede ser una buena idea ...&lt;br /&gt;
&lt;br /&gt;
&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2014/02/responsive-y-adaptive-design.html</link><author>noreply@blogger.com (Andrea Morales)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8b9SDnWt60GV8FKOY1kro7eAMSz1WN5PIFfv4fXgCNS_NFYlT2Hx1u6UsXefSo_QsW_YW6bma2tC8HmTqIAuN-z5PLuWGmh1z7-cw-2MPkG9n_xCIq5K1OqhHWdaepdKkRTtwtU2atj0/s72-c/Responsive.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-8522031749627314375</guid><pubDate>Mon, 24 Feb 2014 16:59:00 +0000</pubDate><atom:updated>2014-02-26T10:52:26.347-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">CSS</category><category domain="http://www.blogger.com/atom/ns#">desarrollo web</category><category domain="http://www.blogger.com/atom/ns#">icon fonts</category><category domain="http://www.blogger.com/atom/ns#">pictogramas</category><title>Uso de texto en lugar de imágenes (icon fonts)</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Desde hace ya un par de años una de las prácticas instaladas en &lt;b&gt;desarrollos web&lt;/b&gt; es el
uso de &lt;i&gt;fuentes tipográficas&lt;/i&gt; en lugar de íconos o pequeñas imágenes o incluso
sprites css. O sea, se manejan los íconos como textos lo que permite cambiar
sus propiedades usando CSS.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjedwP5LlBJVmVhwOlS78f-wiSYgMv3DxAaEbL2eQFkiJGUmaWmnrC4VaerPL__TO2pSp0Jj54IGnnkTaNhF9h427sGy1Vvb9lSud4UwYM9zDmIw7fQlw4_UMfJGmj7x_uPye6EXRgS8ps/s1600/pictograma.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjedwP5LlBJVmVhwOlS78f-wiSYgMv3DxAaEbL2eQFkiJGUmaWmnrC4VaerPL__TO2pSp0Jj54IGnnkTaNhF9h427sGy1Vvb9lSud4UwYM9zDmIw7fQlw4_UMfJGmj7x_uPye6EXRgS8ps/s1600/pictograma.png&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;El uso de estos “&lt;/span&gt;&lt;b style=&quot;font-family: inherit;&quot;&gt;icon fonts&lt;/b&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;” (&lt;/span&gt;&lt;b style=&quot;font-family: inherit;&quot;&gt;icon web fonts&lt;/b&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;) presenta
muchas ventajas respecto de otras técnicas de inserción de imágenes dado que disminuyen
la carga del servidor y las peticiones HTTP, no son tan complejos de
implementar como los &lt;/span&gt;&lt;i style=&quot;font-family: inherit;&quot;&gt;sprites&lt;/i&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;, son adaptables a distintos dispositivos (los
íconos pueden verse pixelados al cambiar de tamaño), se puede cambiar
fácilmente sus propiedades, entre otras.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Varios son los sitios donde podemos encontrar conjuntos de
font-icons – gratuitos y pagos - y abarcan una enorme variedad de temas. Algunas de estas colecciones hemos aplicado en nuestro &lt;a href=&quot;http://www.tercerplaneta.com/&quot; target=&quot;_blank&quot;&gt;web site&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Recomendamos aquí muy buenos artículos donde pueden leer más detalles sobre su implementación y sitios desde donde descargar colecciones:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;http://ksesocss.blogspot.com/2012/05/iconos-o-pictogramas-reemplazo-de.html&quot; target=&quot;_blank&quot;&gt;Ksesocss&lt;/a&gt;&lt;/div&gt;
&lt;a href=&quot;http://css-tricks.com/stackicons-icon-fonts/&quot; target=&quot;_blank&quot;&gt;CSS Tricks&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;http://sauaslp.wordpress.com/2014/01/13/web-icon-fonts/&quot; target=&quot;_blank&quot;&gt;Experiencias de desarrollo web&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;a href=&quot;http://wpmallorca.com/2013/02/28/font-icons-y-deja-de-usar-gif-icons/&quot; target=&quot;_blank&quot;&gt;WordPress Mallorca&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;FR&quot;&gt;&lt;a href=&quot;http://disastercode.com.es/2013/08/usar-fuentes-tipograficas-para-iconos-con-css/&quot; target=&quot;_blank&quot;&gt;DisasterCode&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;FR&quot;&gt;&lt;a href=&quot;http://codigoadicto.com/usando-fonts-en-los-iconos-con-icomoon&quot; target=&quot;_blank&quot;&gt;CodigoAdicto&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.4rsoluciones.com/icon-fonts-escribiendo-con-iconos/&quot; target=&quot;_blank&quot;&gt;4R Soluciones&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;i style=&quot;font-size: 13px; text-align: center;&quot;&gt;(imagen: htttp://commons.wikimedia.org/wiki/File:Early_writing_tablet_recording_the_allocation_of_beer.jpg)&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2014/02/uso-de-texto-en-lugar-de-imagenes-icon.html</link><author>noreply@blogger.com (Andrea Morales)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjedwP5LlBJVmVhwOlS78f-wiSYgMv3DxAaEbL2eQFkiJGUmaWmnrC4VaerPL__TO2pSp0Jj54IGnnkTaNhF9h427sGy1Vvb9lSud4UwYM9zDmIw7fQlw4_UMfJGmj7x_uPye6EXRgS8ps/s72-c/pictograma.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-8238180440588773361</guid><pubDate>Fri, 14 Feb 2014 19:38:00 +0000</pubDate><atom:updated>2014-02-14T16:39:26.899-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Mondrian</category><category domain="http://www.blogger.com/atom/ns#">Pentaho Community</category><title>Probando Pentaho VI: esquema de un cubo con Mondrian</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
En un &lt;a href=&quot;http://blog.tercerplaneta.com/2014/01/probando-pentaho-v-instalando-pentaho-5.html&quot; target=&quot;_blank&quot;&gt;artículo anterior&lt;/a&gt;&amp;nbsp;vimos que construir un &lt;i&gt;esquema Mondrian&lt;/i&gt; adecuado es la base para cualquier análisis y visualización.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyj0XYH_SGLv3hWETPyIZ32VHUHD9zi2KQTaggB2F43wvqVpAPeW-MCYTnvkzj2joh0egZHjlfiXFI36Cnvrk_gF4DOt3TJhiEyLm0Q-JhBS8w0Z4WzInESctKrln91tsxC6Nz05GZzpuw/s1600/Saiku6.jpg&quot; imageanchor=&quot;1&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyj0XYH_SGLv3hWETPyIZ32VHUHD9zi2KQTaggB2F43wvqVpAPeW-MCYTnvkzj2joh0egZHjlfiXFI36Cnvrk_gF4DOt3TJhiEyLm0Q-JhBS8w0Z4WzInESctKrln91tsxC6Nz05GZzpuw/s640/Saiku6.jpg&quot; height=&quot;354&quot; title=&quot;Ventas por Región&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Comparto ahora algunas pruebas realizadas con &lt;b&gt;Mondrian&lt;/b&gt;. Utilicé &amp;nbsp;la &lt;a href=&quot;http://mondrian.pentaho.com/documentation/schema.php&quot;&gt;documentación&lt;/a&gt;&amp;nbsp;provista por &lt;b&gt;Pentaho&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Esquema Mondrian&lt;/h3&gt;
Un &lt;i&gt;esquema&lt;/i&gt; define una &lt;i&gt;base de datos multi dimensional.&amp;nbsp;&lt;/i&gt;Contiene un &lt;b&gt;modelo lógico&lt;/b&gt;. Este modelo a su vez debe mapear a un &lt;b&gt;modelo físico&lt;/b&gt;.&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;El modelo lógico consiste en las &lt;i&gt;estructuras&lt;/i&gt; usadas para escribir consultas en &lt;b&gt;lenguaje MDX&lt;/b&gt;. Esta formado por cubos, jerarquías, niveles y miembros.&lt;/li&gt;
&lt;li&gt;El modelo físico &amp;nbsp;son las &lt;i&gt;tablas de datos&lt;/i&gt; presentados previamente en &amp;nbsp;el modelo lógico.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
Los esquemas Mondrian son &lt;b&gt;archivos de tipo xml&lt;/b&gt;. Se pueden editar manualmente, o bien por medio de la herramienta &lt;b&gt;Workbench&lt;/b&gt; provista por Pentaho.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Workbench&lt;/h3&gt;
Mondrian Schema Workbench es una aplicación que permite crear visualmente y testear esquemas Mondrian de cubos OLAP.&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Creación del esquema de un cubo usando Workbench&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;1. Instalar Mondrian, que se puede bajar desde&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://sourceforge.net/projects/mondrian/files/schema%20workbench/3.2.1-stable/&quot; style=&quot;font-family: inherit;&quot;&gt;Source Forge&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;2. Descomprimir en el directorio donde se instalo el server de &lt;b&gt;Pentaho&lt;/b&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7STGBFgzdgXigdFy3AJv45CqAVt_-nwAcubah1ibzj2ghAbVI3nmuH_aeDieNaEfWKFL8AHZwa3HBJu-D5IyZgTRQbdKt8Uv2ofMw6hjK8vc-AzNv6uaLzs6JareBUo9oyLWzbcWyEKo0/s1600/Directorios.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7STGBFgzdgXigdFy3AJv45CqAVt_-nwAcubah1ibzj2ghAbVI3nmuH_aeDieNaEfWKFL8AHZwa3HBJu-D5IyZgTRQbdKt8Uv2ofMw6hjK8vc-AzNv6uaLzs6JareBUo9oyLWzbcWyEKo0/s1600/Directorios.JPG&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;3.&amp;nbsp;&lt;/span&gt;Incluir el &lt;b&gt;driver JDBC&lt;/b&gt; en el directorio &#39;Drivers&#39;:&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;schema-workbench/drivers&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;4. Con el server de Pentaho activo,&amp;nbsp;&lt;/span&gt;iniciar Workbench&lt;span style=&quot;font-family: inherit;&quot;&gt;, (&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;schema-workbench/workbench.bat &lt;/span&gt;) obteniendo una pantalla del tipo&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3VRxGsZ4AGMJDRYFtS8KSZgN8AZEDJVeYI3JyeT_RXeF73dMNNK5_1ISF2DyuojGgZstZRIIxwyvYS5GBo0NFSHAZLw0Y6ICASPU7Hht-Ke9-ERiOCf9hJdZY9TR6M529rGOF912wFLbM/s1600/workbench.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3VRxGsZ4AGMJDRYFtS8KSZgN8AZEDJVeYI3JyeT_RXeF73dMNNK5_1ISF2DyuojGgZstZRIIxwyvYS5GBo0NFSHAZLw0Y6ICASPU7Hht-Ke9-ERiOCf9hJdZY9TR6M529rGOF912wFLbM/s320/workbench.JPG&quot; height=&quot;82&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;5. Conectarse a la base de datos, desde la opción &#39;options&#39; del menú principal. Los parámetros para crear la conexión son los mismos que en el caso de la consola de usuario de Pentaho.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7S73sj_2n-zL24cYQ6U7RFXVY42zVpxqQKEDQCYHHyjZgtTMBqX45N0NfWArasApwYSva5LOIqNxivvCdOlH2rZtWKjzbcRKRR4KrucOLDNJkuJ2Vpennig7EFUD9qADyg_6B-4D091d-/s1600/Conexion.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7S73sj_2n-zL24cYQ6U7RFXVY42zVpxqQKEDQCYHHyjZgtTMBqX45N0NfWArasApwYSva5LOIqNxivvCdOlH2rZtWKjzbcRKRR4KrucOLDNJkuJ2Vpennig7EFUD9qADyg_6B-4D091d-/s320/Conexion.JPG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;6. Este es un ejemplo de &lt;i&gt;esquema de un cubo&lt;/i&gt;. Consulta la base en SQL &#39;AdventureWorksDW&#39;. Tomando como tabla de &#39;hechos&#39; o fact table FactInternetSales. La medida utilizada es &#39;SalesAmount&#39;. Las dimensiones, dos básicas, son el tiempo (DimTime) y Región (tabla DimSalesTerritory).&lt;/span&gt;&lt;br /&gt;
Crear o editar los elementos en el esquema. Workbench valida los cambios contra las tablas del cubo y los nombres de las columnas.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEi6LcKi5ghQBmE4N7Nx__pETVo3UiEr32pNC6JtLNrotM3cLkYAoUsqT9tWbe2zRkGKoxCjtdozIEg-H2oXioYfAutY0-G1m4baaOgPWfZvvmE9lReI724l53_d6aEvI3301Yzx5wvQ-m/s1600/dimension.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEi6LcKi5ghQBmE4N7Nx__pETVo3UiEr32pNC6JtLNrotM3cLkYAoUsqT9tWbe2zRkGKoxCjtdozIEg-H2oXioYfAutY0-G1m4baaOgPWfZvvmE9lReI724l53_d6aEvI3301Yzx5wvQ-m/s1600/dimension.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
En este caso, construimos la dimensión &#39;Region&#39; contra la tabla &#39;DimSalesTerritory&#39;.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;7. Para ver el &lt;i&gt;código XML&lt;/i&gt; que subyace detrás del esquema, seleccionar&amp;nbsp;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;View/XML&lt;/span&gt;. Muestra el XML del elemento actual, pero no se puede editar este archivo directamente.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&amp;lt;Dimension type=&quot;StandardDimension&quot; visible=&quot;true&quot; foreignKey=&quot;SalesTerritoryKey&quot; highCardinality=&quot;false&quot; name=&quot;Region&quot;&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;lt;Hierarchy name=&quot;Region&quot; visible=&quot;true&quot; hasAll=&quot;true&quot; allMemberName=&quot;TODOS&quot; primaryKey=&quot;SalesTerritoryKey&quot;&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Table name=&quot;DimSalesTerritory&quot; schema=&quot;dbo&quot;&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/Table&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Level name=&quot;Region&quot; visible=&quot;true&quot; column=&quot;SalesTerritoryRegion&quot; nameColumn=&quot;SalesTerritoryRegion&quot; type=&quot;String&quot; internalType=&quot;String&quot; uniqueMembers=&quot;true&quot; levelType=&quot;Regular&quot; hideMemberIf=&quot;Never&quot; caption=&quot;Region&quot; captionColumn=&quot;SalesTerritoryRegion&quot;&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/Level&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/Hierarchy&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&amp;lt;/Dimension&amp;gt;&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&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: left;&quot;&gt;
8. Probar que la &amp;nbsp;estructura sea correcta, para esto abrir el &amp;nbsp;editor de MDX y conectarse. Si se hay algún error o campo mal indicado no se conecta y da error.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
En ese caso muestra los resultados de la consulta MDX básica.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&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/AVvXsEg8XLma49rIrfFshb5ryBu0XfuQ14PNa8M2GCCqa0W61tkhFFxLARJUYIfR7Md21E2UiYIZd2PMUFG98xDCyBNGYv22kLoRsXgyZ1LhfkBe-icJ6WDRJFy4vccQWUuNNHfTk1zE_GWq9D9V/s1600/mdx.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; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8XLma49rIrfFshb5ryBu0XfuQ14PNa8M2GCCqa0W61tkhFFxLARJUYIfR7Md21E2UiYIZd2PMUFG98xDCyBNGYv22kLoRsXgyZ1LhfkBe-icJ6WDRJFy4vccQWUuNNHfTk1zE_GWq9D9V/s1600/mdx.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
Resultaron de utilidad los artículos del blog &lt;a href=&quot;http://type-exit.org/adventures-with-open-source-bi/category/olap/mondrian-tutorials/&quot;&gt;Adventures with Open Source BI&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2014/02/probando-pentaho-vi-esquema-de-un-cubo.html</link><author>noreply@blogger.com (Lucila Santos)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyj0XYH_SGLv3hWETPyIZ32VHUHD9zi2KQTaggB2F43wvqVpAPeW-MCYTnvkzj2joh0egZHjlfiXFI36Cnvrk_gF4DOt3TJhiEyLm0Q-JhBS8w0Z4WzInESctKrln91tsxC6Nz05GZzpuw/s72-c/Saiku6.jpg" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-8895536725476813061</guid><pubDate>Thu, 16 Jan 2014 15:54:00 +0000</pubDate><atom:updated>2014-02-12T09:32:26.834-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Mondrian</category><category domain="http://www.blogger.com/atom/ns#">Pentaho Community</category><category domain="http://www.blogger.com/atom/ns#">Saiku Analytics</category><title>Probando Pentaho V: instalando Pentaho 5 - Saiku Analytics</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;La nueva versión de &lt;b&gt;Pentaho BI-Server 5.0&lt;/b&gt; está disponible.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Hay varias novedades, entre ellas una &lt;i&gt;nueva interfase&lt;/i&gt;, mucho más moderna y amigable que la anterior&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Por otro lado, la consola de usuario (Pentaho User Console) y la consola de adminstración están integradas, con lo cual no es necesario&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;ahora configurar un server extra.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Se ha mejorado la instalación &lt;i&gt;de plugins por medio de MarketPlace&lt;/i&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Instalamos entonces la nueva versión de Pentaho. El cambio que más nos gustó fue&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;la presentación más moderna y austera, con una paleta de colores muy amigable. También el acceso fácil a todos los elementos.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Este es el detalle de los pasos básicos que seguimos para tener Pentaho 5 andando:&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Instalación.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Conexiones a las bases de datos.&lt;/li&gt;
&lt;li&gt;Creación de Data Sources y consultas MDX.&lt;/li&gt;
&lt;li&gt;Presentaciones y gráficos.&lt;/li&gt;
&lt;/ol&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;-1- &amp;nbsp;Instalación&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;
La instalación fue simple, bajamos los archivos desde &lt;a href=&quot;http://community.pentaho.com/&quot;&gt;Pentaho Community&lt;/a&gt;&amp;nbsp; (&lt;/span&gt;biserver-ce-5.0.1-stable)&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;-2- Conexiones&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Las conexiones: basta instalar el driver adecuado en los directorios y crear la conexión en sí&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Drivers:&amp;nbsp;&lt;/span&gt;driver para acceso a SQL.&amp;nbsp;&lt;b&gt;jtds-1.3.0.jar &lt;/b&gt;en los directorios:&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;bi-server/data/lib&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;bi-server/tomcat/lib&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;ul&gt;&lt;ul&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Creación de una conexión. Desde la pantalla de Pentaho:&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;span style=&quot;background-color: #fff2cc; font-family: inherit;&quot;&gt;File /New/DataSource&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;SQL query, pantalla de selección de conexiones, agregar una nueva:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhInKUSvCb2Sj3jZ-Z5X1XJKNBPBIYSBagW4tZtcvsHspdmUr7L_SFk-b3y3UriHA4j_gVh86e-qs_goNWX9nz9nIsKVmXdW6lsvc_3JOET0Afw8Ahoia-AlDRpzQwBypBL7OgLmRmylaUX/s1600/createconexion2.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; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhInKUSvCb2Sj3jZ-Z5X1XJKNBPBIYSBagW4tZtcvsHspdmUr7L_SFk-b3y3UriHA4j_gVh86e-qs_goNWX9nz9nIsKVmXdW6lsvc_3JOET0Afw8Ahoia-AlDRpzQwBypBL7OgLmRmylaUX/s640/createconexion2.jpg&quot; height=&quot;296&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;/h4&gt;
&lt;h4&gt;
&lt;/h4&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h4&gt;
-3- Data Sources y consultas MDX.&lt;/h4&gt;
Una diferencia importante en esta nueva versión de Pentaho es la posibilidad de &lt;b&gt;configurar data sources&lt;/b&gt;. Se puede crear un data source a partir del &lt;a href=&quot;http://mondrian.pentaho.com/documentation/schema.php#What_is_a_schema&quot;&gt;esquema de un cubo creado con Mondrian&lt;/a&gt;.&amp;nbsp;Basta tener el xml asociado al cubo. No es necesario publicarlo como en versiones anteriores de Pentaho.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;Manage DataSources/ DataSource/ New Analysis&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Seleccionar el archivo .xml correspondiente al esquema Mondrian generado por &lt;b&gt;Workbench&lt;/b&gt;, y seleccionar el data source correcto.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLHlG6dND-sEwqWMvw04mXl_-BKQMGisxuhYapP7hzVg6rk1HcYKUwjdAFfVjDounCXLYl8oUpq68EqMZNVT4J9LSaoHVmGbYUx1TsJflru69wXUF7NT1eUeSQi7vf3GFikb7V-z7A6KRm/s1600/datasource.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLHlG6dND-sEwqWMvw04mXl_-BKQMGisxuhYapP7hzVg6rk1HcYKUwjdAFfVjDounCXLYl8oUpq68EqMZNVT4J9LSaoHVmGbYUx1TsJflru69wXUF7NT1eUeSQi7vf3GFikb7V-z7A6KRm/s400/datasource.JPG&quot; height=&quot;291&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;/h4&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;El data source importado, cuya base es un cubo, se puede ver por medio de Jpivot y Saiku analytics. La creación de las consultas y gráficos es bastante intuitiva.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;JPivot:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #fafcff; color: #2a2a2a; font-family: Verdana, sans-serif; font-size: 9.5pt; line-height: 18pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #fafcff; color: #2a2a2a; line-height: 18pt;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;permite, de una forma interactiva,
analizar los datos del Data Warehouse a traves de una interfaz de tabla cruzada
donde podemos navegar por las diferentes dimensiones definidas en el modelo
dimensional.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background: #FAFCFF; line-height: 18.0pt; margin-bottom: 12.85pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;color: #2a2a2a; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9.5pt; mso-ansi-language: ES-AR;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;background-color: #fff2cc; font-family: inherit;&quot;&gt;Create New/ JPivot View&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt; permite seleccionar entre los cubos creados. En este caso,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;seleccionamos un cubo construido a partir de ventas de internet. Con solo dos dimensiones, región y tiempo. La consulta MDX relacionada es&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;i&gt;select NON EMPTY [Region].[Region].Members ON COLUMNS,&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; NON EMPTY {Hierarchize({[Time].[Years].Members})} ON ROWS&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;from [InternetSalesRegionTime]&lt;/i&gt;&lt;br /&gt;
&lt;div&gt;
(de la base AdventureWorksDW)&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRynb1o4FuaDcl-BiRX7rku4ooaVQ2kSt7OuY8qIodTLlUMaWGxBatr8LHP3kZoG6DUI8kAxMtj7f06kH9oonZW8gJSxlaMuCJPl-bgnThKHThUt3XApIne-z9zoaqK8vgxpk2ybFX8tXJ/s1600/JPIVOT.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRynb1o4FuaDcl-BiRX7rku4ooaVQ2kSt7OuY8qIodTLlUMaWGxBatr8LHP3kZoG6DUI8kAxMtj7f06kH9oonZW8gJSxlaMuCJPl-bgnThKHThUt3XApIne-z9zoaqK8vgxpk2ybFX8tXJ/s640/JPIVOT.JPG&quot; height=&quot;186&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;h4&gt;
-4- Visualizaciones&lt;/h4&gt;
Para probar&amp;nbsp;&lt;b&gt;Saiku Analytics&lt;/b&gt;, fue necesario descargar el plug-in por medio de la opción &#39;MarketPlace&#39; desde la consola de usuario de Pentaho.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;Create New/ New Saiku Analytic&lt;/span&gt;s permite armar consultas &amp;nbsp;y generar gráficos.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Estas son las consultas al mismo cubo que abrí con JPivot y gráficos generados. Tomé para el ejemplo un caso sencillo, pero muy ilustrativo.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;Consulta Ventas por Región y Tiempo&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjliNPvareKEdF5FQ4MXF5R4jxwbyepzUh_MI5xftRf_Jdr8Cfy4j7BbE-zbE37cxUa_yob91ptL-sPWGJlQlmtyEotcZPKYK-zdMeN26pLz1qI5oJssNF9P6J1JHwPb3Y-ezzY2FkwZ-Wc/s1600/saiku1.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Consulta Ventas por Región y Tiempo&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjliNPvareKEdF5FQ4MXF5R4jxwbyepzUh_MI5xftRf_Jdr8Cfy4j7BbE-zbE37cxUa_yob91ptL-sPWGJlQlmtyEotcZPKYK-zdMeN26pLz1qI5oJssNF9P6J1JHwPb3Y-ezzY2FkwZ-Wc/s320/saiku1.JPG&quot; height=&quot;272&quot; title=&quot;Consulta Ventas por Región y Tiempo&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Ventas por región por año&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: start;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;background-color: #fff2cc;&quot;&gt;Gráfico líneas ventas por región&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGFBxOUOYtb6lS99n0soc3IK9seMBj4IoOD-Rk6QrOXTZ2L2wcFFl69Dpzy-ugy-g7A66w2GZ7v2vunU1RchnS_PMwFCzWM6U2MbWVvR0fZOGUf8jk2W4CS8FPEo926mOOx1TiE1I1qzkm/s1600/saiku2.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGFBxOUOYtb6lS99n0soc3IK9seMBj4IoOD-Rk6QrOXTZ2L2wcFFl69Dpzy-ugy-g7A66w2GZ7v2vunU1RchnS_PMwFCzWM6U2MbWVvR0fZOGUf8jk2W4CS8FPEo926mOOx1TiE1I1qzkm/s640/saiku2.JPG&quot; height=&quot;308&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Región en las columnas y años para las filas&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: start;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyj0XYH_SGLv3hWETPyIZ32VHUHD9zi2KQTaggB2F43wvqVpAPeW-MCYTnvkzj2joh0egZHjlfiXFI36Cnvrk_gF4DOt3TJhiEyLm0Q-JhBS8w0Z4WzInESctKrln91tsxC6Nz05GZzpuw/s1600/Saiku6.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyj0XYH_SGLv3hWETPyIZ32VHUHD9zi2KQTaggB2F43wvqVpAPeW-MCYTnvkzj2joh0egZHjlfiXFI36Cnvrk_gF4DOt3TJhiEyLm0Q-JhBS8w0Z4WzInESctKrln91tsxC6Nz05GZzpuw/s640/Saiku6.jpg&quot; height=&quot;354&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Mismo gráfico detalle por mes.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;A mi entender es clave partir de un esquema Mondrian adecuado. En un próximo artículo compartiré un par de consejos para crearlos.&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2014/01/probando-pentaho-v-instalando-pentaho-5.html</link><author>noreply@blogger.com (Lucila Santos)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhInKUSvCb2Sj3jZ-Z5X1XJKNBPBIYSBagW4tZtcvsHspdmUr7L_SFk-b3y3UriHA4j_gVh86e-qs_goNWX9nz9nIsKVmXdW6lsvc_3JOET0Afw8Ahoia-AlDRpzQwBypBL7OgLmRmylaUX/s72-c/createconexion2.jpg" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-7929710297293428374</guid><pubDate>Thu, 16 Jan 2014 13:57:00 +0000</pubDate><atom:updated>2014-01-16T10:57:12.367-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Agile</category><category domain="http://www.blogger.com/atom/ns#">equipo agil</category><category domain="http://www.blogger.com/atom/ns#">Metodologias</category><category domain="http://www.blogger.com/atom/ns#">Metodologias Agiles</category><category domain="http://www.blogger.com/atom/ns#">Trabajo en Equipo</category><title>Por qué los rituales son importantes en Agile</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Cuando leí este artículo de &lt;a href=&quot;http://illustratedagile.com/author/lagestee/&quot; target=&quot;_blank&quot;&gt;Len Lagestee&lt;/a&gt; sobre los &lt;b&gt;rituales en Agile&lt;/b&gt; recordé una reunión de equipo que tuvimos hace algunos años donde revisábamos nuestra práctica de &lt;b&gt;Scrum&lt;/b&gt; cuando recién empezábamos. Una de las conclusiones a las que llegamos en ese momento fue que los rituales de Scrum, en nuestro caso, son tan pocos y tan simples que no tiene sentido querer &quot;darles una vuelta&quot; o tratar de adaptarlos. Scrum es eso y cualquier cambio que se le quiera agregar lo convierte en otra cosa. Y lo mismo aplica a cualquier otro método ágil.&lt;br /&gt;
&lt;br /&gt;
Con el tiempo y hablando con gente de otros equipos noté que eso que nosotros intentábamos (tal vez cierta resistencia inconciente?) es bastante común entre quienes empiezan con un cambio de metodología: queremos hacer una &quot;adaptación libre&quot; o una versión ajustada de la práctica. Es por eso que me pareció interesante resumir los &lt;i&gt;conceptos de Len Lagestee sobre la importancia de respetar y mantener los rituales en de las metodologías ágiles.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
Según Lagestee, una de las primeras dudas o quejas que despierta la práctica de metodologías ágiles es &quot;la cantidad&quot; de reuniones, dependiendo dle método las típicas son: &lt;b&gt;planificación, daily stand-up, revisión del sprint o demostración, retrospectiva, revisión del backlog&lt;/b&gt;. El sólo hecho de pensar en tantas reuniones lleva a decir que &quot;no habrá tiempo para trabajar&quot;. En estos casos es donde el autor subraya justamente la importancia de mantener estas prácticas: el tiempo que un equipo comparte junto, con un ritmo recurrente y consistente, es donde se fomentan las bases de los rituales de ese equipo.&lt;br /&gt;
En este punto Lagestee resalta una definición de wikipedia al respecto:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;i&gt;&lt;b&gt;&lt;span style=&quot;color: #45818e;&quot;&gt;&quot;los rituales hacen a la tradición de una comunidad&quot;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;b&gt;&lt;span style=&quot;color: #45818e;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;
&lt;i&gt;&lt;b&gt;&lt;span style=&quot;color: #45818e;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW_HTQ4xIebyG2Vm_63p-zcA0hnXd6nW3Jges_AYvb6OO7MWtchm6QSgOGHRADdHwgUKxDrc5lJIj5Qn7-XCbKFnAeEoT6b8TfFU2R7cdgqJ67eqxKxjDBCjHkfT7azyaxT24W3_QacIU/s1600/scrum-team.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW_HTQ4xIebyG2Vm_63p-zcA0hnXd6nW3Jges_AYvb6OO7MWtchm6QSgOGHRADdHwgUKxDrc5lJIj5Qn7-XCbKFnAeEoT6b8TfFU2R7cdgqJ67eqxKxjDBCjHkfT7azyaxT24W3_QacIU/s1600/scrum-team.png&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;i&gt;http://milindageorge.files.wordpress.com/2013/03/scrum-team.png&lt;/i&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Continúa diciendo Lagestee en su artículo que concretamente la importancia de los rituales está dada porque los mismos refuerzan las tradiciones de:&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Reconocer el pasado&lt;/b&gt;: las &lt;i&gt;retrospectivas&lt;/i&gt; permiten aprender de la experiencia pasada en un sano entorno de &quot;comunidad&quot;. El equipo es el que aprende a corregir su propio rumbo.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Marcar nuevos comienzos:&lt;/b&gt; más allá de las conclusiones sacadas para el sprint pasado, la &lt;i&gt;planificación&lt;/i&gt; de un nuevos sprint permite a la &quot;comunidad&quot; (es decir, al equipo) centrarse en lo que viene por delante.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Tomar decisiones:&lt;/b&gt; la reunión de planificación y el &lt;i&gt;timeboxing&lt;/i&gt; establecen la tradición de las &quot;decisiones&quot; =&amp;gt; &quot;podemos como equipo completar estas historias en este sprint o no?&quot;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Desatar movimiento:&lt;/b&gt; las &lt;i&gt;reuniones diarias &lt;/i&gt;sirven para poner en movimiento al equipo, trabajando mancomunado desde el inicio del día. Según nuestra experiencia, la reunión diaria establece el espacio explícito donde sabemos que contamos con los otros para darnos una mano cuando estamos complicados con algo.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Crear conexiones:&lt;/b&gt; compartir las &lt;i&gt;reuniones diarias&lt;/i&gt; asegura que todos los días haya un punto de conexión entre todo el equipo. Y cuando alguien no esta, se siente la ausencia. &amp;nbsp;Len Lagestee compara esta práctica con el ritual de la cena en familia: es el momento en que todos se juntan para contar cómo les fue en el día. Puede parecer aburrido o sin sentido hacerlo con tanta frecuencia, pero la realidad es que cuando no se hace, sentimos que algo falta. En la experiencia particular de Tercer Planeta es casi imposible pensar en arrancar el día sin la reunión diaria.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Celebrar con los demás: &lt;/b&gt;las sesiones de &lt;i&gt;revisión del sprint&lt;/i&gt; son los momentos donde el equipo puede reconocer y valorar realmente los logros del trabajo en conjunto.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Algo que aclara el autor es que es absolutamente normal al principio sentir que tenemos los días llenos de reuniones, pero al persisitir con el equipo en lograr un punto de verdadera comunidad, estas reuniones se vuelven más y más efectivas y se adoptan naturalmente porque se ven sus beneficios.&lt;br /&gt;
&lt;br /&gt;
Desde nuestra experiencia podemos asegurar que esto es así, nos ha pasado de tener las mismas dudas mencionadas respecto de &quot;tanto tiempo&quot; destinado a reuniones pero hemos comprobado que el tiempo invertido en ellas deja ver sus frutos en la velocidad de producción y en la calidad del producto terminado, entre muchas otras ventajas que nos dan estos rituales.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://illustratedagile.com/2013/01/21/why-the-rituals-of-agile-matter/&quot; target=&quot;_blank&quot;&gt;Why the rituals of agile matter&lt;/a&gt;&amp;nbsp; (por &lt;a href=&quot;http://www.linkedin.com/in/lenlagestee&quot; target=&quot;_blank&quot;&gt;Len Lagestee&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
Otro artículo que puede resultar también interesante:&amp;nbsp;&lt;a href=&quot;http://comunidad.agilmatica.com/articulos/2008/10/30/la-importancia-del-respeto-los-rituales&quot; target=&quot;_blank&quot;&gt;La importancia del respeto los rituales&lt;/a&gt;&amp;nbsp; (en Agilmática)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2014/01/por-que-los-rituales-son-importantes-en.html</link><author>noreply@blogger.com (Andrea Morales)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW_HTQ4xIebyG2Vm_63p-zcA0hnXd6nW3Jges_AYvb6OO7MWtchm6QSgOGHRADdHwgUKxDrc5lJIj5Qn7-XCbKFnAeEoT6b8TfFU2R7cdgqJ67eqxKxjDBCjHkfT7azyaxT24W3_QacIU/s72-c/scrum-team.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-5738656384235012513</guid><pubDate>Wed, 15 Jan 2014 20:14:00 +0000</pubDate><atom:updated>2014-01-15T17:14:50.750-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">CSS</category><category domain="http://www.blogger.com/atom/ns#">Framework CSS</category><category domain="http://www.blogger.com/atom/ns#">Pure</category><title>Primeros pasos con Pure, un framework css modular, liviano y completo</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&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/AVvXsEhEHvdn-K9i_kY0UUNpVfuqyWn1iiw0ouV9oe0jEu9esJpXT2pv8Qtg-hLfXCgH9FvTsgXYmW1SOKH4YOBzZ-FWTxW6xRunpSN8JETVpLvLoqLcV2FScjr5yvY9AKDl9Cc_U5CG4Xsj6V8/s1600/Untitled.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEHvdn-K9i_kY0UUNpVfuqyWn1iiw0ouV9oe0jEu9esJpXT2pv8Qtg-hLfXCgH9FvTsgXYmW1SOKH4YOBzZ-FWTxW6xRunpSN8JETVpLvLoqLcV2FScjr5yvY9AKDl9Cc_U5CG4Xsj6V8/s1600/Untitled.png&quot; height=&quot;162&quot; style=&quot;display: none;&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Qué desarrollador hoy en día no implementa algún &lt;b&gt;framework css&lt;/b&gt; como base al construir la maquetación de sus sitos/aplicaciones web? Todos deberíamos usar alguno ya que son muchísimas las ventajas que nos ofrecen.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;Pero &quot;primero es lo primero&quot;.....&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;A manera de repaso (o por si no conocés del tema) comentemos que &lt;/span&gt;&lt;i style=&quot;font-family: inherit;&quot;&gt;un framework css es un conjunto de herramientas, style sheets y buenas prácticas que permiten al desarrollador olvidarse de estilos y funcionalidad que va a utilizar en muchos lados para centrarse en los elementos únicos de cada diseño en los que puede aportar valor.&lt;/i&gt;&lt;br /&gt;
&lt;i style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/i&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt; Un framework css puede incluir solo archivos .css o bien algunos .js para complementar algún proceso como un diálogo modal.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt; El ejemplo más destacado en este ámbito es el famoso &lt;a href=&quot;http://getbootstrap.com/&quot;&gt;Twitter Bootstrap&lt;/a&gt;, un muy usado framework css, que tiene todo lo que el desarrollar necesita para construir aplicaciones totalmente funcionales sin mucho esfuerzo. Contiene estilos y funcionalidad para maquetación por medio de grillas, estilos para todos los elementos, formularios, slides de imágenes y formularios modales, entre otros.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPndedQTUzHYNvHrfgEDL7xxgceNyQJFmSfxsb28lsFh8gmTAYaLdFTreLZIva3lsKBp-y9JT-kEWAv5gv3ziaZ3wC5LY7kgHVNnR4c69tguJ0zXY77LQPnLXzCpV_P2cfPWsTIWw1hCo/s1600/Untitled.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPndedQTUzHYNvHrfgEDL7xxgceNyQJFmSfxsb28lsFh8gmTAYaLdFTreLZIva3lsKBp-y9JT-kEWAv5gv3ziaZ3wC5LY7kgHVNnR4c69tguJ0zXY77LQPnLXzCpV_P2cfPWsTIWw1hCo/s1600/Untitled.png&quot; height=&quot;101&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt; Pero a veces nuestros proyectos no son lo suficientemente grandes como para necesitar semejante framework y fue en uno de esos momentos de duda cuando conocí a &lt;b&gt;Pure&lt;/b&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;a href=&quot;http://purecss.io/&quot;&gt;Pure&lt;/a&gt; es un framework css muy pequeño, modular y que tiene todo lo necesario para un proyecto web de hoy en día. Está contruido sobre normalize.css.&lt;/i&gt;&lt;/b&gt; Sus características más destacadas (a mi criterio) son:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;i&gt;Es MUY liviano&lt;/i&gt;: Pesa apenas 4.4 kb.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;i&gt;Está construido en pequeños módulos&lt;/i&gt;: Uno para estilos generales, otro para construcción de grillas, botones, formularios y uno podría solo incluir el que le interese en su proyecto.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;i&gt;Es completo&lt;/i&gt;: No incluye ningún .js, ni construcción de elementos gráficos muy sofisticados como un slider pero aún así es lo suficientemente funcional como para construir un sitio de manera sencilla y que respete las buenas prácticas de maquetación.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Es &lt;i&gt;responsive&lt;/i&gt;: Como todo buen framework css, piensa en los dispositivos móviles.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&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/AVvXsEjLPwG-aLuchWSyOiLYIXC0cGlKBxP_HuMO4tQ4cIwONuoCaWEU83rb4V3eIhD7Mx1siMNl9K3Y5ZykQoMqNY3LjfYHLyuGBh8JCIX3HnucqtLNbiDcaUtE4Rh7hAQCug8KyFNoYoiFOFA/s1600/pure.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLPwG-aLuchWSyOiLYIXC0cGlKBxP_HuMO4tQ4cIwONuoCaWEU83rb4V3eIhD7Mx1siMNl9K3Y5ZykQoMqNY3LjfYHLyuGBh8JCIX3HnucqtLNbiDcaUtE4Rh7hAQCug8KyFNoYoiFOFA/s1600/pure.png&quot; height=&quot;283&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;En el sitio web se pueden encontrar algunos ejemplos básicos construidos con Pure que muestran su poder y se puede descargar: &lt;a href=&quot;http://purecss.io/layouts/blog/&quot;&gt;blog&lt;/a&gt;, &lt;a href=&quot;http://purecss.io/layouts/marketing/&quot;&gt;landing page&lt;/a&gt;, &lt;a href=&quot;http://purecss.io/layouts/pricing/&quot;&gt;pricing table&lt;/a&gt; y &lt;a href=&quot;http://purecss.io/layouts/&quot;&gt;otros&lt;/a&gt;.&lt;br /&gt;La documentación del sitio es muy buena y sencilla de entender. Podría decir que no tiene curva de aprendizaje más que unos pocos minutos o un breve repaso sobre la documentación.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt; Que esperan para involucrar a Pure en sus proyectos?.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;




&lt;/span&gt;&lt;/ul&gt;
&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2014/01/primeros-pasos-con-pure-un-framework.html</link><author>noreply@blogger.com (Cristhian Duran)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEHvdn-K9i_kY0UUNpVfuqyWn1iiw0ouV9oe0jEu9esJpXT2pv8Qtg-hLfXCgH9FvTsgXYmW1SOKH4YOBzZ-FWTxW6xRunpSN8JETVpLvLoqLcV2FScjr5yvY9AKDl9Cc_U5CG4Xsj6V8/s72-c/Untitled.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-4540803333774181367</guid><pubDate>Fri, 13 Dec 2013 13:38:00 +0000</pubDate><atom:updated>2013-12-17T10:38:12.098-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">information visualization</category><category domain="http://www.blogger.com/atom/ns#">Open Data</category><title>Open Data</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Uno de los temas de interés en Tercer Planeta es &lt;b&gt;Open Data&lt;/b&gt;.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2bOc__gVWekwqSRcJz2qtqS4bGOvjJNTn4zMneGENFBv5sceD-zuoZ8HpnW0kh1Sct648XRf9mcXh449A7TX825dxh22jvz9hfxTF-wqPlqvwkBhHwUZKfc0QvrA30L6DbcJOQQNkIZAP/s1600/open-data-movement-api-technology-infogfraphic1-600x417.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;http://galecia.com/blogs/lori-ayre/open-data-movement-great-graphic&quot; border=&quot;0&quot; height=&quot;444&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2bOc__gVWekwqSRcJz2qtqS4bGOvjJNTn4zMneGENFBv5sceD-zuoZ8HpnW0kh1Sct648XRf9mcXh449A7TX825dxh22jvz9hfxTF-wqPlqvwkBhHwUZKfc0QvrA30L6DbcJOQQNkIZAP/s640/open-data-movement-api-technology-infogfraphic1-600x417.jpg&quot; title=&quot;Open Data Movement&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://galecia.com/blogs/lori-ayre/open-data-movement-great-graphic&quot;&gt;http://galecia.com/blogs/lori-ayre/open-data-movement-great-graphic&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Las conferencias de las &lt;a href=&quot;http://triton.exp.dc.uba.ar/datamining/index.php/jornadas/presentaciones-menu&quot;&gt;Octavas Jornadas de Data Mining&lt;/a&gt;&amp;nbsp;nos impulsaron a investigar, explorar varios links y discernir sobre los alcances del mismo. Aquí un resumen:&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;
¿Qué es Open Data?&lt;/span&gt;&lt;/h3&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Podríamos definir Open Data como la &amp;nbsp;&lt;i&gt;publicación sistemática de datos&lt;/i&gt;. Es una filosofía y práctica que &lt;i&gt;propone que determinados datos estén disponibles de forma libre a todo el mundo&lt;/i&gt;, sin restricciones de copyright, patentes u otros mecanismos de control.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Open Data se relaciona con otros movimientos abiertos: &lt;b&gt;open source&lt;/b&gt; (código y tecnología), &lt;b&gt;open governance &lt;/b&gt;(decisiones y recursos) y&lt;b&gt; open innovation&lt;/b&gt; (conocimiento). Estamos hablando de información de gestión, recursos compartidos, transparencia, colaboración y participación.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Surgen varios desafíos, entre ellos el entender a Open Data como un servicio público y &amp;nbsp;entender que esta información es un derecho ciudadano. Sin olvidar las responsabilidades que este nuevo derecho implica.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC2Q3PzT2vop7hDfNF7cs2C2CDf_5hmGWzSMPVs5pNQTfs7oo3-ICLQTbuuxR4qP_8-1EcqaaRuyEuqHZxHV06wJZ6IsHg8IEEnQbExd2s7M46ZP19xP4aarK1nLkCLc8LfHR2bHwu0fx0/s1600/descarga.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Open Data&quot; border=&quot;0&quot; height=&quot;262&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC2Q3PzT2vop7hDfNF7cs2C2CDf_5hmGWzSMPVs5pNQTfs7oo3-ICLQTbuuxR4qP_8-1EcqaaRuyEuqHZxHV06wJZ6IsHg8IEEnQbExd2s7M46ZP19xP4aarK1nLkCLc8LfHR2bHwu0fx0/s320/descarga.jpg&quot; title=&quot;&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;http://www.flickr.com/photos/notbrucelee/5241176871/&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;font-family: inherit;&quot;&gt;Una de las primeras definiciones de open data fue publicada por la &amp;nbsp;Unesco:&amp;nbsp;&lt;a href=&quot;http://www.unesco.org/new/es/communication-and-information/resources/publications-and-communication-materials/publications/full-list/policy-guidelines-for-the-development-and-promotion-of-open-access/&quot;&gt;directrices&lt;/a&gt;&amp;nbsp;para políticas de acceso abierto:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;i&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&quot;Mediante el Acceso Abierto, los investigadores y estudiantes de todo el mundo alcanzan cada vez más acceso al conocimiento, las publicaciones obtienen mayor visibilidad y número de lectores y el impacto potencial de la investigación es fortalecido [..] facilitan las oportunidades para el desarrollo económico y social equitativo, el dialogo inter cultural y tienen el potencial de estimular la innovación.&quot;&lt;/span&gt;&lt;/i&gt;&lt;/blockquote&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;En 2007 el grupo de trabajo denominado &lt;a href=&quot;http://www.opengovdata.org/&quot;&gt;Open Government Working Group reunido en Sebastopol&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;(California, EE.UU.) propuso estos &lt;b&gt;8 principios&lt;/b&gt; para la liberación del acceso a datos gubernamentales, los cuales se han convertido en la base de un estándar de facto.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Así, se denomina liberación del acceso a datos gubernamentales (&lt;i&gt;open government data&lt;/i&gt;) a: &lt;/span&gt;&lt;i&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;la puesta en disponibilidad pública por parte de los estados de datos en forma digital a través de Internet de manera que permita y promueva su análisis y re utilización.&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;El acceso a datos gubernamentales se considera abierto si los datos son puestos a disposición del público cumpliendo con los siguientes principios:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-GYV9V4UzfTKqEnca4FwrwvSpnFoI6iRFSl3CWUXwQXOGPta0gqdARjLi8zZ_VL7W84_CIsIhZymufPA2n_CCxnH1_itjEe9zyADQu4UT8-bbdFmqh4XcGF_9L7EOnjriv8QIAYZO6rw3/s1600/lista.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;206&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-GYV9V4UzfTKqEnca4FwrwvSpnFoI6iRFSl3CWUXwQXOGPta0gqdARjLi8zZ_VL7W84_CIsIhZymufPA2n_CCxnH1_itjEe9zyADQu4UT8-bbdFmqh4XcGF_9L7EOnjriv8QIAYZO6rw3/s640/lista.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Hay comentarios muy lúcidos respecto a la aplicación &#39;real&#39; de estos principios, en el blog de&lt;a href=&quot;http://www.alejandrobarros.com/open-data-por-donde-empezar&quot;&gt; Alejandro Barros.&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;
¿Qué es consumo de datos?&lt;/span&gt;&lt;/h3&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;La apertura de datos no es un fin por sí misma. El consumo de datos sí.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Entendamos que no basta con tener datos disponibles, es necesario poner manos a la obra para que se pueda sacar provecho de los mismos.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;El consumo de &lt;b&gt;Datos Públicos&lt;/b&gt; debería cumplir etapas:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;1. Obtener los datos: implica el uso de datos publicados por distintas organizaciones&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;2. Asegurar el derecho a utilizar los datos: (tema de licencias, permisos)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;3. Procesar los datos: (Analizar, entender, limpiar, relacionar de forma transparente, re producible)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;4. Publicar&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;5. Hacerse cargo de lo realizado, en particular, posibilitar la reproducción y ser responsables de una retro alimentación a las fuentes&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;
Data Journalism&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;De acuerdo con el interesante &lt;a href=&quot;http://datajournalismhandbook.org/&quot;&gt;Data Journalism Handbook&lt;/a&gt;,&amp;nbsp;podríamos decir que es Periodismo a partir de Datos. Ambos términos, &#39;data&#39; y &#39;periodismo&#39; son &amp;nbsp;difíciles de definir.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Para muchos, &#39;data&#39; es una colección de números, a lo sumo reunidos en una hoja de cálculo. Hasta ahora, este tipo de datos fueron los que los periodistas enfrentaron, pero hoy por hoy toda nuestra vida se podría definir con números, unos y ceros. Desde documentos hasta conexiones entre distintos usuarios, por ejemplo.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Qué diferencia al periodismo de datos del periodismo en general? Quizás las nuevas posibilidades que surgen al combinar el olfato por las noticias, con la habilidad para contar buenas historias y la magnitud de la información digital ahora disponible.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Data puede ser la &lt;i&gt;&lt;b&gt;fuente&lt;/b&gt; &lt;/i&gt;del periodismo de datos, puede ser la &lt;i&gt;&lt;b&gt;herramienta&lt;/b&gt; &lt;/i&gt;para contar una historia, o puede ser ambas. Debe ser tomado con el mismo escepticismo con el que se toma toda fuente, y como herramienta requiere tomar conciencia de la forma en que esta puede orientar y sesgar lo que se informa.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Las&lt;b&gt; tecnologías de la información&lt;/b&gt; están cambiando &amp;nbsp;la forma como se publica la información pública. El &lt;b&gt;Periodismo de Datos&lt;/b&gt; es una nueva rama, y tiene un papel importante en la capacitación masiva de lectores que puedan &amp;nbsp;comprender la información publicada.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;En esta tarea es fundamental:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;La recopilación y el asociación de diversas fuentes de datos no relacionados previamente.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;  El procesamiento de los datos que permita sintetizarlos (deductivamente) o generalizarlos (inductivamente) para explicitar conocimientos que no son accesibles directamente.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;  La visualización adecuada que permita que esta información “penetre” en el usuario de una manera física, sensorial y hasta irracional.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Armamos esta lista de portales de datos oficiales y de buenos ejemplos de consumo de datos:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;a href=&quot;http://www.data.gov/&quot;&gt;Estados Unidos&lt;/a&gt; e &lt;a href=&quot;http://data.gov.uk/&quot;&gt;Inglaterra &lt;/a&gt;&amp;nbsp;son buenos ejemplos de publicación de datos como servicio público.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;En Argentina, &lt;a href=&quot;http://datospublicos.org/&quot;&gt;Datos Públicos&lt;/a&gt;, &amp;nbsp;la &lt;a href=&quot;http://www.lanacion.com.ar/data&quot;&gt;sección de datos de La Nación&lt;/a&gt;, y en particular los &lt;a href=&quot;http://blogs.lanacion.com.ar/datafest/&quot;&gt;Data Fest&lt;/a&gt;&amp;nbsp;que congregan diseñadores, periodistas y programadores con el fin de presentar conjuntos de datos interesantes.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Es muy ameno también&amp;nbsp;&lt;a href=&quot;http://chequeado.com/&quot;&gt;Chequeado&lt;/a&gt;, con una ingeniosa presentación de noticias usando datos.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;En España,&amp;nbsp;&lt;a href=&quot;http://datos.gob.es/datos/&quot;&gt;Datos&lt;/a&gt;&amp;nbsp;propone reutilizar la información pública&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;a href=&quot;http://www.data-publica.com/&quot;&gt;Data Publica&lt;/a&gt;&amp;nbsp;en Francia.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Google propone&lt;a href=&quot;http://www.google.com/publicdata/directory&quot;&gt; Public Data&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Hablando de Periodismo, varios de los &amp;nbsp;&lt;a href=&quot;http://datajournalismawards.org/&quot;&gt;premios 2013&lt;/a&gt;&amp;nbsp;corresponden a visualizaciones hechas a partir de datos públicos.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Finalmente, podemos profundizar &amp;nbsp;estos temas, con la ayuda de&amp;nbsp;&lt;a href=&quot;http://datajournalism.stanford.edu/&quot;&gt;Jornalism in the Age of Data&lt;/a&gt;&amp;nbsp;y el &lt;a href=&quot;http://datajournalismhandbook.org/&quot;&gt;Data Journalism Handbook&lt;/a&gt;&amp;nbsp;&amp;nbsp;mencionado previamente.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp;&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2013/12/open-data.html</link><author>noreply@blogger.com (Lucila Santos)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2bOc__gVWekwqSRcJz2qtqS4bGOvjJNTn4zMneGENFBv5sceD-zuoZ8HpnW0kh1Sct648XRf9mcXh449A7TX825dxh22jvz9hfxTF-wqPlqvwkBhHwUZKfc0QvrA30L6DbcJOQQNkIZAP/s72-c/open-data-movement-api-technology-infogfraphic1-600x417.jpg" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-9054211959825041698</guid><pubDate>Mon, 02 Dec 2013 12:47:00 +0000</pubDate><atom:updated>2013-12-02T09:47:38.052-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.Net</category><category domain="http://www.blogger.com/atom/ns#">.Net 4.0</category><category domain="http://www.blogger.com/atom/ns#">C#</category><category domain="http://www.blogger.com/atom/ns#">dynamic object</category><category domain="http://www.blogger.com/atom/ns#">JSON</category><title>De JSON a objeto dinámico C#</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&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/AVvXsEi-zOsC39EVdbvYhB6TkDYMQSdzlTzi0nNBa6YMzhPQaN9ileSo_CXXynBnRTwzBoNBlcFvDj6AwqIPLZAkvkXwfp77J8lR5CiJcmq4pOT-RgWuOI0O5mi47SXUyLqrx91nH6yrDkOruRc/s1600/Untitled.png&quot; imageanchor=&quot;1&quot; style=&quot;display: none; margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-zOsC39EVdbvYhB6TkDYMQSdzlTzi0nNBa6YMzhPQaN9ileSo_CXXynBnRTwzBoNBlcFvDj6AwqIPLZAkvkXwfp77J8lR5CiJcmq4pOT-RgWuOI0O5mi47SXUyLqrx91nH6yrDkOruRc/s1600/Untitled.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
La anterior semana me encontré con el reto de usar un &lt;a href=&quot;http://en.wikipedia.org/wiki/JSON&quot;&gt;JSON&lt;/a&gt;&amp;nbsp;gigante, que tenía alrededor de 22.000 líneas de código, &amp;nbsp;para simplemente ciclar por una de sus colecciones y extraer no más de 5 campos. Me pareció una locura intentar siquiera sumergirme en entender cómo estaba estructurado, qué colecciones tenía, etc.&lt;br /&gt;
&lt;br /&gt;
Googleando bastante, encontré un Nuget que les puede facilitar mucho esta tarea: &lt;a href=&quot;http://dynamicjson.codeplex.com/&quot;&gt;&lt;b&gt;DynamicJson&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;DynamicJson&lt;/b&gt; es un &lt;a href=&quot;http://en.wikipedia.org/wiki/NuGet&quot;&gt;Nuget&lt;/a&gt;, disponible a partir del framework .NET 4.0, que nos va a proporcionar una clase que transforma un JSON en un objeto dinámico con esta simple sintáxis:&lt;br /&gt;
&lt;pre class=&quot;brush:csharp&quot;&gt; 
    var myObj = DynamicJson.Parse(myJSON);
&lt;/pre&gt;
&lt;br /&gt;
Como resultado, obtenemos un objeto iterable que respeta la estructura del JSON con todos sus valores y cuyo contenido es muchisimo más fácil de explorar, pasando de esto:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixav-JA6K3w9TD8ntEeumvnrMspjDjX90neQXho__gpI1sldtK95DuRBwKI_GsUExIfTkwe78lrugozbQ4zk0XiIJSYsVJ0L2TXe6vgznxeCGv37ofdLRaPM39lTXL0UDOxGxhZh8PaX8/s1600/Untitled.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;289&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixav-JA6K3w9TD8ntEeumvnrMspjDjX90neQXho__gpI1sldtK95DuRBwKI_GsUExIfTkwe78lrugozbQ4zk0XiIJSYsVJ0L2TXe6vgznxeCGv37ofdLRaPM39lTXL0UDOxGxhZh8PaX8/s1600/Untitled.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
A esto:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxJiAv0gXvejvLvkEK4PYVZYvPJfzy4vSk84zRuF6HTTNLUNoKdIFuuoN4F4me4Phtn2f4JbmxAIZLoZaUSbTW3sLH2ncm9iaCiyWugxOXVzenuptsfXyNdp-EWDm-UXfSuG3P3nFqoOc/s1600/Untitleda.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;446&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxJiAv0gXvejvLvkEK4PYVZYvPJfzy4vSk84zRuF6HTTNLUNoKdIFuuoN4F4me4Phtn2f4JbmxAIZLoZaUSbTW3sLH2ncm9iaCiyWugxOXVzenuptsfXyNdp-EWDm-UXfSuG3P3nFqoOc/s1600/Untitleda.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Se nota la diferencia?&lt;br /&gt;
&lt;br /&gt;
Este Nuget, además, nos proporciona algunos métodos para verificar existencia de algúna propiedad, eliminar elementos, serializador, deserializador y acceso a sus propiedades por medio de notación C#.&lt;br /&gt;
&lt;br /&gt;
Espero que les sea de utilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2013/12/de-json-objeto-dinamico-c.html</link><author>noreply@blogger.com (Cristhian Duran)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-zOsC39EVdbvYhB6TkDYMQSdzlTzi0nNBa6YMzhPQaN9ileSo_CXXynBnRTwzBoNBlcFvDj6AwqIPLZAkvkXwfp77J8lR5CiJcmq4pOT-RgWuOI0O5mi47SXUyLqrx91nH6yrDkOruRc/s72-c/Untitled.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-1062531859616194712</guid><pubDate>Wed, 27 Nov 2013 17:57:00 +0000</pubDate><atom:updated>2013-12-02T09:43:39.871-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Data Mining</category><category domain="http://www.blogger.com/atom/ns#">Open Data</category><category domain="http://www.blogger.com/atom/ns#">Visual Analytics</category><title>Octavas Jornadas de Data Mining</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;El 26 de octubre pasado tuve la oportunidad de asistir a las&lt;a href=&quot;http://triton.exp.dc.uba.ar/datamining/index.php/jornadas/jornadas&quot;&gt; Jornadas anuales&lt;/a&gt;&amp;nbsp;que organiza la Maestría en Exploración de Datos y Descubrimiento del Conocimiento, en la Facultad de Ciencias Exactas, de la Universidad de Buenos Aires.&lt;/span&gt;&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJU7ishfp7vMcXJsgRGCz2g7BGaypEjmDO7YkFK0rkB39o8jK8yBQIBrRCvqLaMVWoP0frN4vm3W00xqNk-y-o2B9aTFJC5HMfxUby1SuF7E7zo5Zdoo-PGiN1faDVVB971fbCq26PYXQg/s1600/Capture.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;101&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJU7ishfp7vMcXJsgRGCz2g7BGaypEjmDO7YkFK0rkB39o8jK8yBQIBrRCvqLaMVWoP0frN4vm3W00xqNk-y-o2B9aTFJC5HMfxUby1SuF7E7zo5Zdoo-PGiN1faDVVB971fbCq26PYXQg/s400/Capture.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Logo Maestría (UBA)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: inherit; text-align: left;&quot;&gt;El tema principal fue de especial interés, puesto que se enfocaba en &lt;/span&gt;&lt;u style=&quot;font-family: inherit; text-align: left;&quot;&gt;Visualización&lt;/u&gt;&lt;span style=&quot;font-family: inherit; text-align: left;&quot;&gt;, &amp;nbsp; tema que venimos abordando en Tercer Planeta.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Algunas apreciaciones&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Muy buena &amp;nbsp;la presentación de &lt;a href=&quot;http://www.sas.com/software/visual-analytics/overview.html&quot;&gt;Visual Analytics (SAS)&lt;/a&gt;. Mediante esta herramienta es posible representar en forma gráfica grandes cantidades de información. Permite tener una vista general de los datos, aplicar zoom y filtrar, y mostrar detalles a demanda, teniendo en cuenta el &lt;a href=&quot;http://www.infovis-wiki.net/index.php/Visual_Information-Seeking_Mantra&quot;&gt;mantra de visualización de Ben Shneiderman&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;Se relacionó con visualización la conferencia sobre Técnicas de Visualización de Sistemas Complejos en Bio informática, donde se postuló la necesidad de superar la problemática de la cantidad y heterogeneidad de los datos.&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;La presentación de Claudio Delrieux (UNS) destacó las &amp;nbsp;Problemáticas Actuales de la Visualización en Big Data: &amp;nbsp;volumen, velocidad, variedad, verosimilitud y valor (las 5V).&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Finalmente,&amp;nbsp;&lt;/span&gt;Alejandro Baranek presentó sus trabajos en&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;la conferencia “Visualización experimental en 3D”.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;font-family: inherit;&quot;&gt;Otro tema de interés en las jornadas fueron la búsqueda de artículos científicos en la web y &lt;u&gt;Open Data&lt;/u&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;a href=&quot;http://zighed.com/?lang=en&quot;&gt;Djamel Abdelkader Zighed&lt;/a&gt;, &amp;nbsp;invitado especial de la Universidad de Lyon, trató &amp;nbsp;el problema de la complejidad en el proceso de búsqueda de artículos científicos en la web y su posterior análisis entre millones de referencias disponibles. Al respecto señaló que la dinámica de crecimiento de los datos abiertos en Internet, conocida como Open Data, y la ambigüedad existente en los nombres de los autores de los artículos, vuelve imprescindible implementar una metodología en minería de datos. Como ejemplo de ello, Zighed mencionó la herramienta Babel, que cuenta actualmente con interesantes resultados para refinar la información de las bibliotecas digitales.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;La conferencia “Open Data: oportunidades y desafíos para el Estado, la sociedad y la industria”, permitió ubicarnos en la realidad actual del tema, siendo de particular interés los ocho principios de gobierno abierto, declarados por la &lt;a href=&quot;http://www.opengovdata.org/&quot;&gt;UNESCO&lt;/a&gt;. No hay dudas de la oportunidad que se abre a partir de esta área.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp;&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2013/11/octavas-jornadas-de-data-mining.html</link><author>noreply@blogger.com (Lucila Santos)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJU7ishfp7vMcXJsgRGCz2g7BGaypEjmDO7YkFK0rkB39o8jK8yBQIBrRCvqLaMVWoP0frN4vm3W00xqNk-y-o2B9aTFJC5HMfxUby1SuF7E7zo5Zdoo-PGiN1faDVVB971fbCq26PYXQg/s72-c/Capture.PNG" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-8201704258074150378</guid><pubDate>Tue, 19 Nov 2013 16:41:00 +0000</pubDate><atom:updated>2013-11-19T13:41:44.073-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Capital Humano</category><category domain="http://www.blogger.com/atom/ns#">CMS</category><category domain="http://www.blogger.com/atom/ns#">Content Management System</category><category domain="http://www.blogger.com/atom/ns#">RRHH</category><category domain="http://www.blogger.com/atom/ns#">TI</category><category domain="http://www.blogger.com/atom/ns#">TIC</category><title>Factores a considerar en la elección de un CMS</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Como hemos mencionado en otras oportunidades, llevamos una larga experiencia trabajando con los departamentos de RRHH, Comunicación y Marketing de empresas nacionales y en el exterior. Y a medida que fue pasando el tiempo hemos visto que la necesidad de organizar, centralizar y ordenar lo que se quiere exponer, tanto en el área interna como en el aspecto público, creció enormemente y a gran velocidad.&lt;br /&gt;
&lt;br /&gt;
Evidentemente la tecnología ha acompañado y fomentado este crecimiento ganando una gran incidencia en los sectores antes mencionados y ayudando con muy variadas herramientas (ver artículo&amp;nbsp;&lt;a href=&quot;http://blog.tercerplaneta.com/2013/09/incidencia-de-las-tic-en-la-gestion-del.html&quot; target=&quot;_blank&quot;&gt;Incidencia de las TIC en la gestión del Capital Humano&lt;/a&gt;). Un ejemplo de las&amp;nbsp;mismas son los &lt;b&gt;CMS (Content Management System&lt;/b&gt;) es decir, &lt;i&gt;sistemas para la administración de contenidos de sitios web, internos o públicos&lt;/i&gt;, que han tenido un gran crecimiento desde hace varios años.&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: right; margin-left: 1em; text-align: right;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdKXh4wmNzw6YcFy19PPmqJW5ysPihZwtSmT91nA3FFIuM-Bc6AdbLe3Y8lMEIQ7N8CROTKO7xM_zUeE9lIebPQnZebGSg4GYvz5KV37_eViCzWlQAnFmFi3I85FKmYL_Tr3U-7b6TILY/s1600/Blog_1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdKXh4wmNzw6YcFy19PPmqJW5ysPihZwtSmT91nA3FFIuM-Bc6AdbLe3Y8lMEIQ7N8CROTKO7xM_zUeE9lIebPQnZebGSg4GYvz5KV37_eViCzWlQAnFmFi3I85FKmYL_Tr3U-7b6TILY/s320/Blog_1.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Imagen: sictanet.org&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
Si bien existen en el mercado CMS de muy variadas características y precios, en determinado tipo de empresas hemos comprobado que las mejores opciones se encuentran entre CMS pagos (hay compañías que tienen una larga trayectoria en productos muy sólidos) o CMS hechos a medida. &amp;nbsp;De hecho, venimos acompañando a organizaciones que mantienen una combinación de estos dos tipos de herramientas para su sitio público y para sus intranets.&lt;br /&gt;
&lt;br /&gt;
Esto no quita, por supuesto, mencionar que existen varias opciones de CMS gratuitos, muchas muy buenas, pero más apropiados para objetivos y empresas con características diferentes a las que nos ocupan en este artículo.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Qué es un CMS?&lt;/h3&gt;
A grandes rasgos un CMS consta de 2 partes:&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Administración de contenidos&lt;/b&gt;: o sea, una aplicación a través de la cual los editores o encargados de contenidos ingresan las notas, artículos, archivos, etc. que quieren mostrar en el sitio, definen en qué categoría ubicarlos, en qué &quot;zona&quot; dentro del diseño definido, cuándo publicarlos, etc.. Un buen CMS debe incluir también un &lt;i&gt;sistema de permisos confiable&lt;/i&gt;, permitir la modificación de ciertas configuraciones como así también la asignación de &lt;i&gt;distintos roles&lt;/i&gt; a diferentes usuarios.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Presentación de contenidos: &lt;/b&gt;que es la aplicación encargada de mostrar los contenidos programados por los usuarios correspondientes desde la aplicación anterior para las distintas vistas, idiomas y dentro del diseño previamente definido.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Factores a considerar&lt;/h3&gt;
Qué puntos se deben evaluar cuando se quiere cambiar o incorporar por primera vez un CMS?&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Volatilidad&lt;/b&gt; de contenidos: Si bien son varios los factores que hacen a una compañía decidir invertir en un CMS, uno de los que más influye es la &lt;b&gt;gran volatilidad de los contenidos&lt;/b&gt; a comunicar. Esto aplica tanto a intranets como a sitios públicos donde se necesita administrar de forma autónoma, rápida y verstátil &amp;nbsp;los diferentes tipos de información (textos, imágenes, videos, sonido, archivos, etc.)).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Tamaño de organización y dispersión geográfica&lt;/b&gt;: Otro de los puntos a considerar es el tamaño de la organización y su dispersión geográfica. Para el caso de empresas que reparten sus sedes entre varios países e idiomas, el CMS a elegir deberá contar con determinadas características que, seguramente, no serán requeridos por otro tipo de empresas.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Variedad de datos&lt;/b&gt; y funcionalidades: Por otro lado, es necesario considerar el tipo y variedad de datos que la organización quiere manejar a través del sitio para poder seleccionar un CMS que sea capaz de administrar la complejidad de contenidos que la empresa requiere.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Seguridad:&lt;/b&gt; Por supuesto, la seguridad de la información es otro de los puntos críticos y prioritarios.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Escalabilidad: &lt;/b&gt;Es importante también visualizar el rumbo que tomarán los portales y pensar que la herramienta que se elija tenga una flexibilidad tal que permita escalabilidad en cuanto a diseño, contenidos y funcionalidades en general.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Integración:&lt;/b&gt; Otro tema a tener en cuenta es que el CMS elegido pueda integrarse fácilmente con otras aplicaciones utilizadas en la organización para intercambio de información.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Curva de aprendizaje:&lt;/b&gt; Un punto fundamental es que la curva de aprendizaje de utilización de la herramienta no sea muy alta. Una de las características primordiales es que el CMS elegido sea de fácil uso para que los responsables puedan utilizarlo sin dificultad, sin riesgo de cometer errores y sin oponer resistencia al mismo.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Soporte:&lt;/b&gt; algo fundamental a considerar es que el lenguaje utilizado para el desarrollo de una herramienta como esta sea ampliamente conocida, sólida y confiable.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfSsgtgmIwhJBhDKxlIb58pWd-fj2d6bHie0ev1IV2KuOTijY7b-pSZ9Gtpc0xt5Lz7k50hnN73Hup3-G7dJKtTCSN7QGfIxFdYlvozrA-LMq1nVEstTfxXgc_2vX9enKUNevy4WCg8GU/s1600/gestionDePymes.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;228&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfSsgtgmIwhJBhDKxlIb58pWd-fj2d6bHie0ev1IV2KuOTijY7b-pSZ9Gtpc0xt5Lz7k50hnN73Hup3-G7dJKtTCSN7QGfIxFdYlvozrA-LMq1nVEstTfxXgc_2vX9enKUNevy4WCg8GU/s320/gestionDePymes.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Imagen: gestiondepymes&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
Para el caso de CMS más complejos, que permitan cubrir necesidades avanzadas o desde los cuales se deban administrar funcionalidades más sofisticadas, es necesario tener en cuenta que se debe contar con personal capacitado para la administración del mismo.&lt;br /&gt;
Para firmas de cierto tamaño y caracteristicas, obviamente será necesario disponer de un equipo interno o externo que se encargue del mantenimiento de determinados componentes de la herramienta, &lt;i&gt;su integración con otras aplicaciones de la empresa y el control de la instalación e infraestructura de la misma.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Si bien puede no resultar simple encontrar un único producto que satisfaga 100% estas y otras necesidades, hay que tener en cuenta que las &lt;b&gt;herramientas pagas&lt;/b&gt; suelen tener una enorme &lt;i&gt;variedad de posibilidades, soporte técnico de muy buena calidad y comunidades que ayudan a difundir y optimizar el uso del producto&lt;/i&gt;. En estos casos la evaluación crucial está en determinar el &lt;b&gt;retorno de inversión&lt;/b&gt; que se obtendrá versus el pago de licencias por la compra del producto, si ese fuera el caso.&lt;br /&gt;
&lt;br /&gt;
Pensar en un CMS&lt;b&gt; a medida&lt;/b&gt; nos permite contar con la posibilidad de adaptar las funcionalidades del mismo a las &lt;i&gt;necesidades exactas de la organización&lt;/i&gt;, &lt;i&gt;escalabilidad en la medida que se necesite y personalización de determinadas funcionalidades cuando sean requeridas.&lt;/i&gt; Esta opción no tiene por qué necesariamente estar siempre asociada a la idea de &quot;quedar atado&quot; a un solo proveedor, pago de abonos interminables o riesgo de no tener soporte. Una herramienta estabilizada y bien construida evita tener que lidiar con estos problemas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En la experiencia que tenemos vemos que una buena combinación de &lt;b&gt;usuarios expertos, usuarios de funcionalidades más básicas y un equipo de desarrollo y mantenimiento pequeño&lt;/b&gt; - interno o externo a la organización - da excelentes resultados en cuanto a &lt;i&gt;velocidad de respuesta, calidad y eficiencia&lt;/i&gt; en el uso de este tipo de productos.&lt;br /&gt;
&lt;br /&gt;
&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp;&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2013/11/factores-considerar-en-la-eleccion-de.html</link><author>noreply@blogger.com (Andrea Morales)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdKXh4wmNzw6YcFy19PPmqJW5ysPihZwtSmT91nA3FFIuM-Bc6AdbLe3Y8lMEIQ7N8CROTKO7xM_zUeE9lIebPQnZebGSg4GYvz5KV37_eViCzWlQAnFmFi3I85FKmYL_Tr3U-7b6TILY/s72-c/Blog_1.jpg" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-6357239507127689155</guid><pubDate>Tue, 05 Nov 2013 14:02:00 +0000</pubDate><atom:updated>2013-11-05T11:02:02.800-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Agile</category><category domain="http://www.blogger.com/atom/ns#">Impedimentos</category><category domain="http://www.blogger.com/atom/ns#">Impediments</category><category domain="http://www.blogger.com/atom/ns#">Scrum</category><title>Scrum - Impedimentos</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Muchas veces nos ha pasado en nuestro trabajo encontrarnos con eventos o situaciones imprevistas que nos obligan a buscar soluciones creativas para continuar según lo planificado o que nos llevan a modificar directamente la planificación hecha, con el cambio de humor que esto implica dentro del equipo. Este tipo de situaciones o eventos son lo que llamamos &lt;b&gt;impedimentos&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cuando recién empezamos con Scrum nos resultaba muy difícil comprender qué hacer con estas cosas y cómo tratarlas. Algo que nos sirvió y que me parece fundamental es entender claramente de qué se trata y cómo identificarlos. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBEJh7SwtwVZkl4y4pviEEXmnvu-igkBJrnPr5ZbkhUvHx2GMGIY2eVRR2g9yWlQ-3egU3SBcvvPFkKhk-OF2EmrzQVd_FEh6DsgAbrls07eyIFmYNeZakmJIgJHbFh9Q9XkDwjeIiIjg/s1600/MP900442430.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Impedimentos Scrum&quot; border=&quot;0&quot; height=&quot;212&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBEJh7SwtwVZkl4y4pviEEXmnvu-igkBJrnPr5ZbkhUvHx2GMGIY2eVRR2g9yWlQ-3egU3SBcvvPFkKhk-OF2EmrzQVd_FEh6DsgAbrls07eyIFmYNeZakmJIgJHbFh9Q9XkDwjeIiIjg/s320/MP900442430.JPG&quot; title=&quot;&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Entonces, qué es realmente un Impedimento? De las muchas definiciones que al respecto podemos encontrar, la que más me gusta es la que ve a los impedimentos como &lt;i&gt;cualquier obstáculo que bloquea o demora el progreso &lt;b&gt;del equipo&lt;/b&gt;&lt;/i&gt;. Es decir, cualquier situación que impide a una o más personas del equipo continuar con su tarea, con su correlativo impacto en el progreso del sprint en el que estén trabajando y/o en el backlog general.&lt;br /&gt;
&lt;br /&gt;
Y algo que nos ayudó mucho a &quot;aceptarlos como tales&quot; fue comprender que no hay team que no se encuentre con trabas de cualquier tipo que impacten en los Sprint. Que todos los miembros del equipo entiendan esto suele ser &quot;liberador&quot; ....&lt;br /&gt;
&lt;br /&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;
Cómo detectarlos&lt;/h3&gt;
Estas trabas o imprevistos surgen durante el trabajo diario y DEBEN ser comunicados al resto del equipo, en general durante las&lt;i&gt; reuniones diarias&lt;/i&gt;. Pero, dado que uno de los roles más importantes del Scrum Master (SM) es el de eliminar los problemas para lograr la mayor eficiencia del team, es esperable también que sea él quien tenga la capacidad de estar muy atento a &lt;b&gt;buscarlos y detectarlos&lt;/b&gt;.&lt;br /&gt;
Por otro lado existe una contrapartida a este rol del SM y es la responsabilidad que tiene el equipo de comunicarle, en cualquier momento, la aparición de toda situación que impida o retrase una tarea , para que ese problema pueda ser tratado adecuadamente.&lt;br /&gt;
&lt;br /&gt;
Y, por supuesto, las &lt;i&gt;retrospectivas&lt;/i&gt; son el mejor momento para exponer, identificar y categorizar todas las &quot;molestias&quot; surgidas durante el sprint.&lt;br /&gt;
&lt;br /&gt;
En resumen, tanto las &lt;i&gt;capacidades del SM como una fluida y abierta comunicación&lt;/i&gt; dentro del team son fundamentales para la detección, reconocimiento, tratamiento y resolución de los impedimentos.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Tipos de impedimentos&lt;/h3&gt;
Una posible &lt;i&gt;clasificación de los impedimentos&lt;/i&gt; se basa en el &lt;b&gt;tratamiento&lt;/b&gt; que necesiten:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;i&gt;Impedimentos del equipo&lt;/i&gt;, que son los típicos problemas que pueden ser resueltos dentro del team, ya sea tomando medidas internas para evitar que se repitan, estableciendo cambios en la forma de trabajo, definiendo el uso de nuevas herramientas, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;i&gt;Impedimentos de la organización&lt;/i&gt;, que son problemas que dependen de otros para ser resueltos como temas de infraestructura, demoras en los entregables de otros equipos, entre otros.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
Ejemplos típicos de impedimentos:&lt;/h4&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Enfermedad de algún miembro del equipo&lt;/li&gt;
&lt;li&gt;Operaciones de mantenimiento de hardware o software corporativo que afecten la continuidad de las tareas planificadas&lt;/li&gt;
&lt;li&gt;Interacción con proveedores que no cumplen con los plazos o los servicios comprometidos. Este es, tal vez, uno de los impedimentos más preocupantes dado el poco margen de intervención que puede llegar a tener el SM para solucionarlo&lt;/li&gt;
&lt;li&gt;Ausencias o poco compromiso del Product Owner que demora la toma de decisiones o aprobaciones. Particularme este caso lo hemos sufrido en algunos de nuestros proyectos y representa&amp;nbsp; realmente un gran problema, la clave está en tratar de mantener un muy buen diálogo con el PO y hacerle notar la importancia de su presencia durante todo el proceso y las consecuencias que puede provocar su no involucramiento&lt;/li&gt;
&lt;li&gt;Un backlog mal definido o con requerimientos que no estén listos o bien detallados para iniciar la planificación del sprint&lt;/li&gt;
&lt;li&gt;Reuniones largas, innecesarias o que involucren a miembros del equipo que podrían no estar, restándoles tiempo para avanzar según lo planificado&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Cómo tratarlos&lt;/h3&gt;
La lista de puntos a seguir con los impedimentos debería recorrer los siguientes pasos:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBvAdU5aTPJgP0cwTMsD43NEbNRlooh13I_AE5AYFCO2ox1AOD4Qqazjn31p_Oity5K0pQYijTN_Ix8skwZ-gdANcRGLON0o6xC23dlEdscPuWqF3lNxCWNJTkmPVOsH_e0OrH1GfpHw0/s1600/impedimento.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img alt=&quot;Impedimentos Scrum&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBvAdU5aTPJgP0cwTMsD43NEbNRlooh13I_AE5AYFCO2ox1AOD4Qqazjn31p_Oity5K0pQYijTN_Ix8skwZ-gdANcRGLON0o6xC23dlEdscPuWqF3lNxCWNJTkmPVOsH_e0OrH1GfpHw0/s1600/impedimento.jpg&quot; title=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Registrarlos&lt;/li&gt;
&lt;li&gt;Piorizarlos&lt;/li&gt;
&lt;li&gt;Hacerlos públicos&lt;/li&gt;
&lt;li&gt;Actuar sobre su resolución&lt;/li&gt;
&lt;li&gt;Informar de su resolución&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Muchos de los impedimentos que pueden encontrarse en las tareas diarias suelen ser pequeños y de fácil y rápida resolución &amp;nbsp;(pedir ayuda a otro miembro del team, un mail, una llamada telefónica al equipo de operaciones, etc.). Como muchos aconsejan, estos ítems pueden ser incluídos en el backlog y tratados dentro del mismo.&amp;nbsp; Para el resto de los impedimentos se aconseja llevar un &lt;i&gt;Backlog de Impedimentos.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Yendo en el mismo sentido, la &lt;a href=&quot;http://www.scrumalliance.org/&quot; target=&quot;_blank&quot;&gt;Scrum Alliance&lt;/a&gt; nos da 5 tips para manejar la resolución de Impedimentos:&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Hacerlos visibles, dejarlos escritos y a la vista de todo el equipo, cerca de la pizarra de tareas. Deben estar especialmente visibles durante la reunión diaria para que el SM pueda contar al equipo cuáles se fueron removiendo y junto con el equipo re-categorizar el resto.&lt;/li&gt;
&lt;li&gt;Buscarlos, indagar, sobre todo en equipos que recién empiezan con la práctica el SM debe encargarse de detectarlos y sacarlos a la luz (por ejemplo, cuando las tareas quedan inmóviles en la pizarra por mucho tiempo, cuando hay más tareas &quot;En Progreso&quot; que desarolladores). Preguntar siempre qué haría que las tareas se resuelvan lo más rápido posible.&lt;/li&gt;
&lt;li&gt;Limitar el número de Impedimentos, ya sea &lt;i&gt;por tiempo &lt;/i&gt;o&lt;i&gt; por cantidad&lt;/i&gt;. &lt;b&gt;Por tiempo&lt;/b&gt; implica establecer un máximo de horas que se permite a un impedimento permanecer en la lista, por ejemplo &quot;un impedimento puede existir por un máximo de 24 hs&quot;, pasado ese tiempo tiene que ser resuelto o enviado al próximo sprint. &lt;b&gt;Por cantidad&lt;/b&gt; implica establecer un máximo de impedimentos abiertos por sprint para ser resueltos. El equipo decidirá qué hacer en el caso en que surja alguno nuevo en el medio. En el punto siguiente hacemos una salvedad a este tip.&lt;/li&gt;
&lt;li&gt;Diferenciar entre &lt;i&gt;impedimentos globales y locales&lt;/i&gt;. Esta categorización es importante para entender cuáles son los impedimentos que disminuyen la velocidad del equipo (&lt;i&gt;globales&lt;/i&gt;) y cuáles los que bloquean la continuación de alguna tarea (&lt;i&gt;locales&lt;/i&gt; &lt;i&gt;o blockers&lt;/i&gt;). Esto nos remite al punto 3: ese tip sirve para los impedimentos de tipo &lt;i&gt;global&lt;/i&gt;. A los impedimentos locales, que bloquean una o más tareas, la Scrum Alliance nos aconseja agregarlos a la pizarra del sprint con algo que los diferencie visualmente del resto de las historias para que sean enfrentados cuanto antes.&lt;/li&gt;
&lt;li&gt;Ayudar al equipo a resolverlos. En la medida que se pueda, es aconsejable encontrar un equilibrio entre los impedimentos que toma para solucionar el SM y aquellos que puede solucionar el team por sí solo.Si bien una de las capacidades del SM es la de &quot;limpiar&quot; los impedimentos, es bueno dejar que el equipo pueda hacerse cargo de algunos de ellos.&lt;/li&gt;
&lt;/ol&gt;
&amp;nbsp; &lt;br /&gt;
Para finalizar, me quedo con una una frase que encontré respecto de este tema y me pareció muy buena: &quot;No puedes eliminar los impedimentos pero tampoco deberías ignorarlos, o peor aún, aceptarlos como algo normal&quot;. (de &lt;a href=&quot;http://www.gettingagile.com/2011/03/29/impediment-management-and-the-agile-triangle/&quot;&gt;Impediments Management and The Agile Triangle &lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Más para leer:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://lecciones-aprendidas.blogspot.com.ar/2013/08/SM-identificando-impedimentos.html&quot; target=&quot;_blank&quot;&gt;Identificando Impedimentos&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.gestiondeproyectosit.es/blogit/2011/11/impedimentos-en-scrum/&quot; target=&quot;_blank&quot;&gt;Impedimentos en Scrum&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.scrumalliance.org/community/articles/2009/april/top-ten-organizational-impediments&quot; target=&quot;_blank&quot;&gt;Top ten organizational impediments&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;


&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2013/11/scrum-impedimentos.html</link><author>noreply@blogger.com (Andrea Morales)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBEJh7SwtwVZkl4y4pviEEXmnvu-igkBJrnPr5ZbkhUvHx2GMGIY2eVRR2g9yWlQ-3egU3SBcvvPFkKhk-OF2EmrzQVd_FEh6DsgAbrls07eyIFmYNeZakmJIgJHbFh9Q9XkDwjeIiIjg/s72-c/MP900442430.JPG" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-1018723616361884709</guid><pubDate>Wed, 23 Oct 2013 14:24:00 +0000</pubDate><atom:updated>2013-10-23T13:04:48.568-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">CTools</category><category domain="http://www.blogger.com/atom/ns#">Pentaho Community</category><category domain="http://www.blogger.com/atom/ns#">pv.colors</category><category domain="http://www.blogger.com/atom/ns#">Sparkline</category><title>Probando Pentaho IV: sparkline, dataBar y paleta de colores.</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/AVvXsEj1CP6suUUhCyeHmotJ7-R7sHLBl2wBcOXuk0bm0p6OvuAfODMtcqYWmfP4Da_FqYNGigDv_SFP_-dA5CPNFFDa-TgMeR5Nzcd0F7QcnUnXPJjSBdQXpA3jSX5f0hE3AfziFY5WX-LOefhx/s1600/InternetSales.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&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/AVvXsEh4kNeExGQcK-kCA8V8yXNvoS9-owLV-ggxpgHSNpyu2Sbq6knQgPI1Y3CjlY9QvIl4a6ePMAxfNSS9ACtomeHzQbApZT0ZIwLtoDG_fBVovrITdTtWhfiEhZ1Il2iHGc_INKyIW7BXuumz/s1600/InternetSalesZoom.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;524&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4kNeExGQcK-kCA8V8yXNvoS9-owLV-ggxpgHSNpyu2Sbq6knQgPI1Y3CjlY9QvIl4a6ePMAxfNSS9ACtomeHzQbApZT0ZIwLtoDG_fBVovrITdTtWhfiEhZ1Il2iHGc_INKyIW7BXuumz/s640/InternetSalesZoom.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&amp;nbsp;Con este tablero de control queremos mostrar cómo probamos algunos componentes de Pentaho y CTools.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;El gráfico muestra la variación de las ventas de Internet durante un período, por país.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Permite comparar el porcentaje de ventas por año y muestra&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;tendencias por medio de sparklines.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;La base de datos es AdventureWorksDW, de&amp;nbsp;&lt;a href=&quot;http://msftdbprodsamples.codeplex.com/&quot;&gt;Microsoft SQL Server Database Product Samples&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h3&gt;
Internet Sales&lt;/h3&gt;
Es una línea de tiempo en años con el total de ventas por país.&lt;br /&gt;
Componente usado:&amp;nbsp;&lt;a href=&quot;http://www.webdetails.pt/ctools/ccc.html&quot;&gt;CCC Line Chart&lt;/a&gt;.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&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/AVvXsEi2ihi-a6Qli8zsHQ_N47eYlXM_0Y6oPyqq7NdnmaumIYIV_PrdwD_ApIa2pobE02HKLRCZLAq8gMFD3eurfrOcNATsGMOnzFgD8bwCNGYec2e0XvOGwctyH4RkfteCHgXXRwduCNPYE9CQ/s1600/LineaTiempo.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;170&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2ihi-a6Qli8zsHQ_N47eYlXM_0Y6oPyqq7NdnmaumIYIV_PrdwD_ApIa2pobE02HKLRCZLAq8gMFD3eurfrOcNATsGMOnzFgD8bwCNGYec2e0XvOGwctyH4RkfteCHgXXRwduCNPYE9CQ/s400/LineaTiempo.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Propiedades relevantes del componente:&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Data Source: &amp;nbsp;ventas por territorio y por año.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;pre class=&quot;brush:sql&quot;&gt; 
SELECT   T.CalendarYear,st.SalesTerritorycountry ,SUM(S.SalesAmount) TotalSalesAmount 
FROM dbo.FactInternetSales S
INNER JOIN DimTime T ON S.OrderDateKey = T.TimeKey
INNER JOIN DimSalesTerritory st on S.SalesTerritoryKey = st.SalesTerritoryKey
GROUP BY T.CalendarYear,st.SalesTerritoryCountry
ORDER BY T.CalendarYear
&lt;/pre&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;CrossTabMode = FALSE.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;SeriesInRows = TRUE.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;PostFetch: definimos algunos extensionPoints y el formato de las marcas de cantidades.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;brush:sql&quot;&gt; 
function f(cdaData) {
    var newLine = this.chartDefinition;
    newLine.extensionPoints= [
        [&quot;dot_fillStyle&quot;,&quot;#ffffff&quot;],
        [&quot;dot_shapeRadius&quot;,&quot;3&quot;],
        [&quot;dot_lineWidth&quot;,&quot;2&quot;],
        [&quot;line_lineWidth&quot;,&quot;2&quot;],
   
        [&quot;legendLabel_font&quot;,&quot;10px sans-serif&quot;], 
        [&quot;legend_font&quot;,&quot;12px sans-serif&quot;],
        [&quot;xAxisLabel_font&quot;,&quot;12px sans-serif&quot;],
        [&quot;yAxisLabel_font&quot;,&quot;10px sans-serif&quot;],
        [&quot;xAxisLabel_text&quot;,function(g){return (g.vars.tick)}]];
    newLine.yAxisTickFormatter= function(value){
            return (value / 1000).toFixed() + &quot; K&quot;; };
    newLine.showYScale= true;
    newLine.yAxisPosition= &quot;left&quot;;
    newLine.colors=colorFill;
    newLine.xAxisFullGrid= true 
    newLine.yAxisFullGrid= true 
    newLine.xAxisEndLine= true 
    newLine.yAxisEndLine= true  
 this.chartDefinition= newLine;
}
&lt;/pre&gt;
&lt;br /&gt;
&lt;h3&gt;
Year Percentage&lt;/h3&gt;
&lt;h4&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Es &amp;nbsp;una tabla con las ventas por región y por año, con porcentaje correspondiente sobre el total para poder&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;comparar la proporción de aumento en las ventas de un año a otro. El componente de Ctools usado es una tabla, con una columna de tipo &#39;dataBar&#39;.&lt;/span&gt;&lt;/span&gt;&lt;/h4&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/AVvXsEjCyrvInPEtnJt4sHHWHQ83vLUqZyVlkRx7uLMFdIFlMBaN01TfQHKA2pXdmzgMy211IlM8LT41YOtRvREk4osRUOEgdjW-vQtvsriaDrtYIHbOC_7sDYcxaAs82D8bapoB8nexJqqbyuz5/s1600/YearPercentage.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;258&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCyrvInPEtnJt4sHHWHQ83vLUqZyVlkRx7uLMFdIFlMBaN01TfQHKA2pXdmzgMy211IlM8LT41YOtRvREk4osRUOEgdjW-vQtvsriaDrtYIHbOC_7sDYcxaAs82D8bapoB8nexJqqbyuz5/s400/YearPercentage.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
Propiedades relevantes del componente:&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;DataSource: busca el total de ventas por año y calcula el porcentaje que representa cada año respecto al periodo en estudio.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:sql&quot;&gt; 
WITH TotalSales ( SumTotal)
AS(
SELECT  SUM(S.SalesAmount)
FROM dbo.FactInternetSales S
)
SELECT T.CalendarYear,SUM(S.SalesAmount) SalesAmount,
100 * SUM(S.SalesAmount)/ MAX(TotalSales.SumTotal)  SalesAmountPercentage,
100 * SUM(S.SalesAmount)/ MAX(TotalSales.SumTotal)  SalesAmountPercentage2
FROM dbo.FactInternetSales S
INNER JOIN DimTime T ON S.OrderDateKey = T.TimeKey
CROSS JOIN TotalSales
GROUP BY T.CalendarYear
ORDER BY T.CalendarYear
&lt;/pre&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;ColumnTypes: dataBar para SalesAmountPercentage&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h3&gt;
Country Trend&lt;/h3&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: inherit; font-weight: normal;&quot;&gt;Esta tabla muestra la tendencia de variación de las ventas en un periodo de 4 años, usando &lt;a href=&quot;http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0001OR&quot;&gt;sparklines&lt;/a&gt;.&lt;/span&gt;&lt;/h4&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;times new roman&#39;, times, serif;&quot;&gt;A sparkline is a small intense, simple, word-sized graphic with typographic resolution. Sparklines mean that graphics are no longer cartoonish special occasions with captions and boxes, but rather sparkline graphic can be everywhere a word or number can be: embedded in a sentence, table, headline, map, spreadsheet, graphic&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;La columna correspondiente al sparkline debe ser una cadena separada por comas&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;con los valores que formarán la tendencia.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;DataSource: ventas por territorio y por año, totales por año en columnas y columna resumen de totales para conformar el sparkline.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;pre class=&quot;brush:sql&quot;&gt; 
 SELECT  SalesTerritoryCountry as Country ,
    CAST([2001]/1000 as CHAR(10)) + &#39;,&#39;+CAST([2002]/1000 as CHAR(10))+ &#39;,&#39;+CAST([2003]/1000 as CHAR(10))+ &#39;,&#39;+CAST([2004]/1000 as CHAR(10)) as Trend
,[2001] , [2002]  ,[2003] ,[2004] 
FROM 
(SELECT st.SalesTerritoryCountry, CalendarYear,cast(S.SalesAmount  as int) as salesamount
FROM dbo.FactInternetSales S
INNER JOIN DimTime T ON S.OrderDateKey = T.TimeKey
INNER JOIN DimSalesTerritory st on S.SalesTerritoryKey = st.SalesTerritoryKey) p
PIVOT
(
sum(SalesAmount)   
    for CalendarYear in 
([2001] , [2002]  ,[2003] ,[2004]     )) as pvt order by SalesTerritoryCountry
&lt;/pre&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Los Colores&lt;/span&gt;&lt;/h3&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
Se intenta unificar e integrar los colores de los componentes,&amp;nbsp;&lt;span style=&quot;font-family: inherit;&quot;&gt;procurando usar&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;un mismo color por&amp;nbsp;&lt;/span&gt;país&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;para los tres casos&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Fue necesario definir una paleta de colores:&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;una lista de códigos rgb preseleccionados.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Buscamos en Protovis, que provee varias paletas de colores&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://protovis/&quot; style=&quot;font-family: inherit;&quot;&gt;Colores Protovis&lt;/a&gt;.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
En&amp;nbsp;&amp;nbsp;un &#39;resource&#39; de tipo javascript asociado al dashboard se definieron las listas con colores ( para aplicar en los componentes y tablas) y un color general (para los encabezados y marcos de tablas). &amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
rgbPasaHex se encarga de la conversión a RGB.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;pre class=&quot;brush:javascript&quot;&gt; 
colorFill=pv.Colors.category19();
colores= colorFill.range();
var colorBase=rgbPasaHex(colores[9].color);
&lt;/pre&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&amp;nbsp;&lt;u&gt;Colores en tabla Year Percentaje&lt;/u&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;En la propiedad PreExecution de la tabla, seteamos &#39;AddInOptions&#39; para configurar el color del DataBar usando &#39;colorBase&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre class=&quot;brush:javascript&quot;&gt;   this.setAddInOptions(&quot;colType&quot;,&quot;dataBar&quot;, function(val)  
    {
            return { startColor: colorBase, endColor: colorBase}
       
    });
&lt;/pre&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;u&gt;Colores en la CCC Line Chart &amp;nbsp;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Asignamos la paleta de colores en la propiedad &amp;nbsp;&lt;/span&gt;&lt;b style=&quot;font-family: inherit;&quot;&gt;postFetch&lt;/b&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt; &amp;nbsp;de CCC Line Chart ( que mostramos previamente)&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;brush:javascript&quot;&gt; 
   
    newLine.colors=colorFill;
    this.chartDefinition= newLine;
   
&lt;/pre&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;u&gt;Colores en la tabla Country Trend:&lt;/u&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&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/AVvXsEgHYRcUZCHSYh4UlyNrtFuMHuiz679LL34_f2A2lQCEir4O-3eKHYHWPYevkyNXH84YMo2K8JakYJGY_ZLIb2CrMVsXVNoaVLUgZL-nixMUU5xC4Vt_cGmt33jKjm8DCmlabO8AyxqLQCCK/s1600/InternetSalesZoomSpark.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;175&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHYRcUZCHSYh4UlyNrtFuMHuiz679LL34_f2A2lQCEir4O-3eKHYHWPYevkyNXH84YMo2K8JakYJGY_ZLIb2CrMVsXVNoaVLUgZL-nixMUU5xC4Vt_cGmt33jKjm8DCmlabO8AyxqLQCCK/s400/InternetSalesZoomSpark.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;el nombre de cada país, tiene el mismo color que el sparkline y que la linea de tiempo&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;correspondiente. &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Para modificar los labels, se define un span con el color correspondiente en hexa.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Para los sparklines, se define el &#39;strokeStyle&#39; a medida que se construye la tabla.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre class=&quot;brush:javascript&quot;&gt; 
   function f() {
    var idx=-2;
  
    this.setAddInOptions(&quot;colType&quot;,&quot;formattedText&quot;,   
         {textFormat: function(v, st) { 
                 idx = idx+1;
          var colorHexa = rgbPasaHex(colorFill(idx).color);     
             return &quot;&lt;span style=&quot;color: &amp;quot;+colorHexa+&amp;quot;; text-align: right;&quot;&gt;&quot;+v.toUpperCase()+&quot;&lt;/span&gt; }
      });

   var idj = -2;
     this.setAddInOptions(&quot;colType&quot;,&quot;pvSparkline&quot;,function(val) {
        idj=idj+1;
        return {lineWidth:2,strokeStyle:colorFill(idj).color}});

   }
&lt;/pre&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit; font-weight: normal;&quot;&gt;&lt;u&gt;Colores en los encabezados y en los bordes de las tablas&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit; font-weight: normal;&quot;&gt;Para manipular los colores de las tablas y los distintos elementos del documento, se usaron variables.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;En este caso, la variable global &#39;colorBase&#39;. La asignación de color debe estar en el&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;postExecution de cada una de las tablas.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;brush:javascript&quot;&gt; 
function p(){
    var color=colorBase.toString();
    $(&quot;th&quot;).css( &#39;color&#39; ,  color );
    $(&quot;td&quot;).css( &#39;border&#39; ,  &#39;1px dotted &#39;+color );
    $(&quot;.tit&quot;).css(&quot;color&quot;,color); // definida una clase tit para los encabezados
  
}
&lt;/pre&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/AVvXsEgPGSs1qC-Uj06RF9urwhy3uQ5rIOzrOyfdlK9CTg4mVxWnYHBBAF4qHZ_w7esRAyBxhi7TmcYRMB3sAJcGDU5VLDXxZwyPdIx6CgzEz-iDmkzxcUFEEjBhLjmWVeNEo4hcbWmOeRcKSNTk/s1600/extensionpoints.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
Artículos relacionados:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=3732630541286744699#editor/target=post;postID=1067939196997222743;onPublishedMenu=posts;onClosedMenu=posts;postNum=22;src=postname&quot;&gt;Probando Pentaho I&lt;/a&gt;&amp;nbsp;(Instalación de Pentaho Community)&lt;br /&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=3732630541286744699#editor/target=post;postID=6859219455978595897;onPublishedMenu=posts;onClosedMenu=posts;postNum=19;src=postname&quot;&gt;Probando Pentaho II&lt;/a&gt;&amp;nbsp;(Dashboard de ejemplo)&lt;br /&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=3732630541286744699#editor/target=post;postID=7928100171696373941;onPublishedMenu=posts;onClosedMenu=posts;postNum=3;src=postname&quot;&gt;Probando Pentaho III&lt;/a&gt;&amp;nbsp;(Introducción a Pentaho CTools)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp;&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;
&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
 </description><link>http://blog.tercerplaneta.com/2013/10/probando-pentaho-iv-sparkline-databar-y.html</link><author>noreply@blogger.com (Lucila Santos)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4kNeExGQcK-kCA8V8yXNvoS9-owLV-ggxpgHSNpyu2Sbq6knQgPI1Y3CjlY9QvIl4a6ePMAxfNSS9ACtomeHzQbApZT0ZIwLtoDG_fBVovrITdTtWhfiEhZ1Il2iHGc_INKyIW7BXuumz/s72-c/InternetSalesZoom.jpg" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-6605453802822979940</guid><pubDate>Tue, 10 Sep 2013 12:59:00 +0000</pubDate><atom:updated>2013-09-10T09:59:01.508-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">decision tecnologica</category><category domain="http://www.blogger.com/atom/ns#">Tecnologia</category><title>Innovación conciente</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
¿Cómo lograr un balance “perfecto” entre lo que nos suena más atractivo tecnológicamente hablando, y lo que resulta mejor para nuestro  cliente?&lt;br /&gt;
&lt;br /&gt;
Somos una empresa de Tecnología, nuestro equipo está formado por profesionales entusiastas, no sólo por lograr cumplir con los objetivos que plantea cualquier desarrollo de software, sino también por ofrecer un producto tecnológicamente de avanzada y moderno.&lt;br /&gt;
&lt;br /&gt;
Para lograr nuestros objetivos se nos suelen plantear, entre otros, dos dilemas que podrían titularse así:&lt;br /&gt;
&lt;br /&gt;
1- &lt;b&gt;Tratar de ver más allá, nuestros clientes sabrán agradecerlo
&lt;/b&gt;¿Cómo recomendar y/o implementar una tecnología, sin haberla visto en real funcionamiento?&lt;br /&gt;
No siempre todo lo que se vende por ahí como lo mejor, resulta serlo y es muy importante recomendar implementaciones tecnológicas que sean acordes a la necesidad que buscamos satisfacer.&lt;br /&gt;
&lt;br /&gt;
2- &lt;b&gt;La mejor tecnología no es una en particular, es la que mejor se aplica a cada caso&lt;/b&gt;
¿Cómo lograr que nuestro entusiasmo tecnológico no le gane a nuestra conciencia profesional?.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0HCWKykbHNiaCdlQb5noOrMT8YULxVzGgW-caHuF7ytT3YzrGA6cMjLV80RPxknjk9yo7yOZsfTX0gzCE8sYBulJLBRYPxE8R6aN1mb7YTS2n5PBSr0NwThFx3LiVXP-i1H0UtwB5nF8/s1600/decision.jpg&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;133&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0HCWKykbHNiaCdlQb5noOrMT8YULxVzGgW-caHuF7ytT3YzrGA6cMjLV80RPxknjk9yo7yOZsfTX0gzCE8sYBulJLBRYPxE8R6aN1mb7YTS2n5PBSr0NwThFx3LiVXP-i1H0UtwB5nF8/s200/decision.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;(imagen tomada de http//wasanga.com/flormpecasique/files/2013/07/Proceso-de-Toma-de-Decisiones2.jpg?id=flormpecasique)&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
Nuestra experiencia en tantos años, nos permite volcar algunos &lt;i&gt;tips&lt;/i&gt;&amp;nbsp;que pueden ser útiles para lograr el objetivo principal, &lt;b&gt;un producto de excelencia que cumpla con las necesidades planteadas en tiempo y forma, que permita seguir un ciclo de vida acorde a los tiempos en los que le toca vivir.&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Tratar de ver más allá, nuestros clientes sabrán agradecerlo
&lt;/h2&gt;
&lt;h3&gt;
Primer paso:&amp;nbsp;&lt;/h3&gt;
&lt;br /&gt;
Lo más conveniente es Leer, Leer y Leer,  en todo equipo siempre hay personas más predispuestas a saber interpretar por dónde viene la mano, es importante escucharlas y darles el lugar para poder llevar a cabo esa tarea.&lt;br /&gt;
&lt;br /&gt;
Los foros de discusión son de mucha ayuda, se suelen volcar allí inquietudes sobre problemas reales con los que nos encontramos o nos vamos a encontrar.&lt;br /&gt;
&lt;br /&gt;
Es muy útil saber elegir quienes son los &lt;b&gt;&lt;i&gt;gurúes&lt;/i&gt;&lt;/b&gt; a los que podemos seguir, buscar gente que sea responsable en lo que recomienda, y no dejarse llevar por charlatanes de turno.&lt;br /&gt;
&lt;h3&gt;
Segundo paso&amp;nbsp;&lt;/h3&gt;
Aprender una nueva tecnología, es una inversión no solo personal sino también para el equipo y por consiguiente para la empresa, permitir esta inversión cada vez que sea posible nos va a dejar mejor parados para el futuro, se podría decir que es un poquito de hambre para hoy, pero es pan para mañana.&lt;br /&gt;
&lt;br /&gt;
Prototipar las partes más complejas sin entrar en los detalles para luego tratar de someterlo a pruebas que lo pueden poner al límite.&lt;br /&gt;
&lt;br /&gt;
Tener muy claro en todas estas pruebas que lo importante es ver si la tecnología nos sirve para lo que queremos hacer, tratar de mantenerse distantes.&lt;br /&gt;
&lt;br /&gt;
Normalmente en los equipos están los perfiles más innovadores, y los más reaccionarios al cambio, buscar el equilibrio de ambos nos puede dar los mejores resultados, hay que saber escuchar todas las campanas.&lt;br /&gt;
&lt;h2&gt;
La mejor tecnología no es una en particular, es la que mejor se aplica a cada caso&amp;nbsp;&lt;/h2&gt;
Cuando se elige una tecnología hay muchos factores en juego, menciono algunas de las preguntas que nos deberíamos hacer:&lt;br /&gt;
&lt;br /&gt;
¿Qué impacto tiene la tecnología en la usabilidad del producto, si es que lo tiene?&lt;br /&gt;
&lt;br /&gt;
¿Qué durabilidad en el tiempo pretendemos que tenga?&lt;br /&gt;
&lt;br /&gt;
El mercado donde el producto va a vivir ¿le permitirá un soporte adecuado? en términos de posibilidades y costos.
Etc. Etc…&lt;br /&gt;
&lt;br /&gt;
Creo que la clave de todo esto es, ponerse en lugar del cliente en todo momento, y buscar la alternativa que realmente más le convenga a él.&lt;br /&gt;
&lt;br /&gt;
Esto no siempre nos va a llevar al lugar más cómodo para nosotros, pero si nos va a permitir ganar la confianza del cliente, algo muy importante para poder llevar adelante una tarea tan compleja como apasionante, que es el desarrollo de software.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2013/09/innovacion-conciente.html</link><author>noreply@blogger.com (Ricardo D. de Guzmán)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0HCWKykbHNiaCdlQb5noOrMT8YULxVzGgW-caHuF7ytT3YzrGA6cMjLV80RPxknjk9yo7yOZsfTX0gzCE8sYBulJLBRYPxE8R6aN1mb7YTS2n5PBSr0NwThFx3LiVXP-i1H0UtwB5nF8/s72-c/decision.jpg" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-7928100171696373941</guid><pubDate>Thu, 05 Sep 2013 16:58:00 +0000</pubDate><atom:updated>2013-09-09T11:49:15.327-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">CTools</category><category domain="http://www.blogger.com/atom/ns#">Pentaho Community</category><category domain="http://www.blogger.com/atom/ns#">Pentaho Dashboards</category><title>Probando Pentaho III: Introducción a Pentaho CTools</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h2&gt;
&lt;/h2&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Encontré un muy buen documento (&lt;a href=&quot;http://xa.yimg.com/kq/groups/18813546/192164828/name/CTools-intro-v1.pdf&quot;&gt;Introducción...&lt;/a&gt;) que me ayudó a sintetizar todo lo leído y probado respecto la construcción de &lt;b&gt;Dashboards con CTools&lt;/b&gt;. Comparto mi traducción y síntesis:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;
&lt;br /&gt;&lt;b&gt;Pentaho CTools&lt;/b&gt; es un framework para crear y mantener &lt;i&gt;dashboards&lt;/i&gt; en la&amp;nbsp;versión Community de Pentaho business intelligence server (bi-server)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Una de sus características relevantes es la creación de&lt;i&gt; dashboards interactivos&lt;/i&gt;, integrados con el bi-server. Todos los datos disponibles se pueden visualizar, aprovechando la configuración de seguridad del bi-server de Pentaho.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
Está compuesto por:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;1. Community Dashboards Framework (CDF)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;2. Community Chart Components (CCC)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;3. Community Data Access (CDA)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;4. Community Dashboard Editor (CDE)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
1. &lt;b&gt;CDF&lt;/b&gt;: motor generador de dashboards. Estos dashboards están formados por COMPONENTES, conectados entre si.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Componente: es un objeto de javascript que encapsula otros objetos con propiedades y funcionalidades. Puede ser visual o no.&amp;nbsp;Tienen interacción entre ellos, la más básica es que un componente puede re-dibujarse a partir del cambio de una variable.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Se puede customizar su comportamiento.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
2. &lt;b&gt;CCC&lt;/b&gt;: componentes gráficos que permiten la interacción del usuario,&amp;nbsp;&amp;nbsp;basados en&amp;nbsp;&lt;a href=&quot;http://mbostock.github.io/protovis/&quot;&gt;Protovis&amp;nbsp;&lt;/a&gt;y&amp;nbsp;&lt;a href=&quot;http://raphaeljs.com/&quot;&gt;Raphaeljs&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
3. &lt;b&gt;CDA&lt;/b&gt;: componente diseñado para recopilar, compaginar y distribuir información desde diferentes origenes.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Aunque CDF puede acceder a consultas SQL y MDX directamente, recomiendan el uso de CDA por asegurar accesos seguros, &lt;i&gt;permitir joins de datos desde diferentes fuentes&lt;/i&gt;, exportar los datos de las queries fácilmente. También habilita la&amp;nbsp;definición de las data sources y queries de SQL del lado del server. De esta manera, CDA disminuye el riesgo de inserción de código malicioso por medio de SQL injection (cuando la query esta almacenada del lado del cliente)&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
4. &lt;b&gt;CDE&lt;/b&gt;:&amp;nbsp;Editor que permite crear dashboards siguiendo estos pasos&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;&lt;ol&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Crear el layout o presentación de la página.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Especificar los data sources con la información a mostrar.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Crear los componentes visuales específicos. Conectarlos a los datos y ubicarlos en el layout.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Introducir más flexibilidad parametrizando los componentes y logrando interacción entre los mismos.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: inherit; font-weight: normal;&quot;&gt;A continuación una descripción de las secciones de Layout, Components y Data Sources ...&lt;/span&gt;&lt;/h4&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Layout workspace&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Formado por un área de estructura y otra de propiedades, relacionadas entre sí.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&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/AVvXsEiQJyvysDl4-mr4Fux6VgJw0J_VO1hak1oDm4BOAtI3H7IF9KdEkFBAgpjCvGPhIF0BR5y7Jr5MUChdZ9b_MAMsPAwHJWna3MQbM6Kjcn9Kx-Dgd3ZVwE-BAW2PRQvbvgIa-LJBiqt6RVKg/s1600/layout.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;126&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQJyvysDl4-mr4Fux6VgJw0J_VO1hak1oDm4BOAtI3H7IF9KdEkFBAgpjCvGPhIF0BR5y7Jr5MUChdZ9b_MAMsPAwHJWna3MQbM6Kjcn9Kx-Dgd3ZVwE-BAW2PRQvbvgIa-LJBiqt6RVKg/s640/layout.jpg&quot; width=&quot;640&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;&lt;b&gt;Layout Structure&lt;/b&gt; :&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;El layout mas simple esta formado por tres filas: Header, Contents y Footer.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Para modificar este layout, se pueden agregar columnas, filas, espacios, bloques de html, imágenes. Bloques de javascript.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Hay que tener en cuenta que las filas y columnas generadas están mapeadas a una estructura de &amp;lt;div&amp;gt; anidados, dentro de un archivo html generado en forma dinámica por el&amp;nbsp;pentaho-CDE-plugin.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: yellow;&quot;&gt;&lt;b&gt;Propertie&lt;/b&gt;s:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Hay una lista de propiedades, describo las principales.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;i&gt;Nombre del elemento&lt;/i&gt;: se usa después para ubicar dentro del mismo los componentes gráficas.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;i&gt;Tamaños: &lt;/i&gt;toma&amp;nbsp;&lt;a href=&quot;http://www.blueprintcss.org./&quot;&gt;blueprint css&lt;/a&gt;’ stylesheets. &#39;Width&#39; se basa en las columnas de blueprint.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Se puede ajustar, pero es mejor que estos tamaños sean dados por el componente en si.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Si los tamaños sumados de todos las columnas exceden el ancho de la página, tomarán la fila siguiente. Por otro lado, con blueprint los &#39;Heigths&#39; son definidos por las alturas de lo que contiene, por eso, si una columna está vacía, queda invisible porque su altura es de 0 px.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;i&gt;Seleccion de color&lt;/i&gt;:&amp;nbsp;área&amp;nbsp;de color y saturación, pueden ser configuradas por el selector de colores.&lt;/span&gt;&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Data source workspace&lt;/span&gt;&lt;/h4&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/AVvXsEh6T3LMDq_2VDQH6l2isGbbfxaxQPQf6zAr-e_31lwa1NSqXtxc-BC8Ryo4G0hmAMPk2Vk90JNuuahk2QPHjKMUIwOAPlk-tFU-jTlJrYOJZY4U4OXE6xzrS3qSEAkm1FiAPEdnycnnpexd/s1600/datasources2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;312&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6T3LMDq_2VDQH6l2isGbbfxaxQPQf6zAr-e_31lwa1NSqXtxc-BC8Ryo4G0hmAMPk2Vk90JNuuahk2QPHjKMUIwOAPlk-tFU-jTlJrYOJZY4U4OXE6xzrS3qSEAkm1FiAPEdnycnnpexd/s640/datasources2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
Hay once tipos de datasources, de los cuales probamos &lt;i&gt;SQL Queries y MDX queries.&lt;/i&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Se puede seleccionar el acceso via JDBC ó JDNI.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Se recomienda acceder por &lt;i&gt;JDNI&lt;/i&gt; en los casos en que se quiera acceder a mas de una tabla. Otra ventaja es que para setear JDNI se necesita solo el nombre&amp;nbsp;de la datasource.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Dentro de las propiedades, se puede seleccionar un origen de datos creado anteriormente por Pentaho.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Al ingresar la consulta, se recomienda controlar la sintaxis de las consultas SQL o MDX en otro entorno. Un error en la consulta no se detecta fácilmente desde CDE.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;También es útil probar la datasource creada por medio del Preview de CDA&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Hay que guardar las modificaciones al datasource en cada cambio, y limpiar el cache de la CDA, entre una prueba/ corrección y prueba&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Tener en cuenta que el cache del repositorio no es el mismo que el cache de la CDA.&lt;/span&gt;&lt;br /&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Component workspace&lt;/span&gt;&lt;/h4&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/AVvXsEje25PUVzApAhPHsLUn8iEyyGhD4HXNx6MuSbL7dmsPPVwUm_71DsPdYVD22Y4M44tkW-JRTTnHrCvzrKQI3OyNPlJX_r8ilg9b31QQMJIg4vcdHxIoLpUQrxQ48VbdMX6JzmJ7x2dkQCAB/s1600/componentes.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;382&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje25PUVzApAhPHsLUn8iEyyGhD4HXNx6MuSbL7dmsPPVwUm_71DsPdYVD22Y4M44tkW-JRTTnHrCvzrKQI3OyNPlJX_r8ilg9b31QQMJIg4vcdHxIoLpUQrxQ48VbdMX6JzmJ7x2dkQCAB/s640/componentes.jpg&quot; width=&quot;640&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
El concepto de componente intenta simplificar la construcción de dashboards. Es un objeto de JavaScript que encapsula todas las propiedades y métodos.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Destacamos:&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Genéricos: simple paramenter (javascript parameter), custom parameter(arrays, objetos, funciones), date parameter.&amp;nbsp;Parametros con su inicialización, se usan para conectar los componentes entre si&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Scripts: funciones de javascript&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Otros.&amp;nbsp;Usamos los botones, tablas.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Charts: los componentes para gráficos específicamente.&amp;nbsp;Pie chart, line chart, bar chart&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Selects: componentes usados para seleccionar valores.&amp;nbsp;Permiten la interacción del usuario, desde text inputs hasta combos.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Custom:&amp;nbsp;Raphael component:&amp;nbsp;&lt;a href=&quot;http://raphaeljs.com/&quot;&gt;Raphaeljs&lt;/a&gt;&amp;nbsp;es una librería para Scalable Vector Graphics (svg).&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;u&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Propiedades &amp;nbsp;de los componentes:&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Cada tipo de componente tiene propiedades específicas, pero&amp;nbsp;hay algunas comunes a todos que se pueden usar para controlar el ciclo de vida y comportamiento. Este cuadro resume el ciclo de vida de un componente y permite entender el sentido de las distintas propiedades.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;
&lt;/span&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_jWNOBQHTo_xxtO31U2OsHSKiy2PCmh8IiJwpmq-jRkLuVPw935hbFHeyPY76c8F432QpFp4CJwBMCGGPwvBCmvqkBF6GQxVZsI1Wzi5bqsF-FFWXK1sLeUYxT7YJXFa-9wjB5BpHyAgX/s1600/esquemacomponentes.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;280&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_jWNOBQHTo_xxtO31U2OsHSKiy2PCmh8IiJwpmq-jRkLuVPw935hbFHeyPY76c8F432QpFp4CJwBMCGGPwvBCmvqkBF6GQxVZsI1Wzi5bqsF-FFWXK1sLeUYxT7YJXFa-9wjB5BpHyAgX/s400/esquemacomponentes.jpg&quot; width=&quot;400&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;u&gt;&lt;i&gt;-&lt;/i&gt;&amp;nbsp;&lt;i&gt;executeAtStart&lt;/i&gt;&lt;/u&gt;: una variable booleana o (función que devuelva booleano). Indica si el componente será ejecutado (renderizado) en el load del dashboard o no.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;-&amp;nbsp;&lt;i&gt;&lt;u&gt;Parameters&lt;/u&gt;&lt;/i&gt;: array de parámetros a pasar al componente, en general basados en el input del usuario. Permiten customizar (al data source que está detrás)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;-&lt;i&gt;&amp;nbsp;&lt;u&gt;Parameter&lt;/u&gt;&lt;/i&gt;: Parámetro de salida de la función&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;-&amp;nbsp;&lt;i&gt;&lt;u&gt;Listeners&lt;/u&gt;&lt;/i&gt;: array de parámetros que disparan la ejecución y renderización del componente.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;-&lt;i&gt;&amp;nbsp;&lt;u&gt;PreExecution&lt;/u&gt;&lt;/i&gt;: función ejecutada antes de la inicializar o actualizar el componente. Si la función devuelve False, el componente no se actualiza.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;-&lt;i&gt;&amp;nbsp;&lt;u&gt;PostExecution&lt;/u&gt;:&lt;/i&gt;&amp;nbsp;función que se ejecuta después del update del componente y se puede usar para indicar que la actualización terminó.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;-&amp;nbsp;&lt;i&gt;&lt;u&gt;PreChange&lt;/u&gt;&lt;/i&gt;:&amp;nbsp;function(v), siendo v el nuevo valor del componente. Tiene sentido para componentes de tipo selector, para validar los inputs. Si esta función devuelve F no se ejecuta el evento &#39;fireChange&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;-&amp;nbsp;&lt;i&gt;&lt;u&gt;PostChange&lt;/u&gt;&lt;/i&gt;: se ejecuta después del cambio.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;-&amp;nbsp;&lt;i&gt;&lt;u&gt;Click action&lt;/u&gt;&lt;/i&gt;: Si la &amp;nbsp;CCC charts es clickable ( Clickable = true), se ejecuta una función cuyo prototipo es:&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;function(s, c, v) { &amp;lt;body&amp;gt; }, con&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;s = label of the series&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;c = category label (value at the x-axis)&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;v = value (value at the y-axis)&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;El uso más común de esta función es modificar el valor de un parámetro por medio de&amp;nbsp;&amp;nbsp; Dashboards.fireChange(param, value).&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Pero se pueden crear interacciones más complejas con un popup, por ejemplo. Que permitan que el usuario tome distintas acciones.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;-&lt;u&gt;Height - Width&lt;/u&gt;&lt;/i&gt;: usar solamente si al&amp;nbsp;ubicar el componente dentro del layout no se ajusta a lo&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;que necesitamos.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;i&gt;-&lt;u&gt;Datasource&lt;/u&gt;&lt;/i&gt;&lt;u&gt;:&lt;/u&gt; la cda datasource definida antes.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;i&gt;-&lt;u&gt;HtmlObject:&lt;/u&gt;&lt;/i&gt; es el id del html del layout, definido antes, que será reemplazado por el componente.&lt;/span&gt;&lt;br /&gt;
&lt;i style=&quot;font-family: inherit;&quot;&gt;&lt;u&gt;-Listeners&lt;/u&gt;&lt;/i&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;u&gt;:&lt;/u&gt; qué parámetros definidos previamente, &amp;nbsp;disparan el cambio del componente&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;u&gt;- &lt;i&gt;Priority&lt;/i&gt;:&lt;/u&gt; por default 5, si es menor el componente se ejecuta primero. Se usa en los casos en que se quiere dar un orden de ejecución.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;i&gt;&lt;u&gt;-Cross tab mode y&amp;nbsp;series in rows&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;
están relacionados con la estructura del dataset y con la información a mostrar.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Cross tab mode: si la consulta generada esta compuesta por series y categorías, en general si la consulta es MDX o una SQL con la clausula group by.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Series in rows: determina si las filas corresponden a las series o no.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;If series in rows = false los datos deben venir como Serie, Category, Data. If series in rows =&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;true deben ser Category, Serie, Data.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
Si crosstab mode = False los column headers (nombres) no son parte del dataset, por ende no serán visibles en el dashboard.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoZfEFhxrgh2ussLsL195a4Mp5aG8H2sNXmz9qN8B1O09kQaPS2bn4Y2jTj5A4bbObah8i1AzLhMeHyvEnoSuLenbI7Y1frC_tNAicEWaB3ciaZ39Tpk5XPKwO3vIoY4wzP2dlrU3jXhNj/s1600/datasources.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;218&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoZfEFhxrgh2ussLsL195a4Mp5aG8H2sNXmz9qN8B1O09kQaPS2bn4Y2jTj5A4bbObah8i1AzLhMeHyvEnoSuLenbI7Y1frC_tNAicEWaB3ciaZ39Tpk5XPKwO3vIoY4wzP2dlrU3jXhNj/s640/datasources.jpg&quot; width=&quot;640&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;i&gt;&lt;u&gt;-Extension points:&lt;/u&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
Permiten setear el font family, font-size, text-orientation de los distintos componentes de texto del chart.&amp;nbsp;Se forman como&amp;nbsp;&#39;ItemTipo_propiedad&#39;, por ejemplo&amp;nbsp;titleLabel_font.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Cuadro con ItemTipo más usados, &amp;nbsp;propiedades y ejemplos de valores para las propiedades&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPGSs1qC-Uj06RF9urwhy3uQ5rIOzrOyfdlK9CTg4mVxWnYHBBAF4qHZ_w7esRAyBxhi7TmcYRMB3sAJcGDU5VLDXxZwyPdIx6CgzEz-iDmkzxcUFEEjBhLjmWVeNEo4hcbWmOeRcKSNTk/s1600/extensionpoints.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;424&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPGSs1qC-Uj06RF9urwhy3uQ5rIOzrOyfdlK9CTg4mVxWnYHBBAF4qHZ_w7esRAyBxhi7TmcYRMB3sAJcGDU5VLDXxZwyPdIx6CgzEz-iDmkzxcUFEEjBhLjmWVeNEo4hcbWmOeRcKSNTk/s640/extensionpoints.jpg&quot; width=&quot;640&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
Artículos relacionados:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=3732630541286744699#editor/target=post;postID=1067939196997222743;onPublishedMenu=posts;onClosedMenu=posts;postNum=22;src=postname&quot;&gt;Probando Pentaho I&lt;/a&gt;&amp;nbsp;(Instalación de Pentaho Community)&lt;br /&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=3732630541286744699#editor/target=post;postID=6859219455978595897;onPublishedMenu=posts;onClosedMenu=posts;postNum=19;src=postname&quot;&gt;Probando Pentaho II&lt;/a&gt;&amp;nbsp;(Dashboard de ejemplo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp;&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;
&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2013/09/probando-pentaho-iii-dashboards-con.html</link><author>noreply@blogger.com (Lucila Santos)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQJyvysDl4-mr4Fux6VgJw0J_VO1hak1oDm4BOAtI3H7IF9KdEkFBAgpjCvGPhIF0BR5y7Jr5MUChdZ9b_MAMsPAwHJWna3MQbM6Kjcn9Kx-Dgd3ZVwE-BAW2PRQvbvgIa-LJBiqt6RVKg/s72-c/layout.jpg" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-4086667081747556060</guid><pubDate>Thu, 05 Sep 2013 14:15:00 +0000</pubDate><atom:updated>2013-09-06T10:59:52.144-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Capital Humano</category><category domain="http://www.blogger.com/atom/ns#">RRHH</category><category domain="http://www.blogger.com/atom/ns#">TI</category><category domain="http://www.blogger.com/atom/ns#">TIC</category><title>Incidencia de las TIC en la gestión del Capital Humano</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
En estos últimos años venimos acompañando a los departamentos de RRHH de algunos de nuestros clientes, que buscaban incorporar tecnología en varios de sus procesos comunes (evaluaciones, comunicación, búsquedas internas, promociones, capacitaciones, outplacement, etc..)&lt;br /&gt;
&lt;br /&gt;
Esto no se debe a un movimiento aislado sino a la influencia que las &lt;b&gt;TIC &lt;/b&gt;(&lt;i&gt;Tecnologías de la Información y Comunicación&lt;/i&gt;) vienen teniendo desde hace años en todas las áreas de la compañía, y particularmente destacable, en la gestión del Capital Humano.&lt;br /&gt;
&lt;br /&gt;
Las TIC engloban a un sector de actividad donde se aplican en conjunto dos tipos de tecnologías: las &lt;b&gt;TI&lt;/b&gt; (tecnologías de la Información) y las &lt;b&gt;telecomunicaciones&lt;/b&gt;, con el objetivo de administrar y transformar la información, protegerla y recuperarla para analizarla desde distintos enfoques.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihSZ-fLAamkIqwwdtoCZOVhgHTwMsRa92gouIRjUTiyGXlN3dmmXFB07_AdlN0x3fSvxzhnxEWNPN5Fh6DMjGJTOrxcxY46ob4rqRQT-QNbmkGhfFFLEaW48wjgXlkQTdTm_opSqRmR5k/s1600/TIC_RRHH.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihSZ-fLAamkIqwwdtoCZOVhgHTwMsRa92gouIRjUTiyGXlN3dmmXFB07_AdlN0x3fSvxzhnxEWNPN5Fh6DMjGJTOrxcxY46ob4rqRQT-QNbmkGhfFFLEaW48wjgXlkQTdTm_opSqRmR5k/s1600/TIC_RRHH.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Para poder entender los efectos positivos que la aplicación de las TIC puede acarrear es necesario tener en claro que &lt;i&gt;&quot;tecnología&quot; no es sinónimo de &quot;producto&quot;&lt;/i&gt; (un software en particular) sino de un concepto mucho más amplio. La implementación de la tecnología lleva a nuevas formas de colaboración, desarrollo de nuevos conocimientos, organización del trabajo, y en el caso del área de RRHH, exige nuevas capacidades de parte de sus responsables.&lt;br /&gt;
&lt;br /&gt;
Justamente parte de esas nuevas capacidades implican, entre otras cosas, una &lt;b&gt;evaluación estratégica de la tecnología a usar&lt;/b&gt;, teniendo claro que para el desarrollo de dichas capacidades es fundamental el apoyo de la alta dirección de las empresas.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
En qué aspectos ayudan las TIC al sector de RRHH?&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;En la comunicación, por supuesto&lt;/li&gt;
&lt;li&gt;En el diseño de puestos y roles&lt;/li&gt;
&lt;li&gt;En la supervisión&lt;/li&gt;
&lt;li&gt;En la detección de la duplicidad de trabajo&lt;/li&gt;
&lt;li&gt;En la detección de tareas que se pueden tercerizar&lt;/li&gt;
&lt;/ul&gt;
Si bien, en muchos casos la tecnología, aún hoy, no se reconoce como un agente de éxito en el área de RRHH, es innegable el rol que cumple en la &lt;i&gt;mejora de procesos de negocio&lt;/i&gt;, y como consecuencia, en la &lt;i&gt;productividad&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Objetivos&lt;/h3&gt;
El objetivo de las TIC como concepto global es el de &lt;b&gt;agregar valor a la operación diaria&lt;/b&gt;. Cualquier estrategia de aplicación de tecnología de la información en la gestión del capital humano debe permitir a la organización, entre otras cosas:&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Centralización y gestión de toda la información de la compañía y su análisis en tiempo real&lt;/li&gt;
&lt;li&gt;Gestión y evaluación de desempeño&lt;/li&gt;
&lt;li&gt;Mejora de la motivación de los empleados a través de una comunicación más abierta y fluida&lt;/li&gt;
&lt;li&gt;Mejora de la información interna y del acceso a la misma, promoviendo la cultura corporativa&lt;/li&gt;
&lt;li&gt;Que el área de RRHH pueda enfocar sus esfuerzos en decisiones estratégicas, al quedar liberados de otras cuestiones rutinarias que insumen tiempo y esfuerzo&lt;/li&gt;
&lt;li&gt;Reducción de costos y tiempos con la automatización de procesos, eliminación del uso de papeles en muchas operaciones y la gestión del tiempo&lt;/li&gt;
&lt;/ol&gt;
Procesos como Audit Management o Knowledge Management, por ejemplo, son factibles de aplicación de tecnologías a través de diversas aplicaciones.&lt;br /&gt;
&lt;br /&gt;
Encontramos también herramientas para &lt;i&gt;e-recruitment&lt;/i&gt; (búsqueda de canidatos a través de la web corporativa, por ejemplo), &lt;i&gt;e-learning&lt;/i&gt;, &lt;i&gt;B2E&lt;/i&gt; (businees to employe), administración de&lt;i&gt; Intranets&lt;/i&gt; (de código abierto, pagas o a medida).&lt;br /&gt;
Las &lt;i&gt;redes sociales&lt;/i&gt; juegan un papel muy importante hoy en día en la comunicación interna de las empresas y distintos modelos de teletrabajo son también incorporados en búsqueda de &lt;b&gt;reducción de costos, flexibilidad, retención de empleados, mejoras en productividad, entre otros beneficios&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
El enorme valor que estas tecnologías ofrecen hace que estén presentes en casi todas - si no todas - las actividades sociales y económicas en cualquier tamaño de empresa. En el caso de la gestión de capital humano no hay que perder de vista que, más allá de aplicar y saber usar las herramientas necesarias de la mejor forma, las tecnologías deben incidir positivamente en la vida de las personas.&lt;br /&gt;
&lt;br /&gt;
Artículo relacionado:&lt;br /&gt;
&lt;a href=&quot;http://blog.tercerplaneta.com/2013/07/las-redes-sociales-dentro-de-la-empresa.html&quot;&gt;Las redes sociales dentro de la empresa&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp;&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2013/09/incidencia-de-las-tic-en-la-gestion-del.html</link><author>noreply@blogger.com (Andrea Morales)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihSZ-fLAamkIqwwdtoCZOVhgHTwMsRa92gouIRjUTiyGXlN3dmmXFB07_AdlN0x3fSvxzhnxEWNPN5Fh6DMjGJTOrxcxY46ob4rqRQT-QNbmkGhfFFLEaW48wjgXlkQTdTm_opSqRmR5k/s72-c/TIC_RRHH.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3732630541286744699.post-4730713337887494697</guid><pubDate>Tue, 03 Sep 2013 15:14:00 +0000</pubDate><atom:updated>2013-09-03T14:34:39.635-03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Daily Stand up meeting</category><category domain="http://www.blogger.com/atom/ns#">equipo agil</category><category domain="http://www.blogger.com/atom/ns#">Equipos distribuidos</category><category domain="http://www.blogger.com/atom/ns#">Metodologias</category><category domain="http://www.blogger.com/atom/ns#">Metodologias Agiles</category><category domain="http://www.blogger.com/atom/ns#">reunión diaria</category><category domain="http://www.blogger.com/atom/ns#">Scrum</category><category domain="http://www.blogger.com/atom/ns#">Trabajo distribuido</category><category domain="http://www.blogger.com/atom/ns#">Trabajo en Equipo</category><title>SCRUM, problemas en la reunión diaria: qué podemos hacer al respecto? </title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhudol_XrA7i2YOSs6je4mskEKwP1v6ZiFngzicxCS1qMaLWdqx8gpkqaKoycxUFaEwgkwR4BWfB5er9DU0raMtZYt67WKaPCenUxAukmPalcP7biABVx4hPn3ZjvZ8VVi4NfmDEcTClvI/s1600/Scrum-Roles1_bis.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;193&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhudol_XrA7i2YOSs6je4mskEKwP1v6ZiFngzicxCS1qMaLWdqx8gpkqaKoycxUFaEwgkwR4BWfB5er9DU0raMtZYt67WKaPCenUxAukmPalcP7biABVx4hPn3ZjvZ8VVi4NfmDEcTClvI/s200/Scrum-Roles1_bis.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Internamente muchas veces nos preguntamos si las reuniones diarias están cumpliendo el  objetivo que realmente tienen y al leer blogs y foros sobre metodologías ágiles descubrí que muchos equipos tienen los mismos problemas que detectamos puertas adentro.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Revisar objetivos&lt;/h3&gt;
Para comenzar es bueno recordar cuál es el objetivo y qué debe hacer cada miembro del equipo en una típica &lt;b&gt;reunión diaria&lt;/b&gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La reunión diaria tiene como fin el facilitar la &lt;b&gt;transferencia de información&lt;/b&gt; y la &lt;b&gt;colaboración &lt;/b&gt;entre los miembros del equipo para aumentar su &lt;b&gt;productividad, &lt;/b&gt;al poner de manifiesto puntos en que se pueden ayudar unos a otros.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cada miembro del equipo participa del trabajo que el resto está realizando (dependencias entre tareas, progreso y problemas) para luego de finalizar la reunión poder hacer las adaptaciones que permitan cumplir con las historias que el equipo comprometió para el sprint en curso.&lt;br /&gt;
&lt;br /&gt;
Cada miembro del equipo debe responder las siguientes preguntas en un tiempo estipulado de como máximo &lt;b&gt;15 minutos:&lt;/b&gt; &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;¿&lt;b&gt;Qué he hecho&lt;/b&gt; desde la última reunión diaria? ¿ Pude hacer todo lo que tenía planeado? ¿Cuál fue el problema?&lt;/li&gt;
&lt;li&gt;¿&lt;b&gt;Qué voy a hacer &lt;/b&gt;a partir de este momento?&lt;/li&gt;
&lt;li&gt;¿Qué &lt;b&gt;problemas&amp;nbsp;&lt;/b&gt;tengo o voy a tener para cumplir con este sprint y en el proyecto?&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Como apoyo a la reunión, el equipo cuenta con la lista de tareas del sprint (sprint backlog) donde se actualiza el estado y el esfuerzo pendiente para cada tarea.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Con esto se ponen en evidencia los beneficios y restricciones que tiene cada equipo en realizar sus tareas.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
(Para quienes quieran profundizar recomendamos leer&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;&lt;a href=&quot;http://www.proyectalis.com/wp-content/uploads/2008/02/scrum-y-xp-desde-las-trincheras.pdf&quot;&gt;&quot;Scrum y XP desde las trincheras&quot;&lt;/a&gt;&lt;/span&gt;)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;b&gt;¿Problemas? ¿Qué problemas?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Si bien la práctica descripta en el párrafo anterior puede ser muy clara y parecer muy simple, nos pasa que, con el correr del tiempo notamos que hay cosas que empiezan a fallar o a sacarnos del eje de lo que indican los libros. ¿Cuáles son esas cosas? Aquí listamos algunos ejemplos de situaciones que pueden presentarse en las reuniones diarias y que pueden ser tratadas durante la misma, así como también recomendaciones recopiladas entre experiencia propia y de otros:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. &lt;/b&gt;Algún miembro del equipo se queda sin tareas dentro del sprint &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Que él mismo elija qué cosas puede hacer para ayudar al equipo (test, documentación, scripts, etc.)&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;O decidir entre todos que ayude con otros tipos de tareas, por ejemplo que sea el cadete del grupo.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;2.&lt;/b&gt; Falta tiempo para corregir código o hacer una corrección que no produce historias válidas dentro del sprint.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Bajar el rendimiento del equipo, para poder dedicarle el tiempo suficiente a las tareas de mejoras o correcciones, es decir, plantearse hacer menos historias para el sprint.&lt;/li&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;3. &lt;/b&gt;Ante un proyecto grande con muchos desarrolladores&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Cuando la cantidad de personas en un proyecto es grande, se dispersa mucho la información, lo ideal es armar varios grupos más pequeños de entre 3 y 10 desarrolladores.&lt;/li&gt;
&lt;li&gt;Si hay varios equipos en el mismo proyecto , lo más recomendado sería, un solo project owner (dueño del proyecto), sprint sincronizados para que las demos sean el mismo día, la planificación  unificada para repartir las historias y luego cada equipo hace su propia planning poker. Hacer en diferentes horarios las reuniones diarias, para que el project owner esté en todas. La gran ventaja de esta experiencia es que cuando termina cada sprint los miembros del equipo pueden ser intercambiados, o reorganizados minimizando así las dudas y/o problemas.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;b&gt;4.&lt;/b&gt; Llegadas tarde a la reunión diaria&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Elegir una hora buena para todos ( en la generalidad de los casos, se toma como horario de la reunión diaria, entre 15 y 30 minutos posteriores al horarios de inicio de la jornada).&lt;/li&gt;
&lt;li&gt;Si los retrasos son habituales se puede &quot;llenar la alcancía&quot;, &quot;traer algo para compartir para todos&quot;. Ante la reincidencia eligen hacer que duela un poco más el bolsillo y así tratar de evitar llegar retrasado. &amp;nbsp;&lt;/li&gt;
&lt;li&gt;Llegar tarde se puede deber al desinterés, con lo cual es válido plantear como alternativa que el propio implicado en los sucesivos retrasos puede exponer sus propias explicaciones ante el grupo y/o alternativas de participación para aumentar su interés.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Contar o no qué paso en la reunión o a los que no estuvieron presentes, depende de dos puntos de vista, el interés de escribir en una breve &quot;minuta&quot; sobre lo hablado por el project owner y el otro punto de vista el interés del integrante retrasado en interiorizarse en lo sucedido en la reunión diaria.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;b&gt;5. &lt;/b&gt;Equipo distribuido geográficamente&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Skype, o cualquier vía de comunicación on line conectado permanentemente, &lt;b&gt;reunión diaria &lt;/b&gt;del equipo completo, comunicación lo más fluida posible (skype, cámaras web, mail, de ser necesario palomas mensajeras!!!)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;
En forma anecdótica podemos decir, que en &lt;a href=&quot;http://www.tercerplaneta.com/&quot;&gt;Tercer Planeta&lt;/a&gt;, hemos intentado varias de estas recomendaciones, algunas con funcionamiento óptimo y otras en vías de mejoras seguras.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
La más importante que hacemos es la de realizar una reunión diaria del grupo completo, ya sea que pertenezcan o no al mismo proyecto, contándonos en qué estamos cada uno y pidiendo todos los S.O.S. necesarios, esto permite que ninguno de los proyectos quede estancado, &lt;b&gt;reconociendo que no todos sabemos todo.&lt;/b&gt;&amp;nbsp;Además de poder contar con ayuda, podemos saber en qué estado está cada uno. A esta &lt;b&gt;reunión diaria grupal general&lt;/b&gt;, muy cortita, le siguen las reuniones diarias específicas de cada proyecto en concreto (reuniones de avance).&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
Personalmente, la primer reunión diaria es la más saludable y a veces hasta la más esperada por todos, nos permite entender el estado de cada uno, estar al tanto de temas generales del equipo y temas más sociales. Es una manera de mantener la comunicación &quot;viva&quot;, más allá de los detalles particulares que presente cada proyecto.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;a class=&quot;twitter-share-button&quot; data-lang=&quot;es&quot; data-size=&quot;large&quot; data-via=&quot;3p_ar&quot; href=&quot;https://twitter.com/share&quot;&gt;Twittear&lt;/a&gt;&amp;nbsp;&lt;a class=&quot;twitter-follow-button&quot; data-lang=&quot;es&quot; data-show-count=&quot;false&quot; data-size=&quot;large&quot; href=&quot;https://twitter.com/3p_ar&quot;&gt;Seguir a @3p_ar&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</description><link>http://blog.tercerplaneta.com/2013/09/scrum-problemas-en-la-reunion-diaria.html</link><author>noreply@blogger.com (Anonymous)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhudol_XrA7i2YOSs6je4mskEKwP1v6ZiFngzicxCS1qMaLWdqx8gpkqaKoycxUFaEwgkwR4BWfB5er9DU0raMtZYt67WKaPCenUxAukmPalcP7biABVx4hPn3ZjvZ8VVi4NfmDEcTClvI/s72-c/Scrum-Roles1_bis.jpg" height="72" width="72"/></item></channel></rss>