<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>David Godfrey</title>
	<atom:link href="http://www.davidgodfrey.info/feed" rel="self" type="application/rss+xml" />
	<link>http://www.davidgodfrey.info</link>
	<description>Computer Information Technology</description>
	<lastBuildDate>Wed, 16 Feb 2011 04:04:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Beating Google</title>
		<link>http://www.davidgodfrey.info/beating-google</link>
		<comments>http://www.davidgodfrey.info/beating-google#comments</comments>
		<pubDate>Tue, 15 Feb 2011 23:57:38 +0000</pubDate>
		<dc:creator>David Godfrey</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.davidgodfrey.info/?p=172</guid>
		<description><![CDATA[Google recently released an extension that would allow for users to specify &#8216;spam&#8217; search results. Kynetx wants to take that a step further with an application that will do the same thing in Firefox and Internet Explorer as well as Chrome. The application had to be built in 24 hours. I always like a good [...]]]></description>
			<content:encoded><![CDATA[<p>Google recently released an extension that would allow for users to specify &#8216;spam&#8217; search results. Kynetx wants to take that a step further with an application that will do the same thing in Firefox and Internet Explorer as well as Chrome. The application had to be built in 24 hours. I always like a good challenge and learning something new, so I took a stab at it.</p>
<p>I wanted to keep the minimalistic idea that Google had with their extension, but make it more visible and useable. When you hover over a search result an option to remove the result is presented.</p>
<p><a href="http://www.davidgodfrey.info/wp-content/uploads/2011/02/Screen-shot-2011-02-15-at-7.00.33-PM.png"><img class="alignleft size-medium wp-image-177" title="Screen shot 2011-02-15 at 7.00.33 PM" src="http://www.davidgodfrey.info/wp-content/uploads/2011/02/Screen-shot-2011-02-15-at-7.00.33-PM-300x60.png" alt="" width="300" height="60" /></a></p>
<div style="clear: both;">A notify box stays in the top right of the screen. It tells how many items are being hidden, and you can un-hide them.</div>
<p><a href="http://www.davidgodfrey.info/wp-content/uploads/2011/02/Screen-shot-2011-02-15-at-7.02.28-PM.png"><img class="alignleft size-full wp-image-178" title="Screen shot 2011-02-15 at 7.02.28 PM" src="http://www.davidgodfrey.info/wp-content/uploads/2011/02/Screen-shot-2011-02-15-at-7.02.28-PM.png" alt="" width="272" height="136" /></a></p>
<div style="clear: both;">Once items are un-hidden, you can choose to restore the result.</div>
<p><a href="http://www.davidgodfrey.info/wp-content/uploads/2011/02/Screen-shot-2011-02-15-at-7.03.21-PM.png"><img class="alignleft size-medium wp-image-179" title="Screen shot 2011-02-15 at 7.03.21 PM" src="http://www.davidgodfrey.info/wp-content/uploads/2011/02/Screen-shot-2011-02-15-at-7.03.21-PM-300x66.png" alt="" width="300" height="66" /></a></p>
<div style="clear: both;">While developing, I kept running into problems where the entity variables didn&#8217;t stay. I am sure it was because I have a horrible habit of hard-refreshing the browser. So, I thought it would be nice to link the urls I want to exclude to a google spreadsheet. For this to work, there are two keys from the google spreadsheet to put into the app. Linking to a Google doc is optional, it is just nice that when my cookies are reset or cleaned, I don&#8217;t have to start over again removing search results.</div>
<p><a href="http://www.davidgodfrey.info/wp-content/uploads/2011/02/Screen-shot-2011-02-15-at-7.03.33-PM.png"><img class="alignleft size-full wp-image-180" title="Screen shot 2011-02-15 at 7.03.33 PM" src="http://www.davidgodfrey.info/wp-content/uploads/2011/02/Screen-shot-2011-02-15-at-7.03.33-PM.png" alt="" width="262" height="231" /></a></p>
<div style="clear:both;">Log into google docs and create a new spreadsheet. First create a new form. It only needs one field and it doesn&#8217;t matter what the name is. This is a screenshot of my completed form.</div>
<p><a href="http://www.davidgodfrey.info/wp-content/uploads/2011/02/Screen-shot-2011-02-15-at-7.08.27-PM.png"><img src="http://www.davidgodfrey.info/wp-content/uploads/2011/02/Screen-shot-2011-02-15-at-7.08.27-PM-300x128.png" alt="" title="Screen shot 2011-02-15 at 7.08.27 PM" width="300" height="128" class="alignleft size-medium wp-image-181" /></a></p>
<div style="clear:both;">After creating the form, this is what my spreadsheet looked like. (I couldn&#8217;t figure out how to get rid of the timestamp, but with the 24 hour time limit, I didn&#8217;t worry about it too much)</div>
<p><a href="http://www.davidgodfrey.info/wp-content/uploads/2011/02/Screen-shot-2011-02-15-at-7.08.41-PM.png"><img src="http://www.davidgodfrey.info/wp-content/uploads/2011/02/Screen-shot-2011-02-15-at-7.08.41-PM.png" alt="" title="Screen shot 2011-02-15 at 7.08.41 PM" width="295" height="194" class="alignleft size-full wp-image-182" /></a></p>
<div style="clear:both;">The last think you need to do to set up the spreadsheet is to publish it. In the upper-right corner of the screen click the down arrow next to share and select &#8220;Publish as a web page&#8221;. Start Publishing:</div>
<p><a href="http://www.davidgodfrey.info/wp-content/uploads/2011/02/Screen-shot-2011-02-15-at-7.09.06-PM.png"><img src="http://www.davidgodfrey.info/wp-content/uploads/2011/02/Screen-shot-2011-02-15-at-7.09.06-PM-300x293.png" alt="" title="Screen shot 2011-02-15 at 7.09.06 PM" width="300" height="293" class="alignleft size-medium wp-image-183" /></a></p>
<div style="clear:both;">Copy the google spreadsheet key (highlighted in picture below), and paste it into the first box (see the third picture of this post)</div>
<p><a href="http://www.davidgodfrey.info/wp-content/uploads/2011/02/Screen-shot-2011-02-15-at-8.02.26-PM.png"><img src="http://www.davidgodfrey.info/wp-content/uploads/2011/02/Screen-shot-2011-02-15-at-8.02.26-PM-300x10.png" alt="" title="Screen shot 2011-02-15 at 8.02.26 PM" width="300" height="10" class="alignleft size-medium wp-image-186" /></a></p>
<div style="clear:both;">The last part is the form Key. In the google spreadsheet click on form, and then &#8220;Go to live form&#8221;. Copy the formkey from the url (highlighted in picture below)</div>
<p><a href="http://www.davidgodfrey.info/wp-content/uploads/2011/02/Screen-shot-2011-02-15-at-8.07.12-PM.png"><img src="http://www.davidgodfrey.info/wp-content/uploads/2011/02/Screen-shot-2011-02-15-at-8.07.12-PM-300x10.png" alt="" title="Screen shot 2011-02-15 at 8.07.12 PM" width="300" height="10" class="alignleft size-medium wp-image-187" /></a></p>
<div style="clear:both;">The application will now add the urls you decide to remove to the google spreadsheet. And the urls in the spreadsheet will be used to remove search results. So on the off chance your urls aren&#8217;t working, you just have to add the google spreadsheet keys, instead of add all the urls again. Another nice thing is you can just add urls that you know are spam. The only down side, is that when you want to stop removing a url from the search results, you have to remove the url from the spreadsheet manually. </div>
<div style="clear:both;">I am impressed with the changes to the search annotation that Kynetx has made. It is much easier to use and customize. </div>
<div style="clear:both;">Below are the browser extensions. Please download and try. Leave a comment, I would love feedback!</div>
<div style="clear:both; display:block;">&nbsp;</div>
<p><a style="clear: both;" title="Internet Explorer Extension" href="http://www.dizact.com/davidgodfrey/images/Hoogleing_Setup.exe" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.dizact.com/davidgodfrey/images/Hoogleing_Setup.exe?referer=');">Internet Explorer Extension</a></p>
<p><a title="Firefox Extension" href="http://www.dizact.com/davidgodfrey/images/Hoogleing.xpi" onclick="pageTracker._trackPageview('/outgoing/www.dizact.com/davidgodfrey/images/Hoogleing.xpi?referer=');">Firefox Extension</a></p>
<p><a title="Chrome Extension" href="http://www.dizact.com/davidgodfrey/images/Hoogleing.crx" onclick="pageTracker._trackPageview('/outgoing/www.dizact.com/davidgodfrey/images/Hoogleing.crx?referer=');">Chrome Extension</a></p>
<div style="clear:both;">I am adding the bookmarklet as well because it seems to work better in some cases than the extension. <a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=&quot;KOBJ_config={'rids':['a279x11']};&quot;;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js';d.body.appendChild(l);})()">Hoogleing</a></div>
<div style="clear:both;">Known Issues:<br />Can&#8217;t restore a search result in IE. <br />Yahoo doesn&#8217;t seem to work as well.<br />Sometimes google doesn&#8217;t refresh the page and hide elements after they have been removed(disable instantSearch)</p>
<p> After spending 2 hours working on IE I gave up. I could have figured it out with more time, but the debug tools on IE suck&#8230; oh wait&#8230; there aren&#8217;t any! I think I am going to join an anti-develop-for-IE group.</div>
<p><code class="language-javascript"><br />
ruleset a279x11 {<br />
  meta {<br />
    name "Hoogleing"<br />
    description &gt;&gt;<br />
    &lt;&lt;<br />
    author "David"<br />
    logging off<br />
  }<br />
  dispatch {<br />
    domain "google.com"<br />
    domain "bing.com"<br />
    domain "yahoo.com"<br />
  }<br />
  global {<br />
//set the datasource for the google spreadsheet if the key is supplied in the app<br />
  datasource googleSheets &gt;- "https://spreadsheets.google.com/"<br />
  css &gt;&gt;<br />
    .restoreResultKRL { visibility:visible; float:right; background-color: white; background-image: url(http://davidgodfrey.info/images/search/myCheck.png); background-repeat: no-repeat; border: medium none; padding-left: 20px; cursor: pointer; }<br />
    .removeResultKRL { visibility:hidden; float:right; background-color: white; background-image: url(http://davidgodfrey.info/images/search/myX.png); background-repeat: no-repeat; border: medium none; padding-left: 20px; cursor: pointer; }<br />
    .removeResultKRL,<br />
    .restoreResultKRL { background-color: #fffddd; padding: 5px 5px 5px 20px; background-position: 2px 4px; border: 1px solid #efefef; }<br />
    .SPAMremove:hover .restoreResultKRL,<br />
    .SPAMremove:hover .removeResultKRL { visibility:visible }<br />
  &lt;&lt;;<br />
  }<br />
//This rule sets up the notify box at the top right of the screen<br />
  rule first_rule is active {<br />
    select using "google.com|bing.com/search|search.yahoo.com/search" setting()<br />
     pre {<br />
      message = &gt;&gt;<br />
              &gt;span id="spamSearchCatcher"&lt;0&gt;/span&lt; search results removed.&gt;br /&lt;&gt;br /&lt;<br />
              &gt;button type="button" id="spanSeeRemoved" style="display:none; background: none; background-image: url(http://davidgodfrey.info/images/search/restoreA.png); background-repeat: no-repeat; border: medium none; padding-left: 20px; cursor: pointer; color: #68b4ef;"&lt;See removed results&gt;/button&lt;&gt;br /&lt;&gt;br /&lt;<br />
              &gt;button type="button" id="SPAMexternalGoogle" style="background: none; background-image: url(http://davidgodfrey.info/images/search/google.png); background-repeat: no-repeat; border: medium none; padding-left: 20px; cursor: pointer; color: #56c42e;"&lt;Google Spreadsheet settings&gt;/button&lt;&gt;br /&lt;<br />
                &gt;span id="showExternalGoogle" style="display:none;"&lt;<br />
                  &gt;label&lt;Google Spreadsheet Key&gt;/label&lt;&gt;br /&lt;&gt;input style="margin: 5px 0 10px 0;" id="SPAMGoogleKey" type="text"&lt;&gt;/input&lt;&gt;br /&lt;<br />
                  &gt;label&lt;Google Form Key&gt;/label&lt;&gt;br /&lt;&gt;input style="margin: 5px 0 10px 0;" id="SPAMGoogleFormKey" type="text"&lt;&gt;/input&lt;&gt;br /&lt;<br />
                  &gt;button id="SPAMsubmitGoogleInfo" type="button"&lt;Save&gt;/button&lt;<br />
                &gt;/span&lt;<br />
                &gt;br /&lt;<br />
                &gt;span id="SPAMremoveNotice" style="display:none;"&lt;It looks like you are using a Google Spreadsheet! To restore a result, you will have to remove the row from the Google Spreadsheet manually.&gt;/span&lt;<br />
        &lt;&lt;;<br />
      }<br />
        emit &gt;|<br />
          $K('#spanSeeRemoved').live('click', function(){<br />
            $K('.SPAMremove').show();<br />
            //$K('#spanSeeRemoved').fadeOut();<br />
          });<br />
          $K('#SPAMexternalGoogle').live('click', function(){<br />
            $K('#showExternalGoogle').toggle();<br />
          });<br />
        |&lt;<br />
    notify("", message) with sticky = true;<br />
  }<br />
  rule search_annotate_rule is active {<br />
     select using "google.com|bing.com/search|search.yahoo.com/search" setting()<br />
     pre {<br />
       //the variable that will hold the removed sites.<br />
       sites = ent:my_sites;<br />
       //get the google spreadsheet key and then get the csv<br />
       gKey = ent:my_gKey;<br />
       csvFromGoogleDoc = datasource:googleSheets("pub?hl=en&#038;hl=en&#038;key=" + gKey + "&#038;single=true&#038;gid=0&#038;output=csv");<br />
     }<br />
     emit &gt;|<br />
            //split the csv into a javascript array<br />
            if(csvFromGoogleDoc.length &lt; 20){<br />
              var tempString = csvFromGoogleDoc.replace(/(\r\n|[\r\n])/g, ",");<br />
              var googleValues = tempString.split(',');<br />
              $K('#SPAMremoveNotice').show();<br />
            }else{<br />
              var googleValues = [0];<br />
            }<br />
       |&lt;<br />
     every {<br />
       emit &gt;|<br />
         function annotate_spamRemove(toAnnotate, wrapper, data) {<br />
            if ($K.inArray(data.domain, sites) != -1 || $K.inArray(data.domain, googleValues) != -1) {<br />
              toAnnotate.hide();<br />
              $K('#spamSearchCatcher').html(($K('#spamSearchCatcher').html()*1)+1);<br />
              $K('#spanSeeRemoved').show();<br />
              wrapper.append("&gt;button type='button' domain='"+data.domain+"' class='restoreResultKRL'&lt;restore result&gt;/button&lt;");<br />
              wrapper.show();<br />
            }else{<br />
              wrapper.append("&gt;button type='button' domain='"+data.domain+"' class='removeResultKRL'&lt;remove result&gt;/button&lt;");<br />
              wrapper.show();<br />
            }<br />
            toAnnotate.addClass('SPAMremove');<br />
          }<br />
          app = KOBJ.get_application("a279x11");<br />
          $K('.removeResultKRL').live('click', function(){<br />
            theDomain = $K(this).attr('domain');<br />
            $K(this).removeClass('removeResultKRL').addClass('restoreResultKRL').text('removed');<br />
            $K(this).closest('.SPAMremove').delay(1000).fadeOut('fast', function(){$K('.restoreResultKRL').text('restore result');});<br />
            app.raise_event("remove_result_from_search", {"myDomain":theDomain});<br />
          });<br />
          $K('.restoreResultKRL').live('click', function(){<br />
            theDomain = $K(this).attr('domain');<br />
            $K(this).addClass('removeResultKRL').removeClass('restoreResultKRL').text('remove result');<br />
            app.raise_event("restore_result_from_search", {"myDomain":theDomain});<br />
          });<br />
          $K('#SPAMsubmitGoogleInfo').live('click', function(){<br />
            $K('#SPAMsubmitGoogleInfo').text('Saved').attr('disabled', 'disabled');<br />
            googleKey = $K('#SPAMGoogleKey').val();<br />
            googleFormKey = $K('#SPAMGoogleFormKey').val();<br />
            app.raise_event("store_google_keys", {"Gkey":googleKey, "GFkey":googleFormKey});<br />
          });<br />
      |&lt;;<br />
      annotate:annotate("SPAMremove") with annotator = &gt;| annotate_spamRemove |&lt;;<br />
    }<br />
  }<br />
  rule custom_event_for_removing_result {<br />
    select when web remove_result_from_search<br />
    pre {<br />
      gKey = ent:my_gKey;<br />
      gfKey = ent:my_gfKey;<br />
      sites = ent:my_sites;<br />
      domain = event:param("myDomain");<br />
      new_array = sites.union(domain);<br />
    }<br />
    emit &gt;|<br />
      if(gKey.length &lt; 20 &#038;&#038; gfKey.length &lt; 20){<br />
        app = KOBJ.get_application("a279x11");<br />
        app.raise_event("save_in_google", {"myDomain":domain });<br />
      }<br />
    |&lt;<br />
    fired {<br />
      set ent:my_sites new_array;<br />
    }<br />
  }<br />
  rule custom_event_for_restoring_result {<br />
    select when web restore_result_from_search<br />
    pre {<br />
      sites = ent:my_sites;<br />
      domain = event:param("myDomain");<br />
      new_array = sites.difference(domain);<br />
    }<br />
    fired {<br />
      set ent:my_sites new_array;<br />
    }<br />
  }<br />
  rule custom_event_store_google_keys {<br />
    select when web store_google_keys<br />
    pre {<br />
     gKey = event:param("Gkey");<br />
     gfKey = event:param("GFkey");<br />
    }<br />
    fired {<br />
      set ent:my_gKey gKey;<br />
      set ent:my_gfKey gfKey;<br />
    }<br />
  }<br />
  rule custom_event_save_in_google {<br />
    select when web save_in_google<br />
    pre {<br />
      domain = event:param("myDomain");<br />
      gfKey = ent:my_gfKey;<br />
    }<br />
    {<br />
      http:post("https://spreadsheets.google.com/formResponse?hl=en&#038;formkey=" + gfKey + "&#038;ifq") with params = { "entry.0.single":domain, "submit":"Submit", "pageNumber":"0", "backupCache":"" };<br />
    }<br />
  }<br />
}<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidgodfrey.info/beating-google/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Huflix</title>
		<link>http://www.davidgodfrey.info/huflix</link>
		<comments>http://www.davidgodfrey.info/huflix#comments</comments>
		<pubDate>Mon, 06 Dec 2010 02:31:36 +0000</pubDate>
		<dc:creator>David Godfrey</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.davidgodfrey.info/?p=158</guid>
		<description><![CDATA[I am one of those people that don&#8217;t believe in paying $50 for cable. I think it is more because I am poor than cheap. Anyway, I have always loved streaming content from the internet to my tv. Netflix through my Xbox 360 is great and I couldn&#8217;t be any happier. I wasn&#8217;t much of [...]]]></description>
			<content:encoded><![CDATA[<p>I am one of those people that don&#8217;t believe in paying $50 for cable. I think it is more because I am poor than cheap. Anyway, I have always loved streaming content from the internet to my tv. Netflix through my Xbox 360 is great and I couldn&#8217;t be any happier. I wasn&#8217;t much of a TV watcher, but after I became addicted to shows like Modern Family, The Middle, and Stargate Universe I started watching Hulu religiously. I love the fact that for $20 I can stream from Netflix and Hulu. Much better price tag than $50+ for cable or satellite. With both services, I have always wanted to perform a search on Netflix, and have it tell me if that TV show or Movie is on Hulu. The hard part is Hulu doesn&#8217;t have a public api for searching their video library. That is where <a title="Knetx - This changes everything" href="http://www.kynetx.com" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.kynetx.com?referer=');">Kynetx</a> comes in!</p>
<p>I haven&#8217;t done a good job keeping up with the advancements in the KRL language, so when I sat down to make an application for the <a href="http://code.kynetx.com/2010/11/24/contest-augmenting-the-web-with-kynetx-ends-dec-5th/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/code.kynetx.com/2010/11/24/contest-augmenting-the-web-with-kynetx-ends-dec-5th/?referer=');">Developer Contest</a> Saturday night, it was quite the project. Since Hulu doesn&#8217;t have a public api, the only thing I have to work with is the Hulu search page. Because of cross-domain security I couldn&#8217;t perform a simple ajax call within the jquery, so I used a datasource. A datasource is for json, not html, but it was a simple way to search Hulu without worrying about same origin policy. The search page was stored in a datasource, and all I had to do was make a javascript variable to put the datasource in so I could traverse the DOM with jquery.</p>
<p>Since searching Hulu doesn&#8217;t give specific information, like year released or anything there are some searches that don&#8217;t tell the whole truth. Each search result in Netflix is compared with each search result in Hulu. If there is a match, then it will insert the Hulu logo on the corresponding Netflix result. Hulu splits the season number and name of the show, whereas Netflix doesn&#8217;t, so any name with a colon &#8220;:&#8221; is shortened to contain only the text before the colon. So, Modern Family:Season 1 is compared as Modern Family.  A good example is to search for &#8220;All Dogs Go to Heaven&#8221; in Netflix with this Kynetx app. Since all the results contain &#8220;All Dogs Go to Heaven&#8221; the hulu logo is put on all of the Netflix results. However, All Dogs Go to Heaven 2 is stream-able on Hulu. With the 2 at the end it is more unique, so it shows only one correct result on Netflix! (Try the app out searching for &#8220;Reba&#8221;, &#8220;30 Rock&#8221;, &#8220;Modern Family&#8221;. Those were some of what I used to test.)</p>
<p>Up to 3 Hulu results are shown per Netflix result. Hovering over the hulu logo will reveal the title of the matched video. Clicking on the hulu logo will take you directly to that hulu video, and it will start playing!</p>
<p>That is the nitty gritty of the program. <strong>I think the coolest thing is taking information from a source that doesn&#8217;t provide an api, and making a mashup possible!</strong> Talk about augmenting the web!</p>
<p><a href="http://dl.dropbox.com/u/1244072/Huflix.crx" target="_blank" onclick="pageTracker._trackPageview('/outgoing/dl.dropbox.com/u/1244072/Huflix.crx?referer=');">Download the Chrome Browser Extension</a></p>
<p><a href="http://dl.dropbox.com/u/1244072/Huflix.xpi" target="_blank" onclick="pageTracker._trackPageview('/outgoing/dl.dropbox.com/u/1244072/Huflix.xpi?referer=');">Download the Firefox Browser Extension</a></p>
<p>Give it a try and leave comments with suggestions and feedback. Don&#8217;t be too harsh though! I started working on this app late Saturday (Dec 4) and finished it early morning Sunday. (Less than 24 hrs.) Be sure to visit the <a href="http://docs.kynetx.com/docs/Main_Page" target="_blank" onclick="pageTracker._trackPageview('/outgoing/docs.kynetx.com/docs/Main_Page?referer=');">Kynetx Development Center</a> to find out how to create your own app!</p>
<p><a href="http://www.davidgodfrey.info/wp-content/uploads/2010/12/Screen-shot-2010-12-05-at-7.36.26-PM.png"><img class="alignleft size-medium wp-image-163" title="Screen shot 2010-12-05 at 7.36.26 PM" src="http://www.davidgodfrey.info/wp-content/uploads/2010/12/Screen-shot-2010-12-05-at-7.36.26-PM-300x170.png" alt="" width="300" height="170" /></a></p>
<p><a href="http://www.davidgodfrey.info/wp-content/uploads/2010/12/Screen-shot-2010-12-05-at-7.34.43-PM.png"><img class="alignleft size-medium wp-image-162" title="Screen shot 2010-12-05 at 7.34.43 PM" src="http://www.davidgodfrey.info/wp-content/uploads/2010/12/Screen-shot-2010-12-05-at-7.34.43-PM-300x169.png" alt="" width="300" height="169" /></a><a href="http://www.davidgodfrey.info/wp-content/uploads/2010/12/Screen-shot-2010-12-08-at-2.03.27-PM.png"><img class="alignleft size-medium wp-image-170" title="Screen shot 2010-12-08 at 2.03.27 PM" src="http://www.davidgodfrey.info/wp-content/uploads/2010/12/Screen-shot-2010-12-08-at-2.03.27-PM-300x243.png" alt="" width="300" height="243" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidgodfrey.info/huflix/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OrangeSoda Dev Day</title>
		<link>http://www.davidgodfrey.info/orange-soda-dev-day</link>
		<comments>http://www.davidgodfrey.info/orange-soda-dev-day#comments</comments>
		<pubDate>Fri, 20 Aug 2010 21:30:44 +0000</pubDate>
		<dc:creator>David Godfrey</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.davidgodfrey.info/?p=129</guid>
		<description><![CDATA[I have only worked at OrangeSoda for about 4 weeks, but so far I LOVE it! Since Thursday the OrangeSoda development team has been developing any application that we thought could help the development team or the company. The first place winner created a web application that would do everything that SQL Server Management Studio [...]]]></description>
			<content:encoded><![CDATA[<p>I have only worked at OrangeSoda for about 4 weeks, but so far I LOVE it! Since Thursday the OrangeSoda development team has been developing any application that we thought could help the development team or the company. The first place winner created a web application that would do everything that SQL Server Management Studio couldn&#8217;t do. It was pretty sweet.</p>
<p>The application that Myself, Andre Kradolfer, and <a href="http://jonsheppard.me/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/jonsheppard.me/?referer=');">Jon Sheppard</a> built won 2nd place. We focused on creating a site where we could put tools and other bits of code that would help not only OrangeSoda customers, but anyone that wants help with SEO. One of the tools we built was a Keyword Density Calculator. I first built it as a wordpress plugin. (Right now it says I have used OrangeSoda 4 times&#8230; now 5, and has a density of .03%). It just sits under the publish box. It isn&#8217;t intrusive and it is a TOOL! I didn&#8217;t want to make something that would shove OrangeSoda down anyones throat. It is a simple tool that can be valuable to many people.</p>
<p>The OrangeSoda Keyword Density tool is cool, but what if I could run it outside of wordpress and so it could be used on sites that don&#8217;t use wordpress? Kynetx had my solution! I worked for them for about 6 months, so I knew what I had to to. I haven&#8217;t been able to use Kynetx very much, but any chance is exciting! It is so much easier now. I emitted the javascript I needed and used jQuery to help build the report. Now, anyone, anywhere, anytime can use the bookmarklet to check for keyword density! Here it is:</p>
<p><a href="javascript:(function(){var d=document;var s=d.createElement('script');s.text=&quot;KOBJ_config={'rids':['a279x7']};&quot;;d.body.appendChild(s);var l=d.createElement('script');l.src='http://init.kobj.net/js/shared/kobj-static.js';d.body.appendChild(l);})()">OrangeSoda SEO Keyword Density</a><br />
To use the bookmarklet, add it to your bookmarks or just drag it to your Bookmarks Toolbar. If you are running IE&#8230; I won&#8217;t help you. When you want to use the application, just click on the bookmarklet and it will run!</p>
<p>It is a pretty cool little tool. It is very simple, but some of the best applications are! It works best on actual product pages. I am still working on the word exclusion list. If you want word added to the exclusion list, just post a comment. They are really easy to add. The wordpress plugin needs a little work, so I won&#8217;t post it here&#8230; yet&#8230;!</p>
<p>If you want to learn more about OrangeSoda, visit<a href="http://orangesoda.com" target="_blank" onclick="pageTracker._trackPageview('/outgoing/orangesoda.com?referer=');"> http://orangesoda.com</a> (I have it on good authority that the new site will launch soon!). Kynetx is having a Kynetx Impact Dev Day &#8211; Sept. 18, 2010. They will teach you everything you need to know about building Kynetx applications. Sign up here: <a href="http://kynetxdevday.eventbrite.com" target="_blank" onclick="pageTracker._trackPageview('/outgoing/kynetxdevday.eventbrite.com?referer=');">http://kynetxdevday.eventbrite.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidgodfrey.info/orange-soda-dev-day/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Turkey Bowl 2009</title>
		<link>http://www.davidgodfrey.info/turkey-bowl-2009</link>
		<comments>http://www.davidgodfrey.info/turkey-bowl-2009#comments</comments>
		<pubDate>Tue, 08 Dec 2009 01:19:50 +0000</pubDate>
		<dc:creator>David Godfrey</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.davidgodfrey.info/?p=97</guid>
		<description><![CDATA[Every year all the cousins from my dad&#8217;s side of the family get together for what we call the Turkey Bowl. The day after Thanksgiving (Black Friday) we go bowling together! We usually go to the Elks Lodge in Idaho Falls (if they aren&#8217;t grumpy). Here are some highlights! I also am going to make [...]]]></description>
			<content:encoded><![CDATA[<p>Every year all the cousins from my dad&#8217;s side of the family get together for what we call the Turkey Bowl. The day after Thanksgiving (Black Friday) we go bowling together! We usually go to the Elks Lodge in Idaho Falls (if they aren&#8217;t grumpy). Here are some highlights! I also am going to make a zip file down-loadable for family to download if they like! Happy Turkey Day!</p>

<a href='http://www.davidgodfrey.info/turkey-bowl-2009/img_1764' title='IMG_1764'><img width="150" height="150" src="http://www.davidgodfrey.info/wp-content/uploads/2009/12/IMG_1764-150x150.jpg" class="attachment-thumbnail" alt="IMG_1764" title="IMG_1764" /></a>
<a href='http://www.davidgodfrey.info/turkey-bowl-2009/img_1766' title='IMG_1766'><img width="150" height="150" src="http://www.davidgodfrey.info/wp-content/uploads/2009/12/IMG_1766-150x150.jpg" class="attachment-thumbnail" alt="IMG_1766" title="IMG_1766" /></a>
<a href='http://www.davidgodfrey.info/turkey-bowl-2009/img_1793' title='IMG_1793'><img width="150" height="150" src="http://www.davidgodfrey.info/wp-content/uploads/2009/12/IMG_1793-150x150.jpg" class="attachment-thumbnail" alt="IMG_1793" title="IMG_1793" /></a>
<a href='http://www.davidgodfrey.info/turkey-bowl-2009/img_1800' title='IMG_1800'><img width="150" height="150" src="http://www.davidgodfrey.info/wp-content/uploads/2009/12/IMG_1800-150x150.jpg" class="attachment-thumbnail" alt="IMG_1800" title="IMG_1800" /></a>
<a href='http://www.davidgodfrey.info/turkey-bowl-2009/img_1805' title='IMG_1805'><img width="150" height="150" src="http://www.davidgodfrey.info/wp-content/uploads/2009/12/IMG_1805-150x150.jpg" class="attachment-thumbnail" alt="IMG_1805" title="IMG_1805" /></a>
<a href='http://www.davidgodfrey.info/turkey-bowl-2009/img_1814' title='IMG_1814'><img width="150" height="150" src="http://www.davidgodfrey.info/wp-content/uploads/2009/12/IMG_1814-150x150.jpg" class="attachment-thumbnail" alt="IMG_1814" title="IMG_1814" /></a>
<a href='http://www.davidgodfrey.info/turkey-bowl-2009/img_1860' title='IMG_1860'><img width="150" height="150" src="http://www.davidgodfrey.info/wp-content/uploads/2009/12/IMG_1860-150x150.jpg" class="attachment-thumbnail" alt="IMG_1860" title="IMG_1860" /></a>
<a href='http://www.davidgodfrey.info/turkey-bowl-2009/img_7252' title='IMG_7252'><img width="150" height="150" src="http://www.davidgodfrey.info/wp-content/uploads/2009/12/IMG_7252-150x150.jpg" class="attachment-thumbnail" alt="IMG_7252" title="IMG_7252" /></a>
<a href='http://www.davidgodfrey.info/turkey-bowl-2009/img_7258' title='IMG_7258'><img width="150" height="150" src="http://www.davidgodfrey.info/wp-content/uploads/2009/12/IMG_7258-150x150.jpg" class="attachment-thumbnail" alt="IMG_7258" title="IMG_7258" /></a>
<a href='http://www.davidgodfrey.info/turkey-bowl-2009/img_7259' title='IMG_7259'><img width="150" height="150" src="http://www.davidgodfrey.info/wp-content/uploads/2009/12/IMG_7259-150x150.jpg" class="attachment-thumbnail" alt="IMG_7259" title="IMG_7259" /></a>

<p><a href="http://davidgodfrey.info/wp-content/uploads/2009/12/Thanksgiving.zip" onclick="pageTracker._trackPageview('/outgoing/davidgodfrey.info/wp-content/uploads/2009/12/Thanksgiving.zip?referer=');">Download the Zip file of all the images</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidgodfrey.info/turkey-bowl-2009/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kynetx Impact Conference</title>
		<link>http://www.davidgodfrey.info/kynetx-impact-conference</link>
		<comments>http://www.davidgodfrey.info/kynetx-impact-conference#comments</comments>
		<pubDate>Thu, 19 Nov 2009 21:22:18 +0000</pubDate>
		<dc:creator>David Godfrey</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.davidgodfrey.info/?p=84</guid>
		<description><![CDATA[I am so impressed by the thoughts and power behind the Kynetx Impact Conference. Working at BYU-I and working to build the new website, our focus has been expansion and change. We cannot build something that will hold the university and students back. The focus has been Web 3.0 and how relevant content must be [...]]]></description>
			<content:encoded><![CDATA[<p>I am so impressed by the thoughts and power behind the Kynetx Impact Conference. Working at BYU-I and working to build the new website, our focus has been expansion and change. We cannot build something that will hold the university and students back. The focus has been Web 3.0 and how relevant content must be delivered to the user. Kynetx is amazing and can really help us achieve what we need to.</p>
<p>From a university perspective, my co-workers and I have bounced a few ideas off each other. When students register, have ratemyprofessors.com information displayed on the professors that are teaching the classes the students are interested in. When it is time to buy books, have a kynetx app that will show the price differences between the university bookstore, amazon, and other textbook retailers. An annoying part of our website are the directories. How about a Kynetx app that will allow the person to e-mail the student/professor right from the directory page! (Only will work for those who&#8217;s privacy settings allow their e-mail addresses to be seen). We have had countless ideas! I don&#8217;t know that the university will approve anything, but even the ideas are shaping the way we, as web developers, think about the web.</p>
<p>We have really had a blast at this conference and have learned a ton! One of the fun things has been Simon, the IT Dummy. We are all a bunch of dummies, so we fit in really well with him! (See comments below for a link to view videos about Simon. They are pretty funny! -Thanks Matt!)</p>
<div id="attachment_85" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.davidgodfrey.info/wp-content/uploads/2009/11/43679000.jpg"><img class="size-medium wp-image-85" title="Simon and the Guys" src="http://www.davidgodfrey.info/wp-content/uploads/2009/11/43679000-300x200.jpg" alt="From left to right: David Godfrey, Simon the IT Dummy, Mark Warnik (lower) and Andre Kradolfer (upper)" width="300" height="200" /></a><p class="wp-caption-text">From left to right: David Godfrey, Simon the IT Dummy, Mark Warnik (lower) and Andre Kradolfer (upper)</p></div>
<p>I love how Kynetx used their own app to modify Google!</p>
<p><a href="http://www.davidgodfrey.info/wp-content/uploads/2009/11/Screen-shot-2009-11-19-at-11.43.21-AM.jpg"><img class="aligncenter size-medium wp-image-86" title="Kynetx_Google" src="http://www.davidgodfrey.info/wp-content/uploads/2009/11/Screen-shot-2009-11-19-at-11.43.21-AM-300x285.jpg" alt="Kynetx_Google" width="300" height="285" /></a></p>
<p>Everything considered, Kynetx is really cool It is definitely worth checking out. My next project is to make a kynetx app and put it on my website to show off!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidgodfrey.info/kynetx-impact-conference/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>To the Rescue</title>
		<link>http://www.davidgodfrey.info/to-the-rescue</link>
		<comments>http://www.davidgodfrey.info/to-the-rescue#comments</comments>
		<pubDate>Tue, 27 Oct 2009 05:53:23 +0000</pubDate>
		<dc:creator>David Godfrey</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.davidgodfrey.info/?p=73</guid>
		<description><![CDATA[So, This week has been terribly busy, and I need to really help a friend out. So, here you go Erica! Hope it helps! How to add a PDF]]></description>
			<content:encoded><![CDATA[<p>So, This week has been terribly busy, and I need to really help a friend out. So, here you go Erica! Hope it helps!</p>
<p><a rel="attachment wp-att-76" href="http://www.davidgodfrey.info/to-the-rescue/isuhd">How to add a PDF</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidgodfrey.info/to-the-rescue/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ingeniux Training!</title>
		<link>http://www.davidgodfrey.info/ingeniux-training</link>
		<comments>http://www.davidgodfrey.info/ingeniux-training#comments</comments>
		<pubDate>Wed, 21 Oct 2009 07:12:25 +0000</pubDate>
		<dc:creator>David Godfrey</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.davidgodfrey.info/?p=27</guid>
		<description><![CDATA[Today at work we had training for Ingeniux, the new CMS that we are implementing at BYU-I. I was kind of boring, I won&#8217;t lie, but I am excited to start getting my hands dirty. The servers are all set up, and our site should be delivered by the end of the week! That just [...]]]></description>
			<content:encoded><![CDATA[<p>Today at work we had training for Ingeniux, the new CMS that we are implementing at BYU-I. I was kind of boring, I won&#8217;t lie, but I am excited to start getting my hands dirty. The servers are all set up, and our site should be delivered by the end of the week! That just means, however, that we have to start getting beta ready. That is going to be a challenge! Mike took some great pictures!</p>

<a href='http://www.davidgodfrey.info/ingeniux-training/img_0099' title='IMG_0099'><img width="150" height="150" src="http://www.davidgodfrey.info/wp-content/uploads/2009/10/IMG_0099-150x150.jpg" class="attachment-thumbnail" alt="IMG_0099" title="IMG_0099" /></a>
<a href='http://www.davidgodfrey.info/ingeniux-training/img_0100' title='IMG_0100'><img width="150" height="150" src="http://www.davidgodfrey.info/wp-content/uploads/2009/10/IMG_0100-150x150.jpg" class="attachment-thumbnail" alt="IMG_0100" title="IMG_0100" /></a>
<a href='http://www.davidgodfrey.info/ingeniux-training/img_0101' title='IMG_0101'><img width="150" height="150" src="http://www.davidgodfrey.info/wp-content/uploads/2009/10/IMG_0101-150x150.jpg" class="attachment-thumbnail" alt="IMG_0101" title="IMG_0101" /></a>
<a href='http://www.davidgodfrey.info/ingeniux-training/img_0103' title='IMG_0103'><img width="150" height="150" src="http://www.davidgodfrey.info/wp-content/uploads/2009/10/IMG_0103-150x150.jpg" class="attachment-thumbnail" alt="IMG_0103" title="IMG_0103" /></a>
<a href='http://www.davidgodfrey.info/ingeniux-training/img_0106' title='IMG_0106'><img width="150" height="150" src="http://www.davidgodfrey.info/wp-content/uploads/2009/10/IMG_0106-150x150.jpg" class="attachment-thumbnail" alt="IMG_0106" title="IMG_0106" /></a>
<a href='http://www.davidgodfrey.info/ingeniux-training/img_0107' title='IMG_0107'><img width="150" height="150" src="http://www.davidgodfrey.info/wp-content/uploads/2009/10/IMG_0107-150x150.jpg" class="attachment-thumbnail" alt="IMG_0107" title="IMG_0107" /></a>

]]></content:encoded>
			<wfw:commentRss>http://www.davidgodfrey.info/ingeniux-training/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

