<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
	
	>
<channel>
	<title>
	Comments for Cognim &#8211; Internet development	</title>
	<atom:link href="https://www.cognim.co.uk/comments/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.cognim.co.uk</link>
	<description>Enterprise system implementation. Making the complex simple</description>
	<lastBuildDate>Sat, 09 Jul 2016 17:37:31 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>
		Comment on Enhancing Claims with Owin Middleware &#038; Claims Transformation by whoever		</title>
		<link>https://www.cognim.co.uk/transforming-claims-claimsprincipal/#comment-198</link>

		<dc:creator><![CDATA[whoever]]></dc:creator>
		<pubDate>Sat, 09 Jul 2016 17:37:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.cognim.co.uk/?p=5385#comment-198</guid>

					<description><![CDATA[Nice article.  I was doing exactly that in my project, but the implementation you and IdentityModel present seems more elegant.  

There&#039;s only one issue, when I inject a micro ORM database (NPOCO) into where your IUserDataProvider is, it blows up, complaining something about ClaimPrincipal.  I wasn&#039;t even touching the claim principal, just calling the database and assign result to a local variable.  Not sure why.  You probably didn&#039;t see it if you do database DI in the next layer from IUserDataProvider

I ended up changing the transformation class to something like this

    public static IAppBuilder UseClaimsTransformation(this IAppBuilder app, string idType,
            Func&#060;string, Task&#060;List&#062;&#062; transformation)]]></description>
			<content:encoded><![CDATA[<p>Nice article.  I was doing exactly that in my project, but the implementation you and IdentityModel present seems more elegant.  </p>
<p>There&#8217;s only one issue, when I inject a micro ORM database (NPOCO) into where your IUserDataProvider is, it blows up, complaining something about ClaimPrincipal.  I wasn&#8217;t even touching the claim principal, just calling the database and assign result to a local variable.  Not sure why.  You probably didn&#8217;t see it if you do database DI in the next layer from IUserDataProvider</p>
<p>I ended up changing the transformation class to something like this</p>
<p>    public static IAppBuilder UseClaimsTransformation(this IAppBuilder app, string idType,<br />
            Func&lt;string, Task&lt;List&gt;&gt; transformation)</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Comment on Power BI &#8211; Quick Tip. Percent of Total by Darren Hall		</title>
		<link>https://www.cognim.co.uk/power-bi-quick-tip-percent-of-total/#comment-197</link>

		<dc:creator><![CDATA[Darren Hall]]></dc:creator>
		<pubDate>Thu, 30 Jun 2016 16:03:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.cognim.co.uk/?p=5203#comment-197</guid>

					<description><![CDATA[Thanks for your comment Luis.]]></description>
			<content:encoded><![CDATA[<p>Thanks for your comment Luis.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Comment on Power BI &#8211; Quick Tip. Percent of Total by Luis Giraldo		</title>
		<link>https://www.cognim.co.uk/power-bi-quick-tip-percent-of-total/#comment-196</link>

		<dc:creator><![CDATA[Luis Giraldo]]></dc:creator>
		<pubDate>Thu, 30 Jun 2016 14:38:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.cognim.co.uk/?p=5203#comment-196</guid>

					<description><![CDATA[Thanks it was a real solution to my problem! thanks a lot!]]></description>
			<content:encoded><![CDATA[<p>Thanks it was a real solution to my problem! thanks a lot!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Comment on Know exactly what you&#8217;ve deployed with Git, TeamCity and Octopus by Edward Ridge		</title>
		<link>https://www.cognim.co.uk/know-exactly-what-youve-released-with-git-teamcity-and-octopus/#comment-195</link>

		<dc:creator><![CDATA[Edward Ridge]]></dc:creator>
		<pubDate>Thu, 28 Apr 2016 09:21:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.cognim.co.uk/?p=4953#comment-195</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.cognim.co.uk/know-exactly-what-youve-released-with-git-teamcity-and-octopus/#comment-190&quot;&gt;Erik Eckhardt&lt;/a&gt;.

Thanks Erik, I really like the temp file idea, very clean.

I&#039;ve toyed with the idea of generating a changelog of commits between releases, but it feels to me like it would have to be done at &lt;i&gt;deploy&lt;/i&gt; time rather than build time - you could have multiple builds that get deployed (e.g. to test environments) between actual releases to production, and a change log would need to take into account all of them. It&#039;s something I&#039;ll try to follow up with a blog on.

Thanks for the comment!]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://www.cognim.co.uk/know-exactly-what-youve-released-with-git-teamcity-and-octopus/#comment-190">Erik Eckhardt</a>.</p>
<p>Thanks Erik, I really like the temp file idea, very clean.</p>
<p>I&#8217;ve toyed with the idea of generating a changelog of commits between releases, but it feels to me like it would have to be done at <i>deploy</i> time rather than build time &#8211; you could have multiple builds that get deployed (e.g. to test environments) between actual releases to production, and a change log would need to take into account all of them. It&#8217;s something I&#8217;ll try to follow up with a blog on.</p>
<p>Thanks for the comment!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Comment on Modern Logging with SeriLog and Seq by Darren Hall		</title>
		<link>https://www.cognim.co.uk/modern-logging-serilog/#comment-194</link>

		<dc:creator><![CDATA[Darren Hall]]></dc:creator>
		<pubDate>Sun, 17 Apr 2016 10:46:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.cognim.co.uk/?p=5419#comment-194</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.cognim.co.uk/modern-logging-serilog/#comment-193&quot;&gt;Sam Smith&lt;/a&gt;.

Hi Sam,
the great thing about Serilog - and really the thrust of this article - is that it allows structured logging.  You can embed your variables into the log message, which then become searchable. You can also add context which gets automatically added to every logged message.
ELMAH tends to be primarily used for catching and logging exceptions, but by adding a global exception handler, Serilog can do this too.

Some people use both, but I would stick with Serilog, it is definitely worth getting to know.

Thanks for your comment,

Darren]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://www.cognim.co.uk/modern-logging-serilog/#comment-193">Sam Smith</a>.</p>
<p>Hi Sam,<br />
the great thing about Serilog &#8211; and really the thrust of this article &#8211; is that it allows structured logging.  You can embed your variables into the log message, which then become searchable. You can also add context which gets automatically added to every logged message.<br />
ELMAH tends to be primarily used for catching and logging exceptions, but by adding a global exception handler, Serilog can do this too.</p>
<p>Some people use both, but I would stick with Serilog, it is definitely worth getting to know.</p>
<p>Thanks for your comment,</p>
<p>Darren</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Comment on Modern Logging with SeriLog and Seq by Sam Smith		</title>
		<link>https://www.cognim.co.uk/modern-logging-serilog/#comment-193</link>

		<dc:creator><![CDATA[Sam Smith]]></dc:creator>
		<pubDate>Sun, 17 Apr 2016 05:33:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.cognim.co.uk/?p=5419#comment-193</guid>

					<description><![CDATA[How does something like Serilog compare to ELMAH? Would I use both in conjunction or is Serilog a superset of ELMAH?]]></description>
			<content:encoded><![CDATA[<p>How does something like Serilog compare to ELMAH? Would I use both in conjunction or is Serilog a superset of ELMAH?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Comment on Modern Logging with SeriLog and Seq &#8211; part 2. Entry Point Logging by Darren Hall		</title>
		<link>https://www.cognim.co.uk/modern-logging-with-serilog-and-seq-part-2/#comment-192</link>

		<dc:creator><![CDATA[Darren Hall]]></dc:creator>
		<pubDate>Thu, 14 Apr 2016 09:35:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.cognim.co.uk/?p=5435#comment-192</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.cognim.co.uk/modern-logging-with-serilog-and-seq-part-2/#comment-191&quot;&gt;Nicholas Blumhardt&lt;/a&gt;.

Thanks Nicholas, I appreciate you taking the time to comment. I have adjusted the code to dispose of the outer property, thankfully using middleware it&#039;s easy to surround the call to the next piece of middleware with a using statement.

Also thanks for giving the community Serilog, it is an excellent product.

Darren]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://www.cognim.co.uk/modern-logging-with-serilog-and-seq-part-2/#comment-191">Nicholas Blumhardt</a>.</p>
<p>Thanks Nicholas, I appreciate you taking the time to comment. I have adjusted the code to dispose of the outer property, thankfully using middleware it&#8217;s easy to surround the call to the next piece of middleware with a using statement.</p>
<p>Also thanks for giving the community Serilog, it is an excellent product.</p>
<p>Darren</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Comment on Modern Logging with SeriLog and Seq &#8211; part 2. Entry Point Logging by Nicholas Blumhardt		</title>
		<link>https://www.cognim.co.uk/modern-logging-with-serilog-and-seq-part-2/#comment-191</link>

		<dc:creator><![CDATA[Nicholas Blumhardt]]></dc:creator>
		<pubDate>Wed, 13 Apr 2016 22:09:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.cognim.co.uk/?p=5435#comment-191</guid>

					<description><![CDATA[Hi Darren! Nice setup! :-)

There&#039;s one gotcha I think this approach might hit; &lt;code&gt;LogContext&lt;/code&gt; needs to be &quot;popped&quot; again by disposing the object that&#039;s returned from it, otherwise there&#039;s the potential for space leaks (*not always).

E.g.:

&lt;code&gt;var pushed = LogContext.PushProperty(&quot;Shop&quot;, siteAccessDetails.ShopName);
// Log things, then...
pushed.Dispose();&lt;/code&gt;

The * is because only the &quot;outermost&quot; property needs to be popped off, to remove any that were pushed on top of it, so you should be able to do this with only one &lt;code&gt;IDisposable&lt;/code&gt; tracked.

There&#039;s also a &lt;code&gt;PushProperties()&lt;/code&gt; method that can accept multiple &lt;code&gt;PropertyEnricher&lt;/code&gt; objects in a single call, which may simplify the &quot;popping&quot; aspect.

Cheers!]]></description>
			<content:encoded><![CDATA[<p>Hi Darren! Nice setup! 🙂</p>
<p>There&#8217;s one gotcha I think this approach might hit; <code>LogContext</code> needs to be &#8220;popped&#8221; again by disposing the object that&#8217;s returned from it, otherwise there&#8217;s the potential for space leaks (*not always).</p>
<p>E.g.:</p>
<p><code>var pushed = LogContext.PushProperty("Shop", siteAccessDetails.ShopName);<br />
// Log things, then...<br />
pushed.Dispose();</code></p>
<p>The * is because only the &#8220;outermost&#8221; property needs to be popped off, to remove any that were pushed on top of it, so you should be able to do this with only one <code>IDisposable</code> tracked.</p>
<p>There&#8217;s also a <code>PushProperties()</code> method that can accept multiple <code>PropertyEnricher</code> objects in a single call, which may simplify the &#8220;popping&#8221; aspect.</p>
<p>Cheers!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Comment on Know exactly what you&#8217;ve deployed with Git, TeamCity and Octopus by Erik Eckhardt		</title>
		<link>https://www.cognim.co.uk/know-exactly-what-youve-released-with-git-teamcity-and-octopus/#comment-190</link>

		<dc:creator><![CDATA[Erik Eckhardt]]></dc:creator>
		<pubDate>Tue, 12 Apr 2016 23:41:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.cognim.co.uk/?p=4953#comment-190</guid>

					<description><![CDATA[You don&#039;t have to create a solution or project file. All you need is to create the file in the temp build directory. For example, instead of outputting to &quot;.\ReleaseNotes.txt&quot;, you can output to &lt;code&gt;&quot;%system.teamcity.build.tempDir%\releasenotesfile_%teamcity.build.id%.txt&quot;.&lt;/code&gt;

Then, in your build step, use the parameter: &lt;code&gt;/p:OctoPackReleaseNotesFile=%system.teamcity.build.tempDir%\releasenotesfile_%teamcity.build.id%.txt&lt;/code&gt;

However, doing all this means that each package you deploy will have its own copy of the build steps, and the release itself won&#039;t have the release notes (this is a drawback because the Overview page only shows the release-level release notes, not any package-level release notes, at least with more than one package as I can&#039;t confirm what happens with one package).

Furthermore, see &lt;a href=&quot;http://open.bekk.no/generating-a-project-change-log-with-teamcity-and-powershell&quot; rel=&quot;nofollow&quot;&gt;Generating a project change log with TeamCity and Powershell&lt;/a&gt; for a script that makes a much grander set of release notes, including all commits since the last build (or release? not sure). I souped it up to include the commit sha, with a link back to the source control web site&#039;s commit page. I also plan to update the script to add links to anything that looks like a case reference back to my project management software. And finally, I plan to use the committer&#039;s user name when TeamCity hasn&#039;t yet been told which TeamCity user that committer actually is (do this in your user profile).

Last, if you accept building a new release every time you build, then add a TeamCity step, &quot;OctopusDeploy: create release&quot;, and in the additional command line arguments, put

&lt;code&gt;--releasenotesfile=&quot;%system.teamcity.build.tempDir%\releasenotesfile_%teamcity.build.id%.txt&quot;&lt;/code&gt;

This makes the Overview page in Octopus awesome!]]></description>
			<content:encoded><![CDATA[<p>You don&#8217;t have to create a solution or project file. All you need is to create the file in the temp build directory. For example, instead of outputting to &#8220;.\ReleaseNotes.txt&#8221;, you can output to <code>"%system.teamcity.build.tempDir%\releasenotesfile_%teamcity.build.id%.txt".</code></p>
<p>Then, in your build step, use the parameter: <code>/p:OctoPackReleaseNotesFile=%system.teamcity.build.tempDir%\releasenotesfile_%teamcity.build.id%.txt</code></p>
<p>However, doing all this means that each package you deploy will have its own copy of the build steps, and the release itself won&#8217;t have the release notes (this is a drawback because the Overview page only shows the release-level release notes, not any package-level release notes, at least with more than one package as I can&#8217;t confirm what happens with one package).</p>
<p>Furthermore, see <a href="http://open.bekk.no/generating-a-project-change-log-with-teamcity-and-powershell" rel="nofollow">Generating a project change log with TeamCity and Powershell</a> for a script that makes a much grander set of release notes, including all commits since the last build (or release? not sure). I souped it up to include the commit sha, with a link back to the source control web site&#8217;s commit page. I also plan to update the script to add links to anything that looks like a case reference back to my project management software. And finally, I plan to use the committer&#8217;s user name when TeamCity hasn&#8217;t yet been told which TeamCity user that committer actually is (do this in your user profile).</p>
<p>Last, if you accept building a new release every time you build, then add a TeamCity step, &#8220;OctopusDeploy: create release&#8221;, and in the additional command line arguments, put</p>
<p><code>--releasenotesfile="%system.teamcity.build.tempDir%\releasenotesfile_%teamcity.build.id%.txt"</code></p>
<p>This makes the Overview page in Octopus awesome!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Comment on Power BI &#8211; Quick Tip. Percent of Total by Darren Hall		</title>
		<link>https://www.cognim.co.uk/power-bi-quick-tip-percent-of-total/#comment-189</link>

		<dc:creator><![CDATA[Darren Hall]]></dc:creator>
		<pubDate>Sat, 09 Apr 2016 10:53:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.cognim.co.uk/?p=5203#comment-189</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.cognim.co.uk/power-bi-quick-tip-percent-of-total/#comment-188&quot;&gt;mnsen&lt;/a&gt;.

Thanks for that comment, it&#039;s great to hear that I have helped someone.

Darren]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://www.cognim.co.uk/power-bi-quick-tip-percent-of-total/#comment-188">mnsen</a>.</p>
<p>Thanks for that comment, it&#8217;s great to hear that I have helped someone.</p>
<p>Darren</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Comment on Power BI &#8211; Quick Tip. Percent of Total by mnsen		</title>
		<link>https://www.cognim.co.uk/power-bi-quick-tip-percent-of-total/#comment-188</link>

		<dc:creator><![CDATA[mnsen]]></dc:creator>
		<pubDate>Sat, 09 Apr 2016 02:59:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.cognim.co.uk/?p=5203#comment-188</guid>

					<description><![CDATA[I have read books on Dax on Bi and Dax and honestly, your demonstration is the ONLY sound one I found on this topic. You provided the best forwarded solution for calculating percentages in power BI. Looking forward to more insight from you.
Thanks in advance for the great work
M. Rayan
Seni
TX, USA]]></description>
			<content:encoded><![CDATA[<p>I have read books on Dax on Bi and Dax and honestly, your demonstration is the ONLY sound one I found on this topic. You provided the best forwarded solution for calculating percentages in power BI. Looking forward to more insight from you.<br />
Thanks in advance for the great work<br />
M. Rayan<br />
Seni<br />
TX, USA</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Comment on Gulp and Visual Studio: concatenation and minification by Edward Ridge		</title>
		<link>https://www.cognim.co.uk/gulp-vs-minification/#comment-187</link>

		<dc:creator><![CDATA[Edward Ridge]]></dc:creator>
		<pubDate>Fri, 06 Nov 2015 11:32:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.cognim.co.uk/?p=5268#comment-187</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.cognim.co.uk/gulp-vs-minification/#comment-186&quot;&gt;Jay&lt;/a&gt;.

Hi Jay, thanks for the nice comment! To answer your questions:

1) I agree that is you&#039;re working with a CSS pre-processor then ideally you don&#039;t want to check in the generated CSS - they&#039;re basically build artifacts. This is exactly what I ended up doing here, but annoyingly have since moved on from the project and forgot to write it up!

From memory, I referenced the generated CSS in my Views but didn&#039;t include them in source control. I modified the csproj to add the generated CSS in the &quot;BeforeBuild&quot; Target section, but don&#039;t believe there were any other changes. If it doesn&#039;t work let me know and I&#039;ll spend some time digging into it.

2) Yes, I&#039;ve actually had the 4th part mostly written and sitting in my drafts for a while now, but just started a new contract which has eaten up my time. I promise I will finish it off and publish ASAP!]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://www.cognim.co.uk/gulp-vs-minification/#comment-186">Jay</a>.</p>
<p>Hi Jay, thanks for the nice comment! To answer your questions:</p>
<p>1) I agree that is you&#8217;re working with a CSS pre-processor then ideally you don&#8217;t want to check in the generated CSS &#8211; they&#8217;re basically build artifacts. This is exactly what I ended up doing here, but annoyingly have since moved on from the project and forgot to write it up!</p>
<p>From memory, I referenced the generated CSS in my Views but didn&#8217;t include them in source control. I modified the csproj to add the generated CSS in the &#8220;BeforeBuild&#8221; Target section, but don&#8217;t believe there were any other changes. If it doesn&#8217;t work let me know and I&#8217;ll spend some time digging into it.</p>
<p>2) Yes, I&#8217;ve actually had the 4th part mostly written and sitting in my drafts for a while now, but just started a new contract which has eaten up my time. I promise I will finish it off and publish ASAP!</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
