<?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>MattPardee.com</title>
	<atom:link href="http://mattpardee.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mattpardee.com</link>
	<description>Matt Pardee&#039;s Web Design &#38; Musings</description>
	<lastBuildDate>Fri, 03 Jul 2009 21:36:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>CSS Tutorial: Setting the Z-Index Order (OMG the Web in 3D)</title>
		<link>http://mattpardee.com/2009/04/css-setting-z-index-order-look-ma-the-web-in-3d/</link>
		<comments>http://mattpardee.com/2009/04/css-setting-z-index-order-look-ma-the-web-in-3d/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 05:37:52 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wherewe.at/?p=201</guid>
		<description><![CDATA[I&#8217;ve been getting a few hits on my site about creating an overlapping, tabbed horizontal navigation, but a lot of searchers just want to know about setting the z-index order to overlap elements. Here&#8217;s a nuts and bolts tutorial. HTML &#38; CSS code is at the bottom. Let&#8217;s say you have these two boxes&#8230; #demo_box_orange [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been getting a few hits on my site about creating an <a href="http://wherewe.at/?p=152">overlapping, tabbed horizontal navigation</a>, but a lot of searchers just want to know about setting the z-index order to overlap elements. Here&#8217;s a nuts and bolts tutorial. HTML &amp; CSS code is at the bottom.</p>
<p>Let&#8217;s say you have these two boxes&#8230;</p>
<p><style type="text/css">
#demo_box_orange { width: 40px; height: 40px; border: 1px solid blue; background-color: orange; }
#demo_box_purple { width: 40px; height: 40px; border: 1px solid green; background-color: purple; }
</style></p>
<div id="demo_box_orange"></div>
<div id="demo_box_purple"></div>
<p>&#8230;and you want to overlap one on top of the other. To do so you <strong>must set two properties</strong>: <em>z-index</em> and <em>position</em>. If you want to use the z-index property, you are <strong>required</strong> to change the element&#8217;s position property.</p>
<p>For the sake of this nuts-n-bolts demonstration I&#8217;m going to set both Orange and Purple&#8217;s position to <em>relative</em>. First I&#8217;ll move Purple up, so I&#8217;m going to set its position to relative, and its <em>top</em> property to -10px. I&#8217;m also going to move it over 10px horizontally (<em>left: 10px</em>) so that you can see where it is in relation to Orange. </p>
<p><style type="text/css">
#demo_box_orange2 { width: 40px; height: 40px; border: 1px solid blue; background-color: orange; }
#demo_box_purple2 { position: relative; top: -10px; left: 10px; width: 40px; height: 40px; border: 1px solid green; background-color: purple; }
</style></p>
<div id="demo_box_orange2"></div>
<div id="demo_box_purple2"></div>
<p>See how Purple&#8217;s box is on top of Orange? That behavior is, by default, a matter of their linear order in the HTML (purple comes after orange, so it&#8217;s on top). Note that you don&#8217;t have to set Purple&#8217;s z-index to achieve this effect, but to emphasize the behavior it is recommended that you put &#8220;z-index: 1&#8243; in Purple&#8217;s styling (IF this is your desired outcome). If, however, you want Orange on top then you must set Orange&#8217;s z-index to 1. This is reflected in the demo and code below:</p>
<p><style type="text/css">
#demo_box_orange3 { z-index: 1; position: relative; width: 40px; height: 40px; border: 1px solid blue; background-color: orange; }
#demo_box_purple3 { position: relative; top: -10px; left: 10px; width: 40px; height: 40px; border: 1px solid green; background-color: purple; }
</style></p>
<div id="demo_box_orange3"></div>
<div id="demo_box_purple3"></div>
<h2>The Code</h2>
<pre>
< style type = "text/css" >
     #demo_box_orange { z-index: 1; position: relative; width: 40px; height: 40px; border: 1px solid blue; background-color: orange; }
     #demo_box_purple { position: relative; top: -10px; left: 10px; width: 40px; height: 40px; border: 1px solid green; background-color: purple; }
< /style >
< div id="demo_box_orange" >< /div >
< div id="demo_box_purple" >< /div >
</pre>
]]></content:encoded>
			<wfw:commentRss>http://mattpardee.com/2009/04/css-setting-z-index-order-look-ma-the-web-in-3d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Overlapping Tabbed Navigation Using Z-Index and Relative Positioning</title>
		<link>http://mattpardee.com/2009/03/css-layered-tabs-navigation-without-image-splicing/</link>
		<comments>http://mattpardee.com/2009/03/css-layered-tabs-navigation-without-image-splicing/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 09:16:55 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://wherewe.at/?p=152</guid>
		<description><![CDATA[In this tutorial I will demonstrate how to create a layered tab navigation (hover your mouse over the tabs): Home Products Support Contact About To accomplish this, you can use a combination of a PNG image with alpha-transparency and CSS, using the z-index and position properties. Please note: because the code uses a PNG with [...]]]></description>
			<content:encoded><![CDATA[<p>In this tutorial I will demonstrate how to create a layered tab navigation (hover your mouse over the tabs):</p>
<ul id="demo_navigation4">
<li id="demo_nav_home4"><a href="#">Home</a></li>
<li id="demo_nav_prod4" class="active"><a href="#">Products</a></li>
<li id="demo_nav_support4"><a href="#">Support</a></li>
<li id="demo_nav_contact4"><a href="#">Contact</a></li>
<li id="demo_nav_about4"><a href="#">About</a></li>
</ul>
<div class="clear_left"></div>
<p>To accomplish this, you can use a combination of a PNG image with alpha-transparency and CSS, using the z-index and position properties.</p>
<p>Please note: because the code uses a PNG with alpha-transparency and background-image positioning rules, <strong>this demo does not work for IE versions 6.0 and below</strong>. However, the demonstration of the CSS rules used to layer tabs is valuable information, and <strong>you will find it useful in your quest to create a layered navigation</strong>.</p>
<h3>1. Setting up our horizontal navigation</h3>
<p>This navigation follows three basic rules:</p>
<ol>
<li>The list items float left</li>
<li>The anchor tag inside each list item fills the entire tab</li>
<li>The anchor&#8217;s background images are PNGs with transparency</li>
</ol>
<p>To fulfill rule #3, here&#8217;s a nice <a title="Article on CSS Sprites" href="http://www.alistapart.com/articles/sprites/">sprite</a> for our background-imaged tabs; from top to bottom, they are the <em>active </em>tab, <em>hover</em> tab, and <em>default </em>tab:</p>
<p><img class="alignnone size-full wp-image-160" title="nav_bgs" src="http://wherewe.at/wp-content/uploads/2009/03/product_nav_li_bgs.png" alt="nav_bgs" width="132" height="93" /></p>
<p><strong>Remember: </strong>The images, or combination of images like I&#8217;ve used above, must have transparent &#8220;edges&#8221; &#8211; in this case, the &#8220;whitespace&#8221; beyond the curved areas of the tabs.</p>
<p>The HTML:</p>
<pre>&lt;ul id="demo_navigation"&gt;
     &lt;li&gt;&lt;a href="/"&gt;Home&lt;/a&gt;&lt;/li&gt;
     &lt;li class="active"&gt;&lt;a href="/products.php"&gt;Products&lt;/a&gt;&lt;/li&gt;
     &lt;li&gt;&lt;a href="/support.php"&gt;Support&lt;/a&gt;&lt;/li&gt;
     &lt;li&gt;&lt;a href="/contact.php"&gt;Contact&lt;/a&gt;&lt;/li&gt;
     &lt;li&gt;&lt;a href="/about.php"&gt;About&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</pre>
<p>And CSS:</p>
<pre>#demo_navigation { list-style-type: none; }
#demo_navigation li { float: left; }
#demo_navigation li a {
     display: block;
     width: 132px;
     line-height: 31px;
     text-align: center;
     color: #000;
     background: transparent url('/wp-content/uploads/2009/03/product_nav_li_bgs.png')
          bottom left no-repeat;
}
#demo_navigation li a:hover {
     text-decoration: none;
     background: transparent url('/wp-content/uploads/2009/03/product_nav_li_bgs.png')
          0px -31px no-repeat;
}
#demo_navigation li.active a {
     color: #fff;
     background: transparent url('/wp-content/uploads/2009/03/product_nav_li_bgs.png')
          0 0 no-repeat;
}</pre>
<p>Result:</p>
<ul id="demo_navigation2">
<li><a href="#">Home</a></li>
<li class="active"><a href="#">Products</a></li>
<li><a href="#">Support</a></li>
<li><a href="#">Contact</a></li>
<li><a href="#">About</a></li>
</ul>
<div class="clear_left"></div>
<h3>2. Shift your tabs over with position: relative</h3>
<p>When you set an element to have the property &#8220;position: relative;&#8221; you are setting up the element to be moved <em>relative to where it is originally positioned</em>. Moving an element from where it is originally implies the use of the <em>top, right, bottom </em>and <em>left</em> properties. So for example, you have this box:</p>
<pre>[]</pre>
<p>To move it +15 pixels from its original left position you set the <em>position</em> and <em>left</em> properties as such:</p>
<pre>#box {
     position: relative;
     left: 15px;
}</pre>
<p>And where is that box now?</p>
<pre>   []</pre>
<p>So perhaps you can begin to see, if we want layered tabs, we simply have to shift tab 2, 3, 4 and 5 <em>negatively</em> <em>left</em> from their original positions. Remember though, for each tab you shift over, that means you have to accommodate for that shift in the next tab you move over.</p>
<ul>
<li>If the first tab shifts 8 pixels left&#8230;</li>
<li>The second tab will shift 16 pixels left</li>
<li>Third tab shifts 24 pixels</li>
<li>etc etc</li>
</ul>
<p>These distinct rules for each tab require us to create IDs for each list item. The updated HTML (updates in <strong>bold</strong>):</p>
<pre>&lt;ul id="demo_navigation"&gt;
     &lt;li <strong>id="demo_nav_home"</strong>&gt;&lt;a href="/"&gt;Home&lt;/a&gt;&lt;/li&gt;
     &lt;li <strong>id="demo_nav_prod"</strong> class="active"&gt;&lt;a href="/products.php"&gt;Products&lt;/a&gt;&lt;/li&gt;
     &lt;li <strong>id="demo_nav_support"</strong>&gt;&lt;a href="/support.php"&gt;Support&lt;/a&gt;&lt;/li&gt;
     &lt;li <strong>id="demo_nav_contact"</strong>&gt;&lt;a href="/contact.php"&gt;Contact&lt;/a&gt;&lt;/li&gt;
     &lt;li <strong>id="demo_nav_about"</strong>&gt;&lt;a href="/about.php"&gt;About&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</pre>
