<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/wordpress-mu-1.2.1" -->
<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/"
	>

<channel>
	<title>MSDN Blog Postings</title>
	<link>http://msdnrss.thecoderblogs.com</link>
	<description>via RSS Feed</description>
	<pubDate>Thu, 18 Mar 2010 01:05:53 +0000</pubDate>
	<generator>http://wordpress.org/?v=wordpress-mu-1.2.1</generator>
	<language>en</language>
			<item>
		<title>Now I can hear myself</title>
		<link>http://msdnrss.thecoderblogs.com/2010/03/17/now-i-can-hear-myself/</link>
		<comments>http://msdnrss.thecoderblogs.com/2010/03/17/now-i-can-hear-myself/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 01:05:53 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[MSDN Blogs]]></category>

		<guid isPermaLink="false">http://blogs.msdn.com/mhale/archive/2010/03/18/now-i-can-hear-myself.aspx</guid>
		<description><![CDATA[I rarely get calls on my office phone, but last Friday afternoon I got a call from Ken Levy asking if I could spare a few minutes to give an interview on F# for the podcast that accompanies Code Magazine.&#160; Although I was being highly productive by listening to music and playing with a yo-yo, [...]]]></description>
			<content:encoded><![CDATA[<p>I rarely get calls on my office phone, but last Friday afternoon I got a call from <a href="http://mashupx.com/blog/">Ken Levy</a> asking if I could spare a few minutes to give an interview on F# for the podcast that accompanies <a href="http://code-magazine.com/">Code Magazine</a>.&nbsp; Although I was being highly productive by listening to music and playing with a yo-yo, I agreed to meet him.&nbsp; I hadn’t even started drinking.</p>
<p>Ken posted the interview last night.&nbsp; It clocks in at just under 40 minutes, and you can listen to it <a href="http://code-magazine.com/CodeCast/Index.aspx?messageid=068db76b-44d1-45c0-9ad7-0a45b6eedb81">here</a>.&nbsp; We mainly discuss F#, functional programming, and Visual Studio 2010.&nbsp; Some of my remarks on Windows Phone were removed, but for more information on that you can watch some of the presentations from <a href="http://live.visitmix.com/Videos">MIX10</a> this week.&nbsp; There are more “um” and “stuff like that” phrases at the beginning than I would have liked, but I only had a few minutes to prepare.&nbsp; About a minute from the end I almost make myself laugh.</p>
<p>I’m going to need a sample app for some presentations I am giving in the next few weeks so I think I will make a variation of the <a href="http://mathworld.wolfram.com/DotsandBoxes.html">Dots and Boxes</a> game.&nbsp; I will just use a random set of dots and base the scores on the total area you capture with any polygon instead of just boxes.&nbsp; I will also use the game to gauge the interest of some students I work with in geometry and programming.</p>
<p>This is my second post on this blog.&nbsp; That makes it the most successful blog I’ve ever had.&nbsp; My first blog was on Blogger, but it was somehow deleted after my first post.</p>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=9980827" width="1" height="1"><br /><font size="1"><b>This post originated from and is provided by the MSDN Blogs RSS feed. The original post of the article can be found <a href="http://blogs.msdn.com/mhale/archive/2010/03/18/now-i-can-hear-myself.aspx" target="_blank">here</a>.</b></font></p>
]]></content:encoded>
			<wfw:commentRss>http://msdnrss.thecoderblogs.com/2010/03/17/now-i-can-hear-myself/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Walkthrough: Cartoon Effect filter using data-flow network</title>
		<link>http://msdnrss.thecoderblogs.com/2010/03/17/walkthrough-cartoon-effect-filter-using-data-flow-network/</link>
		<comments>http://msdnrss.thecoderblogs.com/2010/03/17/walkthrough-cartoon-effect-filter-using-data-flow-network/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 01:05:53 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[MSDN Blogs]]></category>

		<guid isPermaLink="false">http://blogs.msdn.com/nativeconcurrency/archive/2010/03/18/walkthrough-cartoon-effect-filter-using-data-flow-network.aspx</guid>
		<description><![CDATA[This topic shows how to implement a cartoon-like filter that can be applied to video frames by using a data-flow network. The filter consists of two stages:
1. Color simplification: where a Gaussian average of the neighbor area of a pixel is calculated and assigned to that pixel. This is an iterative filter that is done [...]]]></description>
			<content:encoded><![CDATA[<p>This topic shows how to implement a cartoon-like filter that can be applied to video frames by using a data-flow network. The filter consists of two stages:</p>
<p>1. <b>Color simplification:</b> where a Gaussian average of the neighbor area of a pixel is calculated and assigned to that pixel. This is an iterative filter that is done multiple times for each frame. In this walkthrough it is done three times.</p>
<p>2. <b>Edge detection:</b> where edge pixels is assigned a black color.</p>
<p><a href="http://blogs.msdn.com/blogfiles/nativeconcurrency/WindowsLiveWriter/WalkthroughCartoonEffectfilterusingdataf_F119/image_2.png"><img border="0" alt="image" src="http://blogs.msdn.com/blogfiles/nativeconcurrency/WindowsLiveWriter/WalkthroughCartoonEffectfilterusingdataf_F119/image_thumb.png" width="513" height="261" /></a></p>
<p>Here is the serial implementation of both filters:</p>
<h4>Color simplification serial code</h4>
<div>
<div>
<pre><span>   1:</span> <span>void</span> FrameProcessing::ApplyColorSimplifier(<span>unsigned</span> <span>int</span> startHeight,</pre>
<pre><span>   2:</span>  <span>unsigned</span> <span>int</span> endHeight, <span>unsigned</span> <span>int</span> startWidth, <span>unsigned</span> <span>int</span> endWidth)</pre>
<pre><span>   3:</span> {</pre>
<pre><span>   4:</span>     <span>for</span> (<span>unsigned</span> <span>int</span> j = startHeight; j &lt; endHeight; ++j)</pre>
<pre><span>   5:</span>     {</pre>
<pre><span>   6:</span>         <span>for</span>(<span>unsigned</span> <span>int</span> i = startWidth; i &lt; endWidth; ++i)</pre>
<pre><span>   7:</span>         {</pre>
<pre><span>   8:</span>             SimplifyIndexOptimized(m_pBufferImage, i, j);</pre>
<pre><span>   9:</span>         }</pre>
<pre><span>  10:</span>     }</pre>
<pre><span>  11:</span> }</pre>
<pre><span>  12:</span>&#160; </pre>
<pre><span>  13:</span> <span>void</span> FrameProcessing::SimplifyIndexOptimized(BYTE* pFrame,</pre>
<pre><span>  14:</span>  <span>int</span> x, <span>int</span> y)</pre>
<pre><span>  15:</span> {</pre>
<pre><span>  16:</span>     COLORREF orgClr = GetPixel(pFrame, x, y, m_Pitch, m_BPP);</pre>
<pre><span>  17:</span>     <span>int</span> shift = m_NeighborWindow / 2;</pre>
<pre><span>  18:</span>     <span>double</span> sSum = 0;</pre>
<pre><span>  19:</span>     <span>double</span> partialSumR = 0, partialSumG = 0, partialSumB = 0;</pre>
<pre><span>  20:</span>     <span>double</span> standardDeviation = 0.025;</pre>
<pre><span>  21:</span>     <span>for</span>(<span>int</span> j = y - shift; j &lt;= (y + shift); ++j)</pre>
<pre><span>  22:</span>     {</pre>
<pre><span>  23:</span>         <span>for</span>(<span>int</span> i = x - shift; i &lt;= (x + shift); ++i)</pre>
<pre><span>  24:</span>         {</pre>
<pre><span>  25:</span>             <span>// don&#8217;t apply filter to the requested index,</span></pre>
<pre><span>  26:</span>             <span>// only to the neighbors</span></pre>
<pre><span>  27:</span>             <span>if</span> (i != x ||  j != y)</pre>
<pre><span>  28:</span>             {</pre>
<pre><span>  29:</span>                 COLORREF clr = GetPixel(pFrame, i, j,</pre>
<pre><span>  30:</span>                      m_Pitch, m_BPP);</pre>
<pre><span>  31:</span>                 <span>int</span> index = (j - (y - shift)) *</pre>
<pre><span>  32:</span>                      m_NeighborWindow + i - (x - shift);</pre>
<pre><span>  33:</span>                 <span>double</span> distance = Util::GetDistance(</pre>
<pre><span>  34:</span>                         orgClr, clr);</pre>
<pre><span>  35:</span>                 <span>double</span> sValue = pow(M_E, -0.5 *</pre>
<pre><span>  36:</span>                      pow(distance / standardDeviation,2));</pre>
<pre><span>  37:</span>                 sSum += sValue;</pre>
<pre><span>  38:</span>                 partialSumR += GetRValue(clr) * sValue;</pre>
<pre><span>  39:</span>                 partialSumG += GetGValue(clr) * sValue;</pre>
<pre><span>  40:</span>                 partialSumB += GetBValue(clr) * sValue;</pre>
<pre><span>  41:</span>             }</pre>
<pre><span>  42:</span>         }</pre>
<pre><span>  43:</span>     }</pre>
<pre><span>  44:</span>&#160; </pre>
<pre><span>  45:</span>     COLORREF simplifiedClr;</pre>
<pre><span>  46:</span>     <span>int</span> simpleRed, simpleGreen, simpleBlue;</pre>
<pre><span>  47:</span>     simpleRed   = (<span>int</span>)min(max(partialSumR / sSum, 0), 255);</pre>
<pre><span>  48:</span>     simpleGreen = (<span>int</span>)min(max(partialSumG / sSum, 0), 255);</pre>
<pre><span>  49:</span>     simpleBlue  = (<span>int</span>)min(max(partialSumB / sSum, 0), 255);</pre>
<pre><span>  50:</span>     simplifiedClr = RGB(simpleRed, simpleGreen, simpleBlue);</pre>
<pre><span>  51:</span>     SetPixel(m_pBufferImage, x, y, m_Pitch, m_BPP, simplifiedClr);</pre>
<pre><span>  52:</span> }</pre>
</div>
</div>
<h4>Edge Detection Serial code</h4>
<div>
<div>
<pre><span>   1:</span> <span>void</span> ApplyEdgeDetection(BYTE* pImageFrame, <span>unsigned</span> <span>int</span> startHeight,</pre>
<pre><span>   2:</span>  <span>unsigned</span> <span>int</span> endHeight, <span>unsigned</span> <span>int</span> startWidth, <span>unsigned</span> <span>int</span> endWidth)</pre>
<pre><span>   3:</span> {</pre>
<pre><span>   4:</span>     <span>const</span> <span>float</span> alpha = 0.3f;</pre>
<pre><span>   5:</span>     <span>const</span> <span>float</span> beta = 0.8f;</pre>
<pre><span>   6:</span>     <span>const</span> <span>float</span> s0 = 0.054f;</pre>
<pre><span>   7:</span>     <span>const</span> <span>float</span> s1 = 0.064f;</pre>
<pre><span>   8:</span>     <span>const</span> <span>float</span> a0 = 0.3f;</pre>
<pre><span>   9:</span>     <span>const</span> <span>float</span> a1 = 0.7f;</pre>
<pre><span>  10:</span>     BYTE* pFrame = <span>new</span> BYTE[m_Size];</pre>
<pre><span>  11:</span>     memcpy_s(pFrame, m_Size, pImageFrame, m_Size);</pre>
<pre><span>  12:</span>     <span>for</span>(<span>unsigned</span> <span>int</span> y = startHeight; y &lt; endHeight; ++y)</pre>
<pre><span>  13:</span>     {</pre>
<pre><span>  14:</span>         <span>for</span>(<span>unsigned</span> <span>int</span> x = startWidth; x &lt; endWidth; ++x)</pre>
<pre><span>  15:</span>         {</pre>
<pre><span>  16:</span>             <span>float</span> Sy, Su, Sv;</pre>
<pre><span>  17:</span>             <span>float</span> Ay, Au, Av;</pre>
<pre><span>  18:</span>             CalculateSobel(m_pBufferImage, x, y, Sy, Su, Sv);</pre>
<pre><span>  19:</span>             CalculateSobel(m_pCurrentImage, x, y, Ay, Au, Av);</pre>
<pre><span>  20:</span>             <span>float</span> edgeS = (1 - alpha) * Sy +</pre>
<pre><span>  21:</span>                 alpha * (Su + Sv) / 2;</pre>
<pre><span>  22:</span>             <span>float</span> edgeA = (1 - alpha) * Ay +</pre>
<pre><span>  23:</span>                 alpha * (Au + Av) / 2;</pre>
<pre><span>  24:</span>             <span>float</span> i = (1 - beta) * Util::SmoothStep(s0, s1, edgeS)</pre>
<pre><span>  25:</span>                 + beta * Util::SmoothStep(a0, a1, edgeA);</pre>
<pre><span>  26:</span>             <span>float</span> oneMinusi = 1 - i;</pre>
<pre><span>  27:</span>             COLORREF clr = GetPixel(m_pBufferImage, x, y,</pre>
<pre><span>  28:</span>                                     m_Pitch, m_BPP);</pre>
<pre><span>  29:</span>             COLORREF newClr = RGB(GetRValue(clr)*oneMinusi,</pre>
<pre><span>  30:</span>             GetGValue(clr)* oneMinusi, GetBValue(clr) * oneMinusi);</pre>
<pre><span>  31:</span>&#160; </pre>
<pre><span>  32:</span>             <span>this</span>-&gt;SetPixel(pFrame, x, y, m_Pitch, m_BPP, newClr);</pre>
<pre><span>  33:</span>         }</pre>
<pre><span>  34:</span>     }</pre>
<pre><span>  35:</span>     memcpy_s(pImageFrame, m_Size, pFrame, m_Size);</pre>
<pre><span>  36:</span>     <span>delete</span>[] pFrame;</pre>
<pre><span>  37:</span> }</pre>
</div>
</div>
<div>&#160;</div>
<h4></h4>
<h4>Pipelining and data flow network</h4>
<div><a href="http://blogs.msdn.com/blogfiles/nativeconcurrency/WindowsLiveWriter/WalkthroughCartoonEffectfilterusingdataf_F119/pipe_2.png"><img border="0" alt="pipe" src="http://blogs.msdn.com/blogfiles/nativeconcurrency/WindowsLiveWriter/WalkthroughCartoonEffectfilterusingdataf_F119/pipe_thumb.png" width="540" height="76" /></a></div>
<p>The pipeline resembles the above diagram. It has three color simplification stages and one edge detection stage. This pipeline, however, uses only half of the available computation resources if it is running on an eight core machine. To extend it to use all CPUs, the frame can be divided into chunks; each chunk is passed to a network similar to the one above.</p>
<p><a href="http://blogs.msdn.com/blogfiles/nativeconcurrency/WindowsLiveWriter/WalkthroughCartoonEffectfilterusingdataf_F119/pipe_2.png"><img border="0" alt="pipe" src="http://blogs.msdn.com/blogfiles/nativeconcurrency/WindowsLiveWriter/WalkthroughCartoonEffectfilterusingdataf_F119/pipe_thumb.png" width="540" height="76" /></a></p>
<p><a href="http://blogs.msdn.com/blogfiles/nativeconcurrency/WindowsLiveWriter/WalkthroughCartoonEffectfilterusingdataf_F119/pipe_2.png"><img border="0" alt="pipe" src="http://blogs.msdn.com/blogfiles/nativeconcurrency/WindowsLiveWriter/WalkthroughCartoonEffectfilterusingdataf_F119/pipe_thumb.png" width="540" height="76" /></a></p>
<p>.</p>
<p>.</p>
<p><a href="http://blogs.msdn.com/blogfiles/nativeconcurrency/WindowsLiveWriter/WalkthroughCartoonEffectfilterusingdataf_F119/pipe_2.png"><img border="0" alt="pipe" src="http://blogs.msdn.com/blogfiles/nativeconcurrency/WindowsLiveWriter/WalkthroughCartoonEffectfilterusingdataf_F119/pipe_thumb.png" width="540" height="76" /></a></p>
<p>The number of chunks matches the number of networks, which is the number of CPUs divided by four (number of stages inside each network). This network would use 100% of CPU utilization on any CPU it is run on, but it would hit a thread safety issue regarding edge detection. The problem here is the dependency between the two filters implemented on each frame. The rule is that color simplification must end before the edge detection begins which is not the case with the network above. In this scenario chunks of the same frame might be in an edge detection stage while other chunks of the same frame are inside color simplification stages. To solve this problem, a frame must wait to be done with color simplification before entering edge detection. This is done using a <a href="http://msdn.microsoft.com/en-us/library/dd504833(VS.100).aspx#join">join message block</a> waiting for all color simplification stages to end before allowing a frame to pass to edge detection like in the diagram below. After edge detection is done, the video reader block is signaled to send the next frame into the network. The reason for this feedback loop is to prevent the video reader from overwhelming the network with messages while relatively slower processing of frames takes place. However, initially the video reader sends some frames to insure that the network is busy at all times with a number of frames that is larger than one. In our case here we send four times the number of color simplification stages of frames to the network initially (12 frames). This way the network is ensured to always have 12 frames to process at all times.</p>
<p><a href="http://blogs.msdn.com/blogfiles/nativeconcurrency/WindowsLiveWriter/WalkthroughCartoonEffectfilterusingdataf_F119/Big%20network_2.png"><img border="0" alt="Big network" src="http://blogs.msdn.com/blogfiles/nativeconcurrency/WindowsLiveWriter/WalkthroughCartoonEffectfilterusingdataf_F119/Big%20network_thumb.png" width="559" height="357" /></a> </p>
<p>Now this is ready for implementation. The code below shows the Video agents that behaves as the connection point between the UI and the network signals the video reader to read the initial frames.</p>
<div>
<div>
<pre><span>   1:</span> <span>void</span> VideoMultiFramePipelineAgent::run()</pre>
<pre><span>   2:</span> {</pre>
<pre><span>   3:</span>     QueryPerformanceFrequency(&amp;m_Frequency);</pre>
<pre><span>   4:</span>     QueryPerformanceCounter(&amp;m_StartTime);</pre>
<pre><span>   5:</span>     QueryPerformanceCounter(&amp;m_EndTime);</pre>
<pre><span>   6:</span>     m_Overhead = m_EndTime.QuadPart - m_StartTime.QuadPart;</pre>
<pre><span>   7:</span>&#160; </pre>
<pre><span>   8:</span>     QueryPerformanceCounter(&amp;m_StartTime);</pre>
<pre><span>   9:</span>&#160; </pre>
<pre><span>  10:</span>     FrameData data;</pre>
<pre><span>  11:</span>     data.m_pCartoonAgent = <span>this</span>;</pre>
<pre><span>  12:</span>     data.m_fParallel = m_fParallel;</pre>
<pre><span>  13:</span>     data.m_PhaseCount = m_nPhases;</pre>
<pre><span>  14:</span>     data.m_pVideoReader = &amp;m_VideoReader;</pre>
<pre><span>  15:</span>     data.m_neighbourArea =</pre>
<pre><span>  16:</span>             ((CCartoonizerDlg*)m_pUIDlg)-&gt;m_NeighbourWindow;</pre>
<pre><span>  17:</span>&#160; </pre>
<pre><span>  18:</span>     m_pFrameProcessor-&gt;SetNeighbourArea(data.m_neighbourArea);</pre>
<pre><span>  19:</span>     </pre>
<pre><span>  20:</span>     <span>for</span> (<span>int</span> i = 0; i &lt; 4 * m_nPhases; ++i)</pre>
<pre><span>  21:</span>     {</pre>
<pre><span>  22:</span>         m_VideoReader.ReadNextFrame(data);</pre>
<pre><span>  23:</span>     }</pre>
<pre><span>  24:</span>&#160; </pre>
<pre><span>  25:</span>     done();</pre>
<pre><span>  26:</span> }</pre>
</div>
</div>
<div>&#160;</div>
<div>Here in the following code the network is initialized. A <a href="http://msdn.microsoft.com/en-us/library/dd504833(VS.100).aspx#transformer">transformer block</a> is used for edge detection and color simplification as both stages sends and receives data. The video reader is a call block as it only sends data.</div>
<div>&#160;</div>
<div>
<div>
<pre><span>   1:</span> <span>void</span> MultiplePipelineNetworkAgent::InitializeNetwork()</pre>
<pre><span>   2:</span> {</pre>
<pre><span>   3:</span>     m_fNetworkInitialized = true;</pre>
<pre><span>   4:</span>     m_ProcessedMsgs = 0;</pre>
<pre><span>   5:</span>     m_fAllMsgsRecieved = false;</pre>
<pre><span>   6:</span>&#160; </pre>
<pre><span>   7:</span>     m_colorSimplifier = <span>new</span> transformer&lt;FrameData,</pre>
<pre><span>   8:</span>              FrameData&gt;** [m_pipeLines];</pre>
<pre><span>   9:</span>     </pre>
<pre><span>  10:</span>     m_edgeDetectionJoin = <span>new</span> join&lt;FrameData&gt;(m_pipeLines);</pre>
<pre><span>  11:</span>     m_edgeDetection = <span>new</span> transformer&lt;vector&lt;FrameData&gt;,</pre>
<pre><span>  12:</span>          FrameData&gt;([&amp;](vector&lt;FrameData&gt; <span>const</span>&amp; arrData) -&gt; FrameData</pre>
<pre><span>  13:</span>     {</pre>
<pre><span>  14:</span>         <span>if</span>(arrData[1].m_EndHeight != 0)</pre>
<pre><span>  15:</span>         {</pre>
<pre><span>  16:</span>             arrData[1].m_pFrameProcesser-&gt;SetParallelOption(true);</pre>
<pre><span>  17:</span>             arrData[1].m_pFrameProcesser-&gt;ApplyEdgeDetection();</pre>
<pre><span>  18:</span>             arrData[1].m_pFrameProcesser-&gt;FrameDone();</pre>
<pre><span>  19:</span>             arrData[1].m_pCartoonAgent-&gt;FrameFinished(arrData[0]);</pre>
<pre><span>  20:</span>             m_Finished = true;</pre>
<pre><span>  21:</span>         }</pre>
<pre><span>  22:</span>         <span>return</span> arrData[1];</pre>
<pre><span>  23:</span>     });</pre>
<pre><span>  24:</span>&#160; </pre>
<pre><span>  25:</span>     <span>for</span>(<span>int</span> i = 0; i &lt; m_pipeLines; ++i)</pre>
<pre><span>  26:</span>     {</pre>
<pre><span>  27:</span>         m_colorSimplifier[i] = <span>new</span> transformer&lt;FrameData,</pre>
<pre><span>  28:</span>                              FrameData&gt;* [m_phaseCount];</pre>
<pre><span>  29:</span>&#160; </pre>
<pre><span>  30:</span>         <span>for</span> (<span>int</span> count = 0; count &lt; m_phaseCount; ++count)</pre>
<pre><span>  31:</span>         {</pre>
<pre><span>  32:</span>             m_colorSimplifier[i][count] = <span>new</span> transformer&lt;FrameData,</pre>
<pre><span>  33:</span>              FrameData&gt;([](FrameData <span>const</span>&amp; data) -&gt; FrameData</pre>
<pre><span>  34:</span>             {</pre>
<pre><span>  35:</span>                 data.m_pFrameProcesser-&gt;ApplyColorSimplifier(</pre>
<pre><span>  36:</span>                     data.m_StartHeight, data.m_EndHeight,</pre>
<pre><span>  37:</span>                     data.m_StartWidth, data.m_EndWidth);</pre>
<pre><span>  38:</span>&#160; </pre>
<pre><span>  39:</span>                 <span>return</span> data;</pre>
<pre><span>  40:</span>             });</pre>
<pre><span>  41:</span>&#160; </pre>
<pre><span>  42:</span>             <span>if</span> (count &gt; 0)</pre>
<pre><span>  43:</span>             {</pre>
<pre><span>  44:</span>                 m_colorSimplifier[i][count-1]-&gt;link_target(</pre>
<pre><span>  45:</span>                             m_colorSimplifier[i][count]);           </pre>
<pre><span>  46:</span>             }</pre>
<pre><span>  47:</span>         }</pre>
<pre><span>  48:</span>         m_colorSimplifier[i][m_phaseCount-1]-&gt;link_target(</pre>
<pre><span>  49:</span>                         m_edgeDetectionJoin);</pre>
<pre><span>  50:</span>     }</pre>
<pre><span>  51:</span>     m_edgeDetectionJoin-&gt;link_target(m_edgeDetection);</pre>
<pre><span>  52:</span>&#160; </pre>
<pre><span>  53:</span>     m_reader = <span>new</span> call&lt;FrameData&gt;([](<span>const</span> FrameData &amp; data)</pre>
<pre><span>  54:</span>     {</pre>
<pre><span>  55:</span>         FrameData newData = data;</pre>
<pre><span>  56:</span>         <span>if</span>(NULL != data.m_pVideoReader)</pre>
<pre><span>  57:</span>         {</pre>
<pre><span>  58:</span>             data.m_pVideoReader-&gt;ReadNextFrame(newData);</pre>
<pre><span>  59:</span>         }</pre>
<pre><span>  60:</span>     });</pre>
<pre><span>  61:</span>&#160; </pre>
<pre><span>  62:</span>     m_edgeDetection-&gt;link_target(m_reader);</pre>
<pre><span>  63:</span> }</pre>
</div>
</div>
<div>Then here is the code to divide a frame into chunks and send it to the network. The chunks are only sent to the first color simplification column as the network connection will pass the chunks to the next stages when a first color simplification is done.</div>
<div>&#160;</div>
<div>
<div>
<pre><span>   1:</span> <span>void</span> MultiplePipelineNetworkAgent::DoWork(FrameData&amp; data)</pre>
<pre><span>   2:</span> {</pre>
<pre><span>   3:</span>     m_Finished = false;</pre>
<pre><span>   4:</span>     <span>unsigned</span> <span>int</span> shift = data.m_neighbourArea / 2;</pre>
<pre><span>   5:</span>     <span>int</span> count = 0;</pre>
<pre><span>   6:</span>     m_ProcessedMsgs = 0;</pre>
<pre><span>   7:</span>     <span>int</span> index = 0;</pre>
<pre><span>   8:</span>     <span>for</span> (<span>unsigned</span> <span>int</span> h = shift; h &lt; (data.m_EndHeight - shift);</pre>
<pre><span>   9:</span>             h += m_step, ++count)</pre>
<pre><span>  10:</span>     {</pre>
<pre><span>  11:</span>         FrameData localData     = data;</pre>
<pre><span>  12:</span>         localData.m_StartHeight = h;</pre>
<pre><span>  13:</span>         localData.m_EndHeight   = min(h + m_step,</pre>
<pre><span>  14:</span>                                 (data.m_EndHeight - shift));</pre>
<pre><span>  15:</span>         localData.m_StartWidth  = shift;</pre>
<pre><span>  16:</span>         localData.m_EndWidth    = data.m_EndWidth - shift;</pre>
<pre><span>  17:</span>         localData.m_final       = (localData.m_EndHeight ==</pre>
<pre><span>  18:</span>                                   (data.m_EndHeight - shift));</pre>
<pre><span>  19:</span>&#160; </pre>
<pre><span>  20:</span>         index = count % m_pipeLines;</pre>
<pre><span>  21:</span>         asend(m_colorSimplifier[index][0], localData);</pre>
<pre><span>  22:</span>     }</pre>
<pre><span>  23:</span> }</pre>
</div>
</div>
<h4>Results</h4>
<p>Using data flow network showed liner speedup up to 48 cores on a video stream with frame size of 640&#215;360.</p>
<p>
  <br /><a href="http://blogs.msdn.com/blogfiles/nativeconcurrency/WindowsLiveWriter/WalkthroughCartoonEffectfilterusingdataf_F119/image_6.png"><img border="0" alt="image" src="http://blogs.msdn.com/blogfiles/nativeconcurrency/WindowsLiveWriter/WalkthroughCartoonEffectfilterusingdataf_F119/image_thumb_2.png" width="436" height="223" /></a></p>
<p>Mohamed Magdy Mohamed&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Parallel Computing Platform Team</p>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=9980819" width="1" height="1"><br /><font size="1"><b>This post originated from and is provided by the MSDN Blogs RSS feed. The original post of the article can be found <a href="http://blogs.msdn.com/nativeconcurrency/archive/2010/03/18/walkthrough-cartoon-effect-filter-using-data-flow-network.aspx" target="_blank">here</a>.</b></font></p>
]]></content:encoded>
			<wfw:commentRss>http://msdnrss.thecoderblogs.com/2010/03/17/walkthrough-cartoon-effect-filter-using-data-flow-network/feed/</wfw:commentRss>
		</item>
		<item>
		<title>꿈이 자라는 다락방 서버!! 마이크로소프트와 네이버가 응원합니다.</title>
		<link>http://msdnrss.thecoderblogs.com/2010/03/17/%ea%bf%88%ec%9d%b4-%ec%9e%90%eb%9d%bc%eb%8a%94-%eb%8b%a4%eb%9d%bd%eb%b0%a9-%ec%84%9c%eb%b2%84-%eb%a7%88%ec%9d%b4%ed%81%ac%eb%a1%9c%ec%86%8c%ed%94%84%ed%8a%b8%ec%99%80-%eb%84%a4%ec%9d%b4%eb%b2%84/</link>
		<comments>http://msdnrss.thecoderblogs.com/2010/03/17/%ea%bf%88%ec%9d%b4-%ec%9e%90%eb%9d%bc%eb%8a%94-%eb%8b%a4%eb%9d%bd%eb%b0%a9-%ec%84%9c%eb%b2%84-%eb%a7%88%ec%9d%b4%ed%81%ac%eb%a1%9c%ec%86%8c%ed%94%84%ed%8a%b8%ec%99%80-%eb%84%a4%ec%9d%b4%eb%b2%84/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 01:05:53 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[MSDN Blogs]]></category>

		<guid isPermaLink="false">http://blogs.msdn.com/popcon/archive/2010/03/18/9980823.aspx</guid>
		<description><![CDATA[&#160; 
영상이 보이지 않으면 이곳을 클릭해서 실버라이트를 설치하세요
&#8220;꿈이 자라는 다락방 서버&#8220;는&#160;Windows(WPI)와 XE를 통해 누구나 쉽게 웹서비스 및 홈페이지를&#160;개발하고 서비스할 수 있도록 도와주는 캠페인입니다!
&#8220;다락방서버&#8221; 의 웹서비스 체험 및 활용법 그리고 43인치 4D TV가 걸려있는 이벤트에 대한 궁금하신 분들은 지금 바로 &#8220;다락방서버&#8221; (www.darakserver.com) 에 접속 하시기 바랍니다!! 
&#160;

Windows Media Video (WMV)
Windows Media Audio (WMA)
iPod Video (MP4)
MP3 Audio
Zune [...]]]></description>
			<content:encoded><![CDATA[<p><P>&nbsp; </P><br />
<P><A href="http://go.microsoft.com/fwlink/?LinkID=124807"><STRONG><U>영상이 보이지 않으면 이곳을 클릭해서 실버라이트를 설치하세요</U></STRONG></A></P><SPAN><SPAN><SPAN><SPAN><FONT color="#000000" size="2"><SPAN><SPAN><SPAN><br />
<P><SPAN></SPAN><SPAN></SPAN><FONT size="3"><SPAN>&#8220;<A href="http://www.darakserver.com/index.php" target="_blank"><STRONG>꿈이 자라는 다락방 서버</STRONG></A>&#8220;는&nbsp;Windows(WPI)</SPAN><SPAN>와</SPAN><SPAN> XE</SPAN><SPAN>를 통해 누구나 쉽게 웹서비스 및 홈페이지를&nbsp;</SPAN><SPAN>개발하고 서비스할 수 있도록 도와주는 캠페인입니다!</SPAN></P><br />
<P><SPAN><SPAN><STRONG>&#8220;<STRONG><SPAN><A href="http://www.darakserver.com/event01.html" target="_blank"><SPAN>다락방서버</SPAN></A></SPAN></STRONG>&#8221; </STRONG><FONT size="3">의 웹서비스 체험 및 활용법 그리고 43인치 4D TV가 걸려있는 이벤트에 대한 궁금하신 분들은 지금 바로 &#8220;<SPAN><A href="http://www.darakserver.com/event01.html" target="_blank"><SPAN><STRONG>다락방서버</STRONG></SPAN></A></SPAN>&#8221; (<A href="http://www.darakserver.com/">www.darakserver.com</A>) 에 접속 하시기 바랍니다!! </FONT></SPAN></SPAN><SPAN><BR></SPAN></P><br />
<P><SPAN></SPAN><SPAN></SPAN>&nbsp;</P></SPAN></SPAN><SPAN><SPAN><SPAN><SPAN><br />
<UL><br />
<LI><SPAN><A title="Windows Media Video (WMV)" href="http://ecn.channel9.msdn.com/o9/ch9/6/6/2/0/6/4/darakbangserver_ch9.wmv">Windows Media Video (WMV)</A></SPAN></LI><br />
<LI><SPAN><A title="Windows Media Audio (WMA)" href="http://ecn.channel9.msdn.com/o9/ch9/6/6/2/0/6/4/darakbangserver_ch9.wma">Windows Media Audio (WMA)</A></SPAN></LI><br />
<LI><SPAN><A title="iPod Video (MP4)" href="http://ecn.channel9.msdn.com/o9/ch9/6/6/2/0/6/4/darakbangserver_ch9.mp4">iPod Video (MP4)</A></SPAN></LI><br />
<LI><SPAN><A title="MP3 Audio" href="http://ecn.channel9.msdn.com/o9/ch9/6/6/2/0/6/4/darakbangserver_ch9.mp3">MP3 Audio</A></SPAN></LI><br />
<LI><SPAN><A title="Zune Video (WMV)" href="http://ecn.channel9.msdn.com/o9/ch9/6/6/2/0/6/4/darakbangserver_Zune_ch9.wmv">Zune Video (WMV)</A></SPAN></LI></UL></SPAN></SPAN></SPAN></SPAN></SPAN></FONT></SPAN></SPAN></FONT></SPAN></SPAN><img src="http://blogs.msdn.com/aggbug.aspx?PostID=9980823" width="1" height="1"><br /><font size="1"><b>This post originated from and is provided by the MSDN Blogs RSS feed. The original post of the article can be found <a href="http://blogs.msdn.com/popcon/archive/2010/03/18/9980823.aspx" target="_blank">here</a>.</b></font></p>
]]></content:encoded>
			<wfw:commentRss>http://msdnrss.thecoderblogs.com/2010/03/17/%ea%bf%88%ec%9d%b4-%ec%9e%90%eb%9d%bc%eb%8a%94-%eb%8b%a4%eb%9d%bd%eb%b0%a9-%ec%84%9c%eb%b2%84-%eb%a7%88%ec%9d%b4%ed%81%ac%eb%a1%9c%ec%86%8c%ed%94%84%ed%8a%b8%ec%99%80-%eb%84%a4%ec%9d%b4%eb%b2%84/feed/</wfw:commentRss>
<enclosure url="http://ecn.channel9.msdn.com/o9/ch9/6/6/2/0/6/4/darakbangserver_Zune_ch9.wmv" length="25960539" type="video/x-ms-wmv" />
<enclosure url="http://ecn.channel9.msdn.com/o9/ch9/6/6/2/0/6/4/darakbangserver_ch9.mp3" length="1696148" type="audio/mpeg" />
<enclosure url="http://ecn.channel9.msdn.com/o9/ch9/6/6/2/0/6/4/darakbangserver_ch9.mp4" length="28501622" type="video/mp4" />
<enclosure url="http://ecn.channel9.msdn.com/o9/ch9/6/6/2/0/6/4/darakbangserver_ch9.wma" length="1720261" type="audio/x-ms-wma" />
<enclosure url="http://ecn.channel9.msdn.com/o9/ch9/6/6/2/0/6/4/darakbangserver_ch9.wmv" length="42760487" type="video/x-ms-wmv" />
		</item>
		<item>
		<title>Photos from the Cornell Finals</title>
		<link>http://msdnrss.thecoderblogs.com/2010/03/17/photos-from-the-cornell-finals/</link>
		<comments>http://msdnrss.thecoderblogs.com/2010/03/17/photos-from-the-cornell-finals/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 01:05:53 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[MSDN Blogs]]></category>

		<guid isPermaLink="false">http://blogs.msdn.com/firenze/archive/2010/03/17/photos-from-the-cornell-finals.aspx</guid>
		<description><![CDATA[The photostream from the finals at Cornell University&#8230;.(read more)This post originated from and is provided by the MSDN Blogs RSS feed. The original post of the article can be found here.
]]></description>
			<content:encoded><![CDATA[<p>The photostream from the finals at Cornell University&#8230;.(<a href="http://blogs.msdn.com/firenze/archive/2010/03/17/photos-from-the-cornell-finals.aspx">read more</a>)<img src="http://blogs.msdn.com/aggbug.aspx?PostID=9980813" width="1" height="1"><br /><font size="1"><b>This post originated from and is provided by the MSDN Blogs RSS feed. The original post of the article can be found <a href="http://blogs.msdn.com/firenze/archive/2010/03/17/photos-from-the-cornell-finals.aspx" target="_blank">here</a>.</b></font></p>
]]></content:encoded>
			<wfw:commentRss>http://msdnrss.thecoderblogs.com/2010/03/17/photos-from-the-cornell-finals/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Test post through windows live writer.</title>
		<link>http://msdnrss.thecoderblogs.com/2010/03/17/test-post-through-windows-live-writer/</link>
		<comments>http://msdnrss.thecoderblogs.com/2010/03/17/test-post-through-windows-live-writer/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 01:05:53 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[MSDN Blogs]]></category>

		<guid isPermaLink="false">http://blogs.msdn.com/msdnsto_sup/archive/2010/03/17/test-post-through-windows-live-writer.aspx</guid>
		<description><![CDATA[This is a Test post from windows live writer.
This post originated from and is provided by the MSDN Blogs RSS feed. The original post of the article can be found here.
]]></description>
			<content:encoded><![CDATA[<p>This is a Test post from windows live writer.</p>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=9980805" width="1" height="1"><br /><font size="1"><b>This post originated from and is provided by the MSDN Blogs RSS feed. The original post of the article can be found <a href="http://blogs.msdn.com/msdnsto_sup/archive/2010/03/17/test-post-through-windows-live-writer.aspx" target="_blank">here</a>.</b></font></p>
]]></content:encoded>
			<wfw:commentRss>http://msdnrss.thecoderblogs.com/2010/03/17/test-post-through-windows-live-writer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Lancement Dia7 … succès!</title>
		<link>http://msdnrss.thecoderblogs.com/2010/03/17/lancement-dia7-%e2%80%a6-succes/</link>
		<comments>http://msdnrss.thecoderblogs.com/2010/03/17/lancement-dia7-%e2%80%a6-succes/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 01:05:52 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[MSDN Blogs]]></category>

		<guid isPermaLink="false">http://blogs.msdn.com/fredaatz/archive/2010/03/18/lancement-dia7-succ-s.aspx</guid>
		<description><![CDATA[ Une soirée à succès avec du monde et du beau monde pour le lancement de la nouvelle gamme Dia7 … Ecouté le buzz … 
Un lancement qui a été accompagné par la mise en service de sa boutique en ligne et la pré-commande du tout dernier HTC HD2 à ses couleurs.
&#160;
    [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.msdn.com/blogfiles/fredaatz/WindowsLiveWriter/LancementDia7succs_D20/image_2.png"><img border="0" alt="image" src="http://blogs.msdn.com/blogfiles/fredaatz/WindowsLiveWriter/LancementDia7succs_D20/image_thumb.png" width="244" height="93" /></a> Une soirée à succès avec du monde et du beau monde pour le lancement de la nouvelle gamme Dia7 … Ecouté le buzz … </p>
<p>Un lancement qui a été accompagné par la mise en service de sa boutique en ligne et la pré-commande du tout dernier HTC HD2 à ses couleurs.</p>
<p>&#160;</p>
<p><a href="http://blogs.msdn.com/blogfiles/fredaatz/WindowsLiveWriter/LancementDia7succs_D20/009_2.jpg"><img border="0" alt="009" src="http://blogs.msdn.com/blogfiles/fredaatz/WindowsLiveWriter/LancementDia7succs_D20/009_thumb.jpg" width="244" height="148" /></a> <a href="http://blogs.msdn.com/blogfiles/fredaatz/WindowsLiveWriter/LancementDia7succs_D20/017_2.jpg"><img border="0" alt="017" src="http://blogs.msdn.com/blogfiles/fredaatz/WindowsLiveWriter/LancementDia7succs_D20/017_thumb.jpg" width="244" height="148" /></a> <a href="http://blogs.msdn.com/blogfiles/fredaatz/WindowsLiveWriter/LancementDia7succs_D20/012_2.jpg"><img border="0" alt="012" src="http://blogs.msdn.com/blogfiles/fredaatz/WindowsLiveWriter/LancementDia7succs_D20/012_thumb.jpg" width="244" height="148" /></a> <a href="http://blogs.msdn.com/blogfiles/fredaatz/WindowsLiveWriter/LancementDia7succs_D20/015_2.jpg"><img border="0" alt="015" src="http://blogs.msdn.com/blogfiles/fredaatz/WindowsLiveWriter/LancementDia7succs_D20/015_thumb.jpg" width="148" height="244" /></a> </p>
<p>Microsoft et l’équipe du MTC ont accompagné ce projet à la convergence du vêtement technique de Mohamed Dia, JL Errant (Boostyle en charge du produit) et des innovations technologiques telles que Windows Azure, Silverlight, Windows Phone Series …</p>
<p>Et bien sur les partenaires de ce projet: Bewise, Dotvision, RueduCommerce et HTC</p>
<p><a href="http://blogs.msdn.com/blogfiles/fredaatz/WindowsLiveWriter/LancementDia7succs_D20/roialHQ_2.jpg"><img border="0" alt="roialHQ" src="http://blogs.msdn.com/blogfiles/fredaatz/WindowsLiveWriter/LancementDia7succs_D20/roialHQ_thumb.jpg" width="244" height="119" /></a> <a href="http://blogs.msdn.com/blogfiles/fredaatz/WindowsLiveWriter/LancementDia7succs_D20/clip_image001_2.jpg"><img border="0" alt="clip_image001" src="http://blogs.msdn.com/blogfiles/fredaatz/WindowsLiveWriter/LancementDia7succs_D20/clip_image001_thumb.jpg" width="244" height="205" /></a></p>
</p>
</p>
</p>
<p>Nouveau site : <a href="http://www.dia-7.com">www.dia-7.com</a></p>
<p>Boutique : <a href="http://store.dia-7.com">http://store.dia-7.com</a></p>
<p>HTC Dia7 en exclusivité: <a title="http://www.rueducommerce.fr/htc-dia7/" href="http://www.rueducommerce.fr/htc-dia7/">http://www.rueducommerce.fr/htc-dia7/</a></p>
<p>Le futur … <a href="http://www.mygeolive.com">www.mygeolive.com</a>&#160;</p>
<p>Interview de Mohamed Dia: sur <a href="http://bit.ly/bpuLS6">frogz</a></p>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=9980800" width="1" height="1"><br /><font size="1"><b>This post originated from and is provided by the MSDN Blogs RSS feed. The original post of the article can be found <a href="http://blogs.msdn.com/fredaatz/archive/2010/03/18/lancement-dia7-succ-s.aspx" target="_blank">here</a>.</b></font></p>
]]></content:encoded>
			<wfw:commentRss>http://msdnrss.thecoderblogs.com/2010/03/17/lancement-dia7-%e2%80%a6-succes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Project Server 2010 – Even more reasons to keep your server clocks in sync</title>
		<link>http://msdnrss.thecoderblogs.com/2010/03/17/project-server-2010-%e2%80%93-even-more-reasons-to-keep-your-server-clocks-in-sync/</link>
		<comments>http://msdnrss.thecoderblogs.com/2010/03/17/project-server-2010-%e2%80%93-even-more-reasons-to-keep-your-server-clocks-in-sync/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 01:05:52 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[MSDN Blogs]]></category>

		<guid isPermaLink="false">http://blogs.msdn.com/brismith/archive/2010/03/18/project-server-2010-even-more-reasons-to-keep-your-server-clocks-in-sync.aspx</guid>
		<description><![CDATA[As we in the US (or most of us) have just changed our clocks for daylight savings this is a great time to talk synchronization of server clocks.&#160; The first section talks about things running slow, and was also applicable to 2007.&#160; If this doesn’t persuade you then the second section deals with things stopping [...]]]></description>
			<content:encoded><![CDATA[<p>As we in the US (or most of us) have just changed our clocks for daylight savings this is a great time to talk synchronization of server clocks.&#160; The first section talks about things running slow, and was also applicable to 2007.&#160; If this doesn’t persuade you then the second section deals with things stopping – which ought to be a good enough reason!</p>
<p><strong>My Farm is Running Slow!</strong></p>
<p>One possible reason for the farm, or more precisely the queue jobs, running slowly (apart from underpowered configuration) is clock synchronization between the application layer and the database (SQL Server) layer.&#160; The reason behind this is that the queue may timestamp a job that should be run immediately – but the time (Now!) is not actually now, but a few seconds or minutes into the future (or even hours!).&#160; This was also covered by a <a href="http://blogs.msdn.com/brismith/archive/2008/02/08/is-your-project-server-2007-queue-running-a-few-minutes-slow.aspx" target="_blank">posting for 2007</a>.&#160; The queue therefore delays each job by a little.&#160; May not make much difference if the time difference is small and the server is busy – but worth avoiding as the resolution is so easy.&#160; Please note – setting the Application Server clock ahead of the WFE will NOT speed up your farm by making the jobs start before they arrive :).</p>
<p><strong>My Farm isn’t Authenticating me!</strong></p>
<p>This one is new to Project Server 2010 and is related to the use of WCF.&#160; The typical symptom of this is ‘An unexpected error has occurred’ and when you track the GUID in the error message back to the ULS logs (typically on the Web Front End server) then the message will be something like:</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="bottom" width="64">
<p>e5mc</p>
</td>
<td valign="bottom" width="111">
<p>Medium&#160; </p>
</td>
<td valign="bottom" width="562">
<p>WcfSendRequest: RemoteAddress: &#8216;http://server:32843/6151221ab8334845843fc3c2bdf789ba/PSI/Authentication.svc&#8217; Channel: &#8216;Microsoft.Office.Project.Server.Interfaces.IAuthentication&#8217; Action: &#8216;http://schemas.microsoft.com/office/project/server/webservices/Authentication/GetUserByName&#8217; MessageId: &#8216;urn:uuid:66949013-4d76-4216-b077-8c81d6d025fb&#8217;</p>
</td>
</tr>
<tr>
<td valign="bottom" width="64">
<p>tkau</p>
</td>
<td valign="bottom" width="111">
<p>Unexpected</p>
</td>
<td valign="bottom" width="562">
<p>System.ServiceModel.FaultException: An error occurred when verifying security for the message. </p>
</td>
</tr>
</tbody>
</table>
<p>and you may also see a 500 internal server error logged from the web service (or in a netmon trace).&#160; Where the clock comes in to play is that the SOAP message sent to the web service has an expiry time, which is set for 5 minutes.&#160; If the Application Server happens to be outside this timeframe then it will not accept the request – and return 500, Internal Server Error, with the inner message ‘An error occurred when verifying security for the message’.&#160; If you Bing for the general WCF error you may find solutions suggesting extending the expiry – please don’t - just put the clock right!</p>
<p>These errors are from Project Server web services, and the basic SharePoint pages do not authenticate through the same pages, so other pages in the farm may be rendering just time.</p>
<p>So please make sure your servers all have the same time – and better still, the right time!</p>
<div>Technorati Tags: <a href="http://technorati.com/tags/psvr2007" rel="tag">psvr2007</a>,<a href="http://technorati.com/tags/psvr2010" rel="tag">psvr2010</a></div>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=9980796" width="1" height="1"><br /><font size="1"><b>This post originated from and is provided by the MSDN Blogs RSS feed. The original post of the article can be found <a href="http://blogs.msdn.com/brismith/archive/2010/03/18/project-server-2010-even-more-reasons-to-keep-your-server-clocks-in-sync.aspx" target="_blank">here</a>.</b></font></p>
]]></content:encoded>
			<wfw:commentRss>http://msdnrss.thecoderblogs.com/2010/03/17/project-server-2010-%e2%80%93-even-more-reasons-to-keep-your-server-clocks-in-sync/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What do those &#8220;IO requests taking longer than 15 seconds&#8221; messages on my SQL box mean?</title>
		<link>http://msdnrss.thecoderblogs.com/2010/03/17/what-do-those-io-requests-taking-longer-than-15-seconds-messages-on-my-sql-box-mean/</link>
		<comments>http://msdnrss.thecoderblogs.com/2010/03/17/what-do-those-io-requests-taking-longer-than-15-seconds-messages-on-my-sql-box-mean/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 01:05:52 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[MSDN Blogs]]></category>

		<guid isPermaLink="false">http://blogs.msdn.com/cindygross/archive/2010/03/17/what-do-those-io-requests-taking-longer-than-15-seconds-messages-on-my-sql-box-mean.aspx</guid>
		<description><![CDATA[You may be sometimes seeing stuck/stalled IO messages on one or more of your SQL Server boxes. This is something it is important to understand so I am providing some background information on it. Here is the message you may see in the SQL error log: SQL Server has encountered xxx occurrence(s) of IO requests [...]]]></description>
			<content:encoded><![CDATA[<p>You may be sometimes seeing stuck/stalled IO messages on one or more of your SQL Server boxes. This is something it is important to understand so I am providing some background information on it. Here is the message you may see in the SQL error log: SQL Server has encountered xxx occurrence(s) of IO requests taking longer than 15 seconds to complete on file [mdf_or_ldf_file_path_name] in database [dbname] (dbid). The OS file handle is 0x&#8230;. The offset of the latest long IO is: 0x&#8230;.”. The message&#8230;(<a href="http://blogs.msdn.com/cindygross/archive/2010/03/17/what-do-those-io-requests-taking-longer-than-15-seconds-messages-on-my-sql-box-mean.aspx">read more</a>)<img src="http://blogs.msdn.com/aggbug.aspx?PostID=9980798" width="1" height="1"><br /><font size="1"><b>This post originated from and is provided by the MSDN Blogs RSS feed. The original post of the article can be found <a href="http://blogs.msdn.com/cindygross/archive/2010/03/17/what-do-those-io-requests-taking-longer-than-15-seconds-messages-on-my-sql-box-mean.aspx" target="_blank">here</a>.</b></font></p>
]]></content:encoded>
			<wfw:commentRss>http://msdnrss.thecoderblogs.com/2010/03/17/what-do-those-io-requests-taking-longer-than-15-seconds-messages-on-my-sql-box-mean/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MIX-Sessions als Download – jetzt Wissen tanken!</title>
		<link>http://msdnrss.thecoderblogs.com/2010/03/17/mix-sessions-als-download-%e2%80%93-jetzt-wissen-tanken-2/</link>
		<comments>http://msdnrss.thecoderblogs.com/2010/03/17/mix-sessions-als-download-%e2%80%93-jetzt-wissen-tanken-2/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 01:05:52 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[MSDN Blogs]]></category>

		<guid isPermaLink="false">http://blogs.msdn.com/frankpr/archive/2010/03/18/mix-sessions-als-download-jetzt-wissen-tanken.aspx</guid>
		<description><![CDATA[Alle, die aus unterschiedlichen Gründen nicht an der MIX10 teilnehmen konnten (oder wollten), haben zwar leider die unglaublich gute Stimmung und die Möglichkeiten zum Netzwerken verpasst, müssen aber dennoch nicht auf die Inhalte verzichten, die hier in den vergangenen drei Tagen präsentiert wurden. Denn fast alle Sessions wurden aufgezeichnet und stehen jetzt als Video sowie [...]]]></description>
			<content:encoded><![CDATA[<p>Alle, die aus unterschiedlichen Gründen nicht an der MIX10 teilnehmen konnten (oder wollten), haben zwar leider die unglaublich gute Stimmung und die Möglichkeiten zum Netzwerken verpasst, müssen aber dennoch nicht auf die Inhalte verzichten, die hier in den vergangenen drei Tagen präsentiert wurden. Denn fast alle Sessions wurden aufgezeichnet und stehen jetzt als Video sowie in Form der PPTX-Präsentation zum “Selbststudium” bereit. Frei nach dem Motto “Selber lernen macht schlau” können die Sessions <a href="http://live.visitmix.com/videos" target="_blank">auf dieser Seite</a> spätestens 24 Stunden nach Sessionende heruntergeladen werden. Eine fantastische Gelegenheit also, in der nächsten Zeit abends einfach mal den Fernseher ausgeschaltet zu lassen und sich spannende <em>und lehrreiche</em> Inhalte anzutun! Viel Spaß!</p>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=9980792" width="1" height="1"><br /><font size="1"><b>This post originated from and is provided by the MSDN Blogs RSS feed. The original post of the article can be found <a href="http://blogs.msdn.com/frankpr/archive/2010/03/18/mix-sessions-als-download-jetzt-wissen-tanken.aspx" target="_blank">here</a>.</b></font></p>
]]></content:encoded>
			<wfw:commentRss>http://msdnrss.thecoderblogs.com/2010/03/17/mix-sessions-als-download-%e2%80%93-jetzt-wissen-tanken-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Marketplace-Zugang für Studenten jetzt kostenlos!</title>
		<link>http://msdnrss.thecoderblogs.com/2010/03/17/marketplace-zugang-fur-studenten-jetzt-kostenlos-2/</link>
		<comments>http://msdnrss.thecoderblogs.com/2010/03/17/marketplace-zugang-fur-studenten-jetzt-kostenlos-2/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 01:05:52 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[MSDN Blogs]]></category>

		<guid isPermaLink="false">http://blogs.msdn.com/frankpr/archive/2010/03/18/marketplace-zugang-f-r-studenten-jetzt-kostenlos.aspx</guid>
		<description><![CDATA[Ja, es ist wahr (auch wenn es etwas länger gedauert hat): Studenten können sich ab sofort kostenlos beim Windows Marketplace for Mobile anmelden und ihre Anwendungen für Windows Phone dort verteilen oder verkaufen, ohne die üblichen 75 € + MwSt. bezahlen zu müssen! Sie müssen lediglich bei Microsofts DreamSpark-Programm registriert sein:
 
Dann bei der Anmeldung [...]]]></description>
			<content:encoded><![CDATA[<p>Ja, es ist wahr (auch wenn es etwas länger gedauert hat): Studenten können sich ab sofort <strong>kostenlos</strong> beim Windows Marketplace for Mobile anmelden und ihre Anwendungen für Windows Phone dort verteilen oder verkaufen, ohne die üblichen 75 € + MwSt. bezahlen zu müssen! Sie müssen lediglich bei Microsofts <a href="https://www.dreamspark.com/Products/Product.aspx?ProductId=28" target="_blank">DreamSpark</a>-Programm registriert sein:</p>
<p><a href="https://www.dreamspark.com/Products/Product.aspx?ProductId=28" target="_blank"><img border="0" alt="DreamSpark" src="http://blogs.msdn.com/blogfiles/frankpr/WindowsLiveWriter/MarketplaceZugangfrStudentenjetztkostenl_6C8/image_3.png" width="511" height="260" /></a> </p>
<p>Dann bei der <a href="http://developer.windowsphone.com/Default.aspx" target="_blank">Anmeldung beim Marketplace</a> einfach Student auswählen</p>
<p><a href="http://developer.windowsphone.com/Default.aspx" target="_blank"><img border="0" alt="Marketplace" src="http://blogs.msdn.com/blogfiles/frankpr/WindowsLiveWriter/MarketplaceZugangfrStudentenjetztkostenl_6C8/image_6.png" width="517" height="246" /></a> </p>
</p>
<p>und los geht’s! </p>
<p>Na dann, nichts wie ran und coole Apps für Windows Mobile entwickeln, oder mit den <a href="http://blogs.msdn.com/windowsphone/archive/2010/03/15/windows-phone-7-series-kostenlose-tools-jetzt-verf-gbar.aspx" target="_blank">neuen kostenlosen Tools</a> vielleicht sogar schon für Windows Phone 7?</p>
<p><img src="http://blogs.msdn.com/aggbug.aspx?PostID=9980791" width="1" height="1"><br /><font size="1"><b>This post originated from and is provided by the MSDN Blogs RSS feed. The original post of the article can be found <a href="http://blogs.msdn.com/frankpr/archive/2010/03/18/marketplace-zugang-f-r-studenten-jetzt-kostenlos.aspx" target="_blank">here</a>.</b></font></p>
]]></content:encoded>
			<wfw:commentRss>http://msdnrss.thecoderblogs.com/2010/03/17/marketplace-zugang-fur-studenten-jetzt-kostenlos-2/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
