<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>joedonahue.org</title>
	<atom:link href="http://joedonahue.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://joedonahue.org</link>
	<description></description>
	<lastBuildDate>Sun, 20 Mar 2016 02:20:30 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>There&#8217;s No Place Like T9</title>
		<link>http://joedonahue.org/theres-no-place-like-t9/</link>
					<comments>http://joedonahue.org/theres-no-place-like-t9/#respond</comments>
		
		<dc:creator><![CDATA[pastor joe]]></dc:creator>
		<pubDate>Sat, 19 Mar 2016 21:31:53 +0000</pubDate>
				<category><![CDATA[Daily Grind]]></category>
		<category><![CDATA[Family]]></category>
		<guid isPermaLink="false">http://joedonahue.org/?p=595</guid>

					<description><![CDATA[It was my Junior year at South Portland High School, sitting in Mr. Brogan&#8217;s Maine Studies class. He stood at the head of class, leaning forward and hands extended, as&#8230;]]></description>
										<content:encoded><![CDATA[<p><a href="http://joedonahue.org/files/2016/03/20160319_135852.jpg"><img fetchpriority="high" decoding="async" class="alignright wp-image-596 size-medium" src="http://joedonahue.org/files/2016/03/20160319_135852-300x277.jpg" alt="T9 SD, Maine" width="300" height="277" srcset="http://joedonahue.org/files/2016/03/20160319_135852-300x277.jpg 300w, http://joedonahue.org/files/2016/03/20160319_135852-768x709.jpg 768w, http://joedonahue.org/files/2016/03/20160319_135852-1024x946.jpg 1024w, http://joedonahue.org/files/2016/03/20160319_135852.jpg 1988w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>It was my Junior year at South Portland High School, sitting in Mr. Brogan&#8217;s <em>Maine Studies</em> class. He stood at the head of class, leaning forward and hands extended, as if addressing the United States Congress on matters of the highest concern. &#8220;We&#8217;re heading to my favorite place! T2-R8!!&#8221;</p>
<p>We traveled a lot with Mr. Brogan as our guide &#8211; from the deepest corners of Maine to the Great Wall of China.</p>
<p>I consider myself a Mainer. Although the farther North I move, the more I am considered a half-breed (at best) or from Northern Massachusetts (at worst).  Southern Maine, I am told, is a different world.  It&#8217;s not <em>really</em> Maine. It&#8217;s the part of Maine where towns have names. And people. But apparently this is not the reality across our great state &#8211; where Unorganized Townships simple are assigned a number rather than a formal name.</p>
<p>&nbsp;</p>
<p>Nestled halfway between Franklin and Cherryfield, traveling by Route 182, you&#8217;ll find another of these little gems: T9. Flanked by Spring River Lake and the Hidden Ponds (Mud, Salmon, Little Long, and Tilden) on the North, and by Fox Pond and Tunk Lake on the South, T9 is proving to feature some the best opportunities for exploring and hiking in Downeast Maine.</p>
<p><strong>One. Mile. Only.</strong></p>
<p>In less than One Mile of road, you&#8217;ll encounter beautiful views and a boat ramps on Fox Pond, trailhead for Caribou Loop and Tunk Mountain down Dynamite Brook rd, a network of trails surrounding the Hidden Ponds, and a beach and boat ramp on Spring River Lake &#8211; so underutilized that my kids call it &#8220;the private beach.&#8221;</p>
<div style="clear: none; width: 100%;">
<p><a href="http://joedonahue.org/files/2016/03/20160319_132326.jpg"><img decoding="async" class="alignleft wp-image-597 size-thumbnail" src="http://joedonahue.org/files/2016/03/20160319_132326-150x150.jpg" alt="20160319_132326" width="150" height="150" /></a></p>
<p><strong>Fox Pond</strong></p>
<p>Coming up Route 182, the first of these natural wonders will be hard to miss &#8211; Fox Pond. There are long stretches of lakeview as the road winds along the water&#8217;s edge. There are a couple points to pull over and enjoy the view, and at the farthest point is a small boat ramp.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://joedonahue.org/files/2016/03/20160319_134550.jpg"><img decoding="async" class="alignleft wp-image-603 size-thumbnail" src="http://joedonahue.org/files/2016/03/20160319_134550-150x150.jpg" alt="20160319_134550" width="150" height="150" /></a></p>
</div>
<p><strong>Dynamite Brook Road &amp; Caribou Loop</strong></p>
<p>Traveling further North, you will easily miss Dynamite Brook Road, unless you&#8217;re looking for it &#8211; and you should! It&#8217;s a lengthy dirt road with the trailhead for Caribou Loop (about halfway down).</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div style="clear: none; width: 100%;">
<p><a href="http://joedonahue.org/files/2016/03/20160319_133146.jpg"><img loading="lazy" decoding="async" class="alignleft wp-image-600 size-thumbnail" src="http://joedonahue.org/files/2016/03/20160319_133146-150x150.jpg" alt="20160319_133146" width="150" height="150" /></a><strong>Tunk Lake and Hidden Pond Trails</strong></p>
<p>Almost right across from Dynamite Brook Road is the entrance to a network of trails with excellent parking. I suspect this will be one of our first targets as it is very close.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>http://joedonahue.org/theres-no-place-like-t9/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Correct jQuery: Click Event Handler using Named Functions</title>
		<link>http://joedonahue.org/correct-jquery-click-event-handler-using-named-functions/</link>
					<comments>http://joedonahue.org/correct-jquery-click-event-handler-using-named-functions/#respond</comments>
		
		<dc:creator><![CDATA[pastor joe]]></dc:creator>
		<pubDate>Wed, 29 Jul 2015 12:17:44 +0000</pubDate>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[jQuery]]></category>
		<guid isPermaLink="false">http://joedonahue.org/?p=575</guid>

					<description><![CDATA[Assigning event handlers is fundamental to jQuery and one of the more common reasons for leveraging this toolset. Most tutorials / examples, even in the primary documentation, implement event handlers&#8230;]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="alignleft size-full wp-image-578" src="http://joedonahue.org/files/2015/07/jquery_hosting.png" alt="jquery_hosting" width="120" srcset="http://joedonahue.org/files/2015/07/jquery_hosting.png 300w, http://joedonahue.org/files/2015/07/jquery_hosting-150x150.png 150w, http://joedonahue.org/files/2015/07/jquery_hosting-100x100.png 100w, http://joedonahue.org/files/2015/07/jquery_hosting-200x200.png 200w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p>Assigning event handlers is fundamental to jQuery and one of the more common reasons for leveraging this toolset. Most tutorials / examples, even in the primary documentation, implement event handlers using anonymous functions instead of named functions &#8211; which is great for a crash-course on getting started, but less helpful in real-world development. So here is a quick-reference for using jQuery event handlers with named functions.</p>
<p><code><br />
&lt;script type="text/javascript"&gt;<br />
$("input").click(handler);</code></p>
<p>function handler(e) {<br />
var i = $(this);<br />
}<br />
&lt;/script&gt;</p>
]]></content:encoded>
					
					<wfw:commentRss>http://joedonahue.org/correct-jquery-click-event-handler-using-named-functions/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Extending ASP.NET: EditableHyperLinkField</title>
		<link>http://joedonahue.org/extending-asp-net-editablehyperlinkfield/</link>
					<comments>http://joedonahue.org/extending-asp-net-editablehyperlinkfield/#respond</comments>
		
		<dc:creator><![CDATA[pastor joe]]></dc:creator>
		<pubDate>Sat, 20 Dec 2014 19:17:51 +0000</pubDate>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Daily Grind]]></category>
		<guid isPermaLink="false">http://joedonahue.org/?p=563</guid>

					<description><![CDATA[Over the years of coding in ASP.NET, I continue to find ways to create simple, reusable objects that are fun and make development easier.  One of my favorite ways is&#8230;]]></description>
										<content:encoded><![CDATA[<p>Over the years of coding in ASP.NET, I continue to find ways to create simple, reusable objects that are fun and make development easier.  One of my favorite ways is extending the DataBound objects that are used in GridViews and DetailsViews.  I&#8217;ve already offered up DropDownField, which I use over and over again. I have a few more that are great to use in GridView scenarios that provide a better User Experience and less coding. Win! Today&#8217;s freebie is: EditableHyperLinkField.</p>
<p>A common scenario with GridViews is a list of records: It will contain an id and a name, as well as links to Edit, Delete, and Select the item to get more info. This gives you a quaint little usable-but-ugly table which is great to Tutorials but not exactly something you&#8217;re going to hand in to the Corner Office.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-564 size-full" src="http://joedonahue.org/files/2014/12/editablehyperlinkfield_1.jpg" alt="editablehyperlinkfield_1" width="443" height="114" srcset="http://joedonahue.org/files/2014/12/editablehyperlinkfield_1.jpg 443w, http://joedonahue.org/files/2014/12/editablehyperlinkfield_1-300x77.jpg 300w, http://joedonahue.org/files/2014/12/editablehyperlinkfield_1-100x25.jpg 100w, http://joedonahue.org/files/2014/12/editablehyperlinkfield_1-150x38.jpg 150w, http://joedonahue.org/files/2014/12/editablehyperlinkfield_1-200x51.jpg 200w" sizes="auto, (max-width: 443px) 100vw, 443px" /></p>
<p>But, at least it has the handy-dandy inline edit function, right? I mean, right?</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-565 size-full" src="http://joedonahue.org/files/2014/12/editablehyperlinkfield_2.jpg" alt="editablehyperlinkfield_2" width="508" height="155" srcset="http://joedonahue.org/files/2014/12/editablehyperlinkfield_2.jpg 508w, http://joedonahue.org/files/2014/12/editablehyperlinkfield_2-300x91.jpg 300w, http://joedonahue.org/files/2014/12/editablehyperlinkfield_2-100x30.jpg 100w, http://joedonahue.org/files/2014/12/editablehyperlinkfield_2-150x45.jpg 150w, http://joedonahue.org/files/2014/12/editablehyperlinkfield_2-200x61.jpg 200w, http://joedonahue.org/files/2014/12/editablehyperlinkfield_2-450x137.jpg 450w" sizes="auto, (max-width: 508px) 100vw, 508px" /></p>
<p>One of the ugliest components is the unnecessary &#8220;Select&#8221; link. The name of the record itself should be the link, and the rightmost column can be exterminated. Only one problem: HyperLinkFields do not play nicely with GridView&#8217;s inline editing. When editing a row, the HyperLinkField remains readonly. In this example, only the ID field changes (which under normal circumstances would be set to readonly also to avoid Data Integrity violation).</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-566 size-full" src="http://joedonahue.org/files/2014/12/editablehyperlinkfield_3.jpg" alt="editablehyperlinkfield_3" width="448" height="152" srcset="http://joedonahue.org/files/2014/12/editablehyperlinkfield_3.jpg 448w, http://joedonahue.org/files/2014/12/editablehyperlinkfield_3-300x101.jpg 300w, http://joedonahue.org/files/2014/12/editablehyperlinkfield_3-100x33.jpg 100w, http://joedonahue.org/files/2014/12/editablehyperlinkfield_3-150x50.jpg 150w, http://joedonahue.org/files/2014/12/editablehyperlinkfield_3-200x67.jpg 200w" sizes="auto, (max-width: 448px) 100vw, 448px" /></p>
<p>Aggh! Settle down now.  The solution is to introduce a new object, EditableHyperLinkField, which extends the normal HyperLinkField and adds the desired compatibility with inline editing. Check it out!</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-567" src="http://joedonahue.org/files/2014/12/editablehyperlinkfield_4.jpg" alt="editablehyperlinkfield_4" width="447" height="155" srcset="http://joedonahue.org/files/2014/12/editablehyperlinkfield_4.jpg 447w, http://joedonahue.org/files/2014/12/editablehyperlinkfield_4-300x104.jpg 300w, http://joedonahue.org/files/2014/12/editablehyperlinkfield_4-100x34.jpg 100w, http://joedonahue.org/files/2014/12/editablehyperlinkfield_4-150x52.jpg 150w, http://joedonahue.org/files/2014/12/editablehyperlinkfield_4-200x69.jpg 200w" sizes="auto, (max-width: 447px) 100vw, 447px" /></p>
<p>Now we are closer to a GridView we can actually use!</p>
<p>Oh, you&#8217;d like to see the code?</p>
<div class="code">
<code><br />
using System;<br />
using System.Collections.Generic;<br />
using System.Web;<br />
using System.Web.UI;<br />
using System.Web.UI.WebControls;</p>
<p>namespace MyProject.resources {<br />
public class EditableHyperLinkField : HyperLinkField {</p>
<p>private Boolean inEditMode;</p>
<p>public override void InitializeCell(DataControlFieldCell cell,<br />
                     DataControlCellType cellType, DataControlRowState rowState, int rowIndex) {<br />
     base.InitializeCell(cell, cellType, rowState, rowIndex);</p>
<p>switch (cellType) {<br />
case DataControlCellType.DataCell:<br />
this.InitializeDataCell(cell, rowState);<br />
break;<br />
case DataControlCellType.Footer:<br />
this.InitializeFooterCell(cell, rowState);<br />
break;<br />
case DataControlCellType.Header:<br />
this.InitializeHeaderCell(cell, rowState);<br />
break;<br />
}<br />
}<br />
protected void InitializeDataCell(DataControlFieldCell cell, DataControlRowState rowState) {</p>
<p>cell.DataBinding += new EventHandler(OnDataBindField);</p>
<p>this.inEditMode = (rowState &amp; (DataControlRowState.Edit | DataControlRowState.Insert)) != 0;</p>
<p>if (inEditMode) {<br />
TextBox t = new TextBox();<br />
cell.Controls.Clear();<br />
cell.Controls.Add(t);<br />
} else {<br />
// Default behavior is OK<br />
}<br />
}</p>
<p>protected void InitializeHeaderCell(DataControlFieldCell cell, DataControlRowState rowState) {<br />
}</p>
<p>protected void InitializeFooterCell(DataControlFieldCell cell, DataControlRowState rowState) {<br />
}</p>
<p>protected virtual void OnDataBindField(object sender, EventArgs e) {<br />
TableCell cell = (TableCell)sender;<br />
IDataItemContainer container = (IDataItemContainer)cell.NamingContainer;<br />
object boundvalue = GetBoundValue(container);<br />
String selectedValue = boundvalue.ToString();</p>
<p>/* Set the corresponding text or selectedValue */<br />
if (inEditMode) {<br />
object dataItem = DataBinder.GetDataItem(container);<br />
boundvalue = DataBinder.GetPropertyValue(dataItem, DataTextField);<br />
selectedValue = boundvalue.ToString();</p>
<p>TextBox t = (TextBox)cell.Controls[0];</p>
<p>if (selectedValue != null &amp;&amp; selectedValue.Length &gt; 0)<br />
t.Text = selectedValue;</p>
<p>} else {<br />
HyperLink l = (HyperLink)cell.Controls[0];<br />
l.Text = selectedValue;<br />
}</p>
<p>}</p>
<p>object GetBoundValue(IDataItemContainer controlContainer) {<br />
object dataItem = DataBinder.GetDataItem(controlContainer);<br />
return DataBinder.GetPropertyValue(dataItem, DataTextField);<br />
}</p>
<p>public override void ExtractValuesFromCell(System.Collections.Specialized.IOrderedDictionary dictionary, DataControlFieldCell cell, DataControlRowState rowState, bool includeReadOnly) {</p>
<p>base.ExtractValuesFromCell(dictionary, cell, rowState, includeReadOnly);</p>
<p>this.inEditMode = (rowState &amp; (DataControlRowState.Edit | DataControlRowState.Insert)) != 0;</p>
<p>string value = null;</p>
<p>if (cell.Controls.Count &gt; 0) {<br />
Control control = cell.Controls[0];<br />
if (control == null)<br />
throw new InvalidOperationException("The control cannot be extracted");</p>
<p>if (inEditMode)<br />
value = ((TextBox)control).Text;<br />
else<br />
value = ((HyperLink)control).Text;</p>
<p>}</p>
<p>if (dictionary.Contains(this.DataTextField))<br />
dictionary[this.DataTextField] = value;<br />
else<br />
dictionary.Add(this.DataTextField, value);<br />
}<br />
}</p>
<p>}<br />
</code>
</div>
]]></content:encoded>
					
					<wfw:commentRss>http://joedonahue.org/extending-asp-net-editablehyperlinkfield/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Correct jQuery</title>
		<link>http://joedonahue.org/correct-jquery/</link>
					<comments>http://joedonahue.org/correct-jquery/#respond</comments>
		
		<dc:creator><![CDATA[pastor joe]]></dc:creator>
		<pubDate>Thu, 19 Jun 2014 19:15:23 +0000</pubDate>
				<category><![CDATA[Code]]></category>
		<guid isPermaLink="false">http://joedonahue.org/?p=552</guid>

					<description><![CDATA[The Correct Way (yes, that&#8217;s capitalized) to reference is by CDN.  For more information on a Content Distribution Network, Google (yes, that&#8217;s capitalized) it. That&#8217;s not why we&#8217;re here. &#60;script&#8230;]]></description>
										<content:encoded><![CDATA[<p>The Correct Way (yes, that&#8217;s capitalized) to reference is by CDN.  For more information on a Content Distribution Network, Google (yes, that&#8217;s capitalized) it. That&#8217;s not why we&#8217;re here.</p>
<div style="background-color: yellow; border: solid 1px gray;padding:8px;"><code><br />
&lt;script src="//code.jquery.com/jquery-2.1.1.js"&gt;&lt;/script&gt;<br />
&lt;script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"&gt;&lt;/script&gt;<br />
&lt;link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css" /&gt;<br />
</code></div>
<p>This is the Correct Way not only because of the use of a CDN, but because of the lack of a specified protocol.  Rather than specify &#8220;http://&#8221; or &#8220;https://&#8221;, it simply uses &#8220;//&#8221; and the protocol is not specified.  This will remove the noise that is sometimes encountered about &#8220;viewing insecure content over a secure network.&#8221;</p>
<p>I&#8217;ve also included the jQuery UI library and a supporting theme. Because you don&#8217;t think you&#8217;ll need it, but you will.</p>
<p>Feel free to bookmark this page. You&#8217;ll be back.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://joedonahue.org/correct-jquery/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Wednesday, May 28, 2014</title>
		<link>http://joedonahue.org/wednesday-may-28-2014/</link>
					<comments>http://joedonahue.org/wednesday-may-28-2014/#respond</comments>
		
		<dc:creator><![CDATA[pastor joe]]></dc:creator>
		<pubDate>Thu, 29 May 2014 00:07:34 +0000</pubDate>
				<category><![CDATA[Daily Grind]]></category>
		<category><![CDATA[Family]]></category>
		<guid isPermaLink="false">http://joedonahue.org/?p=549</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<p><a href="http://joedonahue.org/files/2014/05/wpid-wp-1401321888031.jpeg"><img decoding="async" title="wp-1401321888031" class="alignnone size-full" alt="image" src="http://joedonahue.org/files/2014/05/wpid-wp-1401321888031.jpeg" /></a></p>
<p><a href="http://joedonahue.org/files/2014/05/wpid-wp-1401321969625.jpeg"><img decoding="async" title="wp-1401321969625" class="alignnone size-full" alt="image" src="http://joedonahue.org/files/2014/05/wpid-wp-1401321969625.jpeg" /></a></p>
<p><a href="http://joedonahue.org/files/2014/05/wpid-wp-1401321988056.jpeg"><img decoding="async" title="wp-1401321988056" class="alignnone size-full" alt="image" src="http://joedonahue.org/files/2014/05/wpid-wp-1401321988056.jpeg" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>http://joedonahue.org/wednesday-may-28-2014/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Thank you for not leaving the church.</title>
		<link>http://joedonahue.org/thank-leaving-church/</link>
					<comments>http://joedonahue.org/thank-leaving-church/#respond</comments>
		
		<dc:creator><![CDATA[pastor joe]]></dc:creator>
		<pubDate>Fri, 09 May 2014 21:04:30 +0000</pubDate>
				<category><![CDATA[Daily Grind]]></category>
		<category><![CDATA[Theology]]></category>
		<guid isPermaLink="false">http://joedonahue.org/?p=512</guid>

					<description><![CDATA[Today I met up with a couple for lunch. They had visited the church this past week for the first time and, per my normal practice, I contacted them in&#8230;]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignleft size-full wp-image-513" src="http://joedonahue.org/files/2014/05/stock-footage-close-up-of-an-elderly-couple-holding-hands-and-walking-together.jpg" alt="stock-footage-close-up-of-an-elderly-couple-holding-hands-and-walking-together" width="400" height="224" srcset="http://joedonahue.org/files/2014/05/stock-footage-close-up-of-an-elderly-couple-holding-hands-and-walking-together.jpg 400w, http://joedonahue.org/files/2014/05/stock-footage-close-up-of-an-elderly-couple-holding-hands-and-walking-together-300x168.jpg 300w, http://joedonahue.org/files/2014/05/stock-footage-close-up-of-an-elderly-couple-holding-hands-and-walking-together-100x56.jpg 100w, http://joedonahue.org/files/2014/05/stock-footage-close-up-of-an-elderly-couple-holding-hands-and-walking-together-150x84.jpg 150w, http://joedonahue.org/files/2014/05/stock-footage-close-up-of-an-elderly-couple-holding-hands-and-walking-together-200x112.jpg 200w" sizes="auto, (max-width: 400px) 100vw, 400px" /></p>
<p>Today I met up with a couple for lunch. They had visited the church this past week for the first time and, per my normal practice, I contacted them in order to have a conversation about them and their visit.</p>
<p>They are &#8220;from away&#8221; (as we Mainers like to say!) but in the area for the summer, and staying down in Bar Harbor. When I called they happened to be in town doing laundry, so instead of a trip down to the island, I was able to meet up nearby with my four-year-old I had just picked up from school.</p>
<p>We had a wonderful conversation, lasting well over an hour. They are long-time Nazarenes, having attended their home church for 61 years! Recently retired, they now travel the country and just came up to Maine after spending the Winter in Arizona. We spoke about a variety of topics, including music and the normal tension felt in the generational divide &#8211; sometimes characterized as &#8220;Hymns&#8221; vs &#8220;Contemporary&#8221; although we all acknowledge these words are inadequate. They shared a story with me about the intentional shift in their home towards the praise band and how they felt very &#8220;left behind&#8221; when Hymns and classic songs of the faith began to be altogether excluded from the worship services. They wrote a letter to their pastor (which is always scary. I&#8217;ve received a couple of those!) detailing their feelings. They received a response, but not what they expected: &#8220;Perhaps you should find a different church.&#8221;</p>
<p>The story is not recent, but it felt like it just happened. You could still hear the sadness in their voices as they describe a church leader who was a powerful speaker and orator, but not a great Pastor. In the awkward and painful silence, I was able to share my deepest sentiment,</p>
<p><em>Thank you for not leaving the church.</em></p>
<p>We don&#8217;t always know what we&#8217;re doing. We try to do the right thing. We want to &#8220;grow&#8221; the church and reach out and make people feel welcome and at home. Doing The Right Thing, in all it&#8217;s various forms, is the one thing that consumes us every moment of every day. If I am a Pastor, and I cannot Do The Right Thing, whatever it may be, it causes me to feel like I have failed at everything. And sometimes we fail with the people who have loved the church more deeply than we can even imagine. 61 years at the same local church? You know more about faithfulness than I ever will. And we are indebted to your faithfulness. Thank you for not leaving the church. I&#8217;ll see you Sunday.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://joedonahue.org/thank-leaving-church/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Spring Vacation!</title>
		<link>http://joedonahue.org/spring-vacation/</link>
					<comments>http://joedonahue.org/spring-vacation/#respond</comments>
		
		<dc:creator><![CDATA[pastor joe]]></dc:creator>
		<pubDate>Thu, 20 Mar 2014 11:50:12 +0000</pubDate>
				<category><![CDATA[Daily Grind]]></category>
		<guid isPermaLink="false">http://joedonahue.org/?p=500</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<p><a href="http://joedonahue.org/files/2014/03/wpid-img_20140320_071021_887.jpg"><img decoding="async" title="IMG_20140320_071021_887.jpg" class="alignnone size-full" alt="image" src="http://joedonahue.org/files/2014/03/wpid-img_20140320_071021_887.jpg" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>http://joedonahue.org/spring-vacation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Extending DropDownList: Add EmptyDataTemplate Support</title>
		<link>http://joedonahue.org/extending-dropdownlist-add-emptydatatemplate-support/</link>
					<comments>http://joedonahue.org/extending-dropdownlist-add-emptydatatemplate-support/#respond</comments>
		
		<dc:creator><![CDATA[pastor joe]]></dc:creator>
		<pubDate>Thu, 09 May 2013 02:17:40 +0000</pubDate>
				<category><![CDATA[Code]]></category>
		<guid isPermaLink="false">http://joedonahue.org/?p=472</guid>

					<description><![CDATA[This is a small but handy extension of the standard .NET DropDownList control in order to support an EmptyDataTemplate.  The EmptyDataTemplate concept is used in other places to display some&#8230;]]></description>
										<content:encoded><![CDATA[<p>This is a small but handy extension of the standard .NET DropDownList control in order to support an EmptyDataTemplate.  The EmptyDataTemplate concept is used in other places to display some content when the bound datasource returns no results. It&#8217;s unfortunately not natively provided in the DropDownList, but I&#8217;ve found it to be very helpful.</p>
<p>I confess that this (at present) does not function fully like the normal EmptyDataTemplate usage, which is written as a child control. Rather, it&#8217;s simply an additional parameter.  As such, it will really only support text.</p>
<p>[<a title="DropDownList with EmptyDataTemplate" href="http://joedonahue.org/projects/extending-dropdownlist-add-emptydatatemplate/">Read More</a>]</p>
]]></content:encoded>
					
					<wfw:commentRss>http://joedonahue.org/extending-dropdownlist-add-emptydatatemplate-support/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>A Day in the Life of a Bi-Vocational Pastor.</title>
		<link>http://joedonahue.org/a-day-in-the-life-of-a-bi-vocational-pastor/</link>
					<comments>http://joedonahue.org/a-day-in-the-life-of-a-bi-vocational-pastor/#respond</comments>
		
		<dc:creator><![CDATA[pastor joe]]></dc:creator>
		<pubDate>Tue, 08 Jan 2013 03:46:56 +0000</pubDate>
				<category><![CDATA[Daily Grind]]></category>
		<category><![CDATA[Family]]></category>
		<category><![CDATA[Theology]]></category>
		<guid isPermaLink="false">http://joedonahue.org/?p=459</guid>

					<description><![CDATA[&#160; 7am.   Wake up to the sound of Andrew yelling, &#8220;Ezra&#8217;s on the stairs!&#8221;  Move in great haste to save the teetering 11-month old at the top of the&#8230;]]></description>
										<content:encoded><![CDATA[<p>&nbsp;</p>
<p>7am.   Wake up to the sound of Andrew yelling, &#8220;Ezra&#8217;s on the stairs!&#8221;  Move in great haste to save the teetering 11-month old at the top of the stairs.  Let the day begin!</p>
<p>7:10. Breakfast. Feeding the baby and trying to figure out to cut the crust off an English Muffin while Julie pulls out their clothes and lunches for the day.</p>
<p>7:40. Load kids into the car and begin my morning job as bus driver. Andrew is crying because he can&#8217;t find mittens. Amelia reminds him he has mittens tied into his coat. Which he is wearing. Buckle them in and run back to the house to get Amelia&#8217;s snack &#8211; an orange. Give to Amelia. Andrew starts crying that he wants an orange.  Turn up the radio.</p>
<p>7:55. Unbuckle and walk both kids into Amelia&#8217;s school. 17 seconds later, return and buckle Andrew back into his seat.</p>
<p>8:10. Enough time between schools to run an errand. Today it&#8217;s going to the bank.</p>
<p>8:20. Arrive at Andrew&#8217;s school. Still a little early. Check email. Delete anything important.</p>
<p>8:25. Pretend to be an elevator to get Andrew out of the car. We race to the door. He wins. Again.</p>
<p>8:30. He&#8217;s changed into school shoes and I lift him up &#8211; as I do every school day &#8211; so he can peer into the classroom before we enter. &#8220;What do you see?&#8221; I ask. He replies, without fail, &#8220;Teachers and friends!&#8221; We enter and exchange &#8220;smooshie&#8221; hugs until he&#8217;s ready to rock.</p>
<p>8:45. Back in the car. Notice a missed call from work. Call back and spend a few minutes answering questions for a co-worker. Take a deep breath and listen to NPR for a few minutes before launching into the rest of the day.</p>
<p>9:00. Arrive home. Load up laptop and other accessories into the car. I&#8217;ll be working from the church today, and decide to bring over my wide-screen monitor to try out the docking station. Refill coffee. Shovel out mailbox. Bring in mail. Julie asks me to return dishes to the church leftover from pot luck yesterday. Clean off my car from the previous days&#8217; snow flurry using a dish.</p>
<p>9:40. Finally make it to the office, which is 200ft away from the house. Unload the car and spend a few minutes organizing, hooking up the monitor, pushing buttons on the docking stations until it lights up.</p>
<p>9:55. Take another call for work. Save the world. Again.</p>
<p>10:00. Work! Write up and send out a weekly Monday-morning status report for a client. Exchange a quick half-dozen emails with a co-worker concerning an open work item. While exchanging emails an additional request comes in which takes precedence. Drop everything and shift gears.</p>
<p>11:00. Julie drops by to say hi (and pick up the credit card) before going grocery shopping. I take advantage of the break to go get a coffee at Freshies.</p>
<p>11:15. Work, take 2. Database backups, restores, and updating data from an excel spreadsheet.</p>
<p>12:00. Take a break to call Time Warner and cancel my home phone service. We haven&#8217;t even plugged it in since we arrived in Ellsworth 8 months ago. That $35 a month will help to cover my new taxes.</p>
<p>12:40. Pull out year-end donation reports which require my signature before being delivered. Review and sign each one. Humbled and grateful for the generosity and sacrifice of many. I sign my own, not really sure why.</p>
<p>1:00. Phone call from a lay leader at church. Discuss the previous day&#8217;s service and direction of the coming week &#8211; TBD.</p>
<p>1:15. Head home for lunch and my daily ritual of facilitating Andrew&#8217;s afternoon nap. Julie heats up leftovers for me while I read to Andrew. I relax and watch Millionare with Julie while eating lunch. I share the joy of being on the phone with Time Warner for an hour to cancel the phone service. She suggests cancelling cable as well. I suggest she call them.</p>
<p>2:00. Shovel more snow out back and bring in a couple loads of firewood.</p>
<p>2:20. Alerted that we may have accidentally taken home a pair of boots from one of Amelia&#8217;s friends who have the same style &#8211; and size &#8211; as Amelia. Unsuccessfully scour the shoe bin for anomalous boots.</p>
<p>2:30. Drive out to pick up Amelia while Julie stays home with napping kids. Greet other parents and discuss missing boot  situation. Boots are discovered at school. Day is saved. Amelia and I get back in the car and drive home.</p>
<p>3:00. Work, take 3. Take a couple calls, answer a couple emails, run some more database jobs.</p>
<p>4:00. Head home to bring in one more load of firewood while there is daylight.</p>
<p>4:05. Call former Youth Pastor who started his new job today.</p>
<p>4:10. Pick up cake from the store which I had ordered &#8211; and then forgot &#8211; for the Youth Pastor&#8217;s going away party.</p>
<p>4:25. Back in the office to wrap up a few things and close down shop for the day. Bring out bags of trash to the dumpster and discover bits of yesterday&#8217;s pot luck surrounding the dumpster, thanks to some animal which had got in. Clean up.</p>
<p>5:00. Walk through the door just as Andrew is waking up from his nap.</p>
<p>5:15. Thirty minute phone call with the church treasurer. End-of-year taxes, bills, home heating strategy, sicknesses, and fake Christmas trees.</p>
<p>6:00. Dinner! Amelia drops hers on the way to the table and bursts into tears.</p>
<p>6:15. Amelia stops crying.</p>
<p>7:00. Begin bedtime routine, slightly later then usual. Pajamas, teethbrushing, read books. Amelia is reading a version of &#8220;David and Goliath&#8221; to Ezra while I read &#8220;Just go to bed!&#8221; (appropriately) to Andrew.</p>
<p>9:00. House is quiet. Write a blog post.</p>
<p>10:45. Finish blog post and prep for board meeting tomorrow.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://joedonahue.org/a-day-in-the-life-of-a-bi-vocational-pastor/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Welcome Home!</title>
		<link>http://joedonahue.org/welcome-home/</link>
					<comments>http://joedonahue.org/welcome-home/#respond</comments>
		
		<dc:creator><![CDATA[pastor joe]]></dc:creator>
		<pubDate>Sat, 11 Aug 2012 00:51:49 +0000</pubDate>
				<category><![CDATA[Daily Grind]]></category>
		<category><![CDATA[Family]]></category>
		<guid isPermaLink="false">http://joedonahue.org/?p=450</guid>

					<description><![CDATA[A couple of significant changes have been happening in the Donahue house. I don&#8217;t frequently post about family-related activity (I don&#8217;t post frequently at all) as it is mostly covered&#8230;]]></description>
										<content:encoded><![CDATA[<p>A couple of significant changes have been happening in the Donahue house. I don&#8217;t frequently post about family-related activity (I don&#8217;t post frequently at all) as it is mostly covered over at <a title="Donahue Happenings" href="http://www,askforseconds.com">Donahue Happenings</a> but here are a few things which are worth covering!</p>
<h2>Meet Ezra.</h2>
<p>Ezra Joseph Donahue was born January 20th in Lewiston, ME. At six months old, and is as big as his 1-year-old peers. I call him &#8220;The Large One&#8221; which is mostly in light of a nickname I picked up from Evan Desjardins &#8211; supposedly in light of my affection for Dunkin&#8217; Donuts, but I don&#8217;t ask questions. Once again it&#8217;s proven true that &#8220;all children are different&#8221; as &#8220;Tres&#8221; is altogether unlikely his older brother and sister in their infancy. I could bore you with details of birth weight and size and time and eye color and percentage of birth weight composed of hair &#8211; but here is the important fact: He completes our family. We have a really special sense of togetherness and closeness that is nothing like what I&#8217;ve felt before. Andrew and Amelia absolutely love Ezra. When they are not watching Spider-Man or Avatar: The Last Airbender, they are smiling and tickling and playing with Ezra.</p>
<p>Within a couple weeks of Ezra&#8217;s birth we also welcomed my niece Lilliana Kathleen (who visited her American family recently!) and the passing of my Nana, Kathleen Brydon, as well as the passing of Julie&#8217;s grandfather Ira &#8220;Joe&#8221; Berry. This was a highly emotional time for our family and many helped us through it.</p>
<h2>Pastor, Ellsworth Church of the Nazarene</h2>
<p>Following the Call of God, which it could only be at this tumultuous time in our lives, we packed up the fam and moved to Downeast Maine as Pastor of the <a title="Ellsworth Church of the Nazarene" href="http://www.ellsworthnazarene.net" target="_blank">Ellsworth Church of the Nazarene</a>. This is truly a new chapter in our lives, and its still overwhelming &#8211; even 5 months into it &#8211; but God has been good and both the churches at Ellsworth and Lisbon Falls have been very gracious to us.  It has been tremendously heart-breaking to part ways with students and families that I have LOVED for four years &#8211; but I am very grateful that I am moving only a couple hours away and still get to see them around.  I have been surprised by visits from Sandi Wood and Dustin, Robert, Melissa, and Kristen at district events, and have seen Jordan (briefly!) at teen camp and kids camp.  I hear reports of Ben and Meagan who are stepping up and serving in Children&#8217;s Ministry. I still see Erlene everywhere I go!! Rick and Janice and the whole family came up to visit one weekend and I was also able to see them recently at camp.</p>
<p>As we came off the 50-foot truck which moved us here, we were welcomed by a large banner in the parsonage reading, &#8220;Welcome Home!&#8221; and signed by many in the church.  And so we turn the page into a new chapter of our lives &#8211; with three kids, 2 of which will be in school in just a few short weeks, a new role for me serving in ministry, a new location to explore and new families to meet and to love . Welcome home.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://joedonahue.org/welcome-home/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
