﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:betag="http://dotnetblogengine.net/schemas/tags">
  <channel>
    <title>BillForney.com</title>
    <description>A day in the life of a geek...</description>
    <link>http://www.billforney.com/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 2.9.3.4</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://www.billforney.com/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.billforney.com/syndication.axd</blogChannel:blink>
    <dc:creator>William L. Forney</dc:creator>
    <dc:title>BillForney.com</dc:title>
    <geo:lat>48.438600</geo:lat>
    <geo:long>-122.319400</geo:long>
    <item>
      <title>Handy Developer Tools &amp; Links</title>
      <description>&lt;p&gt;There are a lot of tools out there and others have posted lists that are handy. I’m going to put my list of common tools here and try to keep it updated every now and then for my own use as well as anyone else who may like to reference it. Feel free to send me more to add to the list.&lt;/p&gt;  &lt;h5&gt;Helpful Blogs&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="The Morning Brew (Chris Alcock)" href="http://blog.cwa.me.uk/" rel="nofollow" target="_blank"&gt;The Morning Brew (Chris Alcock)&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Code &amp;amp; Text Editors&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="Visual Studio" href="http://www.visualstudio.com/" rel="nofollow" target="_blank"&gt;Visual Studio&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="Sublime" href="http://www.sublimetext.com/" rel="nofollow" target="_blank"&gt;Sublime&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Visual Studio Extensions&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="Visual Studio Web Essentials" href="http://vswebessentials.com/" rel="nofollow" target="_blank"&gt;Web Essentials&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="Sidewaffle" href="http://sidewaffle.com/" rel="nofollow" target="_blank"&gt;SideWaffle&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="StyleCop" href="http://stylecop.codeplex.com/" rel="nofollow" target="_blank"&gt;StyleCop&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="ReSharper" href="http://www.jetbrains.com/resharper/" rel="nofollow" target="_blank"&gt;ReSharper&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;General Utilities&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="Beyond Compare" href="http://www.scootersoftware.com/index.php" rel="nofollow" target="_blank"&gt;Beyond Compare&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="7-Zip" href="http://7-zip.org/" rel="nofollow" target="_blank"&gt;7-Zip&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;Updaters&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="Microsoft(r) Web Platform Installer" href="http://www.microsoft.com/web/downloads/platform.aspx" rel="nofollow" target="_blank"&gt;Microsoft(r) Web Platform Installer&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="Chocolatey" href="http://chocolatey.org/" rel="nofollow" target="_blank"&gt;Chocolatey&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;</description>
      <link>http://www.billforney.com/post/2013/12/29/Handy-Developer-Tools-Links</link>
      <author>bill@billforney.com</author>
      <comments>http://www.billforney.com/post/2013/12/29/Handy-Developer-Tools-Links#comment</comments>
      <guid>http://www.billforney.com/post.aspx?id=b945bbea-cd9a-42e8-bd1d-eac0b775a899</guid>
      <pubDate>Sun, 29 Dec 2013 04:51:07 +0000</pubDate>
      <category>Software Development</category>
      <category>Technology</category>
      <betag:tag>software development</betag:tag>
      <betag:tag>technology</betag:tag>
      <betag:tag>tools</betag:tag>
      <dc:publisher>Bill Forney</dc:publisher>
      <pingback:server>http://www.billforney.com/pingback.axd</pingback:server>
      <pingback:target>http://www.billforney.com/post.aspx?id=b945bbea-cd9a-42e8-bd1d-eac0b775a899</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.billforney.com/trackback.axd?id=b945bbea-cd9a-42e8-bd1d-eac0b775a899</trackback:ping>
      <wfw:comment>http://www.billforney.com/post/2013/12/29/Handy-Developer-Tools-Links#comment</wfw:comment>
      <wfw:commentRss>http://www.billforney.com/syndication.axd?post=b945bbea-cd9a-42e8-bd1d-eac0b775a899</wfw:commentRss>
    </item>
    <item>
      <title>single page application architecture</title>
      <description>&lt;p&gt;I've been poking around at a lot of JavaScript over the last year or two and have been refining this layered architecture for setting up applications. The main idea behind it is to cover all the old bases in a way that also reduces the number of requests and performs very well. The layers I am using are setup like so:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Web front end (static HTML)
