<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Windows on ZeroSharp</title><link>https://www.zerosharp.com/blog/categories/windows/</link><description>Recent content in Windows on ZeroSharp</description><generator>Hugo</generator><language>en-gb</language><copyright>Copyright © 2012–{year} Robert Anderson</copyright><lastBuildDate>Tue, 18 Sep 2018 09:27:00 +0100</lastBuildDate><atom:link href="https://www.zerosharp.com/blog/categories/windows/index.xml" rel="self" type="application/rss+xml"/><item><title>My essential web applications and iPhone apps</title><link>https://www.zerosharp.com/my-essential-web-applications/</link><pubDate>Tue, 18 Sep 2018 09:27:00 +0100</pubDate><guid>https://www.zerosharp.com/my-essential-web-applications/</guid><description>&lt;p&gt;This is part three of a series of posts about the software and tools I find invaluable. See &lt;a href="https://www.zerosharp.com/essential-applications"&gt;Part 1: essential applications&lt;/a&gt; and &lt;a href="https://www.zerosharp.com/my-essential-visual-studio-tools-and-extensions"&gt;Part 2: Visual Studio tools&lt;/a&gt;. In this post I&amp;rsquo;m covering the online applications and iPhone apps I find indispensable.&lt;/p&gt;
&lt;h2 id="gmail"&gt;&lt;a href="https://www.google.com/gmail/"&gt;Gmail&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Does the job.&lt;/p&gt;
&lt;h2 id="lastpass"&gt;&lt;a href="https://www.lastpass.com/"&gt;Lastpass&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Everyone needs a password manager.&lt;/p&gt;
&lt;h2 id="pinboard-and-the-pinswift-iphone-app"&gt;&lt;a href="https://www.pinboard.in"&gt;Pinboard&lt;/a&gt; (and the &lt;a href="https://pinswiftapp.com/"&gt;PinSwift&lt;/a&gt; iPhone app)&lt;/h2&gt;
&lt;p&gt;The best bookmark tracking tool. Simple, fast, powerful. The best mobile app for it is &lt;a href="https://pinswiftapp.com/"&gt;PinSwift&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>My essential applications</title><link>https://www.zerosharp.com/essential-applications/</link><pubDate>Fri, 07 Sep 2018 15:23:00 +0100</pubDate><guid>https://www.zerosharp.com/essential-applications/</guid><description>&lt;p&gt;This is the first in a series of posts where I list the applications that I use and enjoy the most. See &lt;a href="(/my-essential-visual-studio-tools-and-extensions)"&gt;part 2&lt;/a&gt; and &lt;a href="https://www.zerosharp.com/my-essential-web-applications"&gt;part 3&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A bit of preamble, my most powerful machine is a Windows-only desktop with lots of RAM and an SSD drive. I use it almost exclusively for development.&lt;/p&gt;
&lt;p&gt;I also have a Macbook Pro which is configured to dual-boot Windows and MacOS. The Windows machine is more or less a mirror of my main development machine. The Mac is where I do all my document editing, Word, blogging, etc. I also use it for my occasional forays in to iPhone development or other non-Windows experiments.&lt;/p&gt;</description></item><item><title>Boxstarter and checksums</title><link>https://www.zerosharp.com/boxstarter-and-checksums/</link><pubDate>Thu, 22 Sep 2016 21:04:00 +0100</pubDate><guid>https://www.zerosharp.com/boxstarter-and-checksums/</guid><description>&lt;p&gt;&lt;a href="https://www.zerosharp.com/provisioning-a-new-development-machine-with-boxstarter/"&gt;I&amp;rsquo;ve blogged before&lt;/a&gt; about using BoxStarter to efficiently provision a new development machine.&lt;/p&gt;
&lt;p&gt;This is working very well for our developers. Maintaining the installation script takes a bit of effort but the benefits are worth it.&lt;/p&gt;
&lt;p&gt;Recently, the chocolatey developers have been making things more secure and recent versions now require a checksum with any downloaded package. For now, there seems to be some difficulty using &lt;code&gt;Install-ChocolateyVsixPackage&lt;/code&gt; within BoxStarter scripts.&lt;/p&gt;</description></item><item><title>Provisioning a new development machine with BoxStarter</title><link>https://www.zerosharp.com/provisioning-a-new-development-machine-with-boxstarter/</link><pubDate>Tue, 25 Feb 2014 15:29:00 +0100</pubDate><guid>https://www.zerosharp.com/provisioning-a-new-development-machine-with-boxstarter/</guid><description>&lt;p&gt;I&amp;rsquo;ve been playing around with &lt;a href="http://boxstarter.org/"&gt;Boxstarter&lt;/a&gt; to configure my entire development environment with hardly any user intervention.&lt;/p&gt;
&lt;img class="img-right" src="https://www.zerosharp.com/images/blog/boxstarter-001.png" alt="300"&gt;
&lt;p&gt;Here are the steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install Windows 8.1 on a new machine.&lt;/li&gt;
&lt;li&gt;Login.&lt;/li&gt;
&lt;li&gt;Open a command prompt and enter the following.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;START http://boxstarter.org/package/nr/url?http://bit.ly/1kapDXI
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;That&amp;rsquo;s it!&lt;/p&gt;
&lt;p&gt;Boxstarter will self-install via ClickOnce, asking for various confirmations and ultimately it will prompt you for your login password. (This gets saved and encrypted to allow for unattended reboots and re-logins during the installation). Then the real magic begins. Boxstarter downloads and installs all your tools and configures your environment, rebooting as necessary. An hour later your full development setup is installed, including Visual Studio 2013, any VS extensions, any other programs and tools, all the browsers you need, all critical Windows updates, etc. You just saved yourself a couple of days of work and a lot of hassle.&lt;/p&gt;</description></item><item><title>How to recursively change file ownership</title><link>https://www.zerosharp.com/how-to-recursively-change-file-ownership/</link><pubDate>Thu, 28 Feb 2013 17:40:00 +0100</pubDate><guid>https://www.zerosharp.com/how-to-recursively-change-file-ownership/</guid><description>&lt;p&gt;I recently ran into some file ownership trouble after cloning a bitbucket repository.&lt;/p&gt;
&lt;p&gt;The following script saved my bacon.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# FixOwnership.ps1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# This script recursively fixes the ownership on the files in the &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# current and subdirectories.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$acct1&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;New-Object&lt;/span&gt; &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;Security&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;Principal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;NTAccount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Administrators&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$profilefolder&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Get-Item&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$acl1&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$profilefolder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;GetAccessControl&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;$acl1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;SetOwner&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$acct1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;dir &lt;/span&gt;&lt;span class="n"&gt;-r&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="nb"&gt;set-acl&lt;/span&gt; &lt;span class="n"&gt;-aclobject&lt;/span&gt; &lt;span class="nv"&gt;$acl1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;pause&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item></channel></rss>