<?xml version="1.0" encoding="utf-8" ?><?xml-stylesheet type="text/css" href="https://www.earthli.com/resources/styles/atom.css" ?><feed xmlns="http://www.w3.org/2005/Atom">
  <generator uri="https://www.earthli.com/news/" version="3.7">
    earthli News 3.7
  </generator>
    <title type="html" xml:lang="en-us">
    <![CDATA[Tips &amp; Tricks &gt; earthli News 3.7]]>
  </title>
  <id>https://www.earthli.com/news/</id>
  <link rel="self" href="https://www.earthli.com/news/view_folder_rss.php?content=full_html&amp;format=atom&amp;id=33"/>
  <updated>2019-07-10T21:35:20+02:00</updated>
  <icon>https://www.earthli.com/news/icons/webcore_png/app/news_100px.png</icon>
    <subtitle type="html" xml:lang="en-us">
    <![CDATA[<p>Tips for using software of all kinds.</p>
]]>
  </subtitle>
    <rights type="html" xml:lang="en-us">
    <![CDATA[Copyright (c) 1999-2026 earthli.com. All Rights Reserved.]]>
  </rights>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Source Link Flakiness in Visual Studio 2017 and 2019]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=3768</id>
    <link href="https://www.earthli.com/news/view_article.php?id=3768"/>
    <updated>2019-07-10T21:29:53+02:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<blockquote class="quote abstract "><div><p><abbr title="too long; didn't read">tl;dr</abbr>: If MSBuild/Visual Studio tells you that </p>
<div class="error ">the value of SourceRoot.RepositoryUrl is invalid…</div><p> and you have no idea what it&rsquo;s talking about, it might help to add the following to the offending project and the error becomes a warning.</p>
<pre class=" "><code> 
&lt;PropertyGroup&gt;
  &lt;EnableSourceControlManagerQueries&gt;false... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=3768">More</a>]</code></pre></div></blockquote>]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">10. Jul 2019 21:29:53 (GMT-5)</span>
</p>
<p>
Updated by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">10. Jul 2019 21:35:20 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <blockquote class="quote abstract "><div><p><abbr title="too long; didn't read">tl;dr</abbr>: If MSBuild/Visual Studio tells you that </p>
<div class="error ">the value of SourceRoot.RepositoryUrl is invalid…</div><p> and you have no idea what it&rsquo;s talking about, it might help to add the following to the offending project and the error becomes a warning.</p>
<pre class=" "><code> 
&lt;PropertyGroup&gt;
  &lt;EnableSourceControlManagerQueries&gt;false&lt;/EnableSourceControlManagerQueries&gt;
&lt;/PropertyGroup&gt;</code></pre></div></blockquote><h2>What is Source Link?</h2><p>Microsoft introduced this fancy new feature called <em>Source Link</em> that integrates with NuGet servers to deliver symbols and source code for packages.</p>
<p>This feature is opt-in and library and package providers are encouraged to enable it and host packages on a server that supports Source Link.</p>
<h2>Debugging Experience</h2><p>The debugging experience is seamless. You can debug into Source-Linked code with barely a pause in debugging.</p>
<p>The only drawback is that you don&rsquo;t have local sources, so it&rsquo;s trickier to set breakpoints in sources that haven&rsquo;t been downloaded yet. When you had local sources, you could open the source file you wanted and set a breakpoint, knowing that the debugger would look for the file in that path and be able to stop on the breakpoint.</p>
<p>Also, Visual Studio&rsquo;s default behavior is to show all debugging sources in a single tab, so you don&rsquo;t even have all of the files open that you looked at when your debug session ends. If you hover the tab, you can figure out the storage location, but it&rsquo;s a long and not very intuitive path. Also, it only contains the sources that you&rsquo;ve already requested.</p>
<p>Still, it&rsquo;s a neat feature.</p>
<h2>Getting Pushy</h2><p>However, Microsoft is doing some things that suggest that the feature is no longer 100% opt-in. The following error message cropped up in a project with absolutely no Source Link settings or packages. It doesn&rsquo;t even directly use packages that have Source Link enabled (not that that should make a difference).</p>
<p><a href="https://www.earthli.com/data/news/attachments/entry/3768/sourcelinkerror.png"><img src="https://www.earthli.com/data/news/attachments/entry/3768/sourcelinkerror.png" alt=" " style="width: 667px"></a></p>
<p>There are actually three problems here:</p>
<ol>
<li>The compiler is complaining about Source Link settings on a project that hasn&rsquo;t opted in to Source Link.</li>
<li>The compiler is <em>breaking the build</em> when Source Link cannot be enabled as expected.</li>
<li>The error/warning messages are extremely oblique and give no indication how one should address them. (Another example is the warning message shown below.)</li></ol><p>It&rsquo;s the second one that make this issue so evil. The issue crops up <em>literally out of nowhere</em> and then <em>prevents you from working</em>. The project builds. Even if I <em>wanted</em> Source Link on my project but it wasn&rsquo;t set up correctly, this is no reason to prevent me from running/debugging my product.</p>
<p>And, honestly, because of reason #3, I&rsquo;m still not sure what the actual problem is or how I can address it with anything but a workaround.</p>
<p>Because, yes, I found a workaround. Else, I wouldn&rsquo;t be writing this article.</p>
<h2>Things that Didn&rsquo;t Work</h2><p>The first time I encountered this and lost hours of precious time, I &ldquo;fixed&rdquo; it by removing Source Link support for some packages that my product imports. At the time, I thought I was getting the error message because TeamCity was producing corrupted packages when Source Link was included. It was not a quick fix to open up a different solution, remove Source Link support and re-build all packages on CI, but it seemed to work.</p>
<p>Upon reflection and further reading, this is unlikely to have been the real reason I was seeing the message or why it magically went away. Source Link support in a NuGet server involves having access to source control in order to be able to retrieve the requested sources.</p>
<p>It&rsquo;s honestly still unclear to me why Visual Studio/MSBuild is complaining about this at build-time in a local environment.</p>
<h2>The Workaround</h2><p>Today, I got the error again, in a different project. The packages I&rsquo;d suspected yesterday were not included in this product. Another, very similar product used the exact same set of packages without a problem.</p>
<p>Even though the issue <a href="https://github.com/dotnet/sourcelink/issues/159">Using SourceLink without .git directory</a> (<cite><a href="http://github.com/">GitHub</a></cite>) isn&rsquo;t really the issue I&rsquo;m having, I eventually started copying stuff from the answers into the project in my solution that failed to build.</p>
<p>Add the following to any of the offending projects and the error becomes a warning.</p>
<pre class=" "><code> 
&lt;PropertyGroup&gt;
  &lt;EnableSourceControlManagerQueries&gt;false&lt;/EnableSourceControlManagerQueries&gt;
&lt;/PropertyGroup&gt;</code></pre><p><a href="https://www.earthli.com/data/news/attachments/entry/3768/sourcelinkwarnings.png"><img src="https://www.earthli.com/data/news/attachments/entry/3768/sourcelinkwarnings.png" alt=" " style="width: 573px"></a></p>
<p>The ensuing warning? I can&rsquo;t help you there. I threw in a few other directives into the project file, but to no avail. I&rsquo;m not happy to have a compile warning for a feature I never enabled and cannot disable, but I&rsquo;m hoping that Microsoft will fix this sooner rather than later.</p>
      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Docker for Windows and Hyper-V]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=3675</id>
    <link href="https://www.earthli.com/news/view_article.php?id=3675"/>
    <updated>2019-01-20T21:46:27+01:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p>As it stands, <a href="https://docs.docker.com/docker-for-windows/install/">Docker for Windows</a> still requires Hyper-V to be enabled on the host machine. If you&rsquo;ve been around long enough, you may still believe (falsely, it turns out) that Hyper-V doesn&rsquo;t work with hyper-threading.</p>
<p>The problem with Hyper-V was apparently never that it <em>disabled</em> hyper-threading... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=3675">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">20. Jan 2019 21:46:27 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p>As it stands, <a href="https://docs.docker.com/docker-for-windows/install/">Docker for Windows</a> still requires Hyper-V to be enabled on the host machine. If you&rsquo;ve been around long enough, you may still believe (falsely, it turns out) that Hyper-V doesn&rsquo;t work with hyper-threading.</p>
<p>The problem with Hyper-V was apparently never that it <em>disabled</em> hyper-threading but that it led to <em>sub-optimal cache-usage</em> on older chips (single-core). Newer chips have many more cores and much larger caches, so the cache-poisoning issue from 2005 is no longer a problem. </p>
<p>There are still some issues because the core-virtualization of hyper-threading can also conflict with the virtualization of Hyper-V, but opinions differ on whether turning off hyper-threading is an improvement. </p>
<p>Read <a href="https://serverfault.com/questions/47411/hyper-v-and-hyper-threading-on-or-off">Hyper-V and Hyper-threading: On or off?</a> and <a href="https://www.360ict.nl/blog/use-hyper-threading-with-hyperv/">Use Hyper-Threading with HyperV?</a> for more information and analysis.</p>
      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Repairing Windows Updates that refuse to install]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=3664</id>
    <link href="https://www.earthli.com/news/view_article.php?id=3664"/>
    <updated>2019-01-20T21:45:24+01:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p><span style="width: 200px; display: table" class=" align-right"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3664/updates_dont_install.png"><img src="https://www.earthli.com/data/news/attachments/entry/3664/updates_dont_install_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3664/updates_dont_install.png">Updates won&#039;t install</a></span></span><span style="width: 200px; display: table" class=" align-right clear-right"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3664/windows_defender_not_running.png"><img src="https://www.earthli.com/data/news/attachments/entry/3664/windows_defender_not_running_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3664/windows_defender_not_running.png">Windows Defender not running</a></span></span>For quite some time now (months?), my Windows 10 installation has had a problem/corruption in its Update Database that prevented it from applying some updates.</p>
<p>At first, it was just a <em>definition</em> update for Windows Defender, which is bad enough. However, a recent update to Windows Defender <em>itself</em>... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=3664">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">20. Jan 2019 21:45:24 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p><span style="width: 200px; display: table" class=" align-right"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3664/updates_dont_install.png"><img src="https://www.earthli.com/data/news/attachments/entry/3664/updates_dont_install_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3664/updates_dont_install.png">Updates won&#039;t install</a></span></span><span style="width: 200px; display: table" class=" align-right clear-right"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3664/windows_defender_not_running.png"><img src="https://www.earthli.com/data/news/attachments/entry/3664/windows_defender_not_running_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3664/windows_defender_not_running.png">Windows Defender not running</a></span></span>For quite some time now (months?), my Windows 10 installation has had a problem/corruption in its Update Database that prevented it from applying some updates.</p>
<p>At first, it was just a <em>definition</em> update for Windows Defender, which is bad enough. However, a recent update to Windows Defender <em>itself</em> could not be applied and this conflict prevented Windows from even <em>starting</em> Windows Defender Antivirus.</p>
<p>That&rsquo;s not great.</p>
<p><span class="clear-both"></span></p>
<h2>Finally: A Solution</h2><p>Digging around online in this problem area is complicated by the fact that there are so many Windows users and so many versions and <em>so many configurations</em>. Many users offer advice when they don&rsquo;t know what they&rsquo;re talking about. A lot of threads quickly devolve into <span class="quote-inline">&ldquo;I re-installed Windows and the problem went away&rdquo;</span>.</p>
<p>Well, duh. If the muffler falls off of your car, <em>technically</em> you can solve that problem by buying a new car. I&rsquo;m just not interesting in the nuclear option; it costs so much time and effort. At Encodo, we have a base image, but it still takes time to get everything back to where it was.</p>
<p>After keying in the KB ID (Knowledge Base ID) of the update and searching a few threads, I finally landed on <a href="https://answers.microsoft.com/en-us/windows/forum/windows_10-update/windows-defender-update-kb4052623-has-been-failing/3555d9b1-006f-4dc7-b445-3368aa4daf06">Windows Defender update KB4052623 has been failing to install with error 0x80070643 for months</a>, which is an accurate description of my issue. That was encouraging.</p>
<p>Lower on the page is a comment that recommends using the <a href="https://support.microsoft.com/en-us/help/10164/fix-windows-update-errors">Windows Update Troubleshooter</a>, a tool I&rsquo;d never heard of before. It does what it advertises, at least for me. [1]</p>
<p>That the feedback contained two errors, one of which the tool couldn&rsquo;t repair wasn&rsquo;t encouraging, but after a restart, Windows Update was up-to-date and Windows Defender was running again.</p>
<p><span style="width: 200px; display: table" class=" align-left"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3664/windows_update_troubleshooter_running.png"><img src="https://www.earthli.com/data/news/attachments/entry/3664/windows_update_troubleshooter_running_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3664/windows_update_troubleshooter_running.png">Windows Update Troubleshooter Running</a></span></span><span style="width: 200px; display: table" class=" align-left"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3664/windows_update_troubleshooter_feedback.png"><img src="https://www.earthli.com/data/news/attachments/entry/3664/windows_update_troubleshooter_feedback_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3664/windows_update_troubleshooter_feedback.png">Windows Update Troubleshooter Feedback</a></span></span><span style="width: 200px; display: table" class=" align-left"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3664/windows_up_to_date.png"><img src="https://www.earthli.com/data/news/attachments/entry/3664/windows_up_to_date_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3664/windows_up_to_date.png">Windows is up-to-date again!</a></span></span></p>
<p><hr></p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3664_1_body" class="footnote-number">[1]</span> The poor soul who wrote <a href="https://answers.microsoft.com/en-us/windows/forum/windows_10-security/kb4052623-version-4161765618052-error-0x80070643/a1e767bb-7225-4e11-998c-3a620c980f62">KB4052623 (Version 4.16.17656.18052) − Error 0x80070643 Defender Troubleshooter − gives conflicting reports</a> had another experience, but that might have been with an earlier version of the tool.</div>      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Syncing Contacts with the Apple iCloud]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=3684</id>
    <link href="https://www.earthli.com/news/view_article.php?id=3684"/>
    <updated>2019-01-20T21:42:00+01:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<blockquote class="quote abstract "><div><abbr title="too long; didn't read">too long; didn&rsquo;t read</abbr>: Back up with Time Machine before syncing your contacts via iCloud. If iCloud wipes out your contacts, you can restore the <code>~/Library/Application Support/AddressBook/</code> folder to get them back.</div></blockquote><p>I regularly use two MacOS devices and one iOS device. Considering who else already... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=3684">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">20. Jan 2019 21:42:00 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <blockquote class="quote abstract "><div><abbr title="too long; didn't read">too long; didn&rsquo;t read</abbr>: Back up with Time Machine before syncing your contacts via iCloud. If iCloud wipes out your contacts, you can restore the <code>~/Library/Application Support/AddressBook/</code> folder to get them back.</div></blockquote><p>I regularly use two MacOS devices and one iOS device. Considering who else already has my contacts, I figure it was time, for convenience&rsquo;s sake, to use Apple&rsquo;s iCloud to sync my contacts across the three devices.</p>
<p>I obviously not writing this article to inform the world that everything went smoothly.</p>
<ul>
<li>My desktop has the definitive list of contacts.</li>
<li>My phone has a copy of these contacts, synced recently.</li>
<li>My laptop has only a handful of contacts with only phone numbers. [1]</li></ul><p>So how should I proceed?</p>
<p>Well, obviously, turn on syncing contacts to iCloud from the desktop, to &ldquo;prime&rdquo; the contacts with the definitive list. Then, turn on syncing from the laptop and phone. I didn&rsquo;t expect any issues.</p>
<p>What did I get?</p>
<ul>
<li>When I turned on syncing on the desktop, it didn&rsquo;t ask me anything. I didn&rsquo;t think anything of it.</li>
<li>When I turned on syncing on the laptop, it asked if I wanted to <em>merge</em> my contacts to the cloud. I assumed that this meant it was going to merge with the contacts that had already synced from the desktop. I didn&rsquo;t expect any problems since the laptop contacts were duplicates of the existing contacts (names and phone numbers were already in the other list). At most, I figured I&rsquo;d have to resolve an easy merge-conflict or two.</li>
<li>The merge went seamlessly.</li>
<li>However, I didn&rsquo;t see any of the desktop contacts show up on the laptop, even after waiting what I felt was an appropriate period.</li>
<li>Instead, when I looked at the desktop, I was greeted with a very short list of contacts—the list of contacts from the laptop, in fact.</li>
<li><strong>iCloud:</strong> You keep using that word &ldquo;merge&rdquo;; I don&rsquo;t think it means what you think it means.</li>
<li>iCloud leaned back and folded its hands, a job well-done. I had only the smallest possible list of contacts and all of my contacts I&rsquo;d curated over two decades were gone.</li></ul><p>Well, I&rsquo;m not an idiot, so they weren&rsquo;t <em>really</em> gone. But iCloud had made a bit of work for me. If this happens to you, you can get your contacts back by doing the following:</p>
<ol>
<li>Focus the <em>Finder</em>.</li>
<li>Select the <code>Go</code> menu.</li>
<li>Hold <kbd>⌥</kbd> to show the <code>Library</code> folder in the menu; select it to open a new <em>Finder</em> window.</li>
<li>Browse to the <code>~/Library/Application Support/AddressBook/</code> folder</li>
<li>Enter the Time Machine (I used the icon in the menu bar.</li>
<li>Restore that folder to a previous version.</li>
<li>You should see your prior contacts appear in the <em>Contacts</em> application.</li></ol><p>Syncing worked properly for me after that.</p>
<p>It&rsquo;s still a mystery to me how this could have failed to work properly. Apple has enough engineers and syncing a few address-book items isn&rsquo;t rocket science.</p>
<p><hr></p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3684_1_body" class="footnote-number">[1]</span> I&rsquo;d done this on vacation, when I&rsquo;d started using Messages more.</div>      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[SQL Server Express Windows Authentication error]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=3377</id>
    <link href="https://www.earthli.com/news/view_article.php?id=3377"/>
    <updated>2017-02-19T21:49:10+01:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p>Since the beginning of the year, I&rsquo;ve been plagued by an intermittent error while connecting to SQL Server Express with default Windows authentication:</p>
<blockquote class="quote quote-block "><div>&ldquo;Login failed. The login is from an untrusted domain and cannot be used with Windows authentication. (Microsoft SQL Server, Error: 18452)&rdquo;</div></blockquote><p>The... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=3377">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">19. Feb 2017 21:49:10 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p>Since the beginning of the year, I&rsquo;ve been plagued by an intermittent error while connecting to SQL Server Express with default Windows authentication:</p>
<blockquote class="quote quote-block "><div>&ldquo;Login failed. The login is from an untrusted domain and cannot be used with Windows authentication. (Microsoft SQL Server, Error: 18452)&rdquo;</div></blockquote><p>The first time I encountered it, I was only able to fix it by logging out of Windows and logging back on. The second time, it went away the next morning after I&rsquo;d logged back in after hibernation. I recently ran into the problem again and wanted to get to the bottom of it. Restarting SQL Server Express had no effect.</p>
<p>After some dead-end search results, I found an answer at the following page: <a href="http://stackoverflow.com/questions/546746/sql-server-2008-windows-auth-login-error-the-login-is-from-an-untrusted-domain#6553362">SQL Server 2008 Windows Auth Login Error: The login is from an untrusted domain</a> (<cite><a href="http://stackoverflow.com/">StackOverflow</a></cite>):</p>
<blockquote class="quote quote-block "><div>&ldquo;Make sure you aren&rsquo;t connected to a VPN on another domain\user&rdquo;</div></blockquote><p>That was the answer for me: I was indeed connected to a customer VPN using <em>SonicWall</em>. Instead of just authenticating to the database with the user that I&rsquo;d used to log in to Windows (my primary login), Windows was using the login that I&rsquo;d used to connect to the VPN. It&rsquo;s unfortunate that Windows cannot do the right thing in this case, but the solution is to log out of the VPN, after which SQL Server Express once again works as expected with Windows authentication.</p>
      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Set Up Spell-checking Languages in MacOS]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=3353</id>
    <link href="https://www.earthli.com/news/view_article.php?id=3353"/>
    <updated>2017-01-08T23:02:33+01:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p>For the impatient (<abbr title="Too long; didn't read">tl;dr</abbr>):</p>
<ol>
<li>Open <em>System Preferences</em></li>
<li>Select the <em>Keyboard</em> panel</li>
<li>Activate the <em>Text</em> page</li>
<li>Show the drop-down under <em>Spelling:</em></li>
<li>Select the last item in the list, named <em>Set Up…</em></li>
<li>Check/uncheck to select and drag &amp; drop to sort your preferred languages</li></ol><h2>Details and Screenshots</h2><p>I recently... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=3353">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">8. Jan 2017 23:02:33 (GMT-5)</span>
</p>
<p>
Updated by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">8. Jan 2017 23:04:37 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p>For the impatient (<abbr title="Too long; didn't read">tl;dr</abbr>):</p>
<ol>
<li>Open <em>System Preferences</em></li>
<li>Select the <em>Keyboard</em> panel</li>
<li>Activate the <em>Text</em> page</li>
<li>Show the drop-down under <em>Spelling:</em></li>
<li>Select the last item in the list, named <em>Set Up…</em></li>
<li>Check/uncheck to select and drag &amp; drop to sort your preferred languages</li></ol><h2>Details and Screenshots</h2><p>I recently set up a new Mac to work on develop iOS apps at <a href="http://encodo.com">Encodo</a>. I relatively quickly noticed that the machine was set up for British English (en-GB) rather than my customary US English (en-US). There aren&rsquo;t many differences, and I could have lived with the display language in en-GB, but the spellchecker was driving me nuts.</p>
<p><span style="width: 200px; display: table" class=" align-left"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3353/choose_main_languages.png"><img src="https://www.earthli.com/data/news/attachments/entry/3353/choose_main_languages_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3353/choose_main_languages.png">Choose Main Languages</a></span></span>First, I fired up the <em>Language and Region</em> preferences panel in the <em>System Preferences</em>. I removed British English and installed US English instead. Some applications updated immediately and the others updated after I&rsquo;d logged out once and logged back in.</p>
<p><span style="width: 200px; display: table" class=" align-left clear-left"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3353/opera_language_preferences.png"><img src="https://www.earthli.com/data/news/attachments/entry/3353/opera_language_preferences_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3353/opera_language_preferences.png">Opera Language Preferences</a></span></span>But the spell-checker was unaffected. I do a lot of writing in the Opera browser, which also has standard language settings. As far as I know, those sent to web servers as part of requests to indicate which languages are &ldquo;acceptable&rdquo;. I noticed that here, too, British English had been installed (presumably matched to the prior system language). I switch to US English but was disappointed to see that these language settings didn&rsquo;t control the spell-checker in the browser.</p>
<p><span style="width: 196px; display: table" class=" align-left clear-left"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3353/set_up_spell-checking_languages.png"><img src="https://www.earthli.com/data/news/attachments/entry/3353/set_up_spell-checking_languages_tn.png" alt=" " style="width: 196px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3353/set_up_spell-checking_languages.png">Set Up Spell-checking Languages</a></span></span>So where was Opera getting its spell-checking dictionary? From the OS? But I&rsquo;d already told the OS to use US English, hadn&rsquo;t I? Or had I? Just because the OS is using US English to <em>display</em> text doesn&rsquo;t mean it&rsquo;s using it to <em>proof</em> text. Fine. I gave up temporarily, resigned to ignoring red. wavy lines for missing &ldquo;u&rdquo;s in &ldquo;color&rdquo; and &ldquo;favorite&rdquo; and for improper &ldquo;z&rdquo;s where &ldquo;s&rdquo;s were expected in &ldquo;synchronize&rdquo; and &ldquo;personalize&rdquo;.</p>
<p><span style="width: 200px; display: table" class=" align-left clear-left"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3353/choose_spell-checking_languages.png"><img src="https://www.earthli.com/data/news/attachments/entry/3353/choose_spell-checking_languages_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3353/choose_spell-checking_languages.png">Choose Spell-checking Languages</a></span></span>Just today, though, I finally searched for &ldquo;MacOS change spell-checking language&rdquo;—rather than searching for &ldquo;Opera change spell-checking language&rdquo;—and hit paydirt. The settings for which spellcheckers to use in MacOS are found not in <em>Language and Region</em> but in <em>Keyboard</em> =&gt; <em>Text</em>. Naturally. From there, you can enable/disable and change the order of the available spell-checking languages not by clicking a button labeled <kbd>Set Up…</kbd> but by selecting the last item in the drop-down under <em>Spelling</em>.</p>
      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Avoiding Planned Obsolescence with a MacBook Pro]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=3286</id>
    <link href="https://www.earthli.com/news/view_article.php?id=3286"/>
    <updated>2016-07-11T23:27:18+02:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<blockquote class="quote abstract "><div>Some friends of mine have an older MacBook Pro, from mid-2010. I recently helped them upgrade from OS X 10.6 to 10.11 (El Capitan). The following article grew out of instructions I sent them for taking the next step: upgrading some hardware to increase the longevity of their laptop even further. I... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=3286">More</a>]</div></blockquote>]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">11. Jul 2016 23:27:18 (GMT-5)</span>
