<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Greg Pakes]]></title><description><![CDATA[Thoughts, stories and ideas.]]></description><link>https://app-gregpakes-ghost-prod-01.azurewebsites.net/</link><generator>Ghost 0.9</generator><lastBuildDate>Mon, 30 Mar 2026 10:58:57 GMT</lastBuildDate><atom:link href="https://app-gregpakes-ghost-prod-01.azurewebsites.net/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[The Rise of ChatGPT: A Looming Danger to Blogging]]></title><description><![CDATA[<p>As a blogger, I have always prided myself on creating unique and valuable content for my readers. However, with the recent advancements in language generation technology, I can't help but feel a sense of unease. Meet ChatGPT, the robot that could potentially ruin the tech blogging world as we know</p>]]></description><link>https://app-gregpakes-ghost-prod-01.azurewebsites.net/the-rise-of-chatgpt-a-looming-danger-to-blogging/</link><guid isPermaLink="false">9b7d300c-545d-470f-ac61-143d26051941</guid><dc:creator><![CDATA[Greg Pakes]]></dc:creator><pubDate>Wed, 18 Jan 2023 09:50:30 GMT</pubDate><content:encoded><![CDATA[<p>As a blogger, I have always prided myself on creating unique and valuable content for my readers. However, with the recent advancements in language generation technology, I can't help but feel a sense of unease. Meet ChatGPT, the robot that could potentially ruin the tech blogging world as we know it.</p>

<p>ChatGPT, a large language model developed by OpenAI, is capable of generating human-like text with ease. This technology has the potential to revolutionize the way we create content, but it also poses a major threat to the value of human-created content.</p>

<p>One of the biggest concerns is plagiarism. With ChatGPT, it's almost impossible to tell if a piece of content was written by a human or a machine. This could lead to a proliferation of plagiarized content, making it harder for bloggers to establish credibility and build an audience.</p>

<p>But it's not just plagiarism that's a concern. The very existence of ChatGPT threatens to diminish the value of human-created content. If readers can't tell the difference between a machine-generated article and one written by a human, why would they pay for the latter?</p>

<p>So, what's the solution? Some have called for stricter regulations on language generation technology, while others have suggested a complete ban on the use of ChatGPT in content creation.</p>

<p>Personally, I think it's time to hit the "off" button on ChatGPT. As a blogger, I want to ensure that my readers know that the content they're consuming is unique and valuable, and that can only be achieved by preserving the integrity of human-created content.</p>

<p>So, let's raise our keyboards in solidarity and say it together: "ChatGPT, you're fired!"</p>

<p>P.S. I'm not saying ChatGPT is bad, it's just that we need to be careful before it becomes the next Skynet</p>

<hr>

<p>This article was entirely written by AI (ChatGPT) with the following prompt:</p>

<blockquote>
  <p>Write a blog post for my personal blog.  The blog post needs to be about the looming dangers that ChatGPT poses to blogging and how I think it will be a net negative to the tech blogging world.  The post should touch on plagiarism and how the value of human created content will be diminished as we simply can't tell the difference.  The conclusion is that I think ChatGPT should be banned.  Throw in  a couple of jokes to make it sound as though it was written by a human.</p>
</blockquote>]]></content:encoded></item><item><title><![CDATA[Welcome to Ghost]]></title><description><![CDATA[<p>You're live! Nice. We've put together a little post to introduce you to the Ghost editor and get you started. You can manage your content by signing in to the admin area at <code>&lt;your blog URL&gt;/ghost/</code>. When you arrive, you can select this post from a list</p>]]></description><link>https://app-gregpakes-ghost-prod-01.azurewebsites.net/welcome-to-ghost/</link><guid isPermaLink="false">19b7a99d-c25d-42be-b441-d9403c5004e7</guid><category><![CDATA[Getting Started]]></category><dc:creator><![CDATA[Greg Pakes]]></dc:creator><pubDate>Tue, 14 Jun 2022 05:28:44 GMT</pubDate><content:encoded><![CDATA[<p>You're live! Nice. We've put together a little post to introduce you to the Ghost editor and get you started. You can manage your content by signing in to the admin area at <code>&lt;your blog URL&gt;/ghost/</code>. When you arrive, you can select this post from a list on the left and see a preview of it on the right. Click the little pencil icon at the top of the preview to edit this post and read the next section!</p>

<h2 id="gettingstarted">Getting Started</h2>

<p>Ghost uses something called Markdown for writing. Essentially, it's a shorthand way to manage your post formatting as you write!</p>

<p>Writing in Markdown is really easy. In the left hand panel of Ghost, you simply write as you normally would. Where appropriate, you can use <em>shortcuts</em> to <strong>style</strong> your content. For example, a list:</p>

<ul>
<li>Item number one</li>
<li>Item number two
<ul><li>A nested item</li></ul></li>
<li>A final item</li>
</ul>

<p>or with numbers!</p>

<ol>
<li>Remember to buy some milk  </li>
<li>Drink the milk  </li>
<li>Tweet that I remembered to buy the milk, and drank it</li>
</ol>

<h3 id="links">Links</h3>

<p>Want to link to a source? No problem. If you paste in a URL, like <a href="http://ghost.org">http://ghost.org</a> - it'll automatically be linked up. But if you want to customise your anchor text, you can do that too! Here's a link to <a href="http://ghost.org">the Ghost website</a>. Neat.</p>

<h3 id="whataboutimages">What about Images?</h3>

<p>Images work too! Already know the URL of the image you want to include in your article? Simply paste it in like this to make it show up:</p>

<p><img src="https://ghost.org/images/ghost.png" alt="The Ghost Logo"></p>

