Disclaimer: These are random notes and are not intended to be an exhaustive retelling of the presentations this week. Please forgive spelling and grammar errors.
An un-presentation about the future of open source on Windows by Garrett Serrack, Stephen Zarkos, and Tom Hanrahan of MSFT Open Source Technology Center
(Presented by Garrett)
Open source applications running on Windows tend to ignore the benefits of the Windows platform by being tricked into thinking they're running in a Linux environment.
Using autoconf (and friends)
(example of building)
No autoconf.
Can you build/fix it?
Why not?
Because it's Windows, not Unix!
The problem is that we're trying to make Windows look more like Unix? We don't want to make Linux look like Windows, and we don't want to make Windows look like Linux.
The PGO optimized version of PHP runs 20% faster on Windows than PHP does on Linux. (With caveats.) So, we see that if we build it right and we use the right tools, then we can build something that works very well on Windows.
Back to autoconf
How about Cygwin (or SUA)?
It's a complete FAIL.
We want all the platform benefits of Windows and easy automation and large selection of apps.
How do we get that?
Build some sort of common open source application publishing platform. This won't magically appear like it is on Linux because on Linux it grew up over time around community development.
We need your participation!
Garrett is working on a program and a platform for getting community involvement to develop and build these tools.
Now Garrett is sketching out on the white board his ideas for how this program will work.
Garrett already has incomplete code for this and, once he gets permission, he will be publishing it for community review and participation in the process. He's just waiting on word from people higher up in the company. The code will definitely be under an open source license, likely under the Ms-PL, but that's up for discussion.

Sketch of @fearthecowboy's work with the OSTC. #mswds

