<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom">
    <title type="text">I don&#39;t want to get off on a rant here, but....</title>
    <subtitle type="html">Technology, Programming, Complaints, etc.</subtitle>
    <updated>2015-03-07T18:36:30Z</updated>
    <id>tag:example.org,2003:3</id>
    <link rel="alternate" type="text/html" hreflang="en" href="http://blog.web20studios.com" />
    <link rel="self" type="application/atom+xml" href="http://blog.web20studios.com/feeds/atom.xml" />
    <rights>Copyright (c) 2008, Matt Dragon</rights>

    <generator uri="http://blog.web20studios.com" version="0.8">
        Bloog for AppEngine
    </generator>

    
    <entry>
        <title>Go for App Engine json and datastore tags</title>
        <link rel="alternate" type="text/html" href="http://blog.web20studios.com/2015/3/Go-for-App-Engine-json-and-datastore-tags" />

        <id>http://blog.web20studios.com/2015/3/Go-for-App-Engine-json-and-datastore-tags</id>

        <updated>2015-03-07T18:36:30Z</updated>
        <published>2015-03-07T18:36:30Z</published>

        <author>
            <name>Matt Dragon</name>
            <uri>http://blog.web20studios.com</uri>
        </author>

        <content type="xhtml" xml:lang="en" xml:base="http://blog.web20studios.com">
            <div xmlns="http://www.w3.org/1999/xhtml">
                If you&#39;re working with Go as a backed on App Engine you&#39;re going to want to make some Entity properties not store to the datastore as well has having a custom json field name.  The silent failure case is if you use commas to separate them like this:
`json:&quot;attendees&quot;, datastore:&quot;-&quot;

Instead there should be no comma just a space
`json:&quot;attendees&quot; datastore:&quot;-&quot;
            </div>
        </content>
    </entry>
    
    <entry>
        <title>Ember.js confusing errors and &quot;magic&quot; functionality</title>
        <link rel="alternate" type="text/html" href="http://blog.web20studios.com/2014/6/Emberjs-confusing-errors-and-magic-functionality" />

        <id>http://blog.web20studios.com/2014/6/Emberjs-confusing-errors-and-magic-functionality</id>

        <updated>2014-06-20T12:42:16Z</updated>
        <published>2014-06-20T12:41:31Z</published>

        <author>
            <name>Matt Dragon</name>
            <uri>http://blog.web20studios.com</uri>
        </author>

        <content type="xhtml" xml:lang="en" xml:base="http://blog.web20studios.com">
            <div xmlns="http://www.w3.org/1999/xhtml">
                If in ember.js you&#39;re getting errors like &quot;TypeError: Cannot call method &#39;unchain&#39; of undefined&quot; and you get them when you try to navigate away from a route to another route. The problem may be&amp;amp;nbsp;&lt;a href=&quot;https://github.com/emberjs/ember.js/commit/fc4df510ffcd37cb185d3521c58e22881e09218d#diff-4ac32a78649ca5bdd8e0ba38b7006a1eR8&quot;&gt;this feature&lt;/a&gt;&amp;amp;nbsp;which makes model properties that start with capital letters lookup on the Ember.lookup which is basically the window object, making them act like a global property.&lt;div&gt;&lt;br /&gt;&lt;div&gt;The confusing part is it works to build the view, data is there, behavior is as expected, it just blows up when you try to leave the route.&amp;amp;nbsp;&lt;span style=&quot;line-height: 1.22;&quot;&gt;This may just be when using the property in an if block helper.&amp;amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;With Go as my JSON source all my properties are coming capitalized from the server, and only one Route had this issue.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;So the solution is to make the property be lower case. &amp;amp;nbsp;This can just be a dynamic property that aliases the Uppercase to uppercase, since it&#39;s a handlebars feature, it wouldn&#39;t impact your JS code using Ember.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;And credit to &lt;span&gt;this &lt;a href=&quot;http://stackoverflow.com/questions/20299429/if-statement-causes-tpyeerror-cannont-call-unchain-of-undefined&quot;&gt;Stack Overflow answer&lt;/a&gt;&lt;/span&gt; that got me to the change and the solution.&lt;/div&gt;&lt;/div&gt;
            </div>
        </content>
    </entry>
    
    <entry>
        <title>MS tooling loves to break stuff in new, random, and unexpected ways</title>
        <link rel="alternate" type="text/html" href="http://blog.web20studios.com/2014/4/MS-tooling-loves-to-break-stuff-in-new-random-and-unexpected-ways" />

        <id>http://blog.web20studios.com/2014/4/MS-tooling-loves-to-break-stuff-in-new-random-and-unexpected-ways</id>

        <updated>2014-04-29T01:42:35Z</updated>
        <published>2014-04-29T01:42:35Z</published>

        <author>
            <name>Matt Dragon</name>
            <uri>http://blog.web20studios.com</uri>
        </author>

        <content type="xhtml" xml:lang="en" xml:base="http://blog.web20studios.com">
            <div xmlns="http://www.w3.org/1999/xhtml">
                &lt;p&gt;If you are getting an error starting with &quot;$(ReplacableToken&quot; then 
some string identifier from your code then finishing &quot;-Web.config 
Connection String_0)&quot; it means that the deploy task is is maiming your 
Web.config trying to customize it for the environment.&amp;amp;nbsp; To disable this 
pointless on by default behavior that makes no sense for MS to do when 
no replacements have been defined for the tokens it&#39;s creating.... do 
the following;&lt;/p&gt;&lt;p&gt;Don&#39;t fall for the trick of creating more files to 
make MS leave your existing files alone, just add the flag to the 
existing csproj file&lt;span style=&quot;line-height: 1.22;&quot;&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;h3 id=&quot;MS,keepyourhandsoffmyWebconfig-Preventtokenizingconnectionstrings&quot;&gt;Prevent tokenizing connection strings&lt;/h3&gt;&lt;p&gt;If
 you want to prevent your web.config connection strings from being 
