Monthly Archives: October 2008

Download PDC2008 presentations

This is a community service announcement. :-)

Since I took the time to crack the download syntax for the PowerPoint decks presented this week at PDC, I thought I’d make my work publicly available. Here it is (i.e. sessions listed in alphabetically order with the session titles copied from the original master session list posted here, where some of the titles changed following Microsoft announcements like Windows Azure):

  1. BB01 – A Lap around Cloud Services Part 2 (e.g. the presented session was titled “A Lap around the Azure Services Platform”)
  2. BB02 – Architecture of the Building Block Services
  3. BB03 – SQL Server Data Services – Under the Hood
  4. BB04 – Live Services- A Lap around the Live Framework and Mesh Services
  5. BB05 – Live Services- Building Applications with the Live Framework
  6. BB06 – Live Services- Mesh Services Architecture and Concepts
  7. BB07 – SQL Server 2008- Developing Large Scale Web Applications and Services
  8. BB08 – Microsoft Dynamics CRM- The Appealing Business Application
  9. BB09 – Microsoft Office Communications Server and Exchange- Platform Futures
  10. BB10 – Live Services- Deep Dive on Microsoft Virtual Earth
  11. BB11 – Identity Roadmap for Software + Services
  12. BB12 – Messaging Services- Protocols, Protection, and How We Scale
  13. BB13 – SharePoint 2007- Creating SharePoint Applications with Visual Studio 2008 (missing?)
  14. BB14 – SQL Server Data Services- Futures
  15. BB15 – SQL Server- Database to Data Platform – Road from Server to Devices to the Cloud
  16. BB16 – SQL Server 2008- Beyond Relational
  17. BB18 – “Dublin”- Hosting and Managing Workflows and Services in Windows Application Server
  18. BB19 – Live Services- Live Framework Programming Model Architecture and Insights
  19. BB20 – Live Services- Making your Application More Social
  20. BB22 – Identity- Live Identity Services Drilldown
  21. BB23 – SQL Server Data Services – A Lap Around
  22. BB24 – SQL Server 2008- Deep Dive into Spatial Data
  23. BB25 – SQL Server 2008- New and Future T-SQL Programmability
  24. BB26 – SQL Server 2008- Business Intelligence and Data Visualization
  25. BB27 – Workflow Services- Orchestrating Services and Business Processes Using Cloud-Based Workflow
  26. BB28 – .NET Services- Access Control Service Drilldown
  27. BB29 – Identity- Connecting Active Directory to Microsoft Services
  28. BB30 – Live Services- Building Mesh-Enabled Web Applications
  29. BB31 – Live Services- FeedSync and Mesh Synchronization Services
  30. BB32 – Microsoft Dynamics CRM- Building Line-of-Business Applications
  31. BB33 – Dynamics Online- Building Business Applications with Commerce and Payment APIs
  32. BB34 – Live Services- Notifications, Awareness, and Communications
  33. BB35 – Live Services- The Future of the Device Mesh
  34. BB36 – FAST- Building Search-Driven Portals with MOSS 2007 and Microsoft Silverlight
  35. BB37 – SQL Server 2008- Developing Secure Applications
  36. BB38 – Service Bus Services- Connectivity, Messaging, Events, and Discovery
  37. BB39 – Logging, Diagnosing, and Troubleshooting Applications Running Live in the Cloud (missing?)
  38. BB40 – Sync Framework- Enterprise Data in the Cloud and on Devices
  39. BB41 – Live Services- What I Learned Building My First Mesh Application
  40. BB42 – Identity- “Geneva” Server and Framework Overview
  41. BB43 – Identity- “Geneva” Deep Dive
  42. BB44 – Identity- Windows CardSpace “Geneva” Under the Hood
  43. BB45 – Office Communications Server 2007 R2- Enabling Unified Communications
  44. BB46 – Exchange Web Services Managed API- Unified Communications Development for Exchange
  45. BB47 – SharePoint 2007- Advanced Asynchronous Workflow Messaging
  46. BB48 – Microsoft Advertising Platform- A Lap Around
  47. BB49 – Microsoft Advertising Platform- A Day in the Life of a Click
  48. BB51 – Live Services- Programming Live Services Using Non-Microsoft Technologies
  49. BB52 – SQL Server Data Services- Tips and Tricks for High-Throughput Data-Driven Applications
  50. BB53 – SharePoint Online- Extending Your Service
  51. BB54 – Designing Your Application to Scale
  52. BB55 – .NET Services- Access Control In the Cloud Services
  53. BB57 – Microsoft Dynamics AX- Building Business Process into Your Application
  54. BB58 – Case Study- Bridging On-Premises with the Cloud
  55. BB59 – Behind the Scenes- How We Built a Multi-Enterprise Supply Chain Application
  56. ES01 – Developing and Deploying Your First Cloud Service
  57. ES02 – Architecting Services for the Cloud
  58. ES03 – A Day in the Life of a Cloud Service Developer
  59. ES04 – Essential Cloud Storage Services
  60. ES06 – Developing with Microsoft .NET and ASP.NET for Server Core
  61. ES07 – Modeling Data for Efficient Access at Scale
  62. ES09 – Enabling Test Automation Using Windows Server 2008 Hyper-V
  63. ES10 – Developing Solutions for Windows Server 2008 Hyper-V
  64. ES11 – Developing Connected Home Applications and Services for Windows Home Server
  65. ES12 – Exposing Connected Home Services to the Internet via Windows Home Server
  66. ES13 – How to Develop Supercomputer Applications
  67. ES14 – Microsoft Internet Information Services 7.0 and Beyond
  68. ES15 – Deploying Web Applications with Microsoft IIS 7.0 and the Web Deployment Tool
  69. ES16 – A Lap around Cloud Services Part 1
  70. ES17 – Cloud Computing- Programming in the Cloud
  71. ES19 – Under the Hood- Inside the Cloud Computing Hosting Environment
  72. ES24 – PowerShell- Creating Manageable Web Services
  73. ES25 – Showcase- Cloud Computing Platform Enables Next Generation Conferencing Solutions
  74. ES29 – Showcase- Cloud Computing Platform Enables External Partners
  75. ES30 – Datacenters and Resilient Services
  76. ES31 – Showcase- Cloud Computing Platform Enables Publishing Services
  77. ES32 – Microsoft Application Virtualization 4.5
  78. PC01 – Windows 7- Web Services in Native Code
  79. PC02 – Windows 7- Extending Battery Life with Energy Efficient Applications
  80. PC03 – Windows 7- Developing Multi-touch Applications
  81. PC04 – Windows 7- Writing Your Application to Shine on Modern Graphics Hardware
  82. PC05 – Windows 7- Unlocking the GPU with Direct3D
  83. PC06 – Deep Dive- Building an Optimized, Graphics-Intensive Application in Microsoft Silverlight
  84. PC07 – WPF- Extensible BitmapEffects, Pixel Shaders, and WPF Graphics Futures
  85. PC10 – Microsoft Silverlight 2 for Mobile- Developing for Mobile Devices
  86. PC11 – Microsoft Silverlight Futures- Building Business Focused Applications
  87. PC12 – Deep Dive- The New Rendering Engine in IE 8
  88. PC13 – Windows 7- Building Great Audio Communications Applications
  89. PC14 – Windows 7- New Shell User Experience APIs
  90. PC15 – Windows 7- Benefiting from Documents and Printing Convergence
  91. PC16 – Windows 7- New APIs to Find, Visualize, and Organize TBD
  92. PC17 – Developing for Microsoft Surface
  93. PC18 – Windows 7- New Text and Graphics APIs
  94. PC19 – Windows 7- Designing Efficient Background Processes
  95. PC20 – ASP.NET 4.0 Roadmap
  96. PC21 – ASP.NET MVC- A New Framework for Building Web Applications
  97. PC22 – Windows 7- Design Principles for Windows 7
  98. PC23 – Windows 7- Integrate with the Windows 7 Desktop
  99. PC24 – Windows 7- Welcome to the Windows 7 Desktop
  100. PC25 – Windows 7- New APIs for Building Context-Aware Applications
  101. PC26 – Microsoft Visual Studio- Building Applications with MFC
  102. PC27 – Microsoft Silverlight, WPF and the Microsoft .NET Framework- Sharing Skills and Code
  103. PC29 – Microsoft Silverlight 2- Control Model
  104. PC30 – ASP.NET Dynamic Data
  105. PC31 – ASP.NET and JQuery
  106. PC32 – ASP.NET AJAX Futures
  107. PC33 – Microsoft Visual Studio- Easing ASP.NET Web Deployment
  108. PC34 – Open XML Format SDK- Developing Open XML Solutions
  109. PC35 – Silverlight Controls Roadmap
  110. PC37 – Microsoft Silverlight- Building Rich Media Experiences (missing?)
  111. PC39 – Inside the Olympics- An Architecture and Development Review
  112. PC40 – SQL Server Compact- Embedding in Desktop and Device Applications
  113. PC41 – ASP.NET- Cache Extensibility
  114. PC42 – Windows 7- Deploying Your Application with Windows Installer (MSI) and ClickOnce
  115. PC43 – Deep Dive- What’s New with user32 and comctl32 in Win32
  116. PC44 – Windows 7- Programming Sync Providers That Work Great with Windows
  117. PC45 – WPF- Data-centric Applications Using the DataGrid and Ribbon Controls
  118. PC46 – WPF Roadmap
  119. PC47 – Microsoft Expression Blend- Tips & Tricks
  120. PC48 – Research- Designing the World Wide Telescope (missing?)
  121. PC49 – Microsoft .NET Framework- CLR Futures
  122. PC50 – Windows 7- Using Instrumentation and Diagnostics to Develop High Quality Software
  123. PC51 – Windows 7- Best Practices for Developing for Windows Standard User
  124. PC52 – Windows 7- Writing World-Ready Applications
  125. PC53 – Building High Performance JScript Applications
  126. PC54 – Mono and .NET
  127. PC55 – Oomph- A Microformat Toolkit
  128. PC56 – Windows Embedded “Quebec”- Developing for Devices
  129. PC58 – Framework Design Guidelines
  130. SYMP01 – Parallel Symposium- Addressing the Hard Problems with Concurrency
  131. SYMP02 – Parallel Symposium- Application Opportunities and Architectures
  132. SYMP03 – Parallel Symposium- Future of Parallel Computing (missing?)
  133. SYMP04 – Services Symposium- Expanding Applications to the Cloud
  134. SYMP05 – Services Symposium- Enterprise Grade Cloud Applications (missing?)
  135. SYMP06 – Services Symposium- Cloud or No Cloud, the Laws of Physics Still Apply
  136. TL01 – Office Business Applications- Enhanced Deployment
  137. TL02 – Under the Hood- Advances in the .NET Type System
  138. TL03 – Microsoft Visual Studio Team System- Software Diagnostics and Quality for Services
  139. TL04 – Microsoft VSTS Team Foundation Server- How We Use It at Microsoft
  140. TL06 – WCF 4.0- Building WCF Services with WF in Microsoft .NET 4.0
  141. TL07 – Developing Applications Using Data Services
  142. TL08 – Offline-Enabled Data Services and Desktop Applications
  143. TL09 – Agile Development with Microsoft Visual Studio
  144. TL10 – Deep Dive- Dynamic Languages in Microsoft .NET
  145. TL11 – An Introduction to Microsoft F#
  146. TL12 – Future Directions for Microsoft Visual Basic
  147. TL13 – Microsoft Visual C++- 10 Is the New 6
  148. TL14 – Project “Velocity”- A First Look
  149. TL15 – Architecture without Big Design Up Front
  150. TL16 – The Future of C#
  151. TL17 – WF 4.0- A First Look
  152. TL18 – “Oslo”- Customizing and Extending the Visual Design Experience
  153. TL19 – Microsoft Visual Studio- Bringing out the Best in Multicore Systems
  154. TL20 – Entity Framework Futures
  155. TL21 – WF 4.0- Extending with Custom Activities
  156. TL22 – Concurrency Runtime Deep Dive- How to Harvest Multicore Computing Resources
  157. TL23 – A Lap around “Oslo”
  158. TL24 – Improving .NET Application Performance and Scalability
  159. TL25 – Parallel Programming for C++
  160. TL26 – Parallel Programming for Managed Developers with the Next Version of Microsoft Visual Studio
  161. TL27 – “Oslo”- The Language
  162. TL28 – “Oslo”- Repository and Models
  163. TL29 – Live Labs Web Sandbox- Securing Mash-ups, Site Extensibility, and Gadgets
  164. TL30 – Microsoft Sync Framework Advances
  165. TL31 – “Oslo”- Building Textual DSLs
  166. TL32 – Microsoft Visual Studio- Customizing and Extending the Development Environment
  167. TL33 – Managed Extensibility Framework- Overview
  168. TL34 – Managed and Native Code Interoperability- Best Practices
  169. TL35 – WCF- Developing RESTful Services
  170. TL36 – Microsoft .NET Framework- Declarative Programming Using XAML
  171. TL37 – Microsoft VSTS- Leveraging Virtualization to Improve Code Quality with Team Lab
  172. TL38 – WCF- Zen of Performance and Scale
  173. TL39 – Coding4Fun- WPF Animation, YouTube, iTunes, Twitter, and Nintendo’s Wiimote
  174. TL40 – “Dublin” and .NET Services- Extending On-Premises Applications to the Cloud
  175. TL42 – Microsoft SQL Server 2008- Powering MSDN
  176. TL43 – Microsoft XNA Game Studio- An Overview
  177. TL44 – IronRuby- The Right Language for the Right Job
  178. TL45 – Microsoft Visual Studio Team System Database Edition- Overview
  179. TL46 – Microsoft Visual C# IDE- Tips and Tricks
  180. TL47 – Microsoft Visual Studio Team System- A Lap Around VSTS 2010
  181. TL48 – Microsoft Visual Studio- Web Development Futures
  182. TL49 – Microsoft .NET Framework- Overview and Applications for Babies
  183. TL50 – Research- BAM, AjaxScope, and Doloto
  184. TL51 – Research- Contract Checking and Automated Test Generation with Pex
  185. TL52 – Team Foundation Server 2010- Cool New Features
  186. TL54 – Natural Interop with Silverlight, Office, and Python in Microsoft Visual C#
  187. TL55 – The Concurrency and Coordination Runtime and Decentralized Software Services Toolkit
  188. TL56 – Project “Velocity”- Under the Hood
  189. TL57 – Panel- The Future of Programming Languages: as a panel-based session, there were no slides just discussion amongst the panel and Q&A with attendees
  190. TL58 – Research- Concurrency Analysis Platform and Tools for Finding Concurrency Bugs
  191. TL59 – Visual Studio Debugger Tips & Tricks
  192. TL60 – Improving Code Quality with Code Analysis
  193. TL61 – Panel- The Future of Unit Testing: as a panel-based session, there were no slides just discussion amongst the panel and Q&A with attendees

