<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.1" -->
<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/"
	>

<channel>
	<title>sim.plified.com</title>
	<link>http://sim.plified.com</link>
	<description>&#60;strong&#62;Chris Pollock&#62; - web devleoper (PHP/mySQL &#38; ASP.NET)&#60;br /&#62;undivided... my thoughts on world, family, church, business, technology and Jesus Christ (all in all)</description>
	<pubDate>Thu, 12 Jun 2008 23:03:18 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
	<language>en</language>
			<item>
		<title>Google Drove by My House &#8211; Street View added for Rochester, NY</title>
		<link>http://sim.plified.com/2008/06/12/google-drove-by-my-house-street-view-added-for-rochester-ny/</link>
		<comments>http://sim.plified.com/2008/06/12/google-drove-by-my-house-street-view-added-for-rochester-ny/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 23:03:18 +0000</pubDate>
		<dc:creator>cwpollock</dc:creator>
		
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://sim.plified.com/2008/06/12/google-drove-by-my-house-street-view-added-for-rochester-ny/</guid>
		<description><![CDATA[

&#160;Street view has been added to Google Maps in Rochester, NY.&#160; This adds a whole new level of helpfulness in finding places online.&#160; 
]]></description>
			<content:encoded><![CDATA[<p><a href="http://sim.plified.com/wp-content/uploads/2008/06/streetviewourhouse.jpg"><img title="streetview-our-house" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="342" alt="streetview-our-house" src="http://sim.plified.com/wp-content/uploads/2008/06/streetviewourhouse-thumb.jpg" width="663" border="0" /></a>
</p>
<p>&#160;<a href="http://maps.google.com/maps?q=Rochester,+NY&amp;ie=UTF8&amp;ll=43.179144,-77.615662&amp;spn=0.225821,0.601501&amp;z=11&amp;iwloc=addr&amp;layer=c">Street view has been added to Google Maps in Rochester, NY</a>.&#160; This adds a whole new level of helpfulness in finding places online.&#160; </p>
]]></content:encoded>
			<wfw:commentRss>http://sim.plified.com/2008/06/12/google-drove-by-my-house-street-view-added-for-rochester-ny/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Use jQuery to fix code that sucks</title>
		<link>http://sim.plified.com/2008/06/12/use-jquery-to-fix-code-that-sucks/</link>
		<comments>http://sim.plified.com/2008/06/12/use-jquery-to-fix-code-that-sucks/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 20:35:55 +0000</pubDate>
		<dc:creator>cwpollock</dc:creator>
		
		<category><![CDATA[programming]]></category>

		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://sim.plified.com/2008/06/12/use-jquery-to-fix-code-that-sucks/</guid>
		<description><![CDATA[If you’re working inside of an institutional structure chances are you occasionally have to deal with code that sucks.&#160; I know I do!&#160; We have some third party apps at the institution where I work.&#160; I believe they were designed in the early 90s before anyone knew the word “standards” or “css” and have not [...]]]></description>
			<content:encoded><![CDATA[<p>If you’re working inside of an institutional structure chances are you occasionally have to deal with code that sucks.&#160; I know I do!&#160; We have some third party apps at the institution where I work.&#160; I believe they were designed in the early 90s before anyone knew the word “standards” or “css” and have not been revisited.&#160; While working on one of these code bases I had the idea of using jQuery to remedy my brow furrowing.&#160; </p>
<h3>Problem</h3>
<p>No IDs or class names on the the template code.&#160; The templates were static and I didn’t want to do a global find and replace to try and fix the problem.&#160; </p>
<h3>jQuery to the Rescue</h3>
<p>With jQuery’s <a href="http://docs.jquery.com/Selectors">selector support</a>, I decided that I could use that to add the vital css, classes or ids I need to make the layout work.&#160; Example:</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> $(document).ready(<span style="color: #0000ff">function</span>(){</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span>     <span style="color: #008000">// standard document formatting</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   3:</span>     $(<span style="color: #006080">&quot;BODY DIV:first&quot;</span>).css(<span style="color: #006080">&quot;width&quot;</span>, <span style="color: #006080">&quot;800px&quot;</span>).css(<span style="color: #006080">&quot;margin&quot;</span>, <span style="color: #006080">&quot;0 auto 0 auto&quot;</span>);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   4:</span> });</pre>
</p></div>
</div>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
</p>
<p>Instead of injecting css directly, I could have added a class and added my styling in the stylesheet like this:</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> $(document).ready(<span style="color: #0000ff">function</span>(){</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span>     <span style="color: #008000">// standard document formatting</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   3:</span>     $(<span style="color: #006080">&quot;BODY DIV:first&quot;</span>).attr(<span style="color: #006080">&quot;class&quot;</span>, <span style="color: #006080">&quot;fixthishoriblecode&quot;</span>);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   4:</span> });</pre>
</p></div>
</div>
<p>There you have it.&#160; As simple as including the jQuery library and adding some lines of JavaScript. [of course is javascript is turned off, this is not going to work.. but I didn’t say this was a miracle solution for fixing your bad code, just a patch].&#160; </p>
<p>If you’ve had to deal with these types of code bases, share your story below of how you fixed the problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://sim.plified.com/2008/06/12/use-jquery-to-fix-code-that-sucks/feed/</wfw:commentRss>
		</item>
		<item>
		<title>More about Simon</title>
		<link>http://sim.plified.com/2008/06/08/more-about-simon/</link>
		<comments>http://sim.plified.com/2008/06/08/more-about-simon/#comments</comments>
		<pubDate>Sun, 08 Jun 2008 13:36:52 +0000</pubDate>
		<dc:creator>cwpollock</dc:creator>
		
		<category><![CDATA[family]]></category>

		<guid isPermaLink="false">http://sim.plified.com/2008/06/08/more-about-simon/</guid>
		<description><![CDATA[Look Alike
When Simon was in the bouncy seat last night I thought I was having déjà vu.&#160; I looked up and there was a picture of Caleb from about the same time up on the boy’s bookcase.&#160; I brought it down and put it next to him.&#160; 

It might be hard to see in the [...]]]></description>
			<content:encoded><![CDATA[<h2>Look Alike</h2>
<p>When Simon was in the bouncy seat last night I thought I was having déjà vu.&#160; I looked up and there was a picture of Caleb from about the same time up on the boy’s bookcase.&#160; I brought it down and put it next to him.&#160; </p>
<p><a title="Look alike contest.. Simon Wins by Pollocks, on Flickr" href="http://www.flickr.com/photos/pollocks/2560330157/"><img height="375" alt="Look alike contest.. Simon Wins" src="http://farm4.static.flickr.com/3048/2560330157_05bbceb565.jpg" width="500" /></a></p>
<p>It might be hard to see in the picture, but he was a spitting image of Caleb.</p>
<h2>Home on Day 1!</h2>
<p>Amy and I were not eager to spend time in the hospital.&#160; After doing this three times already, we have come to realize that there is “no place like home.”&#160; We were very pleased to get the cooperation of the midwife, pediatrician and nurses so that we could bring Simon home on the day of his birth (it certainly helped that he was born at 5:30am in the morning).&#160;&#160; Amy spent most of the day sleeping and feeding and we were able to be home at 5pm and eat around our dinner table.&#160; In fact, after dinner we went outside and the boys declared they were having a “birthday party” for Simon.&#160; Caleb even asked to have cake (which I might have gotten if I didn’t think I would have fallen asleep at the wheel).&#160; </p>
<p><a title="Simon&#39;s Birthday Party - home on the day of his birth! by Pollocks, on Flickr" href="http://www.flickr.com/photos/pollocks/2560328217/"><img height="375" alt="Simon&#39;s Birthday Party - home on the day of his birth!" src="http://farm4.static.flickr.com/3099/2560328217_7353a21a98.jpg" width="500" /></a></p>
<h2>Always learning about the system</h2>
<p>Whenever we interface with the hospital system there are always some interesting things to learn.&#160; For one, the nurse said that Amy was the first person to check in and out on the same shift.&#160; I’m not for rushing out of the hospital if you really are in need of assistance, but it’s evident that the hospital would love for you to stay a bit longer than you need (in the words of our nurse “if we don’t provide you with services we can’t bill you for anything”). </p>
<p>While Amy was in the room, the nurse came in and asked Amy to “lean forward so she could check her back.”&#160; Amy did so, not realizing why she was being asked.&#160; The nurse was astonished to find no wound from an epidural needle.&#160; The nurse informed Amy that 95% of births at their hospital are performed with epidurals, making it a matter of habit to check women’s backs.</p>
<p>It is interesting to correlate these two pieces of information.&#160; Epidural = longer labor and hospital stay = big fat hospital bill to the insurance company.&#160; I wonder how many people who choose differently if they were footing the bill personally?&#160; </p>
]]></content:encoded>
			<wfw:commentRss>http://sim.plified.com/2008/06/08/more-about-simon/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A New Son and a New Name</title>
		<link>http://sim.plified.com/2008/06/07/a-new-son-and-a-new-name/</link>
		<comments>http://sim.plified.com/2008/06/07/a-new-son-and-a-new-name/#comments</comments>
		<pubDate>Sat, 07 Jun 2008 20:06:04 +0000</pubDate>
		<dc:creator>cwpollock</dc:creator>
		
		<category><![CDATA[community]]></category>

		<category><![CDATA[family]]></category>

		<category><![CDATA[jesus]]></category>

		<guid isPermaLink="false">http://sim.plified.com/2008/06/07/a-new-son-and-a-new-name/</guid>
		<description><![CDATA[First an introduction.  Simon Jacob Pollock was born on June 6, 2008 at 5:30 in the morning.   [This is where weight and height would be inserted.. but I’m not really sure why people give those stats, so I’m leaving them out.]  He looks just like a Pollock.  Below is his very first picture.


Now for the [...]]]></description>
			<content:encoded><![CDATA[<p>First an introduction.  <a href="http://www.flickr.com/photos/pollocks/sets/72157605459795942/">Simon Jacob Pollock</a> was born on June 6, 2008 at 5:30 in the morning.   [This is where weight and height would be inserted.. but I’m not really sure why people give those stats, so I’m leaving them out.]  He looks just like a Pollock.  Below is his very first picture.</p>
<p><a href="http://www.flickr.com/photos/pollocks/2555970920/" title="Simon Jacob Pollock by Pollocks, on Flickr"><img src="http://farm4.static.flickr.com/3264/2555970920_7c85970cfe.jpg" alt="Simon Jacob Pollock" width="500" height="375" /></a></p>
<h2></h2>
<h2>Now for the story of his name.</h2>
<p>Simon’s name was not always to be Simon Jacob.  Just a day earlier it was to be Simon Clayton.  Clayton was a family name and so initially we thought it made a fine middle name for Simon.  The hours surrounding his birth would change all that.  On June 5th we traveled to be with friends who were celebrating the death of you their young son Jacob.</p>
<p>I say celebrated, and not mourned, because celebration definitely characterized the event.  The Fahmer’s believe, as do I, that a child who has not sinned is not subject to the demands of the Law and therefore the Wrath of God (not the case for the rest of us who have knowingly transgressed the commands of our loving heavenly Father).  It was a celebration because he is in heaven where he continually get’s to behold the face of the Lord Jesus and is free from the suffering that characterized his short life (138 days).</p>
<p>Jacob Fahmer was born with <a href="http://www.trisomy18.org">Trisomy 18</a>, a life shortening condition (<a href="http://fahmer.blogspot.com/">you can read his whole story here</a>).  His life was short, by God’s own choosing, but it was not without value or significance.  He, like,all creatures made in the image of God, brought a certain reflection that is not limited by length of days. For one, the Fahmer’s life has forever been changed, by the gift of his life.  Secondarily, I believe (and you can read testimony for yourself in this post and in others on Jacob’s blog) that people have been caused to consider their lives and their God.   What other purpose and hope can one have?!  What else is lasting and enduring, than to have the effect of causing people to reflect on their standing with the Eternal God.?!</p>
<p>As we celebrated Jacob’s “home going” my wife began to experience the pangs of labor.  We gathered our children, said a few quick goodbyes and headed home (a hour and 15 minutes away).  On the way back, we could see that labor was beginning to set in. My wife’s contractions were becoming regular instead of fading away.  At one point I looked over to my wife and said “If we have this child tonight I want to call him ‘Simon Jacob’”.  My wife gave a quick nod of agreement.</p>
<h3>Why the change?</h3>
<p>I don’t believe in coincidence.  I believe that God orders our days, our death, and our birth.  It was not a mistake that my wife went into labor at Jacob’s funeral.  It was God’s plan.  It’s not just the timing of the event that leads me to see God’s hand, but also my understanding of God.  God brings life and death together.  He did it when His Son was crucified.  Jesus’ death brought forth eternal life.  The Creation testifies about this every day.  You have to be blind not to see that God has ordered death to life.  Plants &amp; Animals that die and fall into the ground and nourish the next generation.  A simple walk through the woods could teach this to the attentive eye.  All through the Creation death and life are caught up together to point us to the revelation of Jesus’ death on the Cross and Resurrection three days later.</p>
<p>This is the story I want to characterize my life and the life of my family.  The story of Jesus’ death and resurrection.  He is embedding that story in our lives, even through the simple “happenings” of life.  Jacob’s death.. Simon’s life have been tied together in a narrative that God is writing.  I am happy simply to see it, acknowledge it, and worship because of it.</p>
<p>Simon Jacob – because God brings life out of death.</p>
]]></content:encoded>
			<wfw:commentRss>http://sim.plified.com/2008/06/07/a-new-son-and-a-new-name/feed/</wfw:commentRss>
		</item>
		<item>
		<title>jQuery Edit in Place Implementation</title>
		<link>http://sim.plified.com/2008/05/20/jquery-edit-in-place-implementation/</link>
		<comments>http://sim.plified.com/2008/05/20/jquery-edit-in-place-implementation/#comments</comments>
		<pubDate>Tue, 20 May 2008 12:40:58 +0000</pubDate>
		<dc:creator>cwpollock</dc:creator>
		
		<category><![CDATA[programming]]></category>

		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://sim.plified.com/2008/05/20/jquery-edit-in-place-implementation/</guid>
		<description><![CDATA[For PatternTap.com we wanted to use some edit in place functionality to allow users to change their name, location, etc.&#160; I used jQuery to create our own implementation of edit in place.&#160; 
Here is an example of the markup for the input box (I have left out the server side coding that renders this markup):
&#60;li [...]]]></description>
			<content:encoded><![CDATA[<p>For <a href="http://patterntap.com">PatternTap.com</a> we wanted to use some edit in place functionality to allow users to change their name, location, etc.&#160; I used jQuery to create our own implementation of edit in place.&#160; </p>
<p>Here is an example of the markup for the input box (I have left out the server side coding that renders this markup):</p>
<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">li</span> <span class="attr">class</span><span class="kwrd">=&quot;first&quot;</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">span</span> <span class="attr">class</span><span class="kwrd">=&quot;pro_label&quot;</span><span class="kwrd">&gt;</span>Name:<span class="kwrd">&lt;/</span><span class="html">span</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">span</span> <span class="attr">id</span><span class="kwrd">=&quot;update_real_name&quot;</span><span class="kwrd">&gt;&lt;</span><span class="html">span</span> <span class="attr">class</span><span class="kwrd">=&quot;editThis&quot;</span><span class="kwrd">&gt;</span>[Users Name]<span class="kwrd">&lt;</span><span class="html">span</span> <span class="attr">class</span><span class="kwrd">=&quot;edit_mark&quot;</span><span class="kwrd">&gt;</span>edit<span class="kwrd">&lt;/</span><span class="html">span</span><span class="kwrd">&gt;&lt;/</span><span class="html">span</span><span class="kwrd">&gt;&lt;/</span><span class="html">span</span><span class="kwrd">&gt;</span>
<span class="kwrd">&lt;/</span><span class="html">li</span><span class="kwrd">&gt;</span></pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>The edit mark span is something that provides visual feedback to the user that the area is editable.&#160;&#160; What is inside the &quot;editThis&quot; span is what will be edited.&#160;&#160; The span that surrounds the both of those pieces serves as a place holder, so that the input can be swaped in and out of the DOM.</p>
<p>Here is the JavaScript that binds to the item and makes it editable.</p>
<pre class="csharpcode">    $(document).ready(<span class="kwrd">function</span>() {
        bind_update();  <span class="rem">// bind this on page load</span>
    });

    <span class="kwrd">function</span> bind_update()
    {
       <span class="rem">// find all the editThis elements and find this functionality</span>
        $(<span class="str">'.editThis'</span>).bind(<span class="str">&quot;click&quot;</span>, <span class="kwrd">function</span>(e){</pre>
<pre class="csharpcode">
            <span class="rem">// remove the edit_this mark</span>
            $(<span class="kwrd">this</span>).children(<span class="str">&quot;.edit_mark&quot;</span>).remove();

            <span class="rem">// capture some information about the selected element</span>
            <span class="kwrd">var</span> parentId = <span class="kwrd">this</span>.parentNode.id;
            <span class="kwrd">var</span> editType = <span class="kwrd">this</span>.parentNode.className
            <span class="kwrd">var</span> revert = <span class="kwrd">this</span>.innerHTML;

            <span class="rem">// check to see if this is a textarea or inputbox</span>
            <span class="rem">//   note the save and cancel buttons are added along with the input or textarea</span>
            <span class="kwrd">if</span> (editType == <span class="str">&quot;textarea&quot;</span>)
                $(<span class="str">'#'</span> + parentId).html(<span class="str">&quot;&lt;textarea id=\&quot;input_&quot;</span> + parentId + <span class="str">&quot;\&quot; &gt;&quot;</span> + revert + <span class="str">&quot;&lt;/textarea&gt; &lt;button onclick=\&quot;update_value('&quot;</span> + parentId + <span class="str">&quot;', true);\&quot; value=\&quot;Save\&quot;   &gt;Save&lt;/button&gt; &lt;a id=\&quot;cancel_&quot;</span> + parentId + <span class="str">&quot;\&quot; href=\&quot;javascript:void(0);\&quot;&gt;Cancel&lt;/a&gt;&quot;</span>);
            <span class="kwrd">else</span>
                $(<span class="str">'#'</span> + parentId).html(<span class="str">&quot;&lt;input type=\&quot;input\&quot; id=\&quot;input_&quot;</span> + parentId + <span class="str">&quot;\&quot; value=\&quot;&quot;</span> + revert + <span class="str">&quot;\&quot; onblur=\&quot;\&quot; /&gt; &lt;button onclick=\&quot;update_value('&quot;</span> + parentId + <span class="str">&quot;', true);\&quot; value=\&quot;Save\&quot;   &gt;Save&lt;/button&gt; &lt;a id=\&quot;cancel_&quot;</span> + parentId + <span class="str">&quot;\&quot; href=\&quot;javascript:void(0);\&quot;&gt;Cancel&lt;/a&gt;&quot;</span>);

            <span class="rem">//set the focus on the newly embedded input box</span>
            $(<span class="str">&quot;#input_&quot;</span> + parentId)[0].focus();
            $(<span class="str">&quot;#input_&quot;</span> + parentId)[0].select();

            <span class="rem">//bind the cancel functionality to the cancel button</span>
            $(<span class="str">&quot;#cancel_&quot;</span> + parentId).click(<span class="kwrd">function</span>() {
                    update_value(parentId, revert);
            });

        });
    }

    <span class="rem">// this function sends the updated value back to the server    </span>
    <span class="kwrd">function</span> update_value(id, update)
    {
        <span class="kwrd">if</span> (update == <span class="kwrd">true</span>)
        {
            result = $(<span class="str">'#input_'</span> + id).val();
            $.ajax({
                type: <span class="str">&quot;POST&quot;</span>,
                url: <span class="str">&quot;/people/change_user_profile/&quot;</span>,
                data: <span class="str">&quot;user_id=&lt;?=$user['id']?&gt;&amp;field=&quot;</span> + id + <span class="str">&quot;&amp;value=&quot;</span> + result,
                error: <span class="kwrd">function</span>()
                    { alert(<span class="str">&quot;There was a problem, please let us know.&quot;</span>) }
            });
        }
        <span class="kwrd">else</span>
        {
            <span class="rem">// in the case of a cancel, update is the &quot;revet&quot; value </span>
            result = update;
        }
        $(<span class="str">'#'</span> + id).html(<span class="str">&quot;&lt;span class=\&quot;editThis\&quot;&gt;&quot;</span> + result + <span class="str">&quot;&lt;span class=\&quot;edit_mark\&quot;&gt;edit&lt;/span&gt;&lt;/span&gt;&quot;</span>);

        bind_update();
    }</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>&#160;</p>
<p>I'm sure there are slicker ways to do this, but this certainly did the job for us.</p>
<p>Of course when you send the data to the server you are going to want to authenticate the user to make sure they are who they say they are.&#160; This will prevent people from hacking the JavaScript and changing someone elses information.&#160; </p>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5442025d-2ef7-4ec2-88c6-03ae4e85e24b" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/jQuery" rel="tag">jQuery</a>,<a href="http://technorati.com/tags/AJAX" rel="tag">AJAX</a></div>
]]></content:encoded>
			<wfw:commentRss>http://sim.plified.com/2008/05/20/jquery-edit-in-place-implementation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Finally.. Group Chat in Google Talk for the Desktop</title>
		<link>http://sim.plified.com/2008/05/14/finally-group-chat-in-google-talk-for-the-desktop/</link>
		<comments>http://sim.plified.com/2008/05/14/finally-group-chat-in-google-talk-for-the-desktop/#comments</comments>
		<pubDate>Wed, 14 May 2008 20:49:24 +0000</pubDate>
		<dc:creator>cwpollock</dc:creator>
		
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://sim.plified.com/2008/05/14/finally-group-chat-in-google-talk-for-the-desktop/</guid>
		<description><![CDATA[ 
I'm a beta nut.. I love the latest and greatest in an app.&#160; Finally I found an edition of Gtalk that allows me to do group chat on the desktop component.&#160; It's available from Google Labs: Click here to download.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.google.com/talk/labsedition/"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="104" alt="ScreenShot001" src="http://sim.plified.com/wp-content/uploads/2008/05/screenshot001.jpg" width="244" border="0" /></a> </p>
<p>I'm a beta nut.. I love the latest and greatest in an app.&#160; Finally I found an edition of Gtalk that allows me to do group chat on the desktop component.&#160; It's available from Google Labs: <a href="http://www.google.com/talk/labsedition/">Click here to download</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sim.plified.com/2008/05/14/finally-group-chat-in-google-talk-for-the-desktop/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Communion Hymn - Gather at the Table</title>
		<link>http://sim.plified.com/2008/05/10/communion-hymn-gather-at-the-table/</link>
		<comments>http://sim.plified.com/2008/05/10/communion-hymn-gather-at-the-table/#comments</comments>
		<pubDate>Sat, 10 May 2008 19:16:35 +0000</pubDate>
		<dc:creator>cwpollock</dc:creator>
		
		<category><![CDATA[church]]></category>

		<guid isPermaLink="false">http://sim.plified.com/2008/05/10/communion-hymn-gather-at-the-table/</guid>
		<description><![CDATA[My friend William Gucker (Bill) has written anther hymn.&#160; This one if focused on communion and what it means to shre in the body and blood of Jesus together.&#160; It is sung to the tune of &#34;The First Noel&#34;.
Gather at The Table
At the table of the Lord, where the brethren meet.
&#160;&#160;&#160;&#160; There's the heart of [...]]]></description>
			<content:encoded><![CDATA[<p>My friend William Gucker (Bill) has written anther hymn.&#160; This one if focused on communion and what it means to shre in the body and blood of Jesus together.&#160; It is sung to the tune of &quot;The First Noel&quot;.</p>
<h3><b><u>Gather at The Table</u></b></h3>
<p>At the table of the Lord, where the brethren meet.</p>
<p>&#160;&#160;&#160;&#160; There's the heart of assembly, and fellowship sweet.</p>
<p>To know, and to be known. To declare where you stand.</p>
<p>&#160;&#160;&#160;&#160; Pilgrims must walk together in this foreign land.</p>
<p>&#160;</p>
<p>Our bodies are clean, yet we still wash our feet.</p>
<p>&#160;&#160;&#160;&#160; We're aware that our sins may cause sickness or sleep.</p>
<p>Confess, repent, keep your conscience clean.</p>
<p>&#160;&#160;&#160;&#160; Bless-ed is the pure heart, for the Lord shall be seen.</p>
<p>&#160;</p>
<p>We remember through the bread, where the Lord of Lords led.</p>
<p>&#160;&#160;&#160;&#160; His body was broken, follow me he said.</p>
<p>Rejoice and do not fear, to carry your cross.</p>
<p>&#160;&#160;&#160;&#160; On the day of redemption you'll suffer no loss.</p>
<p>&#160;</p>
<p>In the wine we see the blood, of a covenant made.</p>
<p>&#160;&#160;&#160;&#160; Forgiveness of sins and a debt that was paid.</p>
<p>One cup is shared by all, and all are made one.</p>
<p>&#160;&#160;&#160;&#160; Keep watch o'er your brother, so says the Son.</p>
<p>&#160;</p>
<p>Heavenly marriage that is forged, groom coming for bride.</p>
<p>&#160;&#160;&#160;&#160; An early taste now of what God will provide.</p>
<p>Dining all together now, a love feast so sweet.</p>
<p>&#160;&#160;&#160;&#160; Eternally joyful at our saviors feet.</p>
<p>&#160;</p>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a83511b5-ccde-40d1-a95c-0502aa9dff4b" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/hymns" rel="tag">hymns</a>,<a href="http://technorati.com/tags/hymnody" rel="tag">hymnody</a></div>
]]></content:encoded>
			<wfw:commentRss>http://sim.plified.com/2008/05/10/communion-hymn-gather-at-the-table/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Speed Up Web Browsing with OpenDNS Shortcuts</title>
		<link>http://sim.plified.com/2008/05/09/speed-up-web-browsing-with-opendns-shortcuts/</link>
		<comments>http://sim.plified.com/2008/05/09/speed-up-web-browsing-with-opendns-shortcuts/#comments</comments>
		<pubDate>Fri, 09 May 2008 12:10:45 +0000</pubDate>
		<dc:creator>cwpollock</dc:creator>
		
		<category><![CDATA[technology]]></category>

		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://sim.plified.com/2008/05/09/speed-up-web-browsing-with-opendns-shortcuts/</guid>
		<description><![CDATA[A couple of months back I started using OpenDNS, a DNS service that offers a number of nice services. One that I have just started to utilize more is the shortcut feature. OpenDNS allows you to define short cuts that you can type right into the address bar of your browser.&#160; The great part of [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of months back I started using <a href="http://opendns.com">OpenDNS</a>, a DNS service that offers a number of nice services. One that I have just started to utilize more is the shortcut feature. OpenDNS allows you to define short cuts that you can type right into the address bar of your browser.&#160; The great part of using OpenDNS for shortcuts is that they are browser and system independent.&#160; So on any browser on any computer connected on my network (OpenDNS is setup in the router), I can access my URL shortcuts.</p>
<p>I've started to add more short cuts to those commonly accessed urls.&#160; Its very easy to setup:</p>
<p><a href="http://opendns.com"><img height="302" alt="ScreenShot004" src="http://sim.plified.com/wp-content/uploads/2008/05/screenshot004.jpg" width="471" /></a></p>
<p>So looking above you can see in order to get to gmail, all I have to do is type &quot;g&quot; in the URL address bar. </p>
<p><strong>Filtering</strong></p>
<p>Another nice thing about OpenDNS is the filtering service.&#160; If you're one of those people who doesn't enjoy naked people showing up on their computer (expectedly or unexpectedly), OpenDNS is a nice way to filter your Internet connection from all sorts of nasty stuff.&#160;&#160; If you have kids who can get near a computer and pound away on the keyboard, you will definitely want to consider this service.&#160; </p>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:206f9c38-5715-47e4-afbc-d1d6ae7396b8" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/Shortcuts" rel="tag">Shortcuts</a>,<a href="http://technorati.com/tags/OpenDNS" rel="tag">OpenDNS</a>,<a href="http://technorati.com/tags/Productivity" rel="tag">Productivity</a>,<a href="http://technorati.com/tags/Filtering" rel="tag">Filtering</a></div>
]]></content:encoded>
			<wfw:commentRss>http://sim.plified.com/2008/05/09/speed-up-web-browsing-with-opendns-shortcuts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Dirty, Dirty, Dirty&#8230; Implementing IsDirty with JavaScript</title>
		<link>http://sim.plified.com/2008/05/07/dirty-dirty-dirty-implementing-isdirty-with-javascript/</link>
		<comments>http://sim.plified.com/2008/05/07/dirty-dirty-dirty-implementing-isdirty-with-javascript/#comments</comments>
		<pubDate>Wed, 07 May 2008 20:06:36 +0000</pubDate>
		<dc:creator>cwpollock</dc:creator>
		
		<category><![CDATA[programming]]></category>

		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://sim.plified.com/2008/05/07/dirty-dirty-dirty-implementing-isdirty-with-javascript/</guid>
		<description><![CDATA[Sometimes when a user is editing a page, you want to let them know that if they click on a link or a section of the main navigation that they will lose their changes.&#160; 
Here's a quick walk through on an IsDirty implementation I did with jQuery and ASP.NET.
Add this hidden field somewhere on your [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes when a user is editing a page, you want to let them know that if they click on a link or a section of the main navigation that they will lose their changes.&#160; </p>
<p>Here's a quick walk through on an IsDirty implementation I did with jQuery and ASP.NET.</p>
<p>Add this hidden field somewhere on your page</p>
<pre class="csharpcode"> <span class="kwrd">&lt;</span><span class="html">input</span> <span class="attr">type</span><span class="kwrd">=&quot;hidden&quot;</span> <span class="attr">id</span><span class="kwrd">=&quot;dirty&quot;</span> <span class="attr">value</span><span class="kwrd">=&quot;&quot;</span> <span class="kwrd">/&gt;</span></pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>Here is the JavaScript that will manipulate the value.</p>
<p>&#160;</p>
<pre class="csharpcode">    &lt;script src=<span class="str">&quot;js/jquery-1.2.3.min.js&quot;</span> type=<span class="str">&quot;text/javascript&quot;</span>&gt;&lt;/script&gt;

    &lt;script type=<span class="str">&quot;text/javascript&quot;</span>&gt;

        window.onbeforeunload = checkExit;

        <span class="kwrd">function</span> confirmExit()
        {
            <span class="rem">// this value will be return as a part of the confirmation message</span>
           <span class="kwrd">return</span> <span class="str">&quot;If you have made any changes to the fields without clicking the Save button, your changes will be lost.&quot;</span>;
        }

        <span class="kwrd">function</span> checkExit()
        {
            <span class="kwrd">if</span> ($(<span class="str">&quot;#dirty&quot;</span>).val() == <span class="str">&quot;true&quot;</span>)
            {
                <span class="kwrd">return</span> confirmExit();
            }
        }
        <span class="kwrd">function</span> setDirty(changeVal)
        {
            $(<span class="str">&quot;#dirty&quot;</span>).val(changeVal);
        }

        <span class="kwrd">function</span> confirmAndClean(msg)
        {
            setDirty(<span class="kwrd">false</span>);
            <span class="kwrd">return</span> confirm(msg);
        }</pre>
<pre class="csharpcode">
    &lt;/script&gt;</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>The only thing that remains it to make sure that you call these JavaScript client functions in the appropriate places. </p>
<p>With ASP.NET I would do something like this:</p>
<pre class="csharpcode">ddlCategoryPage.Attributes.Add(<span class="str">&quot;onclick&quot;</span>, <span class="str">&quot;setDirty(true);&quot;</span>);
txtTitle.Attributes.Add(<span class="str">&quot;onkeyup&quot;</span>, <span class="str">&quot;setDirty(true);&quot;</span>);
btnSavePage.Attributes.Add(<span class="str">&quot;onclick&quot;</span>, <span class="str">&quot;setDirty(false);&quot;</span>);
btnCancelPage.Attributes.Add(<span class="str">&quot;onclick&quot;</span>, <span class="str">&quot;return confirmAndClean('Any changes you have made will be lost.  Are you sure you want to cancel?')&quot;</span>);</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>When I save the page I set the dirty var false so that the user is not prompted.&#160; When the dropdown or title on the page is edited I set the dirty var to true.&#160; The cancel button calls a function that clears the dirty var and displays a custom confirmation box.</p>
<p>With standard HTML I could call the functions like this:</p>
<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">input</span> <span class="attr">type</span><span class="kwrd">=&quot;text&quot;</span> <span class="attr">onkeyup</span><span class="kwrd">=&quot;setDirty(true)&quot;</span> <span class="kwrd">/&gt;</span>

<span class="kwrd">&lt;</span><span class="html">input</span> <span class="attr">type</span><span class="kwrd">=&quot;submit&quot;</span> <span class="attr">value</span><span class="kwrd">=&quot;Save&quot;</span> <span class="attr">onclick</span><span class="kwrd">=&quot;setDirty(false)&quot;</span> <span class="kwrd">/&gt;</span></pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>Seems to work like a charm so far.&#160; Hope this helps you out.&#160; If you have questions, do not be afraid to shoot me an email or post a comment.</p>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:53c26d43-041f-4e22-a68b-8e74134f3d5f" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/JavaScript" rel="tag">JavaScript</a>,<a href="http://technorati.com/tags/ASP.NET" rel="tag">ASP.NET</a>,<a href="http://technorati.com/tags/C#" rel="tag">C#</a></div>
]]></content:encoded>
			<wfw:commentRss>http://sim.plified.com/2008/05/07/dirty-dirty-dirty-implementing-isdirty-with-javascript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>19th Ward (Westside) Farmers Market</title>
		<link>http://sim.plified.com/2008/05/07/19th-ward-westside-farmers-market/</link>
		<comments>http://sim.plified.com/2008/05/07/19th-ward-westside-farmers-market/#comments</comments>
		<pubDate>Wed, 07 May 2008 19:30:21 +0000</pubDate>
		<dc:creator>cwpollock</dc:creator>
		
		<category><![CDATA[community]]></category>

		<guid isPermaLink="false">http://sim.plified.com/2008/05/07/19th-ward-westside-farmers-market/</guid>
		<description><![CDATA[This notice went out on an email list today.&#160; Here are the details I said I would announce when they became available:
The market in our neighborhood will celebrate opening day on June 17th!!!!!!
It will be called the Westside Farmers Market, serving the westside neighborhoods, as well as anyone else interested in shopping with us. Many [...]]]></description>
			<content:encoded><![CDATA[<p>This notice went out on an email list today.&#160; Here are the details I said I would announce when they became available:</p>
<blockquote><p>The market in our neighborhood will celebrate opening day on June 17th!!!!!!</p>
<p>It will be called the Westside Farmers Market, serving the westside neighborhoods, as well as anyone else interested in shopping with us. Many westside neighborhood organizations have been involved in the start-up. It will be located in <a href="http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;q=st.+monicas&amp;sll=43.140234,-77.658408&amp;sspn=0.008079,0.015814&amp;ie=UTF8&amp;ll=43.147028,-77.633085&amp;spn=0.032313,0.063257&amp;z=14&amp;iwloc=B">St. Monica's parking lot</a>. The Wilson students are working on a logo now, and you will soon start to see sandwich boards, etc. Applications have been received from fruit and vegetable growers, nurseries. There is the possibility of homemade pasta, meat, jams, ice cream, baked goods. We hope to enjoy entertainment by local musicians, and gather for fun every Tuesday from 4:00 - 8:00 PM.</p>
</blockquote>
<div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:76f1021d-95ce-473a-8fe3-fe1fed04e891" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/Rochester%20NY" rel="tag">Rochester NY</a></div>
]]></content:encoded>
			<wfw:commentRss>http://sim.plified.com/2008/05/07/19th-ward-westside-farmers-market/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