tokenized it’s pretty easy. All we need to do is the add a property to 
the build/package/publish process. We can do that in 2 ways. Edit the 
project file itself or create a file with the name 
{ProjectName}.wpp.targets where {ProjectName} is the name of your 
project. The second approach is easier so I use that. In my case it 
would be MvcApplication1.wpp.targets. The contents of the file are shown
 below...&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/b/webdev/archive/2010/11/10/asp-net-web-application-publish-package-tokenizing-parameters.aspx&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;http://blogs.msdn.com/b/webdev/archive/2010/11/10/asp-net-web-application-publish-package-tokenizing-parameters.aspx&lt;/a&gt;&lt;/p&gt;
            </div>
        </content>
    </entry>
    
    <entry>
        <title>mod_ssl attacking Subversion clients, demanding client certificates</title>
        <link rel="alternate" type="text/html" href="http://blog.web20studios.com/2012/1/mod_ssl-attacking-Subversion-clients-demanding-client-certificates" />

        <id>http://blog.web20studios.com/2012/1/mod_ssl-attacking-Subversion-clients-demanding-client-certificates</id>

        <updated>2012-01-30T16:10:05Z</updated>
        <published>2012-01-30T16:10:05Z</published>

        <author>
            <name>Matt Dragon</name>
            <uri>http://blog.web20studios.com</uri>
        </author>

        <content type="xhtml" xml:lang="en" xml:base="http://blog.web20studios.com">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Over the weekend upgraded to Subversion 1.7.2, Apache 2.2.21 (which contains mod_ssl&amp;amp;nbsp;2.2.21). &amp;amp;nbsp;Everything worked great browsing the repository from a browser. &amp;amp;nbsp;Problems started as soon as svn command line or TortoiseSVN were used. &amp;amp;nbsp;Client Certificate prompts all over the place, sometimes cancelling worked, sometimes it caused the attempt to fail, general annoyance and stupidity across the board.
      &lt;br /&gt;&lt;div&gt;Verified 100 times that &quot;SSLVerifyClient none&quot; was set, moved it to vhost and directory levels as well, no dice. &amp;amp;nbsp;I could break browser access by setting it to require. &amp;amp;nbsp;Nothing worked to config it away, so I put back the old 2.2.15 mod_ssl file and bam, everything works like a charm again. &amp;amp;nbsp;It looks like there were some recent mod_ssl changes around optional at the server level prevented required at a lower level... it seems this went too far for some clients. &amp;amp;nbsp;Since 2.2.21 has been in the wild for a long time I&#39;m guessing this only impacts the SVN HTTP library, since browsers work fine, and that would have caused a whole lot of rioting on the internet if browsers broke from the change.&lt;/div&gt;
            </div>
        </content>
    </entry>
    
    <entry>
        <title>You can have the Session but you have to know the secret knock</title>
        <link rel="alternate" type="text/html" href="http://blog.web20studios.com/2011/8/You-can-have-the-Session-but-you-have-to-know-the-secret-knock" />

        <id>http://blog.web20studios.com/2011/8/You-can-have-the-Session-but-you-have-to-know-the-secret-knock</id>

        <updated>2011-08-12T21:29:40Z</updated>
        <published>2011-08-12T21:29:40Z</published>

        <author>
            <name>Matt Dragon</name>
            <uri>http://blog.web20studios.com</uri>
        </author>

        <content type="xhtml" xml:lang="en" xml:base="http://blog.web20studios.com">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Was very perplexed by this issue, context was fine, but context.Session was null, until finding &lt;a href=&quot;http://stackoverflow.com/questions/1058568/asp-net-how-to-access-session-from-handler/1058598#1058598&quot;&gt;this StackOverflow post&lt;/a&gt;.&lt;br /&gt;&lt;div&gt;One better though if you don&#39;t need to write context.Session is to implement: System.Web.SessionState.IReadOnlySessionState instead, which is probably somehow cheaper.&lt;/div&gt;
            </div>
        </content>
    </entry>
    
    <entry>
        <title>At least they support options</title>
        <link rel="alternate" type="text/html" href="http://blog.web20studios.com/2011/6/At-least-they-support-options" />

        <id>http://blog.web20studios.com/2011/6/At-least-they-support-options</id>

        <updated>2011-06-02T12:02:12Z</updated>
        <published>2011-06-02T12:00:49Z</published>

        <author>
            <name>Matt Dragon</name>
            <uri>http://blog.web20studios.com</uri>
        </author>

        <content type="xhtml" xml:lang="en" xml:base="http://blog.web20studios.com">
            <div xmlns="http://www.w3.org/1999/xhtml">
                &lt;div&gt;&quot;... will offer a choice of database services, including MySQL and the NoSQL system MongoDB. It also will offer MongoDB and Redis open source systems...&quot;&amp;amp;nbsp;from Information Week&#39;s print article &quot;VMWare Platform Takes It Deeper Into Cloud.&quot;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;At least they have fixed it in the &lt;span&gt;&lt;a href=&quot;http://www.informationweek.com/news/cloud-computing/platform/229401383&quot;&gt;online version&lt;/a&gt;&lt;/span&gt;, though it&#39;s published under a different title. It&#39;s always funny to me that they can be so wrong technically while being so wrong editorially as well.&lt;br /&gt;&lt;/div&gt;
            </div>
        </content>
    </entry>
    
    <entry>
        <title>Troubleshooting slow ASP pages</title>
        <link rel="alternate" type="text/html" href="http://blog.web20studios.com/2011/3/Troubleshooting-slow-ASP-pages" />

        <id>http://blog.web20studios.com/2011/3/Troubleshooting-slow-ASP-pages</id>

        <updated>2011-03-18T21:50:28Z</updated>
        <published>2011-03-18T21:34:14Z</published>

        <author>
            <name>Matt Dragon</name>
            <uri>http://blog.web20studios.com</uri>
        </author>

        <content type="xhtml" xml:lang="en" xml:base="http://blog.web20studios.com">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Since I&#39;ve always wondered about this and never bothered to figure it out before....&lt;div&gt;In IIS 6 logs, the timetaken value represents the &lt;strong&gt;entire&lt;/strong&gt;&amp;amp;nbsp;time that IIS was touching the request. This at the very least includes time after IIS got the request, but is waiting to hand it off to ASP/ASP.Net for processing. It may also include time spend sending the bytes back to the client, but I don&#39;t have big enough data or slow enough networks to really answer that question well.
   &lt;br /&gt;&lt;br /&gt;&lt;div&gt;This does make a certain amount of sense. It&#39;s an web server log, not a web framework log, but it makes trying to troubleshoot &quot;slow&quot; pages really, really hard. We can&#39;t run multiple workers because it breaks classic ASP Session. &amp;amp;nbsp;So everything just queues up every time there&#39;s a long running request. &amp;amp;nbsp;So given a page with a large timetaken in the log, did that page really run for a long time? Or was it sitting on a queue waiting on another page that was running slowly? &amp;amp;nbsp;Sure the first page in order that was slow is prob. the root cause of all the following slowness, but how does one determine that root page?&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;What would be ideal would be separate timequeued, timeprocessing, timenetwork type columns... maybe those exist in IIS 7.... of course that would require getting our classic ASP certified for Windows 2008.&lt;/div&gt;
            </div>
        </content>
    </entry>
    
    <entry>
        <title>Dear Information Week please just let me go</title>
        <link rel="alternate" type="text/html" href="http://blog.web20studios.com/2011/3/Dear-InformationWeek-please-just-let-me-go" />

        <id>http://blog.web20studios.com/2011/3/Dear-InformationWeek-please-just-let-me-go</id>

        <updated>2012-01-24T20:57:37Z</updated>
        <published>2011-03-15T01:14:26Z</published>

        <author>
            <name>Matt Dragon</name>
            <uri>http://blog.web20studios.com</uri>
        </author>

        <content type="xhtml" xml:lang="en" xml:base="http://blog.web20studios.com">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Since cancelling my free subscription Information Week can no longer afford to fact check... oh wait, &lt;a href=&quot;http://blog.web20studios.com/2009/5/Information-Week-needs-to-fact-check-instead-of-cashing-their-Intel-checks&quot;&gt;they never did that before either&lt;/a&gt;. Their latest flub that jumped off&lt;span&gt; &lt;a href=&quot;http://www.informationweek.com/cloud-computing/article/showArticle.jhtml?articleID=229205500&quot;&gt;the page&lt;/a&gt;&lt;/span&gt; at me &quot;...Java&#39;s JSON-based...&quot; wait, what? Java&#39;s JSON? Pretty sure that&#39;s not the case and a 2 second Google confirms, &quot;JSON&amp;amp;nbsp;(JavaScript Object Notation) is a lightweight data-interchange format...&quot;&amp;amp;nbsp;wow,&amp;amp;nbsp;&lt;a href=&quot;http://json.org&quot;&gt;that was hard&lt;/a&gt;.&amp;amp;nbsp;Of course it&#39;s not the&amp;amp;nbsp;&lt;span&gt;&lt;a href=&quot;http://blog.web20studios.com/2009/5/Information-Week-needs-to-fact-check-instead-of-cashing-their-Intel-checks&quot;&gt;first time&lt;/a&gt;&lt;/span&gt;, and I&#39;m sure it won&#39;t be the last.&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;I&#39;ve ignored the renewal emails, for months, but the quality of reporting is so low, it doesn&#39;t really shock me that they can&#39;t manage to end my subscription either. I guess correctness doesn&#39;t matter nearly as much as number of eyes on the page when you&#39;re pitching to management types.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;And just to get out ahead of Information Week&#39;s next mis-statement, &quot;The final choice of name caused confusion, giving the impression that the language was a spin-off of the Java programming language.&quot; So, no, Information Week &lt;a href=&quot;http://en.wikipedia.org/wiki/JavaScript&quot;&gt;JavaScript has nothing to do with Java&lt;/a&gt;. Let me know when I can expect my Researcher check in the mail.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
            </div>
        </content>
    </entry>
    
    <entry>
        <title>SQL Server object_name still takes int value for object_id</title>
        <link rel="alternate" type="text/html" href="http://blog.web20studios.com/2010/7/SQL-Server-object_name-still-takes-int-value-for-object_id" />

        <id>http://blog.web20studios.com/2010/7/SQL-Server-object_name-still-takes-int-value-for-object_id</id>

        <updated>2010-07-15T19:40:23Z</updated>
        <published>2010-07-15T19:24:45Z</published>

        <author>
            <name>Matt Dragon</name>
            <uri>http://blog.web20studios.com</uri>
        </author>

        <content type="xhtml" xml:lang="en" xml:base="http://blog.web20studios.com">
            <div xmlns="http://www.w3.org/1999/xhtml">
                If you&#39;re using the, not so new anymore, DMVs and pulling any bigints like resource_associated_entity_id you&#39;ll get an&amp;amp;nbsp;arithmetic&amp;amp;nbsp;overflow if you try to pass this value to object_name, because the object_id param to the function is still defined as int even in SQL Server 2008.&lt;div&gt;&lt;br /&gt;&lt;div&gt;For example if you&#39;re looking at sys.dm_tran_locks to see what locks can&#39;t be granted during a block you need to only pass the&amp;amp;nbsp;resource_associated_entity_id&amp;amp;nbsp;if the resource_type is OBJECT otherwise pass NULL to get NULL back. &amp;amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;Granted looking up the object_name of a PAGE or KEY wouldn&#39;t give back anything useful, but it would be nice if it didn&#39;t blow up the query.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
            </div>
        </content>
    </entry>
    
    <entry>
        <title>Tricky SQL XML support for binary values</title>
        <link rel="alternate" type="text/html" href="http://blog.web20studios.com/2010/7/Tricky-SQL-XML-support-for-binary-values" />

        <id>http://blog.web20studios.com/2010/7/Tricky-SQL-XML-support-for-binary-values</id>

        <updated>2010-07-02T13:34:11Z</updated>
        <published>2010-07-02T13:33:23Z</published>

        <author>
            <name>Matt Dragon</name>
            <uri>http://blog.web20studios.com</uri>
        </author>

        <content type="xhtml" xml:lang="en" xml:base="http://blog.web20studios.com">
            <div xmlns="http://www.w3.org/1999/xhtml">
                In setting up &quot;Event&quot; based block notifications for SQL 2005/2008 I had to get the binary SQL handle out of the XML provided by the event. &amp;amp;nbsp;This of course seems rather simple, except you can&#39;t just supply varbinary(64) as the type to @xml.value because that would too easy for an MS product. &amp;amp;nbsp;Trying this gives you back NULL instead of your binary value.
   &lt;br /&gt;&lt;div&gt;As &lt;a href=&quot;http://blogs.msdn.com/b/sqltips/archive/2008/07/02/converting-from-hex-string-to-varbinary-and-vice-versa.aspx&quot;&gt;this page&lt;/a&gt; tells you, you need to use an&amp;amp;nbsp;XQuery conversion, xs:hexBinary, to do instead. &amp;amp;nbsp;But wait, you&#39;re not off the hook yet, because xs:hexBinary doesn&#39;t understand 0x delimited binary, and doesn&#39;t tell you that in any way shape or form. &amp;amp;nbsp;Instead you get back your old buddy NULL. &amp;amp;nbsp;And that&#39;s when you notice buried in the XQuery that it&#39;s actually chopping off the 0x if the value has it (even though the test value in the code doesn&#39;t).&lt;/div&gt;&lt;br /&gt;&lt;div&gt;So the whole chunk you end up needing looks like this:&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;pre name=&quot;code&quot; class=&quot;python&quot;&gt;Process.value( &#39;xs:hexBinary( substring((frame/@sqlhandle)[1],3))&#39;, &#39;varbinary(64)&#39; )&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;
            </div>
        </content>
    </entry>
    

</feed>