&lt;ul&gt;
&lt;li&gt;UI views, scripts, and related image files&lt;/li&gt;
&lt;li&gt;Localized strings as JSON files&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Middle tier (WebAPI/SignalR)&lt;/li&gt;
&lt;li&gt;Back end (database/web services)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, to explain a little about this layout&amp;hellip; The front end is all static. The files may be generated by a compiler or parser but upon publish they are static and require no server processing. This allows one to put these files into a &lt;a title="The Windows Azure Content Delivery Network (CDN) offers developers a global solution for delivering high-bandwidth content by caching blobs and static content of compute instances at physical nodes in the United States, Europe, Asia, Australia and South America." href="http://www.windowsazure.com/en-us/develop/net/common-tasks/cdn/" rel="nofollow" target="_blank"&gt;CDN&lt;/a&gt; whether it is Azure or Amazon for massive scale and economy. Having the localization files as static &lt;a title="JSON, or JavaScript Object Notation, is an open standard format that uses human-readable text to transmit data objects consisting of attribute&amp;ndash;value pairs. It is used primarily to transmit data between a server and web application, as an alternative to XML." href="http://en.wikipedia.org/wiki/Json" rel="nofollow" target="_blank"&gt;JSON&lt;/a&gt; allows them to be packaged up with the front end and sent along with it. Depending on the configuration and build process these files could even be combined and minified further.&lt;/p&gt;
&lt;p&gt;The middle tier is your standard &lt;a title="ASP.NET Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. ASP.NET Web API is an ideal platform for building RESTful applications on the .NET Framework." href="http://www.asp.net/web-api" rel="nofollow" target="_blank"&gt;WebAPI&lt;/a&gt; and/or &lt;a title="ASP.NET SignalR - Incredibly simple real-time web for .NET" href="http://signalr.net/" rel="nofollow" target="_blank"&gt;SignalR&lt;/a&gt; server side code layer hosted on a standard ASP.NET server, usually Azure Web Sites in my case. This tier is basically an API that provides the site with any dynamic actions and information it needs.&lt;/p&gt;
&lt;p&gt;Finally, the back end consists of a database used by the middle tier, usually a &lt;a title="Windows Azure SQL Database, formerly SQL Azure, is a fully managed relational database service that delivers flexible manageability, includes built-in high availability, offers predictable performance, and supports massive scale-out." href="http://www.windowsazure.com/en-us/services/sql-database/" rel="nofollow" target="_blank"&gt;SQL server&lt;/a&gt; of some kind, and any external web services needed by the middle tier. You could lump the external web services into the middle tier but I prefer to think of them as something separate for the sake of organization.&lt;/p&gt;
&lt;p&gt;There are some interesting issues you run into when implementing this pattern, including how to handle authorization and security trimming. I generally move the navigation page list into a JSON object that can be generated by the API. In this manner you avoid exposing all your pages to the client even though the templates for those pages may exist in your CDN as public files. All of the security should be enforced on the middle tier so that users cannot perform actions they are not supposed to be allowed to do.&lt;/p&gt;
&lt;p&gt;I've found that this model is fast and performs well under load when done properly. The trick is keeping it simple while utilizing all the tooling available to generate the published result. If anyone is interested I could go into more detail about that.&lt;/p&gt;
&lt;div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:675e7723-9bdb-4105-bf85-ea8555274b94" class="wlWriterEditableSmartContent" style="float: none; margin: 0px; display: inline; padding: 0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/JavaScript" rel="tag"&gt;JavaScript&lt;/a&gt;,&lt;a href="http://technorati.com/tags/single+page+application" rel="tag"&gt;single page application&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SPA" rel="tag"&gt;SPA&lt;/a&gt;,&lt;a href="http://technorati.com/tags/architecture" rel="tag"&gt;architecture&lt;/a&gt;,&lt;a href="http://technorati.com/tags/layers" rel="tag"&gt;layers&lt;/a&gt;,&lt;a href="http://technorati.com/tags/pattern" rel="tag"&gt;pattern&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://www.billforney.com/post/2013/12/16/single-page-application-architecture</link>
      <author>bill@billforney.com</author>
      <comments>http://www.billforney.com/post/2013/12/16/single-page-application-architecture#comment</comments>
      <guid>http://www.billforney.com/post.aspx?id=ae56f68f-e8ce-4e97-a6c8-60419880bb32</guid>
      <pubDate>Mon, 16 Dec 2013 19:22:00 +0000</pubDate>
      <category>JavaScript</category>
      <category>Software Development</category>
      <category>Technology</category>
      <betag:tag>JavaScript</betag:tag>
      <betag:tag>single page application</betag:tag>
      <betag:tag>SPA</betag:tag>
      <betag:tag>architecture</betag:tag>
      <betag:tag>layers</betag:tag>
      <betag:tag>pattern</betag:tag>
      <dc:publisher>wforney</dc:publisher>
      <pingback:server>http://www.billforney.com/pingback.axd</pingback:server>
      <pingback:target>http://www.billforney.com/post.aspx?id=ae56f68f-e8ce-4e97-a6c8-60419880bb32</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.billforney.com/trackback.axd?id=ae56f68f-e8ce-4e97-a6c8-60419880bb32</trackback:ping>
      <wfw:comment>http://www.billforney.com/post/2013/12/16/single-page-application-architecture#comment</wfw:comment>
      <wfw:commentRss>http://www.billforney.com/syndication.axd?post=ae56f68f-e8ce-4e97-a6c8-60419880bb32</wfw:commentRss>
    </item>
    <item>
      <title>How to fix green video screen in Windows 8 Consumer Preview and Release Preview</title>
      <description>&lt;p&gt;Flash has this problem where it will show up blank or green when using hardware acceleration to display video. You used to be able to turn that off in Flash options from the right click menu, but in IE10 you have to go to the Internet Explorer options’ advanced tab. There’s a checkbox there that you need to check to fix it at the top.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.billforney.com/image.axd?picture=image.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://www.billforney.com/image.axd?picture=image_thumb.png" width="191" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://www.billforney.com/post/2012/07/06/How-to-fix-green-video-screen-in-Windows-8-Consumer-Preview-and-Release-Preview</link>
      <author>bill@billforney.com</author>
      <comments>http://www.billforney.com/post/2012/07/06/How-to-fix-green-video-screen-in-Windows-8-Consumer-Preview-and-Release-Preview#comment</comments>
      <guid>http://www.billforney.com/post.aspx?id=03a1a22d-e812-4071-942f-f2c00c273224</guid>
      <pubDate>Fri, 06 Jul 2012 14:09:33 +0000</pubDate>
      <category>Technology</category>
      <category>Quick Fixes</category>
      <betag:tag>Windows 8</betag:tag>
      <betag:tag>IE10</betag:tag>
      <dc:publisher>wforney</dc:publisher>
      <pingback:server>http://www.billforney.com/pingback.axd</pingback:server>
      <pingback:target>http://www.billforney.com/post.aspx?id=03a1a22d-e812-4071-942f-f2c00c273224</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.billforney.com/trackback.axd?id=03a1a22d-e812-4071-942f-f2c00c273224</trackback:ping>
      <wfw:comment>http://www.billforney.com/post/2012/07/06/How-to-fix-green-video-screen-in-Windows-8-Consumer-Preview-and-Release-Preview#comment</wfw:comment>
      <wfw:commentRss>http://www.billforney.com/syndication.axd?post=03a1a22d-e812-4071-942f-f2c00c273224</wfw:commentRss>
    </item>
  </channel>
</rss>