Of course, I encourage you to visit and Channel 9 for more context and content (e.g. session video recordings). Cheers…

Getting the clouds to rain (add value)


Certainly the vision of Windows Azure (aka “Red Dog”) and the Azure Services Platform is substantial. However, in order for Microsoft, its partners and customers to realize it, it must deliver business value.

Internal or external, cloud computing has to address a set of real business problems in order to become a relevant part of one’s development arsenal. Some business models are more closely aligned with the cloud than others. New business models will emerge.

I guess that the technology industry is tired of TLAs like MSP and ASP. In fact, it seems like FLAs like SaaS and PaaS are passé, too. Only five characters will do, and analogy has replaced acronym: cloud. :-)

During the keynotes this morning, Ray Ozzie suggested that cloud (or utility) computing is materially different than past innovations upon which it rests since it is focused on the externalization of IT and the critical requirement to scale-out.

According to Gartner, there are five trends driving companies like Microsoft and Google in their march toward cloud computing as follows:

  • Software as a service
  • Open-source technologies
  • Web 2.0 products, such as collaborative technologies, social networking and wikis
  • Consumerization of technology
  • Global class, a new way to deliver computing services

So I’m looking for content and discussion concerning cloud computing the addresses the following questions:

  • What are the API differences between this OS (Windows Azure) and a traditional Windows OS (e.g. Windows Server 2008)? What features/functions are unique to Azure (and why)?
  • What about composition in the cloud?
  • What about cross-app-in-the-cloud functionality (e.g. events and other synergies)?
  • What are the significant ISV/partner opportunities (e.g. platform level, application level and integrated solutions level) created by the “Azure ecosystem”?
  • What new issues arise in the cloud? Regulatory compliance cannot be compromised. Comingling of both live and backed-up data can pose concerns. “Premise matters” (eventually); so virtualization, geography, sovereignty, etc. can pose additional concerns. Etc. How does Azure address such concerns?

