<?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>Paul.Bagosy.Com</title>
	<atom:link href="http://paul.bagosy.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://paul.bagosy.com</link>
	<description></description>
	<lastBuildDate>Wed, 18 May 2011 16:15:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>HTML5 Video Roundup</title>
		<link>http://paul.bagosy.com/2011/04/26/html5-video-roundup-2/</link>
		<comments>http://paul.bagosy.com/2011/04/26/html5-video-roundup-2/#comments</comments>
		<pubDate>Tue, 26 Apr 2011 17:21:25 +0000</pubDate>
		<dc:creator>Paul Bagosy</dc:creator>
				<category><![CDATA[FireFox]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[IE6]]></category>

		<guid isPermaLink="false">http://paul.bagosy.com/?p=957</guid>
		<description><![CDATA[I&#8217;ve just jumped feet-first into HTML5, and I must say, it&#8217;s pretty awesome. I&#8217;m actually learning a lot about HTML4 as I go, due to the great writing by Mark Pilgrim (I&#8217;ve read the printed version). My first HTML5 challenge was video, and a challenge it was. For as browser- and code-friendly as HTML5 is, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just jumped feet-first into HTML5, and I must say, it&#8217;s pretty awesome.  I&#8217;m actually learning a lot about HTML4 as I go, due to the great writing by <a href="http://diveintohtml5.org/"  target="_blank">Mark Pilgrim</a> (I&#8217;ve read the <a rel="nofollow" href="http://www.amazon.com/HTML5-Up-Running-Mark-Pilgrim/dp/0596806027?ie=UTF8&amp;tag=diveintomark-20&amp;creativeASIN=0596806027"  target="_blank">printed version</a>).</p>
<p>My first HTML5 challenge was video, and a challenge it was.  For as browser- and code-friendly as HTML5 is, getting all of the pieces to fall into place was still a daunting task.  Thankfully, the internet provided all the answers that I needed.  The problem, however, was asking the right questions.  There was no one answer that I could find, so I&#8217;m writing it.  This isn&#8217;t new information, it&#8217;s an assembly of all the pieces I needed to get video working correctly on my site.</p>
<p>Obviously, there are a number of browsers out there vying for market share, and to distinguish themselves from one another, they have collectively made the decision to not support a single standard of, well, anything.  Video is no exception.  The unfortunate truth is that you&#8217;re going to need four different video formats if you want to ensure that everyone is going to see your video.  The good news is that HTML5 makes that a snap!</p>
<p><strong>1 &#8211; HTML5 markup</strong><br />
Mark Pilgrim handles the <a href="http://diveintohtml5.org/video.html"  target="_blank">gritty details</a> of what video formats to choose and why (including how to encode your video), but after that, you need markup:<br />
<code><br />
&lt;video controls width="500" height="300" poster="poster.jpg"&gt;<br />
&lt;source src="video.mp4" type="video/mp4" /&gt;<br />
&lt;source src="video.ogv" type="video/ogg" /&gt;<br />
&lt;source src="video.webm" type="video/webm" /&gt;<br />
&lt;/video&gt;</code></p>
<p>This will display whichever version the browser can handle, with video controls, using the specified image as the first screen.  Between MPG4, Theora/Vorbis and WebM, that takes care of playing your video on every browser capable of supporting HTML5, which at this point, is most of the market.  Something else to note here is that iOS 3 apparently only reads the first &lt;source /&gt; tag, so you need to make sure that your MPG4 video source is first on the list (as in the example).  This problem was fixed in iOS 4, but if it were as easy as a new version, you&#8217;d never again have heard &#8220;IE6&#8243; after October 2006.</p>
<p><strong>2 &#8211; Flash, for older browsers (and by &#8220;old&#8221; I mean &#8220;Internet Explorer&#8221;)</strong><br />
Next up, you&#8217;ll want your Flash.  There are a number of ways to handle Flash, so I&#8217;m not going to get into them here.  Whatever you were using to display Flash before will continue to work.  You want to place it right before the &lt;/video&gt; tag.  If the browser doesn&#8217;t support HTML5, it will ignore the &lt;video&gt; tag and execute your Flash.  Problem solved!</p>
<p><strong>3 &#8211; A few stragglers</strong><br />
We&#8217;re three quarters of the way there.  Just two more things to note:</p>
<p>A) <strong>MIME types!</strong> These are really really important.  Make sure the MIME type you&#8217;re declaring in your &lt;source /&gt; tag is actually what you&#8217;re serving.  If you&#8217;re hosting your videos on S3, make sure you set your MIME types for each file to what they <em>should</em> be.  S3 defaults to application/octet, which will cause Firefox to stare blankly at you while you wonder why there&#8217;s a hole where your video should be.  Other browsers fail a bit more gracefully.</p>
<p>B) The poster attribute.  Again, iOS 3 is a troublemaker.  It&#8217;s not that it ignores the poster attribute altogether (which would actually be nice) &#8211; no, it dumps it over the controls and wreaks havoc on the ability to play the video.  After wading through a lot of conversations where people wondered if there was a solution, a coworker and I finally hit on a solution that works.  I hate error trapping for one browser, but if you know you&#8217;re going to have people using it, then it&#8217;s a necessity.</p>
<p>Basically, we check for iOS 3, and create the video tag with JavaScript:</p>
<p><code>var osString = navigator.appVersion;<br />
if (osString.indexOf("OS 3_") != -1 &amp;&amp; osString.indexOf("like Mac") != -1) {<br />
// create video tag for iOS 3<br />
document.write('&lt;video controls="true" width="500" height="300" id="video_player"&gt;');<br />
}else{<br />
// create video tag for the rest of civilization<br />
document.write('&lt;video controls="true" width="500" height="300" poster="/alumni/giving/images/The_Campaign_Final-poster.jpg" id="video_player"&gt;');<br />
} </code></p>
<p>And that&#8217;s all there is too it.  Hope this saves you some time.</p>
]]></content:encoded>
			<wfw:commentRss>http://paul.bagosy.com/2011/04/26/html5-video-roundup-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Better than a Leg Lamp</title>
		<link>http://paul.bagosy.com/2010/12/08/better-than-a-leg-lamp/</link>
		<comments>http://paul.bagosy.com/2010/12/08/better-than-a-leg-lamp/#comments</comments>
		<pubDate>Wed, 08 Dec 2010 16:27:32 +0000</pubDate>
		<dc:creator>Paul Bagosy</dc:creator>
				<category><![CDATA[Web Sites]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://paul.bagosy.com/?p=946</guid>
		<description><![CDATA[The Wharton Magazine Blog has won an award!  We&#8217;re the 2011 CASE II Accolades Award Bronze Award winner for the Blogs category (awards will be posted by the end of the year).]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://paul.bagosy.com/2010/09/20/go-live-wharton-blog-network/"  target="_blank">Wharton Magazine Blog</a> has won an award!  We&#8217;re the <a href="http://www.casetwo.org"  target="_blank">2011 CASE II Accolades Award</a> Bronze Award winner for the Blogs category (awards will be posted by the end of the year).</p>
]]></content:encoded>
			<wfw:commentRss>http://paul.bagosy.com/2010/12/08/better-than-a-leg-lamp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Go Live: Wharton Alumni and Giving to Wharton</title>
		<link>http://paul.bagosy.com/2010/09/20/go-live-wharton-alumni-and-giving-to-wharton/</link>
		<comments>http://paul.bagosy.com/2010/09/20/go-live-wharton-alumni-and-giving-to-wharton/#comments</comments>
		<pubDate>Mon, 20 Sep 2010 16:00:07 +0000</pubDate>
		<dc:creator>Paul Bagosy</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Web Sites]]></category>

		<guid isPermaLink="false">http://paul.bagosy.com/?p=914</guid>
		<description><![CDATA[These two sites went live at the beginning of September, and while I&#8217;m still ironing out bugs, the public side of the sites is worth mentioning here. Both of these sites are built in RedDot CMS (actually, it&#8217;s OpenText CMS now, but we still call it RedDot).  From January to, well, now, the majority of [...]]]></description>
			<content:encoded><![CDATA[<p>These two sites went live at the beginning of September, and while I&#8217;m still ironing out bugs, the public side of the sites is worth mentioning here.</p>
<div style="width: 100%; display: table; clear: both;"><a href="http://www.wharton.upenn.edu/alumni" ><img class="alignleft size-medium wp-image-915" title="Wharton Alumni" src="http://paul.bagosy.com/files/2010/09/wharton_alumni_site-300x200.jpg" alt="wharton alumni site 300x200 Go Live: Wharton Alumni and Giving to Wharton" width="270" height="180" /></a><a href="http://www.wharton.upenn.edu/alumni/giving" ><img class="alignright size-medium wp-image-916" title="Giving to Wharton" src="http://paul.bagosy.com/files/2010/09/wharton_giving_site-300x200.jpg" alt="wharton giving site 300x200 Go Live: Wharton Alumni and Giving to Wharton" width="270" height="180" /></a></div>
<p>Both of these sites are built in RedDot CMS (actually, it&#8217;s OpenText CMS now, but we still call it RedDot).  From January to, well, now, the majority of my job has been converting the old static site to RedDot.  I can&#8217;t say that this process has been an easy one.  I was responsible for the creation and implementation of the bulk of the pages and this required me to learn a completely new system that was coded in Germany.  I experienced European coding a few years ago after IQ outsourced a project to Poland.  Most of the syntax of languages is written in English (with the random <a href="http://www.m6.net/resources/php_paamayin.aspx"  target="_blank">Hebrew PHP error message</a>), but that doesn&#8217;t mean that people who speak Polish or German are going to code in English.  What might seem like a perfectly logical variable name in Polish probably isn&#8217;t going to make nearly as much sense when it&#8217;s been run through Babelfish.  Likewise, Germans don&#8217;t have the same knack for writing concise English description as a native English speaker does.  The major impediment to learning RedDot was figuring out what exactly all the constructs inside it actually did, because the names given to a majority of them didn&#8217;t seem to accurately describe them.</p>
<p>The other major hurdle was that the team that manages the RedDot server is a school-wide resource, and a number of other departments were designing and launching sites in RedDot, often without the benefit of a developer.  This meant that the RedDot team was not only trying to build and launch a number of other sites, they were tackling my near-incessant questions, and dealing with an upgrade that resulted in a lot of things breaking.  On top of that, they were outsourcing major issues to one of the few RedDot vendors, a company of 15 people located somewhere near Vancouver.</p>
<p>So, here are the run-downs for both sites.  A quick note concerning the publishing:  Our RedDot setup has two publication packages: Staging and Production.  Additionally, we have three servers: Development, Staging and Production.  As these terms relate, it&#8217;s a bit confusing.  Ideally, RedDot Staging publishes to the Development server, and RedDot Production publishes to the Staging server.  The reason for that is that the Staging server pushes everything to the Production server once every 15 minutes.  We don&#8217;t have direct access to the Production server.</p>
<p><strong>Giving to Wharton</strong></p>
<p>This site actually went smoothly from start to (almost) finish.  The site itself was populated with content and, for all intents and purposes, ready to launch by the end of May.   As the project neared go-live, a number of the stakeholders came forward with content changes and section revamps.  All of these were handled fairly smoothly, and the only hang-up came right before go-live when we realized that the Staging publication package and the Production publication package were not mirroring each other.  The interim solution has been to publish both packages to the Development server, make necessary changes, and push them to the Staging server manually.</p>
<p><strong>Wharton Alumni</strong></p>
<p>This part of the project was a bear.  From the very beginning, the installation was fraught with problems that we kept attempting to address.  It seemed at every point that once one was fixed, two more would crop up.  Finally, nearing the go-live point, we decided to scrap the entire thing and re-create it.  This turned out to be a very effective tactic.  Scrapping 8 months of development wasn&#8217;t an easy argument to win, but the result was a completed site in just over two weeks.  The 8 months of combating bugs gave me a lot of good insight into RedDot&#8217;s inner workings, so once I had a bug-free environment, construction of the site went very smoothly.  The same publishing problem from the Giving site showed up, however, and at the moment, we&#8217;re still publishing manually.</p>
<p>All in all, it&#8217;s been a long, strange trip, but the reception has been amazing.  The new site is worlds better than the previous one, and it&#8217;s given the staff at External Affairs a much easier way to update their changing information than they had before.</p>
]]></content:encoded>
			<wfw:commentRss>http://paul.bagosy.com/2010/09/20/go-live-wharton-alumni-and-giving-to-wharton/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Go Live: Wharton Blog Network</title>
		<link>http://paul.bagosy.com/2010/09/20/go-live-wharton-blog-network/</link>
		<comments>http://paul.bagosy.com/2010/09/20/go-live-wharton-blog-network/#comments</comments>
		<pubDate>Mon, 20 Sep 2010 15:22:58 +0000</pubDate>
		<dc:creator>Paul Bagosy</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://paul.bagosy.com/?p=906</guid>
		<description><![CDATA[This site actually went live around a month ago, but I&#8217;m just getting around to the write-up.  I&#8217;m not sure what took me so long, considering I now have something to show to the public that has the Wharton name on it! The Wharton Magazine site itself is running RedDot CMS, but the blog segment [...]]]></description>
			<content:encoded><![CDATA[<p>This site actually went live around a month ago, but I&#8217;m just getting around to the write-up.  I&#8217;m not sure what took me so long, considering I now have something to show to the public that has the Wharton name on it!</p>
<p><a href="http://www.whartonmagazine.com/blog" ><img class="aligncenter size-full wp-image-910" title="Wharton Magazine Blog Network" src="http://paul.bagosy.com/files/2010/09/wharton_magazine_blog.jpg" alt="wharton magazine blog Go Live: Wharton Blog Network" width="600" height="400" /></a></p>
<p>The Wharton Magazine site itself is running RedDot CMS, but the blog segment has been running on WordPress for around two years.  In its previous incarnation, it was a point of contact for the editorial staff.  This concept was expanded to include relevant non-magazine article updates from faculty and alumni.</p>
<p>In the initial concept phase, I suggested the possibility of using WordPress MU to create a new blog for each user and then having the main blog page aggregate the posts.  Within a few days of that proposal, WordPress 3.0 was released, and after a review of the features, I decided that the robust multi-user setup was actually too much bang for the buck and scaled back my proposal to a simpler WordPress installation with multiple contributing users.</p>
<p>Most of the functionality comes straight from the proverbial box.  I developed a <a href="http://paul.bagosy.com/2010/07/25/new-wordpress-widgets/"  target="_blank">simple plugin</a> for the sidebar in order to display the editor&#8217;s most recent post in a styled box.  There is also a custom work-around to allow a specific author&#8217;s most recent posts and user profile to be two separate pages.  User profile pages is one of the things that I wish WordPress did a bit better, but the solution I came up with is fairly simple to use but not very intuitive, so I wouldn&#8217;t recommend it as a <em>good</em> solution.</p>
<p>Going forward, I&#8217;d love to spend some time playing with the Contributors section on the sidebar.  As it stands, it&#8217;s simply a text widget that I&#8217;ve hard coded.  I&#8217;d like to expand that into an automated widget that the administrator (which at the moment is me) can control from the back end.</p>
]]></content:encoded>
			<wfw:commentRss>http://paul.bagosy.com/2010/09/20/go-live-wharton-blog-network/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New WordPress Widgets</title>
		<link>http://paul.bagosy.com/2010/07/25/new-wordpress-widgets/</link>
		<comments>http://paul.bagosy.com/2010/07/25/new-wordpress-widgets/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 13:42:20 +0000</pubDate>
		<dc:creator>Paul Bagosy</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Plugins]]></category>

		<guid isPermaLink="false">http://paul.bagosy.com/?p=894</guid>
		<description><![CDATA[Having been kicking around the exciting world of installing and customizing WordPress, I felt it was high time I launched myself into the even more exciting world of developing for WordPress.  And here&#8217;s what I&#8217;ve come up with: Recent User Posts Recent Category Posts Both of these are widgets that do basically the same thing, [...]]]></description>
			<content:encoded><![CDATA[<p>Having been kicking around the exciting world of installing and customizing WordPress, I felt it was high time I launched myself into the even more exciting world of developing for WordPress.  And here&#8217;s what I&#8217;ve come up with:</p>
<p><a href="http://paul.bagosy.com/files/2010/07/recent-user-posts.1.0.zip" >Recent User Posts</a></p>
<p><a href="http://paul.bagosy.com/files/2010/07/recent-category-posts.1.0.zip" >Recent Category Posts</a></p>
<p>Both of these are widgets that do basically the same thing, so I&#8217;ll describe them together here.</p>
<p>In developing the new Wharton Magazine blog, we needed a widget to display the Editor&#8217;s most recent post.  I poked around for a bit, and realized that there really wasn&#8217;t a plugin to handle this, so the need for one was obvious.  After getting the basics down, I decided that it actually had more applications than just a single post, and started adding features.</p>
<p>So, the end result is two widgets.  Enter a title, select the user/category you want to display, enter the number of posts to display, and select if you want to display a link to the user/category and the time and date.  Not complicated to use and does just what it says it does.</p>
<p>Before I release it to the WordPress Plugins Codex, I&#8217;d like to see if anyone wants a shot at debugging or can offer any tips or suggestions.  Files are at the links above, and thanks in advance!</p>
]]></content:encoded>
			<wfw:commentRss>http://paul.bagosy.com/2010/07/25/new-wordpress-widgets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 3.0</title>
		<link>http://paul.bagosy.com/2010/06/30/wordpress-3-0/</link>
		<comments>http://paul.bagosy.com/2010/06/30/wordpress-3-0/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 16:45:17 +0000</pubDate>
		<dc:creator>Paul Bagosy</dc:creator>
				<category><![CDATA[PennridgeAlumni]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://paul.bagosy.com/?p=890</guid>
		<description><![CDATA[I&#8217;m getting really drawn into WordPress and all its wonderful functionality, especially with the release of 3.0.  I retooled the back end of this site to run on WordPress MU a few months ago, because I run a few separate blogs and am in the process of expanding that for family members. I was happy [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m getting really drawn into WordPress and all its wonderful functionality, especially with the release of 3.0.  I retooled the back end of this site to run on WordPress MU a few months ago, because I run a few separate blogs and am in the process of expanding that for family members.</p>
<p>I was happy to see that WordPress merged the base and MU codebases into one, fully-functional software package.  The upgrade wasn&#8217;t as smooth as I&#8217;d have liked it, but I guess they figure that if you&#8217;ve managed to install and maintain MU, you shouldn&#8217;t have a problem editing PHP and .htaccess files on your own (as opposed to automating what boils down to three lines of code).   Stupid me misread one of the steps and wound up with no images displaying sitewide for 24 hours, and wondering if I was going to have to re-import all of them.  Once I figured out my mistake, though, the problem seemed pretty trivial.  Other than that, installing and upgrading are remarkably simple.</p>
<p>WordPress has been getting better and better for the end user and administrator since I began using it about two years ago, and now that I&#8217;ve begun really getting into the heart of it, I&#8217;m really glad that the development has gone toward all of those things that I wish it did.  It&#8217;s like they&#8217;re reading my mind!</p>
<p>So, on the horizon are three projects that I&#8217;d love to tackle.  One is a freelance job that I&#8217;m hoping pans out, because it&#8217;s a site that I&#8217;d love to do.  The second is here at Wharton, which again, I&#8217;d love to do.  The third is a complete revamp of PennridgeAlumni.com, a site that I&#8217;ve been studiously avoiding for far, far too long.  Redoing it entirely in WordPress now seems like a possibility, and I&#8217;m already working on a development version of that.  Let&#8217;s see how far I get&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://paul.bagosy.com/2010/06/30/wordpress-3-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Go Live &#8211; Alternate Universes</title>
		<link>http://paul.bagosy.com/2010/05/20/go-live-alternate-universes/</link>
		<comments>http://paul.bagosy.com/2010/05/20/go-live-alternate-universes/#comments</comments>
		<pubDate>Thu, 20 May 2010 15:38:14 +0000</pubDate>
		<dc:creator>Paul Bagosy</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Web Sites]]></category>

		<guid isPermaLink="false">http://paul.bagosy.com/?p=888</guid>
		<description><![CDATA[I was hoping to post a lot more go lives here, but I&#8217;ve changed jobs to a position at UPenn&#8217;s Wharton School of Business External Affairs, and I&#8217;m working mainly on internal projects. However, I&#8217;ve just completed a website for my Friendly Local Gaming Store, Alternate Universes. Alternate Universes had an existing website, but it [...]]]></description>
			<content:encoded><![CDATA[<p>I was hoping to post a lot more go lives here, but I&#8217;ve changed jobs to a position at UPenn&#8217;s Wharton School of Business External Affairs, and I&#8217;m working mainly on internal projects.</p>
<p>However, I&#8217;ve just completed a website for my Friendly Local Gaming Store, <a href="http://alternateu.com/"  target="_blank">Alternate Universes</a>.</p>
<p><a href="http://alternateu.com/"  target="_blank"><img class="aligncenter size-full wp-image-879" title="Alternate Universes" src="http://paul.bagosy.com/wp-content/uploads/2010/05/alternate_universes.jpg" alt="alternate universes Go Live   Alternate Universes" width="600" height="400" /></a></p>
<p>Alternate Universes had an existing website, but it was built using static HTML that wasn&#8217;t very easy to update.  The new site uses WordPress as a CMS, offering much greater ease of updating, as well as being able to update multiple pages using a single post.  This allows for various pages to keep important content without the need to move content to those pages or clutter up the homepage for weeks or months.</p>
<p>Individual sub-pages are coded to include their related categories, allowing for general information for that page and a listing of pertinent posts.</p>
<p>The old site had an outdated calendar system, so I integrated Google Calendars using the <a rel="nofollow" href="http://code.google.com/p/wpng-calendar/"  target="_blank">wpng-calendar plugin</a> for the site&#8217;s sidebar, as well as a static instance of the full calendar.  This allows for much easier management and import of calendar data.</p>
<p>I converted the old phpBB3 forum to myBB, which was a bit more difficult than anticipated, even with a conversion app.  The app didn&#8217;t accurately convert the forum settings, which necessitated a lot of snooping around in the database to get everything matched up.  Once I found the broken relationships, though, it went rather quickly.  There were also a few glitches with forum caches and settings files needing to be rebuilt, but all-in-all, the structure converted quite nicely.  The new system will very aggressively tackle the issues they&#8217;d been having with Russian spambots filling their forum with Viagra ads and the like.</p>
<p>And finally, I get to take credit for the design.  I don&#8217;t tackle design very often, because this is about the best I&#8217;m capable of.</p>
]]></content:encoded>
			<wfw:commentRss>http://paul.bagosy.com/2010/05/20/go-live-alternate-universes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tired of sanity? Learn to design and code email templates!</title>
		<link>http://paul.bagosy.com/2010/01/07/tired-of-sanity-learn-to-design-and-code-email-templates/</link>
		<comments>http://paul.bagosy.com/2010/01/07/tired-of-sanity-learn-to-design-and-code-email-templates/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 14:00:50 +0000</pubDate>
		<dc:creator>Paul Bagosy</dc:creator>
				<category><![CDATA[Email]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://paul.bagosy.com/?p=871</guid>
		<description><![CDATA[While sending an HTML email is basically like sending a webpage via email, designing and coding email templates is a wholly different beast than designing and coding a website. Email programs are essentially the Neanderthal cousins to the modern browser, but like their more modern, sleek, fire-wielding relatives, they all have their own horrid little [...]]]></description>
			<content:encoded><![CDATA[<p>While sending an HTML email is basically like sending a webpage via email, designing and coding email templates is a wholly different beast than designing and coding a website.  Email programs are essentially the Neanderthal cousins to the modern browser, but like their more modern, sleek, fire-wielding relatives, they all have their own horrid little quirks that you need to be concerned with.</p>
<p><strong> Design:</strong> Now, we all know that designers love gradients and non-repeating background textures and non-Euclidean pattern fills and other things that drive developers absolutely batty, but in this case, developers have the advantage: <strong>EMAIL PROGRAMS DON’T DO BACKGROUND IMAGES</strong>.  Solid colors, folks.  That’s all you get.  That also means that any text blocks need to be a perfectly rectangular spaces with a single color behind it – no images bleeding into the text area.  <strong>NONE!</strong> It also means that dropshadows around expandable areas are right out, because they require a repeating background image.</p>
<p><strong>Coding.</strong> Coding a template is the HTML equivalent to speaking in Olde English &#8211; or conversing with your local Pikey.  Yes, it’s HTML and you’ll recognize some of it, but this is not what you’re used to.</p>
<p>For starters, scrap the &lt;html&gt; and &lt;body&gt; tags and everything in the &lt;head&gt; section.  Google hates ‘em.</p>
<p>Second, this is HTML 4.01 transitional.  Not XHTML.  And you don’t get to use &lt;div&gt; tags or style attributes.  That’s right, TABLES!</p>
<p>Third, you can’t use rowspans or colspans.  Now you’re not laughing so hard at that Neanderthal comment, are you?  Whoever came up with this system was wholly incapable of purchasing insurance online.</p>
<p>So, what does that leave you with?  Not much.  If you haven’t given the designer cause to hate you, you’ll probably have a nice two-column layout with a header and footer.  This means you need (at minimum) 5 tables:</p>
<p style="padding-left: 30px">1) The header table.  Since there’s no colspans, it has to be its own table.<br />
2) The body table, with two cells.<br />
3 and 4) The column tables, in body table cells 1 and 2.  You’ll need these for padding.<br />
5) The footer table.  Just like the header.</p>
<p>A note on padding:  Need 10 pixels of padding on just the left?  Best bet is to use another cell that&#8217;s 10 pixels wide and contains only blank.gif.</p>
<p>This is what your code is going to look like:</p>
<pre>&lt;table width="500" border="0" cellspacing="0" cellpadding="0"&gt;
 &lt;tr&gt;
  &lt;td width="500" height="100"&gt;&lt;img src="http://www.{DOMAIN}.com/images/newsletter_header.jpg" width="500" height="100" border="0"&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;
&lt;table width="500" border="0" cellspacing="0" cellpadding="0"&gt;
 &lt;tr&gt;
  &lt;td width="250" bgcolor="#EEEEEE" valign="top"&gt;
   &lt;table width="250" border="0" cellspacing="0" cellpadding="10"&gt;
    &lt;tr&gt;
     &lt;td width="250"&gt;
      Lorem Ipsum!
     &lt;/td&gt;
    &lt;/tr&gt;
   &lt;/table&gt;
  &lt;/td&gt;
  &lt;td width="250" bgcolor="#CCCCCC" valign="top"&gt;
   &lt;table width="250" border="0" cellspacing="0" cellpadding="10"&gt;
    &lt;tr&gt;
     &lt;td width="250"&gt;
      Dolor Sit Amet!
     &lt;/td&gt;
    &lt;/tr&gt;
   &lt;/table&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;
&lt;table width="500" border="0" cellspacing="0" cellpadding="0"&gt;
 &lt;tr&gt;
  &lt;td width="500" height="100"&gt;&lt;img src="http://www.{DOMAIN}.com/images/newsletter_footer.jpg" width="500" height="100" border="0"&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;</pre>
<p>Yes, it&#8217;s a fun world of valign and bgcolor tags that will likely grant you the ability to see the small chittering things that lurk beneath your floorboards.  But wait!  There&#8217;s more!  In addition to a copy of our home game, you also get to use the &lt;FONT&gt; tag for the first time since Clinton was President!  Just a quick review of the syntax that no one will blame you for forgetting:</p>
<pre>&lt;font face="Arial, Helvetica, sans-serif" color="#333333" size="1"&gt;Please, why?&lt;/font&gt;</pre>
<p>As for the font sizes, well, you&#8217;re just going to have to play with it and see what works.</p>
<p>Finally, to summarize:</p>
<ol>
<li>No HTML head or body tags.</li>
<li>Besides that, make it compliant.</li>
<li>Tables tables tables.</li>
<li>No rowspan or colspan tags.</li>
<li>No style declarations whatsoever.</li>
<li>Tables within tables for padding.</li>
<li>Font tags.</li>
<li>Dogs and cats living together.</li>
<li>Mass hysteria.</li>
</ol>
<p>If you need a good example, Here&#8217;s the first BCASC newsletter code:</p>
<pre>&lt;table width="500" cellspacing="0" cellpadding="0" align="center"&gt;
 &lt;tr&gt;
  &lt;td&gt;
   &lt;table width="500" cellspacing="0" cellpadding="0"&gt;
    &lt;tr&gt;
     &lt;td width="500" height="86"&gt;&lt;img src="http://newsite.bcasc.org/images/newsletter_header.jpg" width="500" height="86" border="0" alt=""&gt;&lt;/td&gt;
    &lt;/tr&gt;
   &lt;/table&gt;
   &lt;table width="500" cellspacing="0" cellpadding="0"&gt;
    &lt;tr&gt;
     &lt;td width="4" height="41"&gt;&lt;img src="http://newsite.bcasc.org/images/newsletter_header_left.jpg" width="4" height="41" border="0" alt=""&gt;&lt;/td&gt;
     &lt;td width="300" height="41" valign="bottom"&gt;
      &lt;table width="300" cellspacing="0" cellpadding="0"&gt;
       &lt;tr&gt;
        &lt;td width="10" height="41"&gt; &lt;/td&gt;
        &lt;td height="41"&gt;&lt;font face="Arial, Helvetica, sans-serif" size="3" color="#4B749E"&gt;Empowering Individuals, Creating Community&lt;/font&gt;&lt;/td&gt;
        &lt;td width="10" height="41"&gt; &lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;
     &lt;/td&gt;
     &lt;td width="192" height="41" valign="bottom" bgcolor="#E8EEF7"&gt;
      &lt;table width="192" cellspacing="0" cellpadding="0"&gt;
       &lt;tr&gt;
        &lt;td width="10" height="41"&gt; &lt;/td&gt;
        &lt;td&gt;&lt;font face="Arial, Helvetica, sans-serif" size="3" color="#D27904"&gt;Highlights&lt;/font&gt;&lt;/td&gt;
        &lt;td width="10" height="41"&gt; &lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;
     &lt;/td&gt;
     &lt;td width="4" height="41"&gt;&lt;img src="http://newsite.bcasc.org/images/newsletter_header_right.jpg" width="4" height="41" border="0" alt=""&gt;&lt;/td&gt;
    &lt;/tr&gt;
   &lt;/table&gt;
   &lt;table width="500" cellspacing="0" cellpadding="0"&gt;
    &lt;tr&gt;
     &lt;td width="1" bgcolor="#FAFAFA"&gt;&lt;img src="http://newsite.bcasc.org/images/blank.gif" width="1" height="1" border="0" alt=""&gt;&lt;/td&gt;
     &lt;td width="1" bgcolor="#F0F0F0"&gt;&lt;img src="http://newsite.bcasc.org/images/blank.gif" width="1" height="1" border="0" alt=""&gt;&lt;/td&gt;
     &lt;td width="1" bgcolor="#E2E2E2"&gt;&lt;img src="http://newsite.bcasc.org/images/blank.gif" width="1" height="1" border="0" alt=""&gt;&lt;/td&gt;
     &lt;td width="1" bgcolor="#CECECE"&gt;&lt;img src="http://newsite.bcasc.org/images/blank.gif" width="1" height="1" border="0" alt=""&gt;&lt;/td&gt;
     &lt;td width="300" valign="top"&gt;
      &lt;table width="300" cellspacing="0" cellpadding="10"&gt;
       &lt;tr&gt;
        &lt;td&gt;
         &lt;font face="Arial, Helvetica, sans-serif" size="2" color="#444862"&gt;
          Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi in nibh id diam varius laoreet id nec odio. Cras sed libero sed justo feugiat sodales in vitae nunc. Fusce non sem eget nunc luctus vulputate non a sem.&lt;br&gt;&lt;br&gt;
          Sed metus enim, rutrum at adipiscing a, tempor egestas orci. Nam ornare, eros ac aliquam accumsan, libero orci porta justo, non consequat erat erat interdum purus.&lt;br&gt;&lt;br&gt;
          Aenean in mi facilisis tortor sagittis pharetra. Morbi orci sem, fringilla ac viverra nec, pulvinar vitae mauris. Pellentesque sapien ligula, malesuada eu facilisis fringilla, rutrum sollicitudin magna.&lt;br&gt;&lt;br&gt;
          Imperdiet, orci sodales interdum sodales, tellus ligula malesuada odio, ac egestas enim mi ac odio. Ut nulla sem, posuere ac porttitor a, interdum ut nulla.
         &lt;/font&gt;
        &lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;
     &lt;/td&gt;
     &lt;td width="192" valign="top" bgcolor="#E8EEF7"&gt;
      &lt;table width="192" cellspacing="0" cellpadding="10"&gt;
       &lt;tr&gt;
        &lt;td&gt;
         &lt;ul&gt;
          &lt;li&gt;&lt;font face="Arial, Helvetica, sans-serif" size="2" color="#444862"&gt;Nulla facilisi. Ut id sem erat. Donec lacinia porttitor arcu nec rutrum.&lt;/font&gt;&lt;/li&gt;
          &lt;li&gt;&lt;font face="Arial, Helvetica, sans-serif" size="2" color="#444862"&gt;Proin varius venenatis ullamcorper. Vivamus ut nisl justo, at porttitor.&lt;/font&gt;&lt;/li&gt;
          &lt;li&gt;&lt;font face="Arial, Helvetica, sans-serif" size="2" color="#444862"&gt;Nulla facilisi. Ut id sem erat. Donec lacinia porttitor arcu nec rutrum.&lt;/font&gt;&lt;/li&gt;
          &lt;li&gt;&lt;font face="Arial, Helvetica, sans-serif" size="2" color="#444862"&gt;Proin varius venenatis ullamcorper.&lt;/font&gt;&lt;/li&gt;
         &lt;/ul&gt;
        &lt;/td&gt;
       &lt;/tr&gt;
      &lt;/table&gt;
     &lt;/td&gt;
     &lt;td width="1" bgcolor="#CECECE"&gt;&lt;img src="http://newsite.bcasc.org/images/blank.gif" width="1" height="1" border="0" alt=""&gt;&lt;/td&gt;
     &lt;td width="1" bgcolor="#E2E2E2"&gt;&lt;img src="http://newsite.bcasc.org/images/blank.gif" width="1" height="1" border="0" alt=""&gt;&lt;/td&gt;
     &lt;td width="1" bgcolor="#F0F0F0"&gt;&lt;img src="http://newsite.bcasc.org/images/blank.gif" width="1" height="1" border="0" alt=""&gt;&lt;/td&gt;
     &lt;td width="1" bgcolor="#FAFAFA"&gt;&lt;img src="http://newsite.bcasc.org/images/blank.gif" width="1" height="1" border="0" alt=""&gt;&lt;/td&gt;
    &lt;/tr&gt;
   &lt;/table&gt;
   &lt;table width="500" cellspacing="0" cellpadding="0"&gt;
    &lt;tr&gt;
     &lt;td width="500" height="114"&gt;&lt;img src="http://newsite.bcasc.org/images/newsletter_footer.jpg" width="500" height="114" border="0" alt=""&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
     &lt;td width="500"&gt;
      &lt;font face="Arial, Helvetica, sans-serif" size="1" color="#444862"&gt;
       Address goes here&lt;br&gt;
       %%unsubscribe%%
      &lt;/font&gt;
     &lt;/td&gt;
    &lt;/tr&gt;
   &lt;/table&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;</pre>
<p>I&#8217;m sure I could write an entire gripping Dean Koontz-style novel on this subject, but this should serve as a good starter guide.  Also, no one would want to read anything that resembled a Dean Koontz book, so I guess I&#8217;ve spared you that horror.  One horror per day is my limit, and learning to code an email template is pretty much akin to handing the keys to your brain to Cthulu and then drinking a gallon of Jolt Cola.  Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://paul.bagosy.com/2010/01/07/tired-of-sanity-learn-to-design-and-code-email-templates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Content Swapping Portfolio</title>
		<link>http://paul.bagosy.com/2009/12/13/jquery-content-swapping-portfolio/</link>
		<comments>http://paul.bagosy.com/2009/12/13/jquery-content-swapping-portfolio/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 15:15:05 +0000</pubDate>
		<dc:creator>Paul Bagosy</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://paul.bagosy.com/?p=786</guid>
		<description><![CDATA[jQuery Swapping Portfolio Here&#8217;s a demo of everything I&#8217;m about to discuss. Recently, a number of clients have asked for an complex dynamic image-gallery-like page for a few different applications like portfolios and staff directories. The CMS I work with allows me to build a complex page for the client to load up with content, [...]]]></description>
			<content:encoded><![CDATA[<p>jQuery Swapping Portfolio</p>
<p><a href="/jquery_portfolio/" target="_blank">Here&#8217;s a demo of everything I&#8217;m about to discuss.</a></p>
<div class="wp-caption aligncenter" style="width: 610px"><a href="http://paul.bagosy.com/jquery_portfolio/index.htm"  target="_blank"><img title="the musical stylings of Eerwyrm will revolt you." src="http://paul.bagosy.com/jquery_portfolio/images/main_thumbnail.jpg" alt="main thumbnail jQuery Content Swapping Portfolio" width="600" height="215" /></a><p class="wp-caption-text">the musical stylings of Eerwyrm will revolt you.</p></div>
<p>Recently, a number of clients have asked for an complex dynamic image-gallery-like page for a few different applications like portfolios and staff directories.  The CMS I work with allows me to build a complex page for the client to load up with content, but the front end is where all the magic happens.</p>
<p>The first of these sites featured an artistic design and required a portfolio for landscape projects, so I wanted to go with an elegant flowing effect. There are two primary element to this concept:  the navigation and the content.  The content itself can be further divided to images and text, both of which are important elements for this particular layout.</p>
<p>The navigation consits of two columns of thumbnails down the side (or wherever you need them &#8211; for this example they&#8217;re on the side).  They live in a div that&#8217;s floated to the right.  Here&#8217;s what that code looks like:</p>
<p>Each thumbnail is tied to a div which is given a different ID. (link_1, link_2, etc.).  In the script, we bind each of those IDs to a click event:</p>
<pre>	$('#link_1').bind('click', {id:'1'} ,clickHandler);
	$('#link_2').bind('click', {id:'2'} ,clickHandler);
	etc.</pre>
<p>When anything in that div is clicked, it fires the click event, aptly named clickHandler:</p>
<pre>	var clickHandler = function(link){
		$('.main').fadeOut().pause(250);
		$('#content').animate({"height": $('#main_' + link.data.id).height() + 20}, {duration: "slow"});
		$('#main_' + link.data.id).pause(250).fadeIn("slow");
	}</pre>
<p>Important safety tip: That pause() function is there to slow things down so fadeouts don&#8217;t cross:</p>
<pre>	$.fn.pause = function(duration) {
	    $(this).animate({ dummy: 1 }, duration);
	    return this;
	};</pre>
<p>Now, on the content side, it&#8217;s just a matter of stacking up DIVs with your content in them and giving each div a unique (and patterned with the same id structure as your thumbnail IDs) ID (main_1, main_2, etc.).  Granted, if you&#8217;ve got a lot of data, you&#8217;re probably better off with a system to import it via AJAX, but for this instance, we&#8217;re going to cover a smaller data set.</p>
<p>So, we&#8217;ve got our sidebar:</p>
<pre>&lt;div id="sidebar"&gt;
 &lt;div id="link_1"&gt;&lt;img src="images/thumb_1.jpg" alt="" /&gt;&lt;/div&gt;
 &lt;div id="link_2"&gt;&lt;img src="images/thumb_1.jpg" alt="" /&gt;&lt;/div&gt;
&lt;/div&gt;</pre>
<p>And we have our content:</p>
<pre> &lt;div id="content"&gt;
  &lt;div id="main_1" class="content_div"&gt;Content div 1&lt;/div&gt;
  &lt;div id="main_2" class="content_div"&gt;Content div 2&lt;/div&gt;
 &lt;/div&gt;</pre>
<p>Now we just need a little styling on the content divs to hide them:</p>
<pre> .content_div { display:none; }</pre>
<p>Then it&#8217;s just a matter of displaying your first div when the page loads:</p>
<pre>	$(window).load(function(){
		$('#content').animate({"height": $('#main_1').height() + 20}, {duration: "slow"});
		$('#main_1').pause(250).fadeIn("slow");
	});</pre>
<p>The $(window).load call is important.  You don&#8217;t want this to fire right on (document).ready if there are any images in your first div, because they will likely not be completely loaded and the code won&#8217;t know how big that div is going to be.</p>
<p>so, here&#8217;s the simple code:</p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
 &lt;head&gt;
  &lt;title&gt;&lt;/title&gt;
  &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;
  &lt;style type="text/css"&gt;
   #sidebar { width:230px; float:left; }
   #sidebar div { float:left; margin-left:5px; }
   #content { width:500px; float:left; }
   .content_div { display:none; }
  &lt;/style&gt;
  &lt;script language="javascript" type="text/javascript" src="js/jquery.min.js"&gt;&lt;/script&gt;
  &lt;script language="javascript" type="text/javascript"&gt;
   &lt;!--
    $(document).ready(function(){

     $.fn.pause = function(duration) {
      $(this).animate({ dummy: 1 }, duration);
      return this;
     };

     var clickHandler = function(link){
      $('.content_div').fadeOut().pause(250);
      $('#content').animate({"height": $('#main_' + link.data.id).height() + 20}, {duration: "slow"});
      $('#main_' + link.data.id).pause(250).fadeIn("slow");
     }

     $(window).load(function(){
      $('#content').animate({"height": $('#main_1').height() + 20}, {duration: "slow"});
      $('#main_1').pause(250).fadeIn("slow");
     });

     $('#link_1').bind('click', {id:'1'} ,clickHandler);
     $('#link_2').bind('click', {id:'2'} ,clickHandler);
    });
   --&gt;
  &lt;/script&gt;
 &lt;/head&gt;
 &lt;body id="top"&gt;
  &lt;div id="sidebar"&gt;
   &lt;div id="link_1"&gt;&lt;img src="images/thumbnail.jpg" alt="" /&gt;&lt;/div&gt;
   &lt;div id="link_2"&gt;&lt;img src="images/thumbnail.jpg" alt="" /&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div id="content"&gt;
   &lt;div id="main_1" class="content_div"&gt;Content div 1&lt;/div&gt;
   &lt;div id="main_2" class="content_div"&gt;Content div 2&lt;/div&gt;
  &lt;/div&gt;
 &lt;/body&gt;
&lt;/html&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://paul.bagosy.com/2009/12/13/jquery-content-swapping-portfolio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vertically centering images in a DIV</title>
		<link>http://paul.bagosy.com/2009/12/13/vertically-centering-images-in-a/</link>
		<comments>http://paul.bagosy.com/2009/12/13/vertically-centering-images-in-a/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 15:05:51 +0000</pubDate>
		<dc:creator>Paul Bagosy</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://paul.bagosy.com/?p=756</guid>
		<description><![CDATA[Have you ever needed to vertically center and image in a div only to realize that it&#8217;s nowhere near as easy as it is in a table with vertical-align:middle? Horizontal centering is easy, but that damnable vertical is always just out of reach. Sure, there are ways to make it look centered, but that flies [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever needed to vertically center and image in a div only to realize that it&#8217;s nowhere near as easy as it is in a table with vertical-align:middle?  Horizontal centering is easy, but that damnable vertical is always just out of reach.  Sure, there are ways to make it <em>look</em> centered, but that flies out the window when you&#8217;re talking about dynamic sizes.</p>
<p>The work-around I use for this problem is to head a different route.  I know I can&#8217;t center horizontally with a DIV, so I stop trying and learn to love the space.  I just use a blank .gif the same height as my div and then use the style tag right on the IMG to set the background to my image with a position of center center.  <em>Viola</em>, instant centered image!</p>
<pre>&lt;div style="height:200px; width:200px;"&gt;&lt;img src="images/blank.gif" style="background:url(images/thumbnail.jpg) center center no-repeat;" alt="" /&gt;&lt;/div&gt;</pre>
<div style="border: 1px solid #999999;height: 200px;width: 200px;margin:0px auto"><img src="/jquery_portfolio/images/blank.gif" alt="blank Vertically centering images in a DIV"  title="Vertically centering images in a DIV" /></div>
]]></content:encoded>
			<wfw:commentRss>http://paul.bagosy.com/2009/12/13/vertically-centering-images-in-a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