</p>
<p>
Updated by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">11. Jul 2016 23:31:12 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <blockquote class="quote abstract "><div>Some friends of mine have an older MacBook Pro, from mid-2010. I recently helped them upgrade from OS X 10.6 to 10.11 (El Capitan). The following article grew out of instructions I sent them for taking the next step: upgrading some hardware to increase the longevity of their laptop even further. I added a lot more detail after I&rsquo;d upgraded my own end-2009 iMac with a new SSD.</div></blockquote><p>By jumping five OS versions, you&rsquo;ve got lots of new toys—better mail and calendar integration, a new <em>Photos</em> application, <em>Messages</em>, <em>FaceTime</em>, etc. The machine is pretty quick for most things, but you’ll bog down running a lot of things at once or running larger apps with lots of data like <em>Photos</em>. That’s because the new OS is a bit more efficient than the old one, but the amount of data you’re slinging is big for 4GB of RAM (e.g. thousands of thumbnails for <em>Photos</em>, <em>Chrome</em> with several tabs, etc.).</p>
<p>There are two things you can do to address this:</p>
<ul>
<li>Increase RAM from 4GB to 8GB/16GB to be able to run more apps at once</li>
<li>Upgrade storage from HD to SSD to improve average drive speed by about 3-4x</li></ul><p><abbr title="too long; didn't read">tl;dr</abbr>: With $230 and knowing how to use a screwdriver, you can speed things up considerably and postpone an upgrade for years.</p>
<p>You can stick with what you have, but you’ll have to baby the machine more to avoid slowdowns (e.g. quit <em>Chrome</em> before you start <em>Photos</em>).</p>
<p>If you&rsquo;re interested, read on.</p>
<h2>Recommendation</h2><p>See the <a href="#shoppinglist">Shopping List</a> below for a full list of possibilities and links if you want to shop around.</p>
<p>I recommend:</p>
<ul>
<li><a href="https://eshop.macsales.com/item/Other%20World%20Computing/8566DDR3S8GP/">8GB RAM upgrade</a> ($52)</li>
<li><a href="https://eshop.macsales.com/item/Other%20World%20Computing/YSSDMP480/">480GB SSD Upgrade Kit</a> ($182)</li></ul><p>Why those?</p>
<p>Kath and I have found 8GB of RAM to be the sweet spot for home users. Only developers/gamers need 16GB. No sense spending money on more unless you just want MOAR.</p>
<p>It took you 6 years to get up to 210GB of space on your drive. While 240GB is enough, you might as well get some room to grow while you upgrade the speed. 1TB is more than you need unless you get into video-editing, which tends to eat a lot of space. If you start to store large movies, get a regular external drive (HDD) for that. No SSD needed.</p>
<h2>Step-by-Step Guide</h2><h3>Preparation</h3><ol>
<li>Make sure you can boot the Mac once you&rsquo;ve removed the old hard drive (see <a href="#choosebootdisk">Choosing a Boot Disk</a>)</li>
<li>Back up with Time Machine</li>
<li>Disconnect the Time Machine drive</li>
<li>Shut down</li></ol><h3>Install RAM</h3><p>See <a href="#hardwareinstallation">Hardware Installation</a> for a video.</p>
<ol>
<li>Remove bottom of laptop (see videos below; use the screwdrivers provided with the SSD kit)</li>
<li>Install the RAM</li>
<li>Replace bottom; secure with one or two screws</li>
<li>Boot up; verify it has 8GB (click “About This Mac” in the top-left Apple menu)</li>
<li>Shut down</li></ol><h3>Install SSD</h3><p>See <a href="#hardwareinstallation">Hardware Installation</a> for a video.</p>
<ol>
<li>Remove bottom of laptop</li>
<li>Install the SSD</li>
<li>Replace bottom; secure with one or two screws</li></ol><h3>Transfer data</h3><p>The following detailed steps are what I did to restore my OS to the new SSD. [1]</p>
<ol>
<li>Connect the Time Machine drive</li>
<li>Boot up while holding down <kbd>⌥</kbd></li>
<li><a href="https://www.earthli.com/data/news/attachments/entry/3286/boot-mac-external-drive.jpg"><img src="https://www.earthli.com/data/news/attachments/entry/3286/boot-mac-external-drive_tn.jpg" alt=" " class=" align-right"></a><a href="https://www.earthli.com/data/news/attachments/entry/3286/145418-qmfolder188_original.png"><img src="https://www.earthli.com/data/news/attachments/entry/3286/145418-qmfolder188_original_tn.png" alt=" " class=" align-right clear-right"></a>You will see the <em>Startup Manager</em> (first image, right) with your Time Machine or USB stick drive shown. If you instead see only a gray screen for 30 seconds, then a folder with a question mark (second image, right), reboot and try again.</li>
<li>Select the boot drive and press <kbd>Enter</kbd> to boot from that drive</li>
<li><a href="https://www.earthli.com/data/news/attachments/entry/3286/lionrestoremodeutilities-386-245885.png"><img src="https://www.earthli.com/data/news/attachments/entry/3286/lionrestoremodeutilities-386-245885_tn.png" alt=" " class=" align-right clear-right"></a>You should see the OS X Recovery Console (third image, right)</li>
<li><span id="formatdisk"></span>The first step is to set up the new SSD so that the installer recognizes it as a valid drive (it&rsquo;s currently completely empty). Start the <em>Disk Utility</em> (last option in the list).</li>
<li><a href="https://www.earthli.com/data/news/attachments/entry/3286/diskutilityerase.jpg"><img src="https://www.earthli.com/data/news/attachments/entry/3286/diskutilityerase_tn.jpg" alt=" " class=" align-right clear-right"></a>Select the SSD on the left, then press the <em>Erase</em> button in the toolbar.</li>
<li>In the dialog, make sure the settings are as shown, with the <em>Format</em> set to &ldquo;OS X Extended (Journaled)&rdquo; and <em>Scheme</em> set to &ldquo;GUID Partition Map&rdquo; (the defaults). Choose whatever name for the drive that you like.</li>
<li>Press <em>Erase</em> to format the SSD. This should only take a few seconds.</li>
<li>When finished, quit the <em>Disk Utility</em> (press <kbd>⌘</kbd> + <kbd>Q</kbd>)</li>
<li>You should be back at the <em>Recovery Console</em> with the list of &ldquo;Mac OS X Utilites&rdquo; (third image, right).</li>
<li>Click the first option, &ldquo;Restore from a Time Machine backup&rdquo;</li>
<li>First, &ldquo;Select a Backup Source&rdquo;. Give it a few seconds to find your Time Machine Backup drive. Don&rsquo;t panic if the list shows no items at first.</li>
<li>Select your Time Machine drive and continue</li>
<li>Wait while your backup is restored to the new drive. [2]</li>
<li>Reboot and start up normally</li>
<li>Verify everything is OK (startup should already be much faster)</li></ol><h3>Close it up</h3><ol>
<li>Shut down</li>
<li>Replace remaining screws</li>
<li>Start up again</li>
<li>Enjoy the speed</li></ol><h3>Post-Restore Steps</h3><p>After you&rsquo;ve restored your Time Machine backup to the new drive, you&rsquo;ll have to let OS X do a little bookkeeping. Specifically,</p>
<ul>
<li><em>Mail</em> will want to restore your mail database. This is an expected result of having restored from the backup. Let it churn its way through your mails and you&rsquo;ll be ready to go in a few minutes.</li>
<li><em>Photos</em> will also want to &ldquo;repair&rdquo; your Photo Library. You&rsquo;ll have to let it do its thing as well—mine took about twenty minutes to finish.</li></ul><p>After that, you should be all set and have a much faster machine. [3]</p>
<h2><span id="shoppinglist">Shopping list</span></h2><p>RAM upgrade options:</p>
<ul>
<li><a href="https://eshop.macsales.com/item/Other%20World%20Computing/8566DDR3S8GP/">8GB RAM</a> ($52)</li>
<li><a href="https://eshop.macsales.com/item/Other%20World%20Computing/8566DDR3S16P/">16GB RAM</a> ($95)</li>
<li><a href="https://eshop.macsales.com/MyOWC/Upgrades.cfm?sort=pop&amp;model=387&amp;type=Memory">All RAM options for MacBook Pro 13" mid-2010</a></li></ul><p>SSD upgrade options:</p>
<ul>
<li><a href="https://eshop.macsales.com/item/Other%20World%20Computing/YSSDMP240/">240GB SSD Upgrade Kit</a> ($113)</li>
<li><a href="https://eshop.macsales.com/item/Other%20World%20Computing/YSSDMP480/">480GB SSD Upgrade Kit</a> ($182)</li>
<li><a href="https://eshop.macsales.com/MyOWC/Upgrades.cfm?sort=pop&amp;model=387&amp;type=InternalDrives">All SSD options for MacBook Pro 13" mid-2010</a></li></ul><h2><span id="hardwareinstallation">Hardware Installation</span></h2><p>So, once you get your goodies, you’ll have to play computer surgeon and install them. Luckily for you, that looks really, really easy.</p>
<h3>How to install the RAM</h3><p>You really just need to know how to use a screwdriver. Watch the video below to find out how to do it.</p>
<p><a href="https://eshop.macsales.com/installvideos/macbookpro_13_unibody_mid10_mem/">How to upgrade memory in a 13" mid-2010 MacBook Pro</a></p>
<h3>How to install the SSD</h3><p>Again, just a screwdriver. Video explains everything. The first couple of minutes are the same as for the RAM.</p>
<p><a href="https://eshop.macsales.com/installvideos/macbookpro_13_unibody_mid10_hd/">How to replace the hard drive in a 13" mid-2010 MacBook Pro</a></p>
<p>Both installations require you to remove the bottom of the laptop, but I would recommend doing the RAM first, verifying that it works with the old drive, then doing the SSD. You don’t have to put in all the screws again in between.</p>
<h2><span id="choosebootdisk">Choosing a Boot Disk</span></h2><p><a href="https://www.earthli.com/data/news/attachments/entry/3286/145418-qmfolder188_original.png"><img src="https://www.earthli.com/data/news/attachments/entry/3286/145418-qmfolder188_original_tn.png" alt=" " class=" align-right"></a>Once you&rsquo;ve replaced your hard drive with the operating system on it with an empty SSD, how will your computer start? Answer: it can&rsquo;t. If you just boot your machine at this point, there&rsquo;s a decent chance that you will see a folder with a question mark in it.</p>
<p>So your first step is to make sure you have a boot disk.</p>
<p>Your Time Machine backup drive is bootable <em>if</em> it&rsquo;s been initialized in a certain way. [4] If it&rsquo;s not set up correctly, you can&rsquo;t use it as a boot drive. You can use the <em>Disk Utility</em> to check whether your drive will work as a boot drive.</p>
<p><a href="https://www.earthli.com/data/news/attachments/entry/3286/mbr.png"><img src="https://www.earthli.com/data/news/attachments/entry/3286/mbr_tn.png" alt=" " class=" align-right"></a><a href="https://www.earthli.com/data/news/attachments/entry/3286/guid_partition_map.png"><img src="https://www.earthli.com/data/news/attachments/entry/3286/guid_partition_map_tn.png" alt=" " class=" align-right clear-right"></a></p>
<ul>
<li>Start the <em>Disk Utility</em>.</li>
<li>Select your Time Machine drive from the list on the left.</li>
<li>If the &ldquo;Partition Map&rdquo; is &ldquo;Master Boot Record&rdquo; (first image, right) then you&rsquo;ll need to <a href="https://www.earthli.com/news/createbootdisk">create a boot disk</a>. [5] If it&rsquo;s &ldquo;GUID Partition Map&rdquo; (second image, right), then you&rsquo;re in luck and can almost certainly boot directly from that drive.</li></ul><p><span class="clear-both"></span></p>
<h3>Verify Booting</h3><p><a href="https://www.earthli.com/data/news/attachments/entry/3286/boot-mac-external-drive.jpg"><img src="https://www.earthli.com/data/news/attachments/entry/3286/boot-mac-external-drive_tn.jpg" alt=" " class=" align-right"></a>Once you have a drive that you think you can boot from—either your Time Machine drive has the right partition map or you&rsquo;ve created a bootable USB stick—you can quickly test whether it can actually boot your machine by restarting your Mac and holding down the <kbd>⌥</kbd> key while booting. Your machine will show a row of icons on startup (the Startup Manager, right), one for each bootable drive. You should see your Time Machine drive or the USB bootable drive. If you do, you&rsquo;re ready to replace the hard drive.</p>
<h2><span id="createbootdisk">Creating a Boot Disk</span></h2><p>The article <a href="https://support.apple.com/en-us/HT201372">Create a bootable installer for OS X</a> (<cite><a href="http://support.apple.com/">Apple</a></cite>) will help you make a boot disk. If you have a really new machine, you might also be able to benefit from a network boot over your wireless connection, but I wasn&rsquo;t able to test that.</p>
<p>If you need to make a boot disk for the latest OS X (as of this writing) El Capitan, you&rsquo;ll need to do the following:</p>
<ol>
<li>Get an 8GB (or larger) USB stick that you can overwrite completely. [6]</li>
<li>Note the name of the USB stick (e.g. &ldquo;Data&rdquo;)</li>
<li>Open the <em>App Store</em>.</li>
<li>Search for <em>El Capitan</em>.</li>
<li><a href="https://www.earthli.com/data/news/attachments/entry/3286/os-x-el-capitan-mac-app-store.jpg"><img src="https://www.earthli.com/data/news/attachments/entry/3286/os-x-el-capitan-mac-app-store_tn.jpg" alt=" " class=" align-right"></a>You should see the link to the OS. Since you already have it installed, the button underneath says <em>Download</em>. (see first image, right.)</li>
<li><a href="https://www.earthli.com/data/news/attachments/entry/3286/os-x-el-capitan-download-app-store.jpg"><img src="https://www.earthli.com/data/news/attachments/entry/3286/os-x-el-capitan-download-app-store_tn.jpg" alt=" " class=" align-right clear-right"></a>Press the <em>Download</em> button. The installer is about 6.5GB, so it will take some time to download. The only indication you have that something is happening is that the word &ldquo;Download&rdquo; changed to &ldquo;Downloading&rdquo;. (See second image, right.) Open the <em>Launcher</em> application to see a progress bar.</li>
<li>Once it&rsquo;s downloaded, you should see <em>Install OS X El Capitan</em> in your <em>Applications</em> folder. Do not open it. Also, unhook your Time Machine backup temporarily to avoid backing 6GB of data that you will only need temporarily.</li>
<li>Close the installer when it automatically starts (press <kbd>⌘</kbd> + <kbd>Q</kbd>)</li>
<li>Open the <em>Terminal</em> application. [7]</li>
<li>From the command line, execute <code>sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia –volume /Volumes/<strong class="highlight">Data</strong> –applicationpath /Applications/Install\ OS\ X\ El\ Capitan.app</code>. Replace the highlighted word &ldquo;Data&rdquo; with the name of your USB stick.</li>
<li>You should now see a message indicating that the USB drive is being formatted and the installer is being copied over.</li>
<li>When it&rsquo;s finished, you have a copy of OS X from which you can boot the computer and install OS X or, more importantly, run the <em>Recovery Console</em> and restore from a Time Machine backup.</li></ol><p><hr></p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3286_1_body" class="footnote-number">[1]</span> I referred to <a href="https://eshop.macsales.com/articles/how-to-transfer-your-data-from-your-old-drive-to-a-new-drive">How to Migrate OS X and Your Data to a New Drive</a> (<cite><a href="http://eshop.macsales.com/">OWC</a></cite>) and <a href="https://support.apple.com/en-us/HT201314">OS X: About OS X Recovery</a> (<cite><a href="http://support.apple.com/">Apple</a></cite>)</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3286_2_body" class="footnote-number">[2]</span> My Time Machine Backup drive is only USB2, so the transfer rate was quite slow. It took almost five hours to restore about 250GB. If your external drive is USB3 and/or if you have less data, it should restore much more quickly.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3286_3_body" class="footnote-number">[3]</span> After my upgrade, starting <em>Photos</em> went from a minute to about 5 seconds. Booting the machine and restoring all open applications takes about 20–30 seconds instead of several minutes.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3286_4_body" class="footnote-number">[4]</span> Specifically, this means that your drive need to have a GUID partition table, not an MBR partition table. Mine, for example, had the MBR table because I have two partitions: an HFS+ drive for Time Machine backups and an NTFS partition that I can also read from Windows machines.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3286_5_body" class="footnote-number">[5]</span> You can also reformat your Time Machine drive using the <em>Disk Utility</em> and set it up so it has the expected partitioning scheme (see <a href="#formatdisk">steps 6–10</a> in &ldquo;Transfer Data&rdquo;) , but I wouldn&rsquo;t recommend throwing away all of your backups.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3286_6_body" class="footnote-number">[6]</span> Make it USB3 if you can because copying to it will be much faster.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3286_7_body" class="footnote-number">[7]</span> You&rsquo;re going to execute a command-line command to build the boot drive. Deep breath. Don&rsquo;t be afraid.</div>      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Showing Pictures on a Map in OS X Photos (2016)]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=3285</id>
    <link href="https://www.earthli.com/news/view_article.php?id=3285"/>
    <updated>2016-06-30T12:49:09+02:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p>This feature is quite nice, but less intuitive than I&rsquo;d expected. When I upgraded a friend&rsquo;s computer, I was unable to figure out how to get to the map that I knew I&rsquo;d seen before. With a bit more time and a web search, I was able to figure out how this thing works again.</p>
<h2>Usability</h2><p>In <em>iPhoto</em>,... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=3285">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">30. Jun 2016 12:49:09 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p>This feature is quite nice, but less intuitive than I&rsquo;d expected. When I upgraded a friend&rsquo;s computer, I was unable to figure out how to get to the map that I knew I&rsquo;d seen before. With a bit more time and a web search, I was able to figure out how this thing works again.</p>
<h2>Usability</h2><p>In <em>iPhoto</em>, there was a &ldquo;Locations&rdquo; view to which you could switch to show the world map with pins in it. While convenient, Apple never figured out how to make this feature scale to tens of thousands of pictures so it could be quite slow.</p>
<p>In Photos, instead of this top-down view, you can now see any group of photos on a map by clicking the details above that group. Once you know how to find it, this is quite convenient. Also, the map contains only information about the set of photos that you were already looking at, instead of all of the photos in your entire collection. This change leads to significant performance gains when working with the map.</p>
<h2>Viewing Pictures in the Browser</h2><p>By default, you&rsquo;re looking at photos in &ldquo;Moments View&rdquo; (shown below). Moments have the fewest number of pictures in them, but you can see those on the map by clicking the location next to the title.</p>
<p><span style="width: 720px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3285/1_moments_view.png"><img src="https://www.earthli.com/data/news/attachments/entry/3285/1_moments_view.png" alt=" " style="width: 720px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3285/1_moments_view.png">Moments View</a></span></span></p>
<p>It&rsquo;s more interesting to see larger sets of pictures, so click the back arrow to zoom out to &ldquo;Collections View&rdquo;.</p>
<p><span style="width: 586px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3285/2_collections_view.png"><img src="https://www.earthli.com/data/news/attachments/entry/3285/2_collections_view.png" alt=" " style="width: 586px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3285/2_collections_view.png">Collections View</a></span></span></p>
<p>In this example, the sets of pictures correspond roughly to single days. As with the &ldquo;Moments View&rdquo;, you can show the pictures in a set on a map by clicking the location next to the title. Click the back arrow to zoom out to &ldquo;Years View&rdquo;.</p>
<p><span style="width: 495px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3285/3_years_view.png"><img src="https://www.earthli.com/data/news/attachments/entry/3285/3_years_view.png" alt=" " style="width: 495px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3285/3_years_view.png">Years View</a></span></span></p>
<h2>Viewing Pictures on the Map</h2><p>Now we&rsquo;ve got a lot of pictures to show, so we&rsquo;ll click the location next to the title to show all of the pictures for a given year on a map. You can click on any pile to show that set of photos in the regular view to edit, browse, etc.</p>
<p><span style="width: 200px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3285/4_year_map_example.png"><img src="https://www.earthli.com/data/news/attachments/entry/3285/4_year_map_example_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3285/4_year_map_example.png">Map for a Single Year (click for detail)</a></span></span></p>
<p>In this example, double-clicking on Europe zooms in once and one of the piles in Europe splits into two piles automatically, to better show the relative locations of pictures.</p>
<p><span style="width: 200px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3285/5_years_map_example_-_zoomed.png"><img src="https://www.earthli.com/data/news/attachments/entry/3285/5_years_map_example_-_zoomed_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3285/5_years_map_example_-_zoomed.png">Map for a Single Year − Zoomed Once (click for detail)</a></span></span></p>
<p>Double-clicking on Europe again zooms in again and resolves to five piles of pictures. Keep zooming in to break up larger piles of pictures. Click any pile to show those pictures as moments and/or collections.</p>
<p><span style="width: 200px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3285/6_years_map_example_-_zoomed_x_2.png"><img src="https://www.earthli.com/data/news/attachments/entry/3285/6_years_map_example_-_zoomed_x_2_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3285/6_years_map_example_-_zoomed_x_2.png">Map for a Single Year − Zoomed × 2 (click for detail)</a></span></span></p>
<p>Once you know where to click, it&rsquo;s quite easy to use the map in OS X Photos. If you don&rsquo;t know where to click, it&rsquo;s unlikely you&rsquo;ll ever discover the feature at all.</p>
      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Windows 10 Windows Update Malfunction]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=3278</id>
    <link href="https://www.earthli.com/news/view_article.php?id=3278"/>
    <updated>2016-06-12T22:19:44+02:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<blockquote class="quote abstract "><div><p><strong><abbr>tl;dr</abbr>:</strong> If Windows 10 fails to install updates several times, you may have a corrupted update database. Follow the <a href="http://answers.microsoft.com/en-us/windows/forum/windows_10-update/windows-10-error-0x80200056/b22e9fdd-9e5f-4850-af87-8351ae019d38">steps listed here</a>  to fix things. It will take quite a while, but it works out in the end.</p>
</div></blockquote><p>Several months ago, I upgraded to Windows 10 on my laptop. Things went OK [1] and I was... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=3278">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">12. Jun 2016 22:19:44 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <blockquote class="quote abstract "><div><p><strong><abbr>tl;dr</abbr>:</strong> If Windows 10 fails to install updates several times, you may have a corrupted update database. Follow the <a href="http://answers.microsoft.com/en-us/windows/forum/windows_10-update/windows-10-error-0x80200056/b22e9fdd-9e5f-4850-af87-8351ae019d38">steps listed here</a>  to fix things. It will take quite a while, but it works out in the end.</p>
</div></blockquote><p>Several months ago, I upgraded to Windows 10 on my laptop. Things went OK [1] and I was basically able to continue working uninterrupted.</p>
<h2>Windows Insomnia</h2><p>A couple of weeks ago, I noticed that my laptop was almost always &ldquo;awake&rdquo; in the morning and seemed to be quite busy doing stuff when I wasn&rsquo;t using it.</p>
<p>At Encodo, we have some group policies that determine when updates are to be applied and will wake up the machine to do so. I figured it was probably something like that and paid it no further mind. When the insomnia persisted, I checked the Windows Update settings again and saw a whole list of updates to install.</p>
<p>I told Windows to restart, install the updates and be done with it, once and for all. I went off to do something else and found my machine once again busy doing something, hours later. Suspicious, I found more pending updates, looking suspiciously like the ones I&rsquo;d just installed.</p>
<h2>Corrupted Update Database</h2><p>I restarted again, this time watching as Windows very quickly restarted—without installing anything at all. My Windows very definitely had a problem. It thought it had updates to install—a lot of big ones, actually—but couldn&rsquo;t actually install them. (Probably because they were already installed.)</p>
<p>The big missing package was <span class="quote-inline">&ldquo;Upgrade to Windows 10 Enterprise, version 1511, 10586.&rdquo;</span>, as well as a lot of Micorosft Office-related packages. Searching for help, I ended up on this page, <a href="http://answers.microsoft.com/en-us/windows/forum/windows_10-update/windows-10-error-0x80200056/b22e9fdd-9e5f-4850-af87-8351ae019d38">Windows 10 Error 0x80200056</a>, where I found an answer from August 7, 2015. </p>
<p>I was hoping for something a little more recent, but apparently this problem has been plaguing users for almost a year. The answer pointed to corrupted Windows Update Components and describes how to shut off the related services, rename the corrupt databases and re-enable services.</p>
<h2>A Giant Update</h2><p>After following the instructions and after a restart, Windows Update will start to download and apply a ton of updates—it seems now to be unaware of what had already been installed. Corrupted is corrupted, so you have to go through with it; a Windows that restarts every 1.5 hours trying in vain to install updates is not going to cut it.</p>
<p>Be warned, though, if the corrupted package that you have is the same as the one I listed above (1511, 10586), then you&rsquo;re in for quite an upgrade process. Windows 10 will—for all intents and purposes—re-install itself. The updates took about an hour to apply before I was back at a desktop. I once again have a <code>Windows.Old</code> folder and I <em>almost</em> lost my local user settings.</p>
<p>Read on if you, too, suffer from a lost profile after this process.</p>
<h2>Missing Local Settings</h2><p><span style="width: 200px; display: table" class=" align-right"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3278/2016-06-12_20_58_52-program_manager.png"><img src="https://www.earthli.com/data/news/attachments/entry/3278/2016-06-12_20_58_52-program_manager_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3278/2016-06-12_20_58_52-program_manager.png">Temporary Profile</a></span></span>When I first logged in, everything was back to defaults. I was disappointed, but figured that the gigantic upgrade had simply reset everything. In fact, my profile was still around and Windows was trying to tell me about it, although a bit too subtly—and with a message that didn&rsquo;t render properly in the 150%-resolution mode to which it had defaulted.</p>
<p>The message is cut off—and clicking the Action Center shows me other messages, but not this relatively important one. At any rate, I was able to figure out that it was telling me to open the Event Viewer. There, I saw several errors.</p>
<p><span style="width: 637px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3278/2016-06-12_21_01_20-event_viewer.png"><img src="https://www.earthli.com/data/news/attachments/entry/3278/2016-06-12_21_01_20-event_viewer.png" alt=" " style="width: 637px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3278/2016-06-12_21_01_20-event_viewer.png">Unable to load Registry</a></span></span></p>
<p>The first message was pretty scary</p>
<div class="error "><p>Windows was unable to load the registry. This problem is often caused by insufficient memory or insufficient security rights. </p>
<p>DETAIL − The process cannot access the file because it is being used by another process. for C:\Users\marco\ntuser.dat</p>
</div><p>The Windows registry is pretty important, but what the message actually meant was that the <em>user registry</em> couldn&rsquo;t be loaded. That became clearer in the next message:</p>
<div class="error "><p>Windows cannot load the locally stored profile. Possible causes of this error include insufficient security rights or a corrupt local profile. </p>
<p>DETAIL − The process cannot access the file because it is being used by another process.</p>
</div><p>It was unclear which process was using the file that Windows wanted to open. What else could have been running at that time? This also explained the rather mysterious directive above that <span class="quote-inline">&ldquo;to fix this, sign out and try signing in later.&rdquo;</span> This is Windows&rsquo;s way of acknowledging that it was probably standing on its own tail and had locked itself out. &ldquo;Later&rdquo; is a touch vague, though.</p>
<p>The next message was more reassuring but it was unclear what was supposed to happen. I&rsquo;d logged out and logged back in, as directed, and still had the same problem.</p>
<div class="error "><p>Windows has backed up this user profile. Windows will automatically try to use the backup profile the next time this user logs on.</p>
</div><p>Here&rsquo;s the final error message, repeating what I&rsquo;d already seen in the desktop notification. Still, I had hope that Windows would eventually right itself.</p>
<div class="error "><p>Windows cannot find the local profile and is logging you on with a temporary profile. Changes you make to this profile will be lost when you log off.</p>
</div><p>Instead of just logging out, I went back to the good, old tactic of just restarting Windows—<span class="quote-inline">&ldquo;have you tried turning it off and on again?&rdquo;</span>—and was greeted with my old profile! First, I had to endure the Windows 10 greetings and requests for patience. This led to a nervous few seconds that I would have a clean profile again. In the end, though, everything was back to normal—albeit after a long, unproductive day.</p>
<h2>Cleanup</h2><p>I&rsquo;m not done yet. As it appears, there are still more updates to apply, I&rsquo;ve lost a few settings and will also have to run the &ldquo;Disk Cleanup&rdquo; again to remove the old Windows and a lot of temporary files. But I&rsquo;m hopeful that my Windows Update problems are over, at least for now. [2]</p>
<p><hr></p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3278_1_body" class="footnote-number">[1]</span> Several weeks after the upgrade, an update came down the pike that screwed up my wireless network driver so it more than occasionally dropped off the network. I could always reconnect by toggling wireless on and off several times until my network showed up again, but you can see how that would get quite tiresome.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3278_2_body" class="footnote-number">[2]</span> And hey, optimist that I am, maybe even my wireless-network problems will gone as well.</div>      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Git: Managing local commits and branches]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=3216</id>
    <link href="https://www.earthli.com/news/view_article.php?id=3216"/>
    <updated>2016-02-12T20:19:16+01:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p>At Encodo, we&rsquo;ve got a relatively long history with Git. We&rsquo;ve been using it exclusively for our internal source control since 2010. [1]</p>
<h2>Git Workflows</h2><p><a href="https://www.earthli.com/data/news/attachments/entry/3216/git-icon-1788c.png"><img title="Git" src="https://www.earthli.com/data/news/attachments/entry/3216/git-icon-1788c_tn.png" alt=" " class=" align-right"></a>When we started with Git at Encodo, we were quite cautious. We didn&rsquo;t change what had already worked for us with <a href="http://perforce.com">Perforce</a>. [2] That is: all developers... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=3216">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">12. Feb 2016 20:19:16 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p>At Encodo, we&rsquo;ve got a relatively long history with Git. We&rsquo;ve been using it exclusively for our internal source control since 2010. [1]</p>
<h2>Git Workflows</h2><p><a href="https://www.earthli.com/data/news/attachments/entry/3216/git-icon-1788c.png"><img title="Git" src="https://www.earthli.com/data/news/attachments/entry/3216/git-icon-1788c_tn.png" alt=" " class=" align-right"></a>When we started with Git at Encodo, we were quite cautious. We didn&rsquo;t change what had already worked for us with <a href="http://perforce.com">Perforce</a>. [2] That is: all developers checked in to a central repository on a mainline or release branch. We usually worked with the mainline and never used personal or feature branches.</p>
<p>Realizing the limitation of this system, we next adopted an early incarnation GitFlow, complete with command-line support for it. A little while later, we switched to our own streamlined version of GitFlow without a <code>dev</code> branch, which we published in an earlier version of the <a href="https://www.earthli.com/news/view_article.php?id=421">Encodo Git Handbook</a>. [3]</p>
<p>We&rsquo;re just now testing the waters of <em>Pull Requests</em> instead of direct commits to <code>master</code> and feature branches. Before we can make this move, though, we need to raise the comfort level that all of our developers have toward creating branches and manipulating commits. We need to take the magic and fear out of Git—but that&rsquo;s a <em>pushed</em> commit! [4]—and learn how to view Git more as a toolbox that we can make <em>for</em> us rather than a mysterious process to whose whims we must comply. [5]</p>
<h2>General Rules</h2><p>Before we get started, let&rsquo;s lay down some ground rules for working with Git and source control, in general.</p>
<ul>
<li>Use branches</li>
<li>Don&rsquo;t use too many branches at once</li>
<li>Make small pull requests</li>
<li>Use no more than a few unpushed commits</li>
<li>Get regular reviews</li></ul><p>As you can see, the rules describe a process of incremental changes. If you stick to them, you&rsquo;ll have much less need for the techniques described below. In case of emergency, though, let&rsquo;s demystify some of what Git does.</p>
<p>If you haven&rsquo;t done so already, you should <em>really</em> take a look at some documentation of how Git actually works. There are two sources I can recommend:</p>
<ul>
<li>The all-around excellent and extremely detailed <a href="http://git-scm.com/documentation">Official Git Documentation</a>. It&rsquo;s well-written and well-supplied with diagrams, but quite detailed.</li>
<li>The <a href="https://www.earthli.com/news/view_article.php?id=421">Encodo Git Handbook</a> summarizes the details of Git we think are important, as well as setting forth best practices and a development process.</li></ul><h2>Examples</h2><p>All examples and screenshots are illustrated with the <a href="http://www.syntevo.com/smartgit/">SmartGit</a> log UI.</p>
<div class="caution "><p>Before you do any of the manipulation shown below, <strong>always make sure your working tree has been cleared</strong>. That means there are no pending changes in it. Use the <code>stash</code> command to put pending changes to the side.</p>
</div><h2>Moving branches</h2><p>In SmartGit, you can grab any local branch marker and drag it to a new location. SmartGit will ask what you want to do with the dropped branch marker, but you&rsquo;ll almost always just want to set it to the commit on which you dropped it.</p>
<p>This is a good way of easily fixing the following situation:</p>
<ol>
<li>You make a bunch of commits on the master branch</li>
<li>You get someone to review these local commits</li>
<li>They approve the commits, but suggest that you make a pull request instead of pushing to <code>master</code>. A good reason for this might be that both the developer and the face-to-face reviewer think another reviewer should provide a final stamp of approval (i.e. the other reviewer is the expert in an affected area)</li></ol><p>In this case, the developer has already moved their local <code>master</code> branch to a newer commit. What to do?</p>
<h3>Create a pull-request branch</h3><p>Create and check out a pull-request branch (e.g. <code>mvb/serviceImprovements</code>).</p>
<p><span style="width: 417px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/add_branch_menu.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/add_branch_menu.png" alt=" " style="width: 417px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/add_branch_menu.png">Add branch from the shortcut menu</a></span></span></p>
<p><span style="width: 178px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/add_branch_dialog.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/add_branch_dialog.png" alt=" " style="width: 178px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/add_branch_dialog.png">Add branch dialog</a></span></span></p>
<h3>Set <code>master</code> to the <code>origin/master</code></h3><p>Move the local <code>master</code> branch back to <code>origin/master</code>. You can do this in two ways:</p>
<ul>
<li>Check out the <code>master</code> branch and then <em>reset</em> to the <code>origin/master</code> branch or…</li>
<li>Just drag the local <code>master</code> branch to the <code>origin/master</code> commit.</li></ul><p><span style="width: 425px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/dragging_master_marker.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/dragging_master_marker.png" alt=" " style="width: 425px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/dragging_master_marker.png">Drag the master marker</a></span></span></p>
<h3>Final: branches are where they belong</h3><p>In the end, you&rsquo;ve got a local repository that looks as if you&rsquo;d made the commits on the pull-request branch in the first place. The <code>master</code> branch no longer has any commits to push.</p>
<p><span style="width: 321px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/reset_master.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/reset_master.png" alt=" " style="width: 321px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/reset_master.png">Reset the master branch</a></span></span></p>
<h2>Moving &amp; joining commits</h2><p>SmartGit supports drag&amp;drop move for local commits. Just grab a commit and drop it to where you&rsquo;d like to have it in the list. This will often work without error. In some cases, like when you have a lot of commits addressing the same areas in the same files, SmartGit will detect a merge conflict and will be unable to move the commit automatically. In these cases, I recommend that you either:</p>
<ul>
<li>Give up. It&rsquo;s probably not that important that the commits are perfect.</li>
<li>Use the techniques outlined in the long example below instead.</li></ul><p>You can also &ldquo;join&rdquo;—also called &ldquo;squash&rdquo; in Git parlance—any adjoining commits into a single commit. A common pattern you&rsquo;ll see is for a developer to make changes in response to a reviewer&rsquo;s comments and save them in a new commit. The developer can then <em>move</em> that commit down next to the original commit from which the changes stemmed and <em>join</em> the commits to &ldquo;repair&rdquo; the original commit after review. You can at the same time edit the commit message to include the reviewer&rsquo;s name. Nice, right?</p>
<p>Here&rsquo;s a quick example:</p>
<h3>Initial: three commits</h3><p>We have three commits, but the most recent one should be squashed with the first one.</p>
<p><span style="width: 301px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/before_move_and_squash.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/before_move_and_squash.png" alt=" " style="width: 301px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/before_move_and_squash.png">Three commits before moving and squashing</a></span></span></p>
<h3>Move a commit</h3><p>Select the most recent commit and drag it to just above the commit with which you want to join it. This operation <em>might</em> fail. [6]</p>
<p><span style="width: 326px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/move_commit.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/move_commit.png" alt=" " style="width: 326px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/move_commit.png">Move the commit</a></span></span></p>
<h3>Squash selected commits</h3><p>Select the two commits (it can be more) and squash/join them. This operation will not fail.</p>
<p><span style="width: 348px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/squash_commits.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/squash_commits.png" alt=" " style="width: 348px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/squash_commits.png">Squash the commits</a></span></span></p>
<h3>Final: two commits</h3><p>When you&rsquo;re done, you should see two commits: the original one has now been &ldquo;repaired&rdquo; with the additional changes you made during the review. The second one is untouched and remains the top commit.</p>
<p><span style="width: 197px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/squashed.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/squashed.png" alt=" " style="width: 197px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/squashed.png">After squashing the commit</a></span></span></p>
<h2>Diffing commits</h2><p>You can squash/join commits when you merge or you can squash/join commits when you cherry-pick. If you&rsquo;ve got a bunch of commits that you want to combine, cherry-pick those commits but don&rsquo;t commit them.</p>
<p>You can also this technique to see what has changed between two branches. There are a lot of ways to do this, and a lot of guides will show you how to execute commands on the command line to do this.</p>
<p>In particular, Git allows you to easily display the list of commits <em>between</em> two other commits as well as showing the combined differences in all of those commits in a <em>patch format</em>. The patch format isn&rsquo;t very easy to use for diffing from a GUI client, though. Most of our users know how to use the command line, but use SmartGit almost exclusively nonetheless—because it&rsquo;s faster and more intuitive.</p>
<p>So, imagine you&rsquo;ve made several commits to a feature or release branch and want to see what would be merged to the <code>master</code> branch. It would be nice to see the changes in the workspace as a potential commit on <code>master</code> so you can visually compare the changes as you would a new commit.</p>
<p>Here&rsquo;s a short, visual guide on how to do that.</p>
<h3>Select commits to cherry-pick</h3><p>Check out the target branch (<code>master</code> in this example) and then select the commits you want to diff against it.</p>
<p><span style="width: 333px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/select_commits_to_cherry_pick.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/select_commits_to_cherry_pick.png" alt=" " style="width: 333px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/select_commits_to_cherry_pick.png">Select the commits to cherry-pick</a></span></span></p>
<h3>Do not commit</h3><p>When you cherry-pick, leave the changes to accumulate in the working tree. If you commit them, you won&rsquo;t be able to diff en bloc as you&rsquo;d like.</p>
<p><span style="width: 218px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/cherry_pick_without_committing.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/cherry_pick_without_committing.png" alt=" " style="width: 218px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/cherry_pick_without_committing.png">Cherry-pick without committing changes</a></span></span></p>
<h3>Final: working tree</h3><p>The working tree now contains the differences in the cherry-picked commits.</p>
<p><span style="width: 390px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/workspaces_contains_cherry_picked_differences.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/workspaces_contains_cherry_picked_differences.png" alt=" " style="width: 390px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/workspaces_contains_cherry_picked_differences.png">Workspace contains cherry-picked changes</a></span></span></p>
<p>Now you can diff files to your heart&rsquo;s content to verify the changes.</p>
<h2>Working-tree files</h2><p>Once you have changes in the working tree that are already a part of other commits, you might be tempted to think you have to revert the changes because <em>they&rsquo;re already committed</em>, right?</p>
<p>You of course don&rsquo;t have to do that. You can let the original commits die on the vine and make new ones, as you see fit.</p>
<p>Suppose after looking at the differences between our working branch and the <code>master</code> branch, you decide you want to integrate them. You can do this in several ways. </p>
<ol>
<li>You could clear the working tree [7], then merge the other branch to <code>master</code> to integrate those changes in the original commits.</li>
<li><em>Or</em> you could create one or more new commits out of the files in the workspace and commit those to <code>master</code>. You would do this if the original commits had errors or incomplete comments or had the wrong files in them.</li>
<li><em>Or</em> you could clear the working tree and re-apply the original commits by cherry-picking <em>and</em> committing them. Now you have copies of those commits and you can edit the messages to your heart&rsquo;s content.</li></ol><p>Even if you don&rsquo;t <em>merge</em> the original commits as in option (1) above, and you create new commits with options (2) and (3), you can <em>still</em> merge the branch so that Git is aware that all work from that branch has been included in <code>master</code>. You don&rsquo;t have to worry about applying the same work twice. Git will normally detect that the changes to be applied are exactly the same and will merge automatically. If not, you can safely just resolve any merge conflicts by selecting the <code>master</code> side. [8]</p>
<h2>An example of reorganizing commits</h2><div class="caution "><strong>Abandon hope, all ye who enter here.</strong> If you follow the rules outlined above, you will never get into the situation described in this section. That said…when you do screw something up locally, this section might give you some idea of how to get out of it. Before you do anything else, though, you should consider how you will avoid repeating the mistake that got you here. <strong>You can only do things like this with local commits or commits on private branches.</strong></div><p>The situation in this example is as follows:</p>
<ul>
<li>The user has made some local commits and reviewed them, but did not push them.</li>
<li>Other commits were made, including several merge commits from other pull requests.</li>
<li>The new commits still have to be reviewed, but the reviewer can no longer sign the commits because they are rendered immutable by the merge commits that were applied afterward.</li>
<li>It&rsquo;s difficult to review these commits face-to-face and absolutely unconscionable to create a pull request out of the current local state of the <code>master</code> branch.</li>
<li>The local commits are too confusing for a reviewer to follow.</li></ul><h3>The original mess</h3><p>So, let&rsquo;s get started. The situation to clean up is shown in the log-view below.</p>
<p><span style="width: 457px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_1.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_1.png" alt=" " style="width: 457px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_1.png">Merge commits prevent editing previous local commits</a></span></span></p>
<h3><em>Pin</em> the local commits</h3><p>Branches in Git are cheap. Local ones even more so. Create a local branch to <em>pin</em> the local commits you&rsquo;re interested in into the view. The log view will automatically hide commits that aren&rsquo;t referenced by either a branch or a tag. [9]</p>
<p><span style="width: 391px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_2.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_2.png" alt=" " style="width: 391px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_2.png">Use temporary branches to pin commits in the view</a></span></span></p>
<h3>Choose your commits</h3><p>Step one: find the commits that you want to save/re-order/merge.</p>
<p><span style="width: 386px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_3.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_3.png" alt=" " style="width: 386px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_3.png">The commits we want to cherry-pick</a></span></span></p>
<p>The diagram below shows the situation without arrows. There are 17 commits we want, interspersed with 3 merge commits that we don&rsquo;t want. [10]</p>
<p><span style="width: 386px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_1.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_1.png" alt=" " style="width: 386px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_1.png">Initial: 17 messy commits</a></span></span></p>
<h3>Reset local <code>master</code></h3><p>Check out the <code>master</code> branch and <em>reset</em> it back to the <code>origin</code>.</p>
<p><span style="width: 387px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_2.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_2.png" alt=" " style="width: 387px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_2.png">Reset to master</a></span></span></p>
<h3>Cherry-pick commits</h3><p>Cherry-pick and commit the local commits that you want to apply to master. This will make <em>copies</em> of the commits on <code>pin</code>.</p>
<p><span style="width: 399px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_3.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_3.png" alt=" " style="width: 399px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_3.png">Cherry-pick the local commits</a></span></span></p>
<h3>Master branch with 17 commits</h3><p>When you&rsquo;re done, everything should look nice and neat, with 17 local commits on the <code>master</code> branch. You&rsquo;re now ready to get a review for the handful of commits that haven&rsquo;t had them yet. [11]</p>
<p><span style="width: 439px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_4.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_4.png" alt=" " style="width: 439px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_4.png">Local master includes 17 commits</a></span></span></p>
<h3>Delete the temporary branch</h3><p>You now have copies of the commits on your master branch, so you no longer care about the <code>pin</code> branch or any of the commits it was holding in the view. Delete it.</p>
<p><span style="width: 387px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_5.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_5.png" alt=" " style="width: 387px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_5.png">Delete the temporary branch</a></span></span></p>
<h3>That pesky merge</h3><p>Without the <code>pin</code>, the old mess is no longer displayed in the log view. Now I&rsquo;m just missing the merge from the pull request/release branch. I just realized, though: if I merge on top of the other commits, I can no longer edit those commits in any way. When I review those commits and the reviewer wants me to fix something, my hands will be just as tied as they were in the original sitution.</p>
<p><span style="width: 411px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_6.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_6.png" alt=" " style="width: 411px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_6.png">Inserting a merge commit before local commits</a></span></span></p>
<h3>Inserting a commit</h3><p>If the tools above worked once, they&rsquo;ll work again. You do <em>not</em> have to go back to the beginning, you do <em>not</em> have to dig unreferenced commits out of the Git <em>reflog</em>.</p>
<p>Instead, you can create the <code>pin</code> branch again, this time to pin your lovely, clean commits in place while you reset the <code>master</code> branch (as before) and apply the merge as the first commit.</p>
<p><span style="width: 398px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_7.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_7.png" alt=" " style="width: 398px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_7.png">Pin, reset, merge and rebase</a></span></span></p>
<h3>Rebase <code>pin</code> onto <code>master</code></h3><p>Now we have a local <code>master</code> branch with a single merge commit that is not on the <code>origin</code>. We also have a <code>pin</code> branch with 17 commits that are not on the <code>origin</code>. </p>
<p>Though we could use cherry-pick to copy the individual commits from <code>pin</code> to <code>master</code>, we&rsquo;ll instead rebase the commits. The rebase operation is more robust and was <em>made</em> for these situations. [12]</p>
<p><span style="width: 431px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_8.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_8.png" alt=" " style="width: 431px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_8.png">Check out pin and rebase</a></span></span></p>
<h3><code>pin</code> is ready</h3><p>We&rsquo;re almost done. The <code>pin</code> branch starts with the <code>origin/master</code>, includes a merge commit from the pull request and then includes 17 commits on top of that. These 17 commits can be edited, squashed and changed as required by the review.</p>
<p><span style="width: 383px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_9.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_9.png" alt=" " style="width: 383px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_9.png">After the rebase, fast-forward local master</a></span></span></p>
<h3>Fast-forward <code>master</code></h3><p>Now you can switch to the <code>master</code> branch, <em>merge</em> the <code>pin</code> branch (you can fast-forward merge) and then delete the <code>pin</code> branch. You&rsquo;re done!</p>
<p><span style="width: 386px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_10.png"><img src="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_10.png" alt=" " style="width: 386px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3216/git_local_commit_magic_4_10.png">Final: new local commits on top of a merge commit</a></span></span></p>
<h2>Conclusion</h2><p>I hope that helps take some of the magic out of Git and helps you learn to make it work for you rather than vice versa. With just a few simple tools—along  with some confidence that you&rsquo;re not going to lose any work—you can do pretty much anything with local commits. [13] </p>
<p><small class="notes">h/t to Dani and Fabi for providing helpful feedback.</small></p>
<p><hr></p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3216_1_body" class="footnote-number">[1]</span> Over five years counts as a <em>long time</em> in this business.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3216_2_body" class="footnote-number">[2]</span> I haven&rsquo;t looked at their product palette in a while. They look to have gotten considerably more enterprise-oriented. The product palette is now split up between the Helix platform, Helix versioning services, Helix Gitswarm and more.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3216_3_body" class="footnote-number">[3]</span> But which we&rsquo;ve removed from the most recent version, 3.0.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3216_4_body" class="footnote-number">[4]</span> This is often delivered in a hushed tone with a note of fervent belief that having pushed a commit to the central repository makes it holy. Having pushed a commit to the central repository on <code>master</code> or a release branch is immutable, but everything else can be changed. This is the reason we&rsquo;re considering a move to pull requests: it would make sure that commits become immutable only when they are ready rather than as a side-effect of wanting to share code with another developer.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3216_5_body" class="footnote-number">[5]</span> In all cases, when you manipulate commits—especially merge commits—you should minimally verify that everything still builds and optimally make sure that tests run green.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3216_6_body" class="footnote-number">[6]</span> If the commits over which you&rsquo;re moving contain changes that conflict with the ones in the commit to be moved, Git will not be able to move that commit without help. In that case, you&rsquo;ll either have to (A) give up or (B) use the more advanced techniques shown in the final example in this blog.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3216_7_body" class="footnote-number">[7]</span> That is, in fact, what I did when preparing this article. Since I&rsquo;m not afraid of Git, I manipulated my local workspace, safe in the knowledge that I could just revert any changes I made without losing work.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3216_8_body" class="footnote-number">[8]</span> How do we know this? <em>Because we just elected to create our own commits for those changes.</em> Any merge conflicts that arise are due to the commits you expressly didn&rsquo;t want conflicting with the ones that you do, which you&rsquo;ve already committed to <code>master</code>.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3216_9_body" class="footnote-number">[9]</span> You can elect to show all commits, but that would then show a few too many unwanted commits lying around as you cherry-pick, merge and rebase to massage the commits to the way you&rsquo;d like them. Using a temporary branch tells SmartGit which commits you&rsquo;re interested in showing in the view.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3216_10_body" class="footnote-number">[10]</span> <p>Actually, we <em>do</em> want to merge all changes from the pull-request branch but we <em>don&rsquo;t</em> want to do it in the three awkward commits that we used as we were working. While it was important at the time that the pull-request be merged in order to test, we want to do it in one smooth merge-commit in the final version.</p>
<p>If you look closely, you can even see two immediately subsequent merges where I merged the branch and committed it. I realized there was a compile error and undid the commit, added the fixes and re-committed. However, the re-commit was no longer a <em>merge</em> commit so Git &ldquo;forgot&rdquo; that the pull-request branch had been merged. So I had to merge it again in order to recapture that information.</p>
<p>This is going to happen to everyone who works more than casually with Git, so isn&rsquo;t it nice to know that you can fix it? No-one has to know.</p>
</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3216_11_body" class="footnote-number">[11]</span> You may be thinking: what if I want to push the commits that <em>have</em> been reviewed to <code>master</code> and create a pull request for the remaining commits? Then you should take a look in the section above, called <em>Moving branches</em>, where we do exactly that.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3216_12_body" class="footnote-number">[12]</span> Why? As you saw above, when you cherry-pick, you have to be careful to get the right commits and apply them in the right order. The situation we currently have is <em>exactly</em> what rebase was made for. The rebase command will get the correct commits and apply them in the correct order to the master branch. If there are merge conflicts, you can resolve them with the client and the rebase automatically picks up where you left off. If you elect to cherry-pick the commits instead and the 8th out of 17 commits fails to merge properly, it&rsquo;s up to you to pick up where you left off after solving the merge conflict. The rebase is the better choice in this instance.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3216_13_body" class="footnote-number">[13]</span> Here comes the caveat: <em>within reason</em>. If you&rsquo;re got merge commits that you have to keep because they cost a lot of blood, sweat and tears to create and validate, then don&rsquo;t cavalierly throw them away. Be practical about the &ldquo;prettiness&rdquo; of your commits. If you really would like commit #9 to be between commits #4 and #5, but SmartGit keeps telling you that there is a conflict when trying to move that commit, then reconsider how important that move is. Generally, you should just forget about it because there&rsquo;s only so much time you should spend massaging commits. This article is about making Git work for you, but don&rsquo;t get obsessive about it.</div>      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Limited drive-space chronicles #2: Why is Visual Studio installed on my machine?]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=3193</id>
    <link href="https://www.earthli.com/news/view_article.php?id=3193"/>
    <updated>2015-12-27T17:19:53+01:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p>If you&rsquo;re like us at Encodo, you moved to SSDs years ago…and never looked back. However, SSDs are generally smaller because the price (still) ramps up quickly as you increase size. We&rsquo;ve almost standardized on 512GB, but some of us still have 256GB drives.</p>
<p>Unfortunately, knowing that we all have... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=3193">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">27. Dec 2015 17:19:53 (GMT-5)</span>
</p>
<p>
Updated by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">27. Dec 2015 17:21:24 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p>If you&rsquo;re like us at Encodo, you moved to SSDs years ago…and never looked back. However, SSDs are generally smaller because the price (still) ramps up quickly as you increase size. We&rsquo;ve almost standardized on 512GB, but some of us still have 256GB drives.</p>
<p>Unfortunately, knowing that we all have giant hard drives started a trend among manufacturers to just <em>install everything</em>, just in case you might need it. This practice didn&rsquo;t really cause problems when we were still using by-then terabyte-sized HDs. But now, we are, once again, more sensitive to unnecessary installations.</p>
<p>If you&rsquo;re a Windows .NET developer, you&rsquo;ll feel the pinch more quickly as you&rsquo;ve got a relatively heavyweight Visual Studio installation (or three…) as well as Windows 8.1 itself, which weighs in at about 60GB after all service packs have been installed.</p>
<p>Once you throw some customer data and projects and test databases on your drive, you might find that you need, once again, to free up some space on your drive.</p>
<p>I wrote a similar post last year and  <a href="https://www.earthli.com/news/view_article.php?id= 3066">those tips &amp; tricks</a> still apply as well.</p>
<h2>System Cleanup is back</h2><p>One additional tip I have is to use <kbd>Win</kbd> + <kbd>S</kbd> to search for &ldquo;Free up disk space by deleting unnecessary files&rdquo; [1] and run that application in &ldquo;clean up system files&rdquo; mode: the latest version will throw out as much Windows Update detritus as it can, which can clean up gigabytes of space.</p>
<p><a href="https://www.earthli.com/data/news/attachments/entry/3193/clean_up_system_files.png"><img src="https://www.earthli.com/data/news/attachments/entry/3193/clean_up_system_files_tn.png" alt=" " class=" align-left"></a><a href="https://www.earthli.com/data/news/attachments/entry/3193/garbage.png"><img src="https://www.earthli.com/data/news/attachments/entry/3193/garbage_tn.png" alt=" " class=" align-left"></a><a href="https://www.earthli.com/data/news/attachments/entry/3193/windows_update_cleanup.png"><img src="https://www.earthli.com/data/news/attachments/entry/3193/windows_update_cleanup_tn.png" alt=" " class=" align-left"></a></p>
<p><span class="clear-both"></span></p>
<h2>Remove Old Visual Studios</h2><p>The other measure you can take is to remove programs that you don&rsquo;t use anymore: for .NET developers that means you should finally toss out Visual Studio 2010—and possibly even 2013, if you&rsquo;ve made the move to the new and improved 2015 already. [2] Removing these versions also has the added benefit that extensions and add-ons will no longer try to install themselves into these older Visual Studios anymore.</p>
<p>However, even if you <em>do</em> remove VS2010, for example, you might find that it just magically reappears again. Now, I&rsquo;m not surprised when I see older runtimes and redistributables in my list of installed programs—it makes sense to keep these for applications that rely on them—but when I see the entire VS2010 SP1 has magically reappeared, I&rsquo;m confused.</p>
<p><span style="width: 423px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3193/vs2010_in_program_and_features.png"><img src="https://www.earthli.com/data/news/attachments/entry/3193/vs2010_in_program_and_features.png" alt=" " style="width: 423px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3193/vs2010_in_program_and_features.png">VS2010 in Programs and Features</a></span></span></p>
<p>Imagine my surprise when I installed SQL Server Management Studio 2016—the November 2015 Preview—and saw the following installation item:</p>
<p><span style="width: 349px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/3193/sql_server_management_studio_2015_installs_vs2010.png"><img src="https://www.earthli.com/data/news/attachments/entry/3193/sql_server_management_studio_2015_installs_vs2010.png" alt=" " style="width: 349px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/3193/sql_server_management_studio_2015_installs_vs2010.png">SQL Server Management Studio installation</a></span></span></p>
<p>However, if you do remove this item again, then SQL Server Management Studio will no longer run (no surprise there, now that we know that it installed it). However, if you&rsquo;re just doing cleanup and don&rsquo;t know about this dependency [3], you might accidentally break tools. So be careful; if you&rsquo;re too aggressive, you&rsquo;ll end up having to re-install some stuff. [4]</p>
<p><hr></p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3193_1_body" class="footnote-number">[1]</span> The reason I write that &ldquo;it&rsquo;s back&rdquo; is that for a couple of versions of Windows, Microsoft made it an optional download/feature instead of installing it by default.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3193_2_body" class="footnote-number">[2]</span> Be careful about removing Visual Studio 2013 if you have web projects that still rely on targets installed with VS2013 but not included in VS2015. I uninstalled 2013 on my laptop and noticed a warning about an MS target that the compiler could no longer find.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3193_3_body" class="footnote-number">[3]</span> The fact that Windows still can&rsquo;t tell you about dependencies is a story for another day. We should have had a package manager on Windows years ago. And, no, while Choco is a lovely addition, it&rsquo;s not quite the full-fledged package manager that aptitude is on Ubuntu.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_3193_4_body" class="footnote-number">[4]</span> Speaking from experience. Could you tell?</div>      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[How Encodo sets up new workstations]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=3143</id>
    <link href="https://www.earthli.com/news/view_article.php?id=3143"/>
    <updated>2015-06-05T11:24:28+02:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p><a href="https://www.earthli.com/data/news/attachments/entry/3143/windows-8-logo.png"><img title="Windows 8.1" src="https://www.earthli.com/data/news/attachments/entry/3143/windows-8-logo_tn.png" alt=" " class=" align-right clear-right"></a><a href="https://www.earthli.com/data/news/attachments/entry/3143/ubuntu-logo.png"><img title="Ubuntu" src="https://www.earthli.com/data/news/attachments/entry/3143/ubuntu-logo_tn.png" alt=" " class=" align-right clear-right"></a><a href="https://www.earthli.com/data/news/attachments/entry/3143/339px-clonezilla.svg.png"><img title="Clonezilla" src="https://www.earthli.com/data/news/attachments/entry/3143/339px-clonezilla.svg_tn.png" alt=" " class=" align-right"></a><a href="https://www.earthli.com/data/news/attachments/entry/3143/811025.png"><img title="Chocolatey" src="https://www.earthli.com/data/news/attachments/entry/3143/811025_tn.png" alt=" " class=" align-right clear-right"></a><a href="https://www.earthli.com/data/news/attachments/entry/3143/virtualbox_logo.png"><img title="VirtualBox" src="https://www.earthli.com/data/news/attachments/entry/3143/virtualbox_logo_tn.png" alt=" " class=" align-right"></a>At <a href="http://encodo.com">Encodo</a>, we&rsquo;ve recently set up a few new workstations with Windows 8.1 and wanted to share the process we use, in case it might come in handy for others.</p>
<p>Windows can take a long time to install, as can Microsoft Office and, most especially, Visual Studio with all of its service packs. If we... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=3143">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">5. Jun 2015 11:24:28 (GMT-5)</span>
</p>
<p>
Updated by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">6. Jun 2015 16:42:47 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p><a href="https://www.earthli.com/data/news/attachments/entry/3143/windows-8-logo.png"><img title="Windows 8.1" src="https://www.earthli.com/data/news/attachments/entry/3143/windows-8-logo_tn.png" alt=" " class=" align-right clear-right"></a><a href="https://www.earthli.com/data/news/attachments/entry/3143/ubuntu-logo.png"><img title="Ubuntu" src="https://www.earthli.com/data/news/attachments/entry/3143/ubuntu-logo_tn.png" alt=" " class=" align-right clear-right"></a><a href="https://www.earthli.com/data/news/attachments/entry/3143/339px-clonezilla.svg.png"><img title="Clonezilla" src="https://www.earthli.com/data/news/attachments/entry/3143/339px-clonezilla.svg_tn.png" alt=" " class=" align-right"></a><a href="https://www.earthli.com/data/news/attachments/entry/3143/811025.png"><img title="Chocolatey" src="https://www.earthli.com/data/news/attachments/entry/3143/811025_tn.png" alt=" " class=" align-right clear-right"></a><a href="https://www.earthli.com/data/news/attachments/entry/3143/virtualbox_logo.png"><img title="VirtualBox" src="https://www.earthli.com/data/news/attachments/entry/3143/virtualbox_logo_tn.png" alt=" " class=" align-right"></a>At <a href="http://encodo.com">Encodo</a>, we&rsquo;ve recently set up a few new workstations with Windows 8.1 and wanted to share the process we use, in case it might come in handy for others.</p>
<p>Windows can take a long time to install, as can Microsoft Office and, most especially, Visual Studio with all of its service packs. If we installed everything manually every time we needed a new machine, we&rsquo;d lose a day each time.</p>
<p>To solve this problem, we decided to define the <em>Encodo Windows Base Image</em>, which includes all of the standard software that everyone should have installed. Using this image saves a lot of time when you need to either install a new workstation or you&rsquo;d like to start with a fresh installation if your current one has gotten a bit crufty.</p>
<p>Encodo doesn&rsquo;t have a lot of workstations, so we don&rsquo;t really need anything too enterprise-y, but we do want something that works reliably and quickly.</p>
<p>After a lot of trial and error, we&rsquo;ve come up with the following scheme.</p>
<ul>
<li>Maintain a Windows 8.1 image in a VMDK file</li>
<li>Use VirtualBox to run the image</li>
<li>Use Chocolatey for (almost) all software installation</li>
<li>Use Ubuntu Live on a USB stick (from which to boot)</li>
<li>Use Clonezilla to copy the image to the target drive</li></ul><h2>Installed Software</h2><p>The standard loadout for developers comprises the following applications.</p>
<p>These are updated by Windows Update.</p>
<ul>
<li>Windows 8.1 Enterprise</li>
<li>Excel</li>
<li>Powerpoint</li>
<li>Word</li>
<li>Visio</li>
<li>German Office Proofing Tools</li>
<li>Visual Studio 2013</li></ul><p>These applications must be updated manually.</p>
<ul>
<li>ReSharper Ultimate</li>
<li>Timesnapper</li></ul><p>The rest of the software is maintained with Chocolatey.</p>
<ul>
<li>beyondcompare (file differ)</li>
<li>conemu (PowerShell enhancement)</li>
<li>fiddler4 (HTTP traffic analyzer)</li>
<li>firefox</li>
<li>flashplayerplugin</li>
<li>git (source control)</li>
<li>googlechrome</li>
<li>greenshot (screenshot tool)</li>
<li>jitsi (VOIP/SIP)</li>
<li>jre8 (Java)</li>
<li>keepass (Password manager)</li>
<li>nodejs</li>
<li>pidgin (XMPP chat)</li>
<li>poshgit (Powershell/Git integration)</li>
<li>putty (SSH)</li>
<li>smartgit (GIT GUI)</li>
<li>stylecop (VS/R# extension)</li>
<li>sublimetext3 (text editor)</li>
<li>sumatrapdf (PDF viewer)</li>
<li>truecrypt (Drive encryption)</li>
<li>vlc (video/audio player/converter)</li>
<li>winscp (SSH file-copy tool)</li>
<li>wireshark (TCP traffic analyzer)</li></ul><h2>Maintaining the Image</h2><p>This part has gotten quite simple.</p>
<ol>
<li>Load the VM with the Windows 8.1 image</li>
<li>Apply Windows Updates</li>
<li>Update ReSharper, if necessary</li>
<li>Run <code>choco upgrade all</code> to update all Chocolatey packages</li>
<li>Shut down the VM cleanly</li></ol><h2>Writing the image to a new SSD</h2><p>The instructions we maintain internally are more detailed, but the general gist is to do the following,</p>
<ol>
<li>Install the SSD in the target machine</li>
<li>Plug in the Ubuntu Live USB stick</li>
<li>Plug in the USB drive that has the Windows image and Clonezilla on it</li>
<li>Boot to the Ubuntu desktop</li>
<li>Make sure you have network access</li>
<li>Install VirtualBox in Ubuntu from the App Center</li>
<li>Create a VMDK file for the target SSD</li>
<li>Start VirtualBox and create a new VM with the Windows image and SSD VMDK as drives and Clonezilla configured as a CD</li>
<li>Start the VM and boot to Clonezilla</li>
<li>Follow instructions, choose options and then wait 40 minutes to clone data</li>
<li>Power off Clonezilla</li>
<li>Shut down Ubuntu Live</li>
<li>Unplug the USB drive and stick</li>
<li>Boot your newly minted Windows 8.1 from the SSD</li>
<li>Install Lenovo System Update (if necessary) and update drivers (if necessary)</li>
<li>Add the machine to the Windows domain</li>
<li>Remote-install Windows/Office licenses and activate Windows</li>
<li>Remote-install Avira antivirus</li>
<li>Grant administrator rights to the owner of the laptop</li>
<li>Use <code>sysprep /generalize</code> to reset Windows to an OOB (Out-of-box) experience for the new owner</li></ol><h2>Conclusion</h2><p>We&rsquo;re pretty happy with this approach and the loadout but welcome any feedback or suggestions to improve them. We&rsquo;ve set up two notebooks in the last three weeks, but that&rsquo;s definitely a high-water mark for us. We expect to use this process one more time this year (in August, when a new hire arrives), but it&rsquo;s nice to know that we now have a predictable process.</p>
      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Who’s using up my entire SSD?]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=3066</id>
    <link href="https://www.earthli.com/news/view_article.php?id=3066"/>
    <updated>2014-11-23T09:10:14+01:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<h2>Hard drives =&gt; SSDs</h2><p><a href="https://www.earthli.com/data/news/attachments/entry/3066/full-hard-drive.png"><img src="https://www.earthli.com/data/news/attachments/entry/3066/full-hard-drive_tn.png" alt=" " class=" align-left"></a>In the old days, we cleaned up our hard drives because we didn&rsquo;t have enough space for all of our stuff. Our operating systems, applications and caches took up a reasonable portion of that hard drive.</p>
<p>Then we had gigantic hard drives with more than enough space for everything.... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=3066">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">23. Nov 2014 09:10:14 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <h2>Hard drives =&gt; SSDs</h2><p><a href="https://www.earthli.com/data/news/attachments/entry/3066/full-hard-drive.png"><img src="https://www.earthli.com/data/news/attachments/entry/3066/full-hard-drive_tn.png" alt=" " class=" align-left"></a>In the old days, we cleaned up our hard drives because we didn&rsquo;t have enough space for all of our stuff. Our operating systems, applications and caches took up a reasonable portion of that hard drive.</p>
<p>Then we had gigantic hard drives with more than enough space for everything. Operating systems, applications and caches grew. Parsimonious software was no longer in vogue because it was a waste of time and money.</p>
<p>SSDs replaced hard drives, improving speeds drastically and ushering in a new era in performance. This did not come without cost, though. SSDs were much more expensive to make, so the affordable ones were necessarily much smaller than our existing hard drives. Our operating systems, applications and caches have not made the adjustment, though, at least not on Windows.</p>
<p>We are left with drives 70-80% smaller than the ones we had a couple of years ago—256MB vs. 1TB. Developers, in particular, tend to have software that uses space indiscriminately.</p>
<h2>Drive space: critical</h2><p>I recently noticed that my system drive had filled up to almost 80% and took a little time to do something about it. I downloaded <a href="http://www.jam-software.com/freeware/">TreeSize Free</a> from <em>Jam Software</em> to get an idea of which folders took up the most space. I also referred to <a href="http://www.hanselman.com/blog/GuideToFreeingUpDiskSpaceUnderWindows81.aspx">Guide to Freeing up Disk Space under Windows 8.1</a> by <cite>Scott Hanselman</cite>: there are a lot of great tips in there.</p>
<p>Without further ado, here are the locations that struck me as being &ldquo;space hogs&rdquo;—locations that were large but didn&rsquo;t seem to offer much utility or seemed to be logs, caches or backups.</p>
<dl><dt class="field"><code>C:\Windows\Installer</code></dt>
<dd><a href="https://www.earthli.com/data/news/attachments/entry/3066/windows_large_folders.png"><img src="https://www.earthli.com/data/news/attachments/entry/3066/windows_large_folders_tn.png" alt=" " class=" align-right"></a>This folder is almost 22GB on my machine. It seems to contain MS installers, updates, service packs and hot-fixes. There are a few tips online—some from Microsoft—on how to clean up this folder. Even after running a couple of them, I didn&rsquo;t notice a significant difference in size. I didn&rsquo;t spend a lot of time here, but cleaning up this folder would yield significant savings.</dd>
<dt class="field">SQL Server</dt>
<dd>There were several gigabytes—I had 2.8GB—of older versions and installers in the main SQL Server folder, located at <code>/Program Files/Microsoft SQL Server/110/Setup Bootstrap</code>. If you have large databases, consider moving them to another drive or location and setting the default data directory to somewhere other than the <em>Program Files</em> directory on the system drive.</dd>
<dt class="field">Miro</dt>
<dd>I use this player for podcasts. It stores almost 1GB in something called the &ldquo;icon cache&rdquo;, located at <code>/Users/&lt;username&gt;/Roaming/Participatory Culture Foundation/Miro/icon-cache</code></dd>
<dt class="field">SmartGit</dt>
<dd>SmartGit updates itself automatically now and they have very regular builds and updates, especially if you use preview releases. It never seems to delete these updates, instead retaining them in <code>/Users/&lt;username&gt;/Roaming/syntevo/SmartGit/updates</code>.</dd>
<dt class="field">TimeSnapper </dt>
<dd><div class=" "><p>I use this to keep track of my day, referring to it to fill out my timesheet. Screen captures are located in <code>/Users/&lt;username&gt;/Local/TimeSnapper/Snapshots</code>. The default settings are to capture 100%-quality PNG files for all monitors every ten seconds. I have two large monitors and the default 5GB cache fills up in less than a day. This is not very helpful and wastes a lot of space. Instead, I recommend these settings:</p>
<ul>
<li><strong>File Type:</strong> JPG</li>
<li><strong>Resolution:</strong> 50%</li>
<li><strong>Quality:</strong> 50%</li>
<li><strong>Interval:</strong> 60 seconds</li>
<li><strong>Remove images older than:</strong> (not set)</li>
<li><strong>Maximum allowed space:</strong> 1000MB</li></ul></div></dd>
<dt class="field">Sandcastle</dt>
<dd>If you build XML documentation locally, you might have a sizable cache left over from the last build. I had over 800MB in the <code>\Users\&lt;username&gt;\AppData\Local\EWSoftware\Sandcastle Help File Builder\Cache</code></dd>
<dt class="field">Java</dt>
<dd><a href="https://www.earthli.com/data/news/attachments/entry/3066/sun_java_old_versions.png"><img src="https://www.earthli.com/data/news/attachments/entry/3066/sun_java_old_versions_tn.png" alt=" " class=" align-right"></a>Java also likes to update itself regularly and never throws away its older versions. Unless you know that you absolutely need a specific version, you can throw away the older versions found in <code>C:\Users\marco\AppData\LocalLow\Sun\Java</code></dd>
<dt class="field">GhostDoc</dt>
<dd>The Visual Studio documentation extension keeps quite an extensive cache in the <code>\Users\&lt;username&gt;\AppData\Local\SubMain\Cache</code> directory.</dd>
<dt class="field">JetBrains</dt>
<dd><a href="https://www.earthli.com/data/news/attachments/entry/3066/jetbrains_caches.png"><img src="https://www.earthli.com/data/news/attachments/entry/3066/jetbrains_caches_tn.png" alt=" " class=" align-right clear-right"></a>This is another company that squirrels away all of its installers for its various products—I use DotPeek, DotCover, DotTrace, ReSharper, PhpStorm and 0xDBE—in this folder <code>\Users\marco\AppData\Local\JetBrains</code>. Feel free to throw away old installations and installers.</dd>
<dt class="field">MSOCache</dt>
<dd>This mysterious folder located at the root of the system drive has been around since time immemorial. It appears to be 0 bytes when examined with a standard user. When you run TreeSize in administrator mode, though, you&rsquo;ll see that it&rsquo;s 2.4GB of … stuff. This stuff is apparently installers for all of the office products that you have installed on your machine. They are cached in this folder in order to avoid requesting installation media if Office decides to install something on-the-fly. That&rsquo;s right: if you elect not to install certain features to avoid wasting drive space, Office obliges by putting all of the stuff you didn&rsquo;t install into a 2.5GB directory that you can&rsquo;t delete. Documentation is spotty, but <a href="http://en.kioskea.net/faq/12161-how-to-delete-the-msocache">this article</a> claims that you can remove it by using the standard disk-cleanup tool.</dd>
</dl><p>This list is meant to show where space is being wasted on a Windows developer machine. I wasn&rsquo;t able to find a way to remove all of these, but cleaned up what I could quickly clean up.</p>
<p>If you&rsquo;re really tight on space, you can turn off hibernation—which uses 13GB on my machine—or reduce the size of the page file—which is 6GB on my machine. And, as mentioned above, <a href="http://www.hanselman.com/blog/GuideToFreeingUpDiskSpaceUnderWindows81.aspx">Scott Hanselman&rsquo;s guide</a> is quite helpful.</p>
      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[How to configure Visual Studio 2013 with licenses from a multi-pack]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=2962</id>
    <link href="https://www.earthli.com/news/view_article.php?id=2962"/>
    <updated>2014-02-22T23:21:20+01:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p><small class="notes">The following article was originally published on the <a href="http://encodo.com/en/blogs.php?entry_id=359">Encodo blogs</a> and is cross-published here.</small></p>