In a few minutes, I’ll be taking an initial “lap around” Azure, which should be interesting. Stay tuned…

Head in the clouds

It appears that a majority of what I plan to attend at this year’s Microsoft Professional Developers Conference (PDC) is focused on cloud computing. Today, for example, I plan to attend the following sessions:

  1. Keynote – Ray Ozzie, Amitabh Srivastava, Bob Muglia and David Thompson
  2. A Lap around Windows Azure
  3. “Dublin” and .NET Services: Extending On-Premises Applications to the Cloud
  4. The Future of C#Anders Hejlsberg
  5. A Lap around the Azure Services PlatformJohn Shewchuk
  6. Developing and Deploying Your First Windows Azure Service

Well, I’m off to grab a seat for the keynote session. I’ll follow up with a post on what I expect to learn about cloud computing, next.

Update 10/28/2008: FWIW, here is the rest of my plans at PDC (besides networking, of course):

Day 2

  1. Keynote – Ray Ozzie et al
  2. Keynote – Don Box & Chris Anderson
  3. Live Services: What I Learned Building My First Mesh Application
  4. A Lap around “Oslo”
  5. Architecture of the .NET Services
  6. Windows Azure: Architecting & Managing Cloud Services

Day 3

  1. Keynote – Rick Rashid
  2. .NET Services: Connectivity, Messaging, Events, and Discovery with the Service Bus…or Panel: The Future of Programming Languages…or Parallel Programming for Managed Developers with the Next Version of Microsoft Visual Studio :-)
  3. Windows 7: Design Principles for Windows 7
  4. .NET Services: Logging, Diagnosing, and Troubleshooting Applications Running Live in the Cloud or Improving .NET Application Performance and Scalability
  5. Windows Azure: Cloud Service Development Best Practices
  6. .NET Services: Access Control Service Drilldown