<p>And the CSS, now with relative positioning:</p>
<pre>#demo_navigation { list-style-type: none; }
#demo_navigation li {
     float: left;
     <strong>position: relative;</strong>
}
#demo_navigation li a {
     display: block;
     width: 132px;
     line-height: 31px;
     text-align: center;
     color: #000;
     background: transparent url('/wp-content/uploads/2009/03/product_nav_li_bgs.png')
          bottom left no-repeat;
}
#demo_navigation li a:hover {
     text-decoration: none;
     background: transparent url('/wp-content/uploads/2009/03/product_nav_li_bgs.png')
          0px -31px no-repeat;
}
#demo_navigation li.active a {
     color: #fff;
     background: transparent url('/wp-content/uploads/2009/03/product_nav_li_bgs.png')
          0 0 no-repeat;
}

<strong>#demo_nav_prod { left: -12px; }
#demo_nav_support { left: -24px; }
#demo_nav_contact { left: -36px; }
#demo_nav_about { left: -48px; }</strong></pre>
<p>Result:</p>
<ul id="demo_navigation3">
<li id="demo_nav_home"><a href="#">Home</a></li>
<li id="demo_nav_prod" class="active"><a href="#">Products</a></li>
<li id="demo_nav_support"><a href="#">Support</a></li>
<li id="demo_nav_contact"><a href="#">Contact</a></li>
<li id="demo_nav_about"><a href="#">About</a></li>
</ul>
<div class="clear_left"></div>
<h3>3. Polishing with z-index</h3>
<p>Now we have this great layered navigation, but the tabs perhaps aren&#8217;t layered in the most intuitive fashion. For instance, we&#8217;ll probably want the active tab to be on top of them all, and we may want the default layering scheme to be descending left-to-right, so Home is atop all the rest, and About is on the bottom.</p>
<p>Here&#8217;s where z-indexing comes into play.</p>
<p>The z-index property &#8220;sets the stack order of an element. An element with greater stack order is always in front of another element with lower stack order.&#8221; So, if we want the Contact link to be above About, then we set Contact&#8217;s z-index to 1 (z-index: 1). Then, if we want Support above Contact, we set Support&#8217;s z-index to 2. So on and so forth&#8230; until we decide that we want the active tab, no matter which it is, to be above the rest. So we count the number of tabs, and set the active tab (as referenced by &#8220;.active&#8221;) to have a z-index: tab_count;</p>
<p>In this case, we have 5 navigation elements, so we would set the z-index of the .active element to 5. Now, our updated and final CSS:</p>
<pre>#demo_navigation { list-style-type: none; }
#demo_navigation li {
     float: left;
     position: relative;
}
#demo_navigation li a {
     display: block;
     width: 132px;
     line-height: 31px;
     text-align: center;
     color: #000;
     background: transparent url('/wp-content/uploads/2009/03/product_nav_li_bgs.png')
            bottom left no-repeat;
}
#demo_navigation li a:hover {
     text-decoration: none;
     background: transparent url('/wp-content/uploads/2009/03/product_nav_li_bgs.png')
            0px -31px no-repeat;
}
#demo_navigation li.active a {
     color: #fff;
     background: transparent url('/wp-content/uploads/2009/03/product_nav_li_bgs.png')
            0 0 no-repeat;
}

