<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>sharpshooting &#187; carlos.mendonca</title>
	<atom:link href="http://sharpshooting.com.br/author/carlos-mendonca/feed/" rel="self" type="application/rss+xml" />
	<link>http://sharpshooting.com.br</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Tue, 10 Aug 2010 15:44:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Can’t Miss! Part II: OpenWrap, a promising .NET package (export) management system</title>
		<link>http://sharpshooting.com.br/2010/08/10/cant-miss-part-ii/</link>
		<comments>http://sharpshooting.com.br/2010/08/10/cant-miss-part-ii/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 15:32:37 +0000</pubDate>
		<dc:creator>carlos.mendonca</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Can't Miss]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[english]]></category>

		<guid isPermaLink="false">http://sharpshooting.com.br/?p=93</guid>
		<description><![CDATA[I&#8217;ve recently stumbled upon a very interesting package management system for .NET: OpenWrap. It&#8217;s no surprise that it&#8217;s been idealized and is being developed by the talented @serialseb (blog) (github), the same guy who developed the OpenRasta web framework.
I haven&#8217;t really found the time to test OpenWrap thoroughly, but knowing the thrills and pangs one [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently stumbled upon a very interesting package management system for .NET: OpenWrap. It&#8217;s no surprise that it&#8217;s been idealized and is being developed by the talented <a title="serialseb (serialseb) on Twitter" href="http://twitter.com/serialseb" target="_blank">@serialseb</a> (<a title="SerialSeb" href="http://serialseb.blogspot.com/" target="_blank">blog</a>) (<a title="openrasta's Profile - GitHub" href="http://github.com/openrasta" target="_blank">github</a>), the same guy who developed the OpenRasta web framework.</p>
<p>I haven&#8217;t really found the time to test OpenWrap thoroughly, but knowing the thrills and pangs one get on setting up a package management system for .NET, I immediately acknowledged the importance of this project. Sure, there are other cool alternatives being developed right now such as <a title="Bricks Project - .NET Project Manager" href="http://bricksproject.org/" target="_blank">Bricks</a> and <a title="paulj's webgac at master - GitHub" href="http://github.com/paulj/webgac" target="_blank">WebGAC</a>; you can even set up <a title="Apache Ivy, the agile dependency manager" href="http://ant.apache.org/ivy/" target="_blank">Ivy</a> to play nice with .NET, as we&#8217;ve successfully done at Locaweb. But regarding the emergence of competitive solutions for package management in the .NET ecosystem, Sebastien couldn&#8217;t put it a better way:</p>
<blockquote><p>(&#8230;) Package management is going to be the next Vietnam war on .net, and many people will come up with different solutions. It’s all for the best, and most projects, as they have done many times before, will die off on their own. This is to be expected. As such, I implore the .net world to let enough time for each of those projects to compete purely on the quality and functionality they provide, and let the best one eliminate naturally the other ones. Don’t succumb to the belief that standardizing early will help, or that popularity would be a distinctive factor. If we fuck-up the package management story on .net, we may never recover, so give it a bit of time and be circumspect in your analysis.</p></blockquote>
<p>That being said, this post aims only at showing what&#8217;s out there regarding package management, with a special emphasis on OpenWrap. Sebastien has been posting several articles on his blog about how the project is developing, so it should be interesting to watch his progress. Last but not least, it is an open-source project, so feedback/contribution from the community should be more than welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://sharpshooting.com.br/2010/08/10/cant-miss-part-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Can&#8217;t Miss! Part I: Learn the fundamentals of functional programming with Microsoft</title>
		<link>http://sharpshooting.com.br/2009/11/26/cant-miss-part-i/</link>
		<comments>http://sharpshooting.com.br/2009/11/26/cant-miss-part-i/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 18:03:03 +0000</pubDate>
		<dc:creator>carlos.mendonca</dc:creator>
				<category><![CDATA[Can't Miss]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://sharpshooting.com.br/?p=82</guid>
		<description><![CDATA[Erik Meijer, IMO one of Microsoft's most brilliant employees, has put together a series of 13 lectures teaching the fundamentals of functional programming.]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-83" style="background-color: inherit;" title="Channel 9 logo" src="http://sharpshooting.com.br/wp-content/uploads/2009/11/channel_9_logo.png" alt="Channel 9 logo" width="98" height="114" /><a title="Erik Meijer's Homepage at Microsoft Research" href="http://research.microsoft.com/en-us/um/people/emeijer/" target="_blank">Erik Meijer</a>, IMO one of Microsoft&#8217;s most brilliant employees, has put together a series of 13 lectures teaching the fundamentals of <a title="Functional programming - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/Functional_programming" target="_blank">functional programming</a>. As I mentioned in <a title="My take on the .NET ecosystem | sharpshooting" href="http://sharpshooting.com.br/2009/09/24/my-take-on-the-net-ecosystem/" target="_blank">my last post about Microsoft</a>, it doesn&#8217;t come as a surprise that Microsoft is producing and distributing freely this kind of high-level content, given the fact that guys like Meijer are behind the project.</p>
<p><span id="more-82"></span></p>
<p>The lectures are anywhere between 30 to 60 minutes each and are based on the <a title="Haskell (programming language) - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/Haskell_(programming_language)" target="_blank">Haskell language</a>&#8211;for which Meijer has special feelings. He even goes as far as leaving one or two homework assignments at the end of each session, which often involve comparing C# to Haskell and fiddling around with the latter.</p>
<ul>
<li><a title="C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 1 of 13 | Going Deep | Channel 9" href="http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/" target="_blank">Chapter 1</a></li>
<li><a title="C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 2 of 13 | Going Deep | Channel 9" href="http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/" target="_blank">Chapter 2</a></li>
<li><a title="C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 3 of 13 | Going Deep | Channel 9" href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/" target="_blank">Chapter 3</a></li>
<li><a title="C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 4 of 13 | Going Deep | Channel 9" href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/" target="_blank">Chapter 4</a></li>
<li><a title="C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 5 of 13 | Going Deep | Channel 9" href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/" target="_blank">Chapter 5</a></li>
<li><a title="C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 6 of 13 | Going Deep | Channel 9" href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13/" target="_blank">Chapter 6</a></li>
<li><a title="C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 7 of 13 | Going Deep | Channel 9" href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13/" target="_blank">Chapter 7</a></li>
<li><a title="C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13 | Going Deep | Channel 9" href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13/" target="_blank">Chapter 8</a></li>
<li>Chapter 9</li>
<li>Chapter 10</li>
<li>Chapter 11</li>
<li>Chapter 12</li>
<li>Chapter 13</li>
</ul>
<p>This is truly a &#8220;Can&#8217;t Miss&#8221; and I recommend it to anyone who wants to learn more about the origins of functional programming and how it works. As a bonus, you even end-up learning Haskell&#8230; &#8220;YOU KNOW!&#8221; lol</p>
<p style="text-align: center;">* * *</p>
<p style="text-align: left;">This is the first installment of a series of micro-posts about things I happen to stumble upon on the Internet and which should be of interest to people. If you like it, follow the &#8220;Can&#8217;t Miss&#8221; category to get updates.</p>
]]></content:encoded>
			<wfw:commentRss>http://sharpshooting.com.br/2009/11/26/cant-miss-part-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails Summit Latin America 2009</title>
		<link>http://sharpshooting.com.br/2009/10/13/rails-summit-latin-america-2009/</link>
		<comments>http://sharpshooting.com.br/2009/10/13/rails-summit-latin-america-2009/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 14:11:15 +0000</pubDate>
		<dc:creator>carlos.mendonca</dc:creator>
				<category><![CDATA[Entrevista]]></category>
		<category><![CDATA[Evento]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[português]]></category>

		<guid isPermaLink="false">http://sharpshooting.com.br/?p=63</guid>
		<description><![CDATA[Hoje e amanhã (dias 13 e 14) está rolando em São Paulo o Rails Summit Latin America 2009, evento organizado pelo Fabio Akita e pela Locaweb. É seguramente o maior evento da comunidade RoR na América do Sul. Esta é a segunda edição e, em relação ao ano passado, temos mais palestrantes e, no geral, o evento está bem mais interessante. Vou fazer uma cobertura do evento ao vivo e aos poucos coloco posts mais específicos de assuntos que me chamaram mais atenção.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.railssummit.com.br?utm_campaign=Railssummit&amp;utm_source=banner_parceiros&amp;utm_medium=banner&amp;utm_content=por_120x240"><img class="alignleft size-full" title="Rails Summit Latin America 2009 banner" src="http://railssummit.com.br/images/banners/120x240.gif" alt="" width="120" height="240" /></a>Dias 13 e 14 de outubro rolou em São Paulo o Rails Summit Latin America 2009, evento organizado pelo <a title="AkitaOnRails.com" href="http://akitaonrails.com" target="_blank">Fabio Akita</a> e pela <a title="Hospedagem de Sites e Serviços de Internet - Locaweb" href="http://locaweb.com.br" target="_blank">Locaweb</a>. É seguramente o maior evento da comunidade RoR na América do Sul. Esta é a segunda edição e, em relação ao ano passado, temos mais palestrantes e, no geral, o evento está bem mais interessante. Fiz uma cobertura do evento ao vivo, mas depois fiz um resumo das palestras que assisti.<span id="more-63"></span></p>
<p style="text-align: center;">* * *</p>
<p>A primeira palestra, &#8220;Ruby on Rails Insurgency&#8221;, foi do <a href="http://railssummit.com.br/pt-BR/speakers#chad_fowler">Chad Fowler</a> (de longe esse cara me lembra o <a href="http://en.wikipedia.org/wiki/Seth_MacFarlane">Seth MacFarlane</a>) e ele fez uma introdução do eco-sistema cobrindo várias falácias que os concorrentes (ou os &#8220;trolls&#8221;) falam.</p>
<p>Alguns highlights:</p>
<blockquote><p>If you&#8217;re gonna switch technologies (…) you might as well do things differently.</p>
<p>(…) Rails is about taking crap that you should be doing out of software development.</p>
<p>Support contract doesn&#8217;t guarantee anything.</p>
<p>Stop doing things you know are wrong. Stop.</p>
<p>&#8211; Chad Fowler</p></blockquote>
<p>A segunda palestra, &#8220;On The Edge of Rails Performance&#8221;, foi do <a href="http://railssummit.com.br/pt-BR/speakers#gregg_pollack">Gregg Pollack</a> que apresentou algumas dicas de otimização do Rails e alguns plug-ins interessantes que, parafraseando o Gregg, &#8220;can just might save your ass&#8221;. Do blog dele e das poucas anotações que consegui fazer, os plugins são:</p>
<ul>
<li>Bullet: reduz o número de queries com alertas (no growl);</li>
<li>Rails Indexes: tarefas do Rake para encontrar índices faltando;</li>
<li>Scrooge: otimizador de queries SQL, para que se consulte apenas o que a página necessita;</li>
<li>rack-bug: barra de ferramentas para debug de aplicações Rack implementada como middleware;</li>
<li>memorylogic: adiciona o id e utilização de memória do processo nos logs do Rails;</li>
<li>oink: faz parse do log a fim de encontrar actions que causam aumento do tamanho da pilha da VM;</li>
<li>rubber: um plugin para Capistrano e para Rails que auxilia a publicação, gerenciamento e escalonamento de aplicações EC2;</li>
<li>cloud crowd: gerencia processamento paralelo através de jobs em segundo-plano;</li>
<li>Mad Mimi: aplicação de e-mail marketing com uma API muito interessante.</li>
</ul>
<p>Na terceira palestra vim ver o <a href="http://railssummit.com.br/pt-BR/speakers#ilya_grigorik">Ilya Grigorik</a> com a &#8220;Real-Time Ruby for the Real-Time Web&#8221;, que falou sobre Real-Time Ruby e coisas das quais sou fã como AMQP. <a href="http://bit.ly/realtime-ruby">Os slides já estão disponíveis</a>. Na outra sala, o <a href="http://railssummit.com.br/pt-BR/speakers#carlos_brando">Carlos Brando</a> está falando da construção de um framework com Ruby e de como o Rails funciona por dentro.</p>
<p>Na quarta palestra do dia, escolhi o <a href="http://railssummit.com.br/pt-BR/speakers#glenn_vanderburg">Glenn Vanderburg</a>, que falou do Tarantula, uma ferramenta para geração de <a href="http://en.wikipedia.org/wiki/Fuzz_testing">testes fuzz</a> em Ruby. Acabei passando um pouco por cima da palestra porque fiquei trabalhando pela VPN, mas achei especialmente interessante porque <a href="http://research.microsoft.com/en-us/projects/Pex/">a Microsoft também está para lançar algo parecido para o mundo .NET</a> e devo postar mais sobre o assunto em breve.</p>
<p>Depois fui na palestra do <a href="http://railssummit.com.br/pt-BR/speakers#david_chelimsky">David Chelimsky</a>, que passou várias dicas sobre Cucumber, RSpec etc. Destaque para a gem spork, que eu não conhecia e parece bastante útil quando usada junto com o Cucumber.</p>
<p>A palestra do <a href="http://railssummit.com.br/pt-BR/speakers#fabio_akita">Fabio Akita</a>, como sempre, trouxe uma grande variedade de assuntos que levam algumas semanas para serem digeridos. Basicamente ele falou sobre a Teoria do Caos e como levá-la em consideração durante o gerenciamento de empresas, equipes e projetos pode fazer mais sentido do que trabalhar com modelos fechados, previsíveis e, portanto, limitados. Por isso que agilidade tem se mostrado eficiente onde paradigmas clássicos falharam. A teoria ajuda a justificar a necessidade de práticas como interações curtas, realimentação etc. Parafraseando o próprio Akita, o foco está no &#8220;porquê&#8221; e não no &#8220;como&#8221;.</p>
<p>Para finalizar, o <a href="http://railssummit.com.br/pt-BR/speakers#matt_aimonetti">Matt Aimonetti</a> falou sobre o Ruby 2, Rails 3 e as tecnologias interessantes que os rodeiam. A plataforma promete coisas muito interessantes para o futuro.</p>
<p style="text-align: center;">* * *</p>
<p>No segundo dia, resolvi &#8220;cabular&#8221; as palestras e aproveitei que os palestrantes estavam pelo saguão para me juntar ao pessoal da <a title="InfoQ" href="http://www.infoq.com/br" target="_blank">InfoQ Brasil</a> (<a title="Felipe Rodrigues (felipero) on Twitter" href="http://twitter.com/almeidaricardo" target="_blank">Felipe Rodrigues</a> e <a title="almeidaricardo (almeidaricardo) on Twitter" href="http://twitter.com/almeidaricardo" target="_blank">Ricardo Almeida</a>) e entrevistar alguns. A InfoQ Brasil deve postar as entrevistas em forma de vídeo em breve, mas transcrevi dois trechos interessantes de perguntas que fiz para o Matt Aimonetti e o David Chelimsky. Por enquanto, é só uma prévia do que há por vir.</p>
<p><img class="alignnone size-full wp-image-79" title="matt_aimonetti" src="http://sharpshooting.com.br/wp-content/uploads/2009/11/matt_aimonetti.jpg" alt="matt_aimonetti" width="430" height="242" /></p>
<p>O Matt falou bastante das novidades do Ruby 2 e Rails 3 e destacou algumas das dificuldades que esse processo de evolução pressupõe:</p>
<blockquote><p><strong>InfoQ:</strong> As pessoas sempre lhe perguntam para quando elas podem esperar o Rails 3.0 ou o Ruby 2.0. Como você lida com isso?</p>
<p><strong>Matt Aimonetti:</strong> Bem, o Ruby 2.0 vai levar algum tempo até que seja lançado, porque o Ruby Core Team ainda não começou a trabalhar nele. Então, após o Ruby 1.9.2, que deve ser lançado próximo do Natal, eles vão focar e começar a trabalhar nele. O Rails 3.0, por outro lado, é uma história diferente, porque nós estamos chegando perto do lançamento. Conforme eu disse na minha palestra, ele foi disponibilizado para os desenvolvedores de plug-ins e agora nós logo poderemos falar sobre a API. A maioria do trabalho já foi feita. Nós falaremos sobre a integração destes diferentes aspectos e nos certificaremos que ele é estável o suficiente para que as pessoas possam usá-lo.</p>
<p>É sempre um desafio trabalhar com open-source, porque tem-se voluntários, pessoas trabalhando que não são pagos para isso e elas trabalham em projectos diferentes. Você tenta manter os deadlines, mas é realmente complicado ter um deadline, então…</p></blockquote>
<blockquote><p><strong>InfoQ:</strong> Você considera que não ter um deadline é uma barreira de entrada para que as empresas comecem a utilizar o Rails? Isso é um problema? A comunidade está preocupada com isso?</p>
<p><strong>MA:</strong> Eu não acho que seja realmente um problema, porque nunca anunciamos um deadline. O que existe uma idéia de deadline&#8230; algo que gostaríamos de atingir. Isso não quer dizer que podemos realmente atingí-lo. Agora, as empresas gostam de estabilidade. Você não vai querer falar do (Rails) 2.0 uma vez que nós ainda estamos migrando para o 1.9. E o 1.9 é a direção que devemos seguir. As pessoas ainda utilizam o 1.8 porque elas consideram que ele é estável, então você precisa fazer as coisas aos poucos.</p>
<p>Você não vai querer lançar algo muito cedo e ele está quebrado. Nós não queremos lançar o Rails 3 cedo e depois as pessoas não conseguem migrar, pois isso não faria nenhum sentido. Então nós queremos nos certificar de que a comunidade está andando connosco e o produto é estável o suficiente antes de nós o lançarmos. E eu acho que isso é algo que as empresas valorizam.</p></blockquote>
<p><img class="alignnone size-full wp-image-78" title="david_chelimsky" src="http://sharpshooting.com.br/wp-content/uploads/2009/11/david_chelimsky.jpg" alt="david_chelimsky" width="430" height="242" /></p>
<p>O David Chelimsky, por outro lado, focou bastante em testes e estava particularmente curioso em como o RSpec e outras bibliotecas de testes influenciaram as que existem fora da plataforma Ruby e como está a adoção da cultura de BDD e TDD no Brasil. Aproveitei o assunto para falar de testes fuzz:</p>
<blockquote><p><strong>InfoQ:</strong> O Glenn Vanderburg falou ontem sobre o Tarantula na sua palestra e nós estamos nos perguntando qual é sua opinião sobre Testes Fuzz. Eles tem sua utilidade?</p>
<p><strong>David Chelimsky:</strong> Totalmente! Mas eles tem sua utilidade. Um dos problemas que todos temos é que há várias formas de se testar que possuem cada uma seu valor dentro de um mesmo projeto. E eu acho que as pessoas tendem a procurar uma solução única e definitiva que elas possam sempre aplicar, mas o desafio é realmente achar a combinação ideal para um projeto específico. E eu também acho que muitas pessoas acabam dizendo que &#8220;nós tivemos sucesso em determinado projeto utilizando uma determinada combinação de ferramentas e técnicas, então devemos utilizá-las em todos os próximos projetos&#8221;, mas elas podem não ser as ideias nestes próximos projetos.</p>
<p>No caso do Tarantula, eu pessoalmente ainda não o utilizei, só ouvi falar dele. E eu não estive na palestra do Gleen porque a minha era logo depois da dele, mas eu conversei com ele esta manhã. O que ele me disse foi que na sua empresa, a Relevance, eles utilizaram o Tarantula em muitos projetos e não houve um único caso em que a ferramenta deixou de achar alguma coisa que eles deixaram passar. O Tarantula tem um baixo custo de entrada: só leva 10 minutos para ligá-lo na sua aplicação. Se você só tem 10 minutos para testar e ele encontra alguma coisa, então você já saiu ganhando.</p></blockquote>
<blockquote><p><strong>InfoQ:</strong> Mas você não acha que existe o perigo de as pessoas pararem de pensar nos seus testes e passarem a confiar apenas na ferramenta para fazê-los para eles?</p>
<p><strong>DC:</strong> Totalmente. Mas se deixássemos de fazer tudo por causa do perigo, nenhum de nós estaria escrevendo Ruby hoje.  É necessário uma discussão pública a respeito disso e as pessoas precisam compartilhar suas experiências.</p>
<p>Certamente há esse perigo e as pessoas são pegas a todo momento porque elas ouvem &#8220;você deveria usar isso&#8221;, mas elas não entendem o real sentido do que é aquilo. Então eu posso imagina que uma pessoa que não faz nenhum outro teste além de testes fuzz terá, sim, problemas.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://sharpshooting.com.br/2009/10/13/rails-summit-latin-america-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My take on the .NET ecosystem</title>
		<link>http://sharpshooting.com.br/2009/09/24/my-take-on-the-net-ecosystem/</link>
		<comments>http://sharpshooting.com.br/2009/09/24/my-take-on-the-net-ecosystem/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 01:38:29 +0000</pubDate>
		<dc:creator>carlos.mendonca</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[english]]></category>

		<guid isPermaLink="false">http://sharpshooting.com.br/?p=3</guid>
		<description><![CDATA[(A tradução deste artigo para o português estará disponível em breve.)
I’ve been working – both academically and professionally – with the .NET stack since 2003 and although I didn’t meet the rough edges of .NET 1.0 and Visual Studio 2002, I did saw the steep transition from Framework 1.1 to 2.0 and the smoother 3.0 [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #777777;"><em>(A tradução deste artigo para o português estará disponível em breve.)</em></span></p>
<p><img class="alignleft size-full wp-image-15" style="background-color: inherit;" title="Microsoft .NET logo" src="http://sharpshooting.com.br/wp-content/uploads/2009/09/net_v_web.jpg" alt="Microsoft .NET logo" width="158" height="151" />I’ve been working – both academically and professionally – with the .NET stack since 2003 and although I didn’t meet the rough edges of .NET 1.0 and Visual Studio 2002, I did saw the steep transition from Framework 1.1 to 2.0 and the smoother 3.0 and 3.5 steps. Right now we’re once again in a period of transition which seems to stale the .NET world for a couple of months at every release cycle. It seems the world is waiting for .NET 4.0 and whatever wasn’t good enough on the previous version&#8211;such as the Entity Framework&#8211;is not going to be further developed by the community. While in theory this represents a golden opportunity for alternative libraries to gain some momentum, in practice corporate developers do realize that the cost of changing legacy applications they simply don’t want to touch outweighs the cost of sitting still while Microsoft puts the latest bells and whistles to the “branded” library and the mainstream community starts blogging with some useful prototypes people can reproduce.</p>
<p><span id="more-3"></span> That said, what seems to be wrong? Well, for starters, it is important to point out that the Microsoft ecosystem, while extremely diverse and rich, could be said to have roughly two kinds of developers: those who by and large are using exclusively the System.* and Microsoft.* namespaces, and dragging-and-dropping like crazy; and those who are producing more exotic code by relying on third-party&#8211;free and commercial&#8211;libraries. The latter will necessarily be coming from or occasionally wandering off to a non-Microsoft platform. Additionally, if you think in terms of the <a title="Dreyfus model of skill acquisition - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/Dreyfus_model_of_skill_acquisition" target="_blank">Dreyfus model</a>, you&#8217;ll most likely find more individuals with ‘proficient’ or ‘expert’ skill levels among the group not relying solely on the Microsoft stack. Microsoft has come a long-way in order to provide to such a heterogeneous community and for that it had to make compromises: shall always be agnostic; shall never be opinionated; will always feel like a duck&#8211;can’t seem to fly, swim nor walk properly, but does it all.</p>
<p>At the end of the day, what’s the product of this policy? Pulverization, it seems. If you look at what the community has produced to specialize the loose ends Microsoft left in its framework, you’ll find a mess. A mess of great code, but a mess nevertheless. While <a title="Ayende @ Rahien" href="http://ayende.com/Blog/" target="_blank">Ayende Rahien</a>, <a title="Bits in Motion" href="http://blog.bits-in-motion.com/" target="_blank">Jeff Brown</a>, <a title="Jimmy Nilsson's Weblog" href="http://jimmynilsson.com/blog/" target="_blank">Jimmy Nilsson</a>, <a title="Miguel de Icaza" href="http://tirania.org/blog/" target="_blank">Miguel de Icaza</a> and others may be strong voices on the community, it doesn’t feel like they’ve ever sat down and met each other. But why should they? Has Microsoft set an example in the first place? One thing is for certain: if the community has grown up like that, it has only done so because it was following Microsoft’s steps. There are many areas where it’s easy to see overlapping bits in the framework where you don&#8217;t feel collaboration and reuse took place: Linq to SQL vs. Entity Framework, PLINQ vs. CCR, ASP.NET vs. ASP.NET MVC, WCF vs. ASP.NET MVC . . . the list goes on. None of the elements of each pair are exactly like the other (and it was never intended that they should), but I guarantee you’ll find repeated functionality. The point is: if Microsoft is repeating itself and some of its many areas are evolving at some extent unaware of their neighbor’s progress, why shouldn’t the community? Hey, why reuse if we can come up with a new wheel, right? Well, wrong . . .</p>
<p>The very community Microsoft fed and raised could be what is holding .NET back today. And if that is so, then Microsoft itself is to blame. While it’s useless to compare the .NET community to others, I’m sure that it wouldn’t hurt if we had the Java maturity and scope or the RoR openness. Instead, what we have is some great software being produced by individuals who sadly can’t embrace the whole world, some great software being produced by companies, but which stay proprietary (and will remain so because it cost them a lot of money to develop and because, to put it simply, they&#8217;re just too damn afraid of open-source), and no cohesion whatsoever. (The reason universities aren’t producing more with the Microsoft stack despite their aggressive programs such as <a title="Microsoft Dreamspark" href="http://www.dreamspark.com/" target="_blank">DreamSpark</a>, <a title="ImagineCup Student Competition 2010" href="http://imaginecup.com/" target="_blank">ImagineCup</a> and <a title="MSDN Academic Alliance Home Page" href="http://www.msdnaa.net/" target="_blank">MSDNAA</a> is beyond me. Maybe the company is simply trying too hard to fit in.) Meanwhile, Microsoft’s policy has been (up until now, read along) of watching what’s a must-have in the community and either bringing it in or recreating it (ORM, IoC and logging comes to mind). Kind of a crazy self-embrace-and-destroy-ish strategy.</p>
<p>Folks like <a title="ScottGu's Blog" href="http://weblogs.asp.net/scottgu/" target="_blank">Scott Guthrie</a> and <a href="http://research.microsoft.com/en-us/um/people/emeijer/ErikMeijer.html" target="_blank">Erik Meijer</a>, however, have been pushing a different agenda. They and their colleagues (<a title="Scott Hanselman's Computer Zen" href="http://www.hanselman.com/" target="_blank">Hanselman</a>, <a title="you've been HAACKED" href="http://haacked.com/" target="_blank">Haack</a>, <a title="Glenn Block" href="http://blogs.msdn.com/gblock/" target="_blank">Block</a> etc.) have realized that Microsoft hasn’t been leading the evolution of this industry for some time and that the grass on the other side could indeed be greener. Microsoft has a lot to teach and certainly has a lot to learn, and those guys were the ones who step up and started making a difference. This is a generation of bloggers, start-ups and self-management models, and where accountability and transparency are prime values. Microsoft, I think, has caught up with that, a sign that the times have changed and that Ozzie is indeed continuing where Gates left off, taking the company into the future. The important thing is that the industry, as whole, ends up better at the end of the day.</p>
<p><img class="size-full wp-image-21 alignright" style="background-color: inherit;" title="CodePlex Foundation logo" src="http://sharpshooting.com.br/wp-content/uploads/2009/09/logo.gif" alt="CodePlex Foundation logo" width="264" height="41" />Microsoft has to keep in that track. <a title="ASP.NET MVC 1.0 - ScottGu's Blog" href="http://weblogs.asp.net/scottgu/archive/2009/04/01/asp-net-mvc-1-0.aspx" target="_blank">Opening ASP.NET MVC</a>, <a title="jQuery and Microsoft - ScottGu's Blog" href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx" target="_blank">embracing jQuery</a> <a title="Moonlight 1.0 goes live - Miguel de Icaza" href="http://tirania.org/blog/archive/2009/Feb-11.html" target="_blank">and the Mono Project</a>, for example, were great moves and, not surprisingly, they came on Guthrie’s watch. While Microsoft has made some design decisions for the developers&#8211;and make no mistake: some of them, namely the agnostic die-hards, won’t like these decisions&#8211;they’ve reached a tipping point in the history of the ecosystem. Microsoft’s somewhat controversial new endeavor, <a title="CodePlex Foundation" href="http://www.codeplex.org" target="_blank">CodePlex Foundation</a>, is rapidly gaining popularity and will be subject of a lot of scrutiny by the community in the next months. What has changed in the strategy, is that instead of messing around with what the community has produced, Microsoft is indirectly providing guidance (with processes, techniques, legal mechanisms etc.) for commercial and open-source developers to lift themselves (and their work) up by their own bootstraps. <a title="InfoQ: The CodePlex Foundation - Community Reactions and Interviews" href="http://www.infoq.com/news/2009/09/codeplex-foundation" target="_blank">As reported by Jon Tørresdal at InfoQ, Scott Bellware explains</a>:</p>
<blockquote><p>Microsoft has been forced to build new products from scratch to provide Microsoft customers with the value that open source projects have proven and delivered. These projects are often far less robust and mature as the open source that inspired them. The protections offered by the CodePlex foundation are also a turning point that frees up Microsoft resources to focus on integrating existing value rather than duplicating it, and risk missing the value targets offered already by open source.</p>
<p>All of this points to an evolving shift in culture and values toward the freedom to choose solutions based on merit rather than mere intellectual property risk mitigation.</p>
<p>This shift in culture and values toward meritocracy and the benefits that come from open competition that stands a chance of taking Microsoft and Microsoft customer community in a brand new directions that can provide more value from the Microsoft stack than we’ve seen yet.</p></blockquote>
<p>When collaboration and cooperation start taking place (hey, isn’t it high time people started seeing value on using distributed-VCS?), projects can evolve naturally and in an orderly fashion. No reason why it should be different from what’s already been happening for ages in the unix-like open-source front. In the future, there’s a great chance we’ll see things like a package manager for libraries, common repositories, self-organizing and integrated communities, and flourishing projects. In the end, my take is that, under this strategy, Microsoft’s ecosystems grows stronger, gains market share, and all that without compromising the company’s business model.</p>
<p style="text-align: center;">* * *</p>
<p>This blog is about technology, business administration and engineering. I’ll be watching how the Microsoft ecosystem evolves from here on and I hope to be writing again soon about some predictions I guessed right. Meanwhile, I’ll focus on how to create great software by mashing .NET stuff up, I’ll be visiting different platforms either by professional necessity or by sheer curiosity (the latter more often than the former), and I’ll occasionally be visiting topics on business models and human relations. That’s <strong>sharpshooting</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sharpshooting.com.br/2009/09/24/my-take-on-the-net-ecosystem/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