Day 4

  1. Microsoft .NET Framework: Declarative Programming Using XAML
  2. .NET Services: Messaging Services – Protocols, Protection, and How We Scale
  3. “Oslo”: Building Textual DSLs or Designing Your Application to Scale or Windows Azure: Programming in the Cloud
  4. An Introduction to Microsoft F# or .NET Services: Orchestrating Services and Business Processes Using Cloud-Based Workflow
  5. …or, instead of the regular session rhythm, there are 3-part symposia (e.g. on services [1], [2] and [3]…difficult choice…

EMC Innovation Conference – day 2b

Continuing from the first half of my day two notes…

Steve Santini (internal EMC link), CTO, Bank of America Securities spoke next as the day’s featured guest speaker. Steve shared his perspective on how how Bank of America (BofA), as a very large company, organizes itself for successful innovation; the bank’s vision for the future of information; and the Center for Future Banking. Notes from this session:

  • Per Steve’s acknowledgment, this presentation itself is innovation, since normally BofA has avoided such engagements so as not to appear to be making an endorsement. To those at BofA who made the call to allow Steve to present during this conference, a hearty “Thank You!”
  • BofA is a company that is always in transition (e.g. due to M&A activity), and it has a well-defined process to handle transitions such as merging IT data centers (i.e. concept of a “lean” – e.g. if I could do X or Y, I lean toward X). A first lean is about gut feel. A second lean is about details, and a third lean is about execution.
  • BofA has to innovate in order to deliver products that meet ever-changing lifestyles.
  • First, create the room and the structure for innovation to grow.

Next, the conference focused on university research and heard updates from several EMC-sponsored efforts as follows:

  1. Fudan University Ph.D candidate from Parallel Processing Institute, Haibo Chen, presented “Inside and Outside Protection of Cloud Services through Daoli Trusted Infrastructure.” More (EMC internal) details on this presentation are here.
  2. University of Washington doctoral student in Computer Science & Engineering, Evan Welbourne, presented “RFID Data Management for Pervasive Computing Applications.” More (EMC internal) details on this presentation are here. Evan is the graduate student lead of the RFID Ecosystem project.
  3. University of Michigan Professor Peter Honeyman, research professor, scientific director, Center for Information Technology Integration (CITI), challenged the conference audience to look to parallel computing for storage innovation. During session Q&A (in response to modern OS deficiencies where massive throughput is concerned): “you solve the problem you have…CITI is addressing new problems…”

The final segment of the conference was the announcement of showcase judging results and awarding the winners, which are outlined here.

This was a great conference both in terms of content and in terms of networking with fellow EMC colleagues. It was invigorating, and I’m already looking forward to next year’s event.

Update 10/27/2008: Cornelia Davis posted a nice blog on her conference experience here.

EMC Innovation Conference – day 2a

Continuing from the good start on day 1 (10/21/2008), the second and final day of the conference (10/22/2008) began with a world tour of EMC’s Centers of Excellence in China, India, Russia and Ireland. It was great to see a large remote gathering at each site via live video feed. The leadership of each center discussed how they innovate current EMC products and research the next generation of offerings. There was plenty of energy apparent in each team. Notes from this session:

  • India is the largest and most tenured CoE, and this year its innovation showcase submissions alone outnumbered all submissions last year (i.e. the first year of the showcase).
  • China is a much younger CoE, yet it already represents a significant percentage of innovations submitted this year. Where will the China CoE be at the same point in its history? Or Russia? Or elsewhere?
  • The CoE concept has the advantage of multiple products being developed under the same roof (e.g. benefits of co-location collaboration, etc.).
  • The “Great Wall” in the China CoE is a large, lengthy wall that acts as a whiteboard dedicated to capturing innovation.
  • As we do in CMA, the China CoE has site-wide wiki and collaboration is encouraged.
  • I’m a fan of Charles Fan, head of the China CoE, and it was a pleasure to meet and talk with him in person. Consider, for example, his perspective on hiring talent (with which I agree): It’s all about building EMC’s brand. A very selective hiring process–one that targets the best of the best–means that few are hired into EMC; however, many more candidates and applicants are exposed to what EMC is all about. Furthermore, many of those not hired become employees of EMC’s customers.

Next, there was a panel discussion about driving innovation within several EMC business units (i.e. which processes and programs work and which don’t). Doc D’Errico was an effective moderator of Rich Napolitano, Amnon Naamad and Mark Sorensen. Notes from this session (raw):

  • Convergence – process/workflow
  • Technologists maturing into business people
  • Rid complexity (!…and reduce engineering cost); simplify to enable technology adoption by customers
  • Tyranny of the installed base–the innovator’s dilemma
  • Quarter-based drivers versus long-term strategy
  • Critical transition for a successful startup: making the move from idea to value proposition; therefore, pay attention to wider industry and look for such events
  • Practice of “R&D grants”: receipt of one rewards recipient with 1 day/week to pursue idea (e.g. 10 people in a 2000-person organization)
  • (Music to my ears…) First architect; then implement.
  • Not being able to measure is no reason not to start. Start!
  • Forrest floor…big trees block out the light; develop others by allowing light hit the “sapplings”
  • Encourage risk-taking (don’t reward failure)
  • Mark captured Rich’s “army of innovators” remark, which I fully align myself to (versus an ivory innovation tower approach)

More to come in a follow-up post…some of which I see already captured here