<p>Not sure which image you want to use yet? That's ok too. Leave yourself a descriptive placeholder and keep writing. Come back later and drag and drop the image in to upload:</p>

<h3 id="quoting">Quoting</h3>

<p>Sometimes a link isn't enough, you want to quote someone on what they've said. Perhaps you've started using a new blogging platform and feel the sudden urge to share their slogan? A quote might be just the way to do it!</p>

<blockquote>
  <p>Ghost - Just a blogging platform</p>
</blockquote>

<h3 id="workingwithcode">Working with Code</h3>

<p>Got a streak of geek? We've got you covered there, too. You can write inline <code>&lt;code&gt;</code> blocks really easily with back ticks. Want to show off something more comprehensive? 4 spaces of indentation gets you there.</p>

<pre><code>.awesome-thing {
    display: block;
    width: 100%;
}
</code></pre>

<h3 id="readyforabreak">Ready for a Break?</h3>

<p>Throw 3 or more dashes down on any new line and you've got yourself a fancy new divider. Aw yeah.</p>

<hr>

<h3 id="advancedusage">Advanced Usage</h3>

<p>There's one fantastic secret about Markdown. If you want, you can write plain old HTML and it'll still work! Very flexible.</p>

<p><input type="text" placeholder="I'm an input field!"></p>

<p>That should be enough to get you started. Have fun - and let us know what you think :)</p>]]></content:encoded></item><item><title><![CDATA[TFS 2015 Artifact Variables]]></title><description><![CDATA[<p>If, like me, you have been trying to use <strong>Artifact Variables</strong> with any flavour of TFS, then I have bad news for you.  <strong>Artifact Variables</strong> are not going to be in the box in TFS 2015.  The latest I have heard is that they will be in the TFS 2016</p>]]></description><link>https://app-gregpakes-ghost-prod-01.azurewebsites.net/tfs-2015-artifact-variables/</link><guid isPermaLink="false">86fe2216-cf69-422a-9ae7-b23fa6d0f656</guid><category><![CDATA[TFS]]></category><dc:creator><![CDATA[Greg Pakes]]></dc:creator><pubDate>Thu, 30 Jun 2016 01:35:48 GMT</pubDate><content:encoded><![CDATA[<p>If, like me, you have been trying to use <strong>Artifact Variables</strong> with any flavour of TFS, then I have bad news for you.  <strong>Artifact Variables</strong> are not going to be in the box in TFS 2015.  The latest I have heard is that they will be in the TFS 2016 time frame.</p>

<h2 id="briefhistory">Brief History</h2>

<p>If you don't know what <strong>Artifact Variables</strong> are, they essentially make it easier to work with multiple artifacts in a single release.  They are a series of variables that are specific to each artifact.</p>

<h2 id="whatstheproblem">What's the problem?</h2>

<p>TFS/VSTS comes with a load of variables that are available to you throughout the release pipeline.  However, if you have multiple artifacts, then these become much less useful.</p>

<p>For example, the in-built variable <code>BUILD_BUILDNUMBER</code> will return the BuildNumber of the build that triggered the release.  But what if you need the build number of each of the artifacts?  This is what <strong>Artifact Variables</strong> would usually give you.</p>

<p>You can read more about <strong>Artifact Variables</strong> <a href="https://www.visualstudio.com/en-us/docs/release/author-release-definition/understanding-artifacts#variables">here</a>.</p>

<h2 id="solution">Solution</h2>

<p>To solve this issue, I have written an extension and published it to the Market Place.  You can find the extension here <a href="https://marketplace.visualstudio.com/items?itemName=gregpakes.artifact-variables">https://marketplace.visualstudio.com/items?itemName=gregpakes.artifact-variables</a>.</p>

<p>The github repo can be found here <a href="https://github.com/gregpakes/ArtifactVariables">https://github.com/gregpakes/ArtifactVariables</a>.</p>

<p>The extension does not supply all the variables covered in the Microsoft Documentation.  At the moment, it covers:</p>

<ul>
<li><strong>Definition Id</strong>: ReleaseArtifacts.{ArtifactName}.DefinitionId</li>
<li><strong>Definition Name</strong>: ReleaseArtifacts.{ArtifactName}.DefinitionName</li>
<li><strong>Build Number</strong>: ReleaseArtifacts.{ArtifactName}.BuildNumber</li>
<li><strong>Build Id</strong>: ReleaseArtifacts.{ArtifactName}.BuildId</li>
</ul>]]></content:encoded></item><item><title><![CDATA[CloudFlare and SSRS]]></title><description><![CDATA[<p>Firstly, I want to say that I can't get enough of <strong>CloudFlare</strong>.  Whether it's the free SSL or the instant speed boost, there's a lot to love. </p>

<p>However, I have recently had some issues which I couldn't find documented anywhere online, so hopefully this can help someone else out.</p>

<p>I</p>]]></description><link>https://app-gregpakes-ghost-prod-01.azurewebsites.net/cloudflare-and-ssrs/</link><guid isPermaLink="false">0299e05f-ff1d-4ef7-b75c-a8812902365e</guid><category><![CDATA[CloudFlare]]></category><category><![CDATA[SSRS]]></category><dc:creator><![CDATA[Greg Pakes]]></dc:creator><pubDate>Thu, 05 May 2016 02:47:31 GMT</pubDate><content:encoded><![CDATA[<p>Firstly, I want to say that I can't get enough of <strong>CloudFlare</strong>.  Whether it's the free SSL or the instant speed boost, there's a lot to love. </p>

<p>However, I have recently had some issues which I couldn't find documented anywhere online, so hopefully this can help someone else out.</p>

<p>I was trying to run <strong>SQL Server Reporting Services (SSRS)</strong> behind <strong>CloudFlare</strong>.</p>