Garrett's toolchain discussed at Microsoft Web Dev Summit
Presented by Mai-lan Tomsen Bukovec, IIS Product Unit Manager
Strategy for Windows Server 2008 and Later
Introduced Web Extensions for IIS 7.x to extend the functionality of IIS.
Showing slide of all extensions released. Examples include WebDav, SEO, app warm-up, smooth streaming, etc.
Moving too fast through slides with lots and lots of text on them, so it's difficult for me to capture it all. I apologize for the gaps.
Slide of IIS Media services graphic.
A “VAP” is a Microsoft term for “value added partner.” They are typically web consultants and small businesses.
Shifting gears…
The IIS group's focus:
Side note: any Microsoft employee now has clearance to contribute to PHP core, APC, and several other extensions. The WinCache code base has been contributed to PECL, and their contributions to APC are being contributed back.
Demonstration and open discussion about the WebPI. Including demonstration of the app submission process and submission agreement.
Presented by Mark Brown of the Web Platform team.
(Poorly named, since they can't get into a lot of the futures stuff right now until Thursday during the NDA sessions, so they went back to discussing IIS, and Mai-lan co-presented with Mark on IIS features.)
Demonstration of installing WordPress and its dependencies using the WebPI.
Now demonstrating smooth streaming.
Developers need to develop using the Expression tools. End-users can install the Silverlight plug-in to view the video.
Demonstrating IIS site analysis profiler (SEO Toolkit). Using it to crawl phpdeveloper.org.
Paraphrased: “Over time, we're going to take this IIS management console and make it live in a web browser. We're trying to make it easier and friendlier to use. I can't say we're going to take this and try to make it work with Apache.”
Developers can create their own extensions for IIS using the extension API. Microsoft IIS team is, by far, the biggest user of this API, but some hosters use it to provide special functionality on their web servers, and it's open for all developers to use. Developers may publish their extensions under open source licenses without violating any Microsoft agreements.
Moving on to do a WinCache demonstration with Ruslan.
Please note that these quotes are not often exact. Many are paraphrased, so let me know if I need to correct anything or modify/clarify something that was said.
Open form discussion. What are the problems, any problems, you have with Microsoft? Not just limited to the technologies we're discussing here.
Starting out with Lauren Cooney and Matt
Keith: “You guys have a lot of smart people, but you don't have all of them.”
Joël: Are you using any of the open source technologies that you're trying to help people integrate. “Working on something and never using it is the first step to failing badly.”
Matt: “To answer your question, I'll say: We're sticking our toe in the water.” He's encouraging some internal Azure developers to go write apps and, instead of using .NET, using a technology, like PHP, that they don't already know so that they can learn how these things work and how others use them.
Main discussion now is centering around how Microsoft can best engage the community and communicate with the community and how they can be relevant to the community.
Discussing user groups and dev evangelism participation in specific areas. Where are there “desolate” areas where dev evangelists aren't present or aren't doing their jobs? Dev evangelists need to be down-to-earth and build relationships instead of attempting to make pitches. They should take cues from dev evangelists like Josh, Glen, Peter, Woody, Jason, etc.
Cal: “We don't want to hear from Microsoft, 'Hey, we're working on this, but you can't see it or discuss it with us right now until we get legal approval.' Get the ability to go ahead and set up mailing lists and public discussion and release the code for these things. Let's see the work.”
Joël: “You guys are having to go through 13 yards of red tape to do this stuff.”
Keith: “The pain is on you [Microsoft].”
Josh: “It's getting better. We're cutting down on the amount of red tape being used.”
Liz: “But we don't care.”
Alison: “It's less a matter of we don't care or we do care, it's because we don't work in the same kind of environment. We work in agile environments. We're able to do things quickly and get them done today, so we're not used to the problems that occur in a big company.”
Marco: “I don't think open source is quite as agile as we say. I have 18 months of posts arguing about namespace separators. What we need from Microsoft is better communication about all the legal requirements about it.”
Matt: “Talking about you guys being in an agile environment: if we can't match that, why would you want to work with us? We need to be better about it.”
Discussion about open source licenses used by the community and within Microsoft. Microsoft has used various licenses within the organization, including Apache, BSD, etc.
Matt: “At Sun, it didn't matter how many licenses we used on our own. What mattered was license proliferation. So, the question is: what set of licenses would you prefer (non-vendor specific).”
Matt: “So, what other things besides licenses?”
Scott: “SQL Server.”
Liz: “We can't connect to SQL Server when we're running on Mac/Linux. FreeTDS is horrific. Give us something that works!”
Scott: “We made suggestions last year about SQL Server on Linux, but it's been a year.”
Eric: Switching gears to IE. IE is getting better with regard to standards, but… “What really drives me crazy is having to run 3 different VMs to run IE 6, 7, and 8 and check that they all work right.”
Gennady: “Developer tools that used to work in IE 7 no longer work in IE 8.”
I was too busy presenting and taking part in discussion during Rafael's and Lig's (and my) presentations, so I didn't get any notes from them.
PHPLinq on CodePlex: http://phplinq.codeplex.com/
Showing a code example in .NET.
“Not really language integrated, but we'll see were we can go.” Others in the room suggested helping getting this implemented as a PHP extension rather than a userland library.
Showing a code example in PHP.
Presented by Robert Duffner, Director of Open Source Strategry
How do I describe what our open source strategy is? Fundamentally, when thinking about our platforms, you have to be open, so our strategy is in making our platforms more open. Being open is the future.
The future involves operating in the Cloud, and the Cloud is about open technologies working together, so the approach Microsoft is taking is to be more open in order to work in the Cloud.
NOTE: Codeplex.com is still Microsoft's open source project hosting place like SourceForge. Codeplex.org is the CodePlex Foundation and IS NOT the same as the project hosting website. They are completely separate entities with the same name. Microsoft donated the trademarked name to the CodePlex Foundation and Microsoft licenses the name from the CodePlex Foundation for use on codeplex.com. CodePlex Foundation projects could be hosted on codeplex.com, but they might also be hosted on SourceForge, Google Code, GitHub, etc.
The CodePlex Foundation is a way to facilitate getting developers from corporations to contribute to open source projects. The CodePlex Foundation works similar to the Apache Software Foundation in that it handles all the legal stuff and infrastructure that an open source project might need, including CLAs, etc.
“Why isn't there a PHP gallery on there? Well, why not? There would have to be a group that sponsors that gallery. It could be Drupal, WordPress, etc.”
Presented by Wolfram Schulte, Research Area Manager
Microsoft Research has over 700 employees worldwide.
The perfect storm:
How can we decrease our costs?
“I want to focus on software.”
Tiny optimizations on algorithms can save tens of millions of dollars.
Demonstration of issues in Visual Studio.
Unfortunately, I needed to take a break at this point, so I missed capturing notes on the remainder of this presentation, but the last third of this presentation was an overview of the Gazelle browser kernel, which provides principal-based isolation for all resources and all types of web content. It was a very interesting presentation, and if I can get access to the slides, I'll post them here.
Papers by Helen Wang about Gazelle and ServiceOS:
Presented by Scott Hanselman.
To get processes sorted by memory usage in Powershell:
$> ps | sort VM -desc | more
Get just the names:
$> ps | sort VM -desc | select -name
Get the first 5:
$> ps | sort VM -desc | select -first 5
Get the type of the first 5 processes:
$> (ps | sort VM -desc | select -first 5)[0].GetType()
See what would have happened if I killed all the first 5 processes:
$> ps | sort VM -desc | select -first 5 | kill -whatif
These commands are really aliases to Powershell scripting commands to make things easier, comfortable, familiar. For example, ls and dir are aliases to Get-ChildItem.
See where you can cd into:
$> Get-PSDrive
“The console is just a host for PowerShell itself. There is no spoon.” PowerShell scripts can run in other run spaces (not just at the console).
Shows an example of extending commands. In this case, he extended dir to show exif properties from .jpg files.
http://interopvendoralliance.org/
Interop team contacts:
There's the platform level (Windows, Linux) and the application level (i.e. DotNetNuke, MOSS, etc.; Drupal, Joomla, Wordpress)
Microsoft-PHP interoperability bridges. http://www.interoperabilitybridges.com/
The SDKs aren't really necessary since the platform is fairly open with HTTP requests (REST), but Microsoft built them for easy-of-use.
Showing the architecture of a sample application called ImageCloud.
Now showing a demo of the ImageCloud application.
Develop –> Debug in Development Fabric –> Deploy to Windows Azure
Showing code in Visual Studio to illustrate workers.
Sumit: “In full disclosure, you'll notice that Maarten switched to Visual Studio to do the worker role. We're working on this for Eclipse at the moment.”
Sumit skipped through the slide since no one here is interested in seeing an Eclipse demo, so I didn't capture the rest of the notes.
You may use the SQL Server driver for PHP (only on Windows for now).
You might have also heard of these as “oData.”
A bridge between PHP and .NET using RESTful services.
ADO.NET Data Services: formerly known as Project “Astoria.” More info at http://msdn.microsoft.com/en-us/data/bb931106.aspx
Josh pipes up with, “Can we see some code? This looks pretty complex. I think we'd be able to better visualize what's going on with code.”
Now showing code examples.
Sample PHP application running on Azure and using oData at: http://ogdiphpsample.cloudapp.net/
Enables PHP developer to support information cards for the websites using standards WS-* protocols
Project Goals: On-going investment from Microsoft to show interoperability in the identity space with Information Cards using WS-* protocols. This open source project will help web developers support information cards, the primary mechanism for representing user identities in the identity metasystem. Similar projects exist for Java, Ruby on Rails, and C.
Technologies: PHP, SAML, Windows CardSpace
Project URL: http://framework.zend.com/download/infocard
Tutorials for PHP with Silverlight: http://php.miniprojects.org/
Presented by Tim Heuer.
Showing examples of XAML and XAP files; showing the contents of the XAP file. Basically demystifying what a Silverlight application contains.
Liz: “Is there a C/C++ library that you can use to parse XAML?”
Tim: “I don't know, but I'll find out.”
Showing smooth streaming but also explaining exactly how it works.
Eric asks about key frames and how seeking works. Does it seek to a key frame? What happens if it doesn't start at a key frame? Tim was unsure how it handles key frames or what kind of compression it uses. He said he can find out if it's important.
Alison asks about market penetration. The answer is the same as usual: “Content is king. If your content is compelling enough, and you can convince your users of that, then they'll download/install the plug-in.”
Marco: “How do you see Silverlight playing with HTML5? There are a number of people who see HTML5 as killing Flash. It will make sense for you to do certain things in HTML5.”
Tim: “It's not here yet. It's not ratified, and there're huge TODO blocks in the spec itself.” Until HTML5 is here, then people still need these features and cannot use HTML5 with their customers, so Silverlight makes sense in the mean time.
Marco: “My question was: how are you guys factoring in HTML5 into your Silverlight decisions and work?”
Tim: Short paraphrased answer: it's not really something we're focusing on right now.
Tim: “I have developers asking, 'How can I convert my ASP.NET application to Silverlight?' and I tell them, 'You're thinking about it wrong.' If there are experiences that are differentiated enough that HTML cannot handle it, then Silverlight is a good alternative, but if it's something better suited for HTML, then use HTML.”
Tim: Competition creates innovation, so we're innovating and Adobe is now innovating. We've done things in Silverlight that Adobe is now working into Flash, and because of us, Adobe is innovating in Flash to create better functionality/features.
Presented by Stephen Walther.
Keith: “Well, it's called the ASP.NET Ajax Library, so why would anyone else want to use it?”
Stephen: “Yes, and we're working to change the name. We've done a lot of work to make sure it's not ASP.NET specific, and we've done a lot of work to make sure it works with jQuery.”
Joël: “If there's one thing to take away from this, it's that you should change the name. I saw it and didn't even click the link to look at it because I'm not an ASP.NET developer.”
Rich library for building Ajax applications:
The ASP.NET Ajax Library was contributed to the CodePlex Foundation.
This enables the ASP.NET Ajax Library project to accept community contribution. Please watch http://www.asp.net/ajaxlibrary for details.
The library is now open source and supported by Microsoft. Microsoft also offers support for jQuery.
Now showing example code and demonstration.
Download the ASP.NET Ajax Library at: http://ajax.codeplex.com/
Learn how to use the ASP.NET Ajax Library at: http://www.asp.net/ajaxlibrary
The library is released under the New BSD license.
“There is no PHP community in the way that people tend to think of. There is no all-encompassing group. Most people here deal with PHP proper [core]. Others tend to use PHP incidentally, such as Joomla, WordPress, and Drupal developers, and they don't see themselves as being in the same community.”
“A lot of clients come to us and they no longer ask for solutions in PHP. They no longer ask for solutions for the Web, as well. […] People come to ask for solutions that work, and PHP works. What's bad is they ask for solutions in Drupal and WordPress just because they've heard of these tools.”
“PHP developers don't think of Drupal developers and PHP developers, and Drupal developers, by and large, don't think of themselves as PHP developers.”
This leaves a void in the community. “My fear is that, in the long run, we're going to lose talent at the core because that's not where the money is going to be.”
Discussion ensues. Lot's of good stuff. Hopefully someone else will blog about this discussion. *hint* *hint*
Keith: “Does everyone know what an unconference is?”
David C.: “It's a massive party.”
Keith: “Yes!”
Unconferences are about:
Discussing the history of PHP on Windows and how she got involved in the project.
There are only three people who can build releases for PHP on Windows. The “bus factor” is huge. We need more people who can build PHP on Windows and who can build all the dependencies, as well.
PHPExcel on CodePlex: http://www.phpexcel.net/
Now showing a code example.
Maarten: “There's also http://phppowerpoint.codeplex.com/ but it's still in early development.”
Garrett's quick presentation on how to find help at Microsoft.
Karri: “How can we get feedback from the community throughout the year? Should we set up a quarterly conference call or something?”
Rafael: “Talk to the user groups.”
Eli: “Set up a mailing list. Invite a bunch of these people and others and just keep a dialogue going.”
Keith: “The communication needs to be bidirectional. We need to know who's taking charge over an issue so we can say to others, 'This person is working on that.'“
Cal: Send your DPEs to the user group meetings so that they can be there if those conversations do come up among user group members. “Just hang with us, so we know who you are and we can get to you.”
Lig: “Who are you aiming at?”
Liz: “It's good for a single developer who want to deploy a blog for themselves quickly. But it's not good for a large scale website with a team building it.”
Alison: “There's the potential for value for it to automate things if it progresses beyond what it is now.”
Liz: “It needs more.”
Mark: “Should we focus it more on the technical developer?”
Liz: “You can keep what you have now and still do that.”
Keith: “You need to support multiple versions and source control, etc. for technical developers, while still providing what you have now for casual developers.”
Rafael: “Have an advanced mode.”
Eric: “I love the simplicity it has now. Just have an advanced button.”
Helgi: “It should be even simpler for the normal user.”
Alison: “It's like bringing the web management we're used to a nice GUI.”
Keith: “It's a poor man's RPM.”
Will: “Is there something that your customers are asking for now that you need to make your jobs easier?”
Joël: “I don't think we find ourselves in those situations because we know our limitations and we know what we can do.”
Mark: “What's missing on the deploy side?”
Liz: “Rsync!”
Discussion ensues about various deployment techniques.
David S.: “We need the private/public key support that tools like SSH use.”
Ruslan: “How important is it and how big of a decision factor is it when thinking about performance issues between PHP on Windows and PHP on Linux.”
Liz: “It's not really an issue any more.”
Keith: “Most of us in this room are running 5.3.”
David S.: We're used to scaling horizontally on Linux machines. If switching to Windows, we'd have to expect more from Windows. “Windows needs a better solution for object caching. Memcached doesn't run well on Windows, and WinCache doesn't have the object cache yet.”
Joël: “How do you do large scale deployment of .NET apps. I don't know.”
Peter: “Pay someone a lot of money.”
Karri: “What are the key websites that we need to be listed on?”
Cal: “We've started a thread on the Google Group for this.”
Karri: “What blogs should we be reading and touching base with?”
Ben: “Look at who's on planet-php.net and look at the blog rolls for any of our blogs.”
Chris C.: “I can give you my list.”
Karri: “What conferences should we be attending?”
Lot's of names of conferences thrown out.
Presented by Josh Holmes and Peter Laudati.
Josh: “Ultimately, we're about the platforms we think are going to help you guys.”
Showing a vin diagram.
Dream job is at the center where all of these meet.
Discussion about how the developer evangelists can help us in our local areas.
Very willing to support PHP user groups with space, pizza, beer, money, etc., depending on the needs and the availability of funds. Don't hesitate to contact your local community developer evangelist.
Feedback: We want some sort of central DPE website where anyone in the world can check their area on the site and see who is their local community developer evangelist and contact them directly.
In the meantime, just contact Josh, and he'll find that information for you.
Josh: “How do we make that leap from being ambassadors of goodwill (and people who buy you beer) to being drivers of adoption?”
Cal: “Website Spark is a great example of where you guys can get us involved.”
Lot's of discussion on how DPEs can help people adopt Windows Server as a deployment platform.
Using this time to talk to the three different CMSes represented.
David S.: “I don't see myself as part of the PHP community. I'm a member of the Drupal community.”
Ben: “How can we get your community (Drupal) working together with the greater PHP community?”
David S.: “We need to find some common ground.”
David S.: “We (the Drupal community) look at Drupal as a web framework with a bunch of bundled modules in it.”
Points made on the board:
Ben: “Since you see yourselves as a framework, is there any dialogue going on between the Drupal community and other PHP frameworks?”
David S.: “Not really. In fact, most of the Drupal core developers tend to be working more with the Python frameworks.”
Ben: “Are you aware of the PHP framework interop group.”
Keith: “Larry Garfield from the Drupal project participates in that.”
Eli: “At the DrupalCon in DC, the mix was like 10% PHP developers and 90% Drupal configurers.”
David S.: “And we're happy with that mix.”
Ben: “How can our user group provide value to Drupal users and vice versa, how can the local Drupal group in our area provide value to PHP users?”
Sam: “We're basically Drupal with objects. We like objects. Objects are cool. […] We're targeting our next version at PHP 5.2. And we're also aiming to be compatible with 5.3.”
Lig: “Have you ever submitted papers to talk at PHP conferences about your framework?”
Sam: “Not yet.”
Will: “At the round table, we talked about how the community seems to be splintering. Developers see themselves as Drupal developers, Joomla developers, WordPress developers, PHP developers, etc. Do you see this, and do you see this as a problem?”
David S.: “I don't see it as splintering because, in order to splinter, they would have had to seen themselves as part of the PHP community to begin with in order to leave it.”
Liz: “Well, it's just that 10% who see themselves as PHP devs that we want involved in the community. How do we get them?”
Chris S.: “When you say the 'PHP community,' how do you define the PHP community? What is it?”
Keith: “You have to think about it like an onion. There are many layers. You've got a very small group of core developers (not all of which are active in the community). Then the next layer out are the conference regulars, speakers, thought leaders, bloggers, authors. Then you've got people who are active in their local communities and leaders in their companies and local groups.”
Ben: “And beyond that you've got anyone who develops with PHP, who may or may not even know about the community. We want to reach these people and evangelize standards and best practices and help them to become better developers.”
Chris S.: “So, the question is how you can take people moving between those layers and engage them.”
Discussion about the WordPress community, business issues surrounding it (it's very business driven), attitudes among developers, accepting patches from PHP developers, etc.
NDA content, so no notes from this session.
NDA content, so no notes from this session.
NDA content, so no notes from this session.
Not NDA (I think), but I didn't take notes, so if it's not NDA and someone else took notes and wants to have them posted here, send them to me.