<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">
<channel>
    <title>mysiteonline™ - Web Development</title>
    <link>http://life.mysiteonline.org/</link>
    <description>Brendon Kozlowski's Home on the Web.</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.4 - http://www.s9y.org/</generator>
    <pubDate>Mon, 08 Mar 2010 21:24:29 GMT</pubDate>

    <image>
        <url>http://life.mysiteonline.org/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: mysiteonline™ - Web Development - Brendon Kozlowski's Home on the Web.</title>
        <link>http://life.mysiteonline.org/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>jQuery Printed Footer Links</title>
    <link>http://life.mysiteonline.org/archives/191-jQuery-Printed-Footer-Links.html</link>
            <category>Web Development</category>
    
    <comments>http://life.mysiteonline.org/archives/191-jQuery-Printed-Footer-Links.html#comments</comments>
    <wfw:comment>http://life.mysiteonline.org/wfwcomment.php?cid=191</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://life.mysiteonline.org/rss.php?version=2.0&amp;type=comments&amp;cid=191</wfw:commentRss>
    

    <author>nospam@example.com (Brendon Kozlowski)</author>
    <content:encoded>
    I was randomly perusing the web and stumbled across an older interesting &lt;a href=&quot;http://www.alistapart.com/articles/improvingprint/&quot;&gt;List Apart article&lt;/a&gt; (September 19, 2005 to be exact).  In it, the author used JavaScript to create a list of all links found on the page, and then create a footer with a footnote-like list. I was using simple CSS to display the URL of the hyperlink in print display media, but that doesn&#039;t work in some browsers (IE), and worse off it can really mess up the visual order of the page.&lt;br /&gt;
&lt;br /&gt;
Inspired by the article&#039;s intentions, I decided to use some jQuery to whip up a similar solution.  Differences? I exclude hyperlinks set to the hash symbol (#) which shouldn&#039;t be found anyway (graceful degredation people!), mailto links, and I don&#039;t find link element&#039;s citations (blockquote &quot;cite&quot; property).  I also believe his script would grab image information, but I&#039;m not entirely sure, mine only searches hyperlinks.  I also opted not to exclude listings of duplicate hyperlink values. If it&#039;s found twice, it lists it in the footer twice. Less JS processing, and more clear to the visitor (in my opinion).&lt;br /&gt;
&lt;br /&gt;
Expected Issues: It requires JavaScript. If JavaScript is enabled but CSS is disabled, the hidden content will be visible to the user.&lt;br /&gt;
&lt;br /&gt;
On to the code!&lt;br /&gt;
&lt;br /&gt;
First thing&#039;s first, we should find the links in our code that we&#039;d like to target.  For &lt;strong&gt;my&lt;/strong&gt; situation, I have a content class defined on my page for all content, and the column that contains the actual body is called &quot;.col2_right&quot; (yes, I know, ignore the fact of the poor naming scheme).  So, in jQuery, we&#039;re going to target all hyperlinks found in the col2_right and content classes, but we don&#039;t want to include links to hashes or mailto links. I&#039;ve also removed listing to nofollow links, but that is my choice (probably not a good one, but I digress).&lt;br /&gt;
&lt;br /&gt;
&lt;textarea name=&quot;code&quot; class=&quot;javascript&quot;&gt;var links = $(&#039;.col2_right.content a:not([href^=#],[href^=mailto],[rel=nofollow])&#039;);&lt;/textarea&gt;&lt;br /&gt;
We&#039;ll also need some sort of container to keep these found links wrapped in.  I chose to use a fieldset and legend, you could just as easily create a DIV and a H2 or other tags for your own purposes. I also want to create an ordered list to match the found hyperlinks.&lt;br /&gt;
&lt;textarea name=&quot;code&quot; class=&quot;javascript&quot;&gt;var footnotesWrapper = $(&#039;&lt;fieldset&gt;&#039;, {
	css: {
		clear: &#039;both&#039;
	}
}).addClass(&#039;print_only&#039;);
var footnotesLabel = $(&#039;&lt;legend&gt;&#039;, {
	text: &#039;Website Addresses Used in the Document&#039;
}).appendTo(footnotesWrapper);