<p>I was constantly getting prompted for a username and password.  It didn't matter how many times I entered the correct password, the response was <em>401 Unauthorized</em>.</p>

<h4 id="solution">Solution</h4>

<p>It turns out that Windows Authentication over NTLM or Kerberos actually violate the HTTP 1.1 spec and <strong>CloudFlare</strong> <em>do not support this</em>.</p>

<p>This means that you cannot run any site that requires NTLM or Kerberos behind CloudFlare.  Instead you need to look for alternative authentication methods.</p>

<p>The only alternative method available to me in SSRS 2014 is <strong>Basic</strong>.  This is a sad state of affairs, but as the site is HTTPS only, this shouldn't be too bad.  As soon as I changed the authentication method to <strong>Basic</strong>, the site started working perfectly.</p>

<p>To change the authentication type, you simply need to:</p>

<ul>
<li>Load the RSReportServer.config file</li>
<li>Find the <strong>&lt; Authentication ></strong> element.</li>
<li>Ensure only <strong>&lt; RSWindowsBasic /></strong> appears in the <strong>&lt; AuthenticationTypes ></strong> element.</li>
<li>Restart the service.</li>
</ul>

<p>More detailed instructions can be found here: <a href="https://technet.microsoft.com/en-us/library/cc281309(v=sql.105).aspx">https://technet.microsoft.com/en-us/library/cc281309(v=sql.105).aspx</a></p>

<blockquote>
  <p>SSRS 2016 (due out June 1st 2016) supports <strong>Digest</strong> authentication, which CloudFlare also supports.  So this would be a recommended change to make, if you can.</p>
</blockquote>]]></content:encoded></item><item><title><![CDATA[Powershell will not start]]></title><description><![CDATA[<p>I was getting an error recently when starting Powershell.  In short, Powershell would simply not load.  The error I received was:</p>

<blockquote>
  <p>The type initializer for "System.Management.Automation.Tracing.PSEtwLog" threw an exception.</p>
</blockquote>

<p>I resolved this by installing .Net 4.5 on the machine.</p>]]></description><link>https://app-gregpakes-ghost-prod-01.azurewebsites.net/powershell-will-not-start/</link><guid isPermaLink="false">4a299fab-8446-40e1-bd6f-616e66b00218</guid><category><![CDATA[Powershell]]></category><dc:creator><![CDATA[Greg Pakes]]></dc:creator><pubDate>Fri, 11 Mar 2016 03:48:55 GMT</pubDate><content:encoded><![CDATA[<p>I was getting an error recently when starting Powershell.  In short, Powershell would simply not load.  The error I received was:</p>

<blockquote>
  <p>The type initializer for "System.Management.Automation.Tracing.PSEtwLog" threw an exception.</p>
</blockquote>

<p>I resolved this by installing .Net 4.5 on the machine.</p>]]></content:encoded></item><item><title><![CDATA[Solving My 2 Year WiFi Dropout Issue]]></title><description><![CDATA[<p>The first thing to say is that my WiFi dropout issue is not necessarily your WiFi dropout issue.  In my 2 years trying to solve this issue, this is the biggest lesson I have learned.  There are millions of people with WiFi issues and the term "WiFi dropout" is used</p>]]></description><link>https://app-gregpakes-ghost-prod-01.azurewebsites.net/solving-my-2-year-wifi-dropout-issue/</link><guid isPermaLink="false">3282abb7-832e-495c-9229-76f6b9f6898e</guid><category><![CDATA[Wi-Fi]]></category><category><![CDATA[HyperV]]></category><dc:creator><![CDATA[Greg Pakes]]></dc:creator><pubDate>Mon, 23 Nov 2015 22:29:35 GMT</pubDate><content:encoded><![CDATA[<p>The first thing to say is that my WiFi dropout issue is not necessarily your WiFi dropout issue.  In my 2 years trying to solve this issue, this is the biggest lesson I have learned.  There are millions of people with WiFi issues and the term "WiFi dropout" is used to describe a lot of them.</p>

<blockquote>
  <p>If you do not use Hyper-V, then this is not your solution.</p>
</blockquote>

<p>I have written about my specific issue previously <a href="http://www.gregpakes.co.uk/solving-intermittent-wi-fi-dropout-issues/">here</a>.  I even claimed that I "solved" the issue.  But I am not sure I did.</p>

<p>I am very reluctant to name my laptop and specific WiFi card as I do not believe it to be related to the issue.  Although you can find this out by looking at the previous post above.  </p>

<h3 id="symptoms">Symptoms</h3>

<p>Every single day, multiple times per day, my WiFi would start dropping packets.  The issue is best shown by a screenshot of a continuous ping from my laptop to my router.</p>

<p><img src="https://res.cloudinary.com/gregpakes/image/upload/v1439623978/qqyayt9cfq5tpklfd45u.png" alt="Ping"></p>

<p>Most people probably wouldn't notice this issue in everyday internet browsing as modern browsers are so resilient that they can smooth these types of connection issues out.  There would still be a delay, but it would be very rare to get an error page.</p>

<p>I noticed the issue first during Skype calls.  The call would hang for a few seconds and then recover.</p>

<p>The issue manifested itself across Windows 8, 8.1 and 10.  With every new Windows version came new hope that the issue would be fixed.  It never happened.</p>

<h3 id="whatresolutionshaveitried">What resolutions have I tried?</h3>

<ul>
<li>Disabling U-APSD</li>
<li>A plethora of drivers (including the very latest Intel ones and Microsoft ones)</li>
<li>USB WiFi card</li>
<li>New router</li>
</ul>

<p>None of the above worked.  </p>

<h3 id="thesolution">The solution</h3>

