<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.netindonesia.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Risman Adnan</title><subtitle type="html">MASM::C::C++::C#::Web Adventurer</subtitle><id>http://geeks.netindonesia.net/blogs/risman/atom.aspx</id><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/risman/default.aspx" /><link rel="self" type="application/atom+xml" href="http://geeks.netindonesia.net/blogs/risman/atom.aspx" /><generator uri="http://communityserver.org" version="3.1.20917.1142">Community Server</generator><updated>2008-07-23T20:48:00Z</updated><entry><title>From PDC 2008 | .NET Micro Framework</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/risman/archive/2008/10/30/from-pdc-2008-net-micro-framework.aspx" /><id>http://geeks.netindonesia.net/blogs/risman/archive/2008/10/30/from-pdc-2008-net-micro-framework.aspx</id><published>2008-10-30T01:48:09Z</published><updated>2008-10-30T01:48:09Z</updated><content type="html">&lt;p&gt;We released .NET Micro Framework SDK 3.0 in PDC 2008, you can visit its &lt;a href="http://www.microsoft.com/netmf/default.mspx"&gt;official website here&lt;/a&gt;. This SDK can help us to develop embedded systems that are more securely connected through a variety of wired and wireless protocols. It supports development of code, including device I/O, in the C# language using a subset of the .NET libraries, and is fully integrated with Visual Studio. You can download the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=9356ED6F-F1F0-43EF-B21A-4644DD089B4A&amp;amp;displaylang=en"&gt;full SDK here&lt;/a&gt;, which lets you develop C# code for the .NET Micro Framework and run it on our extensible emulator. Then choose from several development kits to deploy your code to real hardware. Below is some specs of the SDK, including processor types and real-time OS support. &lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008.NETMicroFramework_7BA4/03_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="247" alt="03" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008.NETMicroFramework_7BA4/03_thumb.jpg" width="353" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;br /&gt;Hardware&lt;/strong&gt; &lt;p&gt;You can select an evaluation board or development kit and its .NET Micro Framework software drivers. Some kits include all the software in the kit; software for others can be downloaded from the manufacturer. Some partners also offer additional add-on hardware. &lt;a&gt;Digikey&lt;/a&gt; and &lt;a&gt;Mouser&lt;/a&gt; have extensive catalogs of components that can be built into .NET Micro Framework. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/netmf/hardware/default.mspx"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="506" alt="01" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008.NETMicroFramework_7BA4/01_3.jpg" width="441" border="0" /&gt;&lt;/a&gt;  &lt;p&gt;&lt;br /&gt;&lt;strong&gt;How to Start&lt;/strong&gt; &lt;p&gt;This is the main reason why I want to post about this. Usually we learn something new because excitement then just leave it out after we know it. But Micro Framework team does a special challenge for us to win &lt;strong&gt;50,000 USD&lt;/strong&gt; !!! That is what we call &lt;strong&gt;Microsoft Dare to Dream Different Challenge&lt;/strong&gt;!. If your entry is one of the best you will share in the 50K USD in prizes and numerous other benefits up for grabs. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dreamdifferentcontest.com/"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="219" alt="04" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008.NETMicroFramework_7BA4/04_3.jpg" width="612" border="0" /&gt;&lt;/a&gt;&amp;nbsp; &lt;p&gt;Indonesian geeks, go for it!. Even if you don&amp;#39;t win it this time, you will learn a lot!. Think of something out of the box, &lt;/p&gt; &lt;p&gt;- Solar Cell based robot controlled by embedded &lt;br /&gt;- Manufacturing floor applications&lt;br /&gt;- Digital Markup Reader ... (Zeddy works on this)&lt;br /&gt;- Home Camera Controller ...&lt;br /&gt;- Other ideas!. &lt;br /&gt;&lt;br /&gt;Cheers,&lt;/p&gt; &lt;p&gt;RAM @ LA&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/risman/archive/2008/10/30/from-pdc-2008-net-micro-framework.aspx&amp;amp;subject=From PDC 2008 | .NET Micro Framework" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/30/from-pdc-2008-net-micro-framework.aspx&amp;amp;t=From+PDC+2008+%7c+.NET+Micro+Framework" target="_blank" title="Submit From PDC 2008 | .NET Micro Framework to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/30/from-pdc-2008-net-micro-framework.aspx&amp;amp;title=From+PDC+2008+%7c+.NET+Micro+Framework" target="_blank" title="Submit From PDC 2008 | .NET Micro Framework to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/30/from-pdc-2008-net-micro-framework.aspx&amp;amp;phase=2" target="_blank" title="Submit From PDC 2008 | .NET Micro Framework to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/30/from-pdc-2008-net-micro-framework.aspx&amp;amp;title=From+PDC+2008+%7c+.NET+Micro+Framework" target="_blank" title="Add From PDC 2008 | .NET Micro Framework to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=71321" width="1" height="1"&gt;</content><author><name>risman</name><uri>http://geeks.netindonesia.net/members/risman.aspx</uri></author></entry><entry><title>From PDC 2008 | HPC++ (Windows HPCS 2008)</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/risman/archive/2008/10/29/from-pdc-2008-hpc-windows-hpcs-2008.aspx" /><id>http://geeks.netindonesia.net/blogs/risman/archive/2008/10/29/from-pdc-2008-hpc-windows-hpcs-2008.aspx</id><published>2008-10-29T14:06:30Z</published><updated>2008-10-29T14:06:30Z</updated><content type="html">&lt;p&gt;HPC will not only available to scientific community and specific vertical anymore. From HW perspective, Microsoft and Cray had very special announcement about &amp;quot;personal super computer&amp;quot;, which I think will drive more parallel computing on the street. Cray&amp;#39;s CX1 computer runs Windows HPC (High Performance Computing) Server 2008 and is available for customers to order now for delivery in October at a starting price of US$25,000. I will propose this machine for &lt;a href="http://www.kucingfisika.com"&gt;kUfI&lt;/a&gt; management and crew. &lt;br /&gt;&lt;br /&gt;- &lt;a href="http://www.itworld.com/hardware/55093/microsoft-cray-launch-personal-supercomputer-25k"&gt;Microsoft, Cray Launch &amp;#39;personal&amp;#39; Supercomputer for $25K&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://investors.cray.com/phoenix.zhtml?c=98390&amp;amp;p=irol-newsArticle&amp;amp;ID=1197689"&gt;Microsoft and Cray Team Up To Drive High Productivity Computing Into the Mainstream&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://www.microsoft.com/presspass/press/2008/sep08/09-22HPCLaunch08PR.mspx"&gt;Microsoft Takes Its Newest High-Performance Computing Platform to the Street&lt;/a&gt;&lt;/p&gt; &lt;p&gt;We can use Cray CX1 for production cluster, but for development, we can use 64bit machine with Windows Server 2008 HPC edition installed. So now we don&amp;#39;t need million dollars investment to have HPC LAB like 10 years ago. &lt;/p&gt; &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008HPCWindowsHPCS2008_1288E/01_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="229" alt="01" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008HPCWindowsHPCS2008_1288E/01_thumb.jpg" width="462" border="0" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;In this PDC 2008, I met Jeff Baxter, Microsoft Principal SDE who works on the MS-MPI and learn from him directly. He started to show me the Cray CX1 machine (64 cores) with Infiniband (MS-MPI can support RDMA via Network Direct to reduce network latency). &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008HPCWindowsHPCS2008_1288E/05.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="259" alt="05" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008HPCWindowsHPCS2008_1288E/05_thumb.jpg" width="460" border="0" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008HPCWindowsHPCS2008_1288E/06.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="259" alt="06" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008HPCWindowsHPCS2008_1288E/06_thumb.jpg" width="461" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;MS MPI stack is based on &lt;a href="http://www.mcs.anl.gov/research/projects/mpich2/"&gt;Argonne National Lab’s Mpich2 implementation&lt;/a&gt;, with the additional benefits of Network Direct, or fast direct hardware access bypassing kernel stack. If you want to have MPI on .NET, you can download MPI.NET from &lt;a href="http://www.osl.iu.edu/research/mpi.net/"&gt;here&lt;/a&gt;. If you don&amp;#39;t know MPI, don&amp;#39;t worry as I will post more on parallelism after back to Jakarta, especially about MS-MPI for both managed (C#) and native (C++) developers. It is not rocket science, just another message passing to distributed tasks to cluster.&lt;/p&gt; &lt;p&gt;MPI requires fast hardware interconnect such as infini-band network cards to achieve 20GB/s in bandwidth, and 2 microsecond in latency.&amp;nbsp; By implementing network direct, hopefully we can compete with Linux/UNIX products. You can see in the picture Cray CX1 Infiniband built for speed and stability. Windows HPC also included MS-MPI event tracing, as shown below.&lt;/p&gt; &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008HPCWindowsHPCS2008_1288E/02_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="297" alt="02" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008HPCWindowsHPCS2008_1288E/02_thumb.jpg" width="238" border="0" /&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008HPCWindowsHPCS2008_1288E/02_4.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="297" alt="02" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008HPCWindowsHPCS2008_1288E/02_thumb_1.jpg" width="346" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;I only want to inspire about HPC in this post. I do believe that in very near future, we can have our own LAB in University of Indonesia to show you how it really works. Look on the picture below, that is the CPU heat map of MPI (LINPACK apps) program broadcast on 32,000 CPUs (~1950 nodes, 16 cores/node). The pattern of the heatmap is interesting as it is very application specific.  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008HPCWindowsHPCS2008_1288E/07.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="258" alt="07" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008HPCWindowsHPCS2008_1288E/07_thumb.jpg" width="458" border="0" /&gt;&lt;/a&gt;  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008HPCWindowsHPCS2008_1288E/08.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="258" alt="08" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008HPCWindowsHPCS2008_1288E/08_thumb.jpg" width="458" border="0" /&gt;&lt;/a&gt;  &lt;p&gt;Stay tuned! Once back to Jakarta, I will setup my own Windows HPC LAB, play again with MS-MPI and MPI.NET and conduct deep dive training on it for ISVs and students in our MIC LAB at UI. &lt;br /&gt; &lt;p&gt;Hope this helps!&lt;br /&gt;&lt;br /&gt;RAM @ LA&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/risman/archive/2008/10/29/from-pdc-2008-hpc-windows-hpcs-2008.aspx&amp;amp;subject=From PDC 2008 | HPC++ (Windows HPCS 2008)" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/29/from-pdc-2008-hpc-windows-hpcs-2008.aspx&amp;amp;t=From+PDC+2008+%7c+HPC%2b%2b+(Windows+HPCS+2008)" target="_blank" title="Submit From PDC 2008 | HPC++ (Windows HPCS 2008) to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/29/from-pdc-2008-hpc-windows-hpcs-2008.aspx&amp;amp;title=From+PDC+2008+%7c+HPC%2b%2b+(Windows+HPCS+2008)" target="_blank" title="Submit From PDC 2008 | HPC++ (Windows HPCS 2008) to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/29/from-pdc-2008-hpc-windows-hpcs-2008.aspx&amp;amp;phase=2" target="_blank" title="Submit From PDC 2008 | HPC++ (Windows HPCS 2008) to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/29/from-pdc-2008-hpc-windows-hpcs-2008.aspx&amp;amp;title=From+PDC+2008+%7c+HPC%2b%2b+(Windows+HPCS+2008)" target="_blank" title="Add From PDC 2008 | HPC++ (Windows HPCS 2008) to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=71140" width="1" height="1"&gt;</content><author><name>risman</name><uri>http://geeks.netindonesia.net/members/risman.aspx</uri></author></entry><entry><title>From PDC 2008 | Microsoft Code Name Dublin Part 1</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-microsoft-code-name-dublin-part-1.aspx" /><id>http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-microsoft-code-name-dublin-part-1.aspx</id><published>2008-10-28T15:21:03Z</published><updated>2008-10-28T15:21:03Z</updated><content type="html">&lt;p&gt;Seems like this project is authored by some folks from Ireland. Anyway, as I don&amp;#39;t know the historical POV, just think of it as... &amp;quot;Microsoft Application Server on top of WAS infrastructure&amp;quot;. Dublin will be the standard host for applications that use WF and WCF in .NET 4.0. Excellent!!! Below is the high level view of some improvements in .NET 4.0 wave, I will more focus on something new for us, like &lt;strong&gt;&lt;a href="http://connect.microsoft.com/dublin"&gt;Dublin&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="http://connect.microsoft.com/oslo"&gt;Oslo&lt;/a&gt;&lt;/strong&gt;:&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008MicrosoftCodeNameDublinPart1_13A4D/01_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="373" alt="01" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008MicrosoftCodeNameDublinPart1_13A4D/01_thumb.jpg" width="540" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I met the team who in charge to develop this, and they will give me VPC contains Dublin and Oslo current version today. For now just visit Dublin MSDN site &lt;a href="http://www.microsoft.com/NET/Dublin.aspx"&gt;here&lt;/a&gt; get some background information. I will update you more on part 2, directly from LACC. I also met Don Box who explain us about Oslo and have deep discussion with some folks from parallel computing group.&lt;/p&gt; &lt;p&gt;&lt;br /&gt;Stay tuned for my next PDC 2008 update.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Hope this helps,&amp;nbsp; &lt;/p&gt; &lt;p&gt;RAM from LA&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-microsoft-code-name-dublin-part-1.aspx&amp;amp;subject=From PDC 2008 | Microsoft Code Name Dublin Part 1" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-microsoft-code-name-dublin-part-1.aspx&amp;amp;t=From+PDC+2008+%7c+Microsoft+Code+Name+Dublin+Part+1" target="_blank" title="Submit From PDC 2008 | Microsoft Code Name Dublin Part 1 to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-microsoft-code-name-dublin-part-1.aspx&amp;amp;title=From+PDC+2008+%7c+Microsoft+Code+Name+Dublin+Part+1" target="_blank" title="Submit From PDC 2008 | Microsoft Code Name Dublin Part 1 to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-microsoft-code-name-dublin-part-1.aspx&amp;amp;phase=2" target="_blank" title="Submit From PDC 2008 | Microsoft Code Name Dublin Part 1 to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-microsoft-code-name-dublin-part-1.aspx&amp;amp;title=From+PDC+2008+%7c+Microsoft+Code+Name+Dublin+Part+1" target="_blank" title="Add From PDC 2008 | Microsoft Code Name Dublin Part 1 to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=70831" width="1" height="1"&gt;</content><author><name>risman</name><uri>http://geeks.netindonesia.net/members/risman.aspx</uri></author></entry><entry><title>From PDC 2008 | Geneva Server</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-geneva-server.aspx" /><id>http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-geneva-server.aspx</id><published>2008-10-28T09:05:24Z</published><updated>2008-10-28T09:05:24Z</updated><content type="html">&lt;p&gt;Have you heard about Microsoft Code Name “Geneva”? Today I met the product team who built this STS framework and tools, they are under Kim Cameron team (&lt;a href="http://www.identityblog.com"&gt;www.identityblog.com&lt;/a&gt;).  &lt;p&gt;“Geneva” Server Beta enables Active Directory Domain Services (AD DS) to be an identity provider in the claims based access platform (CBA). It is a security token service (STS) framework that supports the &lt;strong&gt;WS-Trust&lt;/strong&gt;, &lt;strong&gt;WS-Federation&lt;/strong&gt;, and &lt;strong&gt;Security Assertion Markup Language &lt;/strong&gt;(SAML) protocols. “Geneva” Server can also issue managed InfoCards for AD DS users. Great... I was thinking about this when &lt;a href="http://geeks.netindonesia.net/blogs/narn"&gt;Naren&lt;/a&gt; told me about ADFS last year. Now, if you have Windows Server 2008 installed on your machine, you can download its CTP and play with it. We dont have to make it Naren :).  &lt;p&gt;&lt;a href="https://connect.microsoft.com/Downloads/Downloads.aspx?SiteID=642"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="334" alt="01" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008GenevaServer_E233/01_3.jpg" width="517" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Geneva distribution contains Framework and Geneve Server (+Management Console). You can build your own server management console with Silverlight for example, and everything you need is Geneva Framework. With “Geneva” Server you can:&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;Collaborate securely across Active Directory domains using identity federation.&lt;/p&gt; &lt;li&gt; &lt;p&gt;Reduces the need for duplicate accounts and other identity management overhead by enabling federated single sign-on (SSO) across organizations, platforms, and applications. &lt;/p&gt; &lt;li&gt; &lt;p&gt;Use Windows CardSpace for cross-domain sign-on both for Web browser-based applications and Web service. &lt;/p&gt; &lt;li&gt; &lt;p&gt;Provides for identity delegation so that authorized applications may impersonate their users when accessing infrastructure services, even when the original user does not have a local account. &lt;/p&gt; &lt;li&gt; &lt;p&gt;Enables step-up authentication so that Web sites can easily request smart-card authentication for particular operations.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp; &lt;p&gt;Lets start with is the high level view of Geneva Server from these two scenarios:&lt;br /&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Geneva as Identity Provider&lt;/font&gt;&lt;/strong&gt; &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008GenevaServer_E233/03_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="176" alt="03" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008GenevaServer_E233/03_thumb.jpg" width="346" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008GenevaServer_E233/03_4.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="187" alt="03" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008GenevaServer_E233/03_thumb_1.jpg" width="262" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;When “Geneva” Server does not have any identity providers configured in its policy, all claims must be generated from the Active Directory attribute store. In this case, “Geneva” Server is acting as an &lt;strong&gt;identity provider&lt;/strong&gt; because all the claims are generated from a local store. The claim rules on the target relying party determine what attributes are issued as what claims. Each rule maps an attribute in Active Directory to a claim type, and the attribute value is then issued as the claim value. &lt;/p&gt; &lt;p&gt;Adding a relying party to “Geneva” Server enables that relying party to receive tokens from “Geneva” Server. A relying party may be a locally hosted application, or it may be an external service provider. There is no difference between locally hosted applications and external service providers at run time for “Geneva” Server. At a minimum, each relying party must have an identifier and a display name associated with it. Each relying party may also have other data, including an encryption certificate, rules for issuing claims, delegation rules, and a metadata URL. Below is how it works:&lt;/p&gt; &lt;p&gt;1 - The client accesses a relying party application.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The relying party application indicates that it needs claims to authenticate the user.&lt;br /&gt;2 - The client requests and receives claims for the user from “Geneva” Server for the relying party. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This step may or may not involve an identity selector, such as Windows CardSpace.&lt;br /&gt;3 - The claims from “Geneva” Server are posted to the relying party. &lt;p&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Geneva Server as Federation Provider&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008GenevaServer_E233/02_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="224" alt="02" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008GenevaServer_E233/02_thumb.jpg" width="357" border="0" /&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008GenevaServer_E233/04_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="195" alt="04" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008GenevaServer_E233/04_thumb.jpg" width="272" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;When “Geneva” Server has identity providers configured in its policy, claims may be generated from the Active Directory attribute store or from the configured identity providers. In this case, “Geneva” Server is acting as a &lt;strong&gt;federation provider&lt;/strong&gt;. The claim rules on both the identity provider and the target relying party will determine the claims that are issued. Each identity provider rule passes through, and possibly transforms, claims that are received from an identity provider. Each relying party rule either maps an Active Directory attribute to an outgoing claim or maps a claim that was output from the identity provider policy to an outgoing claim.&lt;/p&gt; &lt;p&gt;Adding an identity provider to “Geneva” Server gives users of that identity provider access to the relying parties that are configured in “Geneva” Server. Each relying party application makes authorization decisions about a user by examining the claims that “Geneva” Server provides. “Geneva” Server uses the administrator-defined claim policy for an identity provider to determine what claims to issue about each user, based on the relying party that is involved. Here is how it works:&lt;/p&gt; &lt;p&gt;1- The client accesses a relying party application.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; The relying party application indicates that it needs claims to authenticate the user.&lt;br /&gt;2. The client requests claims for the user from “Geneva” Server for the relying party. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; “Geneva” Server indicates that it needs claims from an identity provider to authenticate the user.&lt;br /&gt;3. The client requests and receives claims for the user from the identity provider for “Geneva” Server. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; This step may or may not involve an identity selector, such as Windows CardSpace.&lt;br /&gt;4. The client receives claims for the user from “Geneva” Server for the relying party.&lt;br /&gt;5. The claims from “Geneva” Server are posted to the relying party.&lt;br /&gt;&lt;br /&gt;Currently, “Geneva” Server Beta does not support Security Assertion Markup Language (SAML) protocol identity providers. Maybe in next the CTP.  &lt;p&gt;&amp;nbsp; &lt;p&gt;Just try it and stay tuned! &lt;p&gt;Cheers, RAM from LA 
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-geneva-server.aspx&amp;amp;subject=From PDC 2008 | Geneva Server" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-geneva-server.aspx&amp;amp;t=From+PDC+2008+%7c+Geneva+Server" target="_blank" title="Submit From PDC 2008 | Geneva Server to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-geneva-server.aspx&amp;amp;title=From+PDC+2008+%7c+Geneva+Server" target="_blank" title="Submit From PDC 2008 | Geneva Server to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-geneva-server.aspx&amp;amp;phase=2" target="_blank" title="Submit From PDC 2008 | Geneva Server to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-geneva-server.aspx&amp;amp;title=From+PDC+2008+%7c+Geneva+Server" target="_blank" title="Add From PDC 2008 | Geneva Server to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=70753" width="1" height="1"&gt;</content><author><name>risman</name><uri>http://geeks.netindonesia.net/members/risman.aspx</uri></author></entry><entry><title>From PDC 2008 | Windows Azure Part 2 ...</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-windows-azure-part-2.aspx" /><id>http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-windows-azure-part-2.aspx</id><published>2008-10-28T07:51:12Z</published><updated>2008-10-28T07:51:12Z</updated><content type="html">&lt;p&gt;In this part, I assumed you already installed the required SDKs. To start cloud service project, just open Visual Studio 2008 and create new cloud service project - Web Cloud Service. Below is how it looks like:&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart2_D0C1/01_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="310" alt="01" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart2_D0C1/01_thumb.jpg" width="489" border="0" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/p&gt; &lt;p&gt;You will need SQL Server Express installed in your machine for development storage, so just make sure that your SQL Express service is started before creating new project. &lt;/p&gt; &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart2_D0C1/03_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="314" alt="03" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart2_D0C1/03_thumb.jpg" width="493" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;You need Administrator privilege to run Visual Studio. In the Solution Explorer, examine the solution structure that was created. You&amp;#39;ll see two projects, a Cloud Compute project and a standard ASP.NET project. The ASP.NET project will contain your code. The Cloud Compute project contains a reference to the ASP.NET project, as well as the service definition file (&lt;strong&gt;.csdef&lt;/strong&gt;) and service configuration file (&lt;strong&gt;.cscfg&lt;/strong&gt;). I just modified the Default.aspx page to display some custom text.&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;&amp;lt;head runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;The Web Cloud Services&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:TextBox ID=&amp;quot;myTbx&amp;quot; runat=server&amp;gt;Risman Adnan&amp;lt;/asp:TextBox&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/font&gt;  &lt;p&gt;Then press F5 to execute the service in the &lt;strong&gt;development fabric&lt;/strong&gt;. Expand the tree on the left panel to see the service deployments. A new deployment is launched each time you start the service, so you may see more than one service deployment in the tree at a time. Expand the CloudService1 node to see the web role and worker role that are running within the service. If this is the first running instance, the Service Details will probably show a service URL of &lt;a href="http://*:80"&gt;http://*:80&lt;/a&gt; and an IP Address of 127.0.0.1:80. The development fabric attempts to allocate the port specified in the service definition file, but if this port is not available, the next available port is used. Switch back to Visual Studio, and press SHIFT+F5 to stop debugging.  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart2_D0C1/04_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="368" alt="04" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart2_D0C1/04_thumb.jpg" width="491" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;So what is the development fabric?&amp;nbsp; The development fabric simulates Windows Azure fabric on our local machine so that we may run and test our service locally before deploying it to Windows Azure. The development fabric allows us to debug and fine-tune the behavior of our service before it is deployed.&amp;nbsp; The development fabric utility provides a user interface for observing and managing local service deployments. &lt;/p&gt; &lt;p&gt;Notice that both the development fabric and the Windows Azure fabric run IIS 7.0 in &lt;strong&gt;integrated mode&lt;/strong&gt;. If you are writing an ASP.NET application that accesses the request context or calls the runtime API from the Application_Start event, you should modify it to initialize in the Application_BeginRequest event instead.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart2_D0C1/05_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="355" alt="05" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart2_D0C1/05_thumb.jpg" width="490" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;A role in Windows Azure is a scalable component built with managed code. A service may run multiple instances of a role. Within the Windows Azure fabric, running instances of a role are replicated across multiple physical machines to implement all or part of the functionality of a service. The Windows Azure fabric currently supports two types of roles web and worker roles. A service may consist of a single web role, a single worker role, or one of each.&amp;nbsp; &lt;p&gt;&lt;strong&gt;Web role&lt;/strong&gt; : A web application accessible via an HTTP and/or an HTTPS endpoint. A web role is hosted in an environment designed to support a subset of ASP.NET and Windows Communication Foundation technologies.  &lt;p&gt;&lt;strong&gt;Worker role&lt;/strong&gt; : A background processing application. A worker role may communicate with storage services and with other Internet-based services. It does not expose any external endpoints. A worker role can read requests from a queue defined in the Queue storage service.  &lt;p&gt;&amp;nbsp; &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart2_D0C1/06_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="242" alt="06" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart2_D0C1/06_thumb.jpg" width="491" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;All roles can make outbound connections to Internet resources via HTTP or HTTPS and via .NET APIs for TCP/IP sockets. Only web roles may listen for incoming requests over HTTP or HTTPS. All roles may access storage services via the REST APIs. &lt;/p&gt; &lt;p&gt;The shape of a service is determined by the &lt;strong&gt;service definition file&lt;/strong&gt;. It indicates whether a service implements a web role, a worker role, or both types. For a web role, the service definition file specifies whether it exposes an HTTP endpoint or an HTTPS endpoint, or both. It also may establish configuration parameters for the service and define a local storage resource for caching purposes. The service definition can&amp;#39;t be changed while the service is running in the fabric. To change the shape of a service, we must republish the service.  &lt;p&gt;Let me show you in the next post.  &lt;p&gt;&amp;nbsp; &lt;p&gt;Stay tuned!  &lt;p&gt;RAM from PDC 2008&amp;nbsp; 
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-windows-azure-part-2.aspx&amp;amp;subject=From PDC 2008 | Windows Azure Part 2 ..." target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-windows-azure-part-2.aspx&amp;amp;t=From+PDC+2008+%7c+Windows+Azure+Part+2+..." target="_blank" title="Submit From PDC 2008 | Windows Azure Part 2 ... to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-windows-azure-part-2.aspx&amp;amp;title=From+PDC+2008+%7c+Windows+Azure+Part+2+..." target="_blank" title="Submit From PDC 2008 | Windows Azure Part 2 ... to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-windows-azure-part-2.aspx&amp;amp;phase=2" target="_blank" title="Submit From PDC 2008 | Windows Azure Part 2 ... to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-windows-azure-part-2.aspx&amp;amp;title=From+PDC+2008+%7c+Windows+Azure+Part+2+..." target="_blank" title="Add From PDC 2008 | Windows Azure Part 2 ... to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=70734" width="1" height="1"&gt;</content><author><name>risman</name><uri>http://geeks.netindonesia.net/members/risman.aspx</uri></author></entry><entry><title>From PDC 2008 | Windows Azure Part 1</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-windows-azure-part-1.aspx" /><id>http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-windows-azure-part-1.aspx</id><published>2008-10-28T03:38:55Z</published><updated>2008-10-28T03:38:55Z</updated><content type="html">&lt;p&gt;I&amp;#39;m happy to be here at PDC 2008 in LA, because I can try Windows Azure myself. The Azure™ Services Platform aligns with the Microsoft vision of Software-plus-Services and overall services strategy by offering customers, developers, and businesses a transformation in connecting devices, business, productivity, and software. In this post I want to share my experiences with you guys in Indonesia. You can download the Azure CTP by clicking link below. &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/azure/register.mspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="70" alt="01" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart1_95AE/01_3.jpg" width="481" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;What you need to get started are listed below. I will give you quick introduction what is Azure all about.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart1_95AE/04_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="176" alt="04" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart1_95AE/04_thumb.jpg" width="226" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart1_95AE/05_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="175" alt="05" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart1_95AE/05_thumb.jpg" width="226" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart1_95AE/06_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="178" alt="06" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart1_95AE/06_thumb.jpg" width="230" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart1_95AE/07_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="174" alt="07" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart1_95AE/07_thumb.jpg" width="224" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;br /&gt;After you got all of those SDKs, make sure you signed in using passport and register to get invitation code from Azure as some Services only available using invitational code&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;strong&gt;What is Azure Service Platform&lt;br /&gt;&lt;/strong&gt;The Azure™ Services Platform (Azure) is cloud services platform hosted in Microsoft data centers, which provides an operating system and a set of developer services that can be used individually or together. Azure lets developers provide their own unique customer offerings by offering the foundational components of &lt;strong&gt;compute&lt;/strong&gt;, &lt;strong&gt;storage&lt;/strong&gt;, and &lt;strong&gt;building block services&lt;/strong&gt; to author and compose applications in the cloud. This is the real implementation of cloud computing from Microsoft. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart1_95AE/03_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="221" alt="03" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/FromPDC2008WindowsAzurePart1_95AE/03_thumb.jpg" width="479" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;With Azure developers can quickly and easily create applications running in the cloud by using VS2008 and .NET Framework. Azure provides on-demand compute and storage to host, scale, and manage web and connected applications. Infrastructure management is automated with a platform that is designed for high availability and dynamic scaling to match usage needs with the option of a &lt;strong&gt;pay-as-you-go&lt;/strong&gt; pricing model. Azure provides an open, standards-based and interoperable environment with support for multiple internet protocols, including HTTP, REST, SOAP, and XML. Microsoft also offers cloud applications ready for consumption by customers such as Windows Live™, Microsoft Dynamics™, and other &lt;a href="http://www.microsoft.com/online/default.mspx"&gt;Microsoft Online Services&lt;/a&gt; for business such as Microsoft Exchange Online, &lt;a href="http://www.microsoft.com/online/office-communications-online.mspx"&gt;Microsoft Office Communication Online&lt;/a&gt;, &lt;a href="http://www.microsoft.com/online/office-live-meeting.mspx"&gt;Microsoft Office Live Meeting&lt;/a&gt; and &lt;a href="http://www.microsoft.com/online/sharepoint-online.mspx"&gt;SharePoint® Online&lt;/a&gt;. To learn more, please click links below:&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://www.microsoft.com/azure/windowsazure.mspx"&gt;Windows Azure OS&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://dev.live.com/"&gt;Live Services&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://www.microsoft.com/azure/sql.mspx"&gt;Microsoft SQL Services&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://www.microsoft.com/azure/netservices.mspx"&gt;Microsoft .NET Services&lt;/a&gt;&lt;br /&gt;- Microsoft® SharePoint® Services &amp;amp; Dynamics® CRM Services  &lt;p&gt;&lt;br /&gt;Just take a look on those links before we go deeper in part 2.&amp;nbsp; &lt;br /&gt;&lt;/p&gt; &lt;p&gt;Cheers, RAM @ LA&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-windows-azure-part-1.aspx&amp;amp;subject=From PDC 2008 | Windows Azure Part 1" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-windows-azure-part-1.aspx&amp;amp;t=From+PDC+2008+%7c+Windows+Azure+Part+1" target="_blank" title="Submit From PDC 2008 | Windows Azure Part 1 to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-windows-azure-part-1.aspx&amp;amp;title=From+PDC+2008+%7c+Windows+Azure+Part+1" target="_blank" title="Submit From PDC 2008 | Windows Azure Part 1 to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-windows-azure-part-1.aspx&amp;amp;phase=2" target="_blank" title="Submit From PDC 2008 | Windows Azure Part 1 to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/28/from-pdc-2008-windows-azure-part-1.aspx&amp;amp;title=From+PDC+2008+%7c+Windows+Azure+Part+1" target="_blank" title="Add From PDC 2008 | Windows Azure Part 1 to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=70662" width="1" height="1"&gt;</content><author><name>risman</name><uri>http://geeks.netindonesia.net/members/risman.aspx</uri></author></entry><entry><title>Part 3 : Silverlight, Expression and WMS</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/risman/archive/2008/10/07/part-3-silverlight-expression-and-wms.aspx" /><id>http://geeks.netindonesia.net/blogs/risman/archive/2008/10/07/part-3-silverlight-expression-and-wms.aspx</id><published>2008-10-07T04:46:50Z</published><updated>2008-10-07T04:46:50Z</updated><content type="html">&lt;p&gt;In &lt;a href="http://geeks.netindonesia.net/blogs/risman/archive/2008/10/04/part-1-silverlight-expression-and-wms.aspx"&gt;Part 1&lt;/a&gt;, I described the backend infrastructure of streaming media then I continued by introducing you Expression Encoder 2 in &lt;a href="http://geeks.netindonesia.net/blogs/risman/archive/2008/10/05/part-2-silverlight-expression-and-wms.aspx"&gt;Part 2&lt;/a&gt;. In this post, I have decided to go deeper on &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=9A077A3D-58CE-454C-B486-153F0578BE4A&amp;amp;displaylang=en"&gt;Expression Encoder SDK&lt;/a&gt; to give you insight what else you can do with Encoder 2, specifically to support your media publishing activities. For developers, this SDK are reusable libraries packaged into DLLs. Current version of Encoder SDK gave you only 4 DLLs under Microsoft.Expression.Encoder namespace. Features in those DLLs are comply to the following Object Model (OM).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part3SilverlightExpressionandWMS_A59A/Full%20Object%20Hierarchy_2.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="943" alt="Full Object Hierarchy" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part3SilverlightExpressionandWMS_A59A/Full%20Object%20Hierarchy_thumb.png" width="749" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Expression Encoder Object Model (OM) parallels the features exposed by the Expression Encoder UI and Encoder command-line application. It is built on top of multiple media technologies, including DShow, Silverlight, and Windows Media. The applications built on top of the Expression Encoder OM require Expression Encoder to be installed on the client computer in order to run. &lt;/p&gt; &lt;p&gt;The main objects to look for in the Expression Encoder OM diagram above are:&lt;br /&gt;- &lt;strong&gt;Job&lt;/strong&gt;. This is task object that contains MediaItem list and where the encoding process is controlled.&lt;br /&gt;- &lt;strong&gt;MediaItem&lt;/strong&gt;. The object encapsulating a media file and all the encoding options related to it.&lt;br /&gt;- &lt;strong&gt;VideoProfile&lt;/strong&gt; and &lt;strong&gt;AudioProfile&lt;/strong&gt;. These two objects represent encoding options for video and audio.&lt;br /&gt;&lt;br /&gt;Now let see a simple example:&lt;br /&gt;&lt;br /&gt;- Create a new C# console project&lt;br /&gt;- Add reference to all Expression Encoder DLLs to your project&lt;br /&gt;- Just follow the simple encoding codes below and run it. &lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;using System;&lt;br /&gt;using Microsoft.Expression.Encoder; &lt;/font&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;namespace Simple&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class Program&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void Main(string[] args)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MediaItem mediaItem = new MediaItem(@&amp;quot;D:\Video\TestVideo.wmv&amp;quot;); &lt;/font&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;// Create a job and the media item&lt;br /&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Job job = new Job();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; job.MediaItems.Add(mediaItem); &lt;/font&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;// Set up the progress callback function&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; job.EncodeProgress &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; += new EventHandler&amp;lt;EncodeProgressEventArgs&amp;gt;(OnProgress); &lt;/font&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#008000"&gt;// Set the output directory and encode.&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; job.OutputDirectory = @&amp;quot;D:\Video&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; job.Encode();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void OnProgress(object sender, EncodeProgressEventArgs e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(e.Progress);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/font&gt;  &lt;p&gt;Yes, as you guess, an encoding process took many computer resources (CPU and Memory) and processing time depends to size of the encoded video file. It took around 91-95% processors utilization to encode 45 MB video file for above codes (single thread, sequential). That of course was NOT include additional algorithm for custom encoding for instance, just plain encoding &lt;strong&gt;job.Encode()&lt;/strong&gt;. Hmmm.... &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;This is may be a good additional reason for me to buy new multi-core (quad core) ready hardware!&lt;/font&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part3SilverlightExpressionandWMS_A59A/01_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="410" alt="01" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part3SilverlightExpressionandWMS_A59A/01_thumb.jpg" width="475" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;So, what else? Encoding in command-line program is not funny. We need User Interface to facilitate media publishing with custom encoding. Well, perhaps we have a process with a content delivery network or we have some custom process that we want to implement in our own workflow (save as an encoder job file, etc.) for ongoing media encodings. We are lucky because Expression Encoder provides us a way to write &lt;strong&gt;plug-ins&lt;/strong&gt; that can be integrated to Expression Encoder. For example Zip and FTP plugins (click on the images to go to the original detail articles).&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc136758.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="225" alt="FTP" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part3SilverlightExpressionandWMS_A59A/FTP_3.jpg" width="252" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;a href="http://timheuer.com/blog/archive/2007/12/11/write-a-publishing-plugin-for-expression-encoder-silverlight.aspx"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="180" alt="ZIP" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part3SilverlightExpressionandWMS_A59A/ZIP_3.jpg" width="255" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;There are two types of plug-ins you can make with Expression encoder, Publishing and Template. &lt;strong&gt;Publishing plug-ins&lt;/strong&gt; enables us to take video and Silverlight template assets that we have created as part of an encoding job (see Part 2 article) and then do something with encoded assets. For example, we can upload the media assets by using FTP, WEBDAV, or METAWEBLOG API, publishing the asset to an asset management system or web service, or creating a data CD. &lt;strong&gt;Template plug-in&lt;/strong&gt; lets us customize template settings and interact with the job through the IPluginHost interface. The plug-in also lets us add or remove files from the template output when the template is published. &lt;br /&gt;&lt;br /&gt;Ok, this will be too long if I continue to write here. Let me split other topic into Part 4 of this series. Stay tuned!. &lt;/p&gt; &lt;p&gt;&lt;br /&gt;Hope this helps!&lt;br /&gt;&lt;br /&gt;Cheers - RAM&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/risman/archive/2008/10/07/part-3-silverlight-expression-and-wms.aspx&amp;amp;subject=Part 3 : Silverlight, Expression and WMS" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/07/part-3-silverlight-expression-and-wms.aspx&amp;amp;t=Part+3+%3a+Silverlight%2c+Expression+and+WMS" target="_blank" title="Submit Part 3 : Silverlight, Expression and WMS to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/07/part-3-silverlight-expression-and-wms.aspx&amp;amp;title=Part+3+%3a+Silverlight%2c+Expression+and+WMS" target="_blank" title="Submit Part 3 : Silverlight, Expression and WMS to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/07/part-3-silverlight-expression-and-wms.aspx&amp;amp;phase=2" target="_blank" title="Submit Part 3 : Silverlight, Expression and WMS to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/07/part-3-silverlight-expression-and-wms.aspx&amp;amp;title=Part+3+%3a+Silverlight%2c+Expression+and+WMS" target="_blank" title="Add Part 3 : Silverlight, Expression and WMS to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=65806" width="1" height="1"&gt;</content><author><name>risman</name><uri>http://geeks.netindonesia.net/members/risman.aspx</uri></author></entry><entry><title>Part 2 : Silverlight, Expression and WMS</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/risman/archive/2008/10/05/part-2-silverlight-expression-and-wms.aspx" /><id>http://geeks.netindonesia.net/blogs/risman/archive/2008/10/05/part-2-silverlight-expression-and-wms.aspx</id><published>2008-10-04T18:02:30Z</published><updated>2008-10-04T18:02:30Z</updated><content type="html">&lt;p&gt;In my previous posting (&lt;a href="http://geeks.netindonesia.net/blogs/risman/archive/2008/10/04/part-1-silverlight-expression-and-wms.aspx"&gt;part 1&lt;/a&gt;), I explained about the backend infrastructure for media files streaming using both Web Server (IIS) and WMS. I do hope you can try to install WMS too (applicable for Windows 2003) and test it using your Windows Media Player, as the simplest client, or using Test Stream from WMS. &lt;/p&gt; &lt;table cellspacing="0" cellpadding="2"&gt;  &lt;tr&gt; &lt;td&gt;&lt;font size="1"&gt;You can use CTRL-U from your Windows Media Player to get the Open URL windows. Or you can use WMS generated announcement file (WSX) to test media streaming at Server. &lt;br /&gt;&lt;/font&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/WMP01_2.jpg"&gt;&lt;font color="#333333" size="1"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="175" alt="WMP01" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/WMP01_thumb.jpg" width="288" border="0" /&gt;&lt;/font&gt;&lt;/a&gt; &lt;br /&gt;&lt;font size="1"&gt;If you get the video displayed, you can then test to see the network utilization between Web Server downloading model and streaming media. If you are curious enough, you can experiment using networking tools to really see the network protocols used by your MWS to stream media files (TCP, UDP, HTTP+TCP, Muticast)&amp;nbsp; &lt;/font&gt;&lt;/td&gt; &lt;td&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/WMP_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="370" alt="WMP" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/WMP_thumb.jpg" width="420" border="0" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt; &lt;p&gt;In this post, I will describe what inside Microsoft Expression Encoder 2, a tool for bringing your edited video project to the web for playback in Microsoft Silverlight and WMS scenarios. Expression Encoder includes many new features to improve encoding quality. I do believe that its documentation can explain you better than me, but let me give you short intro of its features. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Importing and Modifying Video &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;You can import video to Expression Encoder and make simple edits to clips directly. You can cut setup noise, mistakes, or surprises from your video either by removing sections of the video or by setting a cut and trimming the in or out point of a particular segment. &lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2"&gt;  &lt;tr&gt; &lt;td&gt;&lt;strong&gt;How to topics F1&lt;/strong&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/EE01.jpg_2.jpg"&gt; &lt;br /&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="240" alt="EE01.jpg" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/EE01.jpg_thumb.jpg" width="186" border="0" /&gt;&lt;/a&gt; &lt;/td&gt; &lt;td&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/EE02_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="337" alt="EE02" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/EE02_thumb.jpg" width="532" border="0" /&gt;&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt; &lt;p&gt;&lt;strong&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;New VC-1 Codecs &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;Expression Encoder 2 has the latest implementation of the VC-1 codecs, which means that you get better video quality and faster encoding than before. Each codec includes extensive advanced settings that enable you to refine your encoding to match your specific playback and distribution scenarios, while maintaining high quality. Live Encoding also takes advantage of these improved codecs, resulting in an enhanced live encoding experience. &lt;/p&gt; &lt;p&gt;In most common hardware and software configurations, encoding a video is the process of compressing the file to maximize quality while still enabling users who have varying playback capabilities to successfully play back the file. By using Microsoft Expression Encoder, you can encode your video and create a file that you can post on the web, distribute by Local Area Network (LAN) for high-quality playback, or play back on your Microsoft Zune device. &lt;/p&gt; &lt;table cellspacing="0" cellpadding="2"&gt;  &lt;tr&gt; &lt;td&gt; &lt;p align="left"&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/EE03_4.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="523" alt="EE03" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/EE03_thumb_1.jpg" width="325" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;/td&gt; &lt;td&gt; &lt;p align="right"&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/EE04_4.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="523" alt="EE04" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/EE04_thumb_1.jpg" width="325" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt; &lt;p&gt;When you encode your job, Expression Encoder will identify changes to the source file and only re-encode the modified sections of the file, not the whole clip, saving time and maintaining compression quality. This also works when you are &lt;strong&gt;previewing Microsoft Silverlight templates&lt;/strong&gt;. You can apply a template to your video and encode the job. If you then want to see how another template will look on your video, you can just choose another template and re-encode. Again, Expression Encoder will only re-encode the template change, not only which saves time but encourages experimentation. &lt;/p&gt; &lt;table cellspacing="0" cellpadding="2"&gt;  &lt;tr&gt; &lt;td&gt; &lt;p align="left"&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/EE06_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="411" alt="EE06" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/EE06_thumb.jpg" width="350" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;/td&gt; &lt;td&gt; &lt;p align="right"&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/EE05_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="408" alt="EE05" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/EE05_thumb.jpg" width="350" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt; &lt;p&gt;You can export any of the default Silverlight templates into &lt;strong&gt;Expression Blend 2&lt;/strong&gt; to augment them in any way. Then, when you are done, you can save them and your edited templates will appear in Expression Encoder. You can also make a separate copy of Silverlight project to enable you modify the template further. &lt;/p&gt; &lt;table cellspacing="0" cellpadding="2"&gt;  &lt;tr&gt; &lt;td&gt; &lt;p align="left"&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/EE08_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="222" alt="EE08" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/EE08_thumb.jpg" width="240" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;/td&gt; &lt;td&gt; &lt;p align="right"&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/EE10_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="308" alt="EE10" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/EE10_thumb.jpg" width="479" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt; &lt;p&gt;Before you encode, you can set the playback action of your Silverlight video, thereby controlling what happens when another user links to your video or loads it into the browser. You can specify whether the video plays automatically on download, or whether the user must first initiate playback before the video downloads and plays. &lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Essential of Encoding for Silverlight&lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;To create videos that use the rich presentation and extensive interactivity of Silverlight technology, you must encode your video using templates, which are included with Expression Encoder. These templates include graphically refined skins with attractively designed transport controls, and also components that integrate with the Silverlight client. This allows your video to use such Silverlight capabilities as captioning, rapid seeking, or script-command execution. &lt;strong&gt;If you do not use a Silverlight template&lt;/strong&gt;, Expression Encoder will create a Windows Media Video (WMV) file that can be played in various scenarios. Without a template, you must play the file by using a standard media player, such as Windows Media Player. Whether you use a template or not, Expression Encoder creates a file that is optimized for playback in the scenario that you choose.  &lt;p&gt;In Expression Encoder, encoding is a two-part process. First, you choose a profile, which contains all the encoding parameters, such as bit rate and video size. A profile defines how a video is compressed, and which method of playback is required to view it. You can use a default, pre-configured profile or you can create your own. Expression Encoder provides the Profile category (Encode panel) to set encoding parameters. Expression Encoder includes several advanced codec settings that enable you to precisely set specific parameters so that you can tailor your video to get the maximum quality playback for your target audience. &lt;br /&gt;&lt;br /&gt;If you want to explore more, Expression Encoder documentation can guide you better.  &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/EE07_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="340" alt="EE07" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part2SilverlightExpressionandWMS_C10/EE07_thumb.jpg" width="349" border="0" /&gt;&lt;/a&gt;&amp;nbsp; &lt;/p&gt; &lt;p&gt;Next, I will put some highlights from Expression Encoder 2.0 that you may need to know before practicing:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Multi-core/multiprocessor support &lt;/font&gt;&lt;br /&gt;&lt;/strong&gt;Encode quickly using the added advantage of mulitple processors.. The new VC-1 codecs support both multiple cores and multiprocessor encoding. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Animated overlays &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;With Expression Encoder, you can add animated watermarks to your videos. Import a XAML animation or a standard movie file, and Expression Encoder will embed the image onto the finished media. You can also use movie files that include alpha channels. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;High-quality preprocessing tools&lt;/font&gt; &lt;br /&gt;&lt;/strong&gt;The new audio and video preprocessing tools in Expression Encoder help ensure that you get high-quality encoded files. Using the video tools, you can remove 3:2 pulldown, and also select the best resize method for your encoded video. With the audio tools, you can both normalize and adjust the overall playback volume of your audio track. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Interactive Timeline display&lt;/font&gt; &lt;br /&gt;&lt;/strong&gt;View all your script commands in an expanded timeline. Each command is represented by its own row on the Timeline, so that you can quickly view and adjust the location and duration of each of your commands. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Object model &lt;/font&gt;&lt;br /&gt;&lt;/strong&gt;You can use the new Expression Encoder object model to control the encoding engine from your favorite .NET language. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Server-side encoding&lt;/font&gt; &lt;br /&gt;&lt;/strong&gt;You can integrate Expression Encoder into managed workflows to automate the processing of large volumes of media. &lt;br /&gt;&lt;br /&gt;I will explain more on how to use WMS streaming media together with ASP.NET Silverlight controls in my next post. Silverlight 1.0 and 2.0 can also be used with PHP application. Hopefully I can have time tomorrow to post about that in the part 3 of this series. &lt;br /&gt;&lt;/p&gt; &lt;p&gt;Hope this helps!&lt;br /&gt;&lt;/p&gt; &lt;p&gt;Cheers, RAM&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/risman/archive/2008/10/05/part-2-silverlight-expression-and-wms.aspx&amp;amp;subject=Part 2 : Silverlight, Expression and WMS" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/05/part-2-silverlight-expression-and-wms.aspx&amp;amp;t=Part+2+%3a+Silverlight%2c+Expression+and+WMS" target="_blank" title="Submit Part 2 : Silverlight, Expression and WMS to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/05/part-2-silverlight-expression-and-wms.aspx&amp;amp;title=Part+2+%3a+Silverlight%2c+Expression+and+WMS" target="_blank" title="Submit Part 2 : Silverlight, Expression and WMS to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/05/part-2-silverlight-expression-and-wms.aspx&amp;amp;phase=2" target="_blank" title="Submit Part 2 : Silverlight, Expression and WMS to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/05/part-2-silverlight-expression-and-wms.aspx&amp;amp;title=Part+2+%3a+Silverlight%2c+Expression+and+WMS" target="_blank" title="Add Part 2 : Silverlight, Expression and WMS to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=65430" width="1" height="1"&gt;</content><author><name>risman</name><uri>http://geeks.netindonesia.net/members/risman.aspx</uri></author></entry><entry><title>Part 1 : Silverlight, Expression and WMS</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/risman/archive/2008/10/04/part-1-silverlight-expression-and-wms.aspx" /><id>http://geeks.netindonesia.net/blogs/risman/archive/2008/10/04/part-1-silverlight-expression-and-wms.aspx</id><published>2008-10-04T15:52:26Z</published><updated>2008-10-04T15:52:26Z</updated><content type="html">&lt;p&gt;This post is about end-to-end scenario for digital media experience using Silverlight (SL) as UX front-end, Expression (Blend and Encoder) as tools and Windows Media Services (WMS) as back-end streaming engine. WMS is a platform for streaming audio and video contents to clients over the Internet or an intranet. Clients of WMS may be a player, such as Windows Media Player, or they may be other servers running WMS for proxy, cache, or content redistribution. In our case clients are custom Silverlight applications. Contents that WMS streams to clients can be either a live stream or a prerecorded digital media file. Interesting to try the live streaming, but we need encoding software to do that, such as Windows Media Encoder. In this post, I will focus on prerecorded digital media files. &lt;/p&gt; &lt;p&gt;Basically we can deliver digital media files to clients over a network by using one of two methods: &lt;strong&gt;Web Server Downloading&lt;/strong&gt; and &lt;strong&gt;Streaming Media&lt;/strong&gt;. The first method usually uses a Web server to deliver the audio and video data to a media player. The second method uses a separate streaming media server (like WMS) specialized to the audio/video streaming task. Let see how they are different.&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#0000ff" size="2"&gt;Web Server Download Model&lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;Web server approach is actually close to download-and-play model. Uncompressed audio and video is first compressed into a single &amp;quot;media file&amp;quot; for delivery over a specific network bandwidth such as a 28.8 kilobits per second (Kbps) modem. This media file is then placed on a standard Web server. Next, a Web page containing the media file&amp;#39;s URL is created and placed on the same Web server. This Web page, when activated, launches the client-side player and downloads the media file. Downloading requires that users copy entire files to their computers before they can play the content, which consumes both time and disk space. Downloading does not make efficient use of available bandwidth when we have many concurrent users because web server is designed to deliver content as fast as possible. When a client begins to download, all available network bandwidth is used to transfer the data quickly. As a result, other network functions may slow down or be disrupted. Why?&lt;/p&gt; &lt;p&gt;Because web server streaming uses the HTTP for communication between the server and the client. HTTP operates on top of the Transmission Control Protocol (TCP), which handles all the data transfers. Optimized for non-real-time applications such as file transfer and remote log-in, TCP&amp;#39;s goal is to maximize the data transfer rate while ensuring overall stability and high throughput of the entire network. To achieve this, using an algorithm called slow start, TCP first sends data at a low data rate, and then gradually increases the rate until the destination reports packet loss. TCP then assumes it has hit the bandwidth limit or network congestion, and returns to sending data at a low data rate, then gradually increases, repeating the process. TCP achieves reliable data transfer by re-transmitting lost packets. However, it cannot ensure that all resent packets will arrive at the client in time to be played in the media stream.  &lt;p&gt;In case you still want to use download method, IIS 7.0 &lt;a href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;g=6&amp;amp;i=1640"&gt;Media Pack Bit Rate Throttling module&lt;/a&gt; provides helpful features to reduce bandwidth costs while increasing per-server capacity for concurrent download connections. For media files, Bit Rate Throttling implements a dynamic per-file throttling capability to provide intelligent progressive downloading.&amp;nbsp; It automatically detects the encoded bit rate of each file, sending the first few seconds at the highest data rate possible, and then throttling the rest of the file download based on the encoded bit rate.&amp;nbsp; This saves network bandwidth while preserving the fast start-up experience for the end user. In addition, the Bit Rate Throttling module provides control over download rates for any file type, not just media files.&amp;nbsp; While eleven media formats are pre-defined in the module, the module is fully extensible.&amp;nbsp; This allows a developer to add support for any media file type, and allows an administrator to easily add support for any data file type. &lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#0000ff" size="2"&gt;Streaming Model&lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;In this approach, the initial steps are similar to the Web server approach, except that the compressed media file is produced and copied to a specialized streaming media server (WMS in this case). Then a Web page with a reference to the media file is placed on a Web server. In contrast to Web server downloading, the data is actively and intelligently sent to the client, meaning that it delivers the content at the exact data rate associated with the compressed audio and video streams. The server and the client stay in close touch during the delivery process, and the streaming media server can respond to any feedback from the client. While streaming media servers can use the HTTP/TCP protocols used by Web servers, they can also use specialized protocols such as the UDP to greatly improve the streaming experience. Unlike TCP, UDP is a fast, lightweight protocol without any re-transmission or data-rate management functionality. This makes UDP an ideal protocol for transmitting real-time audio and video data, which can tolerate some lost packets. As a bonus, because of the back-off policies implicit in the TCP protocol, UDP traffic gets higher priority than the TCP traffic on the Internet. And instead of the blind retransmission scheme employed by TCP, streaming media servers such as WMS use an intelligent retransmission scheme on top of UDP. Windows Media Services&amp;#39; UDP Resend feature ensures that the server only retransmits lost packets that can be sent to the client in time to get played.&lt;/p&gt; &lt;p&gt;Streaming method saves the content to a Windows Media server, and then assign the content to a publishing point. We can then provide users with access to the content by either creating an announcement file or by supplying users with the URL of the publishing point. To stream content smoothly, the bit rate of the content must be lower than the bandwidth of the network. If the bit rate is higher than the available bandwidth, the player will attempt to thin the stream so it can render the stream properly by using a process called &lt;strong&gt;stream thinning&lt;/strong&gt;. Because of this, the player may render only key frames of the video stream with audio so that the video is not in motion, just like a slide show. If the bit rate requirements greatly exceed the available bandwidth, video playback may stop altogether and only the audio portion will be played. We can minimize impact of inadequate available client bandwidth using multiple-bit-rate (MBR) content. MBR content enables the player to request a lower bit rate stream from the server.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Fast Streaming&lt;/strong&gt; provides several features that combine the advantages of streaming and downloading. The server can use the Fast Start and Advanced Fast Start features to ensure that the client can begin playing the content as quickly as possible after the stream begins. The Fast Start feature enables the player to &lt;strong&gt;download and buffer&lt;/strong&gt; a small portion of the content from the server as fast as the network will permit before the content begins to play. After the buffer has been filled on the player, the server slows down the stream until it matches the rendering speed of the player.  &lt;p&gt;For more information about Windows Media Streaming, I would like to recommend you this article, &lt;a href="http://www.microsoft.com/windows/windowsmedia/howto/articles/IntroHosting.aspx"&gt;Getting Started with Windows Media Services 9 Series&lt;/a&gt;.&lt;br /&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#0000ff" size="2"&gt;More on Windows Media Services&lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;With a WMS, the media may be streamed with the optimal UDP protocol when possible, and streamed with the TCP protocol when necessary. WMS also supports Multicast which allows a single media stream to be played simultaneously by multiple clients, drastically reducing bandwidth use (need Multicast-enabled routers). For corporate clients, WMS can deal with firewall security and ensures that all users on all networks can access all streaming media content. WMS implements its own version of the HTTP protocol to enable streaming through a firewall or proxy server while still retaining most of the advantages a WMS. &lt;/p&gt; &lt;p&gt;So before we go to the &amp;quot;how to&amp;quot; topics, I would like to summarize that WMS supports four different protocol configurations, each offering specific benefits, &lt;strong&gt;UDP&lt;/strong&gt;, &lt;strong&gt;TCP&lt;/strong&gt;, &lt;strong&gt;HTTP+TCP&lt;/strong&gt; and &lt;strong&gt;Multicast&lt;/strong&gt;. The WMS will automatically switch to the appropriate protocol so&lt;strong&gt; no client-side configuration is necessary&lt;/strong&gt;. The server will initially attempt to transmit files using the optimal UDP or Multicast protocols. If unable, the server will then attempt to send first via the raw TCP protocol, then via TCP with HTTP-based control. &lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;Installing WMS on Windows Server 2008&lt;br /&gt;&lt;/strong&gt;&lt;/font&gt;I am using Windows Server 2008 and &lt;a href="http://support.microsoft.com/kb/934518"&gt;followed this guideline&lt;/a&gt;. Everything went well. To obtain the new features that are available in WMS for Windows Server 2008, first, we must get and then run the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=9CCF6312-723B-4577-BE58-7CAAB2E1C5B7&amp;amp;amp;displaylang=en"&gt;Microsoft Update Standalone Package (MSU) file for the appropriate Streaming Media Services role&lt;/a&gt;. These new features include the built-in Cache/Proxy plug-in. WMS can be installed in Full and Server Core version of Windows 2008. After installed the MSU, just add Streaming Media Services role in your Server.&lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/SilverlightExpressionandWindowsMediaServ_B240/ServerRole_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="606" alt="ServerRole" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/SilverlightExpressionandWindowsMediaServ_B240/ServerRole_thumb.jpg" width="736" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I have installed WMS in my new 64bit laptop (4GB RAM, Dual Core) and it runs well so far.&amp;nbsp; A WMS Server instance has many properties that can be configured easily using the a very intuitive MMC, such as Authorization, Logging, Event Notification, Authentication, Cache/Proxy, Protocols and Limits.&lt;/p&gt; &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/SilverlightExpressionandWindowsMediaServ_B240/WMS03_4.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="279" alt="WMS03" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/SilverlightExpressionandWindowsMediaServ_B240/WMS03_thumb_1.jpg" width="742" border="0" /&gt;&lt;/a&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/SilverlightExpressionandWindowsMediaServ_B240/WMS04_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="244" alt="WMS04" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/SilverlightExpressionandWindowsMediaServ_B240/WMS04_thumb.jpg" width="742" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/SilverlightExpressionandWindowsMediaServ_B240/WMS05_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="244" alt="WMS05" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/SilverlightExpressionandWindowsMediaServ_B240/WMS05_thumb.jpg" width="742" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Once you got familiar with the WMS MMC (dont forget to read WMS help file), you can start to create publishing point. WMS uses publishing point to translate client requests for content into physical path on the server hosting the content. After a client successfully connects to a publishing point, WMS manages the connection and stream the content. WMS includes two types of publishing points : &lt;strong&gt;On-Demand&lt;/strong&gt; and &lt;strong&gt;Broadcast&lt;/strong&gt;. Both types can be configured to deliver a stream from one of several types of sources, such as a file, a playlist, or a live stream from an encoder. One WMS instance can be configured to run multiple publishing points, hosting a combination of on-demand and broadcast contents. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;On-Demand&lt;/strong&gt; publishing point is best suited for scenarios in which you want users to be able to control playback of the content that is being streamed. This type of publishing point is most often used to host content sourced from files, playlists, or directories. When a client connects to the publishing point, the content starts at the beginning and the end-user can use the playback controls on a player to pause, fast-forward, rewind, skip between items in a playlist, or stop. An on-demand publishing point streams content only when a client is connected to receive the stream. Content streamed from an on-demand publishing point is always delivered as a &lt;strong&gt;unicast stream&lt;/strong&gt;, which means that the server maintains a separate connection with each client.  &lt;p&gt;&lt;strong&gt;Broadcast&lt;/strong&gt; publishing point is best suited for scenarios in which you want to create an experience similar to viewing a television program—the content is controlled and streamed at the point of origin or the server. This type of publishing point is most often used to deliver live streams from encoders, remote servers, or other broadcast publishing points. When a client connects to a broadcast publishing point, the client is joining a broadcast that is already underway. For example, if a company-wide meeting is broadcast at 10:00 A.M., clients connecting at 10:18 A.M. have missed the first 18 minutes of the meeting. A client can start and stop the stream, but cannot pause, fast-forward, rewind, or skip.  &lt;p&gt;Typically, a broadcast publishing point begins streaming when it is started and then continues until it is stopped or the content finishes. However, you can configure a broadcast publishing point to start and run automatically only if one or more clients are connected. By doing so, network and server resources are saved when no clients are connected. You can also configure a broadcast publishing point to start automatically when a WMS is started. You can deliver content from a broadcast publishing point as either a &lt;strong&gt;unicast&lt;/strong&gt; or &lt;strong&gt;multicast stream&lt;/strong&gt;.  &lt;p&gt;&lt;br /&gt;To create a publishing point, just follow the wizard provided by WMS MMC. It is very easy to do and WMS also provides web based management for publishing point provisioning.&lt;/p&gt; &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/SilverlightExpressionandWindowsMediaServ_B240/WMS_6.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="449" alt="WMS" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/SilverlightExpressionandWindowsMediaServ_B240/WMS_thumb_2.jpg" width="742" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;New Business - Hosting WMS&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;I hope if some folks from web hosters can read this post and think about new business for streaming media hosting using Microsoft SPLA (Service Provider License Agreement). In typical scenario, WMS can be separated from Web Servers and the web hoster can offer to customers streaming facilities of uploaded contents. Or in other scenario, web hosters can also provide File Server and live Encoder for live streaming or broadcasting like the last Olympic. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/SilverlightExpressionandWindowsMediaServ_B240/Scenario01_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="236" alt="Scenario01" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/SilverlightExpressionandWindowsMediaServ_B240/Scenario01_thumb.jpg" width="372" border="0" /&gt;&lt;/a&gt; &lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/SilverlightExpressionandWindowsMediaServ_B240/Scenario02_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="264" alt="Scenario02" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/SilverlightExpressionandWindowsMediaServ_B240/Scenario02_thumb.jpg" width="329" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;I will ask my partner-in-crime Mr. Kunto Baiquni to test it in hosting environment. In part 2 of this post, I will explain how you can manipulate media files using Expression Encoder and consume the WMS published content from Silverlight application. Just stay tuned!.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Hope this helps.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Ciao - RAM&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/risman/archive/2008/10/04/part-1-silverlight-expression-and-wms.aspx&amp;amp;subject=Part 1 : Silverlight, Expression and WMS" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/04/part-1-silverlight-expression-and-wms.aspx&amp;amp;t=Part+1+%3a+Silverlight%2c+Expression+and+WMS" target="_blank" title="Submit Part 1 : Silverlight, Expression and WMS to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/04/part-1-silverlight-expression-and-wms.aspx&amp;amp;title=Part+1+%3a+Silverlight%2c+Expression+and+WMS" target="_blank" title="Submit Part 1 : Silverlight, Expression and WMS to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/04/part-1-silverlight-expression-and-wms.aspx&amp;amp;phase=2" target="_blank" title="Submit Part 1 : Silverlight, Expression and WMS to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/risman/archive/2008/10/04/part-1-silverlight-expression-and-wms.aspx&amp;amp;title=Part+1+%3a+Silverlight%2c+Expression+and+WMS" target="_blank" title="Add Part 1 : Silverlight, Expression and WMS to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=65413" width="1" height="1"&gt;</content><author><name>risman</name><uri>http://geeks.netindonesia.net/members/risman.aspx</uri></author></entry><entry><title>PHP Developer Day</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/risman/archive/2008/09/22/php-developer-day.aspx" /><id>http://geeks.netindonesia.net/blogs/risman/archive/2008/09/22/php-developer-day.aspx</id><published>2008-09-22T16:14:02Z</published><updated>2008-09-22T16:14:02Z</updated><content type="html">&lt;p&gt;I hope you already get the invitation for today event, if not (and you want to come) just go show. We can have fasting break together there. In my 45 minutes session, I will talk about 3 topics: &lt;/p&gt; &lt;p&gt;- &lt;a href="http://www.codeplex.com/sqlphp"&gt;PHPSQL&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : PHP extension for SQL Server 2005/2008 Driver &lt;br /&gt;- &lt;a href="http://dev.live.com"&gt;PHP4Live&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : PHP wrapper classes for Windows Live Authentication (Auth Service in Cloud)&lt;br /&gt;- &lt;a href="http://framework.zend.com/manual/en/zend.infocard.html"&gt;Zend InfoCard&lt;/a&gt;&amp;nbsp; : Zend PHP wrapper classes for InfoCard (Identity Service in Cloud)&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/PHPDeveloperDay_9A/PHP_2.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="498" alt="PHP" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/PHPDeveloperDay_9A/PHP_thumb.jpg" width="400" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Hope to see you there! My session will be around fasting break time (*huh!). &lt;br /&gt;&lt;/p&gt; &lt;p&gt;Cheers - RAM &lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/risman/archive/2008/09/22/php-developer-day.aspx&amp;amp;subject=PHP Developer Day" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/risman/archive/2008/09/22/php-developer-day.aspx&amp;amp;t=PHP+Developer+Day" target="_blank" title="Submit PHP Developer Day to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/09/22/php-developer-day.aspx&amp;amp;title=PHP+Developer+Day" target="_blank" title="Submit PHP Developer Day to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/09/22/php-developer-day.aspx&amp;amp;phase=2" target="_blank" title="Submit PHP Developer Day to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/risman/archive/2008/09/22/php-developer-day.aspx&amp;amp;title=PHP+Developer+Day" target="_blank" title="Add PHP Developer Day to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=63325" width="1" height="1"&gt;</content><author><name>risman</name><uri>http://geeks.netindonesia.net/members/risman.aspx</uri></author></entry><entry><title>Introducing kUfI</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/risman/archive/2008/08/09/introducing-kufi.aspx" /><id>http://geeks.netindonesia.net/blogs/risman/archive/2008/08/09/introducing-kufi.aspx</id><published>2008-08-09T06:11:00Z</published><updated>2008-08-09T06:11:00Z</updated><content type="html">&lt;p&gt;Yesterday, we officially launched &lt;a href="http://www.kucingfisika.com/"&gt;KucingFisika&lt;/a&gt; (kUfI), August 8, 2008 (&lt;b&gt;08/08/08 08:08:08&lt;/b&gt;), physics and scientific computing community for Indonesia. It was inspired by &lt;b&gt;Schrodinger Cat&lt;/b&gt; paradox. kUfI will bring fun for physics students by showing simple &lt;b&gt;physics experiments&lt;/b&gt; and also aim to focus on &lt;b&gt;scientific computing&lt;/b&gt;. &lt;a href="http://www.detikinet.com/read/2008/08/08/113402/985136/404/kucingfisika-belajar-fisika-itu-menyenangkan"&gt;See kUfI announcement from Detikinet here&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Please visit kUfI and join me to congratulate &lt;a href="http://kucingfisika.com/blogs/staff/archive/2008/08/06/staff-kucingfisika-com.aspx"&gt;the team&lt;/a&gt; who has developed &lt;b&gt;kUfI&lt;/b&gt; from a small LAB at University of Indonesia. This ambitious team will create &lt;b&gt;1000&lt;/b&gt; videos and screencasts for physics and scientific computing educations in the next one year. Special thanks to &lt;b&gt;Sagi Arsyad&lt;/b&gt;, &lt;b&gt;Ridi Ferdiana&lt;/b&gt; and &lt;b&gt;Nicolas Saydena&lt;/b&gt;, all my brilliant students who involved in this project. We made a history on &lt;b&gt;08/08/08 08:08:08&lt;/b&gt;.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ciao - RAM&lt;/b&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/risman/archive/2008/08/09/introducing-kufi.aspx&amp;amp;subject=Introducing kUfI" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/risman/archive/2008/08/09/introducing-kufi.aspx&amp;amp;t=Introducing+kUfI" target="_blank" title="Submit Introducing kUfI to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/08/09/introducing-kufi.aspx&amp;amp;title=Introducing+kUfI" target="_blank" title="Submit Introducing kUfI to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/08/09/introducing-kufi.aspx&amp;amp;phase=2" target="_blank" title="Submit Introducing kUfI to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/risman/archive/2008/08/09/introducing-kufi.aspx&amp;amp;title=Introducing+kUfI" target="_blank" title="Add Introducing kUfI to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=62834" width="1" height="1"&gt;</content><author><name>risman</name><uri>http://geeks.netindonesia.net/members/risman.aspx</uri></author></entry><entry><title>Developer Idol 2008 - Winner Announcement</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/risman/archive/2008/08/06/developer-idol-2008-winner-announcement.aspx" /><id>http://geeks.netindonesia.net/blogs/risman/archive/2008/08/06/developer-idol-2008-winner-announcement.aspx</id><published>2008-08-06T07:57:00Z</published><updated>2008-08-06T07:57:00Z</updated><content type="html">&lt;p&gt;I have announced &lt;a href="http://geeks.netindonesia.net/blogs/risman/archive/2008/03/18/developer-idol-2008-competition.aspx"&gt;this competition&lt;/a&gt; on March 18, 2008 through my blog post and PCMedia magazine. I also has published our &lt;a href="http://geeks.netindonesia.net/blogs/risman/archive/2008/03/23/net-developer-idol-2008.aspx"&gt;judgement criteria&lt;/a&gt; for all submitted projects. And today, I would like to announce the winners of &lt;strong&gt;&lt;font color="#0000ff"&gt;Developer Idol 2008&lt;/font&gt; &lt;/strong&gt;! &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;1st Winner&lt;/font&gt; &lt;br /&gt;&lt;/strong&gt;Project Name&amp;nbsp; : &lt;strong&gt;&lt;font color="#0000ff"&gt;LibraLINQ&lt;/font&gt;&lt;/strong&gt; &lt;br /&gt;Project Doc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : &lt;a href="http://geeks.netindonesia.net/blogs/wely/archive/2008/06/23/libralinq-documentation-part-1-bisnis-proses-libralinq.aspx"&gt;Part 1&lt;/a&gt;, &lt;a href="http://geeks.netindonesia.net/blogs/wely/archive/2008/06/23/libralinq-documentation-part-2-introduction-and-architecture.aspx"&gt;Part 2&lt;/a&gt;, &lt;a href="http://geeks.netindonesia.net/blogs/wely/archive/2008/06/23/libralinq-documentation-part-3-sisfo-perpus-win-application.aspx"&gt;Part 3&lt;/a&gt;, &lt;a href="http://geeks.netindonesia.net/blogs/wely/archive/2008/06/23/libralinq-documentation-part-4-web-portal-application.aspx"&gt;Part 4&lt;/a&gt;, &lt;a href="http://geeks.netindonesia.net/blogs/wely/archive/2008/06/23/libralinq-documentation-part-5-technical-view-of-libralinq.aspx"&gt;Part 5&lt;/a&gt;&lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/DeveloperIdol2008WinnerAnnouncement_D258/1st_2.jpg"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" border="0" alt="1st" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/DeveloperIdol2008WinnerAnnouncement_D258/1st_thumb.jpg" width="401" height="284" /&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;2nd Winner&lt;/font&gt;&lt;br /&gt;&lt;/strong&gt;Project Name&amp;nbsp; : &lt;strong&gt;&lt;font color="#0000ff"&gt;Perpustakaan.NET&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Project Info&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : &lt;a href="http://geeks.netindonesia.net/files/folders/net_developer_idol_2008_tutorial/entry61672.aspx"&gt;Download here&lt;/a&gt;&lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/DeveloperIdol2008WinnerAnnouncement_D258/2nd_2.jpg"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" border="0" alt="2nd" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/DeveloperIdol2008WinnerAnnouncement_D258/2nd_thumb.jpg" width="401" height="284" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;3rd Winner&lt;/font&gt;&lt;/strong&gt; &lt;br /&gt;Project Name&amp;nbsp; : &lt;strong&gt;&lt;font color="#0000ff"&gt;Celestial Being&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;Project Info&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : &lt;a href="http://sagiarsyad.com/upload/Celestial_Being.pptx"&gt;Presentation&lt;/a&gt;, &lt;a href="http://sagiarsyad.com/upload/Celestial_Being_%5bSA%5d.avi"&gt;Demos&lt;/a&gt;, &lt;a href="http://sagiarsyad.com/private/CelestialBeing.zip"&gt;Codes&lt;/a&gt;&lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/DeveloperIdol2008WinnerAnnouncement_D258/3rd_2.jpg"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" border="0" alt="3rd" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/DeveloperIdol2008WinnerAnnouncement_D258/3rd_thumb.jpg" width="399" height="283" /&gt;&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;Each winner will get:&lt;/strong&gt;&lt;br /&gt;&lt;/font&gt;- Certificate from Microsoft Indonesia&lt;br /&gt;- 1 week internship with my team to complete/enhance their project&lt;br /&gt;- PC Media voucher for 1 year&lt;br /&gt;- External disk 320 GB&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Wely as the 1st winner for 2008 will get a trip to Microsoft Technology Center in Bangalore, India. He is also joining Microsoft Developer and Platform Group team as Developer Evangelist!&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;Please join me to congratulate them and see you as the next Developer Idol!!!&lt;br /&gt;&lt;br /&gt;Ciao - RAM &lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/risman/archive/2008/08/06/developer-idol-2008-winner-announcement.aspx&amp;amp;subject=Developer Idol 2008 - Winner Announcement" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/risman/archive/2008/08/06/developer-idol-2008-winner-announcement.aspx&amp;amp;t=Developer+Idol+2008+-+Winner+Announcement" target="_blank" title="Submit Developer Idol 2008 - Winner Announcement to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/08/06/developer-idol-2008-winner-announcement.aspx&amp;amp;title=Developer+Idol+2008+-+Winner+Announcement" target="_blank" title="Submit Developer Idol 2008 - Winner Announcement to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/08/06/developer-idol-2008-winner-announcement.aspx&amp;amp;phase=2" target="_blank" title="Submit Developer Idol 2008 - Winner Announcement to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/risman/archive/2008/08/06/developer-idol-2008-winner-announcement.aspx&amp;amp;title=Developer+Idol+2008+-+Winner+Announcement" target="_blank" title="Add Developer Idol 2008 - Winner Announcement to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=61679" width="1" height="1"&gt;</content><author><name>risman</name><uri>http://geeks.netindonesia.net/members/risman.aspx</uri></author></entry><entry><title>Midori - Cloud Computing OS</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/risman/archive/2008/08/01/midori-cloud-computing-os.aspx" /><id>http://geeks.netindonesia.net/blogs/risman/archive/2008/08/01/midori-cloud-computing-os.aspx</id><published>2008-08-01T06:03:00Z</published><updated>2008-08-01T06:03:00Z</updated><content type="html">&lt;p&gt;New OS will be an entirely new design, built from the ground up. Microsoft has announced it, code named, &lt;a href="http://www.dailytech.com/article.aspx?newsid=12542"&gt;Midori&lt;/a&gt; that will be released sometime post-2010. &lt;a class="" href="http://en.wikipedia.org/wiki/Midori_%28operating_system%29"&gt;Midori OS&lt;/a&gt; is based on Singularity and designed for Cloud computing -- or the movement to shift hardware and software, particularly storage, out of home PCs and into computing clusters. Cloud computing is gaining significant momentum and attention huh!. Read more here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dailytech.com/article.aspx?newsid=12542"&gt;Microsoft Details &amp;quot;Midori&amp;quot; Cloud Computing OS&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.sdtimes.com/MICROSOFT_S_PLANS_FOR_POST_WINDOWS_OS_REVEALED/About_CLOUDCOMPUTING_and_MOBILEDEVELOPMENT_and_NET_and_SOASAAS_and_SOFTWAREDEVELOPMENT_and_WINDOWS_and_MICROSOFT/32627"&gt;Microsoft&amp;#39;s plans for post-Windows OS revealed&lt;/a&gt;&lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/archive/2008/03/14/my-first-look-on-singularity.aspx"&gt;My First Look on Singularity&lt;/a&gt;&lt;br /&gt;&lt;a class="" href="http://blogs.zdnet.com/microsoft/?p=1466"&gt;Goodbye, XP. Hello, Midori&lt;/a&gt;&lt;br /&gt;&lt;a class="" href="http://news.softpedia.com/news/Life-After-Windows-Microsoft-Midori-Operating-System-88910.shtml"&gt;Life After Windows - Microsoft Midori Operating System&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you are interesting in OS stuff, you can download Singularity from CodePlex and play with its codes and compiler (Bartok). &lt;br /&gt;&lt;br /&gt;Enjoy!&lt;br /&gt;&lt;br /&gt;Ciao - RAM&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/risman/archive/2008/08/01/midori-cloud-computing-os.aspx&amp;amp;subject=Midori - Cloud Computing OS" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/risman/archive/2008/08/01/midori-cloud-computing-os.aspx&amp;amp;t=Midori+-+Cloud+Computing+OS" target="_blank" title="Submit Midori - Cloud Computing OS to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/08/01/midori-cloud-computing-os.aspx&amp;amp;title=Midori+-+Cloud+Computing+OS" target="_blank" title="Submit Midori - Cloud Computing OS to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/risman/archive/2008/08/01/midori-cloud-computing-os.aspx&amp;amp;phase=2" target="_blank" title="Submit Midori - Cloud Computing OS to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/risman/archive/2008/08/01/midori-cloud-computing-os.aspx&amp;amp;title=Midori+-+Cloud+Computing+OS" target="_blank" title="Add Midori - Cloud Computing OS to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=60461" width="1" height="1"&gt;</content><author><name>risman</name><uri>http://geeks.netindonesia.net/members/risman.aspx</uri></author></entry><entry><title>PHP4Live - PHP SOAP Win32 Build Environment</title><link rel="alternate" type="text/html" href="http://geeks.netindonesia.net/blogs/risman/archive/2008/07/31/php4live-php-soap-win32-build-environment.aspx" /><id>http://geeks.netindonesia.net/blogs/risman/archive/2008/07/31/php4live-php-soap-win32-build-environment.aspx</id><published>2008-07-30T18:42:00Z</published><updated>2008-07-30T18:42:00Z</updated><content type="html">&lt;p&gt;Hacking PHP extension on Windows is &amp;quot;little bit&amp;quot; harder. I had a good challenge when trying to make it works on my &lt;strong&gt;Vista machine&lt;/strong&gt; using &lt;strong&gt;VC++ 2008 Express &lt;/strong&gt;(and &lt;strong&gt;Windows Vista SDK&lt;/strong&gt;) for our &lt;strong&gt;PHP4Live&lt;/strong&gt; project. I called Pak Tahir and he told me that easier to use Cygwin DLL, but again, my &lt;strong&gt;boldness&lt;/strong&gt; drove me nuts!. I want to prove that Vista can do that well. Let me share with you (in this long post) to avoid you from doing stupid thing in around 10 hours! &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font color="#800000"&gt;PHP4Live Overview&lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;In our PHP4Live project we want to be able to customize PHP SOAP extension as we want to embed Windows Live ID web and delegated authentication mechanisms. The plan is to natively link Windows Live (WL) Web Services and expose its APIs as PHP 5 user-space scripts, means that we will make PHP extension for Windows Live. This type of extension can bridge the gap between WL Services APIs and the PHP core then seamlessly increase usability of WL Service APIs among PHP developers (hopefully). Beside of usability reason, other motivation for PHP Extension for Window is the sheer need for speed. PHP script code has to be tokenized, compiled, and stepped through in PHP VM environment, which can never be as fast as native code. Certain utilities (known as Opcode Caches) can allow scripts to skip the tokenization and compilation step on repeated execution, but they can never speed up the execution step. By translating it to C code and compile it as PHP extension DLL, the maintainer sacrifices some of the ease of design that makes PHP Extension for WL more powerful. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font color="#800000"&gt;PHP SOAP Extension&lt;/font&gt;&lt;br /&gt;&lt;/strong&gt;PHP SOAP inside the PHP distribution is an &amp;quot;experimental&amp;quot; extension that can be used to write SOAP (1.1, 1.2 and WSDL 1.1 specs) Server and Client. It is not complete like WSF/PHP from &lt;a href="http://www.wso2.org/"&gt;WSO2&lt;/a&gt;, but I was thinking this is pretty simple as our PHP4Live base code and I want to prepare build environment for it. So I took the code from PHP source ext/soap, then I moved it to my working directory in &lt;strong&gt;C:/Work/PHP-SOAP&lt;/strong&gt;. I clicked the dsw (VC++ 6.0 based) and followed VC++ 2008 migration wizard successfully. Then I had:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part3CompilingPHPSOAPExtension_DD75/01_2.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" border="0" alt="01" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part3CompilingPHPSOAPExtension_DD75/01_thumb.jpg" width="186" height="282" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;First compilation, I got around 100 warnings and 50 error messages. I thought I can fix that within 3 hours, but thing was getting worst!. Why? Because to compile PHP SOAP I need the following libraries:&lt;br /&gt;&lt;br /&gt;- &lt;strong&gt;&lt;font color="#008000"&gt;odbc32.lib&lt;/font&gt;&lt;br /&gt;&lt;/strong&gt;- &lt;strong&gt;&lt;font color="#008000"&gt;odbccp32.lib&lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;- &lt;strong&gt;&lt;font color="#008000"&gt;wsock32.lib&lt;/font&gt;&lt;br /&gt;&lt;/strong&gt;- &lt;strong&gt;&lt;font color="#0000ff"&gt;libxml2.lib&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/strong&gt;&lt;br /&gt;- &lt;strong&gt;&lt;font color="#ff0000"&gt;resolv.lib&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;/strong&gt;- &lt;strong&gt;&lt;font color="#ff0000"&gt;php5ts_debug.lib&lt;/font&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;All green color libraries are coming with Windows Vista SDKs and the blue one is the GNOME XML Library, that maintained by &lt;strong&gt;&lt;font color="#0000ff"&gt;Igor Zlatkovic&lt;/font&gt;&lt;/strong&gt;. You can download Libxml 2.6.32 from &lt;a href="http://www.zlatkovic.com/pub/libxml/"&gt;Igor website&lt;/a&gt; or from &lt;a href="http://xmlsoft.org/sources/win32/"&gt;XMLSoft&lt;/a&gt;. My biggest problem was &lt;strong&gt;resolv.lib&lt;/strong&gt; and &lt;strong&gt;php5ts_debug.lib, &lt;/strong&gt;because I had to compile it directly from PHP source codes. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;&lt;font color="#800000"&gt;Building PHP from Source &lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;This my step-by-step quick-start guide to build PHP using Windows Vista and VC++ 2008 Express edition. First, create &lt;br /&gt;&lt;br /&gt;1. Download and Install &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=E6E1C3DF-A74F-4207-8586-711EBE331CDC"&gt;Windows SDK for Windows Server 2008 and .NET Framework 3.5&lt;/a&gt;&lt;br /&gt;2. Copy C:\Program Files\Microsoft SDKs\Windows\v6.1\Include\WinResrc.h &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; to the same directory then rename it as WinRes.h.&lt;br /&gt;3. Create the directory C:\work. &lt;br /&gt;4. Download &lt;a href="http://www.php.net/extra/win32build.zip"&gt;Windows build tools&lt;/a&gt; and unzip the contents into C:\work. &lt;br /&gt;5. Create the directory C:\usr\local\lib. Copy the C:\work\win32build\bin\&lt;strong&gt;bison.simple&lt;/strong&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; into the new directory. &lt;br /&gt;6. Download &lt;a href="http://www.php.net/extra/bindlib_w32.zip"&gt;Windows DNS resolver library&lt;/a&gt; and unzip into C:\work. &lt;br /&gt;7. Open C:\work\bindlib_w32\bindlib.dsw, follow migration wizard. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Choose Debug or Release configuration, then Build =&amp;gt; Build Solution.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Make sure you have set the Additional Include Directories like below:&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part3CompilingPHPSOAPExtension_DD75/05_4.jpg"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" border="0" alt="05" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part3CompilingPHPSOAPExtension_DD75/05_thumb_1.jpg" width="428" height="128" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;8. Get copy of the &lt;a href="http://www.php.net/"&gt;PHP source&lt;/a&gt; and extract it into the C:\work directory, I use PHP 5.2.6.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; At this point, that directory should look something like this: &lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part3CompilingPHPSOAPExtension_DD75/06_2.jpg"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" border="0" alt="06" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part3CompilingPHPSOAPExtension_DD75/06_thumb.jpg" width="161" height="194" /&gt;&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; Note : As we will need iconv library, please download from &lt;a href="http://xmlsoft.org/sources/win32/"&gt;Igor website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;9. Open Visual Studio 2008 Command Prompt and execute the following command:&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;&lt;font size="1"&gt;&lt;strong&gt;C:\Program Files\Microsoft Visual Studio 9.0\VC&amp;gt; set &amp;quot;PATH=C:\work\win32build\bin;%PATH%&amp;quot;&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;10. Go to PHP-5-2-6 directory and run : &lt;font color="#0000ff"&gt;cscript /nologo win32\build\buildconf.js&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;11. Run : &lt;font color="#0000ff"&gt;cscript /nologo configure.js --disable-all --enable-cli --enable-cgi &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --enable-object-out-dir=.. --disable-ipv6. &lt;br /&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; To enable debugging, add --enable-debug to the end. &lt;br /&gt;&lt;br /&gt;12. Run : &lt;strong&gt;&lt;font color="#0000ff"&gt;nmake &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If all went well, from step #7 you will get &lt;strong&gt;&lt;font color="#ff0000"&gt;resolv.lib&lt;/font&gt;&lt;/strong&gt; in bindlib project debug folder and from step #12 you will get &lt;strong&gt;&lt;font color="#ff0000"&gt;php5ts_debug.lib&lt;/font&gt;&lt;/strong&gt; in Debug_TS or Release_TS folder. Also, it means you are ready to compile PHP SOAP. &lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;&lt;font color="#800000"&gt;PHP SOAP Build Environment&lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;Ok lets start. First, you have to configure your VCE &amp;quot;Additional Include Directories&amp;quot; under C/C++ option to make use all header files before doing the compilation, here is my configuration:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part3CompilingPHPSOAPExtension_DD75/02_4.jpg"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" border="0" alt="02" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part3CompilingPHPSOAPExtension_DD75/02_thumb_1.jpg" width="304" height="354" /&gt;&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;After you set the include directories, now you have to set the &amp;quot;additional library directories&amp;quot; under linker options for linking purpose. Below is how it looks like. There is Windows SDK and LIBXML 2.6.32+ lib locations. Make sure you put C:\Work\Debug_TS where &lt;strong&gt;&lt;font color="#ff0000"&gt;php5ts_debug.lib&lt;/font&gt;&lt;/strong&gt; located. Also C:\Work\bindlib_w32\Debug where &lt;strong&gt;&lt;font color="#ff0000"&gt;resolv.lib&lt;/font&gt;&lt;/strong&gt; located.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part3CompilingPHPSOAPExtension_DD75/04_4.jpg"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" border="0" alt="04" src="http://geeks.netindonesia.net/blogs/risman/WindowsLiveWriter/Part3CompilingPHPSOAPExtension_DD75/04_thumb_1.jpg" width="307" height="326" /&gt;&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I believe you still get some error messages if you compile PHP SOAP, but don&amp;#39;t be panic, error messages are bonuses for us (image if there the error has no message). If the error points you to system header files stat.inl and utime.inl, I know how to fix it. &lt;/p&gt;
&lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;Error 3 error C2466: cannot allocate an array of constant size 0&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;/strong&gt;c:\Program Files\Microsoft Visual Studio 9.0\VC\include\sys\stat.inl&amp;nbsp;&amp;nbsp;&amp;nbsp; 44&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;Error 6 error C2466: cannot allocate an array of constant size 0&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;/strong&gt;c:\Program Files\Microsoft Visual Studio 9.0\VC\include\sys\utime.inl&amp;nbsp;&amp;nbsp;&amp;nbsp; 39&lt;br /&gt;&lt;br /&gt;&lt;font color="#000000"&gt;Just add &lt;strong&gt;&lt;font color="#0000ff"&gt;_US