//create an OL to hold the footnotes
var footnoteList = $(&#039;&lt;ol&gt;&#039;).appendTo(footnotesWrapper);&lt;/textarea&gt;&lt;br /&gt;
Here comes the real center, meaty goodness of the script: looping through our list of found hyperlinks, creating a little notification text next to the hyperlink&#039;s text, and add the hyperlink URL itself to the footnote section in the ordered list as a list item.&lt;br /&gt;
&lt;br /&gt;
We use jQuery&#039;s each() method to loop through the items in the array, grab the link&#039;s URL so that we can do some testing on it, and modify it&#039;s value for inclusion in to the footnotes. Some links may be relative URLs, but that doesn&#039;t mean much to someone who doesn&#039;t know what a relative URL is. In fact, it would probably confuse me too at first. I happen to know that my domain forces www for the subdomain so I&#039;ve added that in, fix that up as you like. I then create a span tag to hold the associated footnote number (the ListApart article used a superscript tag, I found regular text is more easily readable), add a class to it so it&#039;s only visible when printed, and create my list item element with the URL from our link, and place those elements in to the document in the appropriate places with the appendTo jQuery function.&lt;br /&gt;
&lt;textarea name=&quot;code&quot; class=&quot;javascript&quot;&gt;$.each(links, function(i){
	var linkText = $(this).text();
	var linkValue = $(this).attr(&#039;href&#039;);
	if(linkValue.substring(0,1) === &#039;/&#039;){
		linkValue = &#039;http://www.&#039;+document.location.host + linkValue;
	}
	//create element to hold span with class to hide except on print
	var newElement = $(&#039;&lt;span&gt;&#039;, {
		text: &#039; [&#039;+ ++i +&#039;]&#039;
	}).addClass(&#039;print_only&#039;).appendTo($(this));

	var listEntry = $(&#039;&lt;li&gt;&#039;, {
		text: linkValue
	}).appendTo(footnoteList);
});&lt;/textarea&gt;&lt;br /&gt;
Last but not least, we append our entire footnote to the end of our content body section.  The full code is below.&lt;br /&gt;
&lt;textarea name=&quot;code&quot; class=&quot;javascript&quot;&gt;$(document).ready(function(){
	//get the container and target
	var links = $(&#039;.col2_right.content a:not([href^=#],[href^=mailto],[rel=nofollow])&#039;);

	//create a container and heading for the footnotes
	var footnotesWrapper = $(&#039;&lt;fieldset&gt;&#039;, {
		css: {
			clear: &#039;both&#039;
		}
	}).addClass(&#039;print_only&#039;);
	var footnotesLabel = $(&#039;&lt;legend&gt;&#039;, {
		text: &#039;Website Addresses Used in the Document&#039;
	}).appendTo(footnotesWrapper);

	//create an OL to hold the footnotes
	var footnoteList = $(&#039;&lt;ol&gt;&#039;).appendTo(footnotesWrapper);

	$.each(links, function(i){
		var linkText = $(this).text();
		var linkValue = $(this).attr(&#039;href&#039;);
		if(linkValue.substring(0,1) === &#039;/&#039;){
			linkValue = &#039;http://www.&#039;+document.location.host + linkValue;
		}
		//create element to hold span with class to hide except on print
		var newElement = $(&#039;&lt;span&gt;&#039;, {
			text: &#039; [&#039;+ ++i +&#039;]&#039;
		}).addClass(&#039;print_only&#039;).appendTo($(this));

		var listEntry = $(&#039;&lt;li&gt;&#039;, {
			text: linkValue
		}).appendTo(footnoteList);
	});

	// append the heading and &lt;ol&gt; to the target
	$(&#039;.col2_right.content&#039;).append(footnotesWrapper);
});&lt;/textarea&gt;&lt;br /&gt;
&lt;br /&gt;
Oh, and the CSS: &quot;.print_only { display:none; }&quot; This should be placed in your normal style sheet, and leave it out from your print style sheet. If you don&#039;t have a print style sheet, extend it a bit: @media print { .print_only { display:none; } }&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Mon, 08 Mar 2010 11:52:51 -0800</pubDate>
    <guid isPermaLink="false">http://life.mysiteonline.org/archives/191-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>YSlow: Getting a better score and a faster site.</title>
    <link>http://life.mysiteonline.org/archives/189-YSlow-Getting-a-better-score-and-a-faster-site..html</link>
            <category>Web Development</category>
    
    <comments>http://life.mysiteonline.org/archives/189-YSlow-Getting-a-better-score-and-a-faster-site..html#comments</comments>
    <wfw:comment>http://life.mysiteonline.org/wfwcomment.php?cid=189</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://life.mysiteonline.org/rss.php?version=2.0&amp;type=comments&amp;cid=189</wfw:commentRss>
    

    <author>nospam@example.com (Brendon Kozlowski)</author>
    <content:encoded>
    I decided that it was finally time I took a serious look at increasing the YSlow score for our websites. I was under the impression that browsers would automatically cache (by default anyway) certain graphic elements to save on bandwidth, but our staff website has a repeating background image for a left hand navigation bar, and it would disappear for a fraction of a second while reloading the other page; this told me that something was not right, and YSlow might be the answer I was looking for (and that my PHP framework of choice was not to blame).&lt;br /&gt;
&lt;br /&gt;
YSlow:&lt;br /&gt;
Initial Score: 67&lt;br /&gt;
&lt;br /&gt;
I choose the smallest size images exported from Photoshop, and if I ever use a PNG, I use a great tool called &quot;&lt;a href=&quot;http://benhollis.net/software/pnggauntlet/&quot;&gt;PNGGuantlet&lt;/a&gt;&quot; (Windows only) which compresses PNGs while also removing the alpha channel problems that make PNGs appear with different colors than they were intended to.  I also have compressed my main JS file, and CSS file(s). All XHTML should be valid (unless I updated a link and forget to escape an ampersand), the DOCTYPE is listed, character set is given, and all non-background images contain height and width properties.  Oh, I also have a default favicon.ico file.  These are all good recommendations to do regardless, and in doing so YSlow gave me a pretty decent score (albeit, not that great if it was a test in school).&lt;br /&gt;
&lt;br /&gt;
Two modifications to YSlow&#039;s scoring:&lt;br /&gt;
1. I am not Amazon. I don&#039;t necessarily need a CDN for my content.&lt;br /&gt;
2. I don&#039;t need a subdomain to house my CSS, JS, and images. If I end up storing videos, that already has a subdomain set up and ready.&lt;br /&gt;
&lt;br /&gt;
Therefore, I modified YSlow&#039;s grading scheme. To do so, there is a dropdown menu to the right of the 4 tabs in the YSlow toolbar, it is labelled &quot;YSlow(V2)&quot;. Click the &quot;Edit&quot; button to the immediate right of that.  In my scheme, I disabled &quot;Use a Content Delivery Network (CDN)&quot; and &quot;Use cookie-free domains&quot;. You cannot overwrite the rule set, so you have to save it as something else, I named mine &quot;SSPL&quot; since that is the website domain that I care about (for work). Different websites have different criteria, so it only makes sense to name it something related to the website you are concerned about. Go through and uncheck what you don&#039;t believe applies to you. If you&#039;re uncertain, leave it checked.  This little configuration raises my grade up already - that was easy.&lt;br /&gt;
&lt;br /&gt;
Here are the .htaccess rules I&#039;ve added to raise my own score, what they&#039;re for and why I chose to make them:&lt;br /&gt;
&lt;textarea name=&quot;code&quot; class=&quot;plain&quot;&gt;# Optimization settings
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript text/css application/javascript text/json application/json
Header unset ETag
FileETag None
ExpiresActive On
ExpiresDefault &quot;modification plus 10 years&quot;&lt;/textarea&gt;&lt;br /&gt;
&lt;br /&gt;
Enable GZip&#039;ing of components:&lt;br /&gt;
The AddOutputFilterByType DEFLATE [list of mimetypes] was the command I used to gzip the particularly listed files that have such a MIME-Type: html, txt, js, css, js (variation), json, json (variation). Some browsers read JSON and JavaScript as an application mime-type whereas others read it as a text type, I figured I would simply cover my bases. Although these are ASCII types, you could just as easily gzip binary types, such as GIF, JPG, or PDF (though theoretically they should already be compressed and you&#039;re just adding extra work for the server).&lt;br /&gt;
&lt;br /&gt;
Configure ETags:&lt;br /&gt;
From what I have read, ETags are a mixed breed. They can have some benefits, but they can also have some detractions. Again, considering that I&#039;m not Amazon and I will be enabling the Expires heading, I opted to simply disable ETags. You can disable ETags in Apache under an .htaccess file with the unset rule above, along with the FileETag None to cover most supporting browsers (one would hope). I wasn&#039;t able to find any examples on how to properly &quot;configure&quot; ETags so that YSlow would not complain other than to simply turn them off. ETags, from what I&#039;ve read, are a variation on telling the browser to cache certain files in a certain manner, but it doesn&#039;t work on any website that is run on multiple servers for the same content. Either way, I opted for the Expires heading which made ETags rather redundant from what I could tell.&lt;br /&gt;
&lt;br /&gt;
Enabling an Expires Heading:&lt;br /&gt;
It appears that in Apache, by default, Expires headings are disabled, and just like mod_rewrite, you must explicitly tell Apache that you wish to use it, so the first thing you have to do is turn it on: &quot;ExpiresActive On&quot;. Once that is done, there are a few ways to set the expiry time; I opted to use a human readable implementation, and YSlow expects a &quot;far future&quot; date (from the date last modified). As one of my sites is currently built with HTML files pulling in a template, the original files won&#039;t typically be modified for a long time, so I had to make my future date a FAR future date (10 years from last modification) - your experience may vary. For further information on Expires, take a look at the &lt;a href=&quot;http://httpd.apache.org/docs/2.0/mod/mod_expires.html&quot;&gt;Apache documentation for mod_expires&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Additional speed enhancements:&lt;br /&gt;
I recently read that if you have a framework that may take some time figuring out what data must be displayed prior to even getting it to the server, it may be a good idea to flush the buffer so that the data that &lt;strong&gt;can&lt;/strong&gt; be sent to the browser can be sent prior to everything else - such as the document head which contains the page title, CSS, and sometimes JS. That way, while the rest of the page is being rendered by the server, the JS/CSS has time to download. This is actually why I decided to leave my JS at the top of my website rather than placing it in the footer. I live by graceful degredation, but if the page loads before the JS does, it can also cause a screen flicker which is against accessibility guidelines for HTML. In this case, it was possible speed for accessibility - I choose accessibility. I personally really don&#039;t want me, or my client(s) getting sued for accessibility issues because &quot;Oh hey, it loads a second faster now!&quot;. If you had an interactive rich website such as Facebook or MySpace, I&#039;d imagine you&#039;d have to place JS in the footer and have a separate, accessible domain for others...if that&#039;s even easily possible. Anyway, what I did with flushing the output buffer was to (in PHP) modify my template file, I called PHP&#039;s &lt;strong&gt;flush()&lt;/strong&gt; function after the closing HEAD tag in the HTML template file.&lt;br /&gt;
&lt;br /&gt;
Anyway, with those small tweaks and tricks, I was able to get my score up to 96. I have a B in 3 categories: &lt;br /&gt;
1. Expires header issue (CDN of ajax.googleapis.com, it won&#039;t recognize my CDN) as a CDN has a non-far future expiration date in the called JS file.&lt;br /&gt;
2. Minify CSS and JS - it is minified, so I&#039;m not sure what it wants from me. The filesize is probably too large for an A.&lt;br /&gt;
3. Put JavaScript at the Bottom - I already explained why I don&#039;t want to do this, but I&#039;ve left the rule in anyway.&lt;br /&gt;
&lt;br /&gt;
Now my site seems to be a bit more responsive, and the background image I mentioned before no longer disappears and reappears (unless I press refresh really, really fast, confusing the browser&#039;s cache I guess). 
    </content:encoded>

    <pubDate>Sun, 28 Feb 2010 14:06:05 -0800</pubDate>
    <guid isPermaLink="false">http://life.mysiteonline.org/archives/189-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>Enabling SSL (HTTPS) via htaccess Only if Matching a Specific Domain</title>
    <link>http://life.mysiteonline.org/archives/187-Enabling-SSL-HTTPS-via-htaccess-Only-if-Matching-a-Specific-Domain.html</link>
            <category>Web Development</category>
    
    <comments>http://life.mysiteonline.org/archives/187-Enabling-SSL-HTTPS-via-htaccess-Only-if-Matching-a-Specific-Domain.html#comments</comments>
    <wfw:comment>http://life.mysiteonline.org/wfwcomment.php?cid=187</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://life.mysiteonline.org/rss.php?version=2.0&amp;type=comments&amp;cid=187</wfw:commentRss>
    

    <author>nospam@example.com (Brendon Kozlowski)</author>
    <content:encoded>
    I had a momentary stumble today that I (somehow) couldn&#039;t get through my head. Perhaps it&#039;s just because it&#039;s been so long since I&#039;ve worked with mod_rewrite, but regardless of that, here&#039;s the situation and the solution:&lt;br /&gt;
&lt;br /&gt;
&quot;The Situation&quot; said that the situation is:&lt;br /&gt;
I had multiple conditions that needed to be met before a rule should be run, otherwise it should be ignored.&lt;br /&gt;
I am running (and require) SSL on my production server.&lt;br /&gt;
I am &lt;strong&gt;not&lt;/strong&gt; running SSL on my development box.&lt;br /&gt;
I didn&#039;t want multiple .htaccess files in my SVN repository.&lt;br /&gt;
&lt;br /&gt;
The solution:&lt;br /&gt;
&quot;Duh.&quot; Multiple RewriteCond in a row (separated by a newline) all must be met before the RewriteRule is run.&lt;br /&gt;
&lt;br /&gt;
The resulting .htaccess took the following form:&lt;br /&gt;
&lt;textarea name=&quot;code&quot; class=&quot;plain&quot;&gt;&lt;IfModule mod_rewrite.c&gt;
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_HOST} ^employees\.sspl\.org [NC]
    RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
&lt;/IfModule&gt;&lt;/textarea&gt;&lt;br /&gt;
The last 3 lines dealing with rewrite in my .htaccess file are related to the code library I&#039;m using, and are not pertinent to the problem here.  The important lines are as follows:&lt;br /&gt;
&lt;strong&gt;RewriteCond %{HTTPS} !=on&lt;br /&gt;
RewriteCond %{HTTP_HOST} ^staff\.sspl\.org [NC]&lt;br /&gt;
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
The first condition tests to see if SSL (https protocol) is not being used in the request.&lt;br /&gt;
The second condition tests that the domain&#039;s host is &quot;employees.sspl.org&quot; (URL changed to protect the innocent).&lt;br /&gt;
If both tests pass, then I redirect the user to the host (and path &quot;/$1&quot;) while using the https protocol (SSL).  Done. 
    </content:encoded>

    <pubDate>Thu, 18 Feb 2010 09:19:08 -0800</pubDate>
    <guid isPermaLink="false">http://life.mysiteonline.org/archives/187-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>iPhone Server Alerting on High Load</title>
    <link>http://life.mysiteonline.org/archives/183-iPhone-Server-Alerting-on-High-Load.html</link>
            <category>Web Development</category>
    
    <comments>http://life.mysiteonline.org/archives/183-iPhone-Server-Alerting-on-High-Load.html#comments</comments>
    <wfw:comment>http://life.mysiteonline.org/wfwcomment.php?cid=183</wfw:comment>

    <slash:comments>6</slash:comments>
    <wfw:commentRss>http://life.mysiteonline.org/rss.php?version=2.0&amp;type=comments&amp;cid=183</wfw:commentRss>
    

    <author>nospam@example.com (Brendon Kozlowski)</author>
    <content:encoded>
    I have a shared Dreamhost account.  In fact, I manage two: my own, and work&#039;s.  Typically I don&#039;t too much care about my personal site going up or down, but I have multiple sites running under my account - and our work account with Dreamhost must maintain a decent responsiveness during business hours.&lt;br /&gt;
&lt;br /&gt;
I&#039;ve been developing a CakePHP plugin for &lt;a href=&quot;http://prowl.preks.net&quot;&gt;Prowl&lt;/a&gt; but haven&#039;t quite polished it well enough for release.  In the meantime, my work&#039;s Dreamhost account has had major issues where the server load would spike up to 350+ (I have no idea how many cores there are).  That&#039;s just ludicrous.  We&#039;ve recently been moved to a new server by the support staff (for the 5th time) and although the average server load is now 0.40, I don&#039;t want to take my chances without a backup plan.  Enter Prowl and my iPod Touch.&lt;br /&gt;
&lt;br /&gt;
(To use Prowl, you would need an iPod touch or iPhone, and paid for and installed the Prowl application; it&#039;s $4.99 as of this writing.  You then need to get your API from the prowl.preks.net website.)&lt;br /&gt;
&lt;br /&gt;
We&#039;ll be using the PHP 3rd party API for Prowl, built by &quot;Fenric&quot;, and we will go to his &lt;a href=&quot;http://github.com/Fenric/ProwlPHP&quot;&gt;GitHub&lt;/a&gt; account to get it.&lt;br /&gt;
&lt;br /&gt;
Once we have the PHP API for Prowl from Fenric, we&#039;ll build some quick code to make use of it:&lt;br /&gt;
&lt;textarea name=&quot;code&quot; class=&quot;php&quot;&gt;&lt;?php
include(&#039;ProwlPHP.php&#039;); //Fenric&#039;s Prowl API

$load = sys_getloadavg(); //oh yeah, this&#039;ll only work on a *nix machine
$current_load_avg = $load[0];
$priority = 0; //available options are -2, -1, 0, 1, or 2
$msg = &#039;&#039;;

if($current_load_avg &gt; 300){
	$msg = &#039;SEVERE SERVER ALERT, LOAD ABOVE 300!!&#039;;
}else if($current_load_avg &gt; 125){
	$msg = &#039;AMBER ALERT: Server Load above 125.&#039;;
}else if($current_load_avg &gt; 50){
	$msg = &#039;Notice: Server load above 50.&#039;;
}

if(!empty($msg)){
	$prowl = new Prowl(&#039;your API key&#039;);
	$prowl-&gt;push(array(
		&#039;application&#039; =&gt; &#039;Server Load Alert&#039;,
		&#039;event&#039; =&gt; &#039;Load Warning&#039;,
		&#039;description&#039; =&gt; $msg,
		&#039;priority&#039; =&gt; $priority
	), true);
}
?&gt;&lt;/textarea&gt;&lt;br /&gt;
This little script can easily be setup with a cronjob and automatically check the current server&#039;s load and report issues.  It won&#039;t report if a server is down since it must run on the server it is reporting on, but it would help inform about possible problems that should be looked at.  This could easily be extended to check the MySQL long query logs, or other reporting functions. 
    </content:encoded>

    <pubDate>Fri, 15 Jan 2010 20:27:00 -0800</pubDate>
    <guid isPermaLink="false">http://life.mysiteonline.org/archives/183-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>Prowl, an iPhone/iPod Touch implementation of Growl</title>
    <link>http://life.mysiteonline.org/archives/182-Prowl,-an-iPhoneiPod-Touch-implementation-of-Growl.html</link>
            <category>Web Development</category>
    
    <comments>http://life.mysiteonline.org/archives/182-Prowl,-an-iPhoneiPod-Touch-implementation-of-Growl.html#comments</comments>
    <wfw:comment>http://life.mysiteonline.org/wfwcomment.php?cid=182</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://life.mysiteonline.org/rss.php?version=2.0&amp;type=comments&amp;cid=182</wfw:commentRss>
    

    <author>nospam@example.com (Brendon Kozlowski)</author>
    <content:encoded>
    So, I hear you like the idea of push notifications on the iPhone.  Oh, what&#039;s that?  You wish you could send push notifications from your website and/or iPhone enabled web app?  Hey, didn&#039;t you know that you can?&lt;br /&gt;
&lt;br /&gt;
Thanks to &lt;a href=&quot;http://ex-libris.ca/&quot;&gt;Mike&lt;/a&gt;, and &lt;a href=&quot;http://ex-libris.ca/?p=822&quot;&gt;his post&lt;/a&gt; about what &lt;a href=&quot;http://www.blyberg.net/&quot;&gt;John Blyberg&lt;/a&gt;&#039;s been doing, I got interested in &lt;a href=&quot;http://prowl.weks.net/&quot;&gt;Prowl&lt;/a&gt;.  Prowl is an iPhone app ($4.99 from the iTunes store, I believe) that lets us send push notifications to iPhone or iPod Touch devices (and hey, it works with 1st gen devices too!).  You would need version 3.1 of the iPhone OS, and jailbroken phones are not officially supported (some work, some don&#039;t due to how they were jailbroken), but for the most part &quot;it just works&quot;, and it&#039;s fast.  From my tests, the longest delay I&#039;ve had thus far on a &quot;normal&quot; importance level Prowl message was about 2-3 seconds.&lt;br /&gt;
&lt;br /&gt;
So what use does it have?  I&#039;m sure there could be quite a lot.  There are &lt;a href=&quot;http://forums.cocoaforge.com/viewforum.php?f=45&quot;&gt;forums&lt;/a&gt; for Prowl discussions, and one of the stickied topics is just about &lt;a href=&quot;http://forums.cocoaforge.com/viewtopic.php?f=45&amp;amp;t=20393&amp;amp;sid=5b5a698f7023927000f3fd0368024aba&quot;&gt;what people are doing with custom notifications&lt;/a&gt;, and there are a varied slew of responses.  It&#039;s quite interesting, actually.&lt;br /&gt;
&lt;br /&gt;
It&#039;s not much of a surprise to anyone that&#039;s been keeping tabs on this blog (hi Mike) that I have been getting acquainted with the &lt;a href=&quot;http://www.cakephp.org/&quot;&gt;CakePHP framework&lt;/a&gt;.  Because of all the uses of Prowl, and my newfound love for CakePHP, I&#039;ve decided to write a plugin specifically for Prowl in CakePHP.  I am not the first to create extensions for Prowl by any means, nor am I even the first to think of getting it CakePHP-ready.  I&#039;ve found two others after having started my work that have created Prowl Components: &lt;a href=&quot;http://projects.ofjacob.com/cakephp-prowl-component/&quot;&gt;Jacob Oehler Morrison&lt;/a&gt;, and &lt;a href=&quot;http://thewebandthings.synodicsolutions.com/2009/08/06/introducing-the-prowl-component-push-notifcations-for-iphone/&quot;&gt;Eric Holmes&lt;/a&gt; (note: as of this writing, Eric Holmes&#039; domain seems to be expired).  Hopefully I can add a little bit more zest and out-of-the-box capabilities to a plugin.  If anyone has some ideas, let me know about it in the comments! 
    </content:encoded>

    <pubDate>Fri, 08 Jan 2010 18:51:53 -0800</pubDate>
    <guid isPermaLink="false">http://life.mysiteonline.org/archives/182-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>Checking the viewport's width and height...</title>
    <link>http://life.mysiteonline.org/archives/168-Checking-the-viewports-width-and-height....html</link>
            <category>Web Development</category>
    
    <comments>http://life.mysiteonline.org/archives/168-Checking-the-viewports-width-and-height....html#comments</comments>
    <wfw:comment>http://life.mysiteonline.org/wfwcomment.php?cid=168</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://life.mysiteonline.org/rss.php?version=2.0&amp;type=comments&amp;cid=168</wfw:commentRss>
    

    <author>nospam@example.com (Brendon Kozlowski)</author>
    <content:encoded>
    I&#039;ve never been a fan of using JavaScript to fix up an interface.  That is the purpose of using CSS.  However, with that being said, I developed a very elegant website login page with a resolution of 1024x768 in mind.  All of the CSS had been meticulously measured using quite a few pixel-based measurements (over EMs, because I was sure it would be fine for the two horizontal elements taking up the page width).  Unfortunately, I had confused our public facing site with our backend staff site&#039;s statistics.  32% of our backend site is viewed with a resolution of 800x600.  Uh oh!&lt;br /&gt;
&lt;br /&gt;
Times are changing, and computers get upgraded.  Although the staff members with an 800x600 resolution might be used to scrolling on some pages to view content, it really wasn&#039;t good for the staff site&#039;s login to require a scroll (the main site is not yet redesigned, and I designed that for an 800x600 display).  I didn&#039;t want to have to start from scratch, and even resize images to make them fit.  As time progressed, I expected the percentage of 800x600 site views to drop, so this is more of a temporary band-aid that&#039;s needed anyway...  JavaScript to the rescue.&lt;br /&gt;
&lt;br /&gt;
Screen resolution is easy.  &lt;code&gt;screen.width&lt;/code&gt; and &lt;code&gt;screen.height&lt;/code&gt;, respectively, will tell you about a visitor&#039;s monitor&#039;s current resolution, but in this case I needed to know the viewport.&lt;br /&gt;
&lt;br /&gt;
Many people state that each of the major browsers use a different approach to determining the viewport, and this is true.  But most people also create a function or IF/ELSE case for each possible outcome.  I found some code that mixes all three in one line quite intuitively.  Below is the actual JavaScript I used (jQuery methods found in there) to solve my issue (I pre-determined the width/height numbers manually for this specific layout).&lt;br /&gt;
&lt;textarea name=&quot;code&quot; class=&quot;javascript&quot;&gt;$(document).ready(function(){
	if(vpWidth() &lt; 850 || vpHeight() &lt; 650){
		$(&#039;#logo&#039;).hide();
		$(&#039;#surface&#039;).hide();
	}
});
function vpWidth() {
	return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
}
function vpHeight() {
	return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
}&lt;/textarea&gt;&lt;br /&gt;
&lt;br /&gt;
Quite easy, quite nice, and the most important thing is that the login box is now clearly visible without any unnecessary scrolling (caused by CSS issues) at specific resolutions (tested at 600px width, minimum).  If it&#039;s any less than that, I can assume it&#039;s a mobile browser and we don&#039;t (yet) support that; but when we do it&#039;ll be a completely different layout that&#039;s used.&lt;br /&gt;
&lt;br /&gt;
I hope this might be helpful to someone else, but for the right reasons!  (Credit to &lt;a href=&quot;http://javascript.about.com/library/blbom10.htm&quot;&gt;About.com&lt;/a&gt; for the viewport functions.) 
    </content:encoded>

    <pubDate>Fri, 19 Jun 2009 13:19:40 -0700</pubDate>
    <guid isPermaLink="false">http://life.mysiteonline.org/archives/168-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>Website Scaling Issues with EMs (CSS) and IE6/7</title>
    <link>http://life.mysiteonline.org/archives/151-Website-Scaling-Issues-with-EMs-CSS-and-IE67.html</link>
            <category>Web Development</category>
    
    <comments>http://life.mysiteonline.org/archives/151-Website-Scaling-Issues-with-EMs-CSS-and-IE67.html#comments</comments>
    <wfw:comment>http://life.mysiteonline.org/wfwcomment.php?cid=151</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://life.mysiteonline.org/rss.php?version=2.0&amp;type=comments&amp;cid=151</wfw:commentRss>
    

    <author>nospam@example.com (Brendon Kozlowski)</author>
    <content:encoded>
    When the Saratoga Springs Public Library website was redesigned, although I used a static width (set to something like 720px wide) for the content area, I intended for it to be easily resized with supporting browsers.  I made sure to set everything (else) to size with EMs in CSS (similar to percentage).&lt;br /&gt;
&lt;br /&gt;
...an issue with the top navigation cropped up on &lt;em&gt;some&lt;/em&gt; computers that I could not identify, nor could I figure out how to solve.  For 95% of browsers I tested, and 100% with a vanilla install of Windows, everything worked fine.  For those others, the navigation links at the top of our site just didn&#039;t seem to align.  I thought it might have something to do with DPI or visual settings, but I had no idea how to accommodate for that.&lt;br /&gt;
&lt;br /&gt;
Well I completely accidentally ran in to William Kolean&#039;s solution of fixing this issue with Microsoft&#039;s CSS expression engine.  As the issue was only seen in Internet Explorer (and I already had an IE-specific stylesheet to fix tiny issues), this was a perfect solution, and I put it in to use (just now, actually).  I can verify that it worked (on my first and only test) so I&#039;m quite happy.  I thought I&#039;d post this for my own records, and to help others too.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.williamkolean.com/williamblog/?p=18&quot;&gt;http://www.williamkolean.com/williamblog/?p=18&lt;/a&gt;&lt;br /&gt;
Thanks, William! 
    </content:encoded>

    <pubDate>Thu, 30 Oct 2008 11:41:32 -0700</pubDate>
    <guid isPermaLink="false">http://life.mysiteonline.org/archives/151-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>Cool CSS Trick with IE6 Bugs</title>
    <link>http://life.mysiteonline.org/archives/147-Cool-CSS-Trick-with-IE6-Bugs.html</link>
            <category>Web Development</category>
    
    <comments>http://life.mysiteonline.org/archives/147-Cool-CSS-Trick-with-IE6-Bugs.html#comments</comments>
    <wfw:comment>http://life.mysiteonline.org/wfwcomment.php?cid=147</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://life.mysiteonline.org/rss.php?version=2.0&amp;type=comments&amp;cid=147</wfw:commentRss>
    

    <author>nospam@example.com (Brendon Kozlowski)</author>
    <content:encoded>
    I was creating a replicated PDF form in HTML/CSS for work today and needed to get a portion of the form (signature field) to rest at the bottom of the page, whichever page it was.  This was easily accomplished in CSS-friendly browsers by using &lt;strong&gt;position:fixed; bottom:0;&lt;/strong&gt; ... however, IE6 does not support the &quot;fixed&quot; position with CSS.  Not good...not all of our staff members in the building have been upgraded to use IE7 - most have, a couple have not.&lt;br /&gt;
&lt;br /&gt;
Stu Nichols has found a way to &quot;trick&quot; IE6 in to allowing something almost entirely the same by way of using another CSS bug.  It&#039;s a bit hackish, but it&#039;s not an actual hack.  I used IE&#039;s conditional CSS to make sure it didn&#039;t mess up any other browser&#039;s rendering, but the link (and demo) is below in case anyone else needs the same functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.cssplay.co.uk/layouts/fixed.html&quot;&gt;http://www.cssplay.co.uk/layouts/fixed.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Ironically enough, this doesn&#039;t seem to work in Safari for Windows properly (haven&#039;t tried it with my Apple).  Thankfully for me, I don&#039;t need to cope with that issue for this form on our intranet.  I imagine it&#039;s actually a bug in the browser&#039;s rendering (only for print, it works just fine for online display). 
    </content:encoded>

    <pubDate>Mon, 29 Sep 2008 09:21:52 -0700</pubDate>
    <guid isPermaLink="false">http://life.mysiteonline.org/archives/147-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>Browsers and minimum CSS overflow on Windows XP</title>
    <link>http://life.mysiteonline.org/archives/144-Browsers-and-minimum-CSS-overflow-on-Windows-XP.html</link>
            <category>Web Development</category>
    
    <comments>http://life.mysiteonline.org/archives/144-Browsers-and-minimum-CSS-overflow-on-Windows-XP.html#comments</comments>
    <wfw:comment>http://life.mysiteonline.org/wfwcomment.php?cid=144</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://life.mysiteonline.org/rss.php?version=2.0&amp;type=comments&amp;cid=144</wfw:commentRss>
    

    <author>nospam@example.com (Brendon Kozlowski)</author>
    <content:encoded>
    The title of this post is a bit misleading; I was trying to stuff it for SEO keywords without it being too long.&lt;br /&gt;
&lt;br /&gt;
I ran into an issue with regard to the CSS property of &quot;overflow&quot; that I had set to &quot;auto&quot;.  When I set some test text of about 100 or so continuous &quot;Hello &quot; words, the scroll bars worked just fine.  I then tweaked my node&#039;s height, and text and continued, but...  The scroll bars weren&#039;t showing up, and my text was outside the bounds of the box (and therefore clipped)!  Oh no!  Tragedy of tragedies!&lt;br /&gt;
&lt;br /&gt;
Through a little experimentation (in the end, this took me about 30 minutes to track down, and then test in all the browsers), I was able to determine what the problem was. &lt;br /&gt;&lt;a href=&quot;http://life.mysiteonline.org/archives/144-Browsers-and-minimum-CSS-overflow-on-Windows-XP.html#extended&quot;&gt;Continue reading &quot;Browsers and minimum CSS overflow on Windows XP&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 01 Aug 2008 10:47:11 -0700</pubDate>
    <guid isPermaLink="false">http://life.mysiteonline.org/archives/144-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>Keep your account info handy...</title>
    <link>http://life.mysiteonline.org/archives/139-Keep-your-account-info-handy....html</link>
            <category>Web Development</category>
    
    <comments>http://life.mysiteonline.org/archives/139-Keep-your-account-info-handy....html#comments</comments>
    <wfw:comment>http://life.mysiteonline.org/wfwcomment.php?cid=139</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://life.mysiteonline.org/rss.php?version=2.0&amp;type=comments&amp;cid=139</wfw:commentRss>
    

    <author>nospam@example.com (Brendon Kozlowski)</author>
    <content:encoded>
    So here I was trying to do some work on my domains this weekend and into today, thinking that my host had problems with the server on the weekend...  &quot;Oh, it&#039;s up again today,&quot; I thought...so I proceeded to try to login again today.  Well, apparently I forgot my password somehow and so I locked myself out from my own websites from two separate IP ranges.  Awesome!  At least my own place isn&#039;t blacklisted (visited my parents this weekend and was at work earlier today during my lunch break).&lt;br /&gt;
&lt;br /&gt;
Ha!  Oops...  I still don&#039;t know what my password is for cPanel, but the regular account login still works. 
    </content:encoded>

    <pubDate>Mon, 21 Apr 2008 18:43:27 -0700</pubDate>
    <guid isPermaLink="false">http://life.mysiteonline.org/archives/139-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>mod_rewrite, can't live with ya, can't live without ya!</title>
    <link>http://life.mysiteonline.org/archives/134-mod_rewrite,-cant-live-with-ya,-cant-live-without-ya!.html</link>
            <category>Web Development</category>
    
    <comments>http://life.mysiteonline.org/archives/134-mod_rewrite,-cant-live-with-ya,-cant-live-without-ya!.html#comments</comments>
    <wfw:comment>http://life.mysiteonline.org/wfwcomment.php?cid=134</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://life.mysiteonline.org/rss.php?version=2.0&amp;type=comments&amp;cid=134</wfw:commentRss>
    

    <author>nospam@example.com (Brendon Kozlowski)</author>
    <content:encoded>
    I spent more than half the day today (24 hour day) thinking and trying to find a way to get a mod_rewrite call to work properly.  I felt &lt;strong&gt;so&lt;/strong&gt; dumb, retarded, and plain uneducated in my attempts.  I left work a little bit early so I could concentrate (no distractions, no phone calls, no &quot;how do I send an attachment&quot;, no nothing).  Even after that, I kept running into a stumbling roadblock.  My friend was trying his hardest to help me out (no idea why other than possibly a sheer curiosity - it&#039;s now almost 1:00am).&lt;br /&gt;
&lt;br /&gt;
What I wanted to do:&lt;br /&gt;
http://example.com/contacts/form/recipients/bKozlowski/&lt;br /&gt;
...transformed to...&lt;br /&gt;
http://example.com/contacts/form/index.php?contact=bkozlowski&lt;br /&gt;
&lt;br /&gt;
Sounds easy, right?  Yeah, I thought so too when I first started.  I tried every iteration of something that looked so darned simple and could only be done just so many ways...  The eventual problem?&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;I &lt;em&gt;needed&lt;/em&gt; to use: RewriteBase /&lt;/strong&gt;&lt;br /&gt;
I have no idea what this directive does.  I have no idea why my pattern now matches and works.  The RewriteLog really wasn&#039;t helpful at all except to tell me that it wasn&#039;t working...something I could have figured out without a log, obviously.  Anyway, if anyone really cares, the following is the actual end result:&lt;br /&gt;
&lt;br /&gt;
&lt;textarea name=&quot;code&quot; class=&quot;xml&quot;&gt;RewriteEngine On
RewriteBase /
RewriteRule ^/?(contact)/([A-Z_@\.]+)/$ contact/form/index\.php?$1=$2 [NC,PT,L]&lt;/textarea&gt;&lt;br /&gt;
&lt;br /&gt;
I both love and loathe mod_rewrite.&lt;br /&gt;
&lt;br /&gt;
(Special thanks to the people over at &lt;a href=&quot;http://www.sitepoint.com/forums/showthread.php?t=537562&quot;&gt;SitePoint Forums&lt;/a&gt; for their immediate response!) 
    </content:encoded>

    <pubDate>Thu, 13 Mar 2008 21:46:37 -0700</pubDate>
    <guid isPermaLink="false">http://life.mysiteonline.org/archives/134-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>Compare your Minimized JavaScript</title>
    <link>http://life.mysiteonline.org/archives/132-Compare-your-Minimized-JavaScript.html</link>
            <category>Web Development</category>
    
    <comments>http://life.mysiteonline.org/archives/132-Compare-your-Minimized-JavaScript.html#comments</comments>
    <wfw:comment>http://life.mysiteonline.org/wfwcomment.php?cid=132</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://life.mysiteonline.org/rss.php?version=2.0&amp;type=comments&amp;cid=132</wfw:commentRss>
    

    <author>nospam@example.com (Brendon Kozlowski)</author>
    <content:encoded>
    For the new website I&#039;ve been developing and finishing up some &quot;final touches&quot; on the design to make the experience just a little bit better (before I can delve into the out-dated content after launch), one of the last things that was needed was to speed up the efficiency and download of assets - this included CSS and JavaScript files for the most part.  I made the sIFR flash files as small as possible and my PNG images were compressed (and fixed for IE color rendering) using &lt;a href=&quot;http://brh.numbera.com/software/pnggauntlet/&quot;&gt;PNGGauntlet&lt;/a&gt; (which uses PNGOut).  Until I can figure out ETags, a proper time for an Expires header, and GZip to work on CSS/JS files on our hosted server, this should suffice.  It loads amazingly quick on my iPod Touch.  &lt;img src=&quot;http://life.mysiteonline.org/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://life.mysiteonline.org/archives/132-Compare-your-Minimized-JavaScript.html#extended&quot;&gt;Continue reading &quot;Compare your Minimized JavaScript&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 06 Mar 2008 08:51:55 -0800</pubDate>
    <guid isPermaLink="false">http://life.mysiteonline.org/archives/132-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>Simple Solution for Encapsulating a Floated Image</title>
    <link>http://life.mysiteonline.org/archives/128-Simple-Solution-for-Encapsulating-a-Floated-Image.html</link>
            <category>Web Development</category>
    
    <comments>http://life.mysiteonline.org/archives/128-Simple-Solution-for-Encapsulating-a-Floated-Image.html#comments</comments>
    <wfw:comment>http://life.mysiteonline.org/wfwcomment.php?cid=128</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://life.mysiteonline.org/rss.php?version=2.0&amp;type=comments&amp;cid=128</wfw:commentRss>
    

    <author>nospam@example.com (Brendon Kozlowski)</author>
    <content:encoded>
    I know I&#039;ve read this article about 10 times over, and yet I always seem to keep forgetting about it.  Everyone always suggests, &quot;in order to keep a floated image from floating over its containing box, add a 1px DIV, or BR tag that uses a style of clear:both&quot;.  This is what I always remember, simply because it&#039;s the most prevalent solution.&lt;br /&gt;
&lt;br /&gt;
However, thanks to my CSS love in Paul O&#039;Brien at SitePoint, there&#039;s a much, much simpler solution.  Apply &lt;strong&gt;overflow:auto;&lt;/strong&gt; to the containing element.  That&#039;s all there is to it.  I love that man!  &lt;img src=&quot;http://life.mysiteonline.org/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
Source: &lt;a href=&quot;http://www.sitepoint.com/blogs/2005/02/26/simple-clearing-of-floats/&quot;&gt;http://www.sitepoint.com/blogs/2005/02/26/simple-clearing-of-floats/&lt;/a&gt; &lt;br /&gt;&lt;a href=&quot;http://life.mysiteonline.org/archives/128-Simple-Solution-for-Encapsulating-a-Floated-Image.html#extended&quot;&gt;Continue reading &quot;Simple Solution for Encapsulating a Floated Image&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 28 Jan 2008 09:49:39 -0800</pubDate>
    <guid isPermaLink="false">http://life.mysiteonline.org/archives/128-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>Internet Marketing - Horribly &quot;wRonG&quot;.</title>
    <link>http://life.mysiteonline.org/archives/114-Internet-Marketing-Horribly-wRonG..html</link>
            <category>Web Development</category>
    
    <comments>http://life.mysiteonline.org/archives/114-Internet-Marketing-Horribly-wRonG..html#comments</comments>
    <wfw:comment>http://life.mysiteonline.org/wfwcomment.php?cid=114</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://life.mysiteonline.org/rss.php?version=2.0&amp;type=comments&amp;cid=114</wfw:commentRss>
    

    <author>nospam@example.com (Brendon Kozlowski)</author>
    <content:encoded>
    It&#039;s mind boggling to me how often I see simple errors on prominently displayed advertisements for a web-based (or other) firm.&lt;br /&gt;
&lt;br /&gt;
&lt;img src=&quot;http://static.fmpub.net/banners/1/b1e02fdf35c10e8a474345cec04e84bd/124159769446d6b61939f0b-banner_300x250_smsgateway.jpg&quot; alt=&quot;&quot;  /&gt;&lt;br /&gt;
&lt;br /&gt;
Now, although I can possibly understand why the text in the bottom blue area isn&#039;t centered in a symmetrical manner, how rushed could it have been to completely miss a spelling error?  Even for a one-man operation, which I would imagine this is not, for something as important as an image that&#039;s to be shown across the world, wouldn&#039;t you check and double check everything?  Obviously some time went in to the design of the art, so why sloppily supply the text within the graphic?  Sheesh... 
    </content:encoded>

    <pubDate>Thu, 20 Sep 2007 13:39:54 -0700</pubDate>
    <guid isPermaLink="false">http://life.mysiteonline.org/archives/114-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>What do you do?</title>
    <link>http://life.mysiteonline.org/archives/110-What-do-you-do.html</link>
            <category>Web Development</category>
    
    <comments>http://life.mysiteonline.org/archives/110-What-do-you-do.html#comments</comments>
    <wfw:comment>http://life.mysiteonline.org/wfwcomment.php?cid=110</wfw:comment>

    <slash:comments>6</slash:comments>
    <wfw:commentRss>http://life.mysiteonline.org/rss.php?version=2.0&amp;type=comments&amp;cid=110</wfw:commentRss>
    

    <author>nospam@example.com (Brendon Kozlowski)</author>
    <content:encoded>
    What do you do to get yourself over a hump?  I develop web applications as a hobby when I&#039;m not working and at home.  But as with any application, there are portions that are much less desirable to work on than others that still need to be done (such as documentation).  How can you get yourself over the hump when there&#039;s little to no incentive other than being able to continue on with the project?  I&#039;d rather go run...10 miles...and I usually only do 2 miles, so, yeah...&lt;br /&gt;
&lt;br /&gt;
I can&#039;t seem to make myself do it, I keep procrastinating.  There always seems to be something else just &lt;em&gt;slightly&lt;/em&gt; more interesting that I &quot;will only spend x minutes on and get right back to the project&quot;.  Just looking for what you more experienced people do when you come to these things. 
    </content:encoded>

    <pubDate>Wed, 29 Aug 2007 17:51:01 -0700</pubDate>
    <guid isPermaLink="false">http://life.mysiteonline.org/archives/110-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>

</channel>
</rss>