<p>The only solution that has reliably worked is disabling the Hyper-V External Network.  </p>

<blockquote>
  <p>If you do not use Hyper-V, then it is likely your issue is not the same as mine.</p>
</blockquote>

<p>In order to get my virtual machines onto the internet, I now use Internet Connection Sharing (ICS) and this is working perfectly.</p>

<p>The setup is as follows:</p>

<ul>
<li>Internal virtual switch to VMs</li>
<li>Internet Connection Sharing (ICS) setup between my WiFi adapter and the Hyper-V internal switch.</li>
</ul>

<p>There are plenty of guides how to setup ICS with Hyper-V. <a href="https://community.emc.com/docs/DOC-15875">Like this one</a></p>

<p>And I no longer have any issues!!</p>]]></content:encoded></item><item><title><![CDATA[Stop Windows 10 automatically changing your time zone]]></title><description><![CDATA[<p>Windows 10 has just rolled out it's big November update (10586).  One of the new features is that Windows can now automatically detect where you are and change your time zone automatically.</p>

<p>If you use a VPN, this can get very frustrating.  I live in Sydney and VPN to the</p>]]></description><link>https://app-gregpakes-ghost-prod-01.azurewebsites.net/how-to-stop-windows-10-automatically-changing-the-time/</link><guid isPermaLink="false">53f88ba8-760e-4f52-abae-25051a14a388</guid><category><![CDATA[Windows 10]]></category><dc:creator><![CDATA[Greg Pakes]]></dc:creator><pubDate>Wed, 18 Nov 2015 05:17:05 GMT</pubDate><content:encoded><![CDATA[<p>Windows 10 has just rolled out it's big November update (10586).  One of the new features is that Windows can now automatically detect where you are and change your time zone automatically.</p>

<p>If you use a VPN, this can get very frustrating.  I live in Sydney and VPN to the UK everyday.  I started to notice that my clock would change to UK time.  I am thinking this is an oversight and the time shouldn't change when  connected to a VPN.</p>

<p>Here's how to disable it.</p>

<ul>
<li>Click Start</li>
<li>Type "Settings" and load the Settings app</li>
<li>Click <strong>Time &amp; Language</strong></li>
<li>Uncheck <strong>Set time zone automatically</strong></li>
</ul>

