tag:blogger.com,1999:blog-75094517387768581182024-03-13T17:10:40.617-03:00Martín Salías - Arquitexturas"El desarrollo de software es una actividad humana compleja." (A.J.Lopez)Martin Saliashttp://www.blogger.com/profile/18122086046496078782noreply@blogger.comBlogger101125tag:blogger.com,1999:blog-7509451738776858118.post-88926304170708023172013-07-03T11:56:00.001-03:002013-07-03T11:56:21.869-03:00Un recorrido por la industria del software<p>Durante el evento <a href="http://www.palermo.edu/ingenieria/eventos/nidays.html">“Proyectos con menos riesgo y más compromiso”</a> realizado junto a <a href="http://www.palermo.edu/">Universidad de Palermo</a> el 27 de junio, estuvimos conversando acerca de proyectos ágiles (¡y otros no tanto!).</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" title="foto_pablin_grafica.jpg" src="http://lh3.ggpht.com/-6hY7DMLsY2I/UdQ7gLlqXcI/AAAAAAAALh4/DFZdpStdjHg/foto_pablin_grafica.jpg?imgmax=800" alt="Facilitación Gráfica por @pablitux" width="330" height="239" border="0" /></p>
<p>En ese marco tuvimos el privilegio de escuchar a nuestro amigo Esteban Di Tada, responsable de Investigación y Desarrollo+Innovación en UP, quien compartió con nosotros sus experiencias personales.</p>
<p><img style="float: right;" title="esteban.png" src="http://lh5.ggpht.com/-cp_U1KissoM/UdQ7j7qJiCI/AAAAAAAALiA/EQUlISeFw2g/esteban.png?imgmax=800" alt="Esteban Di Tada" width="330" height="245" border="0" /></p>
<p>Esteban tuvo su primer contacto con una computadora a comienzos de la década del 60, cuando pasó de usar reglas de cálculo a computadoras con procesos batch.</p>
<p>Luego aparecieron las terminales y comenzó lo que se dio en llamar “la crisis del software”, hasta llegar al punto de detectarse que sólo un 2% de los proyectos generaban valor. Después en la década del 90 todo cambió muchísimo cuando los usuarios comenzaron a utilizar PCs en oficinas y desde sus casas, con un nivel de exigencia mucho más alto y sin conocimientos técnicos. Finalmente, llegamos al día de hoy donde es posible alquilar un auto o realizar transacciones bancarias desde nuestros teléfonos móviles.</p>
<p>Lo más destacable fueron los motivos por los cuales los proyectos muy grandes (“elefantiásicos”) dejan de tener sentido: velocidad e incertidumbre mayores, cambios rápidos en los requerimientos y la tecnología, concluyendo en la necesidad de que busquemos trabajar con los conceptos de Calidad Total y centrados en las Personas.</p>
<p>Así, en pocos minutos, Esteban nos hizo recorrer una vez más la historia de nuestra industria desde sus albores hasta nuestra actualizadas de computación ubicua, haciéndonos entender de paso la evolución de las metodologías y paradigmas.</p>
<p>¡Gracias, Esteban!</p>Martin Saliashttp://www.blogger.com/profile/18122086046496078782noreply@blogger.com0tag:blogger.com,1999:blog-7509451738776858118.post-81358920485718952942013-06-23T22:30:00.001-03:002013-06-23T22:30:23.688-03:00Rosario siempre estuvo cerca… de la arquitectura<p>Desde que tengo memoria Rosario es una ciudad que me entusiasma. Estaba cerca de Pergamino, donde pasé gran parte de mi niñez, y por eso mucha gente cerca mío estudió allá, si no venía a Buenos Aires.</p>
<p>Y muchos años después seguí haciendo amigos por allá dentro de la industria del software, donde me muevo principalmente.</p>
<p>Notablemente también, Rosario es la ciudad de Argentina donde más actividades realicé relacionadas con Arquitectura de Software, desde algunas charlas (como <a href="http://blog.salias.com.ar/2009/12/un-dia-nublado-en-rosario.html">la que compartimos con Johnny Halife</a> años atrás) y participación en proyectos, hasta las Jornadas de Arquitectura de Software que iniciamos con el <a href="http://www.mug.org.ar">MUG</a>, y que hasta ahora sólo se realizaron en Rosario dos veces y en Buenos Aires una sola (planeamos realizar la de este año en unos meses).</p>
<p><img style="float: right;" title="cenaRosario.png" src="http://lh3.ggpht.com/--1qKK24sPnk/UcehKYOWlXI/AAAAAAAALTc/QfzPJwZmBMc/cenaRosario.png?imgmax=800" alt="Cena en Rosario " width="200" height="111" border="0" /></p>
<p>La segunda edición de la JAS del MUG fue casualmente hace un par de semanas en Rosario, y pude compartir el salón de la UTN con varios amigos:</p>
<ul>
<li><a href="https://twitter.com/superdoret">Matías Toro</a> y <a href="http://ar.linkedin.com/pub/andres-joaquin/6/373/a8b">Andrés Joaquín</a> hablaron sobre testing de performance en aplicaciones web</li>
<li><a href="http://codigorockiano.com.ar/">Sebastián Rocco</a>, que habló sobre los Principios SOLID (<a href="http://www.slideshare.net/smrocco/principios-solid">su presentación aquí</a>)</li>
<li><a href="http://ar.linkedin.com/in/gimenezparera">Pablo Gimenez Parera</a>, que mostró algunos ejemplos de modelado y validación en Visual Studio, que pueden accederse en <a href="https://www.dropbox.com/sh/cwb7tlgqv3rk6xm/8TvotSizfg">su carpeta pública de Dropbox</a>.</li>
</ul>
<p>Yo volví a presentar una versión actualizada de mi sesión "Arquitectura de Software en el ciclo de vida Agil", que dejo aquí abajo para quienes estén interesados. Al cierre fuimos con varios de los oradores y organizadores a disfrutar unas ricas <em>pizzanesas rosarigasinas</em>.</p>
<p><iframe src="http://www.slideshare.net/slideshow/embed_code/23111045" style="border: 1px solid #CCC; border-width: 1px 1px 0; margin-bottom: 5px;" width="427" height="356" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"> </iframe></p>
<div style="margin-bottom: 5px;">Los dos días siguientes estuve facilitando un workshop sobre esa misma temática, pero con mucha más práctica y profundidad, organizado por el <a href="http://www.polotecnologico.net/">Polo Tecnológico Rosario</a>.</div>
<div style="margin-bottom: 5px;">El temario puede verse en <a href="http://media.kleer.la/flyers/Kleer-AgileArchitecture.pdf">el folleto del Workshop</a>, y pueden ver <a href="https://plus.google.com/photos/108731180744218801408/albums/5890428257371767297">las fotos en el Album de Google+</a> que dejé al terminar.</div>
<div style="margin-bottom: 5px;">¡Hasta pronto, Rosario!</div>
<div style="margin-bottom: 5px;"> </div>
<div style="margin-bottom: 5px;"><strong><br /></strong></div>
<div style="margin-bottom: 5px;"><strong><br /></strong></div>
<div style="margin-bottom: 5px;"><strong><br /></strong></div>
<div style="margin-bottom: 5px;"><strong><br /></strong></div>Martin Saliashttp://www.blogger.com/profile/18122086046496078782noreply@blogger.com0tag:blogger.com,1999:blog-7509451738776858118.post-44425505109504382682013-06-11T08:57:00.001-03:002013-06-11T08:57:55.004-03:00Coaching Remoto - acortando las distancias<p><img style="float: right;" src="https://lh6.googleusercontent.com/B9xtYYVIgC1hCxj5uRRedPVe8pnouTyG9pTmstbXyADfE5V27WyR2vgXq-AUtxawQ3sA3CZe0B41wtMzu_FdfLqD-nl6tw1FnVTDW7Iy1u_C_Xq1xsVj06rj8w" alt="" width="333px;" height="226px;" />Como parte de nuestra actividad como coaches en <a href="http://kleer.la">Kleer</a> viajamos mucho y trabajamos con equipos en diferentes partes de América Latina. Pero no siempre podemos estar en todos lados, y las personas con que trabajamos siguen necesitando ayuda en temas puntuales, algo de seguimiento, o quieren que observemos algunas reuniones y los ayudemos a encontrar puntos de mejora.</p>
<p>Como decía <a href="http://artfulmaking.com/">Lee Devin</a>, podemos separar nuestros desvelos entre “problemas” y “dificultades”. Los problemas tienen solución; una vez que la encontramos y ejecutamos por completo, desaparecen. Las dificultades están ahí siempre: no podemos volar; inventamos aviones, nos lanzamos en paracaídas... todos meros sustitutos de lo que queremos.</p>
<p>La distancia es una dificultad. La minimizamos viajando frecuentemente, pero -salvo que podamos mudarnos a otro lado- no podemos resolver el tema por completo. El trabajo remoto es otra manera de mitigar la distancia. No es lo mismo que viajar y estar ahí, cara a cara, pero tiene algunas ventajas para cuestiones puntuales, más breves:</p>
<ul>
<li>Es difícil “perder el tiempo” remotamente. Uno planifica una reunión para uno o dos temas y en cuanto empieza quiere terminar, porque no es fácil ir y venir.</li>
<li>Para contactos esporádicos y seguimiento de temas, es mucho más económico (en todo sentido) que viajar.</li>
<li>Es más fácil trabajar desde casa, en pantuflas. :)</li>
</ul>
<p>A medida que utilizamos más y más esta modalidad, aprendemos algunas cosas que hacen mejor la experiencia para nosotros y nuestros clientes, y que nos parece interesante compartir:</p>
<ul>
<li>Ya que no podemos estar cara a cara, aprovechemos al máximo el video.</li>
<li>Dependiendo de la situación, diferentes herramientas son la mejor elección. Entre las plataformas abiertas, Google Hangouts nos gusta porque prioriza la calidad de la voz sobre la del video, es muy sencilla y bastante estable.</li>
<li>Mejor que mirarnos las caras todo el tiempo es alternar entre la webcam y compartir escritorio u otros artefactos</li>
<li>Usar documentos colaborativos a la vez que hablamos es muy útil. Nada como ir tomando notas entre todos y que al final de la reunión ya tengamos un resumen.</li>
<li>Aprovechemos todo lo que podamos mostrar en lugar de explicar verbalmente. Hoy los teléfonos inteligentes son muy buena opción para una video-conferencia, porque podemos mover la cámara facilmente entre nuestra cara, un pizarrón, un dibujo, etc.</li>
<li>El ruido ambiente complica las cosas: tratemos de usar auriculares, o un parlante/micrófono externo especial para conferencias. Si tenemos reuniones virtuales frecuentes, son excelente inversión.</li>
<li>Cuando vamos a contactar a una persona o grupo nuevo, programemos 10 o 15 minutos antes de la reunión para ajustar la plataforma. Siempre suele haber algo para instalar, alguna configuración para ajustar, etc.</li>
<li>Si la reunión virtual es larga, contemplemos descansos breves en la agenda (más frecuentes que en un reunión presencial) para ir a buscar una bebida, estirar las piernas, o simplemente refrescarnos. Hablar mucho tiempo a través de la pantalla es agotador.</li>
</ul>
<p>Por supuesto, hay muchas más ideas, pero quería contarles algunas y dejar abierto el canal para charlarlo. Como siempre, pueden contactarse conmigo u otros miembros de Kleer a través de <a href="mailto:hola@kleer.la">hola@kleer.la</a> y obviamente, siempre está la opción de vernos, al menos remotamente. :)</p>Martin Saliashttp://www.blogger.com/profile/18122086046496078782noreply@blogger.com0tag:blogger.com,1999:blog-7509451738776858118.post-78575419222465382102013-01-14T23:26:00.001-03:002013-01-14T23:26:57.265-03:00Lanzamiento final de Hilo Guidance<p><img style="float: right;" title="Hilo.png" src="http://lh5.ggpht.com/-HlNvO3HdIEI/UPS-FxLhaEI/AAAAAAAAHp8/lf3yYM0tcQI/Hilo.png?imgmax=800" alt="Hilo" width="200" height="244" border="0" /></p>
<p>Este es un proyecto en el que tuve el placer de colaborar el año pasado con el equipo de <a href="http://pnp.azurewebsites.net/en-us/"><em>patterns & practices</em></a>:</p>
<p>Hilo es una aplicación de galería de imágenes para Windows 8 desarrollada en C++ y XAML. La documentación completa está <a href="http://msdn.microsoft.com/en-us/library/windows/apps/jj160316.aspx">disponible en inglés</a>, pero <a href="http://msdn.microsoft.com/es-es/library/windows/apps/jj160316.aspx">también en castellano</a> (aunque la calidad de la traducción no es espectacular, para quienes no puedan leer en inglés puede ser útil). Todo el código fuente está <a href="http://code.msdn.microsoft.com/windowsapps/Hilo-C-sample-b53fd433">disponible para descarga también</a> como parte del SDK oficial de Windows.</p>
<p>Los capítulos de la guía cubren los siguientes temas:</p>
<ul>
<li>Getting started with Hilo</li>
<li>Designing Hilo's UX</li>
<li>Writing modern C++ code in Hilo</li>
<li>Async programming patterns and tips in Hilo</li>
<li>Working with tiles and the splash screen in Hilo</li>
<li>Using the Model-View-ViewModel (MVVM) pattern in Hilo</li>
<li>Using the Repository pattern in Hilo</li>
<li>Creating and navigating between pages in Hilo</li>
<li>Using controls in Hilo</li>
<li>Using touch in Hilo</li>
<li>Handling suspend, resume, and activation in Hilo</li>
<li>Improving performance in Hilo Testing and deploying Hilo</li>
<li>Meet the Hilo team</li>
<li>Performing interop between XAML and DirectX</li>
</ul>
<div>Hilo es una aplicación de fotos que utiliza el estilo "Modern UI" (antes conocido como Metro) en Windows 8, permitiendo navegar entre las carpetas de fotos, ordenarlas, filtrar por tiempo y efectuar algunas ediciones menores como rotaciones y efectos básicos.</div>
<div> </div>
<div><img style="display: block; margin-left: auto; margin-right: auto;" title="HiloUI.png" src="http://lh6.ggpht.com/-xoDO4e7qy50/UPS-TTjETyI/AAAAAAAAHqE/ZP5ubsXr8Fg/HiloUI.png?imgmax=800" alt="Hilo UI" width="244" height="132" border="0" /></div>
<p>En la sección "Meet the Hilo team" agradecen los colaboradores más allá del equipo core del proyecto, y me incluyen entre mucha gente impresionante que me llena de orgullo y humildad (si hasta quedé al lado de Herb Sutter, "Mr. C++"):</p>
<blockquote>
<p>We want to thank the customers, partners, and community members who have patiently reviewed our early content and drafts. We especially want to recognize Marcelo Hideaki Azuma (ITGROUP), Chad Carter (CTO, GlobalCove Technologies), Tony Champion (Owner, Champion DS), Carlos dos Santos (CDS Informática Ltda.), Genevieve Fernandes, Alon Fliess (Chief Architect, CodeValue), Timo Heinäpurola, Tim Heuer, Robert Hogg (Black Marble), Hong Hong, Mike Kenyon (Senior Principal Software Engineer, IHS, Inc.), Artur Laksberg, Michael B. McLaughlin, Harry Pierson, Caio Proiete (Senior Consultant/Trainer, CICLO), Andy Rich, <span><strong>Martin Salias</strong></span>, Herb Sutter, Jose Miguel Torres (Software Engineer, Xamarin), and J. Andre Tournier (Sr. Software Developer, WebMD) for their technical insights and support throughout this project.</p>
</blockquote>
<p>El proyecto tuvo para mi unas cuántas cosas interesantes, como usar C++ 11 en un proyecto real, incluyendo lambdas, smart pointers, continuations, tasks y otros recursos especiales para manejar concurrencia y múltiples cores. También se hizo bastante énfasis en las pruebas unitarias, aunque no fue trivial en un contexto de tanto paralelismo.</p>
<p>Por último, gran parte del foco está en el entorno Windows 8 y XAML, que debo confesar que no me entusiasmó mucho, aunque si aprendí muchísimas cosas en el camino.</p>Martin Saliashttp://www.blogger.com/profile/18122086046496078782noreply@blogger.com0tag:blogger.com,1999:blog-7509451738776858118.post-16533460425858149652012-10-10T23:10:00.001-03:002012-10-10T23:10:49.980-03:00El camino ágil hacia organizaciones más efectivas<p><img style="float: right;" title="OrganizacionesAgiles.png" src="http://lh6.ggpht.com/-SuR5uxH81R8/UHYqo0GgFHI/AAAAAAAAGUs/nRmbTt999ns/OrganizacionesAgiles.png?imgmax=800" alt="Organizaciones Agiles" width="539" height="204" border="0" /></p>
<p>Con mis colegas de <a href="http://kleer.la">Kleer</a> organizamos esta mañana este pequeño evento en la <a href="http://www.palermo.edu/">Universidad de Palermo</a>, gracias como siempre al Decano de la Facultad de Ingeniería, <a href="http://www.linkedin.com/pub/esteban-di-tada/16/244/49">Esteban Di Tada</a>.</p>
<p>La idea era compartir algunas ideas y experiencias alrededor de organizaciones adoptando prácticas ágiles a diferente nivel de madurez, también con características diferentes, y charlar un poco sobre el camino que recorrieron.</p>
<p>Como introducción tuve a oportunidad de presentar una introducción a algunos principios teóricos de diferentes áreas, desde matemáticas y cibernética hasta management, que desde diferentes perspectivas soportan las ideas del agilismo,</p>
<p>Dejo para los asistentes las <a href="https://www.dropbox.com/s/508hnxs48intxrf/Organizaciones%20Agiles.pdf">notas de la sesión</a> como prometí, y debajo agrego una lista de bibliografía relacionada.</p>
<ul>
<li>En Español</li>
<ul>
<li><a href="http://www.amazon.com/gp/product/9871256043/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=9871256043&linkCode=as2&tag=martinsalias-20">Complejidad y Caos</a><img style="border-style: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=martinsalias-20&l=as2&o=1&a=9871256043" alt="" width="1" height="1" border="0" />, de Carlos Reynoso</li>
<li><a href="http://www.amazon.com/gp/product/8474328160/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=8474328160&linkCode=as2&tag=martinsalias-20">Antropologia y Complejidad</a>, de Rafael Perez Taylor</li>
<li><a href="http://www.amazon.com/gp/product/8476589646/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=8476589646&linkCode=as2&tag=martinsalias-20">Sistemas Complejos : Perspectivas De Una Teoría General</a>, Germán de la Reza</li>
<li><a href="http://www.amazon.com/gp/product/987125654X/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=987125654X&linkCode=as2&tag=martinsalias-20">Modelos o Metáforas,</a> de Carlos Reynoso <img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=martinsalias-20&l=as2&o=1&a=987125654X" alt="" width="1" height="1" border="0" /></li>
<li><a href="http://www.amazon.com/gp/product/8495787326/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=8495787326&linkCode=as2&tag=martinsalias-20">Las Cinco Disfunciones De Un Equipo</a>, de Patrick Lencioni</li>
<li><a href="http://www.amazon.com/gp/product/9580498636/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=9580498636&linkCode=as2&tag=martinsalias-20">Luchas Por El Poder Dentro De Las Empresas</a>, de Patrick Lencioni</li>
</ul>
<li>En inglés</li>
<ul>
<li><a href="http://www.amazon.com/gp/product/0231001215/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=0231001215&linkCode=as2&tag=martinsalias-20">Ants</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=martinsalias-20&l=as2&o=1&a=0231001215" alt="" width="1" height="1" border="0" />, de William Morton Wheeler</li>
<li><a href="http://www.amazon.com/gp/product/026273009X/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=026273009X&linkCode=as2&tag=martinsalias-20">Cybernetics, Second Edition: or the Control and Communication in the Animal and the Machine</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=martinsalias-20&l=as2&o=1&a=026273009X" alt="" width="1" height="1" border="0" />, de Norbert Wienner</li>
<li><a href="http://www.amazon.com/gp/product/0691130612/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=0691130612&linkCode=as2&tag=martinsalias-20">Theory of Games and Economic Behavior</a>, de John Von Neumann y otros</li>
<li><a href="http://www.amazon.com/gp/product/037572527X/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=037572527X&linkCode=as2&tag=martinsalias-20">Flesh and Machines: How Robots Will Change Us</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=martinsalias-20&l=as2&o=1&a=037572527X" alt="" width="1" height="1" border="0" />, de Rodney Brooks</li>
<li><a href="http://www.amazon.com/gp/product/0465005640/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=0465005640&linkCode=as2&tag=martinsalias-20">The Evolution of Cooperation</a>, de Robert Axelrod</li>
<li><a href="http://www.amazon.com/gp/product/0201483408/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=0201483408&linkCode=as2&tag=martinsalias-20">Out of Control: The New Biology of Machines, Social Systems, & the Economic World</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=martinsalias-20&l=as2&o=1&a=0201483408" alt="" width="1" height="1" border="0" />, de Kevin Kelly</li>
<li><a href="http://www.amazon.com/gp/product/0385260954/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=0385260954&linkCode=as2&tag=martinsalias-20">The Fifth Discipline: The Art & Practice of the Learning Organization</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=martinsalias-20&l=as2&o=1&a=0385260954" alt="" width="1" height="1" border="0" />, de Peter Senge</li>
<li><a href="http://www.amazon.com/gp/product/0470941529/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=0470941529&linkCode=as2&tag=martinsalias-20">The Advantage: Why Organizational Health Trumps Everything Else In Business</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=martinsalias-20&l=as2&o=1&a=0470941529" alt="" width="1" height="1" border="0" />, de Patrick Lencioni</li>
<li><a href="http://www.amazon.com/gp/product/0470267585/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=0470267585&linkCode=as2&tag=martinsalias-20">The Five Temptations of a CEO</a>, de Patrick Lencioni</li>
</ul>
</ul>
<p>Podría seguir agregando libros, pero creo que estos son las principales fuentes al menos de esta charla en particular.</p>
<p>Les dejo también el video "promocional" que grabamos con Ricardo Colusso invitando al evento. No es la gran cosa, pero nos divertimos produciéndolo, como se imaginarán:</p>
<p><iframe src="http://www.youtube.com/embed/tE_XZm7SSnU" width="420" height="315" frameborder="0"></iframe></p>Martin Saliashttp://www.blogger.com/profile/18122086046496078782noreply@blogger.com0tag:blogger.com,1999:blog-7509451738776858118.post-24948042368234780502012-09-12T16:42:00.001-03:002012-09-12T16:42:35.476-03:00Aplicaciones Windows 8 en el RUN Buenos Aires<p>En marzo de este año participé con varios amigos de este evento en el que Microsoft presentó las novedades de su plataforma de desarrollo para Windows 8, sobre todo lo que en ese momento se conocía como estilo "Metro", que hoy renombraron, en la versión final, como "Modern UI".</p>
<p>Pasaron varios meses, pero encontré de casualidad el video de nuestra sesión en Channel 9. Probablemente me hayan avisado y se me pasó, pero lo dejo debajo como recordatorio, y por si a alguien le interesa. </p>
<p>Hasta el minuto 30 llega la introducción a la plataforma a cargo de <a href="https://twitter.com/masaez">Miguel Sáez</a> de Microsoft. Siguen <a href="https://twitter.com/aeidelman">Adrián Eidelman</a> y <a href="https://twitter.com/MatiasIacono">Matías Iacono</a> de <a href="https://twitter.com/KineticaArg">Kinetica</a> contando sobre el modelo de desarrollo con HTML5 y JS, y en el minuto 54 arrancamos <a href="https://twitter.com/damipoo">Damián Martínez Gelabert</a> y yo.</p>
<p><iframe src="http://channel9.msdn.com/Events/RUN/RUN-2012-Buenos-Aires/RUN-2012-Buenos-Aires-Desarrollo-Estilo-Metro-en-Windows-8/player?w=960&h=544" style="height: 544px; width: 960px;" scrolling="no" frameborder="0"></iframe></p>Martin Saliashttp://www.blogger.com/profile/18122086046496078782noreply@blogger.com1tag:blogger.com,1999:blog-7509451738776858118.post-38185799258729944882012-08-17T17:00:00.001-03:002012-08-17T17:00:39.520-03:00Azure Deep Dive en Channel 9<p><img style="float: right;" title="Channel9logo.png" src="http://lh5.ggpht.com/-j0DprA-YkNo/UC6iHtXoHPI/AAAAAAAAGRs/vhyOceto9ys/Channel9logo.png?imgmax=800" alt="Channel 9" width="273" height="138" border="0" /></p>
<p>Los videos del evento Azure Deep Dive que había anticipado tiempo atrás ya están disponibles en <a href="http://channel9.msdn.com/">Channel 9</a>, el sitio de la comunidad de desarrollo de Microsoft, editados y en un contexto más terminado.</p>
<p>Quedaron disponibles 4 de las sesiones:</p>
<ul>
<li><a href="http://channel9.msdn.com/posts/Workshop-Windows-Azure-Introduccin-a-Windows-Azure-junio-2012-lanzamiento">Introducción a Windows Azure July 2012 release</a>, con Fernando Aramburu y conmigo<br /><img title="IntroAzureFront.png" src="http://lh5.ggpht.com/-enFuMBGzw5s/UC6iMppgPBI/AAAAAAAAGR0/zkn60sJybt4/IntroAzureFront.png?imgmax=800" alt="Intro Azure July 12" width="513" height="289" border="0" /> <br /> </li>
<li><a href="http://channel9.msdn.com/posts/Workshop-Windows-Azure-Sitios-de-Windows-Azure-en-Nodejs-y-Java">Azure websites con Node.js y con Java,</a> a cargo de Nico Páez<br /><a href="http://channel9.msdn.com/posts/Workshop-Windows-Azure-Sitios-de-Windows-Azure-en-Nodejs-y-Java"><img title="AzureNodeJava.png" src="http://lh6.ggpht.com/-rtMAhrWhE8Q/UC6i41hMWOI/AAAAAAAAGSM/qRs0WnnrBPk/AzureNodeJava.png?imgmax=800" alt="Node y Java en Azure" width="512" height="288" border="0" /></a><br /> </li>
<li><a href="http://channel9.msdn.com/posts/Workshop-Windows-Azure-Hadoop-en-Windows-Azure">Hadoop en Azure</a>, presentado por Ale Jezierski<br /><a href="http://channel9.msdn.com/posts/Workshop-Windows-Azure-Hadoop-en-Windows-Azure"><img title="HadoopAzure.png" src="http://lh3.ggpht.com/-8AWO_qzxf1s/UC6iQz3h4JI/AAAAAAAAGR8/IkR3FeYQ0yY/HadoopAzure.png?imgmax=800" alt="Hadoop en Azure" width="512" height="288" border="0" /></a> <br /><br /></li>
<li><a href="http://channel9.msdn.com/posts/Workshop-Windows-Azure-Windows-Azure-servicios-en-la-nube">Azure Services</a>, presentados por <span style="color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px;">Emiliano Nieto y Miguel Boriani</span><br /><a href="http://channel9.msdn.com/posts/Workshop-Windows-Azure-Windows-Azure-servicios-en-la-nube"><img title="AzureServices.png" src="http://lh4.ggpht.com/-W7qPLvXbi98/UC6i3nK7v4I/AAAAAAAAGSE/prcp6tJRvoU/AzureServices.png?imgmax=800" alt="Azure Services" width="512" height="287" border="0" /></a> </li>
</ul>
<p> </p>Martin Saliashttp://www.blogger.com/profile/18122086046496078782noreply@blogger.com0tag:blogger.com,1999:blog-7509451738776858118.post-45888730573435818202012-08-01T09:34:00.001-03:002012-08-01T09:34:51.537-03:00Last day at Southworks<p><img style="float: right;" title="swlogo200.png" src="http://lh3.ggpht.com/-ZwxO3DfccdE/UBkiWMEZnsI/AAAAAAAAGO0/Y201JO7Ka98/swlogo200.png?imgmax=800" alt="Southworks" width="200" height="37" border="0" /></p>
<p>Yesterday (July 31) was my last day at Southworks, the company I joined four years ago.</p>
<p>I really start this new phase of my career with some sadness, certainly, after finding an awesome group of people, an organization really close to my ideals around software development, and tons of very interesting projects.</p>
<p>I left Southworks with many lessons learned, a passionate development spirit we built in common, and many great friends who shared a lot of exciting work and fun.</p>
<p>But it was time to move on to new challenges. I'm getting involved in several new projects, and I hope to be able to start sharing soon some of the first outcomes from them.</p>
<p>The picture below is from last year's toast, with most of our team at the amazing lounge at the first floor.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" title="SW2011eoy.png" src="http://lh3.ggpht.com/-FQBPGJsVEjU/UBkiZz5C-GI/AAAAAAAAGO8/Zs8OZukxKq0/SW2011eoy.png?imgmax=800" alt="Brindis a fin de 2011" width="800" height="408" border="0" /></p>
<p>Beside sorrow I also keep the satisfaction of having contributed to the growth of such a wonderful company. I will surely keep pushing for it from somewhere else, and with its people (current and former <em>southies</em>).</p>
<p>¡Warm hugs to all of my fellow <em>southies</em>!</p>Martin Saliashttp://www.blogger.com/profile/18122086046496078782noreply@blogger.com4tag:blogger.com,1999:blog-7509451738776858118.post-88878913216631090272012-07-18T15:47:00.001-03:002012-07-18T15:52:22.306-03:00Videos del Azure Deep Dive en Buenos Aires<p>En el post anterior mencionaba la participación en este evento con mis colegas de Southworks. Gracias a <a href="https://twitter.com/dominiodigital">Claudio Regis</a> de <a href="http://www.dominiodigitaltv.com/">Dominio Digital</a> podemos compartir con ustedes algunos de los videos del evento.</p>
<p>Debajo dejo los vídeos de la introducción a Azure que hicimos con <a href="https://twitter.com/fernaramburu">Fernando Arámburu</a> de <a href="http://nuba.com.ar/">Nuba</a>, y a continuación las sesiones de <a href="https://twitter.com/alexjota">Ale Jezierski</a> presentando Hadoop en Azure y luego <a href="https://twitter.com/inicopaez">Nico Páez</a> presentando websites en Node.js y Java.</p>
<p><iframe src="http://player.vimeo.com/video/45602872" width="500" height="281" frameborder="0"></iframe></p>
<p><iframe src="http://player.vimeo.com/video/45665139" width="500" height="281" frameborder="0"></iframe></p>
<p><iframe src="http://player.vimeo.com/video/45663808" width="500" height="281" frameborder="0"></iframe></p>
<p> </p>
<p> </p>Martin Saliashttp://www.blogger.com/profile/18122086046496078782noreply@blogger.com0tag:blogger.com,1999:blog-7509451738776858118.post-61375745969106832052012-06-29T17:16:00.001-03:002012-06-29T17:28:33.361-03:00Azure Deep Dive en Microsoft de Argentina<p>El martes y miércoles de esta semana estuvimos con mis colegas de <a href="http://blogs.southworks.net/">Southworks</a> (<a href="https://twitter.com/alexjota">Ale Jezierski</a>, <a href="https://twitter.com/inicopaez">Nico Paez</a>, <a href="https://twitter.com/nbellocam">Nico Bello</a>, <a href="https://twitter.com/hmeydac">Hernán Meydac Jean</a>, <a href="https://twitter.com/AniHojnadel">Anahí Hojnadel</a> y <a href="https://twitter.com/cpaez">Charly Paez</a>) brindando este entre entrenamiento en las oficinas de Microsoft Argentina, invitados por nuestro amigo <a href="https://twitter.com/aschapiro">Ariel Schapiro</a>. También compartimos el evento con la buena gente de <a href="http://nuba.com.ar/">Nuba</a>, con quienes nos divertimos mucho.</p>
<p>La mayor parte del entrenamiento estuvo basado en el <a href="https://www.windowsazure.com/en-us/develop/net/other-resources/training-kit/">Azure Training Kit</a> que ayudamos a Microsoft Corp a construir y publicar, y trabajamos en bloques en los que explicábamos los diferentes servicios y la audiencia (convocada con sus notebooks) tenía la oportunidad de ir practicando los labs.</p>
<p>Uno de los bloques lo dedicamos a algunas características avanzadas o especiales, como <a href="https://www.hadooponazure.com/">Hadoop</a>, aplicaciones en <a href="https://www.windowsazure.com/en-us/develop/nodejs/">Node.js</a> desplegadas desde Linux, aplicaciones <a href="https://www.windowsazure.com/en-us/develop/java/">Java</a> desde Eclipse, y varios toolkits disponibles para dispositivos (en los que también colaboramos con Microsoft recientemente) como <a href="http://watwp.codeplex.com/">Windows Phone</a>, <a href="https://github.com/microsoft-dpe/wa-toolkit-android">Android</a>, <a href="https://github.com/microsoft-dpe/wa-toolkit-ios">iOS</a>, <a href="http://watwindows8.codeplex.com/">Windows 8</a>, y también uno para <a href="https://github.com/WindowsAzure-Toolkits/wa-toolkit-games">Social Games</a>.</p>
<p>Como estas presentaciones no están disponibles en el Training Kit, dejo los links debajo (no están las demos que los chicos prepararon, pero van a encontrar referencia a material similar en los slides:</p>
<div id="__ss_13497563" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a title="Hadoop onwindowsazure" href="http://www.slideshare.net/alejandrojezierski/hadoop-onwindowsazure" target="_blank">Hadoop onwindowsazure</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/13497563" style="border: 1px solid #CCC; border-width: 1px 1px 0;" width="425" height="355" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
<div style="padding: 5px 0 12px;"><strong style="display: block; margin: 12px 0 4px;"><br /></strong></div>
<div style="padding: 5px 0 12px;"><strong style="display: block; margin: 12px 0 4px;"><a title="Windows Azure DPE Toolkits" href="http://www.slideshare.net/nbellocam/windows-azure-dpe-toolkits" target="_blank">Windows Azure DPE Toolkits</a></strong></div>
</div>
<div id="__ss_13496882" style="width: 425px;"><iframe src="http://www.slideshare.net/slideshow/embed_code/13496882" style="border: 1px solid #CCC; border-width: 1px 1px 0;" width="425" height="355" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></div>
<div style="width: 425px;"> </div>
<div style="padding: 5px 0 12px;">Y la de Nico que está en <a href="https://www.box.com/s/066851a4d8e7c893cba1">https://www.box.com/s/066851a4d8e7c893cba1</a> y no puedo embeber directamente (si pueden verla online y descargarla).</div>
<p>Dejo una foto del evento, que está tomada de este <a href="http://photosynth.net/view.aspx?cid=8f622111-1944-4d8f-9373-64ad1224b533">Photosynth</a> que armó Ariel.</p>
<p><img title="AzureDeepDiveBA2012.png" src="http://lh6.ggpht.com/-NXiGREc3TIA/T-4M-5h0IvI/AAAAAAAAF_c/eHC41IVdiME/AzureDeepDiveBA2012.png?imgmax=800" alt="Azure Deep Dive" width="1134" height="381" border="0" /></p>Martin Saliashttp://www.blogger.com/profile/18122086046496078782noreply@blogger.com0tag:blogger.com,1999:blog-7509451738776858118.post-70948216882054202622011-06-27T09:31:00.001-03:002011-06-27T09:31:14.090-03:00Azure Bootcamp en Buenos Aires<p><img style="float: right;" title="Bootcamp.png" src="http://lh6.ggpht.com/-JvVNkCN_TSM/Tgh4DBuV4CI/AAAAAAAABIk/n4r3JaKP9fA/Bootcamp.png?imgmax=800" border="0" alt="Azure Bootcamp" width="400" height="300" /></p>
<p>En abril de este año se corrió otra edición del <a href="http://www.azurebootcamp.com/city/buenosaires">Windows Azure Bootcamp en Buenos Aires</a>.</p>
<p>Este es un evento organizado directamente por Microsoft que se presenta en ciudades de todo el mundo, con oradores de la compañía o especialistas externos.</p>
<p>A lo largo de dos días se recorre la plataforma completa, incluyendo los diversos roles, mecanismos de almacenamiento, SQL Azure, y todo lo demás.</p>
<p>Hay muchas sesiones por temas, cubriendo la parte teórica y práctica, y usualmente los asistentes se quedan con una cuenta de prueba (que dura un tiempo) además de realizar varios ejercicios durante el evento.</p>
<p>Ya participé en varias ediciones de este evento y me quedó como un clásico el tema de Diagnóstico y Monitoreo, que no es de lo más divertido, pero si es importante a la hora de armar aplicaciones complejas o que requieran escalar considerablemente.</p>
<p>Esta vez tuve la suerte de que me acompañara mi colega en Southworks, <a href="http://blogs.southworks.net/cpaez/">Carlos Páez</a>, que tiene mucho tiempo trabajado sobre Azure, y colaboró en la actualización de los Training Kits de la plataforma.</p>
<p>Otra novedad en esta última edición es que se grabaron todas las sesiones, así que los interesados pueden consumirlas a demanda. Los videos está disponibles en <a href="http://www.azurebootcamp.com/materials">la página de materiales</a> del evento, para poder ser descargados.</p>
<p>Para facilitar un poco el consumo de nuestra sesión, por lo menos, dejamos el video subido a Vimeo, de manera de poder compartirlo más fácilmente, directamente en este post.</p>
<p><iframe src="http://player.vimeo.com/video/25513845?title=0&byline=0&portrait=0" width="400" height="225" frameborder="0"></iframe></p>
<p> </p>Martin Saliashttp://www.blogger.com/profile/00604319815514553479noreply@blogger.com1tag:blogger.com,1999:blog-7509451738776858118.post-11967167946203178942011-03-15T19:34:00.001-03:002011-03-15T19:34:59.817-03:00Run WebCamp 2011 en Buenos Aires<p><img style="float: left;" title="RunWebCamp.png" src="http://lh3.ggpht.com/_UL5xJ4XsSh8/TX_pkfdO-1I/AAAAAAAABCE/yxWD4THuK0o/RunWebCamp.png?imgmax=800" border="0" alt="Run WebCamp" width="164" height="189" /></p>
<p>Hoy participé en el <a href="http://www.codeandbeyond.org/2011/02/run-web-camp-en-buenos-aires.html">Run WebCamp</a> organizado por Microsoft de Argentina, en el barrio de Palermo, Buenos Aires.</p>
<p><img style="float: right;" title="DaniLaco.png" src="http://lh4.ggpht.com/_UL5xJ4XsSh8/TX_pjooy1rI/AAAAAAAABCA/p1i-oN8l8Sg/DaniLaco.png?imgmax=800" border="0" alt="Dani Laco" width="78" height="100" /></p>
<p>Dentro de esta conferencia dedicada a desarrollo web en la plataforma Microsoft, me tocó presentar Entity Framework junto a mi viejo amigo <a href="https://mvp.support.microsoft.com/profile/Laco">Daniel Laco</a>, con quien a pesar de los años que llevamos en la comunidad de desarrollo, nunca habíamos hecho un dueto.</p>
<p>La verdad es que más allá del resultado final, que el público juzgará, fue un placer dar una sesión con Dani y logramos completar todo el temario, que era bastante exigente, en 45 minutos exactos, con buen <em>timing</em> y sin pisarnos.</p>
<p>Como prometimos durante la charla, quedan aquí los links para descargar <a href="http://dl.dropbox.com/u/552847/RunWebCamp2011/Run%20WebCamp%20EF.pdf">la presentación</a> (recortada solo con el material importante y referencias), y los ejemplos, una<a href="http://dl.dropbox.com/u/552847/RunWebCamp2011/EFDemoFull.zip"> solución completa con muchos ejemplos en detalle</a> (cortesía de Dani), y una <a href="http://dl.dropbox.com/u/552847/RunWebCamp2011/CodeFirst-Mini.zip">solución mínima mostrando lo básico de Code First</a> (culpa mía).</p>
<p> </p>
<p>Me siento halagado de haber participado con otros oradores muy buenos y muchos amigos, como Edu Mangarelli y Miguel Sáez, Phil Haack y Drew Robbins, Rodo Finochietti y Pablo Zaiden, y por supuesto, mis compañeros de ruta Johnny Halife y Mati Woloski.</p>
<p>El evento se emitió en vivo a través de <a href="http://www.ustream.tv/channel/run-web-camp">UStream</a> y espero que pronto quede disponible para verlo en video, idealmente con las charlas por separado.</p>
<p> </p>Martin Saliashttp://www.blogger.com/profile/00604319815514553479noreply@blogger.com2tag:blogger.com,1999:blog-7509451738776858118.post-15217786460285216872011-01-04T09:07:00.001-03:002011-01-04T09:07:35.503-03:00MVP 2011 y objetivos para este año<p><img style="float: right;" title="MVP.jpg" src="http://lh3.ggpht.com/_UL5xJ4XsSh8/TSMNhKOHABI/AAAAAAAAA28/40Ie25d8ntY/MVP.jpg?imgmax=800" border="0" alt="Most Valuable Professional" width="244" height="101" /></p><p>Otra vez, como desde hace años ya, arranco el año con la agradable noticia de que Microsoft me ha premiado como Most Valuable Professional. Siempre es un honor la distinción, aunque sigo sin saber muy bien qué es lo que consideran tan valioso en mi.</p><p>Nuevamente me premian en la categoría "C#", que por lo visto es algo así como un comodín para actividades mas bien ligadas a los lenguajes.</p><p>Como sea, es bueno sentirse reconocido, y un honor cuando uno queda cerca de la categoría de gente a la que admira. Y estas cosas refuerzan esta idea organizativa de fijarse objetivos para el año. Es cierto que es un plazo matemáticamente arbitrario, pero útil a nivel de planificación. Es como un relajado <em>backlog</em> personal que uno puede auto-imponerse para tratar de planificar después el corto plazo, semana tras semana o mes tras mes.</p><p>Pero hacer pública una lista de objetivos es una manera de dejar un compromiso más alto que simplemente proponerse algo. Uno sueña con un lector hipotético que algún día vendrá a reclamar si no se cumple nada de lo planeado.</p><p>Así, aquí van mis objetivos para el año, que iré atacando, por supuesto, de manera iterativa:</p><ul><li>Lenguaje del año: como todos los años, en el 2011 trataré de aprender y comprender un lenguaje nuevo. Para mi comprender un lenguaje de programación significa conocer bastante su idiosincracia, el paradigma con el que está diseñado, sus puntos sobresalientes y problemáticos, y acercarme a la manera en que funciona la comunidad y el ecosistema detrás. Eso implica aprender, hacer <a href="http://codekata.pragprog.com/">katas</a>, programar en ese lenguaje proyectos lo más reales posibles, y tratar de compartir todo lo posible lo aprendido, sobre todo haciendo algunas presentaciones en vivo o en video. Explicando a los demás, como dice el <a href="http://msmvps.com/blogs/lopez/">Maestro</a>, es como más fácilmente nos "cae la ficha" y afianzamos nuestros conceptos.<br /><br />El 2010 lo dediqué a Ruby (aunque personalmente no profundicé tanto como me hubiese gustado), después de zambullirme en F#, volver a Python (para quedarme -hoy lo uso cotidianamente e incluso tengo <a href="https://chrome.google.com/extensions/detail/gdiimmpmdoofmahingpgabiikimjgcia">un shell de Python siempre a mano</a>, dentro de Chrome), jugar con Boo, meterme en C# desde Generics hasta el IL generado, tratar de avanzar con Eiffel, debatirme entre Haskell y ML (sin lograr mucho con ellos por mis propias limitaciones).<br /><br />A la hora de elegir un lenguaje para este año que inicia, prefiero terminar lo que empecé, y voy a dedicarme más a Ruby, pero esta vez específicamente a <strong>Rails y Sinatra</strong>, donde no hice tanto hincapié. Mi mayor avance con Ruby el año pasado fue entender el lenguaje mismo y usarlo para todas mis tareas principales de <em>scripting</em> y algunas aplicaciones desktop que necesitaba (si, es raro ver aplicaciones desktop en Ruby, pero se puede). Esta decisión tiene impacto directo en algunos de los siguientes objetivos, como se verá.<br /><br /></li><li>Me quedó pendiente, por varios motivos, dar un<strong> taller sobre Ruby</strong>, que quiero encarar este año. El principal problema fue que las veces que lo propuse lo hice junto a otras alternativas que sonaron más interesantes. Pero como es algo que personalmente quiero hacer, voy a ponerme en campaña por mi lado, y terminaré con alguna serie de videos en mi otro blog, <a href="http://www.codeandbeyond.org/">Code & Beyond</a>, y probablemente lo de presencialmente en el <a href="http://www.mug.org.ar/">MUG</a> o algun otro lado.</li><li>Hace tiempo tengo pendiente reconstruir mi sitio personal, que es una recopilación de servicios, links a trabajos, mis libros, películas, etc. Todo eso está armado con un antiquísimo script en Python que genera páginas estáticas ASP. En su momento no fueron HTML plano para poder incluir un par de cosas, pero en realidad son básicamente eso. No hay una base de datos detrás, nada dinámico. Los datos son fuentes diversas en mi máquina que se procesa(ba)n para generar las páginas. Y hace tiempo que no se refresca esa información, salvo lo que proviene de servicios como <a href="http://www.delicious.com/">delicious</a>.<br /><br />Así que tengo un buen ejercicio a mano: rediseñar el sitio, pensándolo mejor (aunque el objetivo básico seguirá siendo tener consolidada una cantidad de información que está dispersa en la web) y usarlo como una práctica de Rails y también de actualizar mi conocimiento en HTML/CSS, que está algo vetusto.</li><li>Otro objetivo, a cumplir en el corto plazo, es actualizar mi hardware. Seguiré con una Mac, pero estoy cambiándola en breve por una de las nuevas <strong>MacBook Air</strong>, que ya tendrá su propia reseña.<br /><br />Y en consecuencia con el cambio, también quiero aprender este año <a href="http://developer.apple.com/applescript/">Applescript</a>. Hasta ahora todas mis tareas en la Mac las automaticé entre un poco de bash y Ruby, pero hay muchas cosas en las que el scripting nativo de la Mac va ayudarme con seguridad. Además, la gente de Apress me regaló el libro "<a href="http://apress.com/book/view/9781430223610">Learn AppleScript: The Comprehensive Guide to Scripting and Automation on Mac OS X, Third Edition</a>", así que ¡no me quedan excusas!<br /><br /></li><li>Finalmente, como todos los años, sigo rumiando los bocetos de un libro (técnico), pero no quiero auto-imponerme una fecha límite para eso, porque todavía no tengo el temario final cerrado en mi cabeza. De alguna manera, <a href="http://codeandbeyond.org">Code & Beyond</a> es una especie de lista de notas que me llevan en ese camino.</li></ul><p>No es una lista tan grande. Espero llegar con todo terminado bastante antes de fin del año próximo, así que corto aquí y me pongo a trabajar.</p><p> </p>Martin Saliashttp://www.blogger.com/profile/00604319815514553479noreply@blogger.com0tag:blogger.com,1999:blog-7509451738776858118.post-37870211314109302662010-12-01T11:49:00.001-03:002010-12-01T11:54:22.030-03:00Video: Virtual Alt.NET Meeting sobre Cloud Computing<p>Hace unas semanas participé en otra reunión virtual de <a href="http://www.altnethispano.org/">Alt.NET Hispano</a>, hablando un poco sobre Cloud Computing.</p><p>Gracias como siempre a <a href="http://www.jorgegamba.com/blog/">Jorge Gamba</a> y el resto del equipo de voluntarios, ya está publicado el video, que dejo embebido aquí abajo, pero recuerden que pueden ver cualquiera de los <a href="http://www.altnethispano.org/reuniones/historico.aspx">videos de la reuniones anteriores</a>.</p><p><object type="application/x-shockwave-flash" data="http://content.screencast.com/users/AltNetHispano/folders/VAN/media/3a67a5e5-7be2-40c8-beed-ca406783e2c3/flvplayer.swf" width="600" height="468"><param name="movie" value="http://content.screencast.com/users/AltNetHispano/folders/VAN/media/3a67a5e5-7be2-40c8-beed-ca406783e2c3/flvplayer.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="thumb=http://content.screencast.com/users/AltNetHispano/folders/VAN/media/3a67a5e5-7be2-40c8-beed-ca406783e2c3/FirstFrame.jpg&containerwidth=600&containerheight=468&content=http://content.screencast.com/users/AltNetHispano/folders/VAN/media/3a67a5e5-7be2-40c8-beed-ca406783e2c3/van-2010-11-12.flv&blurover=false" /><param name="allowFullScreen" value="true" /><param name="scale" value="showall" /><param name="allowScriptAccess" value="always" /><param name="base" value="http://content.screencast.com/users/AltNetHispano/folders/VAN/media/3a67a5e5-7be2-40c8-beed-ca406783e2c3/" /> Unable to display content. Adobe Flash is required.<br /></object></p>Martin Saliashttp://www.blogger.com/profile/00604319815514553479noreply@blogger.com0tag:blogger.com,1999:blog-7509451738776858118.post-12259070024751647542010-11-08T17:20:00.001-03:002010-11-08T17:20:15.555-03:00Arquitectura de Software en el Ciclo de Vida Agil<p>Durante el mes de octubre tuvimos nuevamente la oportunidad de facilitar nuestro auditorio en <a href="http://blogs.southworks.net">Southworks</a> para otro desayuno de arquitectos de los que organiza Microsoft.</p><p>Esta vez, a diferencia de los últimos, en que sólo me tocó oficiar de anfitrión, <a href="http://twitter.com/guadacasuso">Guada</a> me pidió que presentara, ya que el tema elegido por el grupo tenía que ver con documentación y validación de arquitectura, algo sobre lo que vengo trabajando bastante fuerte, incluyendo <a href="http://msdn.microsoft.com/en-us/architecture/ff476940.aspx">el artículo que publicamos al respecto</a> con <a href="http://diegofontdevila.wordpress.com/">Diego Fontdevila</a> en el n<a href="http://msdn.microsoft.com/en-us/architecture/ff476933.aspx">úmero 23 del Architecture Journal</a>.</p><p>Casualmente, la sesión estuvo basada en la que presentamos con Diego en <a href="http://agiles2010.agiles.org/">Agiles 2010</a>, un par de semanas antes, en Lima, adaptada ligeramente a este público que tiene un perfil diferente.</p><p>Gracias a <a href="http://blogs.southworks.net/jscopinaro/">Julián Scopinaro</a>, la sesión quedó capturada en video, que comparto aquí abajo.</p><p><iframe src="http://player.vimeo.com/video/16210009" width="400" height="225" frameborder="0"></iframe></p><p><a href="http://vimeo.com/16210009">Architects' Breakfast: Architecture in Agile Life Cycle - Part 1</a> from <a href="http://vimeo.com/southworks">Southworks Showcase</a> on <a href="http://vimeo.com">Vimeo</a>.</p><p><iframe src="http://player.vimeo.com/video/16279381" width="400" height="225" frameborder="0"></iframe></p><p><a href="http://vimeo.com/16279381">Architects' Breakfast: Architecture in Agile Life Cycle - Part 2</a> from <a href="http://vimeo.com/southworks">Southworks Showcase</a> on <a href="http://vimeo.com">Vimeo</a>.</p>Martin Saliashttp://www.blogger.com/profile/00604319815514553479noreply@blogger.com0tag:blogger.com,1999:blog-7509451738776858118.post-737224173071956512010-11-03T11:09:00.001-03:002010-11-03T11:10:28.758-03:00Code & Beyond: hablando muchos lenguajes, pero en español<p><img style="float: right;" title="cb-iso.png" src="http://lh4.ggpht.com/_UL5xJ4XsSh8/TNFtT_VDKJI/AAAAAAAAAv0/WCpMFloUXRI/cb-iso.png?imgmax=800" border="0" alt="Code & Beyond" width="203" height="203" /></p><p>Para quienes han sido fieles lectores de este blog algo abandonado, no podía dejar de invitarlos a seguir mi nueva iniciativa: <a href="http://www.codeandbeyond.org/">Code & Beyond</a>.</p><p>El objetivo de este blog (que pronto contará con videos además de noticias) es difundir contenido interesante sobre desarrollo de software en cualquier plataforma y lenguaje, inicialmente al menos, apuntando al mercado hispano-parlante.</p><p>La idea es algo que venía rondándome hace tiempo, y que se impulsó por una serie de posibilidades y también gracias al soporte y perseverancia de mi amigo <a href="http://blogs.southworks.net/jscopinaro">Julián Scopinaro</a>, con quien compartimos tareas de comunicación en <a href="http://blogs.southworks.net/">Southworks</a>.</p><p>Hay una breve introducción en <a href="http://www.codeandbeyond.org/2010/10/bienvenidos-code-beyond.html">el primer post</a>, pero aprovecho este blog, más personal, para exponer porqué me parece importante cubrir el espectro "multi-plataforma":</p><p>Por un lado, buena parte de mi carrera la dediqué de una manera u otra a proyectos con problemática fuerte de interoperabilidad, y es una especialidad que me ha sido valiosa y me ha generado muchas oportunidades. Incluso a lo largo de 20 años de relación con Microsoft, ellos mismos me han elegido varias veces para ayudarlos en proyectos que involucraban piezas más allá de su plataforma, y a medida que pasa el tiempo, veo que es cada vez más raro que una solución se pueda diseñar para un entorno homogéneo.</p><p>Desde otro ángulo, creo que entender y apreciar otras plataformas nos hace más sólidos y aumenta nuestra capacidad de discernimiento sobre las que estamos usando principalmente en un momento u otro. Desde el punto de vista de la arquitectura de software, por definición no deberíamos permitirnos tomar decisiones con un sesgo específico. Por supuesto, esto no significa que al evaluar alternativas para una solución no consideremos el valor de una plataforma que está más afianzada en la organización, o el equipo domina más. El tema es evitar la decisión por temor o ignorancia (si es que no son al final la misma cosa).</p><p>Tal vez el ejercicio y la disciplina que me exige Code & Beyond me haga escribir más frecuentemente en éste y otros blogs. Éste en particular seguirá siendo un punto donde hablar desde una perspectiva más personal, o compartir material o contenido de actividades mías no relacionadas directamente con el otro.</p>Martin Saliashttp://www.blogger.com/profile/00604319815514553479noreply@blogger.com1tag:blogger.com,1999:blog-7509451738776858118.post-15599657965151886452010-05-14T16:54:00.001-03:002010-05-14T16:54:38.272-03:00Presentando Southworks Professional Improvement Program<p>Muchos de ustedes ya habrán leído sobre el proyecto Hogwarts en el <a href="http://msmvps.com/blogs/lopez/archive/2010/03/26/hogwarts_2D00_project.aspx">blog del Maestro</a>.</p><p>La motivación de este proyecto es aportar a la comunidad las prácticas de desarrollo de software que creemos fundamentales en <a href="http://blogs.southworks.net">Southworks</a>, y que consistentemente vemos ignoradas o utilizadas parcialmente.</p><p><img style="float: right;" title="Screen shot 2010-05-14 at 4.15.39 PM.png" src="http://lh5.ggpht.com/_UL5xJ4XsSh8/S-2qesjtM1I/AAAAAAAAAnU/kgF0ML2-FUE/Screen%20shot%202010-05-14%20at%204.15.39%20PM.png?imgmax=800" border="0" alt="Pruebas Unitarias" width="194" height="191" /></p><p>Esto cubre un abanico de metodologías, técnicas y espacios conceptuales bastante amplio, dentro de los cuales arrancamos con un primer curso cubriendo estos temas:</p><p> </p><ul><li>Test-Driven Development</li><li>Inversión de Control e Inyección de Dependencias</li><li>Mocking</li><li>Principios SOLID</li><li>Ejercicios generales utilizando todas la técnicas</li></ul><p>Para cada uno de estos temas tenemos un conjunto de presentaciones, material de soporte para el instructor, proyectos de ejemplo con complejidad creciente y ejercicios de distinta dificultad incluyendo algunas soluciones de referencia.</p><p>También tenemos prevista la evaluación posterior a cada curso sobre los resultados de los ejercicios y una serie de preguntas para verificar los conceptos teóricos.</p><p> </p><p>Nuestro plan inicial se enfocaba principalmente en generar todo este contenido para ejecutar clases presenciales, pero siempre pensamos en compartir en línea una buena parte para llegar a personas interesadas que no podemos alcanzar físicamente.</p><p>Sin embargo, la recepción que ha tenido lo que publicó Angel hasta ahora (por ejemplo el <a href="http://www.youtube.com/user/ajlopez2000#p/a/u/1/VSbx88NJ4-4">primer</a> y <a href="http://www.youtube.com/user/ajlopez2000#p/a/u/0/d6JrhC1u2Dw">segundo</a> videos), nos impulsó a acelerar el avance de la faceta en línea del proyecto. El resultado es que estamos muy cerca de abrir a la comunidad el proyecto, basado en la plataforma de entrenamiento <a href="http://moodle.org/">Moodle</a>, funcionando por supuesto desde nuestra infraestructura en la nube.</p><p>Por supuesto, no descuidaremos la interacción cara a cara. La diferencia es que las sesiones presenciales serán complementarias al contenido en línea, para despejar dudas y realizar prácticas en conjunto. Y obviamente no sólo estarán a cargo y cerca nuestro. Esperamos que diversos grupos puedan replicarlas en forma local.</p><p>Interesados: permanecer atentos a este blog y el de <a href="http://msmvps.com/blogs/lopez/">Angel</a>. La semana próxima deberíamos estar publicando el sitio final del proyecto. Hogwarts es el nombre de código del proyecto (otra práctica recomendable), pero el nombre oficial, que estamos presentando en sociedad es el del título:</p><p><strong>Southworks Professional Improvement Program</strong></p><p> </p>Martin Saliashttp://www.blogger.com/profile/00604319815514553479noreply@blogger.com2tag:blogger.com,1999:blog-7509451738776858118.post-35350593146314436222010-05-12T18:12:00.001-03:002010-05-12T18:15:16.909-03:00CloudCamp Buenos Aires<p>El 7 de mayo, la semana pasada, tuvimos la oportunidad de presentar en nuestras oficinas de <a href="http://www.southworks.net/">Southworks</a> el primer <a href="http://cloudcamp.org">CloudCamp</a> en Buenos Aires.</p><p><img style="display: block; margin-left: auto; margin-right: auto;" title="IMG_9477.JPG" src="http://lh4.ggpht.com/_UL5xJ4XsSh8/S-sZvBAolGI/AAAAAAAAAnA/HeiPnZSjtOQ/IMG_9477.png?imgmax=800" border="0" alt="Asistentes a l CloudCamp" width="600" height="369" /></p><p>El evento salió muy bien, desde mi punto de vista y por el feedback de la gente, y esperamos compartir muy pronto algunos videos grabados durante el evento.</p><p><span style="font-size: small;"><span style="font-size: 11px;"><img style="float: right;" title="IMG_9473.JPG" src="http://lh6.ggpht.com/_UL5xJ4XsSh8/S-sZtZyBZNI/AAAAAAAAAm8/A8sSova2gEc/IMG_9473.JPG?imgmax=800" border="0" alt="Dave Nielsen en la apertura" width="200" height="128" /></span></span></p><p>Tuvimos la presencia de uno de los fundadores del CloudCamp, <a href="http://twitter.com/davenielsen">Dave Nielsen</a>.</p><p>Dave realizó la apertura del evento, explicando la estructura y la mecánica del evento, que contó con presentaciones relámpago (de 5 minutos) de cada uno de los sponsors: Microsoft, Southworks y Globant.</p><p>Luego de estas presentaciones pasamos al Unpanel (un anti-panel), con expertos que se propusieron como voluntarios en el momento mismo y contestaron a las preguntas de los asistentes.</p><p><img style="float: right;" title="IMG_9504.JPG" src="http://lh6.ggpht.com/_UL5xJ4XsSh8/S-sZxF4OzJI/AAAAAAAAAnI/JtWwFaoAMbg/IMG_9504.JPG?imgmax=800" border="0" alt="IMG_9504.JPG" width="200" height="229" /></p><p>El trío de expertos quedó conformado por:</p><ul><li><a href="http://community.jrapid.com/profile/MatiasBagini">Matías Bagini</a> de <a href="http://www.jrapid.com/">JRapid</a> (y organizador del Amazon User Group de Argentina)</li><li><a href="http://blogs.msdn.com/scottdensmore/">Scott Densmore</a> de <a href="http://msdn.microsoft.com/en-us/practices/">Microsoft patterns & practices</a> (en la foto junto a él, <a href="http://blogs.msdn.com/eugeniop/">Eugenio Pace</a>, también de p&p, haciendo de intérprete).</li><li><a href="http://blogs.southworks.net/jhalife/">Johnny Halife</a> de Southworks</li></ul><p>A ellos se sumó parcialmente Dave en algunas respuestas del público, y de muchas de las preguntas se perfilaron los temas para las sesiones de los Open Spaces posteriores, a las que se sumaron algunas propuestas que el público votó en el momento.</p><p>Los temas que quedaron fueron:</p><ul><li>Private clouds</li><li>Migrando aplicaciones a Windows Azure</li><li>NoSQL (y otros patrones de acceso a datos)</li><li>Seguridad en la nube</li><li>Google App Engine</li></ul><p>En la foto aparecemos quienes quedamos a cargo de los temas, aunque en general se trató de discusiones participativas. De izquierda a derecha, <a href="http://blogs.southworks.net/aortega/">Beto Ortega</a> (Southworks), Scott Densmore (Microsoft), <a href="http://fabiomaulo.blogspot.com/">Fabio Maulo</a> (NHibernate), yo (Southworks) y <a href="http://twitter.com/pfrancav">Pablo Francavilla</a> (GetSense).</p><p><img style="display: block; margin-left: auto; margin-right: auto;" title="IMG_9513.JPG" src="http://lh6.ggpht.com/_UL5xJ4XsSh8/S-sZx_d7qSI/AAAAAAAAAnM/fyRQ_wK4pA4/IMG_9513.JPG?imgmax=800" border="0" alt="IMG_9513.JPG" width="400" height="254" /></p><p>Quiero agradecer especialmente a <a href="http://blogs.southworks.net/jscopinaro/">Julián Scopinaro</a> por su trabajo impecable coordinando todas la actividades necesarias para que el evento haya salido perfecto, a <a href="http://blogs.southworks.net/mszklanny/">Mariano "Pocho" Szklanny</a> por sus fotos (las de este post son apenas una muestra), y a nuestro cameraman exclusivo, <a href="http://blogs.southworks.net/gmaliandi/">Guido Maliandi</a>, quien capturó en video la mayor parte del evento, para que pronto podamos compartirlo con el resto del mundo.</p><p> </p>Martin Saliashttp://www.blogger.com/profile/00604319815514553479noreply@blogger.com0tag:blogger.com,1999:blog-7509451738776858118.post-8409625744782812732010-02-02T13:44:00.001-03:002010-02-02T13:44:08.363-03:00Video de mi VAN sobre Automatización<p>Gracias nuevamente a los amigos de <a href="http://altnethispano.org/">Alt.NET Hispano</a>, y sobre todo a <a href="http://blog.kudewe.com/">Fernando Claverino</a>, quien se tomó el trabajo de redactar el <a href="http://altnet-hispano.pbworks.com/van-2009-12-18-automatizacion">resumen disponible en la Wiki del grupo</a>, si quieren ahorrar una hora y media, que es lo que dura el video.</p> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="545" height="451" id="viddler_3697ccb4"><param name="movie" value="http://www.viddler.com/player/3697ccb4/" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><embed src="http://www.viddler.com/player/3697ccb4/" width="545" height="451" type="application/x-shockwave-flash" allowScriptAccess="always" allowFullScreen="true" name="viddler_3697ccb4"></embed></object> Martin Saliashttp://www.blogger.com/profile/00604319815514553479noreply@blogger.com0tag:blogger.com,1999:blog-7509451738776858118.post-36192069787382255402010-01-07T13:34:00.000-03:002010-02-02T13:35:51.950-03:00MVP otra vez<img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 10px 10px; display: inline; border-top: 0px; border-right: 0px" title="Microsoft Most Valuable Professional" border="0" alt="Microsoft Most Valuable Professional" align="right" src="http://lh6.ggpht.com/_UL5xJ4XsSh8/S2hUZhMnlZI/AAAAAAAAAlo/OUgCWVFqFBU/MVP_horizontal%5B4%5D.png?imgmax=800" width="244" height="101" /> <p>Ya se me hizo costumbre, como sucede desde 2002, empezar el año con el mensaje de felicitación anunciando el premio <a href="http://mvp.support.microsoft.com/">MVP</a>.</p> <p>Como siempre, la sensación es de cierto orgullo y un poco de perplejidad porque no me parece que mi contribución sea tan grande, sobre todo comparándola con la de otros MVP alrededor del mundo a los que admiro.</p> <p>Pero en fin, sigo en la musical categoría de C#, supongo que porque es el paraguas en el que agrupan a quienes estamos alrededor de otros lenguajes que no tienen aún su propia categoría (tal vez por ser aún más proyectos que productos completos).</p> <p>Como todos los años, espero dedicarme principalmente a aprender más sobre otro lenguaje. La década pasada la dediqué con mayor o menor profundidad a Eiffel, C# mismo, ML, Boo (poco), Python (después de años de mis primeros contactos), el 2009 me concentré en F#, y este pienso dedicarlo seriamente a <strong><a href="http://www.ruby-lang.org/">Ruby</a></strong>.</p> <p>La decisión tiene que ver con dos hechos principales: uno es tener cerca un fanático de Ruby como <a href="http://blogs.southworks.net/jhalife/">Johnny Halife</a>, y por otro lado el hecho de que la implementación de Ruby en .NET, <a href="http://ironruby.codeplex.com/">IronRuby</a>, haya llegado al RC1 (primer Release Candidate, lo que significa que está muy cerca de la versión final).</p> <p>Por esto, sería de esperar (y aquí tomo un compromiso personal que espero poder cumplir) que este año publique unos cuantos post y de algunas charlas sobre Ruby (la versión multiplataforma, basada en C) y sobre IronRuby (la versión basada en el <a href="http://dlr.codeplex.com/">DLR</a>), y la interoperabilidad entre ambas.</p> Martin Saliashttp://www.blogger.com/profile/00604319815514553479noreply@blogger.com0tag:blogger.com,1999:blog-7509451738776858118.post-56723898306542235102009-12-20T22:05:00.000-03:002009-12-21T11:12:22.494-03:00Un día nublado en Rosario<p>Bueno, el 4 de diciembre estaba realmente soleado, pero el tema del que fuimos a hablar con <a href="http://blogs.southworks.net/jhalife/">Johnny Halife</a> a la UTN de Rosario fue Cloud Computing. Me tomó un tiempo escribir este post, pero ahí va.</p> <p><a href="http://lh3.ggpht.com/_UL5xJ4XsSh8/Sy-CMwXg16I/AAAAAAAAAkw/lDnIpmZNquc/s1600-h/RAFDiciembre2009016.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Johnny tratando de no dormirse mientras yo hablo." border="0" alt="Johnny tratando de no dormirse mientras yo hablo." src="http://lh5.ggpht.com/_UL5xJ4XsSh8/Sy-COnLn5-I/AAAAAAAAAk0/3xrN3jkmDJQ/RAFDiciembre200901_thumb4.jpg?imgmax=800" width="644" height="484" /></a> </p> <p>Salimos de Buenos Aires a las 3:30 AM, y llegamos a Rosario cerca de las 7:30 para desayunar frente a la UTN (Universidad Tecnológica Nacional) con <a href="http://www.linkedin.com/pub/andres-c-joaquin/6/373/a8b">Andrés Joaquín</a>, nuestro anfitrión y organizador de esta serie de <a href="http://groups.google.com/group/rosarioarchitectforum">reuniones sobre arquitectura de software</a>.</p> <p>Nos gustó mucho el nivel del público, profesionales realmente experimentados (más allá del título o no de “arquitecto”) provenientes de diferentes ámbitos laborales y plataformas tecnológicas (aclaro que la UTN proporciona el lugar pero la gente viene de todos lados).</p> <p>Por cuestiones históricas, empezamos por <a href="http://aws.amazon.com/">Amazon Web Services</a>, cubriendo brevemente sus servicios y mostrando un poco cómo es el proceso de provisioning de máquinas virtuales en EC2.</p> <p><a href="http://lh3.ggpht.com/_UL5xJ4XsSh8/Sy-CPFozIdI/AAAAAAAAAk4/NA1EswISQEA/s1600-h/image3.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Descripción de los servicios de Amazon." border="0" alt="Descripción de los servicios de Amazon." src="http://lh3.ggpht.com/_UL5xJ4XsSh8/Sy-CPhjhtCI/AAAAAAAAAk8/V6Bc-g6b96Y/image_thumb1.png?imgmax=800" width="644" height="484" /></a> </p> <p>No voy a contar todo el contenido de más de dos horas de charla en este post, pero tal vez en otros sucesivos deje constancia de lo principal, siguiendo el modelo de madurez “<a href="http://msmvps.com/blogs/lopez/archive/2008/01/15/don-t-be-a-canuto.aspx">don’t be a canuto</a>”.</p> <p>En general, contamos que Amazon provee un servicio de almacenamiento conocido como S3 (Simple Storage Service), otro de máquinas virtuales a demanda llamado EC2 (Elastic Compute Cloud), y para conectar las aplicaciones entre las diferentes máquinas, un servicio de colas (Simple Queue Service).</p> <p>Iniciar una máquina virtual en Amazon es sencillo. Una vez que abrimos una cuenta (via tarjeta de crédito) y obtuvimos un Access Key ID, podemos acceder a un panel web donde seleccionar una imagen preconstruida (hay diversas versiones de Unix/Linux, Windows y Windows+SQL Server), indicar la cantidad de instancias y encenderlas, sin importar si es una sola o cientos, en segundos estará disponible nuestra infraestructura. El costo se calcula por hora de procesamiento, tráfico externo (no <em>entre</em> máquinas), o espacio de almacenamiento, pero realmente es muy económico comparado con el costo de comprar, administrar y operar hardware en nuestras propias instalaciones.</p> <p>Luego de cubrir bastante los Servicios de Amazon, cambiamos a <a href="http://www.microsoft.com/windowsazure/">Windows Azure</a>, la flamante estrategia de Cloud Computing de Microsoft.</p> <p>Como comparación, digamos que si Amazon nos brinda algo completamente flexible (acceso prácticamente completo al ambiente virtualizado), lo que a su vez nos exige bastante conocimiento de infraestructura para lograr aplicacions escalables, Azure nos provee una abstracción mucho mayor, donde no tenemos en principio tanto control, pero en cambio el paradigma de programación permite construir aplicaciones escalables de manera sencilla y familiar para cualquier desarrollador experimentado en .NET.</p> <p>En lugar de “maquinas virtuales”, Azure nos permite levantar instancias de “roles”, sobre los que desplegamos aplicaciones construidas utilizando Visual Studio.</p> <p><a href="http://lh5.ggpht.com/_UL5xJ4XsSh8/Sy-CP7O6bRI/AAAAAAAAAlA/PUBihz_0rHM/s1600-h/azure-fabric-infographic_lg%5B1%5D%5B3%5D.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="azure-fabric-infographic_lg[1]" border="0" alt="azure-fabric-infographic_lg[1]" src="http://lh6.ggpht.com/_UL5xJ4XsSh8/Sy-CQWz5t4I/AAAAAAAAAlE/devu8mGq96c/azure-fabric-infographic_lg%5B1%5D_thumb%5B1%5D.gif?imgmax=800" width="644" height="477" /></a> </p> <p>Hay dos roles principales en ese sentido, que son los Web Roles, conteniendo aplicaciones ASP.NET (pueden ser Webforms ó MVC) ó Worker Roles, que son básicamente procesos puros.</p> <p>La clave para construir aplicaciones escalables es seguir los principios fundamentales que ya deberíamos seguir: que los procesos estén bien separados de la presentación. De esta forma podemos ir aumentando la cantidad de instancias de los roles de presentación o proceso en forma independiente, para cubrir la demanda en cada momento.</p> <p>Windows Azure provee además un servicio de almacenamiento de Blobs (imagenes, archivos, video, etc), uno de tablas no relacionales (el modelo estándar para escalar bien en la web con datos no excesivamente estructurados) y por supuesto, un mecanismo de colas por el que se comunican los roles.</p> <p>Como un complemento a Windows Azure, Microsoft agregó <a href="http://www.microsoft.com/windowsazure/sqlazure/">SQL Azure</a>, que es lo que la comunidad reclamó tempranamente: soporte para bases de datos relacionales; básicamente SQL Server en la nube.</p> <p>Al finalizar nuestras dos sesiones, Pablo Francavilla y Juan Pablo Picasso de <a href="http://www.getsense.com.ar/">GetSense</a>, describieron <a href="http://code.google.com/appengine/">Google App Engine</a>, la alternativa de Google para la nube.</p> <p><a href="http://lh6.ggpht.com/_UL5xJ4XsSh8/Sy-CQ4tv5YI/AAAAAAAAAlI/LFeWywZV9Hs/s1600-h/Screen%20shot%202009-12-21%20at%2011.02.43%20AM%5B3%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Screen shot 2009-12-21 at 11.02.43 AM" border="0" alt="Screen shot 2009-12-21 at 11.02.43 AM" src="http://lh6.ggpht.com/_UL5xJ4XsSh8/Sy-CRRSxVvI/AAAAAAAAAlM/uWu3qiBWS1U/Screen%20shot%202009-12-21%20at%2011.02.43%20AM_thumb%5B1%5D.png?imgmax=800" width="644" height="467" /></a> </p> <p>Este servicio es más similar a Azure que a Amazon en el sentido en que no hay control alguno ni referencias a la infraestructura real, sino un conjunto de APIs para dos lenguajes principales: Python y Java. Hay posibilidad de ejecutar algunos otros lenguajes que corren sobre la máquina virtual de Java, como Scala o Groovy, pero no es el foco del servicio.</p> <p>Algunas conclusiones que expusimos en conjunto al final de la jornada:</p> <ul> <li>Ninguno de los tres modelos es <em>mejor</em>. Cada uno tiene sus ventajas y limitaciones.</li> <li>Mientras que Amazon es el más cercano a la infraestructura <em>real</em>, Azure y App Engine pueden ser más productivos para producir aplicaciones si uno ya tiene experiencia en .NET, Java o Python.</li> <li>Es totalmente factible utilizar más de uno de estos servicios en varios contextos, y de hecho en nuestro caso, lo hacemos con frecuencia.</li> <li>Esta tecnología no está <em>lejos</em> de nuestra realidad. De hecho, con los costos mayores de hardware que solemos tener en América Latina al sumar transporte y derechos aduaneros, este tipo de servicio en donde se paga por lo que se usa, y facilita escalar, es una gran ayuda, sobre todo para nuevas iniciativas.</li> </ul> Martin Saliashttp://www.blogger.com/profile/00604319815514553479noreply@blogger.com0tag:blogger.com,1999:blog-7509451738776858118.post-63685957691674405942009-11-11T15:16:00.001-03:002009-11-11T15:16:35.356-03:00Video de la Virtual Alt.NET: Explosión de Lenguajes<p>La buena gente de <a href="http://altnet-hispano.pbworks.com/">Alt.NET Hispano</a> ya ha publicado el video de la <a href="http://blog.salias.com.ar/2009/10/virtual-altnet-sobre-lenguajes.html">reunión de la vez pasada</a>.</p> <p>Gracias <a href="http://twitter.com/jorgegamba">Jorge Gamba</a>, <a href="http://twitter.com/jfroma">José Romaniello</a> y el resto del equipo. Aquí dejo el video disponible:</p> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:346e46c5-f569-4380-833a-d4d59b67d976" class="wlWriterEditableSmartContent"><div id="bdf2f6f0-b514-42b3-9714-b4c3e5df7b37" style="margin: 0px; padding: 0px; display: inline;"><div><a href="http://www.viddler.com/" target="_new"><img src="http://lh3.ggpht.com/_UL5xJ4XsSh8/Svr_gaBnP3I/AAAAAAAAAj8/aKBX1Hpi07M/video0e1e57ef0416%5B3%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('bdf2f6f0-b514-42b3-9714-b4c3e5df7b37'); downlevelDiv.innerHTML = "<div><embed src=\"http://www.viddler.com/player/bbb494c//\" width=\"437\" height=\"370\" wmode=\"transparent\" type=\"application/x-shockwave-flash\" allowScriptAccess=\"always\" allowFullScreen=\"true\" name=\"viddler_bbb494c/\" ><\/embed><\/div>";" alt=""></a></div></div><div style="clear:both;font-size:.8em;">Explosión de Lenguajes</div></div> <p>Como siempre, gracias a los compañeros del grupo que ponen su tiempo para organizar estos encuentros y facilitar su publicación.</p> Martin Saliashttp://www.blogger.com/profile/00604319815514553479noreply@blogger.com0tag:blogger.com,1999:blog-7509451738776858118.post-62898116310262527842009-11-09T22:40:00.001-03:002009-11-09T22:42:16.396-03:00Antipatrones: “No tengo tiempo…”<p><a href="http://www.flickr.com/photos/simpologist/16734948/"><img style="margin: 0px 0px 0px 10px; display: inline" title="" alt="Astronomical Clock by simpologist." align="right" src="http://farm1.static.flickr.com/10/16734948_73cbe09dfe.jpg" width="240" height="240" /></a>Desde hace muchos años (no quiero ni ponerme a contar cuántos) participo en muchas listas de correo dedicadas a distintas ramas del desarrollo de software y temas relacionados.</p> <p>A lo largo de todos estos años, leí muchísimas veces a alguien lamentándose de no tener tiempo para mantenerse al día con algún tema o para dedicar a otras actividades de mejora profesional (también lo he escuchado en muchas conversaciones).</p> <p>No puedo comprender estos comentarios: "más cuándo uno es padre, no tenemos tiempo para ver lo último o la tendencia tecnológica", respuesta de un amigo, en una de estas listas, al comentario de otro colega comentando su falta de tiempo. </p> <p>Como contesté a la lista, soy padre desde hace 13 años, y desde hace 8, padre de dos mujercitas. Pero no por eso  dejé de estar relativamente al día respecto a las tendencias tecnológicas. Y no tengo nada de especial, salvo las ganas y la pasión por lo que hago, por eso no compro el argumento de la falta de tiempo. Muchos de los lectores de este blog me conocen personalmente y hasta han trabajado conmigo. Todos saben que estamos en igualdad de condiciones en la mayor parte de las cosas. No tengo formación académica en sistemas. Aprendí todo trabajando, desde mis inicios haciendo aplicaciones para empresas minúsculas.</p> <p>Me preocupa la excusa de "no tengo tiempo" porque es un antipatrón que veo recurrentemente en nuestra industria. Muchas veces no tenemos tiempo para: </p> <ul> <li>refactorizar el código</li> <li>escribir los tests</li> <li>automatizar los procesos</li> <li>aumentar nuestra caja de herramientas</li> <li>capacitarnos</li> <li>leer y estudiar sobre nuevas tecnologías (no digo últimas, sino nuevas para nosotros) </li> </ul> <p>El problema es que no tenemos tiempo porque: </p> <ul> <li>mantener nuestro código es complejo</li> <li>cuando tocamos algo se rompe en otro lado</li> <li>tenemos que hacer un montón de tareas largas y tediosas</li> <li>tenemos que hacer cosas que nos huele que podríamos hacer más eficientemente</li> <li>alguien nos pidió algo que no sabemos cómo hacer y tenemos que probar y probar</li> <li>necesitamos resolver algo y tenemos que construir montones de cosas desde cero </li> </ul> <p>Si miran ambas listas, verán que las cosas que no hacemos corresponden una por una con las cosas que nos quitan tiempo. </p> <p>Elegimos una profesión que está basada en nuestra capacidad intelectual, y por tanto, necesitamos ejercitarla y mejorarla constantemente. No es una carrera donde podamos destacarnos (y en muchos casos, ni siquiera mantenernos) sin un ajuste periódico. Por supuesto, cada uno tiene su realidad, sus necesidades y entusiasmo, pero no podemos dejar de invertir una parte <em>considerable</em> de nuestro esfuerzo en mantenernos al día. </p> <p>Como decía un conocido el otro día: “<em>¿dejarías que te opere un médico que hace años que no hace ningún curso de actualización?</em>” Y eso que la medicina tiene un ritmo bastante más lento de cambio.</p> <p>Espero que se entienda esto como lo que es: un intento sincero de alentar a todos a darle para adelante y crecer como profesionales. Obviamente requiere esfuerzo, pero me parece que vale la pena en una industria donde es obvio que la innovación y la mejora hacen la diferencia.</p> <p>Les dejo como adicional este antiquísimo artículo de <a href="http://en.wikipedia.org/wiki/Peter_Norvig">Peter Norvig</a> (es del 2001):</p> <p><a href="http://loro.sourceforge.net/notes/21-dias.html">Aprende a programar en diez años</a> (versión en español de Carlos Rueda)</p> <p><a href="http://norvig.com/21-days.html">Teach yourself programming in Ten Years</a> (original en inglés)</p> Martin Saliashttp://www.blogger.com/profile/00604319815514553479noreply@blogger.com9tag:blogger.com,1999:blog-7509451738776858118.post-71423355262335707712009-10-16T17:49:00.001-03:002009-10-16T17:49:44.970-03:00Virtual ALT.NET sobre Lenguajes<p>Tarde pero seguro, comparto (al menos) los slides de mi presentación sobre lenguajes de programación en la <a href="http://altnet-hispano.pbworks.com/Historial-de-reuniones">VAN de Alt.NET Hispano</a> el 2 de octubre pasado.</p> <div style="text-align: left; width: 425px" id="__ss_2247889"><a style="margin: 12px 0px 3px; display: block; font: 14px helvetica,arial,sans-serif; text-decoration: underline" title="Explosión de Lenguajes" href="http://www.slideshare.net/msalias/explosin-de-lenguajes">Explosión de Lenguajes</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=languages-091016153702-phpapp02&stripped_title=explosin-de-lenguajes" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=languages-091016153702-phpapp02&stripped_title=explosin-de-lenguajes" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object> <div style="font-family: tahoma,arial; height: 26px; font-size: 11px; padding-top: 2px">View more <a style="text-decoration: underline" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration: underline" href="http://www.slideshare.net/msalias">msalias</a>.</div> <p>La reunión se grabó, así que en cuanto esté disponible el video espero compartirlo aquí mismo.</p> </div> Martin Saliashttp://www.blogger.com/profile/00604319815514553479noreply@blogger.com0tag:blogger.com,1999:blog-7509451738776858118.post-8702378594892841952009-10-09T15:41:00.001-03:002009-10-09T15:41:43.714-03:00En Agiles 2009, Florianopolis, Brasil<p>Desde ayer estoy en Florianopolis, bajo un cielo nublado y un clima bastante frío, ideal para no distraerse de la conferencia.</p> <p>La organización a cargo del amigo Samuel Crescêncio, es impecable, y las sesiones hasta ya cerca del final, muy buenas.</p> <p><a href="http://lh4.ggpht.com/_UL5xJ4XsSh8/Ss-DqlumrbI/AAAAAAAAAg0/rqEC3HY74JE/s1600-h/DSC09730%5B4%5D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="El trío southy en Agiles 2009" border="0" alt="El trío southy en Agiles 2009" src="http://lh6.ggpht.com/_UL5xJ4XsSh8/Ss-DvKfyrEI/AAAAAAAAAg4/XRKcvsJ5SKk/DSC09730_thumb%5B2%5D.jpg?imgmax=800" width="644" height="484" /></a></p> <p>La foto es del enorme auditorio central, y me acompañan mis compañeros de Southworks, <a href="http://blogs.southworks.net/nicopaez">Nico Páez</a> (centro) y <a href="http://blogs.southworks.net/aschapiro/">Ariel “Shaggy” Schapiro</a> (derecha).</p> <p>Aquí se puede ver el programa desplegado en la entrada (resaltadas en rojo nuestras charlas).</p> <p><a href="http://lh5.ggpht.com/_UL5xJ4XsSh8/Ss-Dz5RmA9I/AAAAAAAAAg8/rpBaucdCbcg/s1600-h/Southies-talks%5B4%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Southies talks" border="0" alt="Southies talks" src="http://lh4.ggpht.com/_UL5xJ4XsSh8/Ss-D4XLXoQI/AAAAAAAAAhA/j1MMO-Yan6s/Southies-talks_thumb%5B2%5D.png?imgmax=800" width="644" height="452" /></a></p> <p>A mi me tocó el primer día, tras la presentación del comité organizador y una excelente Keynote de <a href="http://www.exampler.com/blog/">Brian Marick</a>. En la misma sala, antes de mi sesión hubo una muy interesante de Francisco Trindade de <a href="http://www.thoughtworks.com/">ThoughWorks</a>, que planteaba si Agile estaba convirtiéndose en el nuevo Waterfall, y fue un buen pie para mi tema.</p> <p>Básicamente me centré en nuestra experiencia en llegar a un nivel de adopción muy alto de los principios y prácticas ágiles, y cómo para seguir mejorando volvimos a profundizar en las prácticas más “duras” como CMMi, PSP, TSP y en conceptos provenientes de la Teoría de Sistemas Complejos.</p> <p>Ya trataré de plasmar el contenido en un próximo post, con más tiempo, siguiendo <a href="http://msmvps.com/blogs/lopez/archive/2008/01/15/don-t-be-a-canuto.aspx">los preceptos del Maestro</a>.</p> <p>Ayer cerramos el día con otra keynote muy interesante de Roy Singham, presidente de ThoughtWorks, que –en mi opinión- decayó un poco en la segunda mitad cuando se tornó en reclutamiento explícito, acompañando el anuncio público de que están abriendo oficinas en Brasil. La primera parte, de todos modos, fue muy buena, y como se grabó en video, espero que pronto esté disponible.</p> <p>Hoy el día arrancó con el Workshop de estimación de Nico, que salió muy bueno, y sobre el que ya <a href="http://nicopaez.wordpress.com/2009/10/09/workshop-de-planificacion-en-agiles-2009/">pueden leer en su blog en español</a>.</p> <p>Al terminar, estuve un rato en otra sesión muy buena de <a href="https://elearning.industriallogic.com/gh/submit?Action=AlbumContentsAction&album=blog2009&devLanguage=Java">Joshua Kerievsky</a> (famoso por el libro <a href="http://www.amazon.com/Refactoring-Patterns-Joshua-Kerievsky/dp/0321213351">Refactoring to Patterns</a>), de <a href="http://industriallogic.com/elearning/">Industrial Logic</a>, quien hizo un paralelo muy bueno entre Arte y Desarrollo.</p> <p>No pude ver toda la presentación porque me fui a hacer de cameraman en la charla de Shaggy sobre “Agile PMO”, ese bicho extraño que creó dentro de Southworks. :)</p> <p>La verdad es que salió muy bien, y contó todo el proceso con el que se generar el Health Check semanal de proyectos en nuestra organización, que produce muchísima información útil para todos con un esfuerzo mínimo de parte de cada equipo.</p> <p>Seguramente estaremos subiendo pronto los videos de las charlas, y me comprometo a compartirlos en este mismo espacio.</p> Martin Saliashttp://www.blogger.com/profile/00604319815514553479noreply@blogger.com0