<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml"
>

<channel>
	<title>LiquidFoot &#187; Featured</title>
	<atom:link href="http://www.liquidfoot.com/category/featured/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.liquidfoot.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sat, 17 Apr 2010 16:36:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Library Search Google Gadget</title>
		<link>http://www.liquidfoot.com/2009/01/15/library-search-google-gadget/</link>
		<comments>http://www.liquidfoot.com/2009/01/15/library-search-google-gadget/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 16:26:18 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[igoogle]]></category>

		<guid isPermaLink="false">http://www.liquidfoot.com/?p=223</guid>
		<description><![CDATA[I’ve been going through a bunch of old stuff I’ve written as I clean up things. There will be a rash of posts where I take code I’ve written in different projects to see how things work and that are potentially useful, just no implemented in anything that I may need in the future. The first one here is some code for a Google gadget I wrote to search our online catalog a few years ago when the API was released.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been going through a bunch of old stuff I&#8217;ve written as I clean up things. There will be a rash of posts where I take code I&#8217;ve written in different projects to see how things work and that are potentially useful, just no implemented in anything that I may need in the future. The first one here is some code for a Google gadget I wrote to search our online catalog a few years ago when the API was released.</p>
<p>If you&#8217;re not one of the of the cool kids who uses <a href="http://www.google.com/ig">iGoogle</a>, you&#8217;ll need to set yourself up to use this code. I just looked at the <a href="http://code.google.com/apis/gadgets/docs/dev_guide.html">developer&#8217;s guide</a>, and it seems a bit more fleshed out than it was when I first took a whack at the code <img src='http://www.liquidfoot.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  The really cool thing about these gadgets is that they are essentailly just an XML file with some JavaScript/HTML thrown in.</p>
<p>I thought it might be a nice feature to just provide a search box for people to launch a catalog search. This is just a simple HTML form.</p>
<pre class="html">&amp;lt;form target="_parent" name="searchform" action="http://lion.wm.edu/uhtbin/cgisirsi/0/0/057/5" id="searchform"&gt;
    &amp;lt;input id="searchInput" style="width: 100%;" name="searchdata1" type="text" accesskey="f" /&gt;
    &amp;lt;input id="library" name="library" type="hidden" value="SWEM" /&gt;
    &amp;lt;input id="user_id" name="user_id" type="hidden" value="SWEPUB" /&gt;
    &amp;lt;input id="sourceid" name="sourceid" type="hidden" value="gadget" /&gt;
&amp;lt;/form&gt;</pre>
<p>This is just HTML code that you would use on any search page. Nothing fancy. Now on to creating the gadget..</p>
<p>There are two parts to the XML code for the spec. The root node (Module) has two elements, ModulePrefs and Content. The ModulePrefs element is relatively straight-forward:</p>
<pre class="xml">&amp;lt;ModulePrefs
    title="Swem Catalog Search"
    height="40"
    description="Search Swem's online catalog from iGoogle"
    author="Wayne Graham"
    author_email="dontspamme@gmail.com" screenshot=""
    author_location="Williamsburg, Virginia"
    title_url="http://swem.wm.edu"&gt;

    &amp;lt;Require feature="analytics" /&amp;gt;

&amp;lt;/ModulePrefs&amp;gt;</pre>
<p>The attributes of the ModulePrefs element (title, height, description, etc.) should be pretty self explanitory. I wanted to be able to track usage of the gadget, so I eneabled Google analytics for the widget by requiring the analytics feature. Now for the meat.</p>
<p>What I did was write a short CSS definition and some JavaScript to actually display a form in the Content element of the Module.</p>
<pre class="xml">&amp;lt;Content type="html"&amp;gt;&amp;lt;![CDATA[
&amp;lt;style&amp;gt;
    #subLibrary {
        font-family:arial, sans-serif;
        font-size:10px;
        color:#676767;
    }
    #link {
        font-family:Garamond, serif;
        font-size:32px;
        color:black;
        text-decoration:none;
    }
    #searchGoButton {
        font-weight:bold;
    }
&amp;lt;/style&amp;gt;
&amp;lt;script&amp;gt;
function displaySearchBar (prefs) {
    var lang = prefs.getString("mylang");

    if (lang == "") {
        lang = prefs.getString(".lang");
    }

    var html =
        '&amp;lt;form target="_parent" name="searchform" action="http://lion.wm.edu/uhtbin/cgisirsi/0/0/0/57/5" id="searchform"&amp;gt;' +
        '&amp;lt;table style="width:100%"&amp;gt;' +
        '&amp;lt;tr&amp;gt;' +
        '&amp;lt;td style="padding-bottom:4px"&amp;gt;' +
        '&amp;lt;a target="_parent" id="link" href="http://lion.wm.edu/uhtbin/webcat"&amp;gt;Catalog&amp;lt;/a&amp;gt;' +
        '&amp;lt;span style="vertical-align: sub;"&amp;gt;Swem&amp;lt;/span&amp;gt;' +
        '&amp;lt;/td&amp;gt;' +
        '&amp;lt;td width=100%&amp;gt;' +
        '&amp;lt;input id="searchInput" style="width:100%" name="searchdata1" type="text" accesskey="f" value="" /&amp;gt;' +
        '&amp;lt;input id="library" name="library" type="hidden" value="SWEM" /&amp;gt;' +
        '&amp;lt;input id="user_id" name="user_id" type="hidden" value="SWEPUB" /&amp;gt;' +
        '&amp;lt;input id="sourceid" name="sourceid" type="hidden" value="gadget" /&amp;gt;' +
        '&amp;lt;/td&amp;gt;' +
        '&amp;lt;td&amp;gt;' +
        '&amp;lt;input type="submit" name="go" id="searchGoButton" value="Search" /&amp;gt;' +
        '&amp;lt;/td&amp;gt;' +
        '&amp;lt;td&amp;gt;' +
        '&amp;amp;amp;nbsp;' +
        '&amp;lt;/td&amp;gt;' +
        '&amp;lt;/tr&amp;gt;' +
        '&amp;lt;/table&amp;gt;'
        '&amp;lt;form&amp;gt;';
    document.write(html);
}

displaySearchBar(new _IG_Prefs(__MODULE_ID__));
_IG_Analytics("analytics-id", "/google-gadget");
&amp;lt;/script&amp;gt;
]]&amp;gt;
&amp;lt;/Content&amp;gt;</pre>
<p>Once you&#8217;re done, you can test everything with the directions on the <a href="http://code.google.com/apis/gadgets/docs/tools.html">Developer Tools page</a>. There are even really nice resources to tell you how to <a href="http://code.google.com/apis/gadgets/docs/tools.html#Host">host this on Google Code</a>.</p>
<p>As a finished product, this is what the gadget looks like in iGoogle:</p>
<p><img class="alignnone size-medium wp-image-235" title="gadget" src="http://www.liquidfoot.com/wp-content/uploads/2009/01/gadget-300x46.png" alt="gadget" width="300" height="46" /></p>
<p>For the folks that use iGoogle as their home page, this can be valuable tool for them. Next up, I need to brush off my code for generating Sherlock/Opensearch extensions for Firefox and IE&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.liquidfoot.com/2009/01/15/library-search-google-gadget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Down with Reuters!</title>
		<link>http://www.liquidfoot.com/2008/09/26/down-with-reuters/</link>
		<comments>http://www.liquidfoot.com/2008/09/26/down-with-reuters/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 21:04:35 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[lawsuit]]></category>
		<category><![CDATA[reuters]]></category>
		<category><![CDATA[zotero]]></category>

		<guid isPermaLink="false">http://www.liquidfoot.com/?p=94</guid>
		<description><![CDATA[A couple of years I went to up the Center for History and New Media with a few folks here at William and Mary and talked with Roy Rosensweig about this cool new thing they were working on for Firefox. He told us the story of how they were searching for a name for this, and someone suggested they use Albanian. After looking up some words in the dictionary, they settled on Zotero. ]]></description>
			<content:encoded><![CDATA[<p>A couple of years I went to up the Center for History and New Media with a few folks here at William and Mary and talked with Roy Rosensweig about this cool new thing they were working on for Firefox. He told us the story of how they were searching for a name for this, and someone suggested they use Albanian. After looking up some words in the dictionary, they settled on Zotero.</p>
<p>To me, it is one of the most import and useful tools any scholar can posses. My one gripe with it was that if you were working on something on a computer at say, work, and then went home to do more work, there wasn&#8217;t a great way to syncrhonize everything. I resourced to <a href="http://portableapps.com/apps/internet/firefox_portable">portable Firefox</a> on a USB stick which worked reasonably well. Now, with the <a href="http://www.zotero.org/documentation/sync_preview">1.5 Synch preview</a>, I don&#8217;t need that any more. I can even synch it up to my server (I set up my own WebDAV and store my docs on that system).</p>
<p>Needless to say, I&#8217;m a huge fan. It&#8217;s not quite FOSS (which would just top this off), but it&#8217;s pretty close. Shoot, I even recently got a questionnaire about Zotero use for an article from a Law student.</p>
<p>Anyway, the point of all of this rambling is to set up my absolute disgust when I read Reuters (makers of End Note) are <a href="http://www.courthousenews.com/2008/09/17/Reuters_Says_George_Mason_University_Is_Handing_Out_Its_Proprietary_Software.htm">suing George Mason for Zotero</a> for $10,000,000. It seems Zotero&#8217;s ability to convert its proprietary &#8220;ens&#8221; format into Zotero violates its copyright.</p>
<p>Hopefully they won&#8217;t sue the Vufind project for allowing people to download references into End Note. Shoot, at this point, I&#8217;m ready to make it not a feature on principal&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.liquidfoot.com/2008/09/26/down-with-reuters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enough is Enough!</title>
		<link>http://www.liquidfoot.com/2008/09/15/enough-is-enough/</link>
		<comments>http://www.liquidfoot.com/2008/09/15/enough-is-enough/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 16:35:47 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Football]]></category>
		<category><![CDATA[detroit lions]]></category>
		<category><![CDATA[nfl]]></category>
		<category><![CDATA[redskins]]></category>
		<category><![CDATA[steelers]]></category>

		<guid isPermaLink="false">http://www.liquidfoot.com/?p=87</guid>
		<description><![CDATA[Growing up, I didn't watch football. When I got to college, it was one of the few pleasures I had on Sundays while stuck on post at VMI. At that point, I picked the Detroit Lions as the team to pull for. Bobby Ross was the head coach (a VMI alum), Barry Sanders was still playing, and they were actually showing games on, and Matt Millen had yet to make his mark on the team. However, it's become more and more difficult to actually keep rooting for them.]]></description>
			<content:encoded><![CDATA[<p>Growing up, I didn&#8217;t watch football. When I got to college, it was one of the few pleasures I had on Sundays while stuck on post at VMI. At that point, I picked the Detroit Lions as the team to pull for. Bobby Ross was the head coach (a VMI alum), Barry Sanders was still playing, and they were actually showing games on, and Matt Millen had yet to make his mark on the team. However, it&#8217;s become more and more difficult to actually keep rooting for them.</p>
<p>Living in Virginia, it&#8217;s been difficult to catch games&#8230;though I see highlights of other teams running all over them all the time. With yesterday&#8217;s absolute shellacking by the Packers, I&#8217;ve come to the point that I am renoucing the Lions as &#8220;my team.&#8221;</p>
<p>For the rest of the season, I will just be a fan of football as I evaluate other teams to pick a new team to root for. Since this decision is a long-time coming, I have two preliminary front-runners, though this is all subject to change, based on my whims <img src='http://www.liquidfoot.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  &#8230;</p>
<p>Washington Redskins: They&#8217;re geographically close, so I can watch all their games. Another plus is that a close friend of mine has a bunch of season tickets. They&#8217;ve got a pretty talented offense, though the head coach I think may need a year or two to get good at the job.</p>
<p>Pittsburgh Steelers: Mike Tomlin is a William and Mary alum and was a coach at VMI when I was there. He&#8217;s from Newport News and is always giving talks to kids down there. They&#8217;re one of the most storied franchises, though the mess with the NFL&#8217;s meddling to keep the Rooney&#8217;s in an ownership role disturbs me a bit.</p>
<p>I think some of my criteria for choosing a new team will revolve around the stability in the head office, the current coach&#8217;s and players, geographic location, and future projects, along with past treatment of players. This may also expand, but as of right now, I&#8217;m in the market for a team.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.liquidfoot.com/2008/09/15/enough-is-enough/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Choosing a PHP Framework</title>
		<link>http://www.liquidfoot.com/2008/09/03/choosing-a-php-framework/</link>
		<comments>http://www.liquidfoot.com/2008/09/03/choosing-a-php-framework/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 14:39:22 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[neh]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://www.liquidfoot.com/?p=38</guid>
		<description><![CDATA[I&#8217;m working on an NEH funded collaborative research grant entitled &#8220;Measuring the Social, Spatial, and Temporal Dimensions of Virginia Slave Housing.&#8221; The project is exciting because it&#8217;s taking existing architectural, archaeological, and documentary evidence to create a standard presentation for the information. A perhaps more important, though secondary (or I dare say tertiary) part is [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working on an NEH funded collaborative research grant entitled &#8220;Measuring the Social, Spatial, and Temporal Dimensions of Virginia Slave Housing.&#8221; The project is exciting because it&#8217;s taking existing architectural, archaeological, and documentary evidence to create a standard presentation for the information. A perhaps more important, though secondary (or I dare say tertiary) part is a standardized form for recording the information in the field. Right now most of this information is in varying levels of completeness, based mostly on the researcher and the sponsoring institution&#8217;s goals.</p>
<p>So, through the process of generating the database schema, we developed about 25 relational tables that record varying degrees of information. The basic idea is that there is a meta-object (a site) that contains one-or-more buildings. Each of these buildings can have a one-or-more phases (adding editions) and then each phase has additional information on a room-by-room basis (doors, windows, fire places, etc.).</p>
<p>I had built a similar database for a project looking at Chesapeake architecture for the Jamestown 400th anniversary celebrations (<a href="http://www.historycooperative.org/journals/wm/64.3/graham.html">Adaptation and Innovation: Archaeological and Architectural Perspectives on the Seventeenth-Century Chesapeake</a>) in ColdFusion using <a href="http://trac.reactorframework.com/">Reactor</a> with an MSSQL backend. However, this project requied slightly different specs as it is being hosted in a different location that doesn&#8217;t offer ColdFusion hosting. They have the basic *AMP stack, so I started looking around at the different PHP frameworks to aid in the development of the application.</p>
<p>After a little investigation, I narrowed down the choices to what I&#8217;m calling the Big-Three: <a href="http://framework.zend.com/en/">Zend</a>, <a href="http://codeigniter.com/">CodeIgniter</a>, and <a href="http://cakephp.org/">CakePHP</a> (yes, I know there are more). While looking at these, I needed something that I can pick up quickly, let&#8217;s me quickly build the different forms needed to populate the information, have a sizable community to help solve issues that pop up, and also be flexible enough to quickly change the database backend when needed (and when working with academics, this happens more than you really want it to).</p>
<p>Zend has some great features. It&#8217;s backed by a company (Zend) who provides training. They have support and training courses, but this is a for-profit company, so the cost is a bit prohibitive for a small research project (with very little funding). Their site does provide good documentation, video examples, and a really cool integration with Lucene (<a href="http://framework.zend.com/manual/en/zend.search.lucene.html">Zend_Search_Lucene</a>). I thought the <a href="http://framework.zend.com/docs/quickstart">QuickStart</a> was a bit on the light side, but thought it had a really rich feature set (at least for what I need it to do).</p>
<p>Next up was <a href="http://codeigniter.com/">CodeIgniter</a>. I was a bit dazzled by this. I liked it small footprint and it seemed lighter and didn&#8217;t have strict naming conventions. It also had scaffolding! This is quite important in the development process as the database backend will change through the course of the site development. I know, it&#8217;s not a good idea to put this into a production environment, but we&#8217;re talking about maybe two other people working on this at one time. The video tutorials are pretty nice, and there seemed to be a good group of folks adding content all the time. There are some nice authentication libraries (FreakAuth) and it&#8217;s pretty easy to get something up on the screen.</p>
<p>I had played (briefly) with <a href="http://cakephp.org/">cakePHP</a> over the summer. I was intriged with &#8220;baking&#8221; the application (the metaphore gets a bit overplayed). Essentially they developed a script that will take the scaffolding and then generate the basic models, views, and controllers for the application. It even goes a step further with login permissions (though there&#8217;s a bit of manual updating there). I didn&#8217;t really dig how they really push the naming conventions, but I quickly figured out how to over ride most of them.</p>
<p>In the end, I&#8217;ve decided to go with cakePHP for this application. I really liked the fact that I could get away with writing very little code and generate most of what I&#8217;ll need to get the administrative backend up-and-running. I may be disappointed in this decision, but as I make progress on the project, I&#8217;ll add more posts on some of the pit-falls and successes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.liquidfoot.com/2008/09/03/choosing-a-php-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook App</title>
		<link>http://www.liquidfoot.com/2008/07/18/facebook-app/</link>
		<comments>http://www.liquidfoot.com/2008/07/18/facebook-app/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 12:43:32 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[google code]]></category>
		<category><![CDATA[smarty]]></category>

		<guid isPermaLink="false">http://www.liquidfoot.com/?p=17</guid>
		<description><![CDATA[Phil and I (mostly Phil) have been working on getting the code for our Facebook application ready to be released on Google Code. Phil has done a phenomenal job in getting the code ported to FBML so we don’t have to use the lib_gd stuff any more to generate images. We also rewrote it using [...]]]></description>
			<content:encoded><![CDATA[<p>Phil and I (mostly Phil) have been working on getting the code for our Facebook application ready to be released on Google Code. Phil has done a phenomenal job in getting the code ported to FBML so we don’t have to use the lib_gd stuff any more to generate images. We also rewrote it using Smarty templates. As a brief aside, I’m not sure why I haven’t been using this for a while. It really is a great framework for the majority of what I need to do.</p>
<p>If you’re interested, you can check out the code at <a title="Facebook Athenaeum" href="http://code.google.com/p/facebook-athenaeumhttp://code.google.com/p/facebook-athenaeum">http://code.google.com/p/facebook-athenaeum</a>. There are a few more features to add in, but it does work rather nicely, and a lot faster than our previous version. The slowest thing is the asynchronous post to the MySQL server (the longest time we recorded was 111ms), but since that happens in the background, you don’t even notice.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.liquidfoot.com/2008/07/18/facebook-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