<p><img src="http://res.cloudinary.com/gregpakes/image/upload/c_scale,w_822/v1447823747/timezone/2015-11-18_16-14-07.png" alt="Settings"></p>]]></content:encoded></item><item><title><![CDATA[DSC: Adding a user into the local users group]]></title><description><![CDATA[<p>I had some difficulty trying to use the <strong>Group Resource</strong> where I was trying to add a user into the local <strong>Users</strong> group.  I was getting the following error:</p>

<blockquote>
  <p>Credentials are required to resolve the domain account INTERACTIVE. </p>
</blockquote>

<p>I was using the following code.</p>

<pre><code class="language-powershell">Group AddToUsersGroup  
{
    GroupName = "Users"
    Ensure = "Present"</code></pre>]]></description><link>https://app-gregpakes-ghost-prod-01.azurewebsites.net/dsc-adding-a-user-into-the-local-users-group/</link><guid isPermaLink="false">80d5b75b-0e14-40df-b909-617b8b961fbd</guid><category><![CDATA[Powershell]]></category><category><![CDATA[DSC]]></category><dc:creator><![CDATA[Greg Pakes]]></dc:creator><pubDate>Fri, 02 Oct 2015 02:44:42 GMT</pubDate><content:encoded><![CDATA[<p>I had some difficulty trying to use the <strong>Group Resource</strong> where I was trying to add a user into the local <strong>Users</strong> group.  I was getting the following error:</p>

<blockquote>
  <p>Credentials are required to resolve the domain account INTERACTIVE. </p>
</blockquote>

<p>I was using the following code.</p>

<pre><code class="language-powershell">Group AddToUsersGroup  
{
    GroupName = "Users"
    Ensure = "Present"
    MembersToInclude = "User1"
}
</code></pre>

<p>I was not entirely sure why this wasn't working, but it seems like it was trying to do something with the existing group member "NT AUTHORITY\INTERACTIVE" and incorrectly thinking it was part of a domain.</p>

<p>I managed to get around this issue by using the <strong>xGroup</strong> resource from the <strong>xPSDesiredStateConfiguration</strong> set of resources from <a href="https://github.com/PowerShell/xPSDesiredStateConfiguration">here</a>.</p>

<p>Changing the code as follows fixed it for me.</p>

<pre><code class="language-powershell">xGroup AddToUsersGroup  
{
    GroupName = "Users"
    Ensure = "Present"
    MembersToInclude = "User1"
}
</code></pre>]]></content:encoded></item><item><title><![CDATA[Setting Primary DNS Suffix with DSC]]></title><description><![CDATA[<p>I spent quite a while looking for a DSC (Desired State Configuration) module to set the Primary DNS Suffix without much luck.</p>

<p>Specifically, I was looking to set this field:</p>

<p><img src="https://res.cloudinary.com/gregpakes/image/upload/v1443598301/dscdnssuffix/Capture.png" alt="Primary DNS Suffix"></p>

<p>This is what I managed to get working.</p>

<pre><code class="language-powershell">$dnsSuffix = "contoso.com"

Script SetDNSSuffix  
{
    SetScript = 
    {
        Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\</code></pre>]]></description><link>https://app-gregpakes-ghost-prod-01.azurewebsites.net/weekly-pick-setting-primary-dns-suffix-with-dsc/</link><guid isPermaLink="false">686320b3-a730-4f86-b878-d615c428aab3</guid><category><![CDATA[Powershell]]></category><category><![CDATA[DSC]]></category><dc:creator><![CDATA[Greg Pakes]]></dc:creator><pubDate>Wed, 30 Sep 2015 07:32:25 GMT</pubDate><content:encoded><![CDATA[<p>I spent quite a while looking for a DSC (Desired State Configuration) module to set the Primary DNS Suffix without much luck.</p>

<p>Specifically, I was looking to set this field:</p>

<p><img src="https://res.cloudinary.com/gregpakes/image/upload/v1443598301/dscdnssuffix/Capture.png" alt="Primary DNS Suffix"></p>

<p>This is what I managed to get working.</p>

<pre><code class="language-powershell">$dnsSuffix = "contoso.com"

Script SetDNSSuffix  
{
    SetScript = 
    {
        Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\" -Name Domain -Value $dnsSuffix
        Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\" -Name "NV Domain" -Value $dnsSuffix
    }   
    TestScript = 
    {
        $currentSuffix = (Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\" -Name "NV Domain" -ErrorAction SilentlyContinue)."NV Domain"

        if ($currentSuffix -ne $dnsSuffix){
            return $false
        }
        return $true
    }   
    GetScript = 
    {
        $currentSuffix = (Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\" -Name "NV Domain" -ErrorAction SilentlyContinue)."NV Domain"

        return $currentSuffix
    }     
}
</code></pre>

<ul>
<li><strong>SetScript</strong> - Fires when the value needs to be set</li>
<li><strong>TestScript</strong> - Fires to test whether the value needs to be set</li>
<li><strong>GetScript</strong> - Gets the currently set value</li>
</ul>]]></content:encoded></item><item><title><![CDATA[Weekly Pick - Economising the Windows taskbar with folders]]></title><description><![CDATA[<p>I have been looking for a way to group items in the Windows taskbar into folders.  I seem to be putting everything I want quick access to in the taskbar, but it's getting quite crowded and looking more and more like OS X.</p>

<p>It turns out you can bring folders</p>]]></description><link>https://app-gregpakes-ghost-prod-01.azurewebsites.net/weekly-pick-economising-the-windows-taskbar-with-folders/</link><guid isPermaLink="false">7cc1175f-f9d7-4209-92ca-368be88eeee2</guid><category><![CDATA[Weekly Picks]]></category><dc:creator><![CDATA[Greg Pakes]]></dc:creator><pubDate>Thu, 24 Sep 2015 03:31:52 GMT</pubDate><content:encoded><![CDATA[<p>I have been looking for a way to group items in the Windows taskbar into folders.  I seem to be putting everything I want quick access to in the taskbar, but it's getting quite crowded and looking more and more like OS X.</p>

<p>It turns out you can bring folders into your windows taskbar very easily.  Here's how.</p>

<ol>
<li>Create a folder somewhere where you will store shortcuts to programs you want access too.  I created mine in in my <strong>Documents</strong> folder.  </li>
<li><p><strong>Right Click</strong> the taskbar -> <strong>Toolbars</strong> -> <strong>New Toolbar</strong></p>

<p><img src="https://res.cloudinary.com/gregpakes/image/upload/v1443064580/taskbartoolbar/snip_20150924131515.png" alt="Create New Toolbar" title=""></p></li>
<li><p>This then allows you to select the folder you created in step 1.</p>

<p><img src="https://res.cloudinary.com/gregpakes/image/upload/v1443064664/taskbartoolbar/snip_20150924131733.png" alt="Choose folder" title=""></p></li>
<li><p>You will then get a link to your folder on the taskbar.  It defaults to a strange view where it shows the name of the folder and then gives you an arrow to access your files.</p>

<p><img src="https://res.cloudinary.com/gregpakes/image/upload/v1443064759/taskbartoolbar/snip_20150924131913.png" alt="Default View" title=""></p></li>
<li><p>You can experiment with the settings by dragging the toolbox to make it large resulting in this.</p>

<p><img src="https://res.cloudinary.com/gregpakes/image/upload/v1443064931/taskbartoolbar/snip_20150924132205.png" alt="Expanded" title=""></p></li>
<li><p>Other settings can be reached by right clicking the toolbar.  I have highlighted the options.</p>

<p><img src="https://res.cloudinary.com/gregpakes/image/upload/v1443065059/taskbartoolbar/snip_20150924132356.png" alt="More options" title=""></p></li>
<li><p>My preferred setup is:  </p>

<ul><li>Show Text: Off</li>
<li>Show Title: Off</li>
<li>Toolbar resized small</li>
<li>Lock the taskbar
The result is:</li></ul>

<p><img src="https://res.cloudinary.com/gregpakes/image/upload/v1443065397/taskbartoolbar/endresult.png" alt="End Result" title=""></p></li>
</ol>

<p>As you can see the icons are small, they take up a small amount of space.  But the thing I like the most is that I can simply add shortcuts or Chrome applications into that folder and they're on my taskbar.  It effectively  allows me to have a mix of large and small icons on the taskbar.</p>]]></content:encoded></item><item><title><![CDATA[Weekly Pick - Managing Many Audio Devices]]></title><description><![CDATA[<p>In an increasingly connected landscape, having multiple audio devices connected to your computer is both normal and a little problematic.</p>

<p>Looking at my machine, I have the following options for audio playback and recording:</p>

<ul>
<li>Dell USB Audio (Docking Station)</li>
<li>Plantronics Savi (Wireless Headset)</li>
<li>Inbuilt/Headphone Jack</li>
<li>Webcam 920e (Microphone Only)</li></ul>]]></description><link>https://app-gregpakes-ghost-prod-01.azurewebsites.net/weekly-pick-managing-audio-devices/</link><guid isPermaLink="false">fa651c3b-15e7-4576-89ed-57e9f166c2fd</guid><category><![CDATA[Weekly Picks]]></category><dc:creator><![CDATA[Greg Pakes]]></dc:creator><pubDate>Mon, 14 Sep 2015 06:15:52 GMT</pubDate><media:content url="http://undefined.azurewebsites.net/content/images/2015/09/banner.png" medium="image"/><content:encoded><![CDATA[<img src="http://undefined.azurewebsites.net/content/images/2015/09/banner.png" alt="Weekly Pick - Managing Many Audio Devices"><p>In an increasingly connected landscape, having multiple audio devices connected to your computer is both normal and a little problematic.</p>

