<?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>Tech4Him - Technology with Integrity &#187; drupal</title>
	<atom:link href="http://blog.tech4him.com/tags/drupal/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tech4him.com</link>
	<description>A Christian technology chaos wrangler and his thoughts</description>
	<lastBuildDate>Wed, 24 Mar 2010 23:15:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Drupal 5 to 6 Form Migration #TREE Attribute</title>
		<link>http://blog.tech4him.com/2010/03/drupal-5-to-6-form-migration-tree-attribute/</link>
		<comments>http://blog.tech4him.com/2010/03/drupal-5-to-6-form-migration-tree-attribute/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 04:12:23 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=910</guid>
		<description><![CDATA[Today was spent working on creating a Drupal 6 version of a custom Drupal 5 module as part of a Drupal upgrade project. This module is similar to the image_attach module that is a contrib module package with the Image module. The difference is that the module allows you to designate categories for images by [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://farm1.static.flickr.com/72/183313765_12a606d998.jpg"><img class="alignright" title="Tree" src="http://farm1.static.flickr.com/72/183313765_12a606d998.jpg" alt="" width="350" height="199" /></a>Today was spent working on creating a Drupal 6 version of a custom Drupal 5 module as part of a Drupal upgrade project. This module is similar to the image_attach module that is a contrib module package with the <a href="http://drupal.org/project/image">Image module</a>. The difference is that the module allows you to designate categories for images by content_type and allows for the upload, selection, removal and ordering of images in each &#8220;image category&#8221;.<span id="more-910"></span></p>
<p><a href="http://blog.tech4him.com/wp-content/uploads/20100310-images_attach-screenshot.png"><img class="alignleft size-medium wp-image-913" style="border: 1px solid black; margin: 8px;" title="20100310 images_attach screenshot" src="http://blog.tech4him.com/wp-content/uploads/20100310-images_attach-screenshot-212x300.png" alt="" width="212" height="300" /></a>Now, one of the biggest challenges is that there are multiple instances of the &#8220;image_attach&#8221; sections on a single content edit form, one for each category. The Drupal 5 version handled this by naming these by appending the category name to the fields. This allows the submitted form value for &#8220;iids&#8221; to be an array of categories. Each category itself being an array of image iid values.</p>
<p>For the life of me, my Drupal 6 version of this functionality failed to maintain the category arrays. After some frustrated hair pulling (hmmm&#8230;. no wonder my hair is so short), I remembered to take a look at the <a href="http://api.drupal.org/api/drupal/developer--topics--forms_api.html/6">FAPI docs</a>.</p>
<p>http://api.drupal.org/api/drupal/developer&#8211;topics&#8211;forms_api.html/6</p>
<blockquote><p><span style="color: #800080;"><em>An important thing to note:</em> notice that <code>$form['access']</code> has a <code>'#tree' =&gt; TRUE</code> attribute. this setting retains  the full tree structure for all elements under it when it is passed to <code>$form_state['values']</code>.  you must explicitly declare this anywhere you wish to retain an array&#8217;s  full hierarchy when it is passed.</span></p></blockquote>
<p>So, Drupal 6 collapses form elements where possible by default. By adding the #tree attribute, the hierarchy of form elements is maintained in the form_state submitted. Eureka!</p>
<p>Here&#8217;s an example of what I was getting without the #tree attribute:</p>
<p><a href="http://blog.tech4him.com/wp-content/uploads/20100310-Drupal-Without-Form-Tree.png"><img class="aligncenter size-medium wp-image-911" title="20100310 Drupal Without Form Tree" src="http://blog.tech4him.com/wp-content/uploads/20100310-Drupal-Without-Form-Tree-300x281.png" alt="form_state values without #tree" width="300" height="281" /></a></p>
<p>And now with the #tree attribute set to true, the form hierarchy is retain and not collapsed:</p>
<p><a href="http://blog.tech4him.com/wp-content/uploads/20100310-Drupal-With-Form-TREE-on.png"><img class="aligncenter size-medium wp-image-912" title="20100310 Drupal With Form TREE on" src="http://blog.tech4him.com/wp-content/uploads/20100310-Drupal-With-Form-TREE-on-285x300.png" alt="form_state values with #tree" width="285" height="300" /></a></p>
<p>I&#8217;m sure most of you doing Drupal development are saying &#8220;Duh!&#8221;. Well, let&#8217;s just say I really didn&#8217;t know. <img src='http://blog.tech4him.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Thought I&#8217;d throw it on the blog so I don&#8217;t forget.</p>
<p>Blessings.</p>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=910&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2010/03/drupal-5-to-6-form-migration-tree-attribute/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenPublish Demo at ADUG</title>
		<link>http://blog.tech4him.com/2010/02/openpublish-demo-at-adug/</link>
		<comments>http://blog.tech4him.com/2010/02/openpublish-demo-at-adug/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 15:35:28 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Links/Resources]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[openpublish]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=883</guid>
		<description><![CDATA[This video is from Atlanta Drupal User Group (ADUG) member Kent Lester,  and his presentation on Open Publish &#8211; the Drupal distribution created  by Phase2 Technology.

 
]]></description>
			<content:encoded><![CDATA[<p>This video is from <a href="http://www.mediacurrent.com/adug-meetup-video-footage-open-publish-and-drupal-gardens-demos" target="_blank">Atlanta Drupal User Group (ADUG)</a> member Kent Lester,  and his presentation on Open Publish &#8211; the Drupal distribution created  by Phase2 Technology.</p>
<p><span id="more-883"></span></p>
<p><embed type="application/x-shockwave-flash" width="640" 	height="504" 	allowfullscreen="true" 	allowscriptaccess="always" 	src="http://www.archive.org/flow/flowplayer.commercial-3.0.5.swf" 	w3c="true" 	flashvars='config={"key":"#$b6eb72a0f2f1e29f3d4","playlist":[{"url":"http://www.archive.org/download/DrupalOpenpublish-KentLester/format=Thumbnail?.jpg","autoPlay":true,"scaling":"fit"},{"url":"http://www.archive.org/download/DrupalOpenpublish-KentLester/DrupalOpenpublish-KentLester02092010_512kb.mp4","autoPlay":false,"accelerated":true,"scaling":"fit","provider":"h264streaming"}],"clip":{"autoPlay":false,"accelerated":true,"scaling":"fit","provider":"h264streaming"},"canvas":{"backgroundColor":"0x000000","backgroundGradient":"none"},"plugins":{"audio":{"url":"http://www.archive.org/flow/flowplayer.audio-3.0.3-dev.swf"},"controls":{"playlist":false,"fullscreen":true,"gloss":"high","backgroundColor":"0x000000","backgroundGradient":"medium","sliderColor":"0x777777","progressColor":"0x777777","timeColor":"0xeeeeee","durationColor":"0x01DAFF","buttonColor":"0x333333","buttonOverColor":"0x505050"},"h264streaming":{"url":"http://www.archive.org/flow/flowplayer.h264streaming-3.0.5.swf"}},"contextMenu":[{"View+DrupalOpenpublish-KentLester+at+archive.org":"function()"},"-","Flowplayer 3.0.5"]}'> </embed></p>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=883&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2010/02/openpublish-demo-at-adug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.archive.org/download/DrupalOpenpublish-KentLester/DrupalOpenpublish-KentLester02092010_512kb.mp4&amp;quot" length="305389662" type="video/mp4" />
		</item>
		<item>
		<title>Installing APC on MediaTemple DV 3.5 for Drupal</title>
		<link>http://blog.tech4him.com/2009/12/installing-apc-on-mediatemple-dv-3-5-for-drupal/</link>
		<comments>http://blog.tech4him.com/2009/12/installing-apc-on-mediatemple-dv-3-5-for-drupal/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 19:16:13 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[apc]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[mediatemple]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=870</guid>
		<description><![CDATA[We have a few sites that exist on a MediaTemple DV 3.5 server. We&#8217;ve long been concerned about the lack of performance we are getting on this DV versus sites on a smaller Linode.com DV. We are not here to debate that today.
What we have done is to install APC on the MediaTemple DV in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.tech4him.com/wp-content/uploads/3815370381_4dde638066.jpg"><img class="alignleft size-medium wp-image-871" style="margin: 8px;" title="3815370381_4dde638066" src="http://blog.tech4him.com/wp-content/uploads/3815370381_4dde638066-224x300.jpg" alt="3815370381_4dde638066" width="224" height="300" /></a>We have a few sites that exist on a MediaTemple DV 3.5 server. We&#8217;ve long been concerned about the lack of performance we are getting on this DV versus sites on a smaller <a href="http://linode.com" target="_blank">Linode.com</a> DV. We are not here to debate that today.</p>
<p>What we have done is to install APC on the MediaTemple DV in order to improve performance to some degree by taking advantage of op_code caching.  Now, this is not a silver bullet for performance folks. This is just one piece of a total tuning exercise. Be forewarned.</p>
<p><span id="more-870"></span>[<em>Note: You are on your own as with anything we present. We do not warranty nor represent explicitly nor implied that this will actually work for you. In fact, you might just hose things up badly. Don't call us, we warned you.  <img src='http://blog.tech4him.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  </em>]</p>
<h2>1. Install Developer Tools and Enable Root Access</h2>
<p>Log into your MediaTemple Account Center and go to the “Root Access &amp; Developer Tools” page. If Root access is not enabled, you&#8217;ll need to enable it. Be sure to set a massively secure password on this!</p>
<p>Also, if the developer tools have not yet been installed, then click the button to install them. Wait until the installation has finished before proceeding.</p>
<h2>2. Install APC</h2>
<p>Use your favorite SSH client to log into your server via SSH. Once you have logged in, you will perform the following commands:</p>
<ul>
<li>cd /usr/local/src</li>
<li>wget http://pecl.php.net/get/APC-3.0.19.tgz</li>
<li>gunzip -c APC-3.0.19.tgz | tar xf -</li>
<li>cd APC-3.0.19</li>
<li>/usr/bin/phpize</li>
<li>./configure –enable-apc –enable-apc-mmap –with-apxs2=/usr/sbin/apxs –with-php-config=/usr/bin/php-config</li>
<li>make</li>
<li>make install</li>
</ul>
<h2>3. Let PHP know about APC</h2>
<p>Now perform the following actions to modify your APC installation. (Thanks to <a href="http://www.timlinden.com/blog/server/installing-apc-cache-on-media-temple/" target="_blank">TimLinden</a> for the details)</p>
<ul>
<li>vi +/extension_dir /etc/php.ini</li>
<li>press i</li>
<li>press enter to start a new line</li>
<li>type extension = “apc.so”</li>
<li>press esc and then type :wq to exit and save (if you mess up type :q! to quit without saving)</li>
</ul>
<h2>4. Drupal APC customization</h2>
<p>Thanks to an <a href="http://2bits.com/articles/high-php-execution-times-drupal-and-tuning-apc-includeonce-performance.html" target="_blank">article from 2bits</a>, we made the following modifications to the php.ini to set some specific APC configuration options.</p>
<ul>
<li>vi +/extension_dir /etc/php.ini</li>
<li>press down arrow</li>
<li>press down arrow</li>
<li>press i</li>
<li>press enter to start a new line</li>
<li>type apc.apc.stat = 0</li>
<li>press enter</li>
<li>type apc.include_once_override = 1</li>
<li>press enter</li>
<li>type apc.shm_size = 64</li>
<li>press enter</li>
<li>press esc and then type :wq to exit and save (if you mess up type :q! to quit without saving)</li>
<li>service httpd stop</li>
<li>service httpd start</li>
</ul>
<p>For those that don&#8217;t need key press by key press instructions for the php.ini, here is what we added to the php.ini</p>
<pre>extension = “apc.so”
apc.apc.stat = 0
apc.include_once_override = 1
apc.shm_size = 64</pre>
<p>Hopefully this will help you get things started. Obviously, we are still testing and tweaking but this has provided some good improvements for a few sites that are located on a MediaTemple DV 3.5 server.</p>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=870&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/12/installing-apc-on-mediatemple-dv-3-5-for-drupal/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Fix Your Hosed Admin Menu</title>
		<link>http://blog.tech4him.com/2009/12/fix-your-hosed-admin-menu/</link>
		<comments>http://blog.tech4him.com/2009/12/fix-your-hosed-admin-menu/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 04:48:09 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[drupal 6]]></category>
		<category><![CDATA[menu]]></category>
		<category><![CDATA[module]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=863</guid>
		<description><![CDATA[Here&#8217;s a quick fix. We have a site that has been through a number of migrations, moves and upgrades. We use the Admin module that provide a nice UI for site administration. Somewhere along the way, the admin menu items got completely hosed.


Note that we have no &#8220;Content&#8221; menu in administration. Also, notice that in [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a quick fix. We have a site that has been through a number of migrations, moves and upgrades. We use the <a href="http://drupal.org/project/admin" target="_blank">Admin module</a> that provide a nice UI for site administration. Somewhere along the way, the admin menu items got completely hosed.</p>
<p><span id="more-863"></span></p>
<div id="attachment_864" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.tech4him.com/wp-content/uploads/Admin-Menu-Hosed.png"><img class="size-medium wp-image-864" title="Admin Menu Hosed" src="http://blog.tech4him.com/wp-content/uploads/Admin-Menu-Hosed-300x171.png" alt="Admin Menu Hosed" width="300" height="171" /></a><p class="wp-caption-text">Admin menu completely hosed.</p></div>
<p style="text-align: center;">
<p>Note that we have no &#8220;Content&#8221; menu in administration. Also, notice that in the screenshot, we are in the Configuration menu but only have a single configuration item. That certainly doesn&#8217;t look right. <img src='http://blog.tech4him.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>So after a bit of Googling  we first tried truncating the cache_menu table without success. Finally we decided to try a simple thought. We disabled the Admin menu. Then we re-enabled the Admin menu and Voila, our admin menus have been fixed. Go Figure.</p>
<div id="attachment_865" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.tech4him.com/wp-content/uploads/Admin-Menu-Fixed.png"><img class="size-medium wp-image-865" title="Admin Menu Fixed" src="http://blog.tech4him.com/wp-content/uploads/Admin-Menu-Fixed-300x203.png" alt="Admin menu all fixed." width="300" height="203" /></a><p class="wp-caption-text">Admin menu all fixed.</p></div>
<p>Just goes to show that sometimes the basic troubleshooting steps can fix something that looks worse than it really is.</p>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=863&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/12/fix-your-hosed-admin-menu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parent Feed Title in FeedAPI Item Node</title>
		<link>http://blog.tech4him.com/2009/10/parent-feed-title-in-feedapi-item-node/</link>
		<comments>http://blog.tech4him.com/2009/10/parent-feed-title-in-feedapi-item-node/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 22:35:58 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[feedapi]]></category>
		<category><![CDATA[openpublish]]></category>
		<category><![CDATA[templates]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=853</guid>
		<description><![CDATA[We recently began testing the installation profile for Drupal called OpenPublish. The good folks at Phase 2 Technology have opened this installation profile (distribution) up for all to use with some key features for the semantic web. This post is not to go over or compares features with other similar distributions. Instead this is more [...]]]></description>
			<content:encoded><![CDATA[<p>We recently began testing the installation profile for <a href="http://drupal.org" target="_blank">Drupal</a> called <a href="http://www.opensourceopenminds.com/openpublish" target="_blank">OpenPublish</a>. The good folks at <a href="http://www.phase2technology.com/" target="_blank">Phase 2 Technology</a> have opened this installation profile (distribution) up for all to use with some key features for the semantic web. This post is not to go over or compares features with other similar distributions. Instead this is more about how to get the parent feed title into the template for a node created from a feed-item with the <a href="http://drupal.org/project/feedapi" target="_blank">feedapi module</a>.</p>
<p><span id="more-853"></span></p>
<p><a href="http://blog.tech4him.com/wp-content/uploads/drupal_by_line_parent_feed.png"><img class="alignright size-medium wp-image-854" title="drupal_by_line_parent_feed" src="http://blog.tech4him.com/wp-content/uploads/drupal_by_line_parent_feed-300x101.png" alt="drupal_by_line_parent_feed" width="300" height="101" /></a>Let&#8217;s jump right in. The scenario is that we have a content type of article. The node-article.tpl.php displays the Drupal node author as part of the by line of the article. In our case, we wanted to change this.</p>
<p>Instead, we will have articles created by staff, as well as articles automatically generated from RSS feeds. It is important for us to honor our partners by not showing the article as being authored by us, but instead to change the authored by line to give credit to the originating feed source where appropriate.</p>

<p>Enough talk, let&#8217;s see details.</p>
<p>First, we need to make the parent feed&#8217;s title and link available as a variable for the templates. We did this in Drupal 6 by adding to the existing template.php file. Using the <a href="http://drupal.org/node/223430" target="_blank"><em>phptemplate_preprocess_node</em></a> hook, we can add variables that can be accessed in node templates. (Note: If you are following along in an OpenPublish distribution, this function does not exist in the standard template.php file. You will need to add it.)</p>
<p>Keep in mind that when you use feedapi/feedapi node module to turn a feed item into a node, the <em>$node</em> object does not have all the details about the parent feed that generated the feed-item. It does however contain the <em>nid</em> (node id) of the feed that generated it. Soooo&#8230; in our custom code, we need to get this parent feed nid, load the feed title and url and then stuff the link into a variable to use in our node template.</p>
<p>Here is the function as added to the template.php:</p>
<pre>/**
* Override or insert PHPTemplate variables into the node templates.
*/
function phptemplate_preprocess_node(&amp;$vars) {</pre>
<pre>  // 20091029 Added for Parent Feed Title Link
 if ($vars['node']-&gt;feedapi_node-&gt;feed_nids) {
    $parent_feed_node_id = array_values($vars['node']-&gt;feedapi_node-&gt;feed_nids);
    $parent_feed_node = node_load($parent_feed_node_id[0]);
    $vars['parent_feed_link'] = l($parent_feed_node-&gt;title, $parent_feed_node-&gt;feed-&gt;url);
  }</pre>
<pre>}</pre>
<p>Just a note that the array index of <em>feed_nids</em> is not zero based but instead, the array index is the same number as the <em>nid</em>. That makes doing the typical <em>$vars['node']-&gt;feedapi_node-&gt;feed_nids[0]</em> impossible. That is where the php <em>array_values()</em> function comes to the rescue. It takes all the array values from <em>feed_nids</em> and created a zero base indexed array.</p>
<p>Now, we have a variable called <em>$parent_feed_link</em> that is available in our template files. So, our next step is to use it. Since the content type we want to impact is the article type, we are going to modify our node-article.tpl.php. Below is the portion of the file that outputs the article by line:</p>
<pre>&lt;div&gt;Article |
&lt;?php print date('m.d.y', $node-&gt;created); ?&gt;
 | By  
&lt;?php  
 $author = user_load(array('uid' =&gt; $node-&gt;uid));
 if ($parent_feed_link) {
   print $parent_feed_link;
 }
 else {
   print l($author-&gt;profile_full_name, 'user/'.$node-&gt;uid);  
 }
?&gt;    
&lt;/div&gt;</pre>
<p>As you can see above, we now test to see if the <em>$parent_feed_link</em> actually has a value. If so, we want to output that link. Otherwise, the article was not created from a feed-item and we want to show the actual author of the node.</p>
<p>I know this is simple for many of you, however it took me a little while to figure out where in Drupal 6 to generate these custom variables. In Drupal 5, you may have typically done this in the <em>_phptemplate_variables</em> hook in your template.php.</p>
<h4>Well, did we do it wrong? Do you know a better way? Let us know with a comment below.</h4>
<p>Blessings.</p>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=853&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/10/parent-feed-title-in-feedapi-item-node/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tattler 1.0 RC 1-155 Installation Problem Workaround</title>
		<link>http://blog.tech4him.com/2009/10/tattler-1-0-rc-1-155-installation-problem-workaround/</link>
		<comments>http://blog.tech4him.com/2009/10/tattler-1-0-rc-1-155-installation-problem-workaround/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 18:22:07 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[installation profile]]></category>
		<category><![CDATA[semantic web]]></category>
		<category><![CDATA[tattler]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=811</guid>
		<description><![CDATA[Are you a tattler? No, not the kind mom told you not to be, but rather the Tattler application from Phase2 Technology.

&#8220;Tattler (app) is an open source topic monitoring tool for today&#8217;s Web. Tattler finds and aggregates content from the Web on the topics you want. Using semantic Web technologies, Tattler mines news, websites, blogs, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.tech4him.com/wp-content/uploads/tattler_logo.png"><img class="size-full wp-image-814 alignright" title="tattler_logo" src="http://blog.tech4him.com/wp-content/uploads/tattler_logo.png" alt="tattler_logo" width="245" height="70" /></a>Are you a tattler? No, not the kind mom told you not to be, but rather the Tattler application from <a href="http://phase2technology.com/">Phase2 Technology.</a></p>
<p><span id="more-811"></span></p>
<blockquote><p>&#8220;Tattler (app) is an open source topic monitoring tool for today&#8217;s Web. Tattler finds and aggregates content from the Web on the topics you want. Using semantic Web technologies, Tattler mines news, websites, blogs, multimedia sites, and other social media like Twitter, to find mentions of the issues most relevant to a journalist, researcher, advocate or communications professional.</p>
<div>
<p>Built and distributed on open source <a href="http://drupal.org/">Drupal</a>, Tattler&#8217;s allows a user to easily filter, organize and share content gathered from the Web.&#8221;</div>
</blockquote>

<p>This Drupal installation profile was something I have been waiting to get my hands on for the last few weeks. When it finally was made available, I went to install it and immediately had a major problem with the installation.</p>
<p><a href="http://drupal.org/node/603728" target="_blank">The error</a> was during the profile installation where the content types for the <a href="http://tattlerapp.com/download">buzzmonitor module</a> are being created. Following this issue in the Drupal issue queue for Tattler, I make several passes and have come up with a work around that allows me to get Tattler up and running.</p>
<p>For those who are interested, our system that we are running Tattler on has the follow versions of O/S, MySQL and PHP:</p>
<ul>
<li>O/S Ubuntu 8.04 LTS</li>
<li>MySQL database	5.0.51a</li>
<li>PHP	5.2.11-0.dotdeb.1</li>
</ul>
<p>Now here are the steps I am taking with the current version of Tattler running and working around this particular &#8220;sources&#8221; content type error.</p>
<ol>
<li>Download and extract Tattler <a href="http://tattlerapp.com/sites/default/files/releases/tattler-1.0RC1-155.tar.gz">tattler-1.0RC1-155.tar.gz </a>(Don&#8217;t run the installer yet!)</li>
<li><a href="http://tattlerapp.com/download">Download Buzzmonitor</a> module version <a href="http://drupal.org/node/499206">6.x-1.0-beta1</a>. (IMPORTANT: Version 1, NOT 2)</li>
<li>Extract Buzzmonitor module version 1 into the /sites/all/modules/buzzmonitor directory of the Tattler distribution.</li>
<li>Now, run the Tattler installation.</li>
<li>Once the Tattler installation completes download the Buzzmonitor <a href="http://drupal.org/node/603578">6.x-2.0-beta1</a> (IMPORTANT: Version 2, NOT 1)</li>
<li>Extract this to your Tattler installation and run the update.php script.</li>
</ol>
<p>Doing this has worked around the problem but has not fully identified the source of the problem. It appears that not everyone is having this problem so remediation is a bit slow while the maintainers await more information. Hopefully this points them in a good direction.</p>
<p>BTW, now that I have Tattler up and running, I am REALLY excited. Less than 24 hours of running it and I still feel like a kid in a candy store. The &#8220;application&#8221; is really neat, but I also can&#8217;t wait to get in and see how they &#8220;glued&#8221; everything together within Drupal.</p>
<p>Blessings</p>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=811&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/10/tattler-1-0-rc-1-155-installation-problem-workaround/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Drupal can Fly&#8230;.on a Linode</title>
		<link>http://blog.tech4him.com/2009/08/drupal-can-fly-on-a-linode/</link>
		<comments>http://blog.tech4him.com/2009/08/drupal-can-fly-on-a-linode/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 01:52:37 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[linode]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=694</guid>
		<description><![CDATA[Yup, I learned this week just how well Drupal can fly. Well, maybe not measured in feet above the earth but certainly in terms of response time. Come take a look at a new setup were are testing out.

This week we got fed up with such terribly sporadic performance on a MediaTemple grid server account. [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-702" href="http://blog.tech4him.com/2009/08/drupal-can-fly-on-a-linode/linodecom/"><img class="alignleft size-full wp-image-702" style="margin: 8px;" title="linodecom" src="http://blog.tech4him.com/wp-content/uploads/linodecom.png" alt="linodecom" width="295" height="73" /></a>Yup, I learned this week just how well Drupal can fly. Well, maybe not measured in feet above the earth but certainly in terms of response time. Come take a look at a new setup were are testing out.</p>
<p><span id="more-694"></span></p>
<p>This week we got fed up with such terribly sporadic performance on a <a href="http://www.mediatemple.net/webhosting/gs/" target="_blank">MediaTemple grid server account</a>. After many months of watching performance go from acceptable to abysmal, we finally said &#8220;enough&#8221; with a few sites that were running on this account.</p>
<p>We had just finished doing a major migration of another few of sites to a new <a href="http://www.mediatemple.net/webhosting/dv/pricing.php" target="_blank">MediaTemple Rage dedicated virtual server</a>. The DV&#8217;s at MediaTemple are fantastic. After a day of tuning and tweaking, those sites are humming. But, I think this is what really caused the decision to leave the grid server account for some other sites. Grid server performance was terrrible if you site was not a significantly active site.</p>
<p>After a bit of digging, I decide to try my hand at the <a href="http://www.linode.com/" target="_blank">Linode.com VPS</a> route. Linode.com has long been praised in Drupal circles for their value/performance proposition. Essentially a Linode is a linux virtual server in a Xen environment. Now, please note that this is not for the faint of heart. These are raw server distributions. No web server, mysql, php, control panel pre-installed. You are building your linux server from scratch. Be fore-warned.</p>
<p>It&#8217;s been many moons since I did Unix admin work, let alone Linux. I&#8217;ve been spoiled by Plesk and cPanel with most hosts. So this was certainly a challenge. Linode provides some very basic tutorials for getting your LAMP server setup in your choice of linux distributions. Again, these tutorials are very basic and will not suffice for long term hosting and certainly don&#8217;t secure your server.</p>
<p><a rel="attachment wp-att-710" href="http://blog.tech4him.com/2009/08/drupal-can-fly-on-a-linode/linodedashboard/"><img class="aligncenter size-medium wp-image-710" title="linodedashboard" src="http://blog.tech4him.com/wp-content/uploads/linodedashboard-300x108.png" alt="linodedashboard" width="300" height="108" /></a></p>
<p>One nice thing about Linode.com is a very active community in both their forums and IRC (#linode). I popped into irc and asked a few basic questions. I got some decent help right away, along with the usual, &#8220;stupid noobie&#8221; style remarks. Oh well, ignore the chaff.</p>
<p>Upon signing up for my Linode 540 I had a running server in about 34 minutes. Of course, I learned a few things, trashed it and made a new server. Man, my command line Apache2 skills have vastly improved in the last 24 hours. <img src='http://blog.tech4him.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Luckily I could just &#8220;rsync&#8221; all the files for a site from the old grid server, directly to my new linode super fast. Mysql db backup and then resotred to the linode server. Then I edited my /windows/system32/drives/etc/host file to point www.myexample.com to the new linode IP. This let me test the site on the linode server without changing DNS for the time being. (Heck, you don&#8217;t want your sites down, right?)</p>

<p>I typed the url into my browser and in less than 1 second the page was rendering. Wow! Now compare that to the 15 second lag time on the grid server for a first time hit. Incredible. Of course, I had to run through lots of site pages just to keep seeing that great response time.</p>
<p>Now for my test installation I went with Ubuntu 8.04 LTS OS image. Then, <a title="Aegir server preparation" href="http://groups.drupal.org/node/25482" target="_blank">this great Aegir prep article</a> on <a title="Drupal.org" href="http://drupal.org" target="_blank">Drupal.org</a> was used as a basis for the install. The only difference was that that instead of manually installing Apache2 and Mysql I installed the lamp-server^ package which does this and more for you. (Don&#8217;t forget the ^ carrot as part of the package name.)</p>
<p><code>sudo apt-get install lamp-server^</code></p>
<p>I also found that a particular plugin for Wordpress needed curl instead of wget. So a quick install of php5-curl did the trick.</p>
<p><code> sudo apt-get install php5-curl</code></p>
<p>For those that don&#8217;t want to deal with command line might want to look at the <a href="http://www.virtualmin.com/download" target="_blank">VirtualMin GPL</a> product which provides a web based interface to manage your hosting sever. The automatic install is a breeze but you&#8217;ll need to do some reading to understand how to create your first virtual server and such. For us, we stuck to the command line.</p>
<p>One thing that I guess I didn&#8217;t get right away was that one linode package equals a single linux server. The reason for this is that I&#8217;m used to VMware environments where it is nothing to bring up a new VM on any one host. For some reason my brain was thinking of the linode as the host, not the guest. Oh well. My bad for adding a second ip address to my account, create new disk images and then realize, &#8220;How do I boot this second system?&#8221;. Doh! You can&#8217;t.</p>
<p>Of course, it is easy enough order another linode and move disk images between linodes. Also, Linode bills per month (or annually) but you get credit for days not used. So&#8230;you can add a linode to create a new &#8220;hosting server&#8221;, set it up the way you want it, migrate everything from your current linode and then delete the old linode. Doing this, will credit you for the unused days in the billing cycle for the old linode. Essentially, you pay for each days use which is great for minimal cost + flexibility.</p>
<blockquote><p><em>On average, a Linode 360 host has 40 Linodes on it. A Linode 540 host has on average 30.  Linode 720 host: 20 Linodes; Linode 1080 host: 15; Linode 1440 host: 10; Linode 2880: 5.</em></p></blockquote>
<p>Another exciting item is the announced Linode API. This new api is clean and provides 30+ methods for managing Linode accounts. I am interested at looking into this more and could easily see someone building a module for Aegir to provision more Linodes as needed for new Drupal sites, etc&#8230; This has got to have quite a big potential for folks wanting to automate Drupal hosting but want to stay away from the Plesk and cPanel type offerings.</p>
<p>As for flying, on the MediaTemple (gs) account, it would average between 2-10 seconds (2000+ ms) for TTFB for a lightly used site. Now the same site is pulling 400-800 ms TTFB. Now that&#8217;s a difference and in my opinion worth the extra administration. Even our MediaTemple (DV) rage is pulling TTFB of around 600-800 ms.</p>
<pre>Linode 540              $39.95/mo     400-800 ms TTFB
MediaTemple (gs)        $20.00/mo     &gt; 2000 ms TTFB
MediaTemple (dv) Rage   $100.00/mo    600-800 ms TTFB</pre>
<p style="text-align: center;"><a rel="attachment wp-att-705" href="http://blog.tech4him.com/2009/08/drupal-can-fly-on-a-linode/loadtime/"><img class="size-full wp-image-705 aligncenter" style="margin: 8px;" title="loadtime" src="http://blog.tech4him.com/wp-content/uploads/loadtime.png" alt="loadtime" width="436" height="172" /></a></p>
<p style="text-align: center;"><a rel="attachment wp-att-705" href="http://blog.tech4him.com/2009/08/drupal-can-fly-on-a-linode/loadtime/"></a>All in all, the linode service has been great, performance superb and freedom impressive. Only time will tell how well this will stay this way, but judging by the many others praising Linodes, the ride should be sweet.</p>
<p>Linode Drupal references:</p>
<ul>
<li><a href="http://drupal.org/node/194971" target="_blank">http://drupal.org/node/194971</a></li>
<li><a href="http://drupal.org/node/547910" target="_blank">http://drupal.org/node/547910</a></li>
<li><a href="http://www.rundrupal.com/linode-review" target="_blank">http://www.rundrupal.com/linode-review</a></li>
<li><a href="http://www.linodereview.com/linode-drupal" target="_blank">http://www.linodereview.com/linode-drupal</a></li>
<li><a href="http://hostingfu.com/article/linode-xen-vps-review" target="_blank">http://hostingfu.com/article/linode-xen-vps-review</a></li>
<li><a href="http://www.jeffbeeman.com/node/23" target="_blank">http://www.jeffbeeman.com/node/23</a></li>
</ul>
<p>Recent write-up</p>
<ul>
<li>http://www.ddj.com/hpc-high-performance-computing/219401166</li>
</ul>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=694&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/08/drupal-can-fly-on-a-linode/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Creating a Related Pages Block with Views 2 and Drupal 6</title>
		<link>http://blog.tech4him.com/2009/08/creating-a-related-pages-block-with-views-2-and-drupal-6/</link>
		<comments>http://blog.tech4him.com/2009/08/creating-a-related-pages-block-with-views-2-and-drupal-6/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 20:02:53 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[related]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=646</guid>
		<description><![CDATA[I was working on a Drupal site and decided that a &#8220;related content&#8221; block was needed. Since this site has already been up and running for some time, manually reference other nodes would be painstaking. What I needed was the ability to show related node based upon the content of the node.
At first I began [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-649" href="http://blog.tech4him.com/2009/08/creating-a-related-pages-block-with-views-2-and-drupal-6/988453859_0132e42482_m/"><img class="alignleft size-full wp-image-649" style="margin: 8px;" title="Yay! Related Terms with Views 2 and Drupal 6. Hooray!" src="http://blog.tech4him.com/wp-content/uploads/988453859_0132e42482_m.jpg" alt="Yay! Related Terms with Views 2 and Drupal 6. Hooray!" width="240" height="160" /></a>I was working on a Drupal site and decided that a &#8220;related content&#8221; block was needed. Since this site has already been up and running for some time, manually reference other nodes would be painstaking. What I needed was the ability to show related node based upon the content of the node.<span id="more-646"></span></p>
<p>At first I began thinking about something using the Drupal search collections to perform a search and then show node results. This might be nice on a more commercial and large content site. In this case, this is a niche site and they are already doing a good job of tagging content with terms.</p>
<p>Thanks to a quick Google search, I found an <a href="http://drupaleasy.com/blogs/ryanprice/2008/06/using-views-2-drupal-6-create-a-related-pages-block">excellent article</a> over at <a href="http://drupaleasy.com">DrupalEasy</a> for creating a related nodes by term block using Views 2. (Yay! one of my favorite modules.)</p>
<p>For those who don&#8217;t want to type the argument code, here it is. This loads the current node object and create a string of terms. This is used to find other nodes with the same terms.</p>
<p><code><br />
$node = node_load(arg(1));<br />
if($node &amp;&amp; $node-&gt;taxonomy) {<br />
foreach($node-&gt;taxonomy as $term) { $terms[] = $term-&gt;tid; }<br />
return implode('+', $terms);<br />
} else { return; }<br />
</code></p>

<p>Now in my case, I also did not want the currently viewed node to show up in the list. (That would be weird.) So, add another argument for Node: nid. Set the option to provide a default argument if argument is not present. Then set the default argument type to Node ID from URL and finally check the box to exclude the argument.</p>
<p>That check box can be misread. It is not saying that it is going to exclude the argument such that the argument has no bearing on the query. Instead it means that it will use the argument to exclude results with this argument value. (Just a little something with the words used.)</p>
<p>Really, the only other changes I made was to add the node type to the fields displayed and I wanted to be sure we didn&#8217;t always see the same results for each node. So, I added a &#8220;Global: Random&#8221; sort criteria to the view. This way I get a random set of nodes to display as related content. Keeps things a little more fresh that way.</p>
<p>13 minutes later, my block is showing related content by term.</p>
<p>Now, if you only want to consider a particular vocabulary, the PHP argument code is different.</p>
<p><code><br />
$node = node_load(arg(1));<br />
if ($node) {<br />
$terms = taxonomy_node_get_terms_by_vocabulary($node, 1);<br />
return $terms[1]-&gt;tid;<br />
}<br />
return false;<br />
</code></p>
<p>Blessings.</p>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=646&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/08/creating-a-related-pages-block-with-views-2-and-drupal-6/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Developer Blog Â» Check if external image exists</title>
		<link>http://blog.tech4him.com/2009/07/developer-blog-%c2%bb-check-if-external-image-exists/</link>
		<comments>http://blog.tech4him.com/2009/07/developer-blog-%c2%bb-check-if-external-image-exists/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 18:51:47 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Links/Resources]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=628</guid>
		<description><![CDATA[
Photo by bas:ilSo, we have a website that displays images from an external source based upon a URL. For various reasons, sometimes the external source does not have a valid image for the request. In order not to show a broken image to the use, we need to validate that the image is valid.
Thanks to [...]]]></description>
			<content:encoded><![CDATA[<p><span class="wp-decoratr-image"><img class="alignright" style="margin: 5px;" src="http://farm2.static.flickr.com/1260/613318387_b63618f419_m.jpg" alt="Maria Birnbaum" width="240" height="155" /><br />
<a rel="external nofollow" href="http://www.flickr.com/photos/98224643@N00/613318387">Photo by bas:il</a></span>So, we have a website that displays images from an external source based upon a URL. For various reasons, sometimes the external source does not have a valid image for the request. In order not to show a broken image to the use, we need to validate that the image is valid.</p>
<p>Thanks to Google (NOT Bing. haha) we found a <a href="http://www.zann-marketing.com/developer/20051128/check-if-external-image-exists.html">great little approach</a> that was quickly placed into a Drupal template file.</p>
<pre><code>
if (@GetImageSize("http://www.testdomain.com/testimage.gif")) {
  echo "image exists";
} else {
  echo "image does not exist";
}
</code></pre>
<p>And according to the site, if you do not have GD installed you can try this code:</p>
<pre><code>if (@fclose(@fopen("http://www.testdomain.com/testimage.gif", "r"))) {
  echo "image exists";
} else {
  echo "image does not exist";
}
</code></pre>
<p>We took the concept of the GetImageSize function to handily render web thumb shots from an external service, only if a valid image exists. This way we don&#8217;t show broken images to those Internet Explorer users.</p>
<p>via <a href="http://www.zann-marketing.com/developer/20051128/check-if-external-image-exists.html">Developer Blog Â» Check if external image exists</a>.</p>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=628&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/07/developer-blog-%c2%bb-check-if-external-image-exists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Architect/Developer Position for Bible Translation Organization</title>
		<link>http://blog.tech4him.com/2009/05/web-architectdeveloper-position-for-bible-translation-organization/</link>
		<comments>http://blog.tech4him.com/2009/05/web-architectdeveloper-position-for-bible-translation-organization/#comments</comments>
		<pubDate>Wed, 27 May 2009 02:30:15 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[position]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=610</guid>
		<description><![CDATA[I didn&#8217;t write the job post below but it spells out most of what is being looked for. Location is in Arlington, Texas (Dallas, Fort Worth area). No contract services need apply. This is for a full time staff position only. Drupal is the primary framework for two externally facing sites. Looking for more internal [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-514" href="http://blog.tech4him.com/2009/04/christian-non-profit-seeks-dbadeveloperreport-writer/logo/"><img class="alignright size-full wp-image-514" title="TheSeedCompany.org Logo" src="http://blog.tech4him.com/wp-content/uploads/logo.gif" alt="TheSeedCompany.org Logo" width="238" height="74" /></a>I didn&#8217;t write the job post below but it spells out most of what is being looked for. Location is in Arlington, Texas (Dallas, Fort Worth area). No contract services need apply. This is for a full time staff position only. Drupal is the primary framework for two externally facing sites. <span id="more-610"></span>Looking for more internal business application development as well. Drupal, php, ajax, mysql, UX design, .Net Framework and other web technologies appear to be highly desirable.</p>
<p>PLEASE NOTE: Inquiries are via email to Dave Mutchler (<a href="mailto:dave_mutchler@tsco.org">dave_mutchler@tsco.org</a>)</p>
<p>Responsibilities: Manage existing websites: <a href="http://www.theseedcompany.org" target="_blank">www.theseedcompany.org</a> ; <a href="http://www.oneverse.org">www.oneverse.org</a>. Collaborate with other team members to revise and extend capability of the website and email communications in ways that strengthen partnership between investors and translation projects. Deliver and maintain content management system to improve quality and scalability of web, print and email communications. Develop and execute strategies for web-based tools that improve staff productivity.Â  Degree in Computer Science or equivalent experience. MCSD certification recommended. Experience with web development technologies. Competencies in MS Office applications and/or Open Office.</p>
<p>1. Work experience in e-communications design and programming.<br />
2. Experience integrating content management/workflow.<br />
3. Knowledgeable about back-end database programming for a database driven website.<br />
4. Ability to plan and manage project delivery.<br />
5. Knowledge of commonly used concepts, practices, and procedures in information systems.<br />
6. Good communicator in person, on phone, and by email.<br />
7. Responsive to organizational needs.</p>
<p>Minimum one year experience developing web applications. Experience with php, ajax, MySQL, and/or Drupal is a plus.</p>
<p>Contact Info: Email resume and cover letter to:Â  <a href="mailto:dave_mutchler@tsco.org">dave_mutchler@tsco.org</a></p>
<p>Comments: The Seed Company is an affiliate of Wycliffe Bible Translators and seeks to make employment decisions in accordance with applicable federal and state employment discrimination laws and regulations. As a religious organization, The Seed Company is entitled to make employment decisions on the basis of religious beliefs and practices of the applicant or employee. All positions require a personal commitment to Christ, evidenced by personal testimony and identification with a local church.</p>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=610&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/05/web-architectdeveloper-position-for-bible-translation-organization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
