<?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>firsttube.com &#187; CSS</title>
	<atom:link href="http://firsttube.com/tag/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://firsttube.com</link>
	<description>crunchy nuggets, served semi-daily</description>
	<lastBuildDate>Wed, 10 Mar 2010 03:38:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<atom:link rel='hub' href='http://firsttube.com/?pushpress=hub'/>
		<item>
		<title>The Facebook Logo Has Gone Into Hiding</title>
		<link>http://firsttube.com/read/The-Facebook-Logo-Has-Gone-Into-Hiding/</link>
		<comments>http://firsttube.com/read/The-Facebook-Logo-Has-Gone-Into-Hiding/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 13:01:31 +0000</pubDate>
		<dc:creator>Adam S</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Websites]]></category>

		<guid isPermaLink="false">http://firsttubecom/read/The-Facebook-Logo-Has-Gone-Into-Hiding</guid>
		<description><![CDATA[It was reported by several sources this week that after an embarassing affair with a prostitute, the Facebook logo has gone into hiding.  Actually, what has been happening for me is that the Facebook logo has been randomly disappearing for me in my browser.  In fact, most days, lately, in Opera 9.26, this [...]]]></description>
			<content:encoded><![CDATA[<p>It was reported by several sources this week that after an embarassing affair with a prostitute, the <a href="http://static.ak.facebook.com/images/facebook_logo.gif?57:67387">Facebook logo</a> has gone into hiding.  Actually, what has been happening for me is that the Facebook logo has been randomly disappearing for me in my browser.  In fact, most days, lately, in Opera 9.26, this is what I see: </p>
<p><img src="http://firsttube.com/uploads/fbgone.jpg" class="instant itiltright" alt="Facebook" /></p>
<p>When I dug around, I found the Facebook logo actually has the &#8220;on&#8221; and &#8220;off&#8221; image in one file and uses a CSS and &#8220;hover&#8221; trick to create the little home icon next to the logo.  Neat.</p>
<p>Has anyone else experienced the mystery of the disappearing Facebook logo? Other Opera users maybe?</p>
]]></content:encoded>
			<wfw:commentRss>http://firsttube.com/read/The-Facebook-Logo-Has-Gone-Into-Hiding/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP Lesson 2: Behind the Scenes of Threading</title>
		<link>http://firsttube.com/read/php-lesson-2-threading/</link>
		<comments>http://firsttube.com/read/php-lesson-2-threading/#comments</comments>
		<pubDate>Wed, 08 Nov 2006 10:44:16 +0000</pubDate>
		<dc:creator>Adam S</dc:creator>
				<category><![CDATA[Meta]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Lesson]]></category>
		<category><![CDATA[Nerd]]></category>
		<category><![CDATA[OSNews]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Threading]]></category>

		<guid isPermaLink="false">http://firsttubecom/read/PHP-Lesson-2-Threading</guid>
		<description><![CDATA[This is going to be a very nerdy post, because I&#8217;m going to get into some actual PHP code.  I&#8217;ve been thinking a lot about efficient threading.  The implementation of threading on OSNews is very complex, because it involves lots of math in order to properly construct and align tables.   Furthermore, [...]]]></description>
			<content:encoded><![CDATA[<p>This is going to be a very nerdy post, because I&#8217;m going to get into some actual PHP code.  I&#8217;ve been thinking a lot about efficient threading.  The implementation of threading on <a href="http://osnews.com">OSNews</a> is very complex, because it involves lots of math in order to properly construct and align tables.   Furthermore, because we don&#8217;t use CSS for positioning, it&#8217;s accomplished via &#8216;align&#8217; commands and TWO templates, which is really clumsy, because between flat mode, admin mode, collapsed threading mode, and expanded threaded mode, we have several templates, and since they are all independent, they tend to unintentionally vary, so you might see different things in replies and threads.  My goal in writing a threaded display for <a href='http://firsttube.com'>firsttube.com</a> was to avoid all of the pitfalls in that implementation and come up with something clean.  Read on for the gory details.<br />
<span id="more-275"></span><br />
firsttube.com commenting basically worked like this:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$comments</span> <span style="color: #339933;">=</span> get_comments<span style="color: #009900;">&#40;</span><span style="color: #000088;">$STORY_ID</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$comment</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">//$value is an array of each comment's data</span>
	<span style="color: #666666; font-style: italic;">// $myhtml is a previously defined string created from the HTML output template</span>
	<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$k</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$v</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$mykey</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'{'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$k</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'}'</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$html</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$mykey</span><span style="color: #339933;">,</span> <span style="color: #000088;">$value</span><span style="color: #339933;">,</span> <span style="color: #000088;">$myhtml</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$html</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>This is a pretty standard way, I think, for retreiving comments from a database and displaying them in a template.  It&#8217;s fairly cut and dry &#8211; the names of the colums in the database (or the name given after the &#8220;as&#8221; in the SQL statement) serves as a placeholder in the template such as {title}.  It&#8217;s dynamically replaced for each comment, which means the templates contain no PHP whatsoever.</p>
<p>Threading adds some complication, because you can&#8217;t loop through all of your comments anymore.  If you do that, you&#8217;ll echo out the replies the same way.  So this is the implementation I used on firsttube.com, which is based on the same idea as threading on OSNews.  First off, we add a column in the comments table called &#8220;parent.&#8221;  The parent is the parent comment&#8217;s primary key.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$comments</span> <span style="color: #339933;">=</span> get_comments<span style="color: #009900;">&#40;</span><span style="color: #000088;">$STORY_ID</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$comments</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'parent'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$K</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'parent'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$C</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$K</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$value</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$C</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$value</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>What we&#8217;ve done here is created a new array called $C.  $C is a multidimensional array that holds /all/ comments.  As you can see, all comments that are replies are stored as $C[PARENT_C0MMENT_ID] and all non-replies, or &#8220;original records,&#8221; are stored in $C[0].  The zero could just as easily be &#8220;parent&#8221; or &#8220;x&#8221; or any other string or integer; anything except an existing comment ID.  0 is a good choice because it&#8217;s unlikely you&#8217;ll have a comment ID of 0.</p>
<p>Now, like above, instead of looping through $comments, we loop through $C[0].</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$C</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$k</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$v</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$mykey</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'{'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$k</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'}'</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$html</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$mykey</span><span style="color: #339933;">,</span> <span style="color: #000088;">$value</span><span style="color: #339933;">,</span> <span style="color: #000088;">$myhtml</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$html</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Now we&#8217;ve echo&#8217;ed out all of the original records, but no replies.  In my case, I added a second template, called reply.tmpl, and it been imploded into a string called $rhtml.  So at the end of the above foreach() loop, we&#8217;ll add this:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$C</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$v</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'commentid'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$C</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$v</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'commentid'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$ke</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #000088;">$va</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">//echo reply</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>That gets us all replies to the original comment.  But it doesn&#8217;t get us replies to the replies.  So we have created single reply threading.  But what if we want deeper replies? This is the first, most elementary soltuion is pretty basic, but doesn&#8217;t solve the entire problem.  It looks like this:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$C</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$v</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'commentid'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$C</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$v</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'commentid'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$ke</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #000088;">$va</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">//echo reply</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$C</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$va</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'commentid'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$C</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$va</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'commentid'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #000088;">$val</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #666666; font-style: italic;">//echo reply to reply</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Of course, this is inefficient, and again, only gets us one additional layer.  As you can see, threading will only go as deeper as you write this code, which is inelegant and tough to look at.  We have to turn to a function.</p>
<p>So let&#8217;s define one:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> mkThread<span style="color: #009900;">&#40;</span><span style="color: #000088;">$array</span><span style="color: #339933;">,</span><span style="color: #000088;">$depth</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$rhtml</span><span style="color: #339933;">,</span><span style="color: #000088;">$C</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//this is the string of the reply text and the comments array</span>
	<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$array</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$k</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$v</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$mykey</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'{'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$k</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'}'</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$html</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$mykey</span><span style="color: #339933;">,</span> <span style="color: #000088;">$value</span><span style="color: #339933;">,</span> <span style="color: #000088;">$myhtml</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$C</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$array</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'commentid'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$newdepth</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$depth</span><span style="color: #339933;">++;</span>
		mkThread<span style="color: #009900;">&#40;</span><span style="color: #000088;">$C</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$array</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'commentid'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #000088;">$newdepth</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Okay, let break this down.  So the mkThread function pretty much does what we were doing before &#8211; it takes the array of data and does some replacement in a string of HTML which gets echo&#8217;ed out.  Pretty simple.  But then, it looks for replies.  What&#8217;s the $depth variable? That&#8217;s how we control out display.  In the template is some CSS that controls margins, and this depth is multiplied times your indention &#8211; say 35px &#8211; and then pushed into your template into two varibles: myindent (which is which is $depth*pixels), and mywidth (which is, in my case, 640-$myindent).  Of course, if you start with a comment box wider than 640, your milage may vary.  My CSS in the template looks like this:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;div style=&quot;width:640px;margin-right:auto;margin-left:auto;&quot;&gt;
	&lt;div class=&quot;reply&quot; style=&quot;width:{mywidth}px;margin-left:{myindent}px;&quot;&gt;
	[...]&lt;/div&gt;&lt;/div&gt;</pre></div></div>

<p>That&#8217;s it.  That&#8217;s how threading works.  It&#8217;s not so intimidating once you see how easy it is insert the comments dynamically.  On top of that, the entire comments section only takes one single database query.  In fact, since we&#8217;re not using tables, it renders pretty quickly.  Tables, in some browsers, only render to the screen after the entire table is downloaded by the client, whereas divs typically render as they are received.  The only drawback to this is that you may want to add some code to limit depth, because after awhile, the comments might get so small they become silly looking.  Other than that, it&#8217;s pretty easy for a custom blogging app to support comment threading.</p>
]]></content:encoded>
			<wfw:commentRss>http://firsttube.com/read/php-lesson-2-threading/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>firsttube.com gets threads</title>
		<link>http://firsttube.com/read/firsttubecom-gets-threads/</link>
		<comments>http://firsttube.com/read/firsttubecom-gets-threads/#comments</comments>
		<pubDate>Tue, 07 Nov 2006 20:46:38 +0000</pubDate>
		<dc:creator>Adam S</dc:creator>
				<category><![CDATA[Meta]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[OSNews]]></category>
		<category><![CDATA[Threading]]></category>

		<guid isPermaLink="false">http://firsttubecom/read/firsttubecom-gets-threads</guid>
		<description><![CDATA[I understand that some people believe that threading comments are unintuitive, they confuse the user, and that they are ugly.  I like &#8216;em.  So this site now supports threading in the comments. 
Now &#8211; as of right now, you can only reply once, like digg, but it supports two deep.  This is [...]]]></description>
			<content:encoded><![CDATA[<p>I understand that some people believe that threading comments are unintuitive, they confuse the user, and that they are ugly.  I like &#8216;em.  So this site now supports threading in the comments. </p>
<p>Now &#8211; as of right now, you can only reply once, like digg, but it supports two deep.  This is only because I haven&#8217;t found a more elegant way to allow deeper threading in the code.  As soon as I do, I will be allowing deeper threading,  probably 3 or 4 comments deep for aesthetic reasons.</p>
<p>The entire thing is done in CSS, unlike <a href='http://osnews.com'>OSNews</a> which is hard coded to the pixel with very complex code that  really makes me uncomfortable when I see it. This is much nicer.  It&#8217;s all done via templates, and there are only two &#8211; one for comments and one for threads, and this will probably change to one soon too.</p>
]]></content:encoded>
			<wfw:commentRss>http://firsttube.com/read/firsttubecom-gets-threads/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DIVs only</title>
		<link>http://firsttube.com/read/divs-only/</link>
		<comments>http://firsttube.com/read/divs-only/#comments</comments>
		<pubDate>Thu, 29 Apr 2004 07:35:27 +0000</pubDate>
		<dc:creator>Adam S</dc:creator>
				<category><![CDATA[Meta]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Flip]]></category>

		<guid isPermaLink="false">http://firsttubecom/read/divs-only</guid>
		<description><![CDATA[notsomuch.  
according to css expert eric meyer, large scale tables used for page layout are okay.  so stop the presses everyone &#8211; tables are okay today.  i&#8217;m really getting sick of all these &#8220;made without tables&#8221; buttons on pages.  it&#8217;s very cool to be able to be good enough with css [...]]]></description>
			<content:encoded><![CDATA[<p>notsomuch.  </p>
<p>according to <a href="http://ericmeyeroncss.com">css expert eric meyer</a>, large scale tables used for page layout are okay.  so stop the presses everyone &#8211; tables are okay today.  i&#8217;m really getting sick of all these &#8220;made without tables&#8221; buttons on pages.  it&#8217;s very cool to be able to be good enough with css to be able to layout a page without tables, but it&#8217;s definitely not worth much more than cool points.  tables are not evil &#8211; they just shouldn&#8217;t be endlessly nested to control prescise layout.</p>
<p>i&#8217;ll phase the new pane in shortly, once it has content.</p>
<p><b>Update</b>:  She flies.  Ingest the new ftblog.</p>
]]></content:encoded>
			<wfw:commentRss>http://firsttube.com/read/divs-only/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