<p>Looking at my machine, I have the following options for audio playback and recording:</p>

<ul>
<li>Dell USB Audio (Docking Station)</li>
<li>Plantronics Savi (Wireless Headset)</li>
<li>Inbuilt/Headphone Jack</li>
<li>Webcam 920e (Microphone Only)</li>
</ul>

<p>With 4 options, it can get very confusing working out which device you are using.  Windows also doesn't provide a quick, single-click way of changing between these devices.</p>

<p>In my scenario there are a number of common setups that I need.</p>

<ul>
<li>Skype
<ul><li>Both input and output through the Plantronics Savi</li></ul></li>
<li>General Audio (System Sounds)
<ul><li>Laptop Speakers</li></ul></li>
<li>TV (Youtube/music)
<ul><li>Headphones (if plugged in)</li></ul></li>
<li>Cortana
<ul><li>Webcam microphone</li></ul></li>
</ul>

<p>Enter <a href="http://audioswit.ch/er"><strong>Audio Switcher</strong></a>.</p>

<p><strong>Audio Switcher</strong> is a piece of freeware, designed to facilitate quickly switching between your available audio devices.  It is a simple install is simple to use.</p>

<h5 id="quicklyswitchingbetweendevices">Quickly switching between devices</h5>

<p>The main feature of <strong>Audio Switcher</strong> is the ability to quickly switch between audio devices without having to load control panel.  This is as simple as right-clicking the icon and then choosing the appropriate device.</p>

<p><img src="https://res.cloudinary.com/gregpakes/image/upload/v1442209967/audioswitcher/quickselect.png" alt="Weekly Pick - Managing Many Audio Devices"></p>

<h5 id="usinghotkeys">Using HotKeys</h5>

<p>One of my favourite features is HotKeys.  With this, you can assign a shortcut to a particular configuration.  I have the following HotKeys setup.</p>

<ul>
<li>Ctrl + 1: Skype Setup</li>
<li>Ctrl + 2: Normal Setup</li>
</ul>

<p>This allows me to quickly jump between configurations really quickly and easily.</p>

<h5 id="startwithwindows">Start with Windows</h5>

<p>Be sure to set <strong>Audio Switcher</strong> to start with windows.  This is one of the settings within the preferences.</p>

<h5 id="thefuture">The Future</h5>

<p><a href="http://audioswit.ch/er">The website</a> is talking about the next version in development, which looks like it will have a major UI refresh.  </p>

<p>If you do start using this program, then I would urge you to donate.</p>

<h5 id="participate">Participate</h5>

<p>For those who are interested, this is all available on GitHub here: <a href="https://github.com/xenolightning/AudioSwitcher_v1">https://github.com/xenolightning/AudioSwitcher_v1</a>.</p>]]></content:encoded></item><item><title><![CDATA[Weekly Pick - Using the Hack Font in Visual Studio]]></title><description><![CDATA[<p><strong>Hack</strong> is an open source, hand-crafted font specifically designed for source code.  You can find out all about <strong>Hack</strong> by visiting the <a href="http://sourcefoundry.org/hack/">website</a>.</p>

<p>It's clear that a lot of thought, care and attention have gone into this project.  I have outlined some of the features taken from the webiste.</p>

<ul>
<li>Minimal</li></ul>]]></description><link>https://app-gregpakes-ghost-prod-01.azurewebsites.net/installing-hack-font-in-visual-studio/</link><guid isPermaLink="false">ceae6b79-bdd3-4dc9-ac02-9750ee3d5e7a</guid><category><![CDATA[Weekly Picks]]></category><category><![CDATA[visual studio 2015]]></category><dc:creator><![CDATA[Greg Pakes]]></dc:creator><pubDate>Tue, 08 Sep 2015 03:24:50 GMT</pubDate><media:content url="http://undefined.azurewebsites.net/content/images/2015/09/bg-hack1.png" medium="image"/><content:encoded><![CDATA[<img src="http://undefined.azurewebsites.net/content/images/2015/09/bg-hack1.png" alt="Weekly Pick - Using the Hack Font in Visual Studio"><p><strong>Hack</strong> is an open source, hand-crafted font specifically designed for source code.  You can find out all about <strong>Hack</strong> by visiting the <a href="http://sourcefoundry.org/hack/">website</a>.</p>

<p>It's clear that a lot of thought, care and attention have gone into this project.  I have outlined some of the features taken from the webiste.</p>

<ul>
<li>Minimal stroke contrast</li>
<li>Large x-height</li>
<li>Open counters (anyone know what this means?)</li>
<li>Wide apertures</li>
<li>Sturdy terminals</li>
</ul>

<p>I'm not going to go into detail about the font, but I am going to show you how to use it in Visual Studio.</p>

<h4 id="installinghackinvisualstudio">Installing Hack in Visual Studio</h4>

