<?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 : Community, Dynamic Languages</title><link>http://port25.technet.com/archive/tags/Community/Dynamic+Languages/default.aspx</link><description>Tags: Community, 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>Roadmap Announced for Outlook Personal Folders Documentation </title><link>http://port25.technet.com/archive/2009/10/26/roadmap-announced-for-outlook-personal-folders-documentation.aspx</link><pubDate>Mon, 26 Oct 2009 23:20:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:28096</guid><dc:creator>Peter Galli</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=28096</wfw:commentRss><comments>http://port25.technet.com/archive/2009/10/26/roadmap-announced-for-outlook-personal-folders-documentation.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Great news on the data portability front: today, Microsoft announced that it will be releasing documentation for the .pst file format - the format in which data is stored in Microsoft Outlook Personal Folders. &lt;/P&gt;
&lt;P mce_keep="true"&gt;Even better is the fact that the documentation will be released under Microsoft's &lt;A href="http://port25.technet.com/archive/2008/07/25/osp.aspx" target=_blank mce_href="http://port25.technet.com/archive/2008/07/25/osp.aspx"&gt;Open Specification Promise&lt;/A&gt; when complete. This lets anyone implement the .pst file format on any platform and in any tool, without concerns about patents, and without the need to contact Microsoft in any way.&lt;/P&gt;
&lt;P mce_keep="true"&gt;But it is important for me to point out that this documentation is still in its early stages and the work is ongoing.&amp;nbsp; However, Microsoft is also engaging directly with industry experts and interested customers to gather feedback on the quality of the .pst technical documentation to ensure that it is clear and useful.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;As an increasing amount of information is stored and shared in digital formats, it is vital for people to be able to reuse their data across various applications and platforms. Giving access to the documentation will facilitate interoperability and let customers and vendors to access their data in .pst files across a variety of platforms.&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;This is also just another example of how Microsoft is listening to its customers and responding to their requests for greater interoperability, in this case around data portability&lt;I&gt;.&amp;nbsp; &lt;/I&gt;&lt;/P&gt;
&lt;P&gt;Also, enabling customers and vendors to access the data in .pst files on a variety of platforms allows developers to read, create, and interoperate with the data in .pst files in server and client scenarios using the programming language and platform of their choice.&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;"We're excited about the possibilities created for our customers and partners by this kind of effort, and we look forward to continued collaboration with the industry in our pursuit of improved interoperability with Microsoft Office," said Paul Lorimer, the Group Manager for Office Interoperability at Microsoft, in a &lt;A href="http://blogs.msdn.com/interoperability/archive/2009/10/26/roadmap-for-outlook-personal-folders-pst-documentation.aspx" target=_blank mce_href="http://blogs.msdn.com/interoperability/archive/2009/10/26/roadmap-for-outlook-personal-folders-pst-documentation.aspx"&gt;blog post&lt;/A&gt;.&amp;nbsp; &lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=28096" 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/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/_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>Announcing the PHP SDK for Windows Azure</title><link>http://port25.technet.com/archive/2009/05/12/announcing-the-php-sdk-for-windows-azure.aspx</link><pubDate>Wed, 13 May 2009 00:29:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:25767</guid><dc:creator>Peter Galli</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=25767</wfw:commentRss><comments>http://port25.technet.com/archive/2009/05/12/announcing-the-php-sdk-for-windows-azure.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Vijay Rajagopalan, a Principal Architect here at Microsoft, is at TechEd India, where he will demo later this week a new set of interoperability projects related to PHP.&lt;/P&gt;
&lt;P mce_keep="true"&gt;These projects include the &lt;A class="" href="http://phpazure.codeplex.com/" target=_blank mce_href="http://phpazure.codeplex.com/"&gt;PHP SDK for Windows Azure&lt;/A&gt;, an open source effort for which Microsoft has provided funding, with development by &lt;A href="http://www.realdolmen.com/"&gt;RealDolmen&lt;/A&gt;, whose&amp;nbsp;goal is to provide high-level abstractions that enable PHP developers to interoperate readily with Windows Azure. &lt;/P&gt;
&lt;P mce_keep="true"&gt;The PHP SDK for &lt;A class="" href="http://port25.technet.com/archive/2008/10/27/the-azure-platform-debuts.aspx" target=_blank mce_href="http://port25.technet.com/archive/2008/10/27/the-azure-platform-debuts.aspx"&gt;Windows Azure&lt;/A&gt; focuses on REST and provides PHP classes for Windows Azure blobs, tables and queue, helper classes for HTTP transport, AuthN/AuthZ, REST and error management, as well as manageability, instrumentation and logging support.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Rajagopalan will also announce the launch of a series of projects that offer samples and a toolkit that enable PHP developers to include &lt;A class="" href="http://silverlightphp.codeplex.com/" target=_blank mce_href="http://silverlightphp.codeplex.com/"&gt;Silverlight controls&lt;/A&gt;, Microsoft &lt;A class="" href="http://virtualearthphpkit.codeplex.com/" target=_blank mce_href="http://virtualearthphpkit.codeplex.com/ "&gt;Virtual Earth&lt;/A&gt; maps and&lt;A class="" href="http://webslicesandaccelphp.codeplex.com/" target=_blank mce_href="http://webslicesandaccelphp.codeplex.com/"&gt; IE Webslices and Accelerators&lt;/A&gt; in PHP web applications; as well as automatically generated a simple &lt;A class="" href="http://sqlcrudphpwizard.codeplex.com/" target=_blank mce_href="http://sqlcrudphpwizard.codeplex.com/"&gt;"Create, Read, Update, Delete (CRUD)"&lt;/A&gt; &amp;nbsp;PHP application from a table in SQL Server.&lt;/P&gt;
&lt;P mce_keep="true"&gt;These projects, for which Microsoft has provided funding and which&amp;nbsp;are available on &lt;A class="" href="http://www.codeplex.com/" target=_blank mce_href="http://www.codeplex.com"&gt;Codeplex&lt;/A&gt; under a BSD license, are&amp;nbsp;yet another proofpoint of the company's &lt;A class="" href="http://port25.technet.com/archive/2009/05/12/apache-stonehenge-interoperability-at-work.aspx" target=_blank mce_href="http://port25.technet.com/archive/2009/05/12/apache-stonehenge-interoperability-at-work.aspx"&gt;commitment to interoperability&lt;/A&gt;, and developers will be happy to know that the first batch of these have already been developed by Accenture. &lt;/P&gt;
&lt;P mce_keep="true"&gt;Read Rajagopalan's full blog &lt;A class="" href="http://blogs.msdn.com/interoperability/archive/2009/05/13/announcing-php-sdk-for-windows-azure-and-much-more.aspx" target=_blank mce_href="http://blogs.msdn.com/interoperability/archive/2009/05/13/announcing-php-sdk-for-windows-azure-and-much-more.aspx"&gt;here&lt;/A&gt; for all the details.&lt;/P&gt;
&lt;P mce_keep="true"&gt;The &lt;A class="" href="http://www.azure.com/" target=_blank mce_href="http://www.azure.com/"&gt;Azure Services Platform&lt;/A&gt; has been designed to be open, standards-based and interoperable, and its support for XML, REST and SOAP standards means that any of the Azure services can be called from other platforms and programming languages. &lt;/P&gt;
&lt;P mce_keep="true"&gt;Microsoft has provided funding for&amp;nbsp;two other SDKs that support third party programming languages: &lt;A class="" href="http://www.jdotnetservices.com/" target=_blank mce_href="http://www.jdotnetservices.com/"&gt;Java SDK for Microsoft .NET Services&lt;/A&gt; and &lt;A class="" href="http://www.dotnetservicesruby.com/" target=_blank mce_href="http://www.dotnetservicesruby.com/"&gt;Ruby SDK for Microsoft .NET Services&lt;/A&gt; so as to facilitate interoperability between the Azure Services Platform and non-Microsoft languages and technologies.&lt;/P&gt;
&lt;P mce_keep="true"&gt;The inclusion of &lt;A class="" href="http://www.microsoftstartupzone.com/Blogs/anand_iyer/Lists/Posts/Post.aspx?ID=57" target=_blank mce_href="http://www.microsoftstartupzone.com/Blogs/anand_iyer/Lists/Posts/Post.aspx?ID=57"&gt;FastCGI&lt;/A&gt; in Windows Azure's hosting environment was announced at MIX 2009, and the protocol enables developers to run web applications on Windows Azure that were written using third party programming languages, including PHP. This opens up new options for PHP developers to deploy their applications. &lt;/P&gt;
&lt;P mce_keep="true"&gt;A Technology Preview of the PHP SDK for Windows Azure will be released under a BSD license, while a&amp;nbsp;functionally complete version of the SDK, which will support tables and queues, should be available for download by this fall of 2009, but the team is calling on developers to provide feature requests, test the toolkit, and join the &lt;A class="" href="http://phpazure.codeplex.com/Thread/List.aspx" target=_blank mce_href="http://phpazure.codeplex.com/Thread/List.aspx"&gt;user forum&lt;/A&gt;. &lt;/P&gt;
&lt;P mce_keep="true"&gt;So, stay tuned, as there's a whole lot more to come!&lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=25767" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Partnerships/default.aspx">Partnerships</category><category domain="http://port25.technet.com/archive/tags/Codeplex/default.aspx">Codeplex</category><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/Java/default.aspx">Java</category><category domain="http://port25.technet.com/archive/tags/Windows+Server/default.aspx">Windows Server</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/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category><category domain="http://port25.technet.com/archive/tags/Peter+Galli/default.aspx">Peter Galli</category></item><item><title>Apache Stonehenge: Interoperability at Work</title><link>http://port25.technet.com/archive/2009/05/12/apache-stonehenge-interoperability-at-work.aspx</link><pubDate>Tue, 12 May 2009 17:24:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:25758</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=25758</wfw:commentRss><comments>http://port25.technet.com/archive/2009/05/12/apache-stonehenge-interoperability-at-work.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;The &lt;A class="" href="http://port25.technet.com/archive/2008/11/10/apachecon-and-the-stonehenge-proposal.aspx" target=_blank mce_href="http://port25.technet.com/archive/2008/11/10/apachecon-and-the-stonehenge-proposal.aspx"&gt;Stonehenge incubator project&lt;/A&gt; is approaching its first milestone: deploying the first set of samples and making them work together.&lt;/P&gt;
&lt;P mce_keep="true"&gt;This is a really exciting development and continues to deliver on the project's primary goal: to provide practical applications that span languages and platforms and demonstrate how to achieve interoperability.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Multiple implementations of the Stonehenge Stocktrader sample application, including .NET, Java, &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&lt;/A&gt;, Python and Ruby, have been committed to the repository. You can check the code &lt;A class="" href="http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/" target=_blank mce_href="http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/"&gt;here&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;From a simplified architecture point of view, the &lt;A class="" href="http://port25.technet.com/archive/2009/01/19/update-stonehenge-incubation-project.aspx" target=_blank mce_href="http://port25.technet.com/archive/2009/01/19/update-stonehenge-incubation-project.aspx"&gt;Stonehenge&lt;/A&gt; Stocktrader application is built as follows:&lt;/P&gt;
&lt;LI&gt;A User Interface layer delivering the web front end (HTML)&lt;/LI&gt;
&lt;LI&gt;A middle tier layer including a Business Services layer (login, account processing) and an Order Processing layer (buy/sell transactions)&lt;/LI&gt;
&lt;LI&gt;A Data Access layer to provide access to the database for the middle tier layer (Business Services and Order Processing)&lt;/LI&gt;
&lt;LI&gt;And, finally, the database where the application data lives&lt;/LI&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://port25.technet.com/images/port25/StonehengeM1_high_level_architecture.png"&gt;&lt;IMG src="http://port25.technet.com/images/port25/StonehengeM1_high_level_architecture.png" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The work thus far has focused on the .NET, PHP, and Java interoperability scenarios, and the three Stocktrader implementations have been deployed in&amp;nbsp;multiple configurations. &lt;/P&gt;
&lt;P&gt;A series of tests were then run, mixing and matching the layers from the three implementations, playing with the configurations and leveraging the Web Services standards, including WS-Security, to provide message integrity and security.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A detailed "interoperability walkthrough" explaining all the different configurations has been posted &lt;A class="" href="http://cwiki.apache.org/confluence/display/STONEHENGE/Stonehenge+Interoperability+Walk-through" target=_blank mce_href="http://cwiki.apache.org/confluence/display/STONEHENGE/Stonehenge+Interoperability+Walk-through"&gt;here&lt;/A&gt;, while the full blog post by Kamaljit Bath, a Principal Program Manager in the Interoperability Technical Strategy Team at Microsoft, can be found &lt;A class="" href="http://blogs.msdn.com/interoperability/archive/2009/05/12/apache-stonehenge-interoperability-at-work.aspx" target=_blank mce_href="http://blogs.msdn.com/interoperability/archive/2009/05/12/apache-stonehenge-interoperability-at-work.aspx "&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;"Microsoft is pleased with its participation and the progress so far, and this new outcome from the Stonehenge project is very encouraging. With the implementation of the WS-* Standards, we get the benefit of distributed applications and platforms. We recognized that it is not always easy to achieve these goals, but I really feel this type of practical guidance will be helpful for these types of scenarios," said Bath.&lt;/P&gt;
&lt;P&gt;The team is also actively soliciting comments and feedback, and encouraging both developers and users&amp;nbsp;to participate in the project to ensure that the project continues to move&amp;nbsp;in a direction that meets real people's needs.&lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=25758" 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/Java/default.aspx">Java</category><category domain="http://port25.technet.com/archive/tags/Windows+Server/default.aspx">Windows Server</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/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category><category domain="http://port25.technet.com/archive/tags/Peter+Galli/default.aspx">Peter Galli</category></item><item><title>PHP 5.3 RC2 Highly Optimized for Windows</title><link>http://port25.technet.com/archive/2009/05/11/php-5-3-rc2-highly-optimized-for-windows.aspx</link><pubDate>Mon, 11 May 2009 16:52:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:25732</guid><dc:creator>Garrett Serack</dc:creator><slash:comments>11</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=25732</wfw:commentRss><comments>http://port25.technet.com/archive/2009/05/11/php-5-3-rc2-highly-optimized-for-windows.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Howdy, &lt;/P&gt;
&lt;P&gt;I've been working for many months with &lt;A class="" href="http://blog.thepimp.net/" target=_blank mce_href="http://blog.thepimp.net/"&gt;Pierre Joye&lt;/A&gt;&amp;nbsp;- well, really &lt;STRONG&gt;many &lt;/STRONG&gt;people in the PHP community - on getting PHP to run faster on Windows.&lt;/P&gt;
&lt;P&gt;Pierre has been working rapidly on upgrading libraries (Pierre pioneered the work to get PHP and its hoard of dependent libraries updated and properly compiling on Windows), replacing old POSIX-emulation code with native calls, patching bugs, and about a million other things, all of which had a huge impact on performance and stability of PHP on Windows.&lt;/P&gt;
&lt;P&gt;For my part, I've been spending my time behind the scenes by feeding information to Pierre that he needs, testing, analyzing, and finally by constructing a new build process that enables us to take advantage of some pretty sweet optimization technology in Visual Studio.&lt;/P&gt;
&lt;P&gt;Starting today, you can find &lt;A class="" href="http://windows.php.net/downloads/snapsoptimized/php-5.3-nts-win32-VC9PGO-x86-latest.zip" target=_blank mce_href="http://windows.php.net/downloads/snapsoptimized/php-5.3-nts-win32-VC9PGO-x86-latest.zip"&gt;snapshot builds&lt;/A&gt; of PHP 5.3 that are built using my optimized build process on the &lt;A class="" title="Optimized Snapshots of PHP 5.3" href="http://windows.php.net/downloads/snapsoptimized/" target=_blank mce_href="http://windows.php.net/downloads/snapsoptimized/"&gt;windows.php.net&lt;/A&gt; site.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;A&amp;nbsp;few notes:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Over the course of the next couple of weeks, I'll be explaining how this build process works, and making available the tools that&amp;nbsp;make it all possible.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Only the non-thread-safe version is available, so you need to use FastCGI with IIS&amp;nbsp;in order to use it.&lt;/P&gt;
&lt;P&gt;Since this is a&amp;nbsp;radically different build than the ones that&amp;nbsp;had&amp;nbsp;been traditionally used to create the&amp;nbsp;Windows PHP binaries, you should&amp;nbsp;download the binaries and test with them, but you probably should avoid using them in production just yet.&lt;/P&gt;
&lt;P&gt;If you have any feedback about the builds,&amp;nbsp;leave me a comment, or &lt;A class="" href="mailto:garretts@microsoft.com" target=_blank mce_href="mailto:garretts@microsoft.com"&gt;email&lt;/A&gt; me.&amp;nbsp;&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;&lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=25732" 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/Windows+Server/default.aspx">Windows Server</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/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category><category domain="http://port25.technet.com/archive/tags/Garrett+Serack/default.aspx">Garrett Serack</category></item><item><title>Helping Facilitate Open Government</title><link>http://port25.technet.com/archive/2009/05/06/microsoft-helping-facilitate-open-government.aspx</link><pubDate>Wed, 06 May 2009 19:03:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:25667</guid><dc:creator>Peter Galli</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=25667</wfw:commentRss><comments>http://port25.technet.com/archive/2009/05/06/microsoft-helping-facilitate-open-government.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Microsoft will announce on May 7 an initiative to help &amp;nbsp;government agencies and developers publish and interact with their data in Windows Azure, the company's cloud computing platform. &lt;/P&gt;
&lt;P mce_keep="true"&gt;One of these is the &lt;A href="http://www.microsoft.com/industry/government/opengovdata/default.aspx" target=_blank mce_href="http://www.microsoft.com/industry/government/opengovdata/default.aspx"&gt;Open Government Data Initiative&lt;/A&gt; (OGDI), a cloud-based approach to housing public government data in &lt;A href="http://port25.technet.com/archive/2008/10/27/the-azure-platform-debuts.aspx" target=_blank mce_href="http://port25.technet.com/archive/2008/10/27/the-azure-platform-debuts.aspx"&gt;Windows Azure&lt;/A&gt;, making it accessible in a programmatic manner via open standard protocols and application programming interfaces. &lt;/P&gt;
&lt;P mce_keep="true"&gt;The source code for OGDI is being made publicly available through &lt;A href="http://www.codeplex.com/" target=_blank mce_href="http://www.codeplex.com/"&gt;CodePlex&lt;/A&gt;, Microsoft's open source hosting site, so that developers may reuse it and provide feedback. Sample code is also being provided for technologies widely used on the Web, including &lt;A 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&lt;/A&gt;, Python, Flash, JavaScript, and &lt;A href="http://silverlight.net/" target=_blank mce_href="http://silverlight.net/"&gt;Silverlight&lt;/A&gt;. &lt;/P&gt;
&lt;P mce_keep="true"&gt;This initiative helps to provide government with tools focused on increasing responsiveness and access to critical services, streamlined processes and services. &lt;/P&gt;
&lt;P mce_keep="true"&gt;For their part, Microsoft and its partners have developed a robust enterprise architecture approach that enables agencies to meet the technology requirements of government mandates with a familiar set of tools - built on an enterprise-ready, scalable, and easily-managed software-powered architecture.&lt;/P&gt;
&lt;P mce_keep="true"&gt;So, in short, the goal of ODGI is to reduce the cost of publishing government data, and simplifying data access by leveraging cloud computing and open standards.&lt;/P&gt;
&lt;P mce_keep="true"&gt;More information on Microsoft's Open Government Data Initiative can be found &lt;A class="" href="http://www.microsoft.com/industry/government/opengovdata/" target=_blank mce_href="http://www.microsoft.com/industry/government/opengovdata/ "&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;To see an implementation of a data service in Windows Azure, using a sample of publicly available government data, visit this &lt;A href="http://ogdisdk.cloudapp.net/" target=_blank mce_href="http://ogdisdk.cloudapp.net/"&gt;reference beta site&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;These moves are part of Microsoft's ongoing open government efforts aimed at helping government organizations meet goals of transparency, participation and collaboration, particularly as an ever increasing amount of data becomes necessary and available.&lt;/P&gt;
&lt;P mce_keep="true"&gt;As such, new methods need to be opened up to allow interaction with that data, and Microsoft's OGDI is designed to help public sector entities meet these goals.&lt;/P&gt;
&lt;P mce_keep="true"&gt;This software, which underscores the importance of programmatic access to government data rather than having to download it, will give developers the ability to write programs that access data via Web-friendly programming methods without having to download or host the data; and let them write applications using any technology via open standards.&lt;/P&gt;
&lt;P mce_keep="true"&gt;It also provides easier access to a broad array of government datasets, enabling the building of new and unique applications, while governments will be able to automatically refresh data without having to buy and maintain servers.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Cloud computing is the ideal platform for government data, and the technology is finally available to make it happen, &lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;says&lt;STRONG&gt; &lt;/STRONG&gt;John Miri, Senior Fellow at the Center for Digital Government.&lt;/P&gt;
&lt;P mce_keep="true"&gt;"The qualities that government looks for in an information management platform - things like flexibility, scalability, security, performance, and cost efficiency - are all better in a cloud model.&amp;nbsp; As we see demands for government to become more transparent, collaborative, and interactive, a shift like this in technology architecture just has to happen, "&lt;B&gt; &lt;/B&gt;he says.&lt;/P&gt;
&lt;P mce_keep="true"&gt;For governments to become truly open, citizen access to public data in standards-based and interoperable ways is essential at all levels of government. &lt;/P&gt;
&lt;P mce_keep="true"&gt;Given that most federal, state, local and education entities implement the American Recovery and Reinvestment Act (ARRA), they can meet open government goals of oversight, transparency and accountability through cloud and on-premises solutions such as &lt;A href="http://www.microsoft.com/government/stimulus360/" target=_blank mce_href="http://www.microsoft.com/government/stimulus360/"&gt;Microsoft Stimulus360&lt;/A&gt;, which helps public sector agencies track, measure, and share information about federal stimulus programs through graphical dashboards and maps.&lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=25667" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Partnerships/default.aspx">Partnerships</category><category domain="http://port25.technet.com/archive/tags/Codeplex/default.aspx">Codeplex</category><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/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/PHP/default.aspx">PHP</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 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><item><title>Talking Ruby and Dynamic Language Support with John Lam</title><link>http://port25.technet.com/archive/2007/04/30/ironruby.aspx</link><pubDate>Mon, 30 Apr 2007 19:05:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:3837</guid><dc:creator>MichaelF</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=3837</wfw:commentRss><comments>http://port25.technet.com/archive/2007/04/30/ironruby.aspx#comments</comments><description>&lt;P&gt;As promised in the &lt;A 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;first post&lt;/A&gt;&amp;nbsp;today, here is the second interview regarding today's announcements regarding Microsoft's&amp;nbsp;Dynamic Language Runtime&amp;nbsp;and Silverlight.&amp;nbsp; In this video Sam sits down with John Lam, who we &lt;A href="http://port25.technet.com/archive/2006/08/10/John-Lam-and-Sam-Ramji-discuss-RubyCLR_2C00_-Avalon-Ruby-Editor-and-Open-Source-Funding.aspx" target=_blank mce_href="http://port25.technet.com/archive/2006/08/10/John-Lam-and-Sam-Ramji-discuss-RubyCLR_2C00_-Avalon-Ruby-Editor-and-Open-Source-Funding.aspx"&gt;interviewed&lt;/A&gt; during the&amp;nbsp;LANG.NET Symposium in August (before he came to work for Microsoft), to discuss his work with Ruby and the DLR.&lt;/P&gt;
&lt;CENTER&gt;&lt;EMBED pluginspage=http://macromedia.com/go/getflashplayer src=http://images.video.msn.com/flash/soapbox1_1.swf width=432 height=364 type=application/x-shockwave-flash mce_src="http://images.video.msn.com/flash/soapbox1_1.swf" quality="high" base="http://images.video.msn.com" allowFullScreen="true" flashvars="c=v&amp;amp;v=fffeb1a5-9edd-4e7b-8b32-3d3af3a2dd2a&amp;amp;ifs=true&amp;amp;fr=msnvideo&amp;amp;mkt=en-US&amp;amp;brand="&gt;&lt;/EMBED&gt;&lt;BR&gt;&lt;A title="John Lam and Sam Ramji discuss RubyCLR, Avalon Ruby Editor and Open Source Fundi" href="http://video.msn.com/video.aspx?vid=fffeb1a5-9edd-4e7b-8b32-3d3af3a2dd2a" target=_new mce_href="http://video.msn.com/video.aspx?vid=fffeb1a5-9edd-4e7b-8b32-3d3af3a2dd2a"&gt;Video: John Lam and Sam Ramji discuss RubyCLR, Avalon Ruby Editor and Open Source Fundi&lt;/A&gt;&lt;/CENTER&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=3837" width="1" height="1"&gt;</description><enclosure url="http://port25.technet.com/videos/podcasts/mixrubyjl.mp3" length="21849429" type="audio/mpeg" /><category domain="http://port25.technet.com/archive/tags/Media/default.aspx">Media</category><category domain="http://port25.technet.com/archive/tags/Sam+Ramji/default.aspx">Sam Ramji</category><category domain="http://port25.technet.com/archive/tags/Podcast/default.aspx">Podcast</category><category domain="http://port25.technet.com/archive/tags/Ruby/default.aspx">Ruby</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/Dev+Center/default.aspx">Dev Center</category><category domain="http://port25.technet.com/archive/tags/Web/default.aspx">Web</category><category domain="http://port25.technet.com/archive/tags/Video/default.aspx">Video</category></item></channel></rss>