<?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 : Interop, Dynamic Languages</title><link>http://port25.technet.com/archive/tags/Interop/Dynamic+Languages/default.aspx</link><description>Tags: Interop, Dynamic Languages</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 40109.1145)</generator><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>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>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>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>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></channel></rss>