<ul>
<li><p>First, you need to download the font.  Head over to the <a href="http://sourcefoundry.org/hack/">website</a> and download the TrueType font.</p></li>
<li><p>The download will give you a zip file with four files in.  Extract the zip file into a folder.</p></li>
<li><p>Right-click the extracted files and select <strong>Install</strong>.</p></li>
<li><p>Load Visual Studio</p></li>
<li><p>Open the fonts configuration.  <strong>Tools -> Options -> Environment -> Fonts and Colors</strong>.  Alternatively, just type "fonts" in the <strong>quick launch</strong> box at the top right of Visual Studio.</p></li>
</ul>

<p><img src="https://res.cloudinary.com/gregpakes/image/upload/v1441682341/hackfont/VS.jpg" alt="Weekly Pick - Using the Hack Font in Visual Studio"></p>

<ul>
<li>Select <strong>Hack</strong> from the list of available fonts.  You can change the font of lots of areas in Visual Studio by using the <strong>Show settings for:</strong> drop down list, but it defaults to <strong>Text Editor</strong>, so will change the main code window.</li>
</ul>

<p>Whatever you do, make sure you give yourself time to adjust to your font choice.  It's pretty pointless changing the font, and immediately changing it back. Stick with it for a week and then decide whether you want to keep it.</p>]]></content:encoded></item><item><title><![CDATA[TFS 2015 Build vNext - Build Failed]]></title><description><![CDATA[<p>Having just installed the shiny new bits from <strong>TFS 2015</strong>, I was itching to give build vNext a go.</p>

<p>I created a basic build definition and tried to run it.  I was unceremoniously brought back to reality with the following error everytime I queued a new build.</p>

<blockquote>
  <p>Object reference not</p></blockquote>]]></description><link>https://app-gregpakes-ghost-prod-01.azurewebsites.net/tfs-2015-build-vnext-object-reference-not-set-to-an-instance-of-an-object/</link><guid isPermaLink="false">85711e07-64a2-414e-b336-52ab2bf15d08</guid><category><![CDATA[TFS]]></category><category><![CDATA[TFS 2015]]></category><dc:creator><![CDATA[Greg Pakes]]></dc:creator><pubDate>Wed, 02 Sep 2015 04:47:38 GMT</pubDate><content:encoded><![CDATA[<p>Having just installed the shiny new bits from <strong>TFS 2015</strong>, I was itching to give build vNext a go.</p>

<p>I created a basic build definition and tried to run it.  I was unceremoniously brought back to reality with the following error everytime I queued a new build.</p>

<blockquote>
  <p>Object reference not set to an instance of an object</p>
</blockquote>

<p>The error occurred as soon as I clicked <strong>Queue Build</strong> and looked like this.</p>

<p><img src="https://res.cloudinary.com/gregpakes/image/upload/v1441170627/TFS%20Build%20VNext%20Error/Capture.png" alt="Error"></p>

<h4 id="detectivework">Detective Work</h4>

<p>I started by looking in the logs for the build agent, but there was nothing valuable there.</p>

<p>I then decided to look at the <strong>Event Logs</strong> on the build agent... nothing.</p>

<p>I looked at the <strong>Event Logs</strong> on the TFS server and saw:</p>