<strong>#demo_navigation li.active { z-index: 5; }

</strong><strong>#demo_nav_home { z-index: 4; }</strong>
#demo_nav_prod { left: -12px; <strong>z-index: 3; </strong>}
#demo_nav_support { left: -24px; <strong>z-index: 2; </strong>}
#demo_nav_contact { left: -36px; <strong>z-index: 1; </strong>}
#demo_nav_about { left: -48px; <strong>z-index: 0; </strong>}</pre>
<p>And here is the final product, in all its layered glory:</p>
<ul id="demo_navigation4">
<li id="demo_nav_home4"><a href="#">Home</a></li>
<li id="demo_nav_prod4" class="active"><a href="#">Products</a></li>
<li id="demo_nav_support4"><a href="#">Support</a></li>
<li id="demo_nav_contact4"><a href="#">Contact</a></li>
<li id="demo_nav_about4"><a href="#">About</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mattpardee.com/2009/03/css-layered-tabs-navigation-without-image-splicing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Widget-ready WordPress theme: Fadtastic</title>
		<link>http://mattpardee.com/2009/01/wordpress-widget-ready-fadtastic-theme/</link>
		<comments>http://mattpardee.com/2009/01/wordpress-widget-ready-fadtastic-theme/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 18:06:50 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Themes]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://wherewe.at/?p=145</guid>
		<description><![CDATA[Recently I worked for a client who needed his WordPress theme upgraded to be widget-capable. The theme he uses is Fadtastic, and since it is freely available to the public, I decided to re-release the modified widget-capable version here. Download (fadtastic_theme_widgetized.zip)]]></description>
			<content:encoded><![CDATA[<p>Recently I worked for a client who needed his WordPress theme upgraded to be widget-capable. The theme he uses is <a href="http://fadtastic.net/theme/">Fadtastic</a>, and since it is freely available to the public, I decided to re-release the modified widget-capable version here.</p>
<p><a href="/uploads/fadtastic_theme_widgetized.zip">Download</a> (<em>fadtastic_theme_widgetized.zip</em>)</p>
]]></content:encoded>
			<wfw:commentRss>http://mattpardee.com/2009/01/wordpress-widget-ready-fadtastic-theme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing the MySpace and MySpace Mobile PHP Classes</title>
		<link>http://mattpardee.com/2008/12/introducing-the-myspace-and-myspace-mobile-php-class/</link>
		<comments>http://mattpardee.com/2008/12/introducing-the-myspace-and-myspace-mobile-php-class/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 10:50:17 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Progressive]]></category>
		<category><![CDATA[Social Networks]]></category>

		<guid isPermaLink="false">http://wherewe.at/?p=68</guid>
		<description><![CDATA[Update 2-26-09: After just testing my demo page, it looks like either one or both of the classes aren&#8217;t working. I don&#8217;t have any major motivations to fix them, because I&#8217;m too busy with other projects to deal with MySpace changing their HTML. I&#8217;m sure that the fix is easy&#8230; some pattern in one of [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update 2-26-09</strong>: After just testing my demo page, it looks like either one or both of the classes aren&#8217;t working. I don&#8217;t have any major motivations to fix them, because I&#8217;m too busy with other projects to deal with MySpace changing their HTML. I&#8217;m sure that the fix is easy&#8230; some pattern in one of the preg_matches probably needs a little tweaking. MySpace often changes the way they output their HTML, so I&#8217;m not surprised. If anyone has any interest in continuing development of these classes and wants to send me an update, I&#8217;m sure others would appreciate it. I will update more if I decide to crack this nut once again.</p>
<p><strong>Update 12-20-08</strong>: The myspace class has been updated to reflect changes in the way MySpace outputs the HTML for friend listing pages. Download link is the same.</p>
<p><strong>Presenting two MySpace classes:</strong></p>
<ul>
<li>MySpace Mobile</li>
<li>MySpace.com</li>
</ul>
<p>programmed in PHP and released under the GPL. <a href="http://wherewe.at/myspace_classes.zip">Download both classes here</a><em> (myspace_classes.zip).<br />
</em></p>
<p>These classes provide basic profile and friend scraping functionality. My intention in programming them was to free personal &amp; relationship data from MySpace for use in other applications. They were <em><strong>not</strong></em> created for spamming or other nefarious kinds of activities.</p>
<p>Each has their strengths and weaknesses. Used together, they can be very powerful. Here&#8217;s a brief breakdown:</p>
<h2>MySpace Mobile</h2>
<p>MySpace Mobile (located at m.myspace.com) is extremely useful for easily extracting user-entered profile information. Profile info is broken up into 6 categories:</p>
<ul>
<li>Interests and Personality</li>
<li>Basic Info</li>
<li>Background and Lifestyle</li>
<li>Schools</li>
<li>Companies</li>
<li>Networking</li>
</ul>
<p>&#8220;Basic Info&#8221; for instance, contains Gender, Occupation, City, Ethnicity, etc. It&#8217;s easy to extract this info from MySpace Mobile because it lays it out in easy-to-match HTML. Look at this DOM view of MySpace Mobile&#8217;s &#8220;Basic Info&#8221; section:</p>
<p><img class="alignnone" style="border: 1px solid black;" title="MySpace Mobile DOM tree" src="http://www.wherewe.at/wp-content/uploads/Picture 6.png" alt="" width="161" height="131" /></p>
<p>Talk about a breeze with preg_match&#8230;</p>
<p>For my purposes I found <em>Interests &amp; Personality</em>, <em>Basic Info</em> and <em>Background &amp; Lifestyle</em> to be the most interesting, and thus only included them as part of the profile parsing functionality. It wouldn&#8217;t be difficult to extend this to <em>Schools</em>, <em>Companies</em> and <em>Networking</em>.</p>
<p>Unfortunately MySpace Mobile is <strong>excrutiatingly slow</strong> compared to MySpace.com. In my tests, it takes about 0.5 seconds to grab a friend&#8217;s <em>Basic Info</em>. This might seem fast but that means grabbing 300 friends&#8217; info would take ~150 seconds or 2 1/2 minutes. In fact it would normally take longer but I set up cURL to TIMEOUT after 2 seconds; in the event that a page takes longer than 2 seconds to load, the request will drop, and the class will try one more time to grab the page. This will sometimes result in pages dropped completely. The TIMEOUT value can be easily adjusted to your liking.</p>
<h2>MySpace</h2>
<p>The MySpace class is primarily useful for quickly grabbing all of a user&#8217;s friends&#8217; <em>rudimentary</em> info: Profile ID, Main Image, and Name. In my tests, grabbing between 300 and 400 friends took about 2 seconds. Grabbing 70 friends took 1.5 seconds.</p>
<p>&#8220;Grabbing&#8221; friends means the class will return a 2D array of your friends&#8217; info. In this example:</p>
<pre style="padding-left: 30px;">$test = new myspace();
$test-&gt;login("username", "password");
$my_friends = $test-&gt;grabFriendBasics($test-&gt;myID);</pre>
<p>$my_friends will be an array with the following indices: ['name'], ['img_url'] and ['id']. They each will contain the same number of values, e.g. if you have 70 friends then <em>name, img_url </em>and <em>id </em>will all have 70 values each, in the order in which your friends are displayed on your friend listing pages.</p>
<h2>Together</h2>
<p>I have found the most interesting utility in using the MySpace class to grab all rudimentary friend info, and then using those friend IDs to grab all demographic info with MySpace Mobile. Here&#8217;s an example:</p>
<pre style="padding-left: 30px;">$rud = new myspace();
$rud-&gt;login("username", "password");
$my_friends = $rud-&gt;grabFriendBasics($rud-&gt;myID);

$msm = new myspace_m();
$msm-&gt;login("username", "password");
for($i = 0; $i &lt; count($my_friends['id']); $i++) {
     $details = $msm-&gt;getFriendDetails($my_friends['id'][$i], array("basic"));
     // If first iteration, output the structure of the Basic info listing
     if($i == 0) {
          print_r($details['basic_def']);
     }
     print_r($details['basic']);
}</pre>
<p>Of course, I don&#8217;t expect these classes to necessarily be used for what I&#8217;ve set them up for. <strong>If you have any feature requests, leave a comment below.</strong></p>
<p>For a live demonstration of simple functionality, along with more code examples, check out the <a href="/?page_id=82">Demo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattpardee.com/2008/12/introducing-the-myspace-and-myspace-mobile-php-class/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Freebase Hackday &#8217;08 &#8211; Observations, Questions</title>
		<link>http://mattpardee.com/2008/11/freebase-hackday-08/</link>
		<comments>http://mattpardee.com/2008/11/freebase-hackday-08/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 18:25:04 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Open data]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[fbhd08]]></category>

		<guid isPermaLink="false">http://wherewe.at/?p=41</guid>
		<description><![CDATA[I&#8217;m here at Freebase&#8217;s Hackday &#8217;08 and things are just getting started. I have been interested in the Semantic Web for a couple years now, and though Freebase&#8217;s Metaweb technology didn&#8217;t originally provide an RDF interface, Freebase now has an RDF endpoint. The Metaweb Query Language (MQL) is much more intuitive to me but I [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m here at Freebase&#8217;s Hackday &#8217;08 and things are just getting started. I have been interested in the Semantic Web for a couple years now, and though Freebase&#8217;s Metaweb technology didn&#8217;t originally provide an RDF interface, <a href="http://blog.freebase.com/2008/10/30/introducing_the_rdf_service/">Freebase now has an RDF endpoint</a>. The <a title="MQL Reference Guide" href="http://mql.freebaseapps.com/">Metaweb Query Language</a> (MQL) is much more intuitive to me but I think RDF has a much bigger payoff in the end as a W3C recommendation. I&#8217;m looking forward to attending talks on interfacing with Metaweb using RDF..</p>
<p>On another note, the theme of today&#8217;s gathering is &#8220;Open Government.&#8221; I remember hearing a call recently for developers to work on more beneficial, perhaps humanitarian applications. Applications that will make everyday tasks easier to accomplish, and the important things easier to find. Doctor&#8217;s appointments, accurate medical information, transparency of gov&#8217;t, etc&#8230;. talks are starting. Will update soon.</p>
<p><strong>Post-Hackday Update</strong></p>
<p>Instead of going into detail on the different sessions I attended, I should just get straight to the point: Freebase, I like the idea of your mission. I appreciate the open-ended nature of your system and the ease of using the MQL. But I can&#8217;t help but feel like you&#8217;re in a blind race to beat everyone to the structured-data punch. Where are the killer apps? Your GIX framework for mashing, say, points of architectural interest onto a map of Marin County, is not very new or interesting. I know examples like that are watered-down versions of more complex applications for the sake of demonstration, but really &#8211; I have yet to see anything out of Freebase or the use of Freebase that has really blown my mind.</p>
<p>This is by no means a final judgment. I hold out for the day I see a killer application based on Freebase technologies. But I think the Semantic Web revolution will depend on information that contains meaning and utility for our vocational and personal lives. That includes social networks, e-mails, text messages, data on our hard drives&#8230;</p>
<p>So I leave with a few questions for the Freebase community: will Freebase&#8217;s &#8220;bases&#8221; technology enable this kind of user-centric information warehousing? Will there be a point (or does it exist already) where I can submit to Freebase a FOAF file of all my friends on MySpace and query it with the MQL? Obviously there are privacy concerns, so is Freebase going to give the average user leverage for maintaining their own data?</p>
<p>All-in-all I had a good time at Freebase. I met some cool people who helped me gain a better understanding of the structure of MQL queries, and technologies available to do work on my own projects (thanks <a href="http://www.freebase.com/view/user/jamslevy">James Levy</a>!). And, who doesn&#8217;t love a t-shirt with a rhino holding a flag? Thank you to everyone at Freebase for making the day light-hearted and fun.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattpardee.com/2008/11/freebase-hackday-08/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Concept: WordPress Theme Designer</title>
		<link>http://mattpardee.com/2008/10/concept-wordpress-theme-designer/</link>
		<comments>http://mattpardee.com/2008/10/concept-wordpress-theme-designer/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 10:10:18 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Progressive]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://wherewe.at/?p=32</guid>
		<description><![CDATA[The idea is essentially based on what the folks over at SquareSpace have done &#8211; provide a WYSIWYG interface for designing/modifying blog templates. I&#8217;ve had this idea for a while now (though on a larger scale than just WP), but it was only until recently when I became more adept with JavaScript that I began [...]]]></description>
			<content:encoded><![CDATA[<p>The idea is essentially based on what the folks over at <a href="http://www.squarespace.com/">SquareSpace</a> have done &#8211; provide a WYSIWYG interface for designing/modifying blog templates. I&#8217;ve had this idea for a while now (though on a larger scale than just WP), but it was only until recently when I became more adept with JavaScript that I began to think seriously about how to implement it. I decided to narrow my focus to WP for a couple reasons:</p>
<ol>
<li>The WP community is large, and many people could benefit from this kind of tool.</li>
<li>WP has a limited number of design-influencing template functions. This makes my job easier.</li>
</ol>
<p><strong>Implementation</strong></p>
<p>There are a few different aspects to developing the back-end functionality for this kind of tool. Note that I&#8217;m writing off the top of my head, so this list is sure to change.</p>
<ul>
<li>Understand the structure of the selected WP theme: header, footer, the loop, content (page, post, comments, etc), sidebar. This would be accomplished by parsing the theme&#8217;s main files (index.php, page.php, theloop.php, etc), and determining where each template function resides in relation to surrounding HTML elements.</li>
<li>Use the information gathered from parsing to create a &#8220;map&#8221;: a link between template functionality and the <a href="http://en.wikipedia.org/wiki/Document_Object_Model">Document Object Model</a>. This will allow us to determine which elements of the WP suite are actually implemented on the page, where they are, and the limitations of their placement on the page.</li>
<li>Functionality to modify the theme&#8217;s template files based on front-end design changes. This includes activating and placing widgets, HTML arrangement, CSS mods (+ other things I&#8217;m not thinking of?)</li>
</ul>
<p>The front-end component is a little more obvious I think. I&#8217;m not too certain of the best layout, but SquareSpace has the right idea. Semi-transparent overlaid windows with all the design-related functionality needed: &#8220;drag-and-drop the sidebar here&#8221;, &#8220;give the footer this background color&#8221;, &#8220;put a calendar right here&#8221;, etc. At this point I&#8217;m more concerned about interfacing and modifying template files.</p>
<p>In terms of actually programming this plugin, I&#8217;ve had a lot of success with the Yahoo User Interface JavaScript library, so I&#8217;d want to use that for the front-end. And of course an AJAX interface to the PHP back-end to make modifications to the template files.</p>
<p>Clearly still mulling this over. Comments welcome!</p>
]]></content:encoded>
			<wfw:commentRss>http://mattpardee.com/2008/10/concept-wordpress-theme-designer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
