<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://port25.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Port 25: The Open Source Community at Microsoft : Open Source, Dynamic Languages</title><link>http://port25.technet.com/archive/tags/Open+Source/Dynamic+Languages/default.aspx</link><description>Tags: Open Source, Dynamic Languages</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 40109.1145)</generator><item><title>Microsoft to Open Source the .NET Micro Framework</title><link>http://port25.technet.com/archive/2009/11/16/microsoft-to-open-source-the-net-micro-framework.aspx</link><pubDate>Mon, 16 Nov 2009 15:16:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:28129</guid><dc:creator>Peter Galli</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=28129</wfw:commentRss><comments>http://port25.technet.com/archive/2009/11/16/microsoft-to-open-source-the-net-micro-framework.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;I have great news to announce. Today, at the Microsoft &lt;A href="http://microsoftpdc.com/" target=_blank mce_href="http://microsoftpdc.com/"&gt;Professional Developer Conference&lt;/A&gt; (PDC) here in Los Angeles, we announced not only the release of version 4.0 of&amp;nbsp;&amp;nbsp;the.NET Micro Framework, but also that we are open sourcing the product and making it available under the&amp;nbsp;Apache 2.0 license,&amp;nbsp;which is already being used by the community within the embedded space.&lt;/P&gt;
&lt;P&gt;The &lt;A href="http://www.microsoft.com/netmf/default.mspx" target=_blank mce_href="http://www.microsoft.com/netmf/default.mspx"&gt;.NET Micro Framework&lt;/A&gt;,a development and execution environment for resource-constrained devices, was initially developed&amp;nbsp;inside the Microsoft Startup Business Accelerator, but&amp;nbsp;recently moved to the Developer Division so as to&amp;nbsp;be more closely aligned with the overall direction of Microsoft development efforts. &lt;/P&gt;
&lt;P&gt;The result of this is that&amp;nbsp;the .NET Micro Framework has become&amp;nbsp;a seamless development experience, bringing a single programming model and tool chain for the breadth of developer solutions, all the way from&amp;nbsp;small intelligent devices, to servers and the cloud. There are also no more time-limited versions.&lt;/P&gt;
&lt;P&gt;Including the source code for almost all of the product also ensures that developers now also get access to the Base Class Libraries that were implemented for .NET Micro Framework and the CLR code itself.&lt;/P&gt;
&lt;P&gt;However,&amp;nbsp;both the TCP/IP stack&amp;nbsp;and Cryptography libraries are not included in the source code. Program Manager Colin Miller told me this was because&amp;nbsp;the TCP/IP stack is&amp;nbsp;third party software that Microsoft licenses from EBSNet, so we&amp;nbsp;do not have the rights to distribute that source code. If someone&amp;nbsp;needs to access the source code for the TCP/IP stack, they can contact EBSNet directly.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As for the Cyptography libraries, they are not included in source code because they are used outside of the scope of the .NET Micro Framework.&amp;nbsp; Customers who need to have access to the code in the cryptography functions will find that these libraries can be replaced, Miller said.&lt;/P&gt;
&lt;P&gt;I asked Miller what the future plans for the .Net Micro Framework were, and he made clear that Microsoft intends to remain actively involved in its ongoing development, working alongside the community. While the license will allow customers to take the code and make specialized versions to fit their needs, customers told us they&amp;nbsp;wanted Microsoft to stay involved to avoid any possible&amp;nbsp;fragmentation of the platform.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;"As such,&amp;nbsp;we&amp;nbsp;are planning on establishing a core technology team that is made up of both Microsoft and non-Microsoft contributors that continues the goals of producing a high quality product for very small devices.&amp;nbsp;This group will act as the gateway to community contributions while, at the same time, Microsoft Developers will continue add functionality and coordinate with the overall .NET team," he said.&lt;/P&gt;
&lt;P&gt;Microsoft is also&amp;nbsp;in the process of forming a &lt;A href="http://www.netmf.com/" target=_blank mce_href="http://www.netmf.com/"&gt;community&lt;/A&gt; of interested and involved members to help shape the future direction of the product.&amp;nbsp;There&amp;nbsp;will be a core technology team that is composed of Microsoft and external partners, and people will be encouraged to propose projects, which&amp;nbsp;will be vetted before they are accepted.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;"The site will also support people building extensions that exist alongside the platform rather than being integrated into it,&amp;nbsp;" Miller told me.&amp;nbsp;&lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=28129" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Dynamic+Languages/default.aspx">Dynamic Languages</category><category domain="http://port25.technet.com/archive/tags/.NET+Development/default.aspx">.NET Development</category><category domain="http://port25.technet.com/archive/tags/Community/default.aspx">Community</category><category domain="http://port25.technet.com/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://port25.technet.com/archive/tags/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category><category domain="http://port25.technet.com/archive/tags/Peter+Galli/default.aspx">Peter Galli</category></item><item><title>The ECMA C# and CLI Standards</title><link>http://port25.technet.com/archive/2009/07/06/the-ecma-c-and-cli-standards.aspx</link><pubDate>Mon, 06 Jul 2009 17:27:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:26483</guid><dc:creator>Peter Galli</dc:creator><slash:comments>45</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=26483</wfw:commentRss><comments>http://port25.technet.com/archive/2009/07/06/the-ecma-c-and-cli-standards.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;I have some good news to announce:&amp;nbsp;Microsoft will be applying the &lt;A href="http://www.microsoft.com/interop/cp/default.mspx" target=_blank&gt;Community Promise&lt;/A&gt; to the &lt;A class="" href="http://www.ecma-international.org/publications/standards/Ecma-334.htm" target=_blank mce_href="http://www.ecma-international.org/publications/standards/Ecma-334.htm"&gt;ECMA 334&lt;/A&gt; and &lt;A class="" href="http://www.ecma-international.org/publications/standards/Ecma-335.htm" target=_blank mce_href="http://www.ecma-international.org/publications/standards/Ecma-335.htm "&gt;ECMA 335&lt;/A&gt; &lt;A&gt;specs&lt;/A&gt;. &lt;/P&gt;
&lt;P mce_keep="true"&gt;ECMA 334 specifies the form and establishes the interpretation of programs written in the C# programming language, while the ECMA 335 standard defines the Common Language Infrastructure (CLI) in which applications written in multiple high-level languages can be executed in different system environments without the need to rewrite those applications to take into consideration the unique characteristics of those environments.&lt;/P&gt;
&lt;P&gt;"The Community Promise is an excellent vehicle and, in this situation, ensures the best balance of interoperability and flexibility for developers," &lt;A href="http://weblogs.asp.net/scottgu/" target=_blank&gt;Scott Guthrie&lt;/A&gt;,&amp;nbsp; the Corporate Vice President for the .Net Developer Platform, told me July 6.&lt;/P&gt;
&lt;P&gt;It is important to note that, under the Community Promise,&amp;nbsp;anyone&amp;nbsp;can freely implement these specifications with their technology, code, and solutions.&lt;/P&gt;
&lt;P&gt;You do not need to sign a license agreement, or otherwise communicate to Microsoft how you will implement the specifications. &lt;/P&gt;
&lt;P&gt;The Promise applies to developers, distributors, and users of Covered Implementations without regard to the development model that created the implementations, the type of copyright licenses under which it is distributed, or the associated business model. &lt;/P&gt;
&lt;P&gt;Under the Community Promise, Microsoft provides assurance that it will not assert its Necessary Claims against anyone who makes, uses, sells, offers for sale, imports, or distributes any Covered Implementation under any type of development or distribution model, including open-source licensing models such as the LGPL or GPL.&lt;/P&gt;
&lt;P&gt;You can find the terms of the Microsoft Community Promise &lt;A class="" href="http://www.microsoft.com/interop/cp/default.mspx" target=_blank mce_href="http://www.microsoft.com/interop/cp/default.mspx"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;I told you this was good news! &lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=26483" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Licenses/default.aspx">Licenses</category><category domain="http://port25.technet.com/archive/tags/Dynamic+Languages/default.aspx">Dynamic Languages</category><category domain="http://port25.technet.com/archive/tags/Standards/default.aspx">Standards</category><category domain="http://port25.technet.com/archive/tags/Community/default.aspx">Community</category><category domain="http://port25.technet.com/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://port25.technet.com/archive/tags/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category><category domain="http://port25.technet.com/archive/tags/Peter+Galli/default.aspx">Peter Galli</category></item><item><title>Crafting a Better PHP Build Process on Windows – Part IV</title><link>http://port25.technet.com/archive/2009/06/23/crafting-a-better-php-build-process-on-windows-part-iv.aspx</link><pubDate>Wed, 24 Jun 2009 00:12:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:26365</guid><dc:creator>Garrett Serack</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=26365</wfw:commentRss><comments>http://port25.technet.com/archive/2009/06/23/crafting-a-better-php-build-process-on-windows-part-iv.aspx#comments</comments><description>&lt;P&gt;&lt;EM&gt;In&amp;nbsp;the &lt;A class="" href="http://port25.technet.com/archive/2009/06/17/crafting-a-better-php-build-process-on-windows-part-iii.aspx" target=_blank mce_href="http://port25.technet.com/archive/2009/06/17/crafting-a-better-php-build-process-on-windows-part-iii.aspx"&gt;previous&amp;nbsp;post&lt;/A&gt;, I discussed what it took to use PGO on the Windows PHP build. That led to me building automated build scripts...&lt;/EM&gt;&lt;/P&gt;
&lt;H5&gt;&lt;U&gt;Automation as the root of all evil &lt;/U&gt;&lt;/H5&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;"Anything that can be done for you, automatically, can be done to you, automatically." - David C. Wyland&lt;/EM&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;First, I had to get the entire dependency stack into the mix.&amp;nbsp;While some of the dependent libraries had VCProject files, some didn't.&amp;nbsp;Worse, even if they had them, you couldn't tell with a degree of certainty that they were compiled with the same settings which would enable them to take advantage of PGO optimization.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I began taking each project, updating (or creating, using the &lt;A class="" href="http://gstoolkit.codeplex.com/Wiki/View.aspx?title=Trace" target=_blank mce_href="http://gstoolkit.codeplex.com/Wiki/View.aspx?title=Trace"&gt;Trace&lt;/A&gt; and &lt;A class="" href="http://gstoolkit.codeplex.com/Wiki/View.aspx?title=mkProject" target=_blank mce_href="http://gstoolkit.codeplex.com/Wiki/View.aspx?title=mkProject"&gt;mkProject&lt;/A&gt; tools) the Visual C++ project files that would use the same settings as the rest, and eventually came up with a solution file that had 74 projects in it - some of the projects generated more than one binary. &lt;/P&gt;
&lt;P&gt;Next, I had to actually automate the process of creating the vcproject files. Once you've got the right dependencies, the PHP build process cranks out over 30 binaries when you include the PHP extensions that get built as part of the core.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;After what seemed like a million compile-verify-tweak iterations, I had the tools that could generate VCProject files for the core PHP and all the extensions, provided it was all in the right place. &lt;/P&gt;
&lt;P&gt;Next I wrote a .cmd batch script that went step-by-step, checking out the source, compiling the dependent libraries, building the PHP makefile, compiling PHP like the community did - and logging what it was doing, then switching to instrumentation, rebuilding the dependencies again, building the stack, PGO training it with test data and some applications (Wordpress, MediaWiki and phpBB) and then relinking it with optimization. &lt;/P&gt;
&lt;P&gt;I got the .cmd script almost working, but it was fairly fragile.&amp;nbsp; At that point I &lt;A class="" href="http://fearthecowboy.com/post/Choosing-a-batch-scripting-language-on-Windows.aspx" target=_blank mce_href="http://fearthecowboy.com/post/Choosing-a-batch-scripting-language-on-Windows.aspx"&gt;decided to switch batch scripting strategies&lt;/A&gt;&amp;nbsp;and, in about a week, rewrote the batch script in &lt;A class="" href="http://fearthecowboy.com/?tag=/jscript" target=_blank mce_href="http://fearthecowboy.com/?tag=/jscript"&gt;JScript&lt;/A&gt;, which was far more flexible, and a lot more reliable. &lt;/P&gt;
&lt;H5&gt;&lt;U&gt;What's next... &lt;/U&gt;&lt;/H5&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;"The future always arrives too fast... and in the wrong order." - Alvin Toffler &lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;During this process, I tweaked the build process that is generated quite a bit, adding in a few more applications to the PGO training, which cranks the performance up more and more. &lt;/P&gt;
&lt;P&gt;Now, I can add in more scripts to assist with the training pretty trivially, but it still takes some effort to package up an entire application like MediaWiki or Wordpress and include it into the build process.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Even once I've added in an application, I end up doing a whole slew of comparative testing to see what impact it has on the final executables. &lt;/P&gt;
&lt;P&gt;As time goes by, I'm sure there will be&amp;nbsp;more tweaking to be done but, in all likelihood, any significant performance gains are going to be the result some modification of the PHP codebase itself.&lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=26365" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Interop/default.aspx">Interop</category><category domain="http://port25.technet.com/archive/tags/Dynamic+Languages/default.aspx">Dynamic Languages</category><category domain="http://port25.technet.com/archive/tags/Community/default.aspx">Community</category><category domain="http://port25.technet.com/archive/tags/PHP/default.aspx">PHP</category><category domain="http://port25.technet.com/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://port25.technet.com/archive/tags/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category><category domain="http://port25.technet.com/archive/tags/Garrett+Serack/default.aspx">Garrett Serack</category></item><item><title>Crafting a Better PHP Build Process on Windows – Part II</title><link>http://port25.technet.com/archive/2009/06/11/crafting-a-better-php-build-process-on-windows-part-ii.aspx</link><pubDate>Thu, 11 Jun 2009 20:10:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:26189</guid><dc:creator>Garrett Serack</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=26189</wfw:commentRss><comments>http://port25.technet.com/archive/2009/06/11/crafting-a-better-php-build-process-on-windows-part-ii.aspx#comments</comments><description>&lt;P&gt;&lt;EM&gt;I talked about getting started in building the PHP stack in my &lt;A class="" href="http://port25.technet.com/archive/2009/06/09/optimizing-php-part-1.aspx" target=_blank mce_href="http://port25.technet.com/archive/2009/06/09/optimizing-php-part-1.aspx"&gt;last post&lt;/A&gt;, now I'm taking it...&lt;/EM&gt;&lt;/P&gt;
&lt;H5&gt;&lt;U&gt;One step further&lt;/U&gt;&lt;/H5&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil." - Donald Knuth &lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;A chance conversation I had last summer at OSCON with &lt;A class="" href="http://port25.technet.com/archive/2009/02/10/welcome-snakebite-the-newest-open-network-in-town.aspx" target=_blank mce_href="http://port25.technet.com/archive/2009/02/10/welcome-snakebite-the-newest-open-network-in-town.aspx"&gt;Trent Nelson&lt;/A&gt;&amp;nbsp;- who was building Python on Windows -&amp;nbsp;planted the seeds of how to get PHP on Windows optimized further.&amp;nbsp; Trent was using the PGO features of Visual Studio to generate Python binaries that run faster.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Rather than spend a lot of time optimizing all the little bits of PHP itself, I thought that this would be an ideal way to improve the overall speed of PHP, provided I could find the right scenarios to train &lt;A class="" href="http://port25.technet.com/archive/2009/05/29/migrating-php-apps-to-windows.aspx" target=_blank mce_href="http://port25.technet.com/archive/2009/05/29/migrating-php-apps-to-windows.aspx"&gt;PHP&lt;/A&gt; with.&amp;nbsp; Little did I know that finding the right scenarios wasn't the hardest part. &lt;/P&gt;
&lt;P mce_keep="true"&gt;
&lt;TABLE class="" cellSpacing=0 cellPadding=2 width="100%" border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=50&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD class="" vAlign=top bgColor=#c0c0c0&gt;&lt;A href="http://en.wikipedia.org/wiki/Profile-guided_optimization"&gt;&lt;STRONG&gt;What is PGO?&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;EM&gt;(from Wikipedia) &lt;BR&gt;&lt;STRONG&gt;Profile-guided optimization&lt;/STRONG&gt; (&lt;B&gt;PGO&lt;/B&gt;) is a &lt;/EM&gt;&lt;A class="" href="http://en.wikipedia.org/wiki/Compiler" target=_blank mce_href="http://en.wikipedia.org/wiki/Compiler"&gt;&lt;EM&gt;compiler&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; optimization technique in &lt;/EM&gt;&lt;A class="" href="http://en.wikipedia.org/wiki/Computer_programming" target=_blank mce_href="http://en.wikipedia.org/wiki/Computer_programming"&gt;&lt;EM&gt;computer programming&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; to improve program runtime performance. In contrast to traditional optimization techniques that solely use the &lt;/EM&gt;&lt;A href="http://en.wikipedia.org/wiki/Source_code"&gt;&lt;EM&gt;source code&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;, PGO uses the results of test runs of the instrumented program to optimize the final generated code. The compiler is used to access data from a sample run of the program across a representative input set. The data indicates which areas of the program are executed more frequently, and which areas are executed less frequently. All optimizations benefit from profile-guided feedback because they are less reliant on &lt;/EM&gt;&lt;A class="" href="http://en.wikipedia.org/wiki/Heuristic" target=_blank mce_href="http://en.wikipedia.org/wiki/Heuristic"&gt;&lt;EM&gt;heuristics&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; when making compilation decisions.&lt;/EM&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;H5&gt;&lt;U&gt;Adding PGO to the existing build process &lt;/U&gt;&lt;/H5&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;"I have not failed, I've just found 10,000 ways that won't work." - Thomas Edison&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I had downloaded the source to the dependent libraries off the PHP wiki, checked out the &lt;A class="" href="http://port25.technet.com/archive/2009/05/12/announcing-the-php-sdk-for-windows-azure.aspx" target=_blank mce_href="http://port25.technet.com/archive/2009/05/12/announcing-the-php-sdk-for-windows-azure.aspx"&gt;PHP source code&lt;/A&gt;, and begun the process of adding in PGO support to the existing build process. This proved to be extremely difficult.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Even limiting the scope to just the core of PHP itself - without the dependent libraries - I ran into trouble trying to compile using PGO instrumentation and then re-linking after running some tests.&amp;nbsp; The make file that gets generated by the configure.js script (a JScript version of the automake configure script for the Windows platform) was just not built with what I had in mind. &lt;/P&gt;
&lt;P&gt;I spent the better part of two weeks trying different approaches to tweaking the makefile so that I could use PGO to improve the &lt;A class="" href="http://port25.technet.com/archive/2009/05/11/php-5-3-rc2-highly-optimized-for-windows.aspx" target=_blank mce_href="http://port25.technet.com/archive/2009/05/11/php-5-3-rc2-highly-optimized-for-windows.aspx"&gt;PHP executable&lt;/A&gt;, but I kept running into roadblocks.&amp;nbsp; Worse, the closer I got to a makefile that did what I wanted, the farther away from the current build process I was getting, and I wasn't sure that what I would end up with would even be close to what was being built today. &lt;/P&gt;
&lt;H5&gt;&lt;U&gt;The long dark winter road &lt;/U&gt;&lt;/H5&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;"Only the meek get pinched. The bold survive." - Ferris Bueller&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I came to the conclusion that I'd have to build new Visual Studio project files from scratch.&amp;nbsp; What worried me was that this would end up to be a completely different build process, and I'd never get the community to abandon what was already working, so I'd better be able to rebuild these new project files easily.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I started looking (inside Microsoft and out) for any tools which generated Visual C++ project files.&amp;nbsp; I found someone internally who had used some JScript to create project files from text files, but after some experimentation, I found this was nowhere near what I needed.&amp;nbsp; What I really needed was a way to convert the generated Makefile into a .vcproj file-and not just 'wrap' it. &lt;/P&gt;
&lt;P&gt;Once I found there was no such tool* , I began trying to figure out how to create one. I had this idea a few times in the last decade or so: watch how a program is compiled, and create a project file that does the same thing. Having tossed around the idea in my head before, I knew it wasn't going to be trivial but, without it, I couldn't do what needed to be done. &lt;/P&gt;
&lt;P mce_keep="true"&gt;
&lt;TABLE class="" cellSpacing=0 cellPadding=2 width="100%" border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top width=50&gt;&lt;EM&gt;&lt;/EM&gt;&lt;/TD&gt;
&lt;TD class="" vAlign=top&gt;&lt;EM&gt;* Let me tell you: you &lt;STRONG&gt;never&lt;/STRONG&gt; want to think about writing a tool to parse out what a makefile does.&amp;nbsp; It's rather like making a tool that tells you how sausage is made, in excruciating detail. Ugh.&lt;/EM&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;In Part III, I'll talk about the trouble with observing the build process.&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=26189" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Interop/default.aspx">Interop</category><category domain="http://port25.technet.com/archive/tags/Dynamic+Languages/default.aspx">Dynamic Languages</category><category domain="http://port25.technet.com/archive/tags/Community/default.aspx">Community</category><category domain="http://port25.technet.com/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://port25.technet.com/archive/tags/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category><category domain="http://port25.technet.com/archive/tags/Garrett+Serack/default.aspx">Garrett Serack</category></item><item><title>Crafting a Better PHP Build Process on Windows – Part I</title><link>http://port25.technet.com/archive/2009/06/09/optimizing-php-part-I.aspx</link><pubDate>Tue, 09 Jun 2009 18:22:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:26148</guid><dc:creator>Garrett Serack</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=26148</wfw:commentRss><comments>http://port25.technet.com/archive/2009/06/09/optimizing-php-part-I.aspx#comments</comments><description>&lt;P&gt;&lt;EM&gt;The last several months, I've been working very deeply with PHP - specifically, compiling the PHP core itself, and looking for avenues for optimization. This is the first of four posts about the journey I've been on with PHP.&lt;/EM&gt;&lt;/P&gt;
&lt;H5&gt;&lt;U&gt;I get started building PHP&lt;/U&gt;&lt;/H5&gt;
&lt;BLOCKQUOTE&gt;&lt;U&gt;&lt;/U&gt;
&lt;P&gt;&lt;EM&gt;"It is a bad plan that admits of no modification" - Publilius Syrus &lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I started working with building PHP itself about a year ago. Initially, I was trying to put together an environment to compile up the PHP stack so that I could do some debugging, and track down a few faults that we were encountering in some of the PHP applications that we were trying to modify to use the &lt;A href="http://sql2k5php.codeplex.com/" target=_blank mce_href="http://sql2k5php.codeplex.com/"&gt;SQL Server PHP driver&lt;/A&gt; that the SQL Server team here at Microsoft was creating. &lt;/P&gt;
&lt;P&gt;Once I began to work with the source code, I found out very quickly that on top of having a hard time recreating the exact same binaries that the community build process generated, there were a large number of dependent libraries that were available in &lt;STRONG&gt;binary-only&lt;/STRONG&gt; form and which were kept in a zip file that was passed around from developer to developer. That seemed a little odd for an open-source project, but I can certainly understand that over time, unless someone is working hard to keep it all together, these things happen. &lt;/P&gt;
&lt;P&gt;Around the same time, the community had started to invest time and effort to 'clean up' the dependencies for building PHP on Windows, and move towards supporting VC9 (Visual Studio 2008) as an officially supported compiler. &lt;/P&gt;
&lt;P&gt;In order to help in this process, I built out some testing environments in our Lab, which would let me compile up PHP on Windows and Linux, in order to get decent and reliable test results which we could use to identify any shortcomings that we could then address. This includes benchmarking not just the core PHP executable, but replicable and comparable testing of PHP applications such as Wordpress, MediaWiki, Gallery and phpBB. &lt;/P&gt;
&lt;H5&gt;&lt;U&gt;PHP 5.3 on Windows: Not your father's PHP &lt;/U&gt;&lt;/H5&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;"I'm looking for a lot of men who have an infinite capacity to not know what can't be done." - Henry Ford &lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;For &lt;A href="http://port25.technet.com/archive/2009/05/11/php-5-3-rc2-highly-optimized-for-windows.aspx" target=_blank mce_href="http://port25.technet.com/archive/2009/05/11/php-5-3-rc2-highly-optimized-for-windows.aspx"&gt;PHP 5.3&lt;/A&gt;, &lt;A href="http://blog.thepimp.net/" target=_blank mce_href="http://blog.thepimp.net/"&gt;Pierre&lt;/A&gt; (and others) had gone out and found up-to-date versions of all the dependencies, brought them together, and managed to get them compiling with VC6 and VC9.&amp;nbsp; They had posted these in binary and source form to the &lt;A href="http://wiki.php.net/internals/windows" target=_blank mce_href="http://wiki.php.net/internals/windows"&gt;PHP Windows Internals&lt;/A&gt; site, which allows anyone to rebuild the PHP stack on Windows and, theoretically, get the same results as the 'official' build. &lt;/P&gt;
&lt;P&gt;Jumping in at that point was much easier than it had been, as all you had to do was download the binaries of the libraries, check out the source code, run a few commands at the command line and, &lt;STRONG&gt;presto,&lt;/STRONG&gt; you had your PHP executables.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;At this point Pierre and I played around with the build flags on VC9 and found some settings that gave some pretty significant improvements to the speed of PHP vs. the speed of the VC6 version -and a lot of speed improvements vs. the old 5.2x line of PHP. &lt;/P&gt;
&lt;H5&gt;&lt;/H5&gt;
&lt;P&gt;&lt;EM&gt;In Part II, I'll talk about going one step further with optimization.&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=26148" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Dynamic+Languages/default.aspx">Dynamic Languages</category><category domain="http://port25.technet.com/archive/tags/Community/default.aspx">Community</category><category domain="http://port25.technet.com/archive/tags/PHP/default.aspx">PHP</category><category domain="http://port25.technet.com/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://port25.technet.com/archive/tags/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category><category domain="http://port25.technet.com/archive/tags/Garrett+Serack/default.aspx">Garrett Serack</category></item><item><title>PHP|Tek in Chicago </title><link>http://port25.technet.com/archive/2009/05/27/php-tek-in-chicago.aspx</link><pubDate>Thu, 28 May 2009 00:29:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:25956</guid><dc:creator>hjanssen</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=25956</wfw:commentRss><comments>http://port25.technet.com/archive/2009/05/27/php-tek-in-chicago.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Last week I got the perfect excuse to get out of the Planning and Budget process that we are going through right now, attending PHP|Tek, which was a welcome escape as planning and budgeting in any company is usually enough fun to make a grown man cry!&lt;/P&gt;
&lt;P&gt;So last week I went to &lt;A class="" href="http://tek.mtacon.com/" target=_blank mce_href="http://tek.mtacon.com/"&gt;PHP|Tek&lt;/A&gt; in Chicago to speak and meet folk from the PHP community. As always, I greatly enjoy meeting the people who write and use PHP, and I have been to and spoken with enough of the speakers at past events that I know a lot of the core people by first name. &lt;/P&gt;
&lt;P&gt;Kind of funny that we now have gotten to the point inside of Microsoft that we are almost old hats at Open Source conferences &lt;img src="http://port25.technet.com/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;/P&gt;
&lt;P&gt;There were two days prior to the conference where a group of core PHP developers and community people talked about the state - past, present and future &amp;nbsp;- of PHP. It was super cool to be invited to that one!&lt;/P&gt;
&lt;P&gt;Unfortunately I was only able to join one of those two days: amazing that flying from Seattle to Chicago takes the better part of a day!&lt;/P&gt;
&lt;P&gt;The discussions there where very wide ranging, from whether there will be a PHP 5.4, what 6.0 will bring, which bugs are current show stoppers, where PDO is going, etc. etc.&lt;/P&gt;
&lt;P&gt;For me PHP|Tek remains a very nice ‘community' conference, where the focus is on the community of PHP and not the business/vendors of PHP. &lt;/P&gt;
&lt;P&gt;These kinds of conferences are the best way to network, and it would take too long to talk about all the people I spoke to. But Elizabeth Smith and I talked about us writing documentation for php.net (I have been wanting to write the ‘how to build PHP for Windows' part) so hopefully look for more documentation written by Microsoft for php.net soon. &lt;/P&gt;
&lt;P&gt;As always I talked to a lot of the usual suspects: Scott MacVicar, Andrei Zmievski, Derick Rethans, Sebastian Bergmann, Chris Shiflett, Cal Evans and others. &lt;/P&gt;
&lt;P&gt;Oh, and if you are really bored, check out the latest May issue of &lt;A class="" href="http://www.phparch.com/" target=_blank mce_href="http://www.phparch.com/"&gt;php architect&lt;/A&gt;, which has a bunch of really cool articles about PHP and Windows. Some of them were even co-written by me, which gives you an idea how far php | architect has sunk to have people write articles for them&amp;nbsp;&lt;img src="http://port25.technet.com/emoticons/emotion-1.gif" alt="Smile" /&gt; &lt;/P&gt;
&lt;P&gt;I just checked out the Website, and the May issue is not posted yet. But everybody who attended PHP|Tek got a copy of that issue in their goodies bag.&lt;/P&gt;
&lt;P&gt;I always enjoy giving sessions and the session I did give at PHP|Tek was ‘&lt;A class="" href="http://tek.mtacon.com/c/schedule/talk/d2s2/1" target=_blank mce_href="http://tek.mtacon.com/c/schedule/talk/d2s2/1"&gt;PHP 5.3 The best PHP on Windows Yet&lt;/A&gt;' , and I got some really good feedback. I think I had about 40+ people in my session. People are always surprised to see Microsoft's involvement with PHP and what we have done with the community so far.&lt;/P&gt;
&lt;P&gt;It is a talk I have given before. It starts with describing what the organization I belong to (the Microsoft Open Source Technology Center) does and how we work inside of Microsoft. After that I go into some detail about why &lt;A class="" href="http://port25.technet.com/archive/2009/01/16/php-5-3-on-windows-update.aspx" target=_blank mce_href="http://port25.technet.com/archive/2009/01/16/php-5-3-on-windows-update.aspx"&gt;PHP 5.3&lt;/A&gt; is the best &lt;A class="" href="http://port25.technet.com/archive/2009/05/11/php-5-3-rc2-highly-optimized-for-windows.aspx" target=_blank mce_href="http://port25.technet.com/archive/2009/05/11/php-5-3-rc2-highly-optimized-for-windows.aspx"&gt;PHP on Windows&lt;/A&gt;.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Did you know that, for example, with PHP releases prior to 5.3, the code was build with libraries that were more than 10 years old and for which nobody really had any idea where the source code went? So it was built&amp;nbsp;- linked rather - with object files&amp;nbsp;that were more than 10 years old. &lt;/P&gt;
&lt;P&gt;It makes it really hard to fix/improve stuff that you do not have the source code for &lt;img src="http://port25.technet.com/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;/P&gt;
&lt;P&gt;Well, pretty much all the issues of the past are now gone. I will make sure I write a blog about what truly went into PHP 5.3 for Windows soon,&amp;nbsp;if the budgeting and planning process doesn't kill me before that point. In the meantime, here is a link to &lt;A class="" href="http://www.phpfreaks.com/forums/index.php/board,112.0.html" target=_blank mce_href="http://www.phpfreaks.com/forums/index.php/board,112.0.html"&gt;phpfreaks&lt;/A&gt; where, a few weeks ago, I posted a bunch of what we have been doing.&lt;/P&gt;
&lt;P&gt;One really interesting thing is that there were a lot of Microsoft people at this conference, specifically from the DPE (Developer Platform Evangelism) side of Microsoft. &lt;/P&gt;
&lt;P&gt;These are the people who are very much field and customer focused.&amp;nbsp; From my conversations with them, they enjoyed the conference and were glad to get the opportunity to speak with a lot of the OS crowd. It is amazing how much we all have in common once we talk about technology.&lt;/P&gt;
&lt;P&gt;Thanks to the people who put on the conference: of course Marco Tabini, the man behind&amp;nbsp;PHP|Tek, but especially Elizabeth Naramore, who is the unsung hero that is the real driver behind keeping PHP|Tek running smoothly! &lt;img src="http://port25.technet.com/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=25956" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Industry+Conferences/default.aspx">Industry Conferences</category><category domain="http://port25.technet.com/archive/tags/Hank+Janssen/default.aspx">Hank Janssen</category><category domain="http://port25.technet.com/archive/tags/Dynamic+Languages/default.aspx">Dynamic Languages</category><category domain="http://port25.technet.com/archive/tags/Community/default.aspx">Community</category><category domain="http://port25.technet.com/archive/tags/PHP/default.aspx">PHP</category><category domain="http://port25.technet.com/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://port25.technet.com/archive/tags/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category></item><item><title>The Hidden Technology Decision-Maker</title><link>http://port25.technet.com/archive/2009/03/25/the-hidden-technology-decision-maker.aspx</link><pubDate>Wed, 25 Mar 2009 15:00:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:24614</guid><dc:creator>Mark Stone</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=24614</wfw:commentRss><comments>http://port25.technet.com/archive/2009/03/25/the-hidden-technology-decision-maker.aspx#comments</comments><description>&lt;p&gt;On Monday Microsoft and SD Forum held the 3rd annual Open Source ISV Forum. In a day of interesting talks, I was particularly struck by Larry Augustin's talk.&amp;nbsp; As an emphasizing example of the growth of open source projects partnered with a commercial endeavor, Larry mentioned &lt;a href="http://www.dotnetnuke.com/" mce_href="http://www.dotnetnuke.com/"&gt;DotNetNuke&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;DotNetNuke is, of course, freely available for download and licensed under an open source license. But there is also a professional edition and a range of complimentary commercial services for those who want service, support, or customizations. The business model is classic open source: the free download seeds the market with potential customers, and as some of those run up against the limits of what they are willing to do on their own, they make inquiries about the professional edition. Thus open source creates an inbound channel of qualified sales leads, without the overhead and expense of a sales force working in the field.&lt;/p&gt;&lt;p&gt;This is a great business model, but it's important to think about the actual decision-makers in this adoption process. What's distinctive about DotNetNuke is that it's one of the few mature, open source Content Management Systems (CMSs) that is not written in PHP.&amp;nbsp; It is, as the name implies, ASP.NET based. And this reminds me of a prdocut management position I was in some years ago when (a) the only mature CMS choices were PHP-based, and (b) PHP on Windows was not yet a viable alternative.&lt;/p&gt;&lt;p&gt;The company in question was in a typical position: they were not a technology company, but needed a strong web presence for their business and to connect to the online community of their customers. They had a home-grown CMS solution that wasn't scaling, wasn't secure, and wasn't stable. My product management team put together a good comparison chart of various CMS choices, many of them open source. I sat down with the web development manager to review the choices.&lt;/p&gt;&lt;p&gt;"Some of these are good systems," he said, "but I have a team of .NET developers, and these are all PHP-based. I don't have head count to go out and hire a PHP dev for this project."&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;Note the decision-making process at work here:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;From an agreed list of candidate software, an engineering team will download something to "test drive";&lt;/li&gt;&lt;li&gt;One developer will do some testing and make a recommendation;&lt;/li&gt;&lt;li&gt;From a short list of recommended software a more thorough test will be done with a prototype or pilot project;&lt;/li&gt;&lt;li&gt;Finally a choice will be made, and money will be spent.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The person with the first vote in the process is not a CIO or any other traditional "IT Decision Maker". It's one dev, talking to his manager. If your software gets vetoed at that level, or -- worse -- never even gets a try-out, then your product isn't in the decision-making process.&lt;/p&gt;&lt;p&gt;A lot has changed in recent years. PHP is now much better supported on Windows, and .NET projects like DotNetNuke are available and much more mature. This is as it should be. For open source to spread to its full potential, it has to be available in the technology adoption decision-making process. And that availability starts with being available to the hidden technology decision-maker: that lone developer who will look at software written in a framework they understand for a platform they work with. &lt;br&gt;&lt;/p&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=24614" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Dynamic+Languages/default.aspx">Dynamic Languages</category><category domain="http://port25.technet.com/archive/tags/.NET+Development/default.aspx">.NET Development</category><category domain="http://port25.technet.com/archive/tags/Community/default.aspx">Community</category><category domain="http://port25.technet.com/archive/tags/PHP/default.aspx">PHP</category><category domain="http://port25.technet.com/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://port25.technet.com/archive/tags/Web/default.aspx">Web</category><category domain="http://port25.technet.com/archive/tags/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category></item><item><title>Japanese LAMP Engineers Visit Redmond</title><link>http://port25.technet.com/archive/2009/03/10/japanese-lamp-engineers-visit-redmond.aspx</link><pubDate>Tue, 10 Mar 2009 21:30:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:24336</guid><dc:creator>Peter Galli</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=24336</wfw:commentRss><comments>http://port25.technet.com/archive/2009/03/10/japanese-lamp-engineers-visit-redmond.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;I was fortunate enough to spend last Thursday with a group of LAMP engineers who have some experience with Windows Server and IIS, and who are based in Japan.&lt;/P&gt;
&lt;P mce_keep="true"&gt;The three - Kimio Tanaka, the president of Museum IN Cloud; Junpei Hosoda, the president of Yokohama System Development; and Hajime Taira, with Hewlett-Packard Japan - won a competition organized by impress IT and designed to get competitive LAMP engineers to increase the volume of technical information around &lt;A class="" href="http://port25.technet.com/archive/2007/09/24/php-on-iis.aspx" target=_blank mce_href="http://port25.technet.com/archive/2007/09/24/php-on-iis.aspx"&gt;PHP/IIS&lt;/A&gt; and application compatibility. The competition was titled "&lt;A class="" href="http://tedia.jp/installmaniax/2008/index.html" target=_blank mce_href="http://tedia.jp/installmaniax/2008/index.html"&gt;Install Maniax 2008&lt;/A&gt;".&lt;/P&gt;
&lt;P mce_keep="true"&gt;A total of 100 engineers were chosen to compete and seeded with Dell server hardware and the Windows Web Server 2008 operating system. They were then required to deploy Windows Server/IIS and make the Web Server accessible from the Internet. They also had to run popular PHP/Perl applications on IIS and publish technical documentation on how to configure those applications to run on IIS.&lt;/P&gt;
&lt;P mce_keep="true"&gt;The three winners were chosen based on the number of ported applications on IIS, with the prize being a trip to Redmond.&amp;nbsp; A total of 71 applications out of&amp;nbsp;the targeted 75 were ported onto IIS, of which 47 were newly ported to IIS, and related new "how to" documents were published to the Internet. Some 24 applications were also ported onto IIS based on existing "how to" documents. &lt;/P&gt;
&lt;P mce_keep="true"&gt;The first-place winner Kimio Tanaka managed to port 71 applications onto a single IIS server. His technical documents can be found &lt;A class="" href="http://iis.museum-in-cloud.com/joomla/" target=_blank mce_href="http://iis.museum-in-cloud.com/joomla/"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Kentaro Yoshikawa, the Platform Strategy CSI Lead for Microsoft Japan, put the competition together and brought the winners to Redmond, where we arranged for them to meet with folk from the Windows Azure, Windows Server and IIS development teams. They also spent time with &lt;A class="" href="http://port25.technet.com/archive/2008/07/25/oscon2008.aspx" target=_blank mce_href="http://port25.technet.com/archive/2008/07/25/oscon2008.aspx"&gt;Sam Ramji&lt;/A&gt;, the Senior Director for Platform Strategy, as well as with &lt;A class="" href="http://port25.technet.com/archive/2008/11/04/open-source-highlights-at-microsoft-s-professional-developers-conference.aspx" target=_blank mce_href="http://port25.technet.com/archive/2008/11/04/open-source-highlights-at-microsoft-s-professional-developers-conference.aspx"&gt;Tom Hanrahan&lt;/A&gt; and &lt;A class="" href="http://port25.technet.com/archive/2008/10/28/on-the-road-in-europe-take-1.aspx" target=_blank mce_href="http://port25.technet.com/archive/2008/10/28/on-the-road-in-europe-take-1.aspx"&gt;Hank Janssen&lt;/A&gt; of the Open Source Technology Center. &lt;/P&gt;
&lt;P mce_keep="true"&gt;Kentaro told me that the three were really impressed by the depth of the discussions they had during the day, which was useful to them as they have, until now, mostly lived outside of the traditional Microsoft ecosystem.&lt;/P&gt;
&lt;P mce_keep="true"&gt;They also appreciated the depth of technical thought, strategy and commitment to open source communities that exists within not only the Platform Strategy group, but across Microsoft.&lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=24336" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Interop/default.aspx">Interop</category><category domain="http://port25.technet.com/archive/tags/Dynamic+Languages/default.aspx">Dynamic Languages</category><category domain="http://port25.technet.com/archive/tags/Community/default.aspx">Community</category><category domain="http://port25.technet.com/archive/tags/PHP/default.aspx">PHP</category><category domain="http://port25.technet.com/archive/tags/Linux/default.aspx">Linux</category><category domain="http://port25.technet.com/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://port25.technet.com/archive/tags/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category></item><item><title>Welcome Snakebite, the Newest Open Network in Town!</title><link>http://port25.technet.com/archive/2009/02/10/welcome-snakebite-the-newest-open-network-in-town.aspx</link><pubDate>Tue, 10 Feb 2009 13:38:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:23676</guid><dc:creator>Peter Galli</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=23676</wfw:commentRss><comments>http://port25.technet.com/archive/2009/02/10/welcome-snakebite-the-newest-open-network-in-town.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;There's a new Open Network in town, known as Snakebite, which is&amp;nbsp;the brainchild of &lt;A class="" href="http://www.ohloh.net/p/python/contributors/113816693642" target=_blank mce_href="http://www.ohloh.net/p/python/contributors/113816693642"&gt;Trent Nelson&lt;/A&gt;, a committer to Python.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Snakebite is a network of some 37 servers of different shapes and sizes, spread over three sites and specifically geared towards the needs of open source projects like &lt;A class="" href="http://port25.technet.com/archive/2007/04/30/python-java-ruby-oh-my-cross-platform-net-framework.aspx" target=_blank mce_href="http://port25.technet.com/archive/2007/04/30/python-java-ruby-oh-my-cross-platform-net-framework.aspx"&gt;Python&lt;/A&gt;. &lt;/P&gt;
&lt;P mce_keep="true"&gt;In short, and according to its &lt;A class="" href="http://www.snakebite.org/" target=_blank mce_href="http://www.snakebite.org/"&gt;Website&lt;/A&gt;, Snakebite is a network to provide open source developers unrestricted access to as many of the different platforms, operating systems, architectures, compilers, devices, databases, tools and applications that they need to optimally develop their software.&lt;/P&gt;
&lt;P mce_keep="true"&gt;"Why do we develop open source software on closed networks? Why do open source developers only have access to a fraction of platforms that their software will eventually run on? And why the *@&amp;amp;# are the Windows buildbots always red?! Snakebite was created out of a desire to try and address problems like these faced by open source projects," the Website says.&lt;/P&gt;
&lt;P&gt;Some months back, Nelson&amp;nbsp;realized that while buildbots were fine when everything was running smoothly, nothing compared to actually having access to a system when a developer is trying to debug something. &lt;/P&gt;
&lt;P&gt;"So, I thought to myself, why not buy a couple of clunky old boxes off eBay and donate them to the Python Software Foundation, such that all developers had access to them ... Ten months, seven trips to Michigan State University, six blown fuses and about $60,000 later, I'm proud to introduce you all to Snakebite: The &lt;A class="" href="http://www.snakebite.org/network" target=_blank mce_href="http://www.snakebite.org/network"&gt;Open Network&lt;/A&gt;!," he said.&lt;/P&gt;
&lt;P mce_keep="true"&gt;This means that every CPython, Jython, IronPython and PyPy committer will have access to every development server on the network, Nelson says, adding that he has already extended the offer to prominent Python projects like Django and Twisted.&lt;/P&gt;
&lt;P&gt;The end-goal is to ultimately invite other open source projects like Apache, Subversion, MySQL and Postgres, among others, but given that this network is Nelson's "gift to All Things Python, first and foremost," Python projects will always get preferential treatment.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Nelson also has big aspirations for Snakebite going forward, which you can read all about in &lt;A class="" href="http://groups.google.com/group/snakebite-list/browse_thread/thread/89713dd0936dc09c" target=_blank mce_href="http://groups.google.com/group/snakebite-list/browse_thread/thread/89713dd0936dc09c"&gt;this email&lt;/A&gt; he sent to the Snakebite list.&lt;/P&gt;
&lt;P&gt;Nelson was also blown away by the level of support he received for the initiative: "Microsoft jumped on board and provided unlimited MSDN licenses in less time than it took me to write them an e-mail asking for stuff. Having the support of Microsoft from very early on has been a huge boost, and the MSDN licenses have already been invaluable ," he said.&lt;/P&gt;
&lt;P mce_keep="true"&gt;An email to HP asking them for a Tru64 license and 2GB of RAM for the Itanium box he bought off eBay, also resulted in the company shipping two quad Itanium 2 RX-5670s, full of 73GB 15k disks and 78GB of RAM between the two servers; 32GB in one and 46GB in the other.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Sun, Google and Canonical have also expressed interest in the project, but Nelson has stopped asking for hardware as they have run out of space to host it all.&lt;/P&gt;
&lt;P mce_keep="true"&gt;But, in a recent post to the &lt;A class="" href="http://www.mail-archive.com/python-committers@python.org/msg00311.html" target=_blank mce_href="http://www.mail-archive.com/python-committers@python.org/msg00311.html"&gt;Python Committers mailing list&lt;/A&gt;,&amp;nbsp;Nelson notes that it will probably be a few weeks before users can start logging in and doing stuff.&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;"The HPCC/CSE server room at MSU is about to have walls knocked in and ramps built in order to accommodate a giant PDU that has been sitting outside it for about six months; the Snakebite rack is going to get shuffled around a bit so I figure there's not much point going live before that's taken care of," he said.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=23676" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/IronPython/default.aspx">IronPython</category><category domain="http://port25.technet.com/archive/tags/Dynamic+Languages/default.aspx">Dynamic Languages</category><category domain="http://port25.technet.com/archive/tags/Community/default.aspx">Community</category><category domain="http://port25.technet.com/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://port25.technet.com/archive/tags/Dev+Center/default.aspx">Dev Center</category><category domain="http://port25.technet.com/archive/tags/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category><category domain="http://port25.technet.com/archive/tags/Peter+Galli/default.aspx">Peter Galli</category></item></channel></rss>