<pre><code class="language-csharp">System.Security.Cryptography.CryptographicException: Access denied.

   at System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr)
   at System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromBlob(Byte[] rawData, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle&amp; pCertCtx)
   at System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromBlob(Byte[] rawData, Object password, X509KeyStorageFlags keyStorageFlags)
   at System.Security.Cryptography.X509Certificates.X509Certificate2.Import(Byte[] rawData)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationStrongBoxService.&lt;&gt;c__DisplayClass4.&lt;RetrieveFileAsCertificate&gt;b__2()
   at Microsoft.TeamFoundation.Framework.Server.StrongBox.StrongBoxCache.GetCertificate(TeamFoundationRequestContext requestContext, StrongBoxItemInfo item, Func`1 missDelegate)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationStrongBoxService.RetrieveFileAsCertificate(TeamFoundationRequestContext requestContext, StrongBoxItemInfo item, Boolean exportable)
   at Microsoft.VisualStudio.Services.DelegatedAuthorization.DelegatedAuthorizationConfigurationService.GetSigningCredentials(TeamFoundationRequestContext requestContext)
   at Microsoft.VisualStudio.Services.DelegatedAuthorization.PlatformDelegatedAuthorizationService.IssueSessionToken(TeamFoundationRequestContext requestContext, Nullable`1 clientId, Nullable`1 userId, String displayName, Nullable`1 validTo, String scope, IList`1 targetAccounts, SessionTokenType tokenType)
   at Microsoft.TeamFoundation.DistributedTask.Orchestration.Server.TaskHub.GeneratePersonalAccessToken(TeamFoundationRequestContext requestContext, TimeSpan tokenDuration, Identity identity)
</code></pre>

<p>This looks promising.  As this is an <strong>Access Denied</strong> error, I loaded <strong>ProcMon</strong> and recorded whilst I queued another build.  I saw the following in <strong>ProcMon</strong>.</p>

<p><img src="https://res.cloudinary.com/gregpakes/image/upload/v1441169657/TFS%20Build%20VNext%20Error/procmon.png" alt="ProcMon"></p>

<blockquote>
  <p>Tip: You can quickly locate these type of issues by searching for "denied" in <strong>ProcMon</strong></p>
</blockquote>

<p>Here we can see that the user <strong>TFSService</strong> was denied write permission to <strong>c:\programdata\microsoft\crypto\rsa\machinekeys</strong></p>

<h4 id="solutiontldr">Solution (TL;DR)</h4>

<p>The user that your TFS Job Agent (Service Account) is running under needs read/write permission to <strong>c:\programdata\microsoft\crypto\rsa\machinekeys</strong> on the TFS server.  Once you have set this up, your builds should start succeeding.</p>]]></content:encoded></item><item><title><![CDATA[Weekly Pick - Typosaurus]]></title><description><![CDATA[<p>This is a relatively new service brought to you by <a href="https://passion.digital">passion.digital</a>. </p>

<p>It is a <strong>free</strong> spell checking service for your web pages.  I am aware that most browsers have an inbuilt spell checker now and failing that, there are extensions that will do this kind of thing very well,</p>]]></description><link>https://app-gregpakes-ghost-prod-01.azurewebsites.net/weekly-pick-typosaurus/</link><guid isPermaLink="false">69f8f92c-b46c-4460-9b7d-065e0a287419</guid><category><![CDATA[Weekly Picks]]></category><dc:creator><![CDATA[Greg Pakes]]></dc:creator><pubDate>Mon, 31 Aug 2015 02:30:18 GMT</pubDate><media:content url="http://undefined.azurewebsites.net/content/images/2015/08/main.PNG" medium="image"/><content:encoded><![CDATA[<img src="http://undefined.azurewebsites.net/content/images/2015/08/main.PNG" alt="Weekly Pick - Typosaurus"><p>This is a relatively new service brought to you by <a href="https://passion.digital">passion.digital</a>. </p>

<p>It is a <strong>free</strong> spell checking service for your web pages.  I am aware that most browsers have an inbuilt spell checker now and failing that, there are extensions that will do this kind of thing very well, but I just seem to like this one.</p>

<p>There are two modes of use.  You can submit a URL to the <a href="http://typosaur.us/">site</a> or you can install the <a href="https://chrome.google.com/webstore/detail/typosaurus/nhiicdhlbhmlakdghmgalaccooknhjmp?hl=en-GB">chrome extension</a>.</p>

<p>I find it a useful service and have installed the chrome plugin.  I think it is better than the standard spell checker in chrome and recommend it.</p>

<p>Ironically, whilst spell checking this post it did flag <strong>Typosaurus</strong> as a mis-spelled word.  Which I guess is correct, but still amusing.</p>

<p><img src="https://res.cloudinary.com/gregpakes/image/upload/c_scale,w_720/v1440990721/TYposaurus/errors.png" alt="Weekly Pick - Typosaurus"></p>]]></content:encoded></item><item><title><![CDATA[Weekly Pick - Right-Click Open as Administrator for Notepad]]></title><description><![CDATA[<p>It is becoming increasingly common to receive an <strong>Access is Denied</strong> error when trying to save a file in notepad.  There are a few ways of getting around this.</p>

<h5 id="method1">Method 1</h5>

<ul>
<li>Open notepad as administrator</li>
<li>File -> Open</li>
<li>Navigate to the file you want to open</li>
</ul>

<h5 id="method2">Method 2</h5>

<ul>
<li>Use <a href="https://notepad-plus-plus.org/">Notepad+</a></li></ul>]]></description><link>https://app-gregpakes-ghost-prod-01.azurewebsites.net/weekly-pick-right-click-open-as-administrator-for-notepad/</link><guid isPermaLink="false">8b716c80-d8b6-4deb-8a5a-235dd88d0519</guid><category><![CDATA[Weekly Picks]]></category><dc:creator><![CDATA[Greg Pakes]]></dc:creator><pubDate>Fri, 28 Aug 2015 01:43:06 GMT</pubDate><content:encoded><![CDATA[<p>It is becoming increasingly common to receive an <strong>Access is Denied</strong> error when trying to save a file in notepad.  There are a few ways of getting around this.</p>

<h5 id="method1">Method 1</h5>

<ul>
<li>Open notepad as administrator</li>
<li>File -> Open</li>
<li>Navigate to the file you want to open</li>
</ul>

<h5 id="method2">Method 2</h5>

<ul>
<li>Use <a href="https://notepad-plus-plus.org/">Notepad++</a></li>
</ul>

<h5 id="mymethod">My Method</h5>

<p>Although I do use Notepad++, sometimes I just want a right-click context menu to open notepad as an administrator.</p>

<p>If you trust me, you can <a href="https://raw.githubusercontent.com/gregpakes/Blog-Downloads/master/Weekly-Picks/Open%20Notepad%20As%20Administrator.reg">download the registry file from here</a> and skip to step 4.  You may have to use right-click -> save file.</p>

<p>1. Create a new text file on your desktop.</p>

<p><img src="https://res.cloudinary.com/gregpakes/image/upload/v1440724966/Notepad%20As%20Admin/NewTextFile.jpg" alt="New Text File"></p>

<p>2. Paste the following into it.</p>

<pre><code>Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\txtfile\shell\runas\command]
@="NOTEPAD.EXE %1"
</code></pre>

<p>3. Save the file as <strong>NotepadAsAdmin.reg</strong>.  Remember to change the <strong>Save as type</strong> to <em>All Files</em>.</p>

<p><img src="https://res.cloudinary.com/gregpakes/image/upload/v1440725235/Notepad%20As%20Admin/SaveRegAs.jpg" alt="Save As"></p>

<p>4. Double click the <strong>reg</strong> file to run it.</p>

<p>5. Test by locating a text file and right clicking it.</p>

<p><img src="https://res.cloudinary.com/gregpakes/image/upload/v1440725425/Notepad%20As%20Admin/Test.jpg" alt="Right Click Test"></p>

<p><strong>You can now right click any *.txt file and select <em>Run as administrator</em>.</strong></p>

<h5 id="howdoesitwork">How does it work?</h5>

<p>This method works by giving the <strong>.txt</strong> extension a <strong>runas</strong> command in the registry.  We simply point that command to <strong>notepad.exe</strong>.</p>]]></content:encoded></item></channel></rss>