<!DOCTYPE html>
<script>var __pbpa = true;</script><script>var translated_warning_string = 'Warning: Never enter your Tumblr password unless \u201chttps://www.tumblr.com/login\u201d\x0ais the address in your web browser.\x0a\x0aYou should also see a green \u201cTumblr, Inc.\u201d identification in the address bar.\x0a\x0aSpammers and other bad guys use fake forms to steal passwords.\x0a\x0aTumblr will never ask you to log in from a user\u2019s blog.\x0a\x0aAre you absolutely sure you want to continue?';</script><script type="text/javascript" language="javascript" src="http://assets.tumblr.com/assets/scripts/pre_tumblelog.js?_v=0fe6931f685c5a29060675a836044a62"></script>
<!DOCTYPE html>
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6 lte-ie8"> <![endif]-->
<!--[if IE 7 ]> <html lang="en" class="no-js ie7 lte-ie8"> <![endif]-->
<!--[if IE 8 ]> <html lang="en" class="no-js ie8 lte-ie8"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
<!--
==========================================================================
 ____                     ___       __  __
/\  _`\  __              /\_ \     /\ \/\ \          __
\ \ \L\ \\_\  __  _    __\//\ \    \ \ \ \ \    ___ /\_\    ___    ___
 \ \ ,__//\ \/\ \/'\ /'__`\\ \ \    \ \ \ \ \ /' _ `\/\ \  / __`\/' _ `\
  \ \ \/ \ \ \/>  <//\  __/ \_\ \_   \ \ \_\ \/\ \/\ \ \ \/\ \L\ \\ \/\ \
   \ \_\  \ \_\\_/\_\ \____\/\____\   \ \_____\ \_\ \_\ \_\ \____/ \_\ \_\
    \/_/   \/_///\/_/\/____/\/____/    \/_____/\/_/\/_/\/_/\/___/ \/_/\/_/
==========================================================================
   Effector v4.1.0
   Updated: January 29, 2014
   Website: https://www.pixelunion.net
   Themes: http://tumblr.com/themes/by/pixelunion-themes
==========================================================================
-->
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
  <meta name="viewport" content="width=device-width, initial-scale=1" />

  <title>Bradley Dean</title>

  
    <meta name="description" content="Atlanta area .Net developer"/>
  

  <meta name="color:Background" content="#e6ebea"/>
  <meta name="color:Colored Area Text" content="#fffadc"/>
  <meta name="color:Colored Area Text Shadow" content="#bf4402"/>
  <meta name="color:Inside Link" content="#f55b2c"/>
  <meta name="color:Inside Link Hover" content="#fff7a5"/>
  <meta name="color:Main Theme" content="#f55b2c"/>
  <meta name="color:Outside Link" content="#f55b2c"/>
  <meta name="color:Outside Link Hover" content="#131313"/>
  <meta name="color:Outside Text" content="#616566"/>
  <meta name="font:Inside Heading" content="Helvetica Neue, Arial, sans-serif"/>
  <meta name="font:Inside Text" content="Georgia, serif"/>
  <meta name="font:Outside Heading" content="Helvetica Neue, Arial, sans-serif"/>
  <meta name="font:Outside Text" content="Helvetica Neue, Arial, sans-serif"/>
  <meta name="image:Background" content=""/>
  <meta name="image:Banner" content=""/>
  <meta name="image:Large Sidebar Portrait" content=""/>
  <meta name="image:Logo" content=""/>
  <meta name="if:Align Top Menu Left" content="0"/>
  <meta name="if:Automatic Headings" content="0"/>
  <meta name="if:Blog Title in Page Header" content="0"/>
  <meta name="if:Blog Title in Sidebar" content="0"/>
  <meta name="if:Blog Title in Top bar" content="1"/>
  <meta name="if:Centered Layout" content="1"/>
  <meta name="if:Collapse Notes" content="1"/>
  <meta name="if:Content Width 500" content="0"/>
  <meta name="if:Content Width 600" content="0"/>
  <meta name="if:Content Width 700" content="1"/>
  <meta name="if:Custom Photosets" content="1"/>
  <meta name="if:Fixed Background" content="0"/>
  <meta name="if:Fixed Top Bar" content="1"/>
  <meta name="if:Hide Sidebar" content="0"/>
  <meta name="if:Infinite Scrolling" content="0"/>
  <meta name="if:Invert" content="0"/>
  <meta name="if:Invert Top Bar" content="0"/>
  <meta name="if:Large Social Icons" content="1"/>
  <meta name="if:Left Sidebar" content="0"/>
  <meta name="if:Logo in Top bar" content="0"/>
  <meta name="if:Fullscreen Background" content="0"/>
  <meta name="if:Pages In Top Bar" content="0"/>
  <meta name="if:Rounded Post Corners" content="0"/>
  <meta name="if:Scale Images" content="1"/>
  <meta name="if:Search Box In Sidebar" content="0"/>
  <meta name="if:Show About Heading" content="1"/>
  <meta name="if:Show Blogs I Follow" content="0"/>
  <meta name="if:Show Description" content="1"/>
  <meta name="if:Show Group Blog Info" content="0"/>
  <meta name="if:Show Instagram" content="0"/>
  <meta name="if:Show Likes" content="0"/>
  <meta name="if:Show Likes in Sidebar" content="0"/>
  <meta name="if:Show Pages Heading" content="1"/>
  <meta name="if:Show Portrait" content="0"/>
  <meta name="if:Show Random Post Icon" content="0"/>
  <meta name="if:Show Social Icons Widget" content="0"/>
  <meta name="if:Show Tweets" content="1"/>
  <meta name="if:Show Twitter Profile" content="1"/>
  <meta name="if:Top Menu With Labels" content="0"/>
  <meta name="text:Behance Username" content=""/>
  <meta name="text:Cargo URL" content=""/>
  <meta name="text:Copyright Text" content=""/>
  <meta name="text:Default Search Text" content="Search"/>
  <meta name="text:Delicious Username" content=""/>
  <meta name="text:Disqus Shortname" content=""/>
  <meta name="text:Dribbble Username" content=""/>
  <meta name="text:FFFFound Username" content=""/>
  <meta name="text:Facebook Username" content=""/>
  <meta name="text:Flickr Username" content=""/>
  <meta name="text:Forrst Username" content=""/>
  <meta name="text:Foursquare Username" content=""/>
  <meta name="text:GetClicky Site ID" content=""/>
  <meta name="text:Google Analytics Web Property ID" content=""/>
  <meta name="text:Google URL" content=""/>
  <meta name="text:Grooveshark Username" content=""/>
  <meta name="text:Instagram Username" content=""/>
  <meta name="text:Instagram Heading" content="Instagram"/>
  <meta name="text:Instagram Access Token" content=""/>
  <meta name="text:Instagram Count Max 4" content="4"/>
  <meta name="text:Lastfm Username" content=""/>
  <meta name="text:Liked Posts Heading" content="I Dig These Posts"/>
  <meta name="text:Linkedin Profile URL" content=""/>
  <meta name="text:Myspace Friend ID" content=""/>
  <meta name="text:Num Tweets Max 4" content="4"/>
  <meta name="text:Pinboard Username" content=""/>
  <meta name="text:Pinterest Username" content=""/>
  <meta name="text:Rdio Username" content=""/>
  <meta name="text:Rows of Followed Avatars" content="3"/>
  <meta name="text:Skype Username" content=""/>
  <meta name="text:Social Icons Heading" content="Me, Elsewhere"/>
  <meta name="text:Soundcloud Username" content=""/>
  <meta name="text:Tagline" content=""/>
  <meta name="text:Twitter Heading" content="Twitter"/>
  <meta name="text:Twitter Username" content=""/>
  <meta name="text:Vimeo Username" content=""/>
  <meta name="text:Xbox Live Profile URL" content=""/>
  <meta name="text:Youtube Username" content=""/>
  <meta name="text:github Username" content=""/>

  <!-- FACEBOOK OPEN GRAPH -->
  <!-- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>-->

  <meta property="og:site_name" content="Bradley Dean"/>

  

  
    <meta property="og:title" content="Bradley Dean"/>
    <meta property="og:type" content="blog"/>
    <meta property="og:description" content="Atlanta area .Net developer"/>
    <meta property="og:image" content="http://33.media.tumblr.com/avatar_629a900f1555_64.png"/>
  

  <link rel="shortcut icon" href="http://38.media.tumblr.com/avatar_629a900f1555_128.png" />
  <link rel="apple-touch-icon" href="http://38.media.tumblr.com/avatar_629a900f1555_128.png" />
  <link rel="alternate" type="application/rss+xml" href="http://truegeek.com/rss"/>
  <link rel="stylesheet" href="http://static.tumblr.com/xgwqnql/MF5lbpkr4/jquery.fancybox-1.3.1.css" media="screen"/>

  
    <link href="http://static.tumblr.com/ymcvd4r/dDFmzctcv/style.css" media="screen" rel="stylesheet" type="text/css" />
  

  <script type="text/javascript">
    tumblrUsername = 'truegeek';
    searchValue = "Search";
    themeColor = "#f55b2c";
    
    
    contentWidth = 700;
    customPhotosets = true;
    
    collapseNotes = true;
    
    twitterUsername = "tbdean";
    
    
    var showInstagram = false;
    showInstagram = true;
    var accessToken = '294533267.b8c8324.e29c31948be24bf18d8ee685e41d9033';
    var instaCount = '4';
    
    
    
    photosets = {};
  </script>
  <style type="text/css">
    body {
      font-family:Helvetica Neue, Arial, sans-serif;
      color:#8e8f96;
      background-color:#464850;
      
    }

    .blog-title,
    #sidebar h1,
    #sidebar h2,
    #sidebar h3,
    #footer h1,
    #footer h2,
    #footer h3 {
      font-family:Helvetica Neue, Arial, sans-serif;
    }

    .copy {
      font-family:Georgia, serif;
    }
    .copy h1,
    .copy h2,
    .copy h3,
    .copy h4,
    .copy h5,
    .copy h6,
    .auto-headings .copy p:first-child strong:first-child,
    #notes h2,
    #disqus h2,
    .speaker {
      font-family:Helvetica Neue, Arial, sans-serif;
    }

    #tabs #tabs-nav h2 span.active {
      background:#464850;
    }

    
      .pinned .menu a {
        color:#fff;
        color:rgba(255,255,255,0.8);
      }
      .pinned .blog-title a,
      .pinned .menu a:hover,
      .pinned .pages a,
      #sidebar .pages a,
      #banner .blog-title a,
      #sidebar .blog-title a,
      #twitter h3,
      #sidebar h2,
      #footer h2,
      #footer-end a,
      .more-likes,
      .like_link a,
      #pagination .nextprev a,
      .page-sep {
        color: #fff;
      }
    

    

    /* Main Theme Color */
    .colored-panel,
    .type-answer .user-question,
    .pages a:hover,
    .invert .fixed .pages a:hover,
    .invert .pinned .pages a:hover,
    .invert #sidebar .pages a:hover,
    .more-likes:hover,
    .invert-topbar .fixed .pages a:hover,
    .like_link a:hover,
    .type-photoset .navi a:hover,
    #pagination .nextprev a:hover,
    #group-members li span,
    #followed li span {
      background-color:#f55b2c;
    }
    .corners .tl {
      border-left-color: #f55b2c;
    }
    .corners .tr {
      border-right-color: #f55b2c;
    }
    .corners .bl,
    .corners .br {
      border-bottom-color:#f55b2c;
    }
    #group-members li span:after,
    #followed li span:after {
      border-top-color:#f55b2c;
    }

    /* Outside Link Color */
    a, #footer-end a:hover {
      color:#f55b2c;
    }

    /* Outside Link Hover */
    a:hover {
      color:#ffffff;
    }

    /* Inside Link Color */
    .copy a,
    .copy li:before,
    .type-chat .speaker,
    .no-touch #notes-toggle:hover,
    .touch #notes-toggle.up,
    ol.notes a,
    #disqus a {
      color:#f55b2c;
    }

    .copy a:hover,
    ol.notes a:hover {
      border-color:#f55b2c;
    }
    .copy .post-title a:hover,
    .copy a:hover,
    ol.notes a:hover,
    #dsq-comments a:hover,
    #dsq-options a:hover {
      background-color:#fff7a5;
    }

    .no-touch #notes-toggle:hover .icon,
    .touch #notes-toggle.up .icon,
    .photo-btns a:hover,
    #back-to-top .icon {
      background-color:#f55b2c;
    }

    /* Colored Area */
    .colored-panel,
    .colored-panel a,
    .colored-panel a:hover,
    .colored-panel .user-question,
    .pages a:hover,
    .invert-topbar .fixed .pages a:hover,
    .invert #sidebar .pages a:hover,
    .more-likes:hover,
    .like_link a:hover,
    #pagination .nextprev a:hover,
    #group-members li span,
    #followed li span {
      color:#fffadc;
    }

    /* Colored Area Text Shadow */
    .type-quote .quote-text,
    .type-audio .audio-meta,
    .type-answer .user-question,
    .pages a:hover,
    .more-likes:hover,
    .like_link a:hover,
    #pagination .nextprev a:hover,
    #group-members li span,
    #followed li span {
      text-shadow:1px 1px #bf4402;
    }

    ol.notes li.tumblelog_truegeek {
      background-color:#fbfbfb;
    }
    ol.notes li.tumblelog_truegeek .action {
      font-weight:bold;
    }
    #page, .inner {
      margin:0 auto;
    }

    .projectHeader {
    background-color: #000000;
    color: #FFFFFF;
    padding-left: 5px;
    font-weight: bold;
    font-size: 20px;
}
  </style>

  <script src="http://static.tumblr.com/hugxd2w/6Cpm8gh20/modernizr.2.6.1.min.js"></script>
  
  
<!-- For Syntax Highlighting -->
<link rel="stylesheet" type="text/css" href="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css"></link>  
<script src="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js"></script>  
<script>
    function styleCode() {
        if (typeof disableStyleCode != 'undefined') { return; }

        var a = false;
        
        $('code').each(function() {
            if (!$(this).hasClass('prettyprint')) {
                $(this).addClass('prettyprint');
                a = true;
            }
        });

        if (a) { prettyPrint(); } 
    }

    $(function() {styleCode();});
</script>


<link rel="alternate" href="android-app://com.tumblr/tumblr/x-callback-url/blog?blogName=truegeek" />
<script src="http://assets.tumblr.com/assets/scripts/tumblelog.js?_v=c78ef57bd25c48e7f24a984e7ef6ceba"></script>
<link rel="stylesheet" type="text/css" href="http://assets.tumblr.com/fonts/gibson/stylesheet.css?v=3">
<meta http-equiv="x-dns-prefetch-control" content="off"/>
<meta name="keywords" content="recursion,testing,hiring,software development,performance" />
<!-- TWITTER TAGS --><meta charset="utf-8"><meta name="twitter:site" content="tumblr" /><meta name="twitter:card" content="summary" /><meta name="twitter:title" content="truegeek" /><meta name="twitter:description" content="Atlanta area .Net developer" /><meta name="twitter:creator" content="tbdean" /><meta name="twitter:app:name:iphone" content="Tumblr" /><meta name="twitter:app:name:ipad" content="Tumblr" /><meta name="twitter:app:name:googleplay" content="Tumblr" /><meta name="twitter:app:id:iphone" content="305343404" /><meta name="twitter:app:id:ipad" content="305343404" /><meta name="twitter:app:id:googleplay" content="com.tumblr" /><meta name="twitter:app:url:iphone" content="tumblr://x-callback-url/blog?blogName=truegeek&amp;referrer=twitter-cards" /><meta name="twitter:app:url:ipad" content="tumblr://x-callback-url/blog?blogName=truegeek&amp;referrer=twitter-cards" /><meta name="twitter:app:url:googleplay" content="tumblr://x-callback-url/blog?blogName=truegeek&amp;referrer=twitter-cards" />

</head>
<body class="content-700 invert menu-labels lg-icons scale-images ">
  <div id="header" class="pinned">
    <div class="inner">
      

      
        <h1 class="blog-title"><a href="/">Bradley Dean</a></h1>
      

      

      
      <ul class="menu">
        
        <li><a class="archives" href="/archive"><span class="icon"></span><span class="label">Archive</span></a></li>
        <li><a class="rss" href="http://truegeek.com/rss"><span class="icon"></span><span class="label">RSS</span></a></li>
        
        
      </ul>
    </div><!-- .inner -->
    <div class="shadow"><span></span></div>
  </div><!-- /#header -->

  <!-- PAGE -->
  <div id="page" class="left-sidebar clearfix">

    

    
      
    

    <div id="content">

      <!-- BEGIN POSTS -->
      
        <article id="post-97267379584" class="post
          type-text 
          
          
          
          
          
          
          
          
          ">

          
            <div class="post-panel">
              <div class="copy">
                <h2 class="post-title">Microsoft Multi-Device Hybrid Apps</h2>
                <p>I gave a talk at <a href="http://www.meetup.com/Gwinnett-Microsoft-Users-Group/">GGMUG </a>tonight on creating Android and iOS applications using the Microsoft Visual Studio Multi-Device Hybrid Apps framework.</p>
<p>Here is the source code for the application we made during the talk:</p>
<p><a href="https://github.com/TrueGeek/CordovaDemo">https://github.com/TrueGeek/CordovaDemo</a></p>
<p>And here is the Power Point deck:</p>
<p><a href="http://1drv.ms/1nPmWM2">http://1drv.ms/1nPmWM2</a></p>
<p>Thanks to everyone that came out!</p>
              </div>
          

          

          

          

          

          

          

          

          

          

          
            <div class="meta">
              <ul class="meta-list">

                

                

                <li class="date">
                  <a href="http://truegeek.com/post/97267379584/microsoft-multi-device-hybrid-apps" title="Thu. September 11, 2014 @ 9:58 pm">
                    <span class="icon"></span>4 months ago
                  </a>
                  
                </li>

                

                

                <li class="permalink"><a href="http://truegeek.com/post/97267379584/microsoft-multi-device-hybrid-apps"><span class="icon"></span>Permalink</a></li>

              </ul><!--/.meta-list -->

              <div class="share">
                <span class="toggle">Share</span>
                <div class="widget">
                  <div class="short-link">
                    <p>Short URL<br>
                    <input type="text" readonly="" value="http://tmblr.co/Zpytvx1Qbbcs0"></p>
                  </div>
                  <div class="share-links"><a target="_new" href="https://twitter.com/intent/tweet?url=http://tmblr.co/Zpytvx1Qbbcs0" class="share-twitter">Twitter</a><a target="_new" href="https://www.facebook.com/sharer.php?u=http://truegeek.com/post/97267379584/microsoft-multi-device-hybrid-apps&t=Microsoft Multi-Device Hybrid Apps" class="share-facebook">Facebook</a><a target="_new" href="http://pinterest.com/pin/create/button/?url=http://truegeek.com/post/97267379584/microsoft-multi-device-hybrid-apps&media=" class="share-pinterest">Pinterest</a><a target="_new" href="https://plus.google.com/share?url=http://truegeek.com/post/97267379584/microsoft-multi-device-hybrid-apps" class="share-google">Google+</a></div>
                </div>
              </div>
            </div><!-- /.meta -->
          

          

          </div><!-- /.post-panel -->
          <div class="post-shadow"></div>
        </article><!-- /.post -->
      
        <article id="post-76246665927" class="post
          type-text 
          
          
          
          
          
          
          
          
          tag_sql+server ">

          
            <div class="post-panel">
              <div class="copy">
                <h2 class="post-title">Check For SQL Authentication Type Before Adding Users</h2>
                <p>While setting up a new team member to run a WPF app locally we ran into an error. It look about 30 minutes to realize our setup SQL script was creating a user in SQL server, but mixed mode authentication was not turned on.</p>
<p><span>To prevent having to relearn this problem again in the future we&#8217;ve added this code to our SQL script, right before the CREATE LOGIN command.</span></p>
<pre>    <code>
        IF (SERVERPROPERTY('IsIntegratedSecurityOnly') != 0)
        BEGIN
            THROW 50000, 'SQL Server has not been configured for mixed mode authentication.', 1;
        END
        GO
    </code>
</pre>
<p>Now if we ever have another team member try to run the setup scripts without mixed mode authentication turned on they&#8217;ll get an error telling them exactly what is wrong.</p>
              </div>
          

          

          

          

          

          

          

          

          

          

          
            <div class="meta">
              <ul class="meta-list">

                
                  <li class="tags">
                    <ul class="tag-list">
                      
                        <li><a href="http://truegeek.com/tagged/sql-server">#sql server</a></li>
                      
                    </ul>
                  </li>
                

                

                <li class="date">
                  <a href="http://truegeek.com/post/76246665927/check-for-sql-authentication-type-before-adding" title="Mon. February 10, 2014 @ 3:15 pm">
                    <span class="icon"></span>11 months ago
                  </a>
                  
                </li>

                

                

                <li class="permalink"><a href="http://truegeek.com/post/76246665927/check-for-sql-authentication-type-before-adding"><span class="icon"></span>Permalink</a></li>

              </ul><!--/.meta-list -->

              <div class="share">
                <span class="toggle">Share</span>
                <div class="widget">
                  <div class="short-link">
                    <p>Short URL<br>
                    <input type="text" readonly="" value="http://tmblr.co/Zpytvx170fyh7"></p>
                  </div>
                  <div class="share-links"><a target="_new" href="https://twitter.com/intent/tweet?url=http://tmblr.co/Zpytvx170fyh7" class="share-twitter">Twitter</a><a target="_new" href="https://www.facebook.com/sharer.php?u=http://truegeek.com/post/76246665927/check-for-sql-authentication-type-before-adding&t=Check For SQL Authentication Type Before Adding Users" class="share-facebook">Facebook</a><a target="_new" href="http://pinterest.com/pin/create/button/?url=http://truegeek.com/post/76246665927/check-for-sql-authentication-type-before-adding&media=" class="share-pinterest">Pinterest</a><a target="_new" href="https://plus.google.com/share?url=http://truegeek.com/post/76246665927/check-for-sql-authentication-type-before-adding" class="share-google">Google+</a></div>
                </div>
              </div>
            </div><!-- /.meta -->
          

          

          </div><!-- /.post-panel -->
          <div class="post-shadow"></div>
        </article><!-- /.post -->
      
        <article id="post-75930301995" class="post
          type-text 
          
          
          
          
          
          
          
          
          tag_WPF tag_ClickOnce ">

          
            <div class="post-panel">
              <div class="copy">
                <h2 class="post-title">Manually Rolling Back A WFP ClickOnce Application</h2>
                <p>If you need to revert to a previous ClickOnce version you are expected to redeploy that older version.</p>
<p>Recently I was in a situation where this wouldn&#8217;t work as there were checked in code changes that the environment was not ready for. Now I could have reverted to the previous version in TFS and then redeployed that. But luckily I found an easier way.</p>
<p>When you deploy a new ClickOnce version all the previous versions are stored on the server:</p>
<p><img alt="image" src="http://media.tumblr.com/c84fcc3ef11c7dd4cd11eb6091518aba/tumblr_inline_n0naob5bNS1qf6rco.png"/></p>

<p>To use one of these versions modify your manifest (.application) file. Change the version number in the assemblyIdentity:</p>
<p><img alt="image" src="http://media.tumblr.com/c14334ac38bea03b709ce4c597bd82c4/tumblr_inline_n0naxlVGQf1qf6rco.png"/></p>
<p><span>Further down in this file you&#8217;ll find the dependencyAssembly. You&#8217;ll need to change the path in the codebase, the version in the assemblyIdentity, as well as the DigestValue. This last value you&#8217;ll need to copy over from the manifest (.application file) that&#8217;s in your version directory.</span></p>
<p><img alt="image" src="http://media.tumblr.com/6aaf6cf82e2b54b6b6be18fbefc441e8/tumblr_inline_n0nay6uYPh1qf6rco.png"/></p>
<p>Save your application manifest and you&#8217;re done!</p>
<p>When clients relaunch they&#8217;ll see they are no longer the latest version and they&#8217;ll re-update themselves.</p>
              </div>
          

          

          

          

          

          

          

          

          

          

          
            <div class="meta">
              <ul class="meta-list">

                
                  <li class="tags">
                    <ul class="tag-list">
                      
                        <li><a href="http://truegeek.com/tagged/WPF">#WPF</a></li>
                      
                        <li><a href="http://truegeek.com/tagged/ClickOnce">#ClickOnce</a></li>
                      
                    </ul>
                  </li>
                

                

                <li class="date">
                  <a href="http://truegeek.com/post/75930301995/manually-rolling-back-a-wfp-clickonce-application" title="Fri. February 7, 2014 @ 4:49 pm">
                    <span class="icon"></span>11 months ago
                  </a>
                  
                </li>

                

                

                <li class="permalink"><a href="http://truegeek.com/post/75930301995/manually-rolling-back-a-wfp-clickonce-application"><span class="icon"></span>Permalink</a></li>

              </ul><!--/.meta-list -->

              <div class="share">
                <span class="toggle">Share</span>
                <div class="widget">
                  <div class="short-link">
                    <p>Short URL<br>
                    <input type="text" readonly="" value="http://tmblr.co/Zpytvx16jp7Oh"></p>
                  </div>
                  <div class="share-links"><a target="_new" href="https://twitter.com/intent/tweet?url=http://tmblr.co/Zpytvx16jp7Oh" class="share-twitter">Twitter</a><a target="_new" href="https://www.facebook.com/sharer.php?u=http://truegeek.com/post/75930301995/manually-rolling-back-a-wfp-clickonce-application&t=Manually Rolling Back A WFP ClickOnce Application" class="share-facebook">Facebook</a><a target="_new" href="http://pinterest.com/pin/create/button/?url=http://truegeek.com/post/75930301995/manually-rolling-back-a-wfp-clickonce-application&media=" class="share-pinterest">Pinterest</a><a target="_new" href="https://plus.google.com/share?url=http://truegeek.com/post/75930301995/manually-rolling-back-a-wfp-clickonce-application" class="share-google">Google+</a></div>
                </div>
              </div>
            </div><!-- /.meta -->
          

          

          </div><!-- /.post-panel -->
          <div class="post-shadow"></div>
        </article><!-- /.post -->
      
        <article id="post-52138030215" class="post
          type-text 
          
          
          
          
          
          
          
          
          tag_WCF ">

          
            <div class="post-panel">
              <div class="copy">
                <h2 class="post-title">WCF Error: Could Not Register URL</h2>
                <p>When hosting WCF services from Visual Studio you may, as I recently did, come across this error:</p>
<p><em>HTTP could not register URL http://localhost:12345/Service1.svc Your process does not have access rights to this namespace (see <a href="http://go.microsoft.com/fwlink/?LinkId=70353">http://go.microsoft.com/fwlink/?LinkId=70353</a> for details).</em></p>
<p>The easy fix is to run Visual Studio as an administrator. The problem is you’ll just get this again if you don’t have the option to run your application as an administrator.</p>
<p>There is a <a href="http://stackoverflow.com/questions/885744/wcf-servicehost-access-rights" title="great StackOverflow post">great StackOverflow post</a> on how to manually register the WCF service outside of Visual Studio (or the app you are building) in Windows 7.</p>
<p>This worked great for me until I went to deploy to a Windows 2003 Citrix server. In Windows 7 you use netsh to register the WCF service. Windows 2003 does not have netsh, instead using HttpCfg.exe. HttpCfg.exe is a pain to figure out. Don’t bother. Just use PaulWh’s HttpNamespaceManager tool. It worked great for me on Windows 2003, my WCF service was up in running in no time!</p>
<p><a href="http://blogs.msdn.com/b/paulwh/archive/2007/05/04/addressaccessdeniedexception-http-could-not-register-url-http-8080.aspx" title="PaulWh's HttpNamespace Manager Tool">PaulWh’s HttpNamespace Manager Tool</a></p>
              </div>
          

          

          

          

          

          

          

          

          

          

          
            <div class="meta">
              <ul class="meta-list">

                
                  <li class="tags">
                    <ul class="tag-list">
                      
                        <li><a href="http://truegeek.com/tagged/WCF">#WCF</a></li>
                      
                    </ul>
                  </li>
                

                

                <li class="date">
                  <a href="http://truegeek.com/post/52138030215/wcf-error-could-not-register-url" title="Sat. February 19, 2011 @ 9:39 am">
                    <span class="icon"></span>3 years ago
                  </a>
                  
                </li>

                

                

                <li class="permalink"><a href="http://truegeek.com/post/52138030215/wcf-error-could-not-register-url"><span class="icon"></span>Permalink</a></li>

              </ul><!--/.meta-list -->

              <div class="share">
                <span class="toggle">Share</span>
                <div class="widget">
                  <div class="short-link">
                    <p>Short URL<br>
                    <input type="text" readonly="" value="http://tmblr.co/ZpytvxmZgpI7"></p>
                  </div>
                  <div class="share-links"><a target="_new" href="https://twitter.com/intent/tweet?url=http://tmblr.co/ZpytvxmZgpI7" class="share-twitter">Twitter</a><a target="_new" href="https://www.facebook.com/sharer.php?u=http://truegeek.com/post/52138030215/wcf-error-could-not-register-url&t=WCF Error: Could Not Register URL" class="share-facebook">Facebook</a><a target="_new" href="http://pinterest.com/pin/create/button/?url=http://truegeek.com/post/52138030215/wcf-error-could-not-register-url&media=" class="share-pinterest">Pinterest</a><a target="_new" href="https://plus.google.com/share?url=http://truegeek.com/post/52138030215/wcf-error-could-not-register-url" class="share-google">Google+</a></div>
                </div>
              </div>
            </div><!-- /.meta -->
          

          

          </div><!-- /.post-panel -->
          <div class="post-shadow"></div>
        </article><!-- /.post -->
      
        <article id="post-52138526871" class="post
          type-text 
          
          
          
          
          
          
          
          
          tag_code+contest ">

          
            <div class="post-panel">
              <div class="copy">
                <h2 class="post-title">Josephus&rsquo; Circle</h2>
                <p><span class="Apple-style-span"><span class="Apple-style-span">Here is my solution to the latest code contest from The Daily WTF,<a href="http://thedailywtf.com/Articles/Programming-Praxis-Josephus-Circle.aspx">Programming Praxis: Josephus’ Circle</a>.</span></span></p>
<p>What I like about this solution is that it represents in code, how the problem is actually carried out in real life. The soldiers are counted off one by one.</p>
<p>Also, I just LOVE .Net generics!</p>
<pre class="c-sharp">static int Josephus(int numSoldiers, int soldiersToSkip)
{

     // create soldiers
     List&lt;int&gt; Soldiers = new List&lt;int&gt;();
     for (int i = 0; i &lt; numSoldiers; i++)
     {
          Soldiers.Add(i);
     }

     // kill soldiers
     int iSoldier = 0;
     while (Soldiers.Count() &gt; 1)
     {

          // skip ahead by the requested number of soldiers
          iSoldier = iSoldier + soldiersToSkip;

          // if we've gone over, then wrap back around to the top
          while (iSoldier &gt; Soldiers.Count())
          {
               iSoldier -= Soldiers.Count();
          }

          // kill the choosen soldier
          Soldiers.RemoveAt(iSoldier - 1);
     }

     // return answer
     return Soldiers[0] - 1;

}</pre>
              </div>
          

          

          

          

          

          

          

          

          

          

          
            <div class="meta">
              <ul class="meta-list">

                
                  <li class="tags">
                    <ul class="tag-list">
                      
                        <li><a href="http://truegeek.com/tagged/code-contest">#code contest</a></li>
                      
                    </ul>
                  </li>
                

                

                <li class="date">
                  <a href="http://truegeek.com/post/52138526871/josephus-circle" title="Wed. July 29, 2009 @ 1:13 pm">
                    <span class="icon"></span>5 years ago
                  </a>
                  
                </li>

                

                

                <li class="permalink"><a href="http://truegeek.com/post/52138526871/josephus-circle"><span class="icon"></span>Permalink</a></li>

              </ul><!--/.meta-list -->

              <div class="share">
                <span class="toggle">Share</span>
                <div class="widget">
                  <div class="short-link">
                    <p>Short URL<br>
                    <input type="text" readonly="" value="http://tmblr.co/ZpytvxmZiiYN"></p>
                  </div>
                  <div class="share-links"><a target="_new" href="https://twitter.com/intent/tweet?url=http://tmblr.co/ZpytvxmZiiYN" class="share-twitter">Twitter</a><a target="_new" href="https://www.facebook.com/sharer.php?u=http://truegeek.com/post/52138526871/josephus-circle&t=Josephus&rsquo; Circle" class="share-facebook">Facebook</a><a target="_new" href="http://pinterest.com/pin/create/button/?url=http://truegeek.com/post/52138526871/josephus-circle&media=" class="share-pinterest">Pinterest</a><a target="_new" href="https://plus.google.com/share?url=http://truegeek.com/post/52138526871/josephus-circle" class="share-google">Google+</a></div>
                </div>
              </div>
            </div><!-- /.meta -->
          

          

          </div><!-- /.post-panel -->
          <div class="post-shadow"></div>
        </article><!-- /.post -->
      
        <article id="post-52138813726" class="post
          type-text 
          
          
          
          
          
          
          
          
          tag_performance tag_recursion tag_testing ">

          
            <div class="post-panel">
              <div class="copy">
                <h2 class="post-title">Performance Penatly of Recusive Calls</h2>
                <p><span class="Apple-style-span"><span class="Apple-style-span">The recent post on The DailyWTF has brought in many comments with people providing code samples in many different languages. The post, <a href="http://thedailywtf.com/Articles/Programming-Praxis-Russian-Peasant-Multiplication.aspx">Programming Praxis: Russian Peasant Multiplication</a>, offers a simple coding challenge.</span></span></p>
<p>The challenge screams for recursion and many of the answers in the comments went this route. Of course, when we talk recursion we always have to qualify it as saying there is a <a href="http://www.google.com/search?q=recursion+">performance penalty for using recursion</a>.</p>
<p>Using this Russian Multiplication challenge as an example, I’ve done some testing to see how much the penalty is.</p>
<p>I have three versions of the code:</p>
<p>The first version is the solution I came up with before reading the comments in on the DailyWTF. It uses recursion inside of an enclosure class to ease readability.</p>
<pre class="c-sharp">public long RussianMultiplication(long val1, long val2)
{
     long val2_first = 0;
     while (val1 != 1)
     {
          // divide val1 by half until it reaches 1
          val1 = Num1(val1);

          // multiple val2 by 2 until
          val2 = val2 * 2;

          // record the first instance of val2 being multiplied
          if (val2_first == 0)
          {
               val2_first = val2;
          }
     }

     // multiple the first value of val2 and the last value of val2
     return val2_first + val2;
}

private long Num1(long val)
{
     if (val == 1)
     {
          return 1;
     }
     else
     {
          return Math.Abs(val / 2);
     }
}
</pre>
<p>The second version is the same as the above, but uses no recursion at all:</p>
<p>public long RussianMultiplication(long val1, long val2)<br/>{</p>
<p>long val2_first = 0;<br/>while (val1&#160;!= 1)<br/>{</p>
<p>// divide val1 by half until it reaches 1<br/>val1 = Math.Abs(val1 / 2);</p>
<p>// multiple val2 by 2 until<br/>val2 = val2 * 2;</p>
<p>// record the first instance of val2 being multiplied<br/>if (val2_first == 0)<br/>{<br/>val2_first = val2;<br/>}</p>
<p>}</p>
<p>// multiple the first value of val2 and the last value of val2<br/>return val2_first + val2;</p>
<p>}</p>
<p>And the final version is done with full recursion. This is simply the <a href="http://thedailywtf.com/Comments/Programming-Praxis-Russian-Peasant-Multiplication.aspx#277788">first full (C#) recursion example from the comments on DailyWTF</a>:</p>
<p>public long RussianMultiplication(long val1, long val2)<br/>{</p>
<p>if (val1 &lt; 2)<br/>return (val1 == 1&#160;? val2&#160;: 0);<br/>if (val1&#160;% 2 == 1)<br/>return val2 + RussianMultiplication(val1 / 2, val2 * 2);<br/>return RussianMultiplication(val1 / 2, val2 * 2);</p>
<p>}</p>
<p>Let’s call the three examples Partial Recursion, No Recursion, and Full Recursion. To test them I put them each in a class in a C# console app and ran each through a loop having them multiple 1 x 999,999 through 999×999 x 1.</p>
<p>Over 5 runs, here are the averages:</p>
<p>Partial Recursion: 43&#160;ms<br/>No Recursion: 584&#160;ms<br/>Full Recursion: 218&#160;ms</p>
<p>Using No Recursion as a baseline, that shows a performance increase, not a performance decrease! Full Recursion only takes 37% of the time as No Recursion. Partial Recursion only takes 7% of the time.</p>
<p>While I’m happy to see my solution as the quickest, I have to admit that I’m a little surprised by the results. I’m tempted to dig into this further with some code analyzers.</p>
<p>However, I think the point is that there is no hard and fast rule about recursion. You can not rule out recursion because of a fear of a “performance penalty”. There is nothing that can replace testing the code and seeing the results.</p>
              </div>
          

          

          

          

          

          

          

          

          

          

          
            <div class="meta">
              <ul class="meta-list">

                
                  <li class="tags">
                    <ul class="tag-list">
                      
                        <li><a href="http://truegeek.com/tagged/performance">#performance</a></li>
                      
                        <li><a href="http://truegeek.com/tagged/recursion">#recursion</a></li>
                      
                        <li><a href="http://truegeek.com/tagged/testing">#testing</a></li>
                      
                    </ul>
                  </li>
                

                

                <li class="date">
                  <a href="http://truegeek.com/post/52138813726/performance-penatly-of-recusive-calls" title="Mon. July 27, 2009 @ 9:00 am">
                    <span class="icon"></span>5 years ago
                  </a>
                  
                </li>

                

                

                <li class="permalink"><a href="http://truegeek.com/post/52138813726/performance-penatly-of-recusive-calls"><span class="icon"></span>Permalink</a></li>

              </ul><!--/.meta-list -->

              <div class="share">
                <span class="toggle">Share</span>
                <div class="widget">
                  <div class="short-link">
                    <p>Short URL<br>
                    <input type="text" readonly="" value="http://tmblr.co/ZpytvxmZjoaU"></p>
                  </div>
                  <div class="share-links"><a target="_new" href="https://twitter.com/intent/tweet?url=http://tmblr.co/ZpytvxmZjoaU" class="share-twitter">Twitter</a><a target="_new" href="https://www.facebook.com/sharer.php?u=http://truegeek.com/post/52138813726/performance-penatly-of-recusive-calls&t=Performance Penatly of Recusive Calls" class="share-facebook">Facebook</a><a target="_new" href="http://pinterest.com/pin/create/button/?url=http://truegeek.com/post/52138813726/performance-penatly-of-recusive-calls&media=" class="share-pinterest">Pinterest</a><a target="_new" href="https://plus.google.com/share?url=http://truegeek.com/post/52138813726/performance-penatly-of-recusive-calls" class="share-google">Google+</a></div>
                </div>
              </div>
            </div><!-- /.meta -->
          

          

          </div><!-- /.post-panel -->
          <div class="post-shadow"></div>
        </article><!-- /.post -->
      
        <article id="post-52138849662" class="post
          type-text 
          
          
          
          
          
          
          
          
          tag_hiring tag_software+development ">

          
            <div class="post-panel">
              <div class="copy">
                <h2 class="post-title">Resume tip from Joel Spolsky</h2>
                <p>I’ve reviewed hundreds of resumes over the last few months and I’ve got to agree with Joel Spolsky’s <a href="http://www.joelonsoftware.com/items/2009/01/02b.html">latest resume tip</a>:</p>
<blockquote>
<p>When a startup CTO sees a resume that says things like:</p>
<ul><li>Responsible for $30m line of business</li>
<li>Architected new ERP platform</li>
<li>Managed team of 25 developers</li>
<li>Optimized business processes</li>
</ul><p>they think, “Spare me, that’s all we need, somebody running around trying to <em>manage </em>and <em>optimize</em> and<em>architect </em>when we just need someone who isn’t afraid to<em>write code</em>.” Here’s the stuff CTOs at startups want to see on a resume:</p>
<ul><li>Single-handedly developed robust 100,000 LOC threadsafe C++ service</li>
<li>Contributes to OpenBSD file system in spare time</li>
<li>Wrote almost 75% of the Python code running IsIt2009Yet.Com</li>
</ul></blockquote>
<p>A great tip. It’s no coincidence that I’m posting our startup’s developer openings at <a href="http://jobs.joelonsoftware.com/default.asp?4392">jobs.joelonsoftware.com</a>.</p>
              </div>
          

          

          

          

          

          

          

          

          

          

          
            <div class="meta">
              <ul class="meta-list">

                
                  <li class="tags">
                    <ul class="tag-list">
                      
                        <li><a href="http://truegeek.com/tagged/hiring">#hiring</a></li>
                      
                        <li><a href="http://truegeek.com/tagged/software-development">#software development</a></li>
                      
                    </ul>
                  </li>
                

                

                <li class="date">
                  <a href="http://truegeek.com/post/52138849662/resume-tip-from-joel-spolsky" title="Sat. January 3, 2009 @ 9:53 am">
                    <span class="icon"></span>6 years ago
                  </a>
                  
                </li>

                

                

                <li class="permalink"><a href="http://truegeek.com/post/52138849662/resume-tip-from-joel-spolsky"><span class="icon"></span>Permalink</a></li>

              </ul><!--/.meta-list -->

              <div class="share">
                <span class="toggle">Share</span>
                <div class="widget">
                  <div class="short-link">
                    <p>Short URL<br>
                    <input type="text" readonly="" value="http://tmblr.co/ZpytvxmZjxL_"></p>
                  </div>
                  <div class="share-links"><a target="_new" href="https://twitter.com/intent/tweet?url=http://tmblr.co/ZpytvxmZjxL_" class="share-twitter">Twitter</a><a target="_new" href="https://www.facebook.com/sharer.php?u=http://truegeek.com/post/52138849662/resume-tip-from-joel-spolsky&t=Resume tip from Joel Spolsky" class="share-facebook">Facebook</a><a target="_new" href="http://pinterest.com/pin/create/button/?url=http://truegeek.com/post/52138849662/resume-tip-from-joel-spolsky&media=" class="share-pinterest">Pinterest</a><a target="_new" href="https://plus.google.com/share?url=http://truegeek.com/post/52138849662/resume-tip-from-joel-spolsky" class="share-google">Google+</a></div>
                </div>
              </div>
            </div><!-- /.meta -->
          

          

          </div><!-- /.post-panel -->
          <div class="post-shadow"></div>
        </article><!-- /.post -->
      
        <article id="post-55713893182" class="post
          
          
          
          
          type-link 
          
          
          
          
          ">

          

          

          

          

          
            <div class="post-panel">
              <div class="copy">
                <h2 class="post-title"><a href="http://www.4guysfromrolla.com/webtech/051601-1.shtml" >Use VB&#039;s Powerful Format Function through ASP - 4GuysFromRolla.com<span class="icon"></span></a></h2>
                <blockquote class="link_og_blockquote">
<div>An article I wrote for 4GuysFromRolla.com on using VB, through COM, in ASP.</div>
</blockquote>
              </div>
          

          

          

          

          

          

          
            <div class="meta">
              <ul class="meta-list">

                

                

                <li class="date">
                  <a href="http://truegeek.com/post/55713893182/use-vbs-powerful-format-function-through-asp" title="Wed. May 16, 2001 @ 12:00 am">
                    <span class="icon"></span>13 years ago
                  </a>
                  
                </li>

                

                

                <li class="permalink"><a href="http://truegeek.com/post/55713893182/use-vbs-powerful-format-function-through-asp"><span class="icon"></span>Permalink</a></li>

              </ul><!--/.meta-list -->

              <div class="share">
                <span class="toggle">Share</span>
                <div class="widget">
                  <div class="short-link">
                    <p>Short URL<br>
                    <input type="text" readonly="" value="http://tmblr.co/Zpytvxpupei_"></p>
                  </div>
                  <div class="share-links"><a target="_new" href="https://twitter.com/intent/tweet?url=http://tmblr.co/Zpytvxpupei_" class="share-twitter">Twitter</a><a target="_new" href="https://www.facebook.com/sharer.php?u=http://truegeek.com/post/55713893182/use-vbs-powerful-format-function-through-asp" class="share-facebook">Facebook</a><a target="_new" href="http://pinterest.com/pin/create/button/?url=http://truegeek.com/post/55713893182/use-vbs-powerful-format-function-through-asp&media=" class="share-pinterest">Pinterest</a><a target="_new" href="https://plus.google.com/share?url=http://truegeek.com/post/55713893182/use-vbs-powerful-format-function-through-asp" class="share-google">Google+</a></div>
                </div>
              </div>
            </div><!-- /.meta -->
          

          

          </div><!-- /.post-panel -->
          <div class="post-shadow"></div>
        </article><!-- /.post -->
      
      <!-- END POSTS -->

      

      

      

    </div><!-- /#content -->

    <!-- SIDEBAR -->
      <div id="sidebar">
        <div id="blog-info" class="side-box">
          
            
          

          

          

          
            <div class="description">
              
              <img class="portrait" src="http://33.media.tumblr.com/avatar_629a900f1555_64.png" alt="Avatar"/>
              Atlanta area .Net developer
            </div><!--/.description-->
          
        </div><!--/#blog-info -->

        
          <div id="search">
            <form id="search-form" method="get" action="/search">
              <span class="left"></span>
              <input type="text" name="q" value="Search" />
              <span class="right"></span>
            </form>
          </div>
        

        
          
            <div class="side-box ruled-top">
              <h2>Pages</h2>
              <ul class="pages">
                
                  <li><a href="/devblog">home</a></li>
                
                  <li><a href="/about">about me</a></li>
                
                  <li><a href="/projects">projects</a></li>
                
              </ul>
            </div>
          
        

        
          <div class="side-box ruled-top">
            <h2>Me, Elsewhere</h2>
            <ul id="socialize">
              
              
              
              
              
              
              <li class="facebook"><a href="http://www.facebook.com/BradleyDean" title="Facebook Profile">Facebook Profile</a></li>
              <li class="vimeo"><a href="http://www.vimeo.com/TrueGeek" title="TrueGeek on Vimeo">TrueGeek on Vimeo</a></li>
              
              
              
              
              
              
              
              
              
              
              
              <li class="google"><a href="http://www.google.com/profiles/TBradleyDean" title="Google">Google</a></li>
              
              <li class="linkedin"><a href="http://www.linkedin.com/in/tbradleydean/" title="Linkedin Profile">Linkedin Profile</a></li>
              <li class="github"><a href="http://github.com/TrueGeek" title="TrueGeek on github">TrueGeek on github</a></li>
              <li class="xbox"><a href="https://live.xbox.com/en-US/Profile?GamerTag=Gogrilla" title="Xbox Live Profile">Xbox Live Profile</a></li>
              
            </ul>
          </div>
        

        <div id="tabs">
          <div id="tabs-nav">
            
            <h2><span id="tab-instagram">Instagram</span></h2>
          </div>

          

          
            
              <div id="instagram" class="side-box tab">
                <p class="loading-text">loading photos&hellip;</p>
              </div>
            
          
        </div><!-- close TABS -->

        

        

        

      </div><!-- /#sidebar -->
    

    

    <div id="footer">
      

      <div id="footer-end" class="ruled-top">
        <div class="footer-copy">
          <ul id="footer-links">
            <li><a href="/rss">RSS</a></li>
            <li><a href="/random">Random</a></li>
            <li><a href="/archive">Archive</a></li>
            
            
            <li><a href="/mobile">Mobile</a></li>
          </ul>
          <p class="copyright">&copy; Bradley Dean.</p>
        </div>
        <div class="pixel-union"><a href="http://www.tumblr.com/theme/17403"><strong>Effector Theme</strong></a> by <a class="logo" href="http://www.pixelunion.net">Pixel Union</a></div>
      </div><!-- /#footer-end -->
    </div><!-- /#footer -->
  </div><!-- /#page -->

  <!-- Footer Scripts -->

  <script>
    function recent_tweets(data){window.tweet_data=data;}
  </script>

  <script src="/tweets.js"></script>

  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

  <script>window.jQuery || document.write('<script src="http://static.tumblr.com/hugxd2w/s4om61ic8/jquery-1.7.2.min.js"><\/script>')</script>

  
    <script src="http://static.tumblr.com/hugxd2w/ATsmz3ynm/script.js" type="text/javascript"></script>
  

  <script src="http://platform.twitter.com/widgets.js"></script>

  <script src="https://apis.google.com/js/plusone.js" type="text/javascript"></script>

  
    <script type="text/javascript">
      var _gaq=[["_setAccount","UA-6868925-1"],["_trackPageview"]];
      (function(d,t){
        var g=d.createElement(t), s=d.getElementsByTagName(t)[0];
        g.async=1;
        g.src=("https:"==location.protocol?"//ssl":"//www")+".google-analytics.com/ga.js";
        s.parentNode.insertBefore(g,s)
      }(document,"script"));
    </script>
  

  
<!-- BEGIN TUMBLR CODE --><iframe scrolling="no" width="1" height="1" frameborder="0" style="background-color:transparent; overflow:hidden; position:absolute; top:0; left:0; z-index:9999;" id="ga_target"></iframe><script type="text/javascript">
    (function(){
        var analytics_frame = document.getElementById('ga_target');
        var analytics_iframe_loaded;
        var user_logged_in;
        var blog_is_nsfw = 'No';
        var addthis_enabled = true;

        var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
        var eventer = window[eventMethod];
        var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";
        eventer(messageEvent,function(e) {
            var message = (e.data && e.data.split) ? e.data.split(';') : '';
            switch (message[0]) {
                case 'analytics_iframe_loaded':
                    analytics_iframe_loaded = true;
                    postCSMessage();
                    postGAMessage();
                    postATMessage();
                    break;
                case 'user_logged_in':
                    user_logged_in = message[1];
                    postGAMessage();
                    postATMessage();
                    break;
            }
        }, false);

        analytics_frame.src = "https://secure.assets.tumblr.com/analytics.html?a57a7a4b4579d695d8e64bdfee554a5e#http://truegeek.com";
        function postGAMessage() {
            if (analytics_iframe_loaded && user_logged_in) {
                var is_ajax = false;
                analytics_frame.contentWindow.postMessage(['tick_google_analytics', is_ajax, user_logged_in, blog_is_nsfw, '/?route=%2F'].join(';'), analytics_frame.src.split('/analytics.html')[0]);
            }
        }
        function postCSMessage() {
            COMSCORE = true;
            analytics_frame.contentWindow.postMessage('enable_comscore;' + window.location, analytics_frame.src.split('/analytics.html')[0]);
        }
        function postATMessage() {
            if (addthis_enabled && analytics_iframe_loaded) {
                analytics_frame.contentWindow.postMessage('enable_addthis', analytics_frame.src.split('/analytics.html')[0]);
            }
        }
    })();
</script><script type="text/javascript">!function(s){s.src='https://www.tumblr.com/impixu?T=1421670834&J=eyJ0eXBlIjoidXJsIiwidXJsIjoiaHR0cDpcL1wvdHJ1ZWdlZWsuY29tXC8iLCJyZXF0eXBlIjowLCJyb3V0ZSI6IlwvIn0=&U=LJJOJKCAAH&K=062d213cd9ee2c8a73c0dce1a901785e9c1672873f7535eb4d9c865d693dfb3a&R='.replace(/&R=[^&$]*/,'').concat('&R='+escape(document.referrer)).slice(0,2000).replace(/%.?.?$/,'');}(new Image());</script><noscript><img style="position:absolute;z-index:-3334;top:0px;left:0px;visibility:hidden;" src="https://www.tumblr.com/impixu?T=1421670834&J=eyJ0eXBlIjoidXJsIiwidXJsIjoiaHR0cDpcL1wvdHJ1ZWdlZWsuY29tXC8iLCJyZXF0eXBlIjowLCJyb3V0ZSI6IlwvIiwibm9zY3JpcHQiOjF9&U=LJJOJKCAAH&K=fdc5ca52f806e10553356b7992f4cac34f61d653c9ced159e298f9b3b2dda1da&R="></noscript><script>
        (function (w,d) {
            'use strict';
            var l = function(el, type, listener, useCapture) {
                el.addEventListener ?
                el.addEventListener(type, listener, !!useCapture) :
                el.attachEvent && el.attachEvent('on' + type, listener, !!useCapture);
            };
            var a = function () {
                                if (d.getElementById('tumblr-cdx')) {
                    return;
                }
                var s = d.createElement('script');
                var el = d.getElementsByTagName('script')[0];
                s.async = true;
                s.src = 'http://assets.tumblr.com/assets/scripts/vendor/cedexis/cedexis.radar.min.js?_v=1360de60c9b05c6a55bd6a6e510e1699';
                s.type = 'text/javascript';
                s.id = 'tumblr-cdx';
                d.body.appendChild(s);
            };
            l(w,'load',a);
        }(window, document));
</script><script type="text/javascript">!function(s){s.src='https://www.tumblr.com/impixu?T=1421670834&J=eyJ0eXBlIjoicG9zdCIsInVybCI6Imh0dHA6XC9cL3RydWVnZWVrLmNvbVwvIiwicmVxdHlwZSI6MCwicm91dGUiOiJcLyIsInBvc3RzIjpbeyJwb3N0aWQiOiI5NzI2NzM3OTU4NCIsImJsb2dpZCI6IjExNTUxMjQxIiwic291cmNlIjozM30seyJwb3N0aWQiOiI3NjI0NjY2NTkyNyIsImJsb2dpZCI6IjExNTUxMjQxIiwic291cmNlIjozM30seyJwb3N0aWQiOiI3NTkzMDMwMTk5NSIsImJsb2dpZCI6IjExNTUxMjQxIiwic291cmNlIjozM30seyJwb3N0aWQiOiI1MjEzODAzMDIxNSIsImJsb2dpZCI6IjExNTUxMjQxIiwic291cmNlIjozM30seyJwb3N0aWQiOiI1MjEzODUyNjg3MSIsImJsb2dpZCI6IjExNTUxMjQxIiwic291cmNlIjozM30seyJwb3N0aWQiOiI1MjEzODgxMzcyNiIsImJsb2dpZCI6IjExNTUxMjQxIiwic291cmNlIjozM30seyJwb3N0aWQiOiI1MjEzODg0OTY2MiIsImJsb2dpZCI6IjExNTUxMjQxIiwic291cmNlIjozM30seyJwb3N0aWQiOiI1NTcxMzg5MzE4MiIsImJsb2dpZCI6IjExNTUxMjQxIiwic291cmNlIjozM31dfQ==&U=CHFLKEONFJ&K=11ce37895cf53308881f30169361394c6550fd1dd510b56e472e17da1fa90067&R='.replace(/&R=[^&$]*/,'').concat('&R='+escape(document.referrer)).slice(0,2000).replace(/%.?.?$/,'');}(new Image());</script><noscript><img style="position:absolute;z-index:-3334;top:0px;left:0px;visibility:hidden;" src="https://www.tumblr.com/impixu?T=1421670834&J=eyJ0eXBlIjoicG9zdCIsInVybCI6Imh0dHA6XC9cL3RydWVnZWVrLmNvbVwvIiwicmVxdHlwZSI6MCwicm91dGUiOiJcLyIsInBvc3RzIjpbeyJwb3N0aWQiOiI5NzI2NzM3OTU4NCIsImJsb2dpZCI6IjExNTUxMjQxIiwic291cmNlIjozM30seyJwb3N0aWQiOiI3NjI0NjY2NTkyNyIsImJsb2dpZCI6IjExNTUxMjQxIiwic291cmNlIjozM30seyJwb3N0aWQiOiI3NTkzMDMwMTk5NSIsImJsb2dpZCI6IjExNTUxMjQxIiwic291cmNlIjozM30seyJwb3N0aWQiOiI1MjEzODAzMDIxNSIsImJsb2dpZCI6IjExNTUxMjQxIiwic291cmNlIjozM30seyJwb3N0aWQiOiI1MjEzODUyNjg3MSIsImJsb2dpZCI6IjExNTUxMjQxIiwic291cmNlIjozM30seyJwb3N0aWQiOiI1MjEzODgxMzcyNiIsImJsb2dpZCI6IjExNTUxMjQxIiwic291cmNlIjozM30seyJwb3N0aWQiOiI1MjEzODg0OTY2MiIsImJsb2dpZCI6IjExNTUxMjQxIiwic291cmNlIjozM30seyJwb3N0aWQiOiI1NTcxMzg5MzE4MiIsImJsb2dpZCI6IjExNTUxMjQxIiwic291cmNlIjozM31dLCJub3NjcmlwdCI6MX0=&U=CHFLKEONFJ&K=8fa15aed2f6cc6e4338f4015482d71cbb68d528de2b986649eafced886afb18d&R="></noscript><script>
                (function() {
                    var s = document.createElement('script');
                    var el = document.getElementsByTagName('script')[0];
                                            s.src = ('https:' == document.location.protocol ? 'https://s' : 'http://l') + '.yimg.com/ss/rapid-3.18.1.js';
                                        s.onload = function(){
                        var YAHOO = window.YAHOO;
                        if (YAHOO) {
                            var keys = {
                                pd:'/',
                                _li:0,
                                b_id:11551241,
                                i_rad:0,
                                i_strm:0
                            };
                            var conf = {
                                                                spaceid:1197716038,
                                client_only:1,
                                yql_enabled:false,
                                keys:keys,
                                nol:1
                            };
                            YAHOO.rapid = new YAHOO.i13n.Rapid(conf);
                        }
                    };
                    el.parentNode.insertBefore(s, el);
                })();
            </script><script>
        (function (w,d) {
            'use strict';
            var l = function(el, type, listener, useCapture) {
                el.addEventListener ?
                el.addEventListener(type, listener, !!useCapture) :
                el.attachEvent && el.attachEvent('on' + type, listener, !!useCapture);
            };
            var a = function () {
                                if (d.getElementById('tumblr-cdx')) {
                    return;
                }
                var s = d.createElement('script');
                var el = d.getElementsByTagName('script')[0];
                s.async = true;
                s.src = 'http://assets.tumblr.com/assets/scripts/vendor/cedexis/cedexis.radar.min.js?_v=1360de60c9b05c6a55bd6a6e510e1699';
                s.type = 'text/javascript';
                s.id = 'tumblr-cdx';
                d.body.appendChild(s);
            };
            l(w,'load',a);
        }(window, document));
</script><iframe id="tumblr_controls" class="tumblr_controls" width="1" height="1" frameborder="0" scrolling="no" src="https://secure.assets.tumblr.com/assets/html/iframe/o.html?_v=4e19f8334545049f61ead7ecd1d9f7e3#src=http%3A%2F%2Ftruegeek.com%2F&amp;lang=en_US&amp;name=truegeek&amp;brag=false&amp;avatar=http%3A%2F%2F33.media.tumblr.com%2Favatar_629a900f1555_64.png&amp;title=Bradley+Dean&amp;url=http%3A%2F%2Ftruegeek.com%2F&amp;page_slide=slide"></iframe><div id="teaser_iframe_container" style="display:none;"><iframe scrolling="no" frameborder="0" src="http://assets.tumblr.com/assets/html/iframe/teaser.html?_v=80f0c40f3a98c2aa2dacbd72091970c6#src=http%3A%2F%2Ftruegeek.com%2F&amp;lang=en_US&amp;name=truegeek&amp;brag=false&amp;avatar=http%3A%2F%2F33.media.tumblr.com%2Favatar_629a900f1555_64.png&amp;title=Bradley+Dean&amp;url=http%3A%2F%2Ftruegeek.com%2F&amp;page_slide=slide" id="teaser_iframe" width="1" height="1"></iframe></div><script type="text/javascript">
    (function(Tumblr){
        var follow_iframe_initialized = false;
        if (Tumblr.FollowTeaser && Tumblr.PostMessageListener) {
            // Don't do anything until the first initialize event
            Tumblr.PostMessageListener.initialize(function(message, origin) {
                if (follow_iframe_initialized || message.length < 2) return;

                if (message[0] === 'follow_iframe' && message[1] === 'enable') {
                    Tumblr.FollowTeaser.current_page = 1;
                    Tumblr.FollowTeaser.infer_infinite_scroll = true;
                    Tumblr.FollowTeaser.create_from_tumblr_controls("http:\/\/assets.tumblr.com\/assets\/html\/iframe\/follow.html?_v=6ad66d3f93bc0f210c199213011bb20a");
                    Tumblr.FollowTeaser.scroll_listener(true);
                    follow_iframe_initialized = true;
                }
            });
        }
    })(this.Tumblr || (this.Tumblr = {}));
</script><!--[if IE]><script type="text/javascript">document.getElementById('tumblr_controls').allowTransparency=true;</script><![endif]--><!-- END TUMBLR CODE -->

</body>
</html>