<blockquote class="quote abstract "><div>If you&rsquo;re only interesting in what we promised to show you in the title of the article, then you can jump to the <a href="#tldr"><abbr title="too long; didn't read">tl;dr</abbr> at the end</a>.</div></blockquote><h2>Silver Partnership</h2><p>Encodo is a member of the Microsoft Partner... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=2962">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">22. Feb 2014 23:21:20 (GMT-5)</span>
</p>
<p>
Updated by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">22. Feb 2014 23:22:59 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p><small class="notes">The following article was originally published on the <a href="http://encodo.com/en/blogs.php?entry_id=359">Encodo blogs</a> and is cross-published here.</small></p>
<blockquote class="quote abstract "><div>If you&rsquo;re only interesting in what we promised to show you in the title of the article, then you can jump to the <a href="#tldr"><abbr title="too long; didn't read">tl;dr</abbr> at the end</a>.</div></blockquote><h2>Silver Partnership</h2><p>Encodo is a member of the Microsoft Partner Program with a Silver Competency. We maintain this competency through a combination of the following:</p>
<ul>
<li>A yearly fee</li>
<li>Registration of .NET products developed by Encodo (Punchclock and Quino in our case)</li>
<li>Customer endorsements for .NET products that Encodo has developed</li>
<li>Competency exams</li></ul><p>This involves no small amount of work and means that the competency isn&rsquo;t <em>that</em> easy to get. You can also use Microsoft competencies (e.g. MCSE) but we don&rsquo;t have any of those (yet).</p>
<p>We&rsquo;ve had this membership for a while in order to get partner benefits, which basically translates to having licenses for Microsoft software at our disposal in order to develop and test .NET software. This includes 10 licenses for all premium versions of Visual Studio, up to and including the latest and greatest.</p>
<h2>The partner web site</h2><p>In previous versions, we were able to go to the partner web site and, after a lot of effort, get license keys for our 10 licenses and distribute them among our developers.</p>
<p>I mention the effort only because the partner site(s) and page(s) and application(s) are so notoriously hard to navigate. Every year, Microsoft improves something on the site, generally to the style but not the usability. I pluralized the components above because it&rsquo;s hard to tell how many different teams, applications and technologies are actually behind the site. [1]</p>
<p><span style="width: 200px; display: table" class=" align-right"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_13_55_09-browser_support_warning_-_opera.png"><img src="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_13_55_09-browser_support_warning_-_opera_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_13_55_09-browser_support_warning_-_opera.png">Internet Explorer 11 highly recommended</a></span></span></p>
<ul>
<li>You have to log in with your official LiveID but some pages mysteriously don&rsquo;t use the common login whereas others do use it and still others just log you out entirely, forcing you to log in again.</li>
<li>Some pages work in any browser whereas others highly recommend using Internet Explorer, some even recommending version 11. If you don&rsquo;t use IE, you&rsquo;ll always wonder whether the site failed to work because it&rsquo;s so buggy or because your browser is not properly supported.</li>
<li>The downloads page includes Windows operating systems and server software of all kinds as well as productivity software like Office and Visio but mentions nothing about Visual Studio.</li></ul><p>It&rsquo;s basically always been a mess and still is a mess and our suspicion is that Microsoft deliberately makes it hard to redeem your licenses so that you&rsquo;ll either (A) just purchase more licenses via a channel that actually delivers them or (B) call their for-fee hotline and spend a bunch of money waiting on hold before you get forwarded from one person to another until finally ending up with someone who can answer your question.</p>
<p><hr></p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2962_1_body" class="footnote-number">[1]</span> You can confirm our impressions just by looking at the screenshots attached below.</div><h2>The convoluted path to licenses</h2><p>That question being, in case we&rsquo;ve forgotten, &ldquo;how can I please get your software to recognize the licenses that I purchased instead of threatening me that it will go dark in 90 days?&rdquo;</p>
<p>The magical answer to that question is below.</p>
<p>First, what are we actually trying to accomplish? We have a multi-pack license and we want some way of letting our users/developers register products. In most cases, this still works as it always has: get a license key and enter it/register it with the local installation of the product (e.g. Office, Windows, etc.)</p>
<p>With Visual Studio 2013 (VS2013), things are slightly different. There are no multi-pack license keys anymore. Instead, users log in to their Visual Studio with a particular user. VS2013 checks that account for a license on the MSDN server and enables its functionality accordingly. If you have no license registered, then you get a 90-day trial license.</p>
<p>If the license is a multi-pack and the user accounts are individual…how does that work? Easy: just associate individual users with the partner account and assign them licenses. However, this all works via MSDN, so it&rsquo;s not enough to just have a Windows Live account. That user must also be registered as an MSDN subscriber.</p>
<p>So, for each user, you&rsquo;re going to have to do the following:</p>
<ol>
<li>Get them a Windows Live account if they don&rsquo;t already have one</li>
<li>Add that account ID to the partner account</li>
<li>Enable that user to get premium benefits (this can take up to <strong>72 hours</strong>; see below for more detail)</li>
<li>Register that Windows Live account as an MSDN subscriber</li>
<li>Enter your credentials into VS2013 or refresh your license</li></ol><p><span id="tldr"></span></p>
<h2>The solution (with screenshots)</h2><p>Sounds easy, right?. Once you know what to do, it&rsquo;s not so bad. But we had a lot of trouble discovering this process on our own. So here are the exact steps you need to take, with screenshots and hints to help you along.</p>
<ol>
<li>Log in with the Windows LiveID that corresponds to the account under which the Silver Membership is registered.</li>
<li>Navigate to the account settings where you can see the list of members registered with your account.</li>
<li>Add the email address of the user to that list of members [2]</li>
<li>Make sure that the &ldquo;Premium&rdquo; box is checked at the end of the list [3]</li>
<li>A six-character TechID will be generated for that user. The site claims that it can take up to <strong>72 hours</strong> for this number to be ready for use on the MSDN site. Our experience was that it took considerably less time.
<li><div>Give that user their ID and have them register with MSDN to create a subscriber<ol>
<li>Get the Tech ID for your user from the steps above;</li>
<li>Browse to <a href="http://msdn.microsoft.com/">the MSDN home page</a> and click &ldquo;Downloads&rdquo; [4]</li>
<li>Click &ldquo;MSDN Subscriptions&rdquo; in the sub-menu under &ldquo;Downloads&rdquo; (totally intuitive, right?) [5]</li>
<li>Ignore the gigantic blue button enticing you to check out &ldquo;Access benefits&rdquo; and click &ldquo;Register a subscription&rdquo; [6]</li>
<li>You&rsquo;ll finally be on the page to &ldquo;Activate your subscription&rdquo;. Use the exact same address as registered with the partner account and enter your Tech ID. [7]</li></ol></div></li>
<li>Once the user has a subscriber, that user can log in to VS2013 from the registration dialog to enable that license [8]</li></ol><p>Logging in has other benefits: you can store your VS2013 settings on the Live server and use them wherever you work with VS2013 and have logged in.</p>
<div class=" align-left left"><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2962_2_body" class="footnote-number">[2]</span> <span style="width: 200px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_13_57_26-personen_verwalten.png"><img src="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_13_57_26-personen_verwalten_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_13_57_26-personen_verwalten.png">Assigned users</a></span></span></div></div><div class=" align-left left"><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2962_3_body" class="footnote-number">[3]</span> <span style="width: 200px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_13_58_22-personen_verwalten.png"><img src="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_13_58_22-personen_verwalten_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_13_58_22-personen_verwalten.png">Assign MSDN subscriptions</a></span></span></div></div><div class=" align-left clear-left left"><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2962_4_body" class="footnote-number">[4]</span> <span style="width: 200px; display: table" class=" align-left"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_13_59_04-msdn_the_microsoft_developer_network.png"><img src="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_13_59_04-msdn_the_microsoft_developer_network_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_13_59_04-msdn_the_microsoft_developer_network.png">MSDN home page</a></span></span></div></div><div class=" align-left left"><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2962_5_body" class="footnote-number">[5]</span> <span style="width: 200px; display: table" class=" align-left"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_13_59_51-microsoft_developer_downloads.png"><img src="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_13_59_51-microsoft_developer_downloads_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_13_59_51-microsoft_developer_downloads.png">MSDN developer downloads page</a></span></span></div></div><div class=" align-left left"><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2962_6_body" class="footnote-number">[6]</span> <span style="width: 200px; display: table" class=" align-left"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_14_00_30-msdn_subscriptions.png"><img src="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_14_00_30-msdn_subscriptions_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_14_00_30-msdn_subscriptions.png">MSDN subscription page</a></span></span></div></div><div class=" align-left clear-left left"><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2962_7_body" class="footnote-number">[7]</span> <span style="width: 200px; display: table" class=" align-left"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_14_01_25-activate_my_msdn_subscription.png"><img src="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_14_01_25-activate_my_msdn_subscription_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_14_01_25-activate_my_msdn_subscription.png">Activate MSDN subscription</a></span></span></div></div><div class=" align-left left"><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2962_8_body" class="footnote-number">[8]</span> <span style="width: 200px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_13_47_29-microsoft_visual_studio_account_settings.png"><img src="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_13_47_29-microsoft_visual_studio_account_settings_tn.png" alt=" " style="width: 200px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/2962/2014-02-19_13_47_29-microsoft_visual_studio_account_settings.png">VS2013 account &amp; license settings</a></span></span></div></div><p><span class="clear-both"></span></p>
      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Troubleshooting a misbehaving designer in Visual Studio 2010]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=2487</id>
    <link href="https://www.earthli.com/news/view_article.php?id=2487"/>
    <updated>2011-02-20T22:17:39+01:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p>Anyone who&rsquo;s used Visual Studio 2010 [1] for a non-trivial Windows Forms project has run into situations wherein the designer can no longer be opened. Usually, it&rsquo;s because the class encounters null-reference exceptions when referencing data that is unavailable until runtime. Those are easy to fix:... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=2487">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">20. Feb 2011 22:17:39 (GMT-5)</span>
</p>
<p>
Updated by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">21. Feb 2011 07:11:33 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p>Anyone who&rsquo;s used Visual Studio 2010 [1] for a non-trivial Windows Forms project has run into situations wherein the designer can no longer be opened. Usually, it&rsquo;s because the class encounters null-reference exceptions when referencing data that is unavailable until runtime. Those are easy to fix: just avoid referencing that data in the constructor or load-routine while in design-mode.</p>
<p>However, sometimes Visual Studio has problems loading assemblies that it seems it should have available. Sometimes Visual Studio seems to have a devil of a time loading assemblies whose location it has quite explicitly been told.</p>
<p><small class="notes">If you like, there is a walkthrough—with screenshots!—at the end of this article, which shows how to solve even the most intractable designer problems.</small></p>
<h2>A Tale of Two Platforms</h2><p>One of the troubles is that many developers have moved to 64-bit Windows in order to take advantage of the higher RAM limits. The move to 64-bit causes some issues with many .NET assemblies in that the developer (i.e. probably YOU) didn&rsquo;t remember to take into account that an assembly might be loaded by <code>x86</code> code or <code>x64</code> code or some combination thereof. The designer will sometimes be unable to load an assembly because it has been compiled in a way that cannot be loaded by the runtime currently being used by the designer <em>as explicitly requested in the project settings</em>. That said, the request is explicit as far as Visual Studio is concerned, but implicit as far as the developer is concerned.</p>
<p>The only long-lasting solution is to learn how assemblies are loaded and what the best compile settings are for different assemblies so that you will run into as few problems as possible.</p>
<p>There are several considerations:</p>
<ol>
<li>It would be nice to have class libraries that can be loaded by any executable instead of having separate versions for <code>x64</code> and <code>x86</code>.</li>
<li>It would also be nice to be able to benefit from as many debugging features of the environment as possible (e.g. the <em>Edit &amp; Continue</em> feature does not work with <code>x64</code> builds).</li>
<li>It would be nice to have the most optimal executable for the target platform. (This is usually taken to mean an executable compiled to run natively on the target, but turns out not necessarily to be so, as shown below.)</li></ol><p>In order to help decide what to do, it&rsquo;s best to go to the source: Microsoft. To that end, the article <a href="http://blogs.msdn.com/b/rmbyers/archive/2009/06/09/anycpu-exes-are-usually-more-trouble-then-they-re-worth.aspx">AnyCPU Exes are usually more trouble than they&rsquo;re worth</a> by <cite>Rick Byers</cite> (<cite><a href="http://blogs.msdn.com/">MSDN Blogs</a></cite>) provides a lot of guidance.</p>
<ul>
<li><span class="quote-inline">&ldquo;Running in two very different modes increases product complexity and the cost of testing&rdquo;</span>: two different platforms equals two times as much testing. Build servers have to compile and run tests for all configurations because there can be subtle differences. [2]</li>
<li><span class="quote-inline">&ldquo;32-bit tends to be faster anyway&rdquo;</span>: the current version of the WOW (Windows-on-Windows) runtime on 64-bit systems actually runs code faster than the native 64-bit runtime. That still holds true as of this writing.</li>
<li><span class="quote-inline">&ldquo;Some features aren&rsquo;t avai[l]able in 64-bit&rdquo;</span>: the aforementioned <em>Edit &amp; Continue</em> counts among these, as does historical debugging if you&rsquo;re lucky enough to have a high-end version of Visual Studio.</li></ul><p>Given all of the points made above and assuming that your application does not actually <em>need</em> to be 64-bit (i.e. it needs to address more RAM than is available in the 32-bit address space), your best bet is to use the following rules as your guide when setting up default build and release settings.</p>
<ul>
<li>Pure class libraries should always be compiled for &ldquo;Any CPU&rdquo; (i.e. able to be loaded by both <code>x86</code> and <code>x64</code> assemblies).</li>
<li>Executables should always be compiled as <code>x86</code>.</li>
<li>Unit-test assemblies should also be compiled as <code>x86</code> in order to be able to use <em>Edit &amp; Continue</em>.</li></ul><h2>Where Did You Find That?!</h2><p>Once you&rsquo;ve set up your build configuration appropriately and rebuilt everything, you will avoid many design-time errors. </p>
<p>Though not all of them.</p>
<p>Visual Studio has a nasty habit of loading assemblies wherever it can find one that matches your requirements, regardless of the location from which you linked in the assembly. If you look in the project file for a C# Visual Studio project (the <code>.csproj</code>-file), you&rsquo;ll actually see an <abbr title="Extensible Markup Language">XML</abbr> element called <code>&lt;HintPath&gt;</code> after each assembly reference. The name is appropriately chosen: Visual Studio will look for an assembly in this location <em>first</em>, but will continue looking elsewhere if it&rsquo;s not there. It will look in the <abbr title="Global Assembly Cache">GAC</abbr> and it will look in the <code>bin/Debug</code> or <code>bin/x86/Debug</code> folder to see if can scrounge up something against which to link. Only if the assembly is not to be found anywhere will Visual Studio give up and actually emit an error message.</p>
<p>At <a href="http://encodo.com">Encodo</a>, we stopped using the GAC entirely, relying instead on local folders containing all required third-party libraries. In this way, we try to control the build configuration and assemblies used when code is downloaded to a new environment (such as a build server). However, when working locally, it is often the case that a developer&rsquo;s environment is a good deal dirtier than that of a build server and must be <em>cleaned</em>.</p>
<p>Though Visual Studio offers an option to clean a project or solution, it doesn&rsquo;t do what you&rsquo;d expect: assemblies remain in the <code>bin/Debug</code> or <code>bin/x86/Debug</code> folders. We&rsquo;ve added a batch command that we use to explicitly delete all of these folders so that Visual Studio once again must rely on the <code>HintPath</code> to find its assemblies.</p>
<p>If you find yourself switching between <code>x86</code> and <code>x64</code> assemblies with any amount of frequency, you <em>will</em> run into designer loading errors when the designer manages to find an assembly compiled for the wrong platform. When this happens, you must shut down Visual Studio, clean all output folders as outlined above and re-open the solution.</p>
<h4>Including References with ReSharper</h4><p>A final note on references: if you adopt the same policy as Encodo of very carefully specifying the location of all external references, you have to watch out for ReSharper. If ReSharper offers to &ldquo;reference assembly X&rdquo; and &ldquo;include the namespace Y&rdquo;, you should politely decline and reference the assembly yourself. ReSharper will reference the assembly as expected but will not include a <code>HintPath</code> so the reference will be somewhere in the <code>bin/Debug</code> or <code>bin/x86/Debug</code> folder and will break as soon as you clean all of those directories (as will be the case on a build server).</p>
<h2>Designer Assemblies</h2><p>This almost always works, but Visual Studio can <em>still</em> find ways of loading assemblies over which you have little to no control: the <em>designer</em> assemblies.</p>
<p>In all likelihood, you won&rsquo;t be including the designer assemblies in your third-party binaries folder for several reasons:</p>
<ol>
<li>They are not strictly required for compilation</li>
<li>The are usually a good deal larger than the assembly that they support and are only used during design-time</li>
<li>Design-time assemblies are usually associated with visual component packages that must be installed anyway in order for a compiled executable to be considered licensed. [3]</li></ol><p>For all of the reasons above, it&rsquo;s best not to even try to get Visual Studio to load designer assemblies out of a specific folder and just let it use the GAC instead.</p>
<h4>Walkthrough: Solving a Problem in the Designer</h4><p>Despite all of the precautions mentioned above, it is still possible to have a misbehaving designer. The designer can be so mischievous that it simply refuses to load, showing neither a stack not an error message, keeping its reasons to itself. How do we solve such a problem?</p>
<p>You know you have a problem when the designer presents the following view instead of your form or user control.</p>
<p><span style="width: 584px" class=" align-center"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/2487/designer_not_loaded.png"><img src="https://www.earthli.com/data/news/attachments/entry/2487/designer_not_loaded.png" alt=" " class="frame" style="width: 584px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/2487/designer_not_loaded.png">Designer not loaded</a></span></span></p>
<p>In the worst case, you will be given neither a useful error message nor a stack from which to figure out what happened.</p>
<p><span style="width: 685px" class=" align-center"><span class="auto-content-inline"><img src="https://www.earthli.com/data/news/attachments/entry/2487/designer_not_loaded_with_comments.png" alt=" " class="frame" style="width: 685px"></span><span class="auto-content-caption">No reason and no stack</span></span></p>
<p>There&rsquo;s a little link at the top—right in the middle—that you can try that <em>may</em> provide you with more information.</p>
<p><span style="width: 689px" class=" align-center"><span class="auto-content-inline"><img src="https://www.earthli.com/data/news/attachments/entry/2487/designer_not_loaded_roll_the_dice.png" alt=" " class="frame" style="width: 689px"></span><span class="auto-content-caption">Roll the dice and load it anyway</span></span></p>
<p>The designer will try to scare you off one last time before giving up its precious secrets; ignore it.</p>
<p><span style="width: 695px" class=" align-center"><span class="auto-content-inline"><img src="https://www.earthli.com/data/news/attachments/entry/2487/what_have_you_got_to_lose.png" alt=" " class="frame" style="width: 695px"></span><span class="auto-content-caption">What have you got to lose?</span></span></p>
<p>At this point, the designer will finally show the warnings and errors that describe the reason it cannot load. [4]</p>
<p><span style="width: 722px" class=" align-center"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/2487/load_warnings.png"><img src="https://www.earthli.com/data/news/attachments/entry/2487/load_warnings.png" alt=" " class="frame" style="width: 722px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/2487/load_warnings.png">Load warnings</a></span></span></p>
<p>The text is a bit dense, but one thing pops out immediately:</p>
<p><span style="width: 721px" class=" align-center"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/2487/why.png"><img src="https://www.earthli.com/data/news/attachments/entry/2487/why.png" alt=" " class="frame" style="width: 721px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/2487/why.png">Why are you even looking there?</a></span></span></p>
<p>It looks like Visual Studio is checking some cached location within your application settings to find referenced assemblies and their designer assemblies. [5] This is a bit strange as Visual Studio has been explicitly instructed to load those assemblies from the third-party folder that we carefully prepared above. Perhaps this cache represents yet another location that must be cleared manually every once in a while in order to keep the designer running smoothly.</p>
<pre class=" "><code>[A]DevExpress.XtraLayout.LayoutControl cannot be cast to [B]DevExpress.XtraLayout.LayoutControl. 
Type A originates from 'DevExpress.XtraLayout.v10.2, Version=10.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a' 
in the context 'LoadNeither' at location 
'<strong class="highlight">C:\Documents and Settings\Marco\Local Settings\Application Data\Microsoft\VisualStudio\10.0\ProjectAssemblies\kn8q9qdt01\DevExpress.XtraLayout.v10.2.dll</strong>'. 
Type B originates from 'DevExpress.XtraLayout.v10.2, Version=10.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a'
in the context 'Default' at location
'C:\WINDOWS\assembly\GAC_MSIL\DevExpress.XtraLayout.v10.2\10.2.4.0__b88d1754d700e49a\DevExpress.XtraLayout.v10.2.dll'.</code></pre><p>This will turn out to be a goose chase, however. [6] The problem does not lie in the location of the assemblies, but rather in the version. We can see that the designer was attempting to load version 10.2.4.0 of the third-party component library for DevExpress. However, the solution and all projects were referencing the 10.2.5.0 version, which had not been <em>officially</em> installed on that workstation. It was unofficially available because the assemblies were included in the solution-local third-party folder, but the designer files were not.</p>
<p>Instead of simply showing an error message that the desired version of a required assembly could not be loaded, Visual Studio chose instead to first hide the warnings quite well, then to fail to mention the real reason the assembly could not be loaded (i.e. that it conflicted with a newer version already in memory). Instead, the designer left it up to the developer to puzzle out that the error message only mentioned versions that were older than the current one. [7]</p>
<p>From there, a quick check of the installed programs and the GAC confirmed that the required version was not installed, but the solution was eminently non-obvious.</p>
<p>That&rsquo;s about all for Visual Studio Designer troubleshooting tips. Hopefully, they&rsquo;ll be useful enough to prevent at least <em>some</em> hair from being torn out and <em>some</em> keyboards from being thrown through displays.</p>
<p><hr></p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2487_1_body" class="footnote-number">[1]</span> All tests were performed with the SP1 Beta version available as of Mid-February 2010.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2487_2_body" class="footnote-number">[2]</span> One such difference is how hash-codes are generated by the default implementation of <code>GetHashCode()</code>: the .NET implementation is optimized for speed, not portability so the codes generated by the 32-bit and 64-bit runtimes are different.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2487_3_body" class="footnote-number">[3]</span> In the case of <em>SyncFusion</em>, this means the application won&rsquo;t even compile; in the case of <em>DevExpress</em>, the application will both compile and run, but will display a nag screen every once in a while.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2487_4_body" class="footnote-number">[4]</span> If you&rsquo;re lucky, of course. If you&rsquo;re unlucky, Visual Studio will already have crashed and helpfully offered to restart itself.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2487_5_body" class="footnote-number">[5]</span> Then it encountered a null-reference exception, which we can only hope will actually get fixed in some service pack or other.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2487_6_body" class="footnote-number">[6]</span> I tried deleting this folder, but it was locked by Visual Studio. I shut down Visual Studio and could delete the folder. When I restarted and reloaded the project as well as the designer, I found to my surprise that Visual Studio had exactly recreated the folder structure that I had just deleted. It appears that this is a sort of copy of the required assemblies, but the purpose of copying assemblies out of the GAC to a user-local temporary folder is unclear. It stinks of legacy workarounds.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2487_7_body" class="footnote-number">[7]</span> In the case of DevExpress, this didn&rsquo;t take too long because it&rsquo;s a large component package and the version number was well-known to the developers in the project. However, for third-party components that are not so frequently updated or which have a less recognizable version number, this puzzle could have remained insoluble for quite some time.</div>      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[How Do I View Available Characters in OS X?]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=2274</id>
    <link href="https://www.earthli.com/news/view_article.php?id=2274"/>
    <updated>2009-12-21T22:19:38+01:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p>There&rsquo;s a keyboard viewer stashed away in a very unintuitive place. These instructions assume you are using OS X English, but include steps for both Leopard and Snow Leopard (versions 10.5.x and 10.6.x respectively). Click the footnote links to jump to the screenshots below.</p>
