<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Net Data Design, LLC Blog</title>
	<atom:link href="http://blog.nddllc.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.nddllc.com</link>
	<description>Software and Database Development Blog</description>
	<lastBuildDate>Thu, 04 Mar 2010 14:33:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>IIS 7.5 AppPool Identities</title>
		<link>http://blog.nddllc.com/2010/03/04/iis-7-5-apppool-identities/</link>
		<comments>http://blog.nddllc.com/2010/03/04/iis-7-5-apppool-identities/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 12:03:27 +0000</pubDate>
		<dc:creator>Chris Smith</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[AppPool Identity]]></category>
		<category><![CDATA[IIS 7.5]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://blog.nddllc.com/?p=145</guid>
		<description><![CDATA[Windows 7 and Windows Server 2008 R2 ship with IIS 7.5. It&#8217;s called Application Pool Identities. Application Pool Identities allows you to run Application Pools under an unique account without having to create and manage domain or local accounts. The name of the Application Pool account corresponds to the name of the Application Pool. The [...]]]></description>
			<content:encoded><![CDATA[<p>Windows 7 and Windows Server 2008 R2 ship with IIS 7.5. It&#8217;s called Application Pool Identities. Application Pool Identities allows you to run Application Pools under an unique account without having to create and manage domain or local accounts. The name of the Application Pool account corresponds to the name of the Application Pool. The image below shows an IIS worker process (w3wp.exe) running as the DefaultAppPool identity.</p>
<div id="attachment_146" class="wp-caption aligncenter" style="width: 408px"><a href="http://blog.nddllc.com/wp-content/uploads/2010/03/AppPool01.png"><img class="size-full wp-image-146" title="AppPool01" src="http://blog.nddllc.com/wp-content/uploads/2010/03/AppPool01.png" alt="AppPool Identity Worker Process" width="398" height="185" /></a><p class="wp-caption-text">Task Manager - Worker Process</p></div>
<h3>Application Pool Identity Accounts</h3>
<p>Worker processes in IIS 6 and 7 run as NETWORKSERVICE by default. NETWORKSERVICE is a built-in Windows identity. It doesn&#8217;t require a password and it has only user privileges, i.e. it is relatively low-privileged. Running as a low-privileged account is a good security practice because then a software bug can&#8217;t be used by a malicious user to take over the whole system.</p>
<p>The problem is however that over time more and more Windows system services started to run as NETWORKSERVICE and services running as NETWORKSERVICE can tamper with other services running under the same identity. Because IIS worker processes run third-party code by default (Classic ASP, ASP.NET, PHP code) it was time to isolate IIS worker processes from other Windows system services and run IIS worker processes under unique identities. The Windows operating system provides a feature called &#8220;Virtual Accounts&#8221; that allows IIS to create unique identities for each of its Application Pools. Click here for more information about Virtual Accounts.</p>
<h3>Configuring IIS Application Pool Identities</h3>
<p>If you are running IIS 7.5 on Windows Server 2008 R2 you don&#8217;t have to do anything. For every Application Pool you create the IIS Admin Process (WAS) will create a virtual account with the name of the new Application Pool and run the Application Pool&#8217;s worker processes under this account.</p>
<p>If you are running Windows Server 2008 you have to change the IdentityType property of the Application Pool you created to &#8220;AppPoolIdentity&#8221;. Here is how:</p>
<ul>
<li>Open the IIS Management Console (INETMGR.MSC).</li>
<li>Open the Application Pools node underneath the machine node. Select the Application Pool you want to change to run under an automatically generated Application Pool Identity.</li>
<li>Right click the Application Pool and select &#8220;Advanced Settings&#8230;&#8221;</li>
</ul>
<div id="attachment_147" class="wp-caption aligncenter" style="width: 453px"><a href="http://blog.nddllc.com/wp-content/uploads/2010/03/AppPool02.png"><img class="size-full wp-image-147" style="width: 443px; height: 528px;" title="AppPool02" src="http://blog.nddllc.com/wp-content/uploads/2010/03/AppPool02.png" alt="Configure AppPool Identity" width="443" height="528" /></a><p class="wp-caption-text">Configuring AppPool Identity</p></div>
<ul>
<li>Select the &#8220;Identity&#8221; list item and click the button with the three dots.</li>
<li>The following dialog appears.</li>
</ul>
<div id="attachment_148" class="wp-caption aligncenter" style="width: 382px"><img class="size-full wp-image-148" title="AppPool03" src="http://blog.nddllc.com/wp-content/uploads/2010/03/AppPool03.png" alt="Selecting AppPool Identity" width="372" height="213" /><p class="wp-caption-text">Selecting AppPool Identity</p></div>
<ul>
<li>Select the Identity Type &#8220;ApplicationPoolIdentity&#8221; from the combo box</li>
</ul>
<p>To do the same step via command-line you can simply call the appcmd command-line tool the following way:</p>
<address>%windir%\system32\inetsrv\appcmd.exe set AppPool &lt;your AppPool&gt; -processModel.identityType:ApplicationPoolIdentity</address>
<h3>Securing Resources</h3>
<p>Whenever a new Application Pool is created the IIS management process  creates a security identifier (SID) representing the name of the  Application Pool itself, i.e. if you create an Application Pool with the  name &#8220;MyNewAppPool&#8221; a security identifier with the name &#8220;MyNewAppPool&#8221;  is created in the Windows Security system. From this point on resources  can be secured using this identity. The identity is not a real user  account however, i.e. it will not show up as a user in the Windows User  Management Console.</p>
<p>You can try this by selecting a file in Windows Explorer and adding  the &#8220;DefaultAppPool&#8221; identity to its Access Control List (ACL).</p>
<ol>
<li>Open Windows Explorer</li>
<li>Select a file or directory.</li>
<li>Right click the file and select &#8220;Properties&#8221;</li>
<li>Select the &#8220;Security&#8221; tab</li>
<li>Click the &#8220;Edit&#8221; and then &#8220;Add&#8221; button</li>
<li>Click the &#8220;Locations&#8221; button and make sure you select your machine.</li>
<li>Enter &#8220;IIS AppPool\DefaultAppPool&#8221; in the &#8220;Enter the object names to  select:&#8221; text box.</li>
<li>Click the &#8220;Check Names&#8221; button and click &#8220;OK&#8221;.</li>
</ol>
<p>By doing this the file or directory you selected will now also allow  the &#8220;DefaultAppPool&#8221; identity access.</p>
<div id="attachment_149" class="wp-caption aligncenter" style="width: 472px"><img class="size-full wp-image-149" title="AppPool04" src="http://blog.nddllc.com/wp-content/uploads/2010/03/AppPool04.png" alt="Securing Resources" width="462" height="246" /><p class="wp-caption-text">Securing Resources for your Process  Identity</p></div>
<p>You can do this via the command-line using the ICACLS tool. The following example gives full access to the DefaultAppPool identity.</p>
<address>ICACLS test.txt /grant &#8220;IIS AppPool\DefaultAppPool&#8221;:F </address>
<p>On Windows 7 and Windows Server 2008 R2 the default is to run Application Pools as this security identifier, i.e. as the Application Pool Identity. To make this happen a new identity type with the name &#8220;AppPoolIdentity&#8221; was introduced. If the &#8220;AppPoolIdentity&#8221; identity type is selected (default on Windows 7 and Windows Server 2008 R2) IIS will run worker processes as the Application Pool identity. With every other identity type the security identifier will only be injected into the access token of the process. If the identifier is injected content can still be ACLed for the AppPool identity but the owner of the token is probably not unique. Here  is an article that explains this concept.</p>
<h3>Accessing the Network</h3>
<p>Using the NETWORKSERVICE account in a domain environment has a great benefit. Worker process running as NETWORKSERVICE access the network as the machine account. Machine accounts are generated when a machine is joined to a domain. They look like this:</p>
<p><strong>&lt;domainname&gt;\&lt;machinename&gt;$,</strong></p>
<p>for example:</p>
<p><strong>mydomain\machine1$</strong></p>
<p>The nice thing about this is that network resources like file shares or SQL Server databases can be ACLed to allow access for this machine account.</p>
<h3>What about AppPool identities?</h3>
<p>The good news is that Application Pool identities also use the machine account to access network resources. No changes are required.</p>
<h2>Note:</h2>
<p>This article <a href="http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-70/" target="_blank">http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-70/</a> walks you through the process. This article was written for IIS 7, but will apply to IIS 7.5 as well.</p>
<p>In addition, if your server is 64 bit, you should set &#8216;<strong>enable 32 bit applications</strong>&#8216; to true in your application pools settings.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.nddllc.com%2F2010%2F03%2F04%2Fiis-7-5-apppool-identities%2F&amp;linkname=IIS%207.5%20AppPool%20Identities"><img src="http://blog.nddllc.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blog.nddllc.com/2010/03/04/iis-7-5-apppool-identities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silverlight and Smooth Streaming – part 3</title>
		<link>http://blog.nddllc.com/2010/03/03/silverlight-and-smooth-streaming-%e2%80%93-part-3/</link>
		<comments>http://blog.nddllc.com/2010/03/03/silverlight-and-smooth-streaming-%e2%80%93-part-3/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 20:43:21 +0000</pubDate>
		<dc:creator>Chris Smith</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[IIS 7.5]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Smooth Streaming]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.nddllc.com/?p=126</guid>
		<description><![CDATA[Mentioned in my previous two posts, Smooth Streaming  is Microsoft’s completion of HTTP-based adaptive streaming, which is a truly a hybrid media delivery method. It may act like streaming, but it is in fact based on HTTP progressive download. The HTTP downloads are performed in a series of small chunks, allowing the media to get [...]]]></description>
			<content:encoded><![CDATA[<p>Mentioned in my previous two posts, Smooth Streaming  is Microsoft’s completion of HTTP-based adaptive streaming, which is a truly a hybrid media delivery method. It may act like streaming, but it is in fact based on HTTP progressive download. The HTTP downloads are performed in a series of small chunks, allowing the media to get easily and cheaply cached along the edge of the network, closer to the end users. The Expression Encoder provides multiple encoded bitrates of the same media source also allows Silverlight clients to seamlessly and dynamically switch between bitrates depending on network conditions and CPU power. The end users experience is one of reliable, consistent playback without stutter, buffering or “last mile” pipe-line clog.</p>
<p>A Microsoft media format and no ASF? That’s right. Why MP4 and not ASF? Well, here are a few reasons:<br />
•    MP4 is a lighter container and uses less overhead.<br />
•    MP4 are easier to “digest” by .NET.<br />
•    MP4 is more widely supported.<br />
•    MP4 was architected with H.264 video codec support, although ASF can be as well, it’s not as native.<br />
•    MP4 was designed to natively support payload fragmentation</p>
<p>There are actually two parts to the Smooth Streaming format: the wire format and the disk file format. In Smooth Streaming, a video is recorded in full length to the disk as a single file (one file per encoded bit rate), but it&#8217;s transferred to the client as a series of small file chunks. The wire format defines the structure of the chunks that are sent by IIS to the client, whereas the file format defines the structure of the contiguous file on disk, enabling better file management. Fortunately, the MP4 specification allows MP4 to be internally organized as a series of fragments, which means that in Smooth Streaming the wire format is a direct subset of the file format.</p>
<p>So exactly what are these “fragments”? The basic unit of an MP4 file is called a &#8220;box.&#8221; These boxes can contain both data and metadata. The MP4 specification allows for various ways to organize data and metadata boxes within a file. In most media scenarios, it&#8217;s considered useful to have the metadata written before the data so that a player client application can have more information about the video/audio that it&#8217;s about to play before it plays it. However, in live streaming scenarios it&#8217;s often not possible to write the metadata up-front about the whole data stream because it&#8217;s simply not yet fully known.</p>
<p style="text-align: center;">The following figure is a high-level overview of what a Smooth Streaming file looks like on the inside:</p>
<p><img title="Fig1-FileFormat" src="http://blog.nddllc.com/wp-content/uploads/2010/02/Fig1-FileFormat.png" alt="Smooth Stream pic1" width="500" height="276" /></p>
<p style="text-align: center;">
<p>In a nutshell, the file starts with file-level metadata (‘moov‘) which generically describes the file, but the bulk of the payload is actually contained in the fragment boxes which also carry more accurate fragment-level metadata (‘moof‘) and media data (‘mdat‘). (The diagram only shows 2 fragments, but a typical Smooth Streaming file has a fragment per every 2 seconds of video/audio.) Closing the file is a ‘mfra‘ index box which allows easy and accurate seeking within the file.<br />
When a Silverlight client requests a video time slice from the IIS Smooth Streaming server, the server simply seeks to the approriate starting fragment in the MP4 file and then lifts the fragment out of the file and sends it over the wire to the client. This is why we refer to the fragments as the “wire format.” This technique greatly enhances the efficiency of the IIS server because it requires no remuxing or rewriting overhead.<br />
Here is what an MP4 fragment looks like in more detail:</p>
<p><img class="aligncenter size-full wp-image-136" style="width: 530px; height: 291px;" title="Fig2-FileFormat" src="http://blog.nddllc.com/wp-content/uploads/2010/03/Fig2-FileFormat.gif" alt="File Fragment" width="530" height="291" /></p>
<p>We say that the Smooth Streaming format is based on the MP4 file format because even though we’re following the ISO specification, we specify our own box organization schema and some custom boxes. In order to differentiate Smooth Streaming files from “vanilla” MP4 files, we use new file extensions: *.ismv (video+audio) and *.isma  (audio only). I keep forgetting to ask the IIS Media team what the acronyms exactly stand for, but my best guess would be “IIS Smooth Streaming Media Video (Audio)”.</p>
<p>Smooth Streaming Media Assets</p>
<p>A typical Smooth Streaming media asset therefore consists of the following files:</p>
<ul>
<li>MP4 files containing video/audio
<ul>
<li>*.ismv – contains video and audio, or only video
<ul>
<li>1 ISMV file per encoded video bitrate</li>
</ul>
</li>
<li>*.isma &#8211; contains only audio
<ul>
<li>In videos with audio, the audio track can be muxed into an ISMV file instead of a separate ISMA file</li>
</ul>
</li>
</ul>
</li>
<li>Server manifest file
<ul>
<li>*.ism</li>
<li>Describes the relationships between media tracks, bitrates and files on disk</li>
<li>Only used by the IIS Smooth Streaming server – not by client</li>
</ul>
</li>
<li>Client manifest file
<ul>
<li>*.ismc</li>
<li>Describes to the client the available streams, codecs used, bitrates encoded, video resolutions, markers, captions, etc.</li>
<li>It’s the first file delivered to the client</li>
</ul>
</li>
</ul>
<p>Both manifest file formats are based on XML. The server manifest file format is based specifically on the SMIL 2.0 XML format specification.</p>
<p>A folder containing a single Smooth Streaming media asset might look something like this:</p>
<div id="attachment_137" class="wp-caption aligncenter" style="width: 725px"><img class="size-full wp-image-137" style="width: 715px; height: 353px;" title="smooth_slide19" src="http://blog.nddllc.com/wp-content/uploads/2010/03/smooth_slide19.png" alt="Smooth Streaming media assets" width="715" height="353" /><p class="wp-caption-text">A folder containing a Smooth Streaming media assets</p></div>
<p>In this particular case the audio track is contained in the <em>NBA_3000000.ismv</em> file.</p>
<p><span style="text-decoration: underline;"><strong>Smooth Streaming  Manifest Files</strong></span></p>
<p>The Smooth Streaming Wire/File Format specification defines the  manifest XML language as well as the MP4 box structure. Because the  manifests are based on XML they are highly extensible. Among the  features already included in the current Smooth Streaming format  specification is support for:</p>
<ul>
<li>VC-1, WMA, H.264 and AAC codecs</li>
<li>Text streams</li>
<li>Multi-language audio tracks</li>
<li>Alternate video and audio tracks (i.e. multiple camera angles,  director’s commentary, etc.)</li>
<li>Multiple hardware profiles (i.e. same bitrates targeted at different  playback devices)</li>
<li>Script commands, markers/chapters, captions</li>
<li>Client manifest Gzip compression</li>
<li>URL obfuscation</li>
<li>Live encoding and streaming</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Smooth Streaming  Playback: Bringing It All Home</strong></span></p>
<p>Microsoft’s adaptive streaming prototype (used for NBC  Olympics 2008) relied on physically chopping up long video files into  small file chunks. In order to retrieve the chunks for the web server,  the player client simply needed to download files in a logical sequence:  <em>00001.vid, 00002.vid, 00003.vid</em>, etc.</p>
<p>As I’ve explained in this and previous posts, Smooth Streaming uses a  more sophisticated file format and server design. The videos are no  longer split up into thousands of file chunks, but are instead  “virtually” split up into fragments (typically 1 fragment per video GOP)  and stored within a single contiguous MP4 file. This implies two  significant changes in server and client design too:</p>
<ol>
<li>The server must be able to translate URL requests into exact byte  range offsets within the MP4 file, and</li>
<li>The client can request chunks in a more developer-friendly manner,  such as by timecode instead of by index number</li>
</ol>
<p>The first thing a Silverlight client requests from the Smooth  Streaming server is the <strong>*.ismc</strong> client manifest. The  manifest tells it which codecs were used  to compress the content (so  that the Silverlight runtime can initialize the correct decoder and  build the playback pipeline), which bitrates and resolutions are  available, and a list of all the available chunks and either their start  times or durations.</p>
<p>With IIS7 Smooth Streaming, a client is expected to request fragments  in the form of<a title="RESTful" href="http://en.wikipedia.org/wiki/Representational_State_Transfer#RESTful_Web_services" target="_blank"> </a><a title="RESTful Web" href="http://en.wikipedia.org/wiki/Representational_State_Transfer#RESTful_Web_services" target="_blank">RESTful  URLs</a>:</p>
<pre>http://video.foo.com/NBA.ism/QualityLevels(<strong>400000</strong>)/Fragments(video=<strong>610275114</strong>)

http://video.foo.com/NBA.ism/QualityLevels(<strong>64000</strong>)/Fragments(audio=<strong>631931065</strong>)</pre>
<p>The values passed in the URL represent encoded bitrate (i.e. 400000)  and the fragment start offset (i.e. 610275114) expressed in an  agreed-upon time unit (usually 100 ns). These values are known from the  client manifest.</p>
<p>Upon receiving a request like this, the IIS7 Smooth Streaming  component looks up the quality level (bitrate) in the corresponding <strong>*.ism </strong>server manifest and maps it to a physical <strong>*.ismv</strong> or <strong>*.isma</strong> file on disk. It then goes and reads the  appropriate MP4 file, and based on its <em>‘tfra’</em> index box figures  out which fragment box (‘<em>moof’</em> + ‘<em>mdat’</em>) corresponds  to the requested start time offset. It then extracts the said fragment  box and sends it over the wire to the client as a standalone file. This  is a particularly important part of the overall design because the sent  fragment/file can now be automatically cached further down the network,  potentially saving the origin server from sending the same fragment/file  again to another client requesting the same RESTful URL.</p>
<p>As you can see, requesting chunks of video/audio from the server is  easy. But what about dynamic bitrate switching that makes adaptive  streaming so effective? This part of the Smooth Streaming experience is  implemented entirely in client-side Silverlight application code – the  server plays no part in the bitrate switching process. The client-side  code looks at chunk download times, buffer fullness, rendered frame  rates, and other factors – and based on them decides when to request  higher or lower bitrates from the server. Remember, if during the  encoding process we ensure that all bitrates of the same source are  perfectly frame aligned (same length GOPs, no dropped frames), then  switching between bitrates is completely seamless – and <span style="text-decoration: underline;">Smooth</span>.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 805px; width: 1px; height: 1px; overflow: hidden;">
<p>We say that the Smooth Streaming format is <em>based</em> on the MP4  file format because even though we’re following the ISO specification,  we specify our own box organization schema and some custom boxes. In  order to differentiate Smooth Streaming files from “vanilla” MP4 files,  we use new file extensions: *.<strong>ismv</strong> (video+audio) and *.<strong>isma</strong> (audio only). I keep forgetting to ask the IIS Media team what the  acronyms exactly stand for, but my best guess would be “<strong>I</strong>IS  <strong>S</strong>mooth Streaming <strong>M</strong>edia <strong>V</strong>ideo  (<strong>A</strong>udio)”.</p>
<p><span style="text-decoration: underline;"><strong>Smooth Streaming  Media Assets</strong></span></p>
<p>A typical Smooth Streaming media asset therefore consists of the  following files:</p>
<ul>
<li>MP4 files containing video/audio
<ul>
<li>*.<strong>ismv</strong> – contains video and audio, or only video
<ul>
<li>1 ISMV file per encoded video bitrate</li>
</ul>
</li>
<li>*.<strong>isma</strong> &#8211; contains only audio
<ul>
<li>In videos with audio, the audio track can be muxed into an ISMV file  instead of a separate ISMA file</li>
</ul>
</li>
</ul>
</li>
<li>Server manifest file
<ul>
<li>*.<strong>ism</strong></li>
<li>Describes the relationships between media tracks, bitrates and files  on disk</li>
<li>Only used by the IIS Smooth Streaming server – not by client</li>
</ul>
</li>
<li>Client manifest file
<ul>
<li>*.<strong>ismc</strong></li>
<li>Describes to the client the available streams, codecs used, bitrates  encoded, video resolutions, markers, captions, etc.</li>
<li>It’s the first file delivered to the client</li>
</ul>
</li>
</ul>
<p>Both manifest file formats are based on XML. The server manifest file  format is based specifically on the <a href="http://www.w3.org/TR/SMIL20/">SMIL 2.0</a> XML format  specification.</p>
<p>A folder containing a single Smooth Streaming media asset might look  something like this:</p>
</div>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.nddllc.com%2F2010%2F03%2F03%2Fsilverlight-and-smooth-streaming-%25e2%2580%2593-part-3%2F&amp;linkname=Silverlight%20and%20Smooth%20Streaming%20%E2%80%93%20part%203"><img src="http://blog.nddllc.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blog.nddllc.com/2010/03/03/silverlight-and-smooth-streaming-%e2%80%93-part-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silverlight and Smooth Streaming &#8211; part 2</title>
		<link>http://blog.nddllc.com/2010/02/17/silverlight-and-smooth-streaming-part-2/</link>
		<comments>http://blog.nddllc.com/2010/02/17/silverlight-and-smooth-streaming-part-2/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 18:55:45 +0000</pubDate>
		<dc:creator>Chris Smith</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[bandwidth]]></category>
		<category><![CDATA[Bit Rate Throttling]]></category>
		<category><![CDATA[IIS 7.5]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.nddllc.com/?p=120</guid>
		<description><![CDATA[In the last installment of this series I covered the basic tools and theories behind delivering great streaming content to your audience without breaking the bank. Either out of pocket or in bandwidth, so lets talk about Bit Rate Throttling to begin with.
Imagine this &#8211; a client connects to your server, clicks  on your [...]]]></description>
			<content:encoded><![CDATA[<p>In the last installment of this series I covered the basic tools and theories behind delivering great streaming content to your audience without breaking the bank. Either out of pocket or in bandwidth, so lets talk about Bit Rate Throttling to begin with.</p>
<p>Imagine this &#8211; a client connects to your server, clicks  on your featured video, watches 5 seconds of it to realize they have no  interest in watching further, and move on to the next video.</p>
<p>In  those 5 seconds, the server could have sent out 5 minutes worth of the  video, and you paid for 5 minutes worth of bandwidth! With the Bit Rate Throtter + media bitrate detection, the server would only end up  sending a little over 5 seconds worth, and you would end up paying only  for what was used.</p>
<p>Bit Rate Throttling (BRT) is a module plug-in for IIS 7 0r IIS 7.5. It&#8217;s an extension of the IIS Media Service. The IIS7 Bit Rate Throttling module was first announced at the National  Association of Broadcasters (NAB) <a title="NAB 2007 press  release" href="http://www.microsoft.com/presspass/press/2007/apr07/04-15WPFEPR.mspx" target="_blank">show</a> last April as part of the TCO advantage for <a title="Silverlight" href="http://www.microsoft.com/silverlight/" target="_blank">Silverlight</a>.  Enabling Web masters to throttle the delivery of any file  based on the file type. It also has additional functions for digital  audio/video files. Throttling can be set at the following levels within  Internet Information Services (IIS) Manager: server, site, virtual  directory, and file.</p>
<p>BRT contains the following features:</p>
<ul>
<li>Fast Start &#8211; the ability to send the first part of the media file  without rate limiting, to seed the playback buffer in the player and  make sure that playback can begin as soon as possible (most players try  to pre-buffer a certain amount of the video, often 5 seconds, before  starting playback). This also insures that if the connection suffers a hiccup, the playback can continue uninterrupted.</li>
<li>Disconnect detection<em> </em>- when the client stops watching the  video, goes to another page, or closes the video, the BRT  detects the connection closure and stops sending the file.</li>
<li>Built-in support for detecting the playback rate for common media  formats, including .asf, .avi, .flv, .m4v, .mov, .mp3, .mp4, .rm,  .rmvb, .wma, and .wmv.</li>
<li>Ability to configure static throttling rates, and media auto-detection  rates at any configuration level.</li>
</ul>
<p>It should also be noted you can configure the BRT module to handle static files as well, such as a large [progressive] .jpg file. So, if you feel you need to trim the bandwidth, Bit Rate Throttling module is a great place to start.</p>
<p>In the next segment I&#8217;ll focus on the Smooth Streaming IIS 7+ features and capabilities.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.nddllc.com%2F2010%2F02%2F17%2Fsilverlight-and-smooth-streaming-part-2%2F&amp;linkname=Silverlight%20and%20Smooth%20Streaming%20%26%238211%3B%20part%202"><img src="http://blog.nddllc.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blog.nddllc.com/2010/02/17/silverlight-and-smooth-streaming-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silverlight and Smooth Streaming</title>
		<link>http://blog.nddllc.com/2010/02/13/silverlight-and-smooth-streaming/</link>
		<comments>http://blog.nddllc.com/2010/02/13/silverlight-and-smooth-streaming/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 19:40:26 +0000</pubDate>
		<dc:creator>Chris Smith</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Expression Encoder 3]]></category>
		<category><![CDATA[Expression Studio]]></category>
		<category><![CDATA[Expression Web]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[IIS 7.5]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blog.nddllc.com/?p=114</guid>
		<description><![CDATA[At first glance Silverlight seems like just another platform for creating interactive website, desktop and mobile applications. Much like Adobe&#8217;s Flash or AIR. but there is a lot more to it. As I&#8217;ve mentioned before, I&#8217;m all about giving my clients a product that suites them best even though it may be outside of my [...]]]></description>
			<content:encoded><![CDATA[<p>At first glance Silverlight seems like just another platform for creating interactive website, desktop and mobile applications. Much like Adobe&#8217;s Flash or AIR. but there is a lot more to it. As I&#8217;ve mentioned before, I&#8217;m all about giving my clients a product that suites them best even though it may be outside of my &#8220;comfort zone.&#8221;</p>
<p>I have a client (to be named later) that had a need to deliver high-quality videos without breaking the budget. By budget I mean in terms of bandwidth, encoding, and preparation. We also host this clients website which was recently moved to a new server running Windows 2008 R2, with IIS 7.5. So in looking for a solution I came upon Silverlight, which is a natural fit with IIS 7.5&#8217;s  Media Services and Smooth Streaming.</p>
<p>To make this scenario work, you&#8217;ll need Microsoft&#8217;s Expression Web 3 or Microsoft&#8217;s Expression Studio 3. The Expression Encoder 3 is bundled with those packages with sell from (estimated) $150 to $500 dollars. Both packages offer a wide array of tools that will help in your video encoding as well as many other tasks such as website development and desktop applications.</p>
<p>With Expression Web 3 alone, you be able to code in PHP, HTML/XHTML, CSS, JavaScript, ASP.NET, ASP.NET AJAX, all using standards-based code (yes, I checked), however Expression Encoder is the key. It&#8217;s not only easy to navigate and use, but allows you to drop in QuickTime, AVI, MPEG, and other formats into the encoder, and utilize the latest quality and speed improvements to the VC-1 or H.264 codecs, choose a Silverlight template (or make your own), and publish directly to a web server using Expression Encoder Publishing Plug-in. It should be noted that the video can also be published locally and viewed.</p>
<p>Smooth Streaming is the production version of a technology first used by Microsoft to deliver on-demand video of the 2008 Summer Olympics for <a href="http://www.NBCOlympics.com" target="_blank">NBCOlympics.com</a>. By dynamically monitoring both local bandwidth and video rendering performance, Smooth Streaming optimizes playback of content by switching video quality in real-time.</p>
<p>Using Smooth Streaming, visitors with high bandwidth connections and modern computers can experience full HD quality streaming, while others with lower bandwidth or older computers receive the appropriate stream for their capabilities. The result is visitors across the board enjoy a compelling, uninterrupted streaming experience, which ultimately lead to extended visitor stays and increased revenue opportunities.</p>
<p>In my next installment of this topic, I&#8217;ll cover the nuts and bolts of Bit Rate Throttling and Smooth Streaming.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.nddllc.com%2F2010%2F02%2F13%2Fsilverlight-and-smooth-streaming%2F&amp;linkname=Silverlight%20and%20Smooth%20Streaming"><img src="http://blog.nddllc.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blog.nddllc.com/2010/02/13/silverlight-and-smooth-streaming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Joomla! &#8211; A first re-look</title>
		<link>http://blog.nddllc.com/2010/01/26/joomla-a-first-re-look/</link>
		<comments>http://blog.nddllc.com/2010/01/26/joomla-a-first-re-look/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 12:35:03 +0000</pubDate>
		<dc:creator>Chris Smith</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://blog.nddllc.com/?p=109</guid>
		<description><![CDATA[There are times when a product that you use, like, program for and have become very familiar with begins to lose it&#8217;s luster. I&#8217;m speaking of a very well known CMS, who will at this point remain nameless. We&#8217;ll just refer to it as BrandX for now. That time comes when you have this &#8220;feeling&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>There are times when a product that you use, like, program for and have become very familiar with begins to lose it&#8217;s luster. I&#8217;m speaking of a very well known CMS, who will at this point remain nameless. We&#8217;ll just refer to it as BrandX for now. That time comes when you have this &#8220;feeling&#8221; and its confirmed by a long-time good client. It&#8217;s at that point you know that ignoring it won&#8217;t make it go away.</p>
<p>Over the past year or so I have become more familiar with and almost comfortable with the LAMP stack (Linux, Apache, MySQL and PHP.) I have been a die-hard Microsoft developer and admit that my strength is in the IIS, MSSQL, and .NET stack. All developer have they&#8217;re comfort zone, but I digress. Lets talk <a href="http://www.joomla.org/" target="_blank">Joomla!</a>.</p>
<p>Lets start with the test server. It&#8217;s VM running <a href="http://www.ubuntu.com/products/whatisubuntu/serveredition" target="_blank">Ubuntu</a> 9.10 with the LAMP stack installed. A freshly downloaded copy of Joomla! 1.5 in place and the installation begins. Here is where some other CMS&#8217;s can take a lesson (including BrandX)! The installation was very straight forward and took literally a minute to complete! A few minor configuration settings,a database name, user and presto, your in business.</p>
<p>That was the easy part. Now what to do in this new interface? A new world compared to BrandX! As with any &#8220;new&#8221; product a learning curve is a certainty, but Joomla! is truly a whole new world. I&#8217;ll write back with my finding and I look forward tou your comments.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.nddllc.com%2F2010%2F01%2F26%2Fjoomla-a-first-re-look%2F&amp;linkname=Joomla%21%20%26%238211%3B%20A%20first%20re-look"><img src="http://blog.nddllc.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blog.nddllc.com/2010/01/26/joomla-a-first-re-look/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle and MySQL</title>
		<link>http://blog.nddllc.com/2010/01/17/oracle-and-mysql/</link>
		<comments>http://blog.nddllc.com/2010/01/17/oracle-and-mysql/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 18:43:44 +0000</pubDate>
		<dc:creator>Chris Smith</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[InnoDB]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[sql server]]></category>

		<guid isPermaLink="false">http://blog.nddllc.com/?p=106</guid>
		<description><![CDATA[While there are some that say that a MySQL/InnoDB &#8220;monopoly&#8221; isn&#8217;t healthy in the long run. What is a bit puzzling is the Oracle acquisition of Innobase Oy (the makers of InnoDB) a few years ago. The question in regards to this acquisition is whether Oracle is serious about seeing MySQL grow and prosper, or [...]]]></description>
			<content:encoded><![CDATA[<p>While there are some that say that a MySQL/InnoDB &#8220;monopoly&#8221; isn&#8217;t healthy in the long run. What is a bit puzzling is the Oracle acquisition of Innobase Oy (the makers of <a href="http://www.innodb.com/" target="_blank">InnoDB</a>) a few years ago. The question in regards to this acquisition is whether Oracle is serious about seeing MySQL grow and prosper, or was that a means to get a strangle-hold on a vital piece of MySQL?</p>
<p>To Oracle&#8217;s credit, they have published  a <a href="http://www.marketwire.com/press-release/Oracle-Makes-Commitments-to-Customers-Developers-and-Users-of-MySQL-NASDAQ-ORCL-1090000.htm" target="_blank">press release</a> stating their commitments regarding their acquisition of MySQL by way of acquiring Sun. Personally, I&#8217;m not buying it.</p>
<p>For years Oracle worked, behind the scenes to discredit MySQL and tried hard to understand how their customers could ever consider using such an &#8220;immature&#8221; product instead of their lead product. In fact, it was so important to Oracle that they offered some very substantial discounts to customers who were using MySQL and Oracle. The good news is that this strategy didn&#8217;t work. MySQL had and has a staunch following that has always been a little leery of Oracle.</p>
<p>I&#8217;ve been a CTO at two locations that used Oracle and have found their practices to be cut-throat, sometimes bordering on ruthless. Is Oracle a serious threat to the open-source community? In my estimation, it certainly is, more than most of my colleagues, although a huge percentage of them would agree that this acquisition is not good for MySQL. Does Oracle participate in the open-source community? Sure, in a manner that supports themselves through commercial offerings. This is not the true spirit of open-source and leads to a slippery slope.</p>
<p>I&#8217;ve posted a poll on the right of this post, feel free to participate.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.nddllc.com%2F2010%2F01%2F17%2Foracle-and-mysql%2F&amp;linkname=Oracle%20and%20MySQL"><img src="http://blog.nddllc.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blog.nddllc.com/2010/01/17/oracle-and-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 2.9.1 Released</title>
		<link>http://blog.nddllc.com/2010/01/07/wordpress-2-9-1-released/</link>
		<comments>http://blog.nddllc.com/2010/01/07/wordpress-2-9-1-released/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 13:02:00 +0000</pubDate>
		<dc:creator>Chris Smith</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.nddllc.com/?p=103</guid>
		<description><![CDATA[After over a million downloads of WordPress 2.9 and lots of feedback from all of you, we’re releasing WordPress  2.9.1.  This release addresses a handful of minor issues as well as a rather annoying problem where scheduled posts and pingbacks are not processed correctly due to incompatibilities with some hosts.  If any [...]]]></description>
			<content:encoded><![CDATA[<p>After over a million downloads of WordPress 2.9 and lots of feedback from all of you, we’re releasing WordPress  2.9.1.  This release addresses a handful of minor issues as well as a rather annoying problem where scheduled posts and pingbacks are not processed correctly due to incompatibilities with some hosts.  If any of <a href="http://core.trac.wordpress.org/query?status=closed&amp;group=resolution&amp;order=priority&amp;milestone=2.9.1&amp;resolution=fixed" target="_blank">these issues</a> affect you, give 2.9.1 a try.  <a href="http://wordpress.org/download/" target="_blank">Download 2.9.1</a> or upgrade automatically from the Tools-&gt;Upgrade menu in your blog’s admin area.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.nddllc.com%2F2010%2F01%2F07%2Fwordpress-2-9-1-released%2F&amp;linkname=WordPress%202.9.1%20Released"><img src="http://blog.nddllc.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blog.nddllc.com/2010/01/07/wordpress-2-9-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amazon S3 and the SMB</title>
		<link>http://blog.nddllc.com/2010/01/07/amazon-s3-and-the-smb/</link>
		<comments>http://blog.nddllc.com/2010/01/07/amazon-s3-and-the-smb/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 12:53:00 +0000</pubDate>
		<dc:creator>Chris Smith</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[back-up]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[off-site]]></category>
		<category><![CDATA[S3]]></category>
		<category><![CDATA[SMB]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.nddllc.com/?p=100</guid>
		<description><![CDATA[We, as an SMB (small and medium business), have been using Amazon&#8217;s S3 for sometime now. We are a small software development company that specializes in web applications. We also host web applications and sites. The benefit of S3 is it gives us the ability to keep complete off-site back-ups as well as share certain [...]]]></description>
			<content:encoded><![CDATA[<p>We, as an SMB (small and medium business), have been using Amazon&#8217;s S3 for sometime now. We are a small software development company that specializes in web applications. We also host web applications and sites. The benefit of S3 is it gives us the ability to keep complete off-site back-ups as well as share certain files with outside contractors and clients.</p>
<p>This probably isn&#8217;t anything earth shattering to most, but it certainly beats our old system of taking back-up tapes and DVD off-site every night. That method had too many short-comings to say the least.</p>
<p>Recently, for one of our secure document storage web applications, we started incorporating a data provider that utilizes the S3 API. Setting a search provider for S3 proved to be a bit of a challenge, but so far it has worked out fairly well.</p>
<p>So lets get back to the topic at hand. For the SMB looking for a cost effective way to keep file storage organized and highly available, I&#8217;m hard pressed to come up with another viable solution. If you&#8217;re the owner of a SMB or work for one, what options have you explored? What method of [off-site] back-up are you using? I&#8217;d really like to hear from you&#8230;</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.nddllc.com%2F2010%2F01%2F07%2Famazon-s3-and-the-smb%2F&amp;linkname=Amazon%20S3%20and%20the%20SMB"><img src="http://blog.nddllc.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blog.nddllc.com/2010/01/07/amazon-s3-and-the-smb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>vTiger raves continued</title>
		<link>http://blog.nddllc.com/2010/01/03/vtiger-raves-continued/</link>
		<comments>http://blog.nddllc.com/2010/01/03/vtiger-raves-continued/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 13:19:40 +0000</pubDate>
		<dc:creator>Chris Smith</dc:creator>
				<category><![CDATA[vTiger]]></category>
		<category><![CDATA[crm]]></category>
		<category><![CDATA[help desk]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[portal]]></category>
		<category><![CDATA[ticket]]></category>

		<guid isPermaLink="false">http://blog.nddllc.com/?p=83</guid>
		<description><![CDATA[The more you use and read about the capabilities of vTiger, the more I&#8217;m convinced you&#8217;ll find a solid use for it in your business. It has fast become a great tool in my business and I can see how it would benefit any SMB and all businesses as an intranet. Does it pack the [...]]]></description>
			<content:encoded><![CDATA[<p>The more you use and read about the capabilities of vTiger, the more I&#8217;m convinced you&#8217;ll find a solid use for it in your business. It has fast become a great tool in my business and I can see how it would benefit any SMB and all businesses as an intranet. Does it pack the punch off say Salesforce or Microsoft&#8217;s CRM? No, but it doesn&#8217;t pack the price tag either! And don&#8217;t get me wrong, because it may not contain all the bells and whistles of the aforementioned, that doesn&#8217;t mean it doesn&#8217;t meet or exceed them in a lot areas either.</p>
<p>The ease in which you can customize and configure vTiger to meet your needed, without having a team of developers, is astounding. Just recently we followed a published &#8220;<a href="http://blogs.vtiger.com/?p=754" target="_blank">how-to</a>&#8221; on setting up vTiger as an automated help desk ticketing system. The how-to was straight forward and utilized a number of already built in modules and methods to create a custom [support] ticketing system. This particular system allows for the customer to send an email to a predetermined  email address and if that customer was a &#8220;know&#8221; contact in vTiger, a ticket was auto-generated and a &#8220;canned&#8221; response returned to them. In this email response are details that gave them the ability to track the tickets progress through the Customer Portal. Also through the Portal, the customer can comment on a ticket in real time, very handy when troubleshooting.</p>
<p>I&#8217;m certain that I will be revisiting the vTiger subject again soon, but I&#8217;d really like to hear what you have to say about it.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.nddllc.com%2F2010%2F01%2F03%2Fvtiger-raves-continued%2F&amp;linkname=vTiger%20raves%20continued"><img src="http://blog.nddllc.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blog.nddllc.com/2010/01/03/vtiger-raves-continued/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress releases 2.9.1 RC</title>
		<link>http://blog.nddllc.com/2009/12/30/wordpress-releases-2-9-1-rc/</link>
		<comments>http://blog.nddllc.com/2009/12/30/wordpress-releases-2-9-1-rc/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 23:04:27 +0000</pubDate>
		<dc:creator>Chris Smith</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[RC]]></category>
		<category><![CDATA[released]]></category>

		<guid isPermaLink="false">http://blog.nddllc.com/?p=81</guid>
		<description><![CDATA[RC1 contains a few more fixes, bringing the number of fixed tickets up to 23.  If you are already running Beta 1, visit Tools-&#62;Upgrade in your blog’s admin to get RC1.  You can also  download the RC1 package and install manually.  If all goes well, 2.9.1 will be here soon.
]]></description>
			<content:encoded><![CDATA[<p>RC1 contains a few more fixes, bringing the number of <a href="http://core.trac.wordpress.org/query?status=closed&amp;group=resolution&amp;order=priority&amp;milestone=2.9.1&amp;resolution=fixed">fixed tickets</a> up to 23.  If you are already running Beta 1, visit Tools-&gt;Upgrade in your blog’s admin to get RC1.  You can also  <a href="http://wordpress.org/wordpress-2.9.1-RC1.zip">download the RC1 package</a> and install manually.  If all goes well, 2.9.1 will be here soon.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.nddllc.com%2F2009%2F12%2F30%2Fwordpress-releases-2-9-1-rc%2F&amp;linkname=WordPress%20releases%202.9.1%20RC"><img src="http://blog.nddllc.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://blog.nddllc.com/2009/12/30/wordpress-releases-2-9-1-rc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