<ol>
<li>Select &ldquo;System... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=2274">More</a>]</li></ol>]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">21. Dec 2009 22:19:38 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p>There&rsquo;s a keyboard viewer stashed away in a very unintuitive place. These instructions assume you are using OS X English, but include steps for both Leopard and Snow Leopard (versions 10.5.x and 10.6.x respectively). Click the footnote links to jump to the screenshots below.</p>
<ol>
<li>Select &ldquo;System Preferences…&rdquo; from the Apple in the top-left corner.</li>
<li>In Leopard, select the &ldquo;International&rdquo; icon in the top row (in Snow Leopard, it&rsquo;s called &ldquo;Language &amp; Text&rdquo;)</li>
<li>In Leopard, select the &ldquo;Input Menu&rdquo; page. In the list on that page, you can enable the &ldquo;Keyboard viewer&rdquo;. [1] An icon with the Flag representing your current input format (probably US English or Swiss German) shows up in the menu bar at the top-right of the screen. (In Snow Leopard, the page is called &ldquo;Input Sources&rdquo; and the item in the list is labeled as &ldquo;Keyboard and Character Viewer&rdquo;. [2])</li>
<li>Click the newly enabled icon in the menu bar to show a menu of options. [3] [4]</li>
<li>Select &ldquo;Show Keyboard Viewer&rdquo; to show a virtual keyboard. [5]</li>
<li>Press the &ldquo;alt/option&rdquo;, &ldquo;Command&rdquo; and &ldquo;Control&rdquo; keys both alone and in combination to see what effects they have.</li></ol><p>But wait, there&rsquo;s more! If you need to make an accented character not directly supported by your keyboard, you can use some special key combinations to insert a &ldquo;floating&rdquo; diacritical mark [6]; that mark is automatically applied to the next character you type (within the capabilities of the selected font and encoding, of course).</p>
<ul>
<li><kbd>Alt/Option+u</kbd>: Umlaut (e.g. ä, ë, ï, ö, ü)</li>
<li><kbd>Alt/Option+e</kbd>: Acute (e.g. á, é, í, ó, ú)</li>
<li><kbd>Alt/Option+`</kbd>: Grave (e.g. à, è, ì, ò, ù)</li>
<li><kbd>Alt/Option+i</kbd>: Circumflex (e.g. â, ê, î, ô, û)</li>
<li><kbd>Alt/Option+n</kbd>: Tilde (e.g. ã, õ, ñ)</li></ul><h2>Screenshots</h2><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2274_1_body" class="footnote-number">[1]</span> <span style="width: 336px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/2274/keyboard_viewer_option.png"><img src="https://www.earthli.com/data/news/attachments/entry/2274/keyboard_viewer_option.png" alt=" " class="frame" style="width: 336px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/2274/keyboard_viewer_option.png">Image 1: Input Options (Leopard)</a></span></span></div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2274_2_body" class="footnote-number">[2]</span> <span style="width: 335px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/2274/snow_leopard_input_options.png"><img src="https://www.earthli.com/data/news/attachments/entry/2274/snow_leopard_input_options.png" alt=" " class="frame" style="width: 335px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/2274/snow_leopard_input_options.png">Image 2: Input Options (Snow Leopard)</a></span></span></div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2274_3_body" class="footnote-number">[3]</span> <span style="width: 222px; display: table"><span class="auto-content-inline"><img src="https://www.earthli.com/data/news/attachments/entry/2274/select_keyboard_viewer.png" alt=" " class="frame" style="width: 222px"></span><span class="auto-content-caption">Image 3: Select Keyboard Viewer (Leopard)</span></span></div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2274_4_body" class="footnote-number">[4]</span> <span style="width: 226px; display: table"><span class="auto-content-inline"><img src="https://www.earthli.com/data/news/attachments/entry/2274/snow_leopard_show_keyboard_viewer.png" alt=" " class="frame" style="width: 226px"></span><span class="auto-content-caption">Image 4: Select Keyboard Viewer (Snow Leopard)</span></span></div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2274_5_body" class="footnote-number">[5]</span> <span style="width: 268px; display: table"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/2274/keyboard_viewer.png"><img src="https://www.earthli.com/data/news/attachments/entry/2274/keyboard_viewer.png" alt=" " class="frame" style="width: 268px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/2274/keyboard_viewer.png">Keyboard Viewer</a></span></span></div><p><hr></p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2274_6_body" class="footnote-number">[6]</span> Only Western diacritical marks are supported, as far as I know.</div>      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Backup, Recovery & Optimization Scripts]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=2237</id>
    <link href="https://www.earthli.com/news/view_article.php?id=2237"/>
    <updated>2009-11-05T10:51:26+01:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p><small class="notes">This article was originally published on the <a href="http://encodo.com/en/blogs.php?entry_id=188"><strong>Encodo Blogs</strong></a>. Browse on over to see more!</small></p>
<p><hr></p>
<p>Perforce servers have a checkpointing mechanism in order to back up the server metadata. That checkpoint, along with the depot data and a journal file (for changes made since the checkpoint was taken) are... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=2237">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">5. Nov 2009 10:51:26 (GMT-5)</span>
</p>
<p>
Updated by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">5. Nov 2009 19:47:04 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p><small class="notes">This article was originally published on the <a href="http://encodo.com/en/blogs.php?entry_id=188"><strong>Encodo Blogs</strong></a>. Browse on over to see more!</small></p>
<p><hr></p>
<p>Perforce servers have a checkpointing mechanism in order to back up the server metadata. That checkpoint, along with the depot data and a journal file (for changes made since the checkpoint was taken) are enough to restore a Perforce database.</p>
<p>Here at Encodo, we take a checkpoint every evening right before the depot files are backed up. We retain a few days worth of these checkpoints, just in case. Since our server runs on Debian Etch (Linux), we have a Bash script to do all of this (included below). The comments in the script should be enough to get a gist of what&rsquo;s going on; adjust the values of the variables at the top of the script to correspond to your installation.</p>
<pre class=" "><code>#!/bin/bash

BACKUP_DIR=/home/p4/backup
DEPOT_DIR=/home/p4/srvroot
P4=/opt/p4/p4
HOST=p4:1666
USER=root
PASSWORD=password
DAYS_TO_KEEP=3

# Verify the depot
$P4 -p $HOST -u $USER -P $PASSWORD verify -q //… &gt; /dev/null
$P4 -p $HOST -u $USER -P $PASSWORD verify -u -q //… &gt; /dev/null 2&gt; /dev/null

# Take a checkpoint
$P4 -p $HOST -u $USER -P $PASSWORD admin checkpoint &gt; /dev/null

# Move all journal and checkpoint files to the backup folder
mv $DEPOT_DIR/journal.* $BACKUP_DIR
mv $DEPOT_DIR/checkpoint.* $BACKUP_DIR

# Remove old checkpoint and journal files
find $BACKUP_DIR/journal.* -mtime +$DAYS_TO_KEEP -exec rm -f {} \; &gt; /dev/null 2&gt; /dev/null
find $BACKUP_DIR/checkpoint.* -mtime +$DAYS_TO_KEEP -exec rm -f {} \; &gt; /dev/null 2&gt; /dev/null</code></pre><p>Once you have regular checkpoints for backup, your data is safe. However, after a while, a Perforce server accumulates no small amount of cruft in its metadata, slowing down some common operations. A Perforce server can be optimized by replacing the database metadata with the contents of a checkpoint. When metadata is restored from a checkpoint, that metadata is imported in a pruned, balanced and optimized way, ensuring optimal performance.</p>
<p>In order to do this, you basically take a checkpoint, stop the server, restore the checkpoint and restart the server. Luckily for you, Encodo has a Bash script for that as well. The basic process is described in more detail in <a href="http://blog.perforce.com/blog/?p=187">Perforce database maintenance</a> by <cite>Rusty Jackson</cite> (<cite><a href="http://blog.perforce.com/">p4 blog</a></cite>). The comments in the script should be enough to get a gist of what&rsquo;s going on; adjust the values of the variables at the top of the script to correspond to your installation.</p>
<pre class=" "><code># This script describes a way of optimizing and cleaning the metadata for a Perforce server

# The following steps are copied from the following URL:
# − &lt;http://blog.perforce.com/blog/?p=187&gt;

# − Stop your server
# − Take a checkpoint
# − Move your existing db files to a save directory
# − Recover from the checkpoint
# − Check for errors during restore
# − Restart your server
# − Delete the files from the save directory

# Instead of deleting the old database files immediately after the process, we
# delete them during the next run instead.

BACKUP_DIR=/home/p4/backup
DEPOT_DIR=/home/p4/srvroot
P4D=/opt/p4/p4d
LOG_FILE=/var/log/p4d-error

# − Take a checkpoint
echo "Taking a checkpoint…"
/opt/scripts/p4d/makecheckpoint.sh

# − Stop your server
echo "Stopping the Perforce server…"
/etc/init.d/p4d stop

# − Delete the files from the save directory
echo "Backing up current database…"
rm -R $BACKUP_DIR/db

# − Move your existing db files to a save directory
mkdir $BACKUP_DIR/db
mv $DEPOT_DIR/db.* $BACKUP_DIR/db/

# − Recover from the checkpoint
CHECKPOINT_FILE=`ls -h –sort=time $BACKUP_DIR/checkpoint* | head -1`

echo "Do you wish to restore from checkpoint '$CHECKPOINT_FILE'?"
select yn in "Yes" "No"; do
  case $yn in
    Yes ) echo "Restoring checkpoint…"; su p4 -c "$P4D -r $DEPOT_DIR -L $LOG_FILE -jr $CHECKPOINT_FILE"; break;;
    No ) echo "Optimization aborted; restoring previous database…"; mv $BACKUP_DIR/db/db.* $DEPOT_DIR/; break;;
  esac
done

# − Restart your server
/etc/init.d/p4d start</code></pre>      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Perforce Branching Specification Typo]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=2187</id>
    <link href="https://www.earthli.com/news/view_article.php?id=2187"/>
    <updated>2009-06-25T22:11:08+02:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p><small class="notes">This article was originally published on the <a href="http://encodo.com/en/blogs.php?entry_id=171"><strong>Encodo Blogs</strong></a>. Browse on over to see more!</small></p>
<p><hr></p>
<p>At Encodo, we use the Perforce source control system. Recently, I created a branch specification in order to maintain bug fixes in a released product. See below:</p>
<pre class=" "><code>... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=2187">More</a>]</code></pre>]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">25. Jun 2009 22:11:08 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p><small class="notes">This article was originally published on the <a href="http://encodo.com/en/blogs.php?entry_id=171"><strong>Encodo Blogs</strong></a>. Browse on over to see more!</small></p>
<p><hr></p>
<p>At Encodo, we use the Perforce source control system. Recently, I created a branch specification in order to maintain bug fixes in a released product. See below:</p>
<pre class=" "><code>//depot/branches/customername/versionnumber/projects/encodo/quino... //depot/projects/encodo/quino/...
</code></pre><p>Naturally, the next thing I did was to branch the files under <code>//depot/projects/encodo/quino/</code> to the branch, using the P4V client. It displayed the new changelist, but did not update the statuses of the files therein (there were only a couple of hundred files). Strange. Stopping the command progress and refreshing manually also didn&rsquo;t help and, within a few seconds, complaints rained in from coworkers that Perforce had stopped responding. </p>
<p>Even stranger.</p>
<p>I&rsquo;ve been using Perforce for at least a dozen years and the server has <em>never</em> crashed or hung. That&rsquo;s why you can let your support contract lapse for years without suffering any consequences.</p>
<p>A quick look into the processes list on the server showed several forks of the P4 server, each pulling as much of the CPU as it can. The processes quit after a while, but the commands never seemed to return. Ah, so it wasn&rsquo;t even really hanging or crashed, it was just very, very busy with something. So, I restarted the server just to clear out the busy processes and tried to connect again; still no luck and both the P4V or P4Win clients could not retrieve the information they needed.</p>
<p>Since I had just integrated the files in that branch, I suspected it had something to do with those files, so I needed to revert them. To the rescue came the P4 command-line program, with which I could revert all files in the offending changelist without actually retrieving the status of those files. The changelist reverted successfully...and all the GUI clients were magically back online.</p>
<p>Curiouser and curiouser.</p>
<p>I branched the files again and ran into the exact same problem; at least it was reproducible. Instead of reverting the files, I just submitted them from the command line instead and went to look at the branch in P4V. It could display the files in the depot without any problem but, instead of all of the projects being in the <code>//depot/branches/customername/versionnumber/projects/encodo/quino</code>, as expected, the projects were one level higher, in the <code>encodo</code> folder, but each was prepended by the word &ldquo;quino&rdquo;.</p>
<p>Hmmm...those projects seem to have been branched incorrectly.</p>
<p>Before blaming Perforce for an error that had never, ever happened before, I took a look at the branch specification again and noticed that I&rsquo;d introduced a small typo in the specification:</p>
<pre class=" "><code>//depot/branches/customername/versionnumber/projects/encodo/quino<strong class="highlight">[ ]</strong>... //depot/projects/encodo/quino<strong class="highlight">[/]</strong>...</code></pre><p>The missing forward-slash is highlighted in green above. It&rsquo;s relatively easy to miss, but once you see it, it&rsquo;s obvious why the files and folders branched as they did. What&rsquo;s not so obvious is why the Perforce server had such a tough time handling requests for the statuses of these files. [1] At any rate, should you run into a similar problem, check those branch specifications!</p>
<p>The Perforce clients have only gotten nicer over the years and the latest beta of P4V (June 2009) is the nicest yet, but it would be nice if they finally offered better support for their mapping format. The workspace definitions include a visual editor that is quite good, but a sanity check with &ldquo;are you sure you mean what I think you mean?&rdquo; checks for common errors would be a welcome addition.</p>
<p><hr></p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2187_1_body" class="footnote-number">[1]</span> <p>The Perforce server version we use is slightly older---we let the support contract lapse because it is so stable and does what we need---so newer versions may not have this problem. This is the version we are using:</p>
<pre class=" "><code>P4D/LINUX24X86/2006.1/104454 (2006/08/02)</code></pre></div>      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[How To Report a Software Bug (or any other Problem)]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=2181</id>
    <link href="https://www.earthli.com/news/view_article.php?id=2181"/>
    <updated>2009-06-16T22:35:05+02:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p>Reporting a bug in software is no different than reporting any other problem you want addressed: the more specific you are, the better and quicker service you&rsquo;re likely to get. </p>
<ol>
<li>Always assume that the person responsible for the problem you want fixed is just as interested as you are in fixing it.... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=2181">More</a>]</li></ol>]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">16. Jun 2009 22:35:05 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p>Reporting a bug in software is no different than reporting any other problem you want addressed: the more specific you are, the better and quicker service you&rsquo;re likely to get. </p>
<ol>
<li>Always assume that the person responsible for the problem you want fixed is just as interested as you are in fixing it. If you&rsquo;re working with good people, that&rsquo;s usually the case.</li>
<li>Always assume that good people have 1000 things to do, but will still prioritize your issue higher <em>if they think they can take care of it quickly</em>.</li>
<li>Scientifically-minded problem-solvers determine whether a problem can be solved by coming up with hypotheses and testing them.</li>
<li>Reproducibility is key: very few problems can be solved by just thinking about how the problem could have arisen and implementing a solution. Even given such a solution, it is highly untestable (how can you verify that you&rsquo;ve fixed a problem that you can&rsquo;t even reproduce?). Instructions for quickly—or, at the very least, reliably—reproducing the problem are paramount.</li>
<li>Therefore, if your report includes the information a problem-solver needs in order to reproduce the problem, form a hypothesis and test it quickly, it stands a much better chance of getting addressed quickly.</li>
<li>Even if you do all of this, it does not necessarily mean that your problem will be <em>solved</em> quickly, but it means that you&rsquo;ll find out much more quickly whether or not you&rsquo;ve got a tough issue on your hands. You may have to wait for a solution, but at least you know you&rsquo;re not waiting two weeks for someone to even <em>look</em> at your problem.</li>
<li>Lying about the severity of the problem is not a good way to increase the priority of your issue, especially if you&rsquo;re not providing enough information. For example, reporting that <strong>&ldquo;NOTHING&rsquo;S WORKING!!!&rdquo;</strong> when you have, in fact, discovered a typo or a broken link is unlikely to inspire a reaction more than once or twice. Bad reputations are hard to un-earn.</li></ol><p>You probably wouldn&rsquo;t be surprised at all to find how long it takes to train people to make good bug reports. We have one client to whom we send punishing support invoices every month because only one of their employees knows how to provide information from which we can even attempt to reproduce a problem. It&rsquo;s a shame because many problems that look intractable in the absence of a good bug report are solved quite easily and quickly once that information is finally made available (usually by twisting some arms).</p>
      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[OS X Leopard: Restoring from Backup (Ad hoc)]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=2174</id>
    <link href="https://www.earthli.com/news/view_article.php?id=2174"/>
    <updated>2009-06-07T14:47:22+02:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p>Say you&rsquo;re excited about having finally upgraded from OS X Tiger to Leopard more than two years after everyone else has already made the switch. Let&rsquo;s say you&rsquo;re not so excited that you completely lose your head and do a clean install without making a backup, but excited enough to forget that... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=2174">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">7. Jun 2009 14:47:22 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p>Say you&rsquo;re excited about having finally upgraded from OS X Tiger to Leopard more than two years after everyone else has already made the switch. Let&rsquo;s say you&rsquo;re not so excited that you completely lose your head and do a clean install without making a backup, but excited enough to forget that several Apple applications have rather convenient backup features baked right into them.</p>
<p>OS X offers a <em>Migration Assistant</em> with which you can migrate settings from another OS X installation or a <em>Time Machine</em> backup. However, it doesn&rsquo;t see a <em>SilverKeeper</em> backup (a one-to-one copy of all files) as a valid OS X installation, so you can&rsquo;t restore settings from that kind of a backup with this assistant.</p>
<p>It&rsquo;s not the end of the world, though. Unlike Windows applications, which use installers to place entries in the registry and put files into the appropriate places, OS X applications are generally a drag &amp; drop installation. So that&rsquo;s the application itself, but what if you wanted to restore the preferences and user data that you so painstakingly configured and created in your old installation? It turns out that that&rsquo;s not so hard either, once you know where things are.</p>
<p>OS X applications only create files within your user folder [1]—and only your user folder—and then in at most three folders:</p>
<ol>
<li><strong>Preferences</strong>: Application configuration data</li>
<li><strong>Application Support</strong>: Application data which, if lost, cannot be recovered</li>
<li><strong>Caches</strong>: Application data which makes the application faster, but can always be reconstructed by combining data from <em>Application Data</em>, <em>Preferences</em> and other non-volatile sources.</li></ol><p>Some Apple applications don&rsquo;t stick exactly to this structure (e.g. Stickies, Safari, Mail, etc.), but third party applications are generally very good about this. One system-wide file you might want to copy is the <code>~/Keychain</code> folder, which kept track of all of your passwords (dozens of which you&rsquo;ve probably completely forgotten by now). For all other application-specific data, see the list below for tips.</p>
<dl><dt class="field">Mail</dt>
<dd>Mail isn&rsquo;t so tricky to restore. From the <em>Preferences</em> folder, copy any files whose name begins with <code>com.apple.mail</code> [2]. Copy the <code>~/Mail</code> folder to your new user folder and you&rsquo;re done. The <code>~/Mail Downloads</code> folder seems to be some sort of cache and isn&rsquo;t 100% necessary, but shouldn&rsquo;t hurt either. When you start <em>Mail</em> in OS X Leopard, it will notify you that it is upgrading your mail store and voila! You&rsquo;ve got mail.</dd>
<dt class="field">iTunes</dt>
<dd>The iTunes library is stored entirely under <code>~/Music/iTunes</code>. If you use the default settings, letting iTunes keep track of the music data, it suffices to copy this folder; if you have music stored elsewhere, it&rsquo;s up to you to make sure the OS X Leopard iTunes knows where those files are.</dd>
<dt class="field">iPhoto</dt>
<dd>As with iTunes, iPhoto&rsquo;s data is located outside of the <code>~/Library</code>, instead using the <code>~/Pictures/iPhoto</code> folder. Just copy this over and you&rsquo;ve got your pictures back.</dd>
<dt class="field">Safari</dt>
<dd>If you use Safari, your bookmarks, saved form values and other preferences are in <code>~/Safari</code> and your cookies are in <code>~/Cookies</code>, should you wish to rescue them.</dd>
<dt class="field">Tunnelblick</dt>
<dd>Tunnelblick is an OpenVPN GUI for OS X; it stores its configuration data in <code>~/openvpn</code> instead of the <em>Preferences</em> folder. (This is most likely a requirement of the Unix-based OpenVPN subsystem.)</dd>
<dt class="field">Dictionaries</dt>
<dd>If you added words to one or more dictionaries, those files are stored in <code>~/Spelling</code></dd>
<dt class="field">Stickies</dt>
<dd>If you use the sticky notes application from Apple, you can just copy the <code>~/StickiesDatabase</code> file over and you&rsquo;ll have your notes back.</dd>
<dt class="field">Address Book</dt>
<dd>The best solution here is to remember to back up this application&rsquo;s data using the internal backup available from the <em>File</em> menu in the application itself. However, surprisingly, it only uses a folder in <em>Application Support</em>. Go Apple! Way to follow your own guidelines. Just copy this folder over and you&rsquo;ve got your address book back.</dd>
<dt class="field">iCal</dt>
<dd><div class=" "><p>As with the address book, the best solution is to use the internal backup available from the <em>File</em> menu in the application itself. Whereas under Tiger, iCal actually stored its data in the <code>~/Application Support</code> folder, in Leopard, its data has moved to <code>~/Calendars</code>. Simply copying the folders over isn&rsquo;t going to work here, unfortunately; it&rsquo;s a bit more complicated than that. Here&rsquo;s a rough guide:</p>
<ol>
<li><div>In the backup, browse to the <code>~/Application Support/iCal/Sources</code> folder; there, you will see one folder for each of your calendars, though with very cryptic-looking names.<div class=" "><p>In order to tell which calendar is which, open a cryptically-named folder and quick-view the <code>Info.plist</code> file (press <kbd>Space</kbd> when the file is selected in the Finder); you should something like the following:</p>
<pre class=" "><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;
&lt;plist version="1.0"&gt;
&lt;dict&gt;
	&lt;key&gt;Key&lt;/key&gt;
	&lt;string&gt;3BFD9C8E-88A4-4EEF-A8E2-0AC4E153E53F&lt;/string&gt;
	&lt;key&gt;Title&lt;/key&gt;
	&lt;string&gt;<strong class="highlight">Work</strong>&lt;/string&gt;
	&lt;key&gt;Type&lt;/key&gt;
	&lt;string&gt;com.apple.ical.sources.naivereadwrite&lt;/string&gt;
&lt;/dict&gt;
&lt;/plist&gt;</code></pre><p>The contents of the <code>string</code> element (highlighted above) immediately after the <code>key</code> element with the contents &ldquo;Title&rdquo; is the name of the calendar. If you were subscribed to calendars, then you don&rsquo;t need to import those; you can just re-add the subscription URL to iCal directly.</p>
</div></div></li>
<li>For each calendar you wish to import, from <em>iCal</em> select <em>File</em>, then <em>Import…</em> from the menu.</li>
<li>Select the <em>Import an iCal file</em> option.</li>
<li>Select the file ending in <code>.ics</code> from the folder containing the calendar you wish to import.</li>
<li>Choose a calendar to which you wish to import the data. You can either import the data into an existing calendar (as you will likely do with the &ldquo;Home&rdquo; and &ldquo;Work&rdquo; calendars) or just create a new one.</li>
<li>Press &ldquo;Ok&rdquo; to import the data and restore your calendar.</li></ol></div></dd>
<dt class="field">Other Third-party Applications</dt>
<dd>As mentioned above, it&rsquo;s usually sufficient (in my experience, anyway) to copy data from <em>Preferences</em> and <em>Application Support</em> for the applications you want to transfer. This worked for Adium, Opera, TextMate, Cyberduck, Firefox, TriTag, CSSEdit, Delicious Library and Fission, but your mileage may vary.</dd>
</dl><p><hr></p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2174_1_body" class="footnote-number">[1]</span> Referred to throughout the article with the path <code>~/</code>.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2174_2_body" class="footnote-number">[2]</span> Most applications have either a single preferences file or create a whole sub-folder within the <code>~/Preferences</code> folder. They all include their application name somewhere in either the folder or file name.</div>      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[OS X Leopard: Uninstalling Dev and Unix Tools]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=2173</id>
    <link href="https://www.earthli.com/news/view_article.php?id=2173"/>
    <updated>2009-06-06T23:11:51+02:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p>Installing OS X Leopard on my old 1.4GHz PowerPC 1GB Mac Mini went surprisingly well. I used Lacie SilverKeeper to back up my Tiger hard drive before wiping it out and doing a clean installation. I avoided installing all of the extra languages and printer drivers and managed to save several... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=2173">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">6. Jun 2009 23:11:51 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p>Installing OS X Leopard on my old 1.4GHz PowerPC 1GB Mac Mini went surprisingly well. I used Lacie SilverKeeper to back up my Tiger hard drive before wiping it out and doing a clean installation. I avoided installing all of the extra languages and printer drivers and managed to save several gigabytes of hard drive space for other stuff.</p>
<p>The only thing I had trouble installing was <code>rdiff-backup</code>, which is a UNIX utility for performing backups. OS X Leopard sports the vaunted Time Machine for its own backups, but I run a Linux Debian Etch server, which I back up across the wire using <code>rdiff-backup</code>. I followed the instructions for installing on OS X—which were much the same as what I&rsquo;d once done for OS X Tiger—but lost patience. In order to install this UNIX utility, I need to build it from source. In order to have a working C-compiler, I need <code>gcc</code>. The only known way to install a reliable version of <em>that</em> is to install the developer tools from Apple, which means installing 2GB worth of <em>XCode</em>. It also means installing an extra 600MB of &ldquo;UNIX-compatible&rdquo; command-line utilities on top of that, which are probably what the build system in MacPorts or Fink is going to need. Oh yeah, MacPorts and Fink are Linux-style package managers for OS X which also download and install an uncomfortably large number of files.</p>
<p>Once you&rsquo;ve bit the bullet and installed MacPorts and XCode, you can try installing the packages for <code>rdiff-backup</code>, if you have the patience. Compiling on this poor old machine is like watching paint dry … and MacPorts compiles <em>everything</em>. Though Leopard sports version 2.5 of Python, MacPorts was halfway through compiling its own 2.4 version (after setting up other things for what must have been more than an hour) before I throttled it in its crib. Enough is enough; I&rsquo;m using a Mac here, for Christ&rsquo;s sake.</p>
<p>If you, like me, would like to completely undo the mistakes you&rsquo;ve made (i.e. you don&rsquo;t plan on using XCode yet and don&rsquo;t plan on using any other Unix utilities), here are some simple commands you can use to eradicate all traces of MacPorts and XCode. [1]</p>
<p>To remove all installed ports applications (including half-compiled proggies), open a Terminal window and execute:</p>
<pre class=" "><code>sudo port -f uninstall installed</code></pre><p>To remove all traces of MacPorts itself, open a Terminal window and execute:</p>
<pre class=" "><code>sudo rm -rf /opt/local \
/Applications/MacPorts \
/Applications/DarwinPorts \
/Library/Tcl/macports1.0 \
/Library/Tcl/darwinports1.0 \
/Library/LaunchDaemons/org.macports.* \
/Library/StartupItems/DarwinPortsStartup \
/Library/Receipts/MacPorts*.pkg \
/Library/Receipts/DarwinPorts*.pkg \
~/.macports</code></pre><p>To remove XCode, open a Terminal window and execute:</p>
<pre class=" "><code>sudo /Developer/Library/uninstall-devtools –mode=all</code></pre><p>There. Now you&rsquo;re back to a relatively clean, standard OS X installation without a lot of Unix-y clutter.</p>
<p><hr></p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2173_1_body" class="footnote-number">[1]</span> Tips for removal found at the <a href="http://trac.macports.org/wiki/FAQ#WhyisoptlocalthedefaultinstalllocationforMacPorts">MacPorts FAQ</a> and <a href="http://macdevelopertips.com/xcode/how-to-uninstall-xcode.html">How to Uninstall Xcode</a>.</div>      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[How to Expand Your Music Library]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=2178</id>
    <link href="https://www.earthli.com/news/view_article.php?id=2178"/>
    <updated>2009-06-06T13:18:48+02:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p>There are many online services available these days through which a user can access a vast music library. One of the most popular is the <em>iTunes Music Store</em>, which offers a relatively large library of music for sale. It&rsquo;s not even DRM-encoded anymore and has thus become more attractive. Amazon also... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=2178">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">6. Jun 2009 13:18:48 (GMT-5)</span>
</p>
<p>
Updated by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">6. Jun 2009 14:07:35 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p>There are many online services available these days through which a user can access a vast music library. One of the most popular is the <em>iTunes Music Store</em>, which offers a relatively large library of music for sale. It&rsquo;s not even DRM-encoded anymore and has thus become more attractive. Amazon also has a pretty extensive library and has offered its music DRM-free from the beginning.</p>
<p>Those are sources where you pay for a license to an MP3 file. You can put it on any many gadgets as you like.</p>
<p>What if you&rsquo;re at a computer and just want to listen to some music, preferably music you&rsquo;ve chosen yourself? There are a lot of services out there, with LastFM and Pandora holding quite a large market share between them. A lot of people just type song names into YouTube and watch the video. Recently, however, music search services have sprouted up like mushrooms, sporting Flash-based interfaces and varying levels of usability and library size. These services basically scour the Internet for MP3 files using robots similar to Google&rsquo;s.</p>
<p>One of the best, <em>Seeqpod</em>, was recently torpedoed by the RIAA and their site has been shut down. They even had a random stream of music from which you could pick song ideas which was a nice way to lose a few hours. <a href="http://grooveshark.com/">Groove Shark</a> is a wonderful replacement, though, with a huge library and a nice playlist function.</p>
<p>I recently ripped a bunch of music from old cassettes (if you don&rsquo;t know what those are, <a href="http://lmgtfy.com/?q=cassettes">let me Google that for you</a>). Some of the quality is lacking, what with some of the cassettes being almost 20 years old and the integrity of the magnetic recordings having suffered over the years. So, what to do? Searching on the for-pay music services is mostly useless, as they don&rsquo;t even offer the music I&rsquo;m looking for—ignore for now whether this is for reasons of taste or rarity or both—and, whereas LastFM often has references to individual songs, they rarely ever have the actual <em>song</em>, instead inviting me to be the &ldquo;first to upload it!&rdquo; GrooveShark, however (and Seeqpod before it) does a remarkably good job of locating the missing/damaged tracks in a decent quality.</p>
<p>Well, that&rsquo;s kind of cool. You can listen to music anytime you like as long as it doesn&rsquo;t disappear from the &lsquo;net at some point. You can&rsquo;t really <em>have</em> this music to load onto your iPod or other music device, can you?</p>
<p>Well, sure you can; you just need a little technical know-how and some patience.</p>
<p>The Flash applet downloads the MP3 file as it plays it, saving it in your browser cache. That file lays around with a weird filename in the browser cache until your browser decides it no longer needs to keep it around and throws it out. That doesn&rsquo;t usually happen for a while, so the MP3 you want is technically on your hard drive for long enough for you to grab it and copy it somewhere for safe-keeping (i.e. &ldquo;keeping&rdquo;).</p>
<p>The following instructions are for my setup: OS X Leopard using the latest Opera browser beta. The principles are likely to apply to other operating systems and browsers, but the location and organization of the cache will differ drastically. [1]</p>
<p>Opera stores its cache in the following folder: <code>~/Library/Caches/Opera/cache</code>. All of the files in that folder begin with &ldquo;opr&rdquo;; you can find the MP3 files by sorting by file-size from largest to smallest and scanning the modification date to see which ones were downloaded most recently. If you sort by modification date, the number of other, smaller files in the cache will spread the larger files over too large an area, making it harder to find them.</p>
<p>Well, that&rsquo;s how I started out anyway. I&rsquo;d find the a file I deemed an MP3 candidate and copy it to the side. Of course, without a file extension or useful file-name, it was hard to tell exactly what I had. One way to clear this up is to just drag and drop the files onto iTunes, letting it copy the file to its library and determine whether (A) the file is an MP3 and (B) which song it is. I don&rsquo;t really like to copy stuff willy-nilly into my music library, though, so I use <em>TriTag</em> to set the file-name from the MP3 ID3 tag information embedded in the song. [2]</p>
<p>So that&rsquo;s where I started, but I wanted to automate the process at least a little more. I recently installed OS X Leopard, which has a feature called <em>Smart Folders</em>. These are folders whose contents are determined by a search string. You can make a smart folder by simply searching in any Finder window, then clicking the <em>Save</em> button in the top-right corner. To make the search we need, do the following:</p>
<ol>
<li>Type <kbd>Cmd+N</kbd> to open a new Finder window.</li>
<li>Type <kbd>Cmd+F</kbd> to start a search.</li>
<li>Type &ldquo;opr&rdquo; and select to search &ldquo;yourname&rdquo; instead of &ldquo;This Mac&rdquo; and &ldquo;File Name&rdquo; instead of &ldquo;Contents&rdquo;.</li></ol><p>At this point, you won&rsquo;t see the files I&rsquo;m talking about because the Spotlight feature in OS X Leopard no longer automatically searches your <code>~/Library</code> (as OS X Tiger did). Despite the storm of complaints about this online, this is a <strong>good thing</strong>. The search feature is much faster—especially on older hardware, like mine—and searching the <code>~/Library</code> is still possible. Here&rsquo;s how:</p>
<ol>
<li>From the search window you started above, press the little &ldquo;+&rdquo; button next to the &ldquo;Save&rdquo; button on the right side of the window.</li>
<li>From the first drop-down, select &ldquo;Other&rdquo;, then find the &ldquo;System Files&rdquo; entry in the list in the resulting pop-up window and press the &ldquo;Ok&rdquo; button. (hint: there&rsquo;s a search box in this window as well.)</li>
<li>From the drop-down next to the one that now says &ldquo;System Files&rdquo;, select &ldquo;include&rdquo;; now you should see many more files.</li>
<li>Now, we can restrict further to show only the files that are big enough to be potential MP3 files. press the little &ldquo;+&rdquo; button again to add another search argument.</li>
<li>If the &ldquo;Size&rdquo; option is not available from the first drop-down [3], select &ldquo;Other&rdquo; again and select it from the pop-up window (as above for &ldquo;System Files&rdquo;).</li>
<li>Set the &ldquo;Size&rdquo; option to &ldquo;is greater than&rdquo; &ldquo;2&rdquo; &ldquo;MB&rdquo;; that restricts the list significantly. See the image below for the final result</li>
<li>Select &ldquo;Save&rdquo; from the top-right corner and give your search a name—I cheekily named mine &ldquo;Downloaded Music&rdquo;—and you can have the search show up in your sidebar as well.</li></ol><p><span style="width: 604px" class=" align-center"><span class="auto-content-inline"><img src="https://www.earthli.com/data/news/attachments/entry/2178/searching_for_mp3s_in_opera_s_cache.png" alt=" " class="frame" style="width: 604px"></span><span class="auto-content-caption">Searching your Opera Cache for MP3s</span></span></p>
<p>Now, you can open a Finder window on this smart folder, sorting by date from newest to oldest.  As you listen to music in Groove Shark or any other Flash-based music service, you&rsquo;ll see the potential MP3 files magically appear at the top of the window, from which you can then copy them to a safe place. [4] With a fast connection, the song will be downloaded within the first several seconds of the song; if you&rsquo;re collecting, you can already copy the file, then go to the next one.</p>
<p><hr></p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2178_1_body" class="footnote-number">[1]</span> Without going into exacting detail, Windows applications generally store user data under <code>C:\Documents and Settings\&lt;username&gt;\Application Data\&lt;vendorname&gt;\&lt;applicationname&gt;</code> or <code>C:\Documents and Settings\&lt;username&gt;\Local Settings\Application Data\&lt;vendorname&gt;\&lt;applicationname&gt;</code>. Whereas the Opera cache is a single folder, the Safari cache is a vast tree of numbered folders within which it&rsquo;s difficult to locate anything reliably, though the search-based approach is likely to work there as well. Firefox&rsquo;s cache is also a single folder, IIRC.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2178_2_body" class="footnote-number">[2]</span> <em>TriTag</em> doesn&rsquo;t recognize files without the MP3 extension, so you have to add the extension to each file. If you&rsquo;ve got a lot of them, the Finder asking you whether you&rsquo;re sure you want to add the extension gets a little old after the second time or so. To get around this hassle, use the Terminal and execute the following script from the command-line: <code>for i in opr*; do mv $i $i.mp3; done</code>. Now, you can drag them into TriTag and have it rename them. You can probably automate this further, but I drew the line there.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2178_3_body" class="footnote-number">[3]</span> For any of these options, you can set the &ldquo;In Menu&rdquo; check-box from the popup-window to make it available on the initial drop-down menu.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2178_4_body" class="footnote-number">[4]</span> Again, if you&rsquo;re interested in an assembly line feature where you just basically keep a copy of everything you&rsquo;ve heard through your browser, you can automate further with Apple Scripts and/or the Automator application. Indeed, you could make a script that copied files from the cache to a separate folder, renaming them using the ID3-tag information as it did so. But that I leave as an exercise for the reader.</div>      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Improving Online Readability]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=2125</id>
    <link href="https://www.earthli.com/news/view_article.php?id=2125"/>
    <updated>2009-03-07T18:15:22+01:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p>If you spend any amount of time reading online, you know how difficult it sometimes is to get the text into a format that makes for comfortable reading. All the more so for those doing their reading on portable devices. Web sites have several tools at their disposal to ease both online reading and... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=2125">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">7. Mar 2009 18:15:22 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p>If you spend any amount of time reading online, you know how difficult it sometimes is to get the text into a format that makes for comfortable reading. All the more so for those doing their reading on portable devices. Web sites have several tools at their disposal to ease both online reading and printing:</p>
<ul>
<li>Offer a printable stylesheet that is used when the browser prints the document, so that advertising, comments, and other garbage are left out, leaving only the text of the article.</li>
<li>Offer a &ldquo;print&rdquo; view, which takes the user to another page from which the aforementioned garbage has been removed.</li>
<li>Offer a &ldquo;single page&rdquo; view, which shows the entire content of the article on a single, scrolling page rather than broken up into mini-pages. [1]</li></ul><p>Though many sites offer one or more of these fine, paper- and eye-saving tools, many do not. To the rescue ride the following two tools:</p>
<ol>
<li><a href="http://printwhatyoulike.com">PrintWhatYouLike</a> lets you enter a URL and then slice and dice that page to your heart&rsquo;s content. Tools include &ldquo;isolate&rdquo;, which removes everything but the selected content and &ldquo;fit to width&rdquo;, which removes width-restrictions from the selected content.</li>
<li><a href="http://lab.arc90.com/experiments/readability/">Readability</a> is a Javascript bookmarklet that you can easily add to any browser. From the site, you can configure some basic settings like style, font-size and margin-sizes before you create the bookmarklet. Armed with this button in your browser, you can browse to the page you&rsquo;d like to print, then press it to transform that page into a marvel of readability (pardon the pun).</li></ol><p>As an example, here&rsquo;s a simply atrociously formatted page from the New Scientist [2]; as you can see, the left margin is non-existent and half the page is consumed by advertising and headers that are distracting for online reading and waste paper when printed.</p>
<p><span style="width: 452px" class=" align-center"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/2125/new_scientist_article_-_before.png"><img src="https://www.earthli.com/data/news/attachments/entry/2125/new_scientist_article_-_before.png" alt=" " class="frame" style="width: 452px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/2125/new_scientist_article_-_before.png">New Scientist Article – Before</a></span></span></p>
<p>The screenshot below is of the page above in the PrintWhatYouLike interface after a few clicks have isolated the content, widened it and removed some unwanted text. With the &ldquo;remove&rdquo; button, you can also easily zap advertising that is embedded in the text of the article itself. It&rsquo;s actually kind of fun to re-shape the page to your liking.</p>
<p><span style="width: 451px" class=" align-center"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/2125/new_scientist_article_printwhatyoulike.png"><img src="https://www.earthli.com/data/news/attachments/entry/2125/new_scientist_article_printwhatyoulike.png" alt=" " class="frame" style="width: 451px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/2125/new_scientist_article_printwhatyoulike.png">New Scientist Article transformed by PrintWhatYouLike</a></span></span></p>
<p>The screenshot below is of the page above after having pressed the magic Readability bookmarklet. Without any user input other than your having set your initial preferences for style, font-size and margins when creating the bookmark, Readability automatically creates this wonderfully legible version of the page that is eminently easy on the eyes.</p>
<p><span style="width: 451px" class=" align-center"><span class="auto-content-inline"><a href="https://www.earthli.com/data/news/attachments/entry/2125/new_scientist_article_-_after.png"><img src="https://www.earthli.com/data/news/attachments/entry/2125/new_scientist_article_-_after.png" alt=" " class="frame" style="width: 451px"></a></span><span class="auto-content-caption"><a href="https://www.earthli.com/data/news/attachments/entry/2125/new_scientist_article_-_after.png">New Scientist Article transformed by Readability</a></span></span></p>
<p>I&rsquo;ve found that I use both tools; I generally try Readability for online reading, but use PrintWhatYouLike for a smaller font when printing. Readability doesn&rsquo;t always work, though it often does a good-enough job; you may have noticed that the author&rsquo;s name was dropped in the example above, though that hardly seems important for reading. A simple refresh of the page restores it to the original version. Readability works with a single button-click, which is great but not fun; PrintWhatYouLike requires much more interaction, but is kind of fun. Both tools belong in your arsenal against unfriendly formatting online.</p>
<p><hr></p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2125_1_body" class="footnote-number">[1]</span> Sites ostensibly break up single pages into multiple pages in order to increase ad-impressions.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_2125_2_body" class="footnote-number">[2]</span> The article itself, as with so many others on that site, was well worth reading. Their formatting has gotten better, but it&rsquo;s historically awful: they used to have a 7pt default font.</div>      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[How to send mail using earthli]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=1889</id>
    <link href="https://www.earthli.com/news/view_article.php?id=1889"/>
    <updated>2008-08-02T17:26:44+02:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p>If you have an email account, you can most likely check mail from anywhere in the world—either using webmail or by using a mail program using either POP [1] or IMAP [2]. In order to check mail, you must always identify yourself and authenticate with a password. Sending mail, on the other hand, used to be... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=1889">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">2. Aug 2008 17:26:44 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p>If you have an email account, you can most likely check mail from anywhere in the world—either using webmail or by using a mail program using either POP [1] or IMAP [2]. In order to check mail, you must always identify yourself and authenticate with a password. Sending mail, on the other hand, used to be easier; some hosts used to relay mail from any address to any address. In the age of spam, this is no longer possible and many large ISPs have switched their SMTP [3] settings to require authentication in order to use their servers. [4]</p>
<p>Setting up authenticated SMTP is in no way an out-of-the-box experience when you use Linux Debian Etch for your server, so earthli.com had to wait quite some time for that feature. It&rsquo;s finally here and working as expected and you&rsquo;ll find instructions below for setting up the Apple Mail software to send mail via earthli.com.</p>
<ol>
<li>Choose <em>Preferences…</em> from the <em>Mail</em> menu. <span style="width: 172px" class=" align-center"><span class="auto-content-inline"><img src="https://www.earthli.com/data/news/attachments/entry/1889/mail_menu.png" alt=" " class="frame" style="width: 172px"></span><span class="auto-content-caption">Apple Mail Menu</span></span></li>
<li>From the <em>Preferences</em> window, choose the <em>Accounts</em> tab at the top; select the <em>earthli</em> account on the left, then select the dropdown for <em>Outgoing Mail Server (SMTP)</em> and either choose to <em>Add Server…</em> or choose the existing entry for &ldquo;earthli.com&rdquo; and press <em>Server Settings…</em> to open the <em>SMTP Settings</em> window.<span style="width: 553px" class=" align-center"><span class="auto-content-inline"><img src="https://www.earthli.com/data/news/attachments/entry/1889/earthli.com_mail_preferences.png" alt=" " class="frame" style="width: 553px"></span><span class="auto-content-caption">earthli.com Mail Preferences</span></span></li>
<li>From the <em>SMTP Settings</em> window, fill out the details as shown below, leaving the <em>Server port</em> at &ldquo;25&rdquo; and making sure to <em>Use Secure Sockets Layer (SSL)</em> and using &ldquo;Password&rdquo; for <em>Authentication</em>; you will, of course, fill in your own name and password. <span style="width: 376px" class=" align-center"><span class="auto-content-inline"><img src="https://www.earthli.com/data/news/attachments/entry/1889/earthli.com_smtp_preferences.png" alt=" " class="frame" style="width: 376px"></span><span class="auto-content-caption">earthli.com SMTP Preferences</span></span></li>
<li>Select &ldquo;Ok&rdquo; to save and close the SMTP settings, then select the <em>General</em> tab to force the settings to be saved.</li></ol><p>You can now send email from anywhere using your name and password. [5] If you have trouble, use the <em>Connection Doctor</em> (under the <em>Window</em> menu in <em>Apple Mail</em>) to test whether or not the connection appears to be working or not.</p>
<p><hr></p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_1889_1_body" class="footnote-number">[1]</span> When you use POP—<em>Post Office Protocol</em>—to download mail, it is removed from the server and saved only on the client to which you downloaded it. You should avoid this protocol if possible—preferring IMAP instead—or, at the very most, use it from your &ldquo;main&rdquo; computer only, to avoid losing mail.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_1889_2_body" class="footnote-number">[2]</span> When you use IMAP—<em>Internet Message Access Protocol</em>—to access mail, it remains on the server, but is marked as &ldquo;read&rdquo;. A mail program downloads copies of messages to speed local access, but does not <em>automatically</em> remove anything on the server. The user, of course, is free to move messages around and delete them on the server.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_1889_3_body" class="footnote-number">[3]</span> SMTP—<em>Simple Mail Transfer Protocol</em>—is the language servers speak with one another in order to deliver mail.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_1889_4_body" class="footnote-number">[4]</span> This just happened to me recently; see <a href="https://www.earthli.com/news/view_article.php?id=1600">CableCom Now Requires Authentication for SMTP Relay</a> by <cite>Marco</cite> (<cite><a href="http://www.earthli.com/">earthli News</a></cite>) for more information.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_1889_5_body" class="footnote-number">[5]</span> It almost goes without saying that you should only set up your own devices to use these settings as any mail delivered this way goes out in your account&rsquo;s name.</div>      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Optimizing XWiki]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=1820</id>
    <link href="https://www.earthli.com/news/view_article.php?id=1820"/>
    <updated>2008-04-22T18:42:13+02:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p><small class="notes">This article was originally published on the <a href="http://encodo.com/view_entry.php?id=124"><strong>Encodo Blogs</strong></a>. Browse on over to see more!</small></p>
<p><hr></p>
<p>Once you&rsquo;ve got an XWiki up and running (whether you <a href="http://encodo.com/en/view_article.php?id=73">imported a Mediawiki</a> or not), you&rsquo;ll find you want to tweak the standard rollout a bit.</p>
<h2>Speeding up XWiki</h2><p>After working a while with XWiki, you may notice... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=1820">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">22. Apr 2008 18:42:13 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p><small class="notes">This article was originally published on the <a href="http://encodo.com/view_entry.php?id=124"><strong>Encodo Blogs</strong></a>. Browse on over to see more!</small></p>
<p><hr></p>
<p>Once you&rsquo;ve got an XWiki up and running (whether you <a href="http://encodo.com/en/view_article.php?id=73">imported a Mediawiki</a> or not), you&rsquo;ll find you want to tweak the standard rollout a bit.</p>
<h2>Speeding up XWiki</h2><p>After working a while with XWiki, you may notice it getting slower. Our XWiki was kind of slow from the get-go and we pretty quickly figured out why: the slowdown was caused almost entirely by the pretty, DHTML list of all pages in the panel on the right side. It apparently takes quite some time to build this list (and ours included hundreds of pages from the import); it will have to go.</p>
<p>We edited the side-panel to replace the culprit <code>Panels.SpaceDocs</code> with <code>Panels.Spaces</code>. This still gives us the ability to navigate directly to a spaces WebHome, but doesn&rsquo;t waste time building up enormous lists of pages that we almost never used. [1] Navigate to your Main-Page and enjoy your lightning fast XWiki.</p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_1820_1_body" class="footnote-number">[1]</span> Another solution would be to build a custom panel that uses AJAX to retrieve the list of pages (paginated, of course) for the space you selected. It could even have a drop-down to search/limit the pages that are shown. Unfortunately, this panel doesn&rsquo;t exist yet and we didn&rsquo;t have time to build it.</div><h2>Changing the default editor</h2><p>Since the WYSIWYG editor trashed some of our converted pages (we never investigated why exactly) we switched the default editor to the XWiki editor.</p>
<p>This can be done for all users by setting the default editor on the <code>Administration/Preferences/Editing</code> page. Each user can override this behaviour on their own user page.</p>
<h2>Changes to the default skin</h2><p>Although the newest XWiki seems have a skin other than Albatross as a default, we updated the current skin to fix up the following things that annoyed us:</p>
<ul>
<li>The default heading sizes are simply enormous </li>
<li>The comments/attachments boxes are way too bulky, showing up as huge blue splotches at the bottom of every page.</li>
<li>The default formatting for <code>&lt;pre&gt;</code> and <code>&lt;code&gt;</code> blocks takes up way too much space</li>
<li>Tables have enormous margins and are bright blue</li>
<li>Table-of-contents entries (displayed with the <code>#toc</code> macro) show up with bullets—even when they&rsquo;re numbered.</li>
<li>The print-preview page has a thick, black border around it and it always prints the XWiki logo rather than the logo from the skin</li>
<li>The &ldquo;page not found&rdquo; marker is over-the-top and distracting</li>
<li>Definition lists have only default HTML formatting, which gives the definition block way too much left margin</li></ul><p>Our fixes for these things are shown below. <a href="http://www.answers.com/ymmv?cat=technology&amp;nafid=3">YMMV</a>.</p>
<h4>Setting Defaults</h4><p>The first step is to <a href="http://platform.xwiki.org/xwiki/bin/view/AdminGuide/Skins">create a custom skin</a> (as described under &ldquo;changing the logo for the Albatross skin&rdquo;). Once you&rsquo;ve done that, from the same form that you set the <code>logo</code> property, you can set your own <code>style</code> (it should be the second property in the form).</p>
<p>You can type any valid CSS into this box and it will be included in all of your XWiki pages. In fact, if this property is non-empty, <em>it is the only skin-CSS included by XWiki</em>. It sounds ominous; what does it mean? It means that you must copy the entire Albatross skin-CSS to your custom skin in order to at least start off with the base look-and-feel. The best way to do this is with the following standard CSS import [2]:</p>
<pre class=" "><code>@import "http://yourwiki/xwiki/skins/albatross/style.css";</code></pre><p>After this import statement, feel free to include any of the CSS snippets below.</p>
<h4>Fixing Headings</h4><p>Each heading has its own CSS-class associated with it. You have to set each and every one and our settings are shown below. We used values that matched our CI, more or less.</p>
<pre class=" "><code>.heading-1 {
  font-size:14pt;
  margin:12pt 0pt 3pt;
  padding:0pt;
  line-height:1.5em;
}
.heading-1-1 {
  font-size:12pt;
  margin:12pt 0pt 3pt;
  padding:0pt;
  line-height:1.5em;
}
.heading-1-1-1 {
  font-size:12pt;
  margin:12pt 0pt 3pt;
  padding:0pt;
  line-height:1.5em;
  font-weight: bold;
}
.heading-1-1-1-1 {
  font-size:10pt;
  margin:12pt 0pt 3pt;
  padding:0pt;
  line-height:1.5em;
  font-weight: bold;
}
.heading-1-1-1-1-1 {
  font-size:10pt;
  margin:12pt 0pt 3pt;
  padding:0pt;
  line-height:1.5em;
  font-weight: bold;
}</code></pre><h4>Fixing Code and Preformatted Blocks </h4><p>As with most of the other updates, this fix involves removing a lot of padding and margins, as well as toning down the coloring. We use the &ldquo;Consolas&rdquo; font by default because we all have Office 2007 installed (you&rsquo;ll want other defaults, like &ldquo;Monaco&rdquo; if you&rsquo;re using OS X). Code blocks still have a light-grey background color, whereas pure preformatted blocks no longer have any color or border at all.</p>
<pre class=" "><code>.code {
background-color:#EEEEEE;
border:1px dotted #336699;
font-family:"Consolas",courier new,monospace;
font-size:9pt;
margin-bottom:4px;
margin-top:4px;
overflow:auto;
padding:5px;
white-space:pre;
width:85%;
}

.code pre {
padding: 0px;
margin: 0px;
border-width: 0px;
background-color: #EEEEEE;
}

pre {
background-color: white;
border: 0px;
padding:4px;
}</code></pre><h4>Fixing the Table-of-Contents</h4><p>This is an easy one: simply remove the bullets.</p>
<pre class=" "><code>.tocEntry {
list-style-type: none;
}</code></pre><h4>Fixing Tables</h4><p>Tone down colors; remove margins and padding; make the hurting stop. Note the use of the <code>!important</code> CSS directive to force the style to be used over another, more-specific style defined in another stylesheet.</p>
<pre class=" "><code>.wiki-table th, .wiki-table td {
padding: 2px;
}

.wiki-table th {
padding: 4px 2px;
font-size: 100%;
font-weight: bold;
background-color: #EEEEEE;
border-bottom: 1px dotted #336699;
}

.wiki-table {
margin: .5em 0em;
border: 1px dotted #336699 !important;
background-color: #EEEEEE;
}</code></pre><h4>Fixing Definition Lists</h4><p>Make definition terms bold by default; fix up the margins for the definition body. Definition lists are really useful in wikis, so it&rsquo;s important that they look good.</p>
<pre class=" "><code>dt {
  font-weight: bold;
}

dd {
  margin: .15em 1.5em .75em 1.5em;
}</code></pre><h4>Fixing Comments/Attachments</h4><p>These areas benefit from the fixes for tables made above, but they still need a bit more massaging before their color and margins are subdued enough—they are, after all, not the main elements on the page. The fixes involve setting the remaining backgrounds/background-colors to <code>none</code> or <code>transparent</code>.</p>
<pre class=" "><code>.xwikiintratitle {
font-size:100%;
font-style:normal;
font-weight:bold;
margin:0px;
padding:8px 0px;
}

#xwikidata #attachmentscontent, #xwikidata #attw, #xwikidata #commentscontent, #xwikidata #commentscontent .xwikititlewrapper
{
  background: none;
}

#xwikidatacontents
{
  margin: 1em 0em;
}</code></pre><h4>Fixing &ldquo;Page-not-found&rdquo; Links</h4><p>This fix removes the background color and turns the question mark brick-red, which is much more subtle than the default.</p>
<pre class=" "><code>.wikicreatelinkqm
{
  background: transparent;
  color: #CC0000;
  font-weight: bold;
}</code></pre><h4>Fixing Print-Preview</h4><p>And, finally, printing: here we remove the print header entirely [3] and take out the borders on the two main containers. The border change will affect the non-printing view as well, but it has no visible affect.</p>
<pre class=" "><code>#printheader
{
  display: none;
}

#xwikimaincontainerinner
{
  border: 0px;
}

#xwikimaincontainer
{
  border: 0px;
}</code></pre><p><hr></p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_1820_2_body" class="footnote-number">[2]</span> Another way to update the stylesheet is to put all of your styles into your own file on your XWiki server, then <code>import</code> that file instead.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_1820_3_body" class="footnote-number">[3]</span> The logo is hard-coded and cannot be easily replaced, though you could probably do so by replacing some page, panel or code extension somewhere</div>      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Windows XP Can't See a USB Hard Drive]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=1790</id>
    <link href="https://www.earthli.com/news/view_article.php?id=1790"/>
    <updated>2008-04-06T14:59:03+02:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p>These days, all USB drives are plug-and-play with Windows XP: you plug it in, Windows recognizes it and shows it in the Explorer, usually with a drive letter like <code>F</code>, <code>G</code> or <code>H</code>. Sometimes, however, the auto-detection of the drive letter goes awry and the drive doesn&rsquo;t show up in the Explorer and you&rsquo;re... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=1790">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">6. Apr 2008 14:59:03 (GMT-5)</span>
</p>
<p>
Updated by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">6. Apr 2008 15:04:02 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p>These days, all USB drives are plug-and-play with Windows XP: you plug it in, Windows recognizes it and shows it in the Explorer, usually with a drive letter like <code>F</code>, <code>G</code> or <code>H</code>. Sometimes, however, the auto-detection of the drive letter goes awry and the drive doesn&rsquo;t show up in the Explorer and you&rsquo;re hard-pressed to access it. [1]</p>
<p>If this has happened to you, you should first verify a few things:</p>
<ul>
<li>Make sure that the drive is plugged in properly and that it is turned on (and/or drawing power somehow, either through its own power adaptor or through the USB connection).</li>
<li>Type <kbd>Windows-Key+Break</kbd> to show <em>System Properties</em>, then go to the <em>Hardware</em> tab and show the <em>Device Manager</em>. Is the drive visible there? If it is, you&rsquo;re in luck.</li></ul><p>In order to fix the problem, you&rsquo;ll have to assign the drive a new letter. </p>
<ol>
<li>From the <em>Control Panel</em>, select <em>Administrative Tools</em>, then select <em>Computer Management</em>. </li>
<li>In this window, select <em>Disk Management</em> under <em>Storage</em>. On the right, you should see all of the hard disks attached to your computer as well as their partitions.</li>
<li>Select your USB drive from the list and right-click, selecting <em>Change Drive Letter…</em> from the popup menu.</li>
<li>From the resulting dialog, select a letter that doesn&rsquo;t conflict with an existing drive letter (make sure to avoid any letters used by network shares) and press <em>Ok</em>.</li></ol><p>Your drive should now appear in the Windows Explorer under the newly-assigned letter.</p>
<p><hr></p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_1790_1_body" class="footnote-number">[1]</span> This happened recently with a <a href="http://www.seagate.com/www/en-us/products/portable/freeagent_go/">FreeAgent™ Go</a> drive from Seagate, which failed to show up because Windows had assigned it the drive letter <code>H</code>, which was already mapped to a network share.</div>      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Poor Man's Backup with tar]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=1621</id>
    <link href="https://www.earthli.com/news/view_article.php?id=1621"/>
    <updated>2007-07-22T13:44:45+02:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p>The application <code>tar</code> is ubiquitous in the Unix/Linux world. It rolls multiple files and directories into a single &ldquo;tarball&rdquo;, which can be transferred more easily and expanded at its destination. A single option, <code>-z</code> applies a compression to the resulting tarball, giving the file the by now well-known... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=1621">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">22. Jul 2007 13:44:45 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p>The application <code>tar</code> is ubiquitous in the Unix/Linux world. It rolls multiple files and directories into a single &ldquo;tarball&rdquo;, which can be transferred more easily and expanded at its destination. A single option, <code>-z</code> applies a compression to the resulting tarball, giving the file the by now well-known extension <code>.tar.gz</code> (for tar-balled <em>and</em> g-zipped). Extracting this file involves two operations, in which first the compression is removed and then the tarball unrolled.</p>
<p>The easiest way to back up a folder (like a home directory) is using the following command:</p>
<pre class=" "><code>tar -czf marco_backup.tar.gz /home/marco/</code></pre><h2>Tarring &ldquo;dotted&rdquo; or hidden files</h2><p>However, this fails to include those most useful of files: the hidden files, which begin with a dot (&ldquo;.&rdquo;) on Unix/Linux [1]. Adding a star to the command, as shown below, fails to have any impact:</p>
<pre class=" "><code>tar -czf marco_backup.tar.gz /home/marco/*</code></pre><p>In order to pick up all files, hidden and visible, you have to use the dot (&ldquo;.&rdquo;) from regular expression syntax, which <code>tar</code> interprets as grab-everything-and-I-mean-everything-from-this-folder-and-any-folders-below-it.</p>
<pre class=" "><code>tar -czf marco_backup.tar.gz /home/marco/.</code></pre><p>Once the hidden files are in the tarball, they are extracted with all other files when the archive is expanded to its destination—without any special syntax tricks. To expand an archive, navigate to its directory and execute the following command:</p>
<pre class=" "><code>tar -zxf marco_backup.tar.gz</code></pre><h2><code>tar</code> command line switches</h2><p>Here&rsquo;s a rundown of the most useful command line switches:</p>
<ul>
<li><strong><code>v</code></strong> – Runs the command in verbose mode, showing the files and directories that it&rsquo;s zipping or unzipping. If you&rsquo;re tarring a big folder, it&rsquo;s best to leave this switch off.</li>
<li><strong><code>c</code></strong> – Indicates that <code>tar</code> should create a new archive.</li>
<li><strong><code>x</code></strong> – Indicates that <code>tar</code> should create a new archive.</li>
<li><strong><code>z</code></strong> – Applies compression to the tarball after it has been created.</li>
<li><strong><code>f</code></strong> – Indicates that the first argument is the name of the file to which it should store or from which it should extract the tarball/archive. This must be the last switch before the filename itself.</li></ul><p><hr></p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_1621_1_body" class="footnote-number">[1]</span> In particular, the Courier IMAP server stores its email in mailboxes, each of which begin with a dot. Running a backup with <code>tar</code> running in standard mode backs up almost <em>no</em> mails whatsoever.</div>      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Hidden Files in Perforce]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=1528</id>
    <link href="https://www.earthli.com/news/view_article.php?id=1528"/>
    <updated>2007-01-24T15:37:32+01:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p><small class="notes">This article was originally published on the <a href="http://blogs.encodo.ch/news/view_article.php?id=58"><strong>Encodo Blogs</strong></a>. Browse on over to see more!</small></p>
<p><hr></p>
<p>We keep our source code in Perforce, an extremely powerful SCM (source control manager). It retains multiple revisions of files and manages integrations between &ldquo;branches&rdquo;, or diverging streams of similar... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=1528">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">24. Jan 2007 15:37:32 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p><small class="notes">This article was originally published on the <a href="http://blogs.encodo.ch/news/view_article.php?id=58"><strong>Encodo Blogs</strong></a>. Browse on over to see more!</small></p>
<p><hr></p>
<p>We keep our source code in Perforce, an extremely powerful SCM (source control manager). It retains multiple revisions of files and manages integrations between &ldquo;branches&rdquo;, or diverging streams of similar code. Read/write permissions for paths within the depot can be restricted per user.</p>
<p>Recently, we needed to get the history of a particular file to see which changes had been applied to it over the course of the last year. Instead of the approximately 20 revisions we expected, we saw only one. The comment for the revision indicated that the last operation on this file was that it had been <em>renamed</em> to its current location.</p>
<h2>Renaming</h2><p>A rename in Perforce consists of two operations: the file is <em>integrated</em> from the source location to the target location and then <em>deleted</em> from the source location. That is, Perforce maintains the history of a file as multiple resources in the depot whose histories are linked by integrations. The command to retrieve file history accepts a flag, <code>-i</code>, which indicates that the server should follow these previous branches, returning the history for those files as well (as it is understood to be a single resource).</p>
<p>To continue with the example above, we expected to see the revisions for the file at its previous location (before it was renamed) listed as part of our file&rsquo;s history. [1] Perplexed, we tried to browse to the file location from which it was branched, only to discover that we couldn&rsquo;t even get to the folder for it, much less the file itself. In fact, the entire folder hierarchy right up to the root had been deleted and was no longer available. In this case, Perforce clients let you <em>show deleted files</em>, to ease restoring accidentally deleted resources, but that didn&rsquo;t help either. Explicitly including the folder in the workspace mapping yielded nothing.</p>
<h2>Obliterating</h2><p>We were stumped … and starting to get worried that we had <em>obliterated</em> that entire part of the depot instead of just deleting it.</p>
<p>By default, Perforce never forgets anything. Any change you make to a file in the depot is recorded to a changelist and stored with the file&rsquo;s meta-data. This includes, naturally, deleted files. If, however, files, or specific revisions, are really no longer needed, Perforce can remove them—along with their metadata—permanently. See the <a href="http://perforce.com/perforce/doc.062/manuals/cmdref/obliterate.html#1040665">obliterate documentation</a> for more information.</p>
<p>Before we started trying to figure out who to blame for the premature obliteration, we checked the depot on the server itself—only to discover that all of the files were still there, exactly where we expected them to be. Using the command line client and the maintenance user on the server, we created a temporary workspace and synced an older revision (an undeleted one) of the file to it. Opening the file revealed an intact source file. </p>
<h2>Perforce Clients</h2><p>Next, we figured that the GUI clients might have a problem, though it was hard to believe that it was a bug. To be sure, we used the command line client on the original machine to get the file using the exact same commands as on the server and, lo and behold, we saw:</p>
<blockquote class="quote quote-block "><div>&ldquo;protected namespace − access denied.&rdquo;</div></blockquote><p>Aha!</p>
<h2>Protecting depots</h2><p>As mentioned above, Perforce has a security system through which all data requests are filtered. Users only receive information about files to which they have &ldquo;read&rdquo; access. Imagine that the user has rights to <code>//depot/projects/sample/</code>, but not <code>//depot/old_projects/sample/</code>, where the files used to reside. </p>
<p>Under these conditions, a command to retrieve file history with branches would be processed as follows:</p>
<ol>
<li>The client makes a request for the file history, <code>p4 filelog -i -L //depot/projects/sample/versions.txt</code></li>
<li>The server processes the command, putting together the file list for the result, which includes listings from <code>//depot/projects/sample/</code> <em>and</em> <code>//depot/old_projects/sample/</code>.</li>
<li>The server filters the list according to what the user can see, returning only the entries from <code>//depot/projects/sample/</code>. [2]</li></ol><p>This explains why the GUI showed only one revision in the file history, instead of 20. It also explains why the original projects folder didn&rsquo;t appear in the depot view in any GUI client. Only the command-line client indicated a protection problem because a forbidden path <em>was explicitly requested</em>.</p>
<h2>Preventing Confusion</h2><p>Is there any way to improve the clients so that a user knows when content is being denied? Is this even desired, from a security standpoint? When viewing the depot tree, the user should not be made aware that there are entire folders being blocked from view by protections—that&rsquo;s a clear security breach. In that case, the user has not made an explicit request for data that has been blocked; the user has made a request for all available data, which implicitly means all <em>readable</em> data.</p>
<p>When viewing the revisions for a particular file, the user has made an explicit request for the file&rsquo;s history, including previous branches. If any of those branches are blocked, the client has no indication that this happened because the server filtered the list before returning it. In contrast to the other situation, the user <em>did</em> explicitly request information from a forbidden path and should be notified of it. However, the request returns a list of paths rather than a single file (as was the case with the command-line client above). It would not be appropriate to return only an error message if a particular branch of a file&rsquo;s history has been blocked.</p>
<p>A more elegant solution would deliver the available history (as it does now), but also an error message indicating that part of the result was blocked due to protection restrictions (again, as shown above). This way, a user knows that the protection mechanism blocked part of the information and can ask the administrator if there is a configuration problem (as was the case with our server).</p>
<p>For changelist requests, there is also no indication that part of the filelist was blocked, leaving a user to wonder why there are files missing from a changelist [3]. As with file history, the request for a changelist is explicit and should indicate a partial error. On the other hand, if <em>all</em> files in a changelist are blocked, the server should just return an error message (blocking the description as well). If multiple lists are requested, the blocked changelist should not appear at all.</p>
<h2>Conclusions</h2><p>With current versions of Perforce, users need to be aware that their rights are potentially restricted and remember to check with their administrator before assuming that information has been lost. Administrators need to be aware that setting protections does not restrict users from seeing all changelist descriptions, regardless of whether they are allowed to see files in that list or not.</p>
<p><hr></p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_1528_1_body" class="footnote-number">[1]</span> The P4Win client includes a <em>Display branching history</em> checkbox, but all the subsequently displayed revisions are folded into a flat list, wherein branch boundaries are recognizable only by a reversion of the revision number to one. Use the P4V client for a more comfortable view, in which each file location (or branch) in the history has its own tree node, which can be opened and closed individually.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_1528_2_body" class="footnote-number">[2]</span> We also verified that this server-side filtering applies everywhere, including changelists. If a user requests a changelist in which all paths are blocked, the changelist appears empty.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_1528_3_body" class="footnote-number">[3]</span> Granted, this applies only if the user is examining older changelists, submitted before protection permissions were changed. This can be confusing because the user may remember checking in a particular file, but doesn&rsquo;t see it now, which then looks like a bug in the server.</div><p><small class="notes">Using p4d/p4v/p4 2006.1 &amp; p4win 2006.2</small></p>
      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Deleting Recent Connections in P4V (Perforce Client)]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=1245</id>
    <link href="https://www.earthli.com/news/view_article.php?id=1245"/>
    <updated>2006-02-22T09:44:18+01:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p>The Perforce P4V client has a list of recent connections under the &ldquo;Connection&rdquo; menu. This is especially nice when you use more than one workspace or more than one server. However, if you select the wrong workspace, it stores that copy too and there doesn&rsquo;t seem to be any way of editing the list... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=1245">More</a>]</p>
]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">22. Feb 2006 09:44:18 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p>The Perforce P4V client has a list of recent connections under the &ldquo;Connection&rdquo; menu. This is especially nice when you use more than one workspace or more than one server. However, if you select the wrong workspace, it stores that copy too and there doesn&rsquo;t seem to be any way of editing the list from the UI. That means your recent connections list gets crowded with entries you don&rsquo;t want—and which may fail with a long timeout when selected.</p>
<p>You can&rsquo;t remove entries from this list through the UI, but you can remove them directly from your Perforce settings:</p>
<ol>
<li>Quit P4V to make sure it has saved all recent settings.</li>
<li>Browse to C:\Documents and Settings\&lt;username&gt;\.p4qt.</li>
<li>There should be two files for each connection, a .ws file and a .ws.ui file. These files are numbered, but their order doesn&rsquo;t correspond to the order in the menu.</li>
<li>Open the .ws file in a text editor (e.g. drag it to an open Notepad) to check to which workspace/server combination it corresponds.</li>
<li>Delete the pair of files (.ws and .ws.ui) for the recent connections you no longer want. Though the files are numbered, you do not need to renumber them as Perforce simply reads all files in the directory.</li>
<li>Re-open Perforce and verify that the connections are gone.</li></ol>      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
  <entry>
      <title type="html" xml:lang="en-us">
    <![CDATA[Sharing a Printer Between Windows Machines]]>
  </title>
    <id>https://www.earthli.com/news/view_article.php?id=1239</id>
    <link href="https://www.earthli.com/news/view_article.php?id=1239"/>
    <updated>2006-02-18T21:54:15+01:00</updated>
    <author>
        <name type="html" xml:lang="en-us">
    <![CDATA[Marco von Ballmoos]]>
  </name>
      <uri>https://earthli.com/users/marco</uri>
    </author>
      <summary type="html" xml:lang="en-us">
    <![CDATA[<p><img src="https://www.earthli.com/data/news/attachments/entry/1239/sharedprinter.png" alt=" " class="frame align-left"></p>
<div class=" " style="margin-left: 120px"><h2>Sharing files</h2><p>It&rsquo;s no longer as rare as it used to be to have more than one computer in a home. That means that home users are going to need to run networks—which is no mean feat for Windows machines. Getting two newly-installed [1] Windows machines to see each other is relatively easy. </p>
<ol>
<li>Just... [<a class="complete-text-link" href="https://www.earthli.com/news/view_article.php?id=1239">More</a>]</li></ol></div>]]>
  </summary>
      <content type="html" xml:lang="en-us">
    <![CDATA[<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/themes/ice.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/fonts/raleway.css">
  <link rel="stylesheet" type="text/css" href="https://www.earthli.com/resources/styles/core/medium.css">
  </head>
  <body>
<div class="style-controls">  <div class="page">
    <div class="page-body">
<div class="info-box-top">
<p>
Published by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">18. Feb 2006 21:54:15 (GMT-5)</span>
</p>
<p>
Updated by <a href="https://www.earthli.com/news/view_user.php?name=marco" title="Marco von Ballmoos" class="visible">marco</a> on <span class="date-time">12. Apr 2008 13:24:56 (GMT-5)</span>
</p>
</div>
      <div class="text-flow wide">
  <p><img src="https://www.earthli.com/data/news/attachments/entry/1239/sharedprinter.png" alt=" " class="frame align-left"></p>
<div class=" " style="margin-left: 120px"><h2>Sharing files</h2><p>It&rsquo;s no longer as rare as it used to be to have more than one computer in a home. That means that home users are going to need to run networks—which is no mean feat for Windows machines. Getting two newly-installed [1] Windows machines to see each other is relatively easy. </p>
<ol>
<li>Just right-click a folder, select &ldquo;Sharing&rdquo; and tell it the folder is available. </li>
<li>Users on other computers will need to log in with a valid account for that machine in order to access the folder. If you have the same user name/password on both machines, Windows even logs in automatically [2].</li></ol></div><h2>Enabling &ldquo;Sharing&rdquo;</h2><p>If &ldquo;Sharing&rdquo; is not available on the popup-menu when you right-click, you have to install the &ldquo;File and Printer Sharing for Microsoft Networks&rdquo; Service first. </p>
<ol>
<li>Go to &ldquo;Control Panel&rdquo; =&gt; &ldquo;Network Connections&rdquo; and select the adaptor for which you&rsquo;d like to enable sharing. Most modern laptops have two adaptors, a &ldquo;Wireless Network Connection&rdquo; and a &ldquo;Local Area Connection&rdquo;. </li>
<li>Right-click the adaptor over which you&rsquo;d like to share and select &ldquo;Properties&rdquo;.</li>
<li>Click the &ldquo;Install…&rdquo; button.</li>
<li>From the resulting dialog, click &ldquo;Service&rdquo; in the list at the top, then &ldquo;Add…&rdquo;. </li>
<li>Select the &ldquo;File and Printer Sharing for Microsoft Networks&rdquo; network service and click &ldquo;Ok&rdquo;.</li>
<li>Let Windows do its thing—it&rsquo;ll probably ask you to reboot—and you&rsquo;ve got sharing enabled.</li></ol><h2>Sharing a Printer</h2><p>One resource that you also want to share is a printer. Most home printers can be attached only to a machine, so only that computer has access to it. [3] Note that the service for sharing files also supports sharing printers. That means you can share a printer in the same way.</p>
<ol>
<li>Install the printer on one machine.</li>
<li>Right-click the printer icon in &ldquo;Control Panel&rdquo; =&gt; &ldquo;Printers and Faxes&rdquo; and click &ldquo;Sharing&rdquo;.</li>
<li>Click &ldquo;Ok&rdquo; to share the printer.</li></ol><p>The machine to which the printer is attached is now advertising that it has a printer. How can the other machine use this printer?</p>
<ol>
<li>Go to &ldquo;Control Panel&rdquo; =&gt; &ldquo;Printers and Faxes&rdquo; on the other machine (the one without the printer).</li>
<li>Right-click in the empty space and select &ldquo;Add Printer&rdquo;.</li>
<li>Select &ldquo;A network printer, or a printer attached to another computer&rdquo; and click &ldquo;Next&rdquo;.</li>
<li>Click &ldquo;Next&rdquo; to browse for a printer [4].</li>
<li>Select the printer and click &ldquo;Next&rdquo; to install it (you may have to click &ldquo;Ok&rdquo; to accept the driver installation and you will have to log in with a valid account for the other machine to use it—see above for more information).</li></ol><h2>Logging in to the Printer</h2><p>Now you can print to the shared printer from any of the applications on the second machine. Remember, during the printer installation, when you had to give a user name and password to log in to the printer? Windows will forget this name and password the next time you restart the machine sharing the printer. That is, if you restart the machine without the printer and then open a document and try to print it, Windows will refuse. It doesn&rsquo;t ask for the password or anything—just gives you one of several reasons why it can&rsquo;t access the printer.</p>
<p>That means you need to log in to the printer somehow every time you start the computer. This is best done by double-clicking the shared printer to force Windows to ask for a password.</p>
<ol>
<li>On the machine with the shared printer, go to &ldquo;Control Panel&rdquo; =&gt; &ldquo;Printers and Faxes&rdquo;.</li>
<li>Drag the printer to the desktop, holding down &ldquo;Control&rdquo; and &ldquo;Shift&rdquo; on the keyboard. Let go over the desktop and it will create a shortcut to the printer.</li>
<li>When you double-click the printer there, it will ask to log in if you haven&rsquo;t already. You only need to do this once per Windows reboot, but you can&rsquo;t print until you do.</li></ol><p><hr></p>
<div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_1239_1_body" class="footnote-number">[1]</span> Machines that are not newly-installed are likely to suffer from &ldquo;Windows entropy&rdquo;, an affliction that causes them to fail in completely mysterious ways at what would seem common tasks.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_1239_2_body" class="footnote-number">[2]</span> Sometimes.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_1239_3_body" class="footnote-number">[3]</span> If your home network has a router to provide internet access, you may be able to plug the printer directly into the router to allow access from all machines. The printer must support this with its own network card—generally a feature only on higher-end laser printers.</div><div class="footnote-reference"><span id="footnote_DRAFTABLE_ENTRY_1239_4_body" class="footnote-number">[4]</span> The Windows network browser is notoriously slow and unreliable (it also tends to freeze the whole rest of the system while it searches). If you know the name of the printer (which you should … it&rsquo;s on the other machine), just type it in and click &ldquo;Next&rdquo; to use that.</div>      </div>
      </div>
        <div class="footer">
    <div class="footer-data"><div class="footer-links"><ul class="menu-items standard"><li><a href="https://www.earthli.com/shared/contact.php" title="">Contact</a></li><li><a href="https://www.earthli.com/shared/support.php" title="">Support</a></li><li><a href="https://www.earthli.com/shared/privacy.php" title="">Privacy</a></li><li><a href="https://www.earthli.com/shared/rights.php" title="">Rights</a></li></ul></div></div><div class="footer-data"><div class="copyright">Copyright (c) 1999-2026 earthli.com. All Rights Reserved.</div></div><div class="footer-data"><div class="versions">Powered by <ul class="menu-items standard"><li><a href="http://earthli.com/software/webcore/app_news.php">earthli News 3.7</a></li><li><a href="http://earthli.com/software/webcore" title="">earthli WebCore&trade; 3.7</a></li></ul></div></div>    </div>
      </div>
  </div>  </body>
</html>
]]>
  </content>
  </entry>
</feed>
