<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Bgthom&#039;s Blog</title>
	<atom:link href="http://tomsellecksmoustache.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://tomsellecksmoustache.wordpress.com</link>
	<description>Higher education web development, in and out of Drupal</description>
	<lastBuildDate>Mon, 29 Nov 2010 06:18:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='tomsellecksmoustache.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Bgthom&#039;s Blog</title>
		<link>http://tomsellecksmoustache.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://tomsellecksmoustache.wordpress.com/osd.xml" title="Bgthom&#039;s Blog" />
	<atom:link rel='hub' href='http://tomsellecksmoustache.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Managing migration from old to new domain in WordPress</title>
		<link>http://tomsellecksmoustache.wordpress.com/2010/11/29/managing-migration-from-old-to-new-domain-in-wordpress/</link>
		<comments>http://tomsellecksmoustache.wordpress.com/2010/11/29/managing-migration-from-old-to-new-domain-in-wordpress/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 02:42:16 +0000</pubDate>
		<dc:creator>bgthom</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tomsellecksmoustache.wordpress.com/?p=106</guid>
		<description><![CDATA[I am sure some website redevelopment projects begin with well-structured content and SEO-friendly links that you are merely adding your coding ninjitsu to. That is for developers who have led a virtuous life. In the real world, redevelopment usually means that the names and locations of URLs change significantly. In this world, you are mapping [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tomsellecksmoustache.wordpress.com&amp;blog=7424736&amp;post=106&amp;subd=tomsellecksmoustache&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am sure some website redevelopment projects begin with well-structured content and SEO-friendly links that you are merely adding your coding ninjitsu to.</p>
<p>That is for developers who have led a virtuous life.</p>
<p>In the real world, redevelopment usually means that the names and locations of URLs change significantly. In this world, you are mapping 500 pages of .aspx pages, numbered like &#8220;content/30593&#8243; (if you are lucky) to your new WP/Drupal environment.</p>
<p>Still in this ever-so-real world, you are also redirecting 3 other sites that your client wants to collapse into a single site. The goals is this process are:</p>
<ul>
<li>to make the user experience as seamless as possible so that they are directed from old, cached Google links, links on existing sites or browser bookmarks to an appropriate page, without hitting 404 pages, which are frankly a buzz-kill.</li>
<li>to let search engines know where to find the new pages you&#8217;ve created, and avoid losing link juice built up over the months/years.</li>
</ul>
<p>This process is very similar for WordPress and Drupal. Today, I&#8217;m going to talk about my experience doing this for a WordPress client.</p>
<p>The assumptions are:</p>
<ul>
<li>You have an installed WordPress instance with cPanel access.</li>
<li>That your site is developed and ready to go live.</li>
<li>That you are changing hosts. If not, you can ignore step 1 below.</li>
</ul>
<p>The steps I took are:</p>
<ol>
<li>Update the nameservers for your old domains to point to your new host</li>
<li>Add the new domains as parked domains in cPanel</li>
<li>This may automatically add some rewrite rules to your .htaccess. In my case, it added it to the wrong place. The rules were put at the end of my .htaccess, when they should be near the beginning. Rewrite rules are executed in order &#8211; if a line above it is executed first, the line you&#8217;ve written may not even been triggered. That&#8217;s why I changed the order.This is what my modified .htaccess looks like:
<pre># BEGIN WordPress
&lt;IfModule mod_rewrite.c&gt;
Options +FollowSymLinks
RewriteEngine On
RewriteBase /

# Promoted parked domain redirects to top -
# they were added to bottom of redirect rules
# by default, so they weren't being triggered
RewriteCond %{HTTP_HOST} ^oldsite.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.oldsite.com$
RewriteRule (.*) http://newsite.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^oldsite2.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.oldsite2.com$
RewriteRule (.*) http://newsite.com/$1 [R=301,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
&lt;/IfModule&gt;
# END WordPress</pre>
</li>
<li>Go to your homepage and <strong>make sure your site actually still works</strong>. If it is not loading or is returning errors, you probably have an error in your .htaccess.</li>
<li>Install the <a title="Redirection plugin" href="http://wordpress.org/extend/plugins/redirection/" target="_blank">&#8220;Redirection&#8221; plugin</a>, which allows you to manage the redirections from the WP interface. The regular expression support will be very helpful for URL patterns. Very cool plugin.</li>
<li>Add all your redirections in the Redirection interface.</li>
<li>Go to bed (nameserver propagation can take 24-72 hours). Wake up and test your redirects. If they work, yee-haw. If not, panic and start throwing things (or, failing that, read the steps above again and retest).</li>
</ol>
<p>That should be it. You can also monitor your site using <a title="Google Webmaster Tools" href="https://www.google.com/webmasters/tools/" target="_blank">Google Webmaster Tools</a> to check the 404 errors that users are getting. There&#8217;s probably a plugin for that too (<a title="404 Notifier Plugin" href="http://wordpress.org/extend/plugins/404-notifier/" target="_blank">404 notifier?</a>), but you should be checking Webmaster Tools anyway to check for any number of site performance issues.</p>
<p>BTW, I am definitely a bit out of my comfort zone writing WP tutorials, as I am a full-time Drupal developer and WP is just something I&#8217;m learning for my own interest and to keep up to date. This is less a tutorial and more a description of an approach that worked for me.</p>
<p>Please don&#8217;t hesitate to correct me or suggest any improvements on the above.</p>
<p>Final caveat is that rewrite rules can seriously mess up your site if not done properly. Please test any .htaccess changes on a non-production site before going live with them. And make a backup of your current .htaccess file before making changes.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tomsellecksmoustache.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tomsellecksmoustache.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tomsellecksmoustache.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tomsellecksmoustache.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tomsellecksmoustache.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tomsellecksmoustache.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tomsellecksmoustache.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tomsellecksmoustache.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tomsellecksmoustache.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tomsellecksmoustache.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tomsellecksmoustache.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tomsellecksmoustache.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tomsellecksmoustache.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tomsellecksmoustache.wordpress.com/106/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tomsellecksmoustache.wordpress.com&amp;blog=7424736&amp;post=106&amp;subd=tomsellecksmoustache&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tomsellecksmoustache.wordpress.com/2010/11/29/managing-migration-from-old-to-new-domain-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88e2ae63dbec7b322af6eab89e11bdc4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">bgthom</media:title>
		</media:content>
	</item>
		<item>
		<title>Translating Drupal CCK Forms</title>
		<link>http://tomsellecksmoustache.wordpress.com/2010/02/07/translating-drupal-cck-forms/</link>
		<comments>http://tomsellecksmoustache.wordpress.com/2010/02/07/translating-drupal-cck-forms/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 08:32:10 +0000</pubDate>
		<dc:creator>bgthom</dc:creator>
				<category><![CDATA[drupal]]></category>

		<guid isPermaLink="false">http://tomsellecksmoustache.wordpress.com/?p=102</guid>
		<description><![CDATA[Up until recently, translating Drupal CCK forms was difficult and unsatisfying. Until recently, when CCK added support for Internationalization with the i18n + cck submodule, which has been committed to the CCK module. Sounds fancy, right? What is i18n? It may refer to the G-18 group of nations. Well, probably not. I have no idea. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tomsellecksmoustache.wordpress.com&amp;blog=7424736&amp;post=102&amp;subd=tomsellecksmoustache&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Up until recently, translating Drupal CCK forms was difficult and unsatisfying. Until recently, when CCK added support for Internationalization with the <a href="http://drupal.org/node/531662">i18n + cck submodule,</a> which has been committed to the CCK module. Sounds fancy, right? What is i18n? It may refer to the G-18 group of nations. Well, probably not. I have no idea.</p>
<p>Drupal&#8217;s documentation on translation makes it sound like this is someting best left to experts with specialized equipment. When in reality, with the changes in CCK, it is actually fairly straightfoward.</p>
<p>Keep in mind that I am not an expert in translation and have only found a method that works for <em>me. </em>I can&#8217;t say whether this is the best method, and I&#8217;m sure it could be improved on, but the documentation on Drupal translation for non-experts was sorely lacking and hopefully this will at least help fill that gap.</p>
<ol>
<li>Install the most recent version of CCK &#8211; check to be sure it includes the new Internationalization support.</li>
<li>Download and enable the Multilanguage module, including CCK translation and string translation submodule (you will also have to enable Localization and Content translation)</li>
<li>Add the language you want to include on the admin/settings/language page.</li>
<li>Go to Translate Interface at admin/build/translate.</li>
<li>From here you can search and replace individual strings. This is tedious. Instead, click on Export.</li>
<li>Under export translation, choose the language and select either Built in interface or CCK (there&#8217;s a good chance you will need to translate both)</li>
<li>Click export.</li>
</ol>
<p>This exports a file with the extension .po. Open the .po file in a text editor. You will find a long sequence of strings that look like this:</p>
<p>#: field:field_a_allotted_time:option_Stop<br />
msgid &#8220;Stop&#8221;<br />
msgstr &#8220;&#8221;</p>
<p>The msgid is the original text, and the msgstr is the text you want to translate to. Go ahead and add the translations wherever you see words that need translating. So, the string above would become:</p>
<p>#: field:field_a_allotted_time:option_Stop<br />
msgid &#8220;Stop&#8221;<br />
msgstr &#8220;Arrete&#8221;</p>
<p>Replace all the &#8220;msgstr&#8221;s you can find, then save the file.</p>
<p>Go back to Drupal, and now click on &#8220;Import.&#8221; Choose the saved .po file and import it back into the site, using the setting &#8220;Existing strings are kept, only new strings are added.&#8221;</p>
<p>If you go back and look at your site, you may see nothing has changed. If so, go back to the Translate Interface settings and choose &#8220;Refresh.&#8221; Select the text group, then choose &#8220;Update translations&#8221; rather than &#8220;Refresh strings.&#8221; This should update the site with the new translated strings.</p>
<p>Have a look at your site again. Are you happy?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tomsellecksmoustache.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tomsellecksmoustache.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tomsellecksmoustache.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tomsellecksmoustache.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tomsellecksmoustache.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tomsellecksmoustache.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tomsellecksmoustache.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tomsellecksmoustache.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tomsellecksmoustache.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tomsellecksmoustache.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tomsellecksmoustache.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tomsellecksmoustache.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tomsellecksmoustache.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tomsellecksmoustache.wordpress.com/102/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tomsellecksmoustache.wordpress.com&amp;blog=7424736&amp;post=102&amp;subd=tomsellecksmoustache&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tomsellecksmoustache.wordpress.com/2010/02/07/translating-drupal-cck-forms/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88e2ae63dbec7b322af6eab89e11bdc4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">bgthom</media:title>
		</media:content>
	</item>
		<item>
		<title>How to hire amazing developers</title>
		<link>http://tomsellecksmoustache.wordpress.com/2010/01/23/97/</link>
		<comments>http://tomsellecksmoustache.wordpress.com/2010/01/23/97/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 08:17:32 +0000</pubDate>
		<dc:creator>bgthom</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tomsellecksmoustache.wordpress.com/?p=97</guid>
		<description><![CDATA[In this post, I will pull back the curtain and reveal how you &#8211; YES, YOU &#8211; can hire developers who take your hasty scribbles, the minutes from your latest AGM, and the colour scheme you generated in Microsoft Paint! and transform it into a design that causes your hands to go limp in awe. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tomsellecksmoustache.wordpress.com&amp;blog=7424736&amp;post=97&amp;subd=tomsellecksmoustache&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In this post, I will pull back the curtain and reveal how you &#8211; YES, YOU &#8211; can hire developers who take your hasty scribbles, the minutes from your latest AGM, and the colour scheme you generated in Microsoft Paint! and transform it into a design that causes your hands to go limp in awe.</p>
<p>But, not really. Because there is no magic to it. Plus, I&#8217;ve made too many mistakes in hiring developers to get all cocky about it or anything.</p>
<p>Still, I have a good eye for talent and I know what a good developer looks like.</p>
<p>So, what am I looking for?</p>
<p>In short: ability, passion, awareness and restraint.</p>
<p>Ability</p>
<p>A developer needs to have a certain level of skill. Having worked on high-profile or indisputably complex projects, such as creating a 3d rendering software, that requires excellent programming ability in a setting that encourages real-world outcomes, is a major plus.</p>
<p>For me as a Drupal developer, they need to have the following: PHP, jQuery, CSS. Obviously, most developers will meet that minimum bar. So, ask them if you can have a look at some of their code. Get them to show you a module or a custom application they developed. Have a look at it, or if you&#8217;re not a programmer yourself, get someone in your organization who is look over the code. Is it elegant, well-commented? Do you think as you are reading: what a nice solution? Or, wow, I&#8217;ve never thought of doing it that way? Is it shorter than you expected for the functionality? These are good signs. Good code is like a Hemingway short story; not a single character more than what is needed to move the narrative.</p>
<p>Passion</p>
<p>Good coders love what they do. Questions that pop into my head when I&#8217;m looking at developers are:</p>
<ul>
<li>what sites/blogs do you read/contribute to?</li>
<li>what technologies do you think have a future? which ones don&#8217;t?</li>
</ul>
<p>People who aren&#8217;t passionate just read and learn what they need to fill the minimum requirement for the job. Drupal requires PHP, so they have read enough about PHP to do the job in front of them. The coder you want, though, is personally offended by bad code, gets excited when talking about developments in technology.</p>
<p>A good litmus test of a Drupal developer is: what do you think about Drupal 7&#8242;s usability improvements? If they look at you with a blank stare, get nervous. If they look at you, pining for permission to allow their forehead to get all veiny with passion about drag-and-drop form construction, this is a good sign. You want a geek. Geeks are good.</p>
<p>Awareness</p>
<p>Dear god, how many developers have all of the skills we need, but don&#8217;t know how to talk to other non-coding humans. People have a natural, healthy aversion to jargon, because using jargon to non-specialists sends a flamboyant semaphore: I don&#8217;t know how to explain what I&#8217;m doing, and I lack awareness about basic social conventions. When we talk to different audiences, we continually recalibrate our language, our tone. We pay attention to cues and attempt to adjust our message to accommodate them.</p>
<p>Someone who can&#8217;t do that is lacking in the package you are looking for.</p>
<p>Also, people who don&#8217;t listen are deadly, and they suck to work with. Don&#8217;t hire them. Bad things: bluster, bragging, interruption, needless repetition. You know the type. They&#8217;re in the wrong profession. Developers should be patient listeners.</p>
<p>Restraint</p>
<p>Good developers are self-managers, and able to monitor the mood of clients. They know when to push and when to pull back. They pay attention to the room.</p>
<p>Websites are emotional enterprises as much as technical ones. They carry the weight of an organization&#8217;s conception of itself, they represent things people care deeply about. Developers who understand that this is a vulnerable and definitional process for an organization are rare and wonderful beings. Hire them when you can.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tomsellecksmoustache.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tomsellecksmoustache.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tomsellecksmoustache.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tomsellecksmoustache.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tomsellecksmoustache.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tomsellecksmoustache.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tomsellecksmoustache.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tomsellecksmoustache.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tomsellecksmoustache.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tomsellecksmoustache.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tomsellecksmoustache.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tomsellecksmoustache.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tomsellecksmoustache.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tomsellecksmoustache.wordpress.com/97/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tomsellecksmoustache.wordpress.com&amp;blog=7424736&amp;post=97&amp;subd=tomsellecksmoustache&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tomsellecksmoustache.wordpress.com/2010/01/23/97/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88e2ae63dbec7b322af6eab89e11bdc4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">bgthom</media:title>
		</media:content>
	</item>
		<item>
		<title>The Cost of Doing Business</title>
		<link>http://tomsellecksmoustache.wordpress.com/2009/10/07/the-cost-of-doing-business/</link>
		<comments>http://tomsellecksmoustache.wordpress.com/2009/10/07/the-cost-of-doing-business/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 09:04:45 +0000</pubDate>
		<dc:creator>bgthom</dc:creator>
				<category><![CDATA[outsourcing]]></category>
		<category><![CDATA[budgeting]]></category>
		<category><![CDATA[consultants]]></category>
		<category><![CDATA[hiring]]></category>

		<guid isPermaLink="false">http://tomsellecksmoustache.wordpress.com/2009/10/07/the-cost-of-doing-business/</guid>
		<description><![CDATA[What is an acceptable cost for development? Is it really worth it to pay $50,000 and up for a site I could design in three months? Yes, sometimes, it probably is. Assuming the process goes well, $50,000 (and up) buys peace of mind. It&#8217;s assumed that the quality of programming and design will generally be [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tomsellecksmoustache.wordpress.com&amp;blog=7424736&amp;post=92&amp;subd=tomsellecksmoustache&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>What is an acceptable cost for development? Is it really worth it to pay $50,000 and up for a site I could design in three months?</p>
<p>Yes, sometimes, it probably is. Assuming the process goes well, $50,000 (and up) buys peace of mind. It&#8217;s assumed that the quality of programming and design will generally be high. Meetings will be on task and well-organized. People will create semi-realistic timelines.</p>
<p>However, just because someone is paid a lot doesn&#8217;t mean they have some magic formula for quality or excellence. I&#8217;ve found that higher-end consultants can be all over the place: sometimes, overcharging you because they are seemingly too insecure about looking &#8220;professional&#8221; to admit they don&#8217;t know how to do something, or upselling services I don&#8217;t need.</p>
<p>What consultants often don&#8217;t give you is a site that reflects the vibe of your institution of business. Their sites may look slick, but do they really get you?</p>
<p>Consultants also don&#8217;t make smart decisions about outsourcing work. I&#8217;m always thinking about whether to send work to our $20/hour student, or to hire a $50/hour consultant, or just to do it myself. A consultant is still charging you $80-100/hour, whether they are writing code or copying and pasting JavaScript. I prefer to spend several different rates for work that requires different levels of expertise.</p>
<p>Also, the larger a project gets, the less &#8220;real&#8221; your spending seems. It&#8217;s like when you buy a house. You might be looking at a house that&#8217;s $500,000, but then see one that&#8217;s even more perfect for $530,000. You weigh the pros and cons, but you don&#8217;t necessarily consider what a large sum $30,000 really is.</p>
<p>You&#8217;ll agonize over buying a $2000 couch, but make decisions that involve spending an extra $30,000 without breaking a sweat.</p>
<p>Once figures for a service or product start getting around the $30,000 mark, realistic cost-counting becomes more and more difficult. Is it really a big deal to spend another $1,000 for a customized newsletter, when you&#8217;re already spending $45,000 on the whole site? Sums that would normally give you (rational) pause, begin to seem relatively trivial &#8211; they can be rationalized as belonging the larger sum.</p>
<p>For this reason, I prefer to do much of the work in-house. When resources are scant, people treasure them, and make the most of them. Spending a lot doesn&#8217;t necessarily lead to a good, efficient outcome; a lot of times, it leads to cost indulgence.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tomsellecksmoustache.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tomsellecksmoustache.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tomsellecksmoustache.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tomsellecksmoustache.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tomsellecksmoustache.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tomsellecksmoustache.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tomsellecksmoustache.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tomsellecksmoustache.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tomsellecksmoustache.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tomsellecksmoustache.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tomsellecksmoustache.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tomsellecksmoustache.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tomsellecksmoustache.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tomsellecksmoustache.wordpress.com/92/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tomsellecksmoustache.wordpress.com&amp;blog=7424736&amp;post=92&amp;subd=tomsellecksmoustache&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tomsellecksmoustache.wordpress.com/2009/10/07/the-cost-of-doing-business/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88e2ae63dbec7b322af6eab89e11bdc4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">bgthom</media:title>
		</media:content>
	</item>
		<item>
		<title>Don&#8217;t be a techno-snob</title>
		<link>http://tomsellecksmoustache.wordpress.com/2009/09/29/dont-be-a-techno-snob/</link>
		<comments>http://tomsellecksmoustache.wordpress.com/2009/09/29/dont-be-a-techno-snob/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 07:20:49 +0000</pubDate>
		<dc:creator>bgthom</dc:creator>
				<category><![CDATA[technical support]]></category>
		<category><![CDATA[empathy]]></category>
		<category><![CDATA[users]]></category>

		<guid isPermaLink="false">http://tomsellecksmoustache.wordpress.com/?p=82</guid>
		<description><![CDATA[One of the low points in my first marriage was the day my ex-wife convinced me, in firm and steely tone, to replace a light fixture. Not just the bulb, mind you. The whole kit, down to the ominous-looking wires poking about in frightening directions. I got up on a ladder and within two minutes, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tomsellecksmoustache.wordpress.com&amp;blog=7424736&amp;post=82&amp;subd=tomsellecksmoustache&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>One of the low points in my first marriage was the day my ex-wife convinced me, in firm and steely tone, to replace a light fixture. Not just the bulb, mind you. The whole kit, down to the ominous-looking wires poking about in frightening directions.</p>
<p>I got up on a ladder and within two minutes, had successfully electrocuted myself and shorted out the power in the apartment. I also knocked myself off the ladder. It fills me with some trepidation to think of how much current must have been flowing through my flesh to overload a circuit. Perhaps I will experience odd telekinetic powers or alarming mental lapses many years from now.</p>
<p>Anyway, once I had been knocked off the ladder, my ex called down to the manager and had him come up and do the job properly. He was a crusty old Scotsman, whose natural temperament was simmering irritation. I&#8217;ll never forget the way he looked, slowly, with infinite and silent scorn, first at me, and then at the tangle of wires spouting crazily from the ceiling.</p>
<p>It was totally emasculating.</p>
<p>I think about that day whenever I&#8217;m working with a user who is, to put it plainly, not very good with computers. It sucks to feel helpless and clumsy around someone who&#8217;s an expert. At some level, we&#8217;re going to feel threatened or inadequate, and we&#8217;re far more likely to be obedient and accept whatever they tell us we need.</p>
<p>As experts, we should be aware of this power dynamic and resist the urge to participate in it.</p>
<p>That&#8217;s why I try to be humble. Because everyone sucks at something. Remember the things that don&#8217;t come naturally to you when you approach a user, and your approach will likely be the right one.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tomsellecksmoustache.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tomsellecksmoustache.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tomsellecksmoustache.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tomsellecksmoustache.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tomsellecksmoustache.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tomsellecksmoustache.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tomsellecksmoustache.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tomsellecksmoustache.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tomsellecksmoustache.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tomsellecksmoustache.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tomsellecksmoustache.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tomsellecksmoustache.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tomsellecksmoustache.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tomsellecksmoustache.wordpress.com/82/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tomsellecksmoustache.wordpress.com&amp;blog=7424736&amp;post=82&amp;subd=tomsellecksmoustache&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tomsellecksmoustache.wordpress.com/2009/09/29/dont-be-a-techno-snob/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88e2ae63dbec7b322af6eab89e11bdc4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">bgthom</media:title>
		</media:content>
	</item>
		<item>
		<title>Maximum utility: coding with Mr. In-between</title>
		<link>http://tomsellecksmoustache.wordpress.com/2009/09/28/maximum-utility-coding-with-mr-in-between/</link>
		<comments>http://tomsellecksmoustache.wordpress.com/2009/09/28/maximum-utility-coding-with-mr-in-between/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 02:51:37 +0000</pubDate>
		<dc:creator>bgthom</dc:creator>
				<category><![CDATA[project management]]></category>
		<category><![CDATA[general help]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://tomsellecksmoustache.wordpress.com/?p=70</guid>
		<description><![CDATA[A typical web project includes a web designer and a developer (or team of developers), with a  clear division of labour between them. What&#8217;s often missing from that picture is the utility player. The utility player is the type who does the little things right. They repair CSS code. Crop a banner image. Tweak a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tomsellecksmoustache.wordpress.com&amp;blog=7424736&amp;post=70&amp;subd=tomsellecksmoustache&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A typical web project includes a web designer and a developer (or team of developers), with a  clear division of labour between them.</p>
<p>What&#8217;s often missing from that picture is the utility player. The utility player is the type who does the little things right. They repair CSS code. Crop a banner image. Tweak a few lines of PHP. Basically, the many fine tasks that need to happen, but often don&#8217;t because of deadline pressure, forgetfulness or priority. They act as a bridge between coders and designers, content editors and managers.</p>
<p>Doing the little things doesn&#8217;t get you a lot of visible credit. The utility player doesn&#8217;t get applause at the project meeting, but without them, projects frankly just don&#8217;t move as quickly or efficiently. Designers and developers can be immersed in a &#8220;big&#8221; task, and won&#8217;t have time or energy to attend to little things. Yet, on a complex web application, little things make a big difference. By the end of the project, if you don&#8217;t fix them, there will be dozens or hundreds of these &#8220;minor&#8221; issues. A utility player can attend to these details, or add small pieces of useful functionality that otherwise would get dropped.</p>
<p>The second reason utility players are so valuable is that they do the work that you sometimes feel reluctant to ask from designers or developers, either because paying $60-120/hour for an experienced developer to be repairing faulty CSS is painful, or because you don&#8217;t want to insult them with work they may consider boring or undemanding. It&#8217;s just natural to feel shy asking high-priced consultants to do relatively-humble tasks. Yet, a web project arguably consists of more repetitive, menial work than flashy Ajax functionality.</p>
<p>If you don&#8217;t have a utility player right now, they are easy to find via craigslist.</p>
<p>An intern or co-op student in an all-around discipline like Media Studies, or a graduate from a web design diploma program, can make an excellent utility player. As recent graduates, they&#8217;re usually pretty well-versed in modern web technologies, including Flash and video. Many of them have basic to intermediate PHP/JavaScript abilities. And they&#8217;re eager for the work. You&#8217;re not afraid to give them any kind of task, because it&#8217;s all good experience for them. Both sides win.</p>
<p>Of course, they&#8217;re far cheaper than a first-rank developer or designer.</p>
<p>And I all for working on the cheap whenever possible. Having a good all-arounder can save you a bundle over the course of a project.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tomsellecksmoustache.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tomsellecksmoustache.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tomsellecksmoustache.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tomsellecksmoustache.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tomsellecksmoustache.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tomsellecksmoustache.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tomsellecksmoustache.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tomsellecksmoustache.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tomsellecksmoustache.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tomsellecksmoustache.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tomsellecksmoustache.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tomsellecksmoustache.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tomsellecksmoustache.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tomsellecksmoustache.wordpress.com/70/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tomsellecksmoustache.wordpress.com&amp;blog=7424736&amp;post=70&amp;subd=tomsellecksmoustache&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tomsellecksmoustache.wordpress.com/2009/09/28/maximum-utility-coding-with-mr-in-between/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88e2ae63dbec7b322af6eab89e11bdc4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">bgthom</media:title>
		</media:content>
	</item>
		<item>
		<title>Vancouver library &#8211; amazing resource</title>
		<link>http://tomsellecksmoustache.wordpress.com/2009/08/09/vancouver-library-amazing-resource/</link>
		<comments>http://tomsellecksmoustache.wordpress.com/2009/08/09/vancouver-library-amazing-resource/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 10:17:34 +0000</pubDate>
		<dc:creator>bgthom</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[ebooks]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[vancouver]]></category>

		<guid isPermaLink="false">http://tomsellecksmoustache.wordpress.com/?p=62</guid>
		<description><![CDATA[(sorry this is a region-centric post &#8211; alas pretty much aimed at Vancouver developers) Most developers are self-starters &#8211; we learn complicated subjects without formal training. But, where to start? I can learn a new technology through online tutorials and forums, but I&#8217;m more apt to actually see the forest and the trees with a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tomsellecksmoustache.wordpress.com&amp;blog=7424736&amp;post=62&amp;subd=tomsellecksmoustache&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>(sorry this is a region-centric post &#8211; alas pretty much aimed at Vancouver developers)</p>
<p>Most developers are self-starters &#8211; we learn complicated subjects without formal training. But, where to start?</p>
<p>I can learn a new technology through online tutorials and forums, but I&#8217;m more apt to actually see the forest and the trees with a good book. For example, before I found &#8220;Flash 5 Game Development,&#8221; I could use Flash. After reading it, I <em>understood</em> Flash. Yet finding computer books in Vancouver has been a hit-and-miss affair since Half-Price Computer Books&#8217; physical storefront closed several years ago.</p>
<p>The choices came down to two major venues: Chapter&#8217;s, which is strong in some areas (CSS, PHP/MySQL), but weak in others (Drupal!). Or the Vancouver library, where typically, the most current, useful books are checked out and have months-long waiting lists. There&#8217;s a bit of a disjunct between this sleek, towering monument to learning and the antique offerings on the shelf &#8211; Learn Corel Paint 5!</p>
<p>That&#8217;s why the eBooks section of the library website is a godsend, particularly the <a href="http://www.vpl.ca/extDB/login.remoteDB?Books24x7">Books 24&#215;7</a> site. The coverage is incredible! A search for WordPress brings up 150 hits, including recent titles on theming and development. The keyword &#8216;Drupal&#8217; brings up 74 titles, including books I could never find through Chapter&#8217;s.</p>
<p>This makes it easier to decide whether to develop a site in a technology I&#8217;m less familiar with, knowing there is a deep resource of reference material available.</p>
<p>That&#8217;s how I justify it professionally. On a personal level, it&#8217;s just geek heaven.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tomsellecksmoustache.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tomsellecksmoustache.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tomsellecksmoustache.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tomsellecksmoustache.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tomsellecksmoustache.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tomsellecksmoustache.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tomsellecksmoustache.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tomsellecksmoustache.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tomsellecksmoustache.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tomsellecksmoustache.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tomsellecksmoustache.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tomsellecksmoustache.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tomsellecksmoustache.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tomsellecksmoustache.wordpress.com/62/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tomsellecksmoustache.wordpress.com&amp;blog=7424736&amp;post=62&amp;subd=tomsellecksmoustache&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tomsellecksmoustache.wordpress.com/2009/08/09/vancouver-library-amazing-resource/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88e2ae63dbec7b322af6eab89e11bdc4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">bgthom</media:title>
		</media:content>
	</item>
		<item>
		<title>Drupal extension for Dreamweaver</title>
		<link>http://tomsellecksmoustache.wordpress.com/2009/06/18/drupal-extension-for-dreamweaver/</link>
		<comments>http://tomsellecksmoustache.wordpress.com/2009/06/18/drupal-extension-for-dreamweaver/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 09:06:37 +0000</pubDate>
		<dc:creator>bgthom</dc:creator>
				<category><![CDATA[drupal]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[dreamweaver]]></category>
		<category><![CDATA[xtnd.us]]></category>

		<guid isPermaLink="false">http://tomsellecksmoustache.wordpress.com/?p=60</guid>
		<description><![CDATA[I work a lot in Dreamweaver, and edit most of my code in DW, so this extension that provides code hints for the Drupal API is bound to be useful. As a bonus, it also automatically tells Dreamweaver to handle file extensions like .info, .module etc. Handy!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tomsellecksmoustache.wordpress.com&amp;blog=7424736&amp;post=60&amp;subd=tomsellecksmoustache&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I work a lot in Dreamweaver, and edit most of my code in DW, so <a href="http://xtnd.us/dreamweaver/drupalapi">this extension that provides code hints for the Drupal API</a> is bound to be useful.</p>
<p>As a bonus, it also automatically tells Dreamweaver to handle file extensions like .info, .module etc. Handy!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tomsellecksmoustache.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tomsellecksmoustache.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tomsellecksmoustache.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tomsellecksmoustache.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tomsellecksmoustache.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tomsellecksmoustache.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tomsellecksmoustache.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tomsellecksmoustache.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tomsellecksmoustache.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tomsellecksmoustache.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tomsellecksmoustache.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tomsellecksmoustache.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tomsellecksmoustache.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tomsellecksmoustache.wordpress.com/60/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tomsellecksmoustache.wordpress.com&amp;blog=7424736&amp;post=60&amp;subd=tomsellecksmoustache&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tomsellecksmoustache.wordpress.com/2009/06/18/drupal-extension-for-dreamweaver/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88e2ae63dbec7b322af6eab89e11bdc4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">bgthom</media:title>
		</media:content>
	</item>
		<item>
		<title>How to add a &#8220;read more&#8221; button to a CCK node</title>
		<link>http://tomsellecksmoustache.wordpress.com/2009/06/17/how-to-add-a-view-more-button-to-a-cck-node/</link>
		<comments>http://tomsellecksmoustache.wordpress.com/2009/06/17/how-to-add-a-view-more-button-to-a-cck-node/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 03:47:59 +0000</pubDate>
		<dc:creator>bgthom</dc:creator>
				<category><![CDATA[drupal]]></category>
		<category><![CDATA[cck]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[teaser]]></category>

		<guid isPermaLink="false">http://tomsellecksmoustache.wordpress.com/?p=46</guid>
		<description><![CDATA[Sometimes, it&#8217;s the easy things that can be most challenging in Drupal. I had a CCK field that is quite long (4 pages of text in some nodes). I wanted to include a &#8220;Read more&#8221; button at a point of my choosing. Ideally, any text after this &#8220;breakpoint&#8221; would be hidden (via jQuery or plain [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tomsellecksmoustache.wordpress.com&amp;blog=7424736&amp;post=46&amp;subd=tomsellecksmoustache&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:left;">Sometimes, it&#8217;s the easy things that can be most challenging in Drupal.</p>
<p style="text-align:left;">I had a CCK field that is quite long (4 pages of text in some nodes). I wanted to include a &#8220;Read more&#8221; button at a point of my choosing.</p>
<p style="text-align:left;">Ideally, any text after this &#8220;breakpoint&#8221; would be hidden (via jQuery or plain old JavaScript). When the user clicks on it, the hidden content would be revealed.</p>
<p style="text-align:left;">I also wanted something that can be used in a TinyMCE environment and can be added easily by non-technical users. That&#8217;s really the main thing &#8211; I can do this myself easily, but it has to be easily addable by users.</p>
<div style="text-align:left;">
<p>Some people might be interested in how I did it, so here&#8217;s what I did:</p>
<ol>
<li>Created two CCK fields, one with the &#8220;teaser&#8221; and one with the extended text</li>
<li>Created a content-field.tpl.php file in my template to override the default cck field template (this page was incredibly helpful: <a title="http://tinyurl.com/themecck" rel="nofollow" href="http://tinyurl.com/themecck">http://tinyurl.com/themecck</a>)</li>
<li>Replaced the default &#8220;print $item['view']&#8221; with a conditional statement to handle the extended text field differently, adding a &#8220;more publications_button&#8221; div above the &#8220;more publications&#8221; field:<br />
<blockquote>
<div><code><span style="color:#000000;"><span style="color:#0000bb;">&lt;?php </span><span style="color:#007700;">if (</span><span style="color:#0000bb;">$field_name </span><span style="color:#007700;">!= </span><span style="color:#dd0000;">'field_faculty_more_publications'</span><span style="color:#007700;">)<br />
print </span><span style="color:#0000bb;">$item</span><span style="color:#007700;">[</span><span style="color:#dd0000;">'view'</span><span style="color:#007700;">];</span><span style="color:#ff8000;"><br />
// if the 'more publications' field is present<br />
// show the 'read more' link</span><span style="color:#007700;"><br />
elseif (</span><span style="color:#0000bb;">$field_name </span><span style="color:#007700;">== </span><span style="color:#dd0000;">'field_faculty_more_publications'</span><span style="color:#007700;">)<br />
{<br />
print </span><span style="color:#dd0000;">'&lt;div id="more_publications_button"&gt;View more publications...&lt;/div&gt;&lt;div&gt;'</span><span style="color:#007700;">;<br />
print </span><span style="color:#0000bb;">$item</span><span style="color:#007700;">[</span><span style="color:#dd0000;">'view'</span><span style="color:#007700;">];<br />
print </span><span style="color:#dd0000;">'&lt;/div&gt;'</span><span style="color:#007700;">;<br />
}</span><span style="color:#0000bb;"><br />
?&gt;</span></span></code></div>
</blockquote>
<p>I am not an amazing coder, so I&#8217;m sure this could be improved on. If I&#8217;m doing something alarmingly bad, I hope someone tells me.</li>
<li>Styled the more button in CSS to make it more link-like, and hid the &#8220;more publications&#8221; link by default:<br />
<blockquote>
<div><code>.more_publications_toggle {<br />
display: none;<br />
}</code></p>
<p>#more_publications_button {<br />
color:#000099;<br />
text-decoration:underline;<br />
cursor:pointer;<br />
margin-top: -10px;<br />
}</p></div>
</blockquote>
</li>
<li> Added some jQuery behaviour to the template.php file to create a slide-up/slide-down toggle for the &#8220;more publications&#8221; content:<br />
<blockquote>
<div><code>drupal_add_js (<br />
'$(document).ready(function(){</code><br />
var hello = 0;<br />
$(&#8220;#more_publications_button&#8221;).click(function() {<br />
if (hello == 0) {<br />
$(&#8220;.more_publications_toggle&#8221;).slideDown(&#8220;medium&#8221;);<br />
hello = 1;<br />
}<br />
else if (hello == 1) {<br />
$(&#8220;.more_publications_toggle&#8221;).slideUp(&#8220;medium&#8221;);<br />
hello = 0;<br />
}<br />
});</div>
<p>}); &#8216;,<br />
&#8216;inline&#8217;);</p></blockquote>
</li>
</ol>
<p>Maybe there is an easier way, but this worked in the meantime. Any code critiques most helpful and appreciated!</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tomsellecksmoustache.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tomsellecksmoustache.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tomsellecksmoustache.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tomsellecksmoustache.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tomsellecksmoustache.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tomsellecksmoustache.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tomsellecksmoustache.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tomsellecksmoustache.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tomsellecksmoustache.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tomsellecksmoustache.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tomsellecksmoustache.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tomsellecksmoustache.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tomsellecksmoustache.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tomsellecksmoustache.wordpress.com/46/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tomsellecksmoustache.wordpress.com&amp;blog=7424736&amp;post=46&amp;subd=tomsellecksmoustache&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tomsellecksmoustache.wordpress.com/2009/06/17/how-to-add-a-view-more-button-to-a-cck-node/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88e2ae63dbec7b322af6eab89e11bdc4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">bgthom</media:title>
		</media:content>
	</item>
		<item>
		<title>It&#8217;s not an easy economy &#8211; take a few minutes to get it right</title>
		<link>http://tomsellecksmoustache.wordpress.com/2009/06/13/its-not-an-easy-economy-take-a-few-minutes-to-get-it-right/</link>
		<comments>http://tomsellecksmoustache.wordpress.com/2009/06/13/its-not-an-easy-economy-take-a-few-minutes-to-get-it-right/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 07:17:38 +0000</pubDate>
		<dc:creator>bgthom</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cover letter]]></category>
		<category><![CDATA[economy]]></category>
		<category><![CDATA[jobs]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://tomsellecksmoustache.wordpress.com/?p=40</guid>
		<description><![CDATA[When economic times are tough, fewer people need web designers and developers. I mean, what we do is not a staple product. In fact, it is something clients can actually do for themselves in many cases, provided they have some technical aptitude and are willing to put in the work. That&#8217;s why it&#8217;s very important [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tomsellecksmoustache.wordpress.com&amp;blog=7424736&amp;post=40&amp;subd=tomsellecksmoustache&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When economic times are tough, fewer people need web designers and developers. I mean, what we do is not a staple product. In fact, it is something clients can actually do for themselves in many cases, provided they have some technical aptitude and are willing to put in the work.</p>
<p>That&#8217;s why it&#8217;s very important for web professionals to present themselves well when applying for jobs. In my own limited experience, they often do not. I am not an HR person and do not hire very regularly. But I have recently been involved in several hiring decisions, and it is honestly a bit shocking for me how poor the average job application is.</p>
<p>This is intended as a public service to those who are looking for work. If you do any of these things, I think you probably won&#8217;t get the job:</p>
<p><strong>Worst Mistakes on a Job Application</strong></p>
<ol>
<li><strong>Failure to tailor your email/cover letter to the job itself.</strong> By far the worst of all sins. It is immediately obvious when you have sent a generic email blast out to 100 employers. DON&#8217;T DO IT! I just throw these away without thinking about them. If you can&#8217;t be bothered to a) research the company or even b) read the job ad, then I can&#8217;t be bothered to contact you. This is a basic litmus test: if the job ad mentions PHP and MySQL, and you do not mention either in your response, you go  to the bottom of the pile.</li>
<li><strong>Spelling mistakes.</strong> Not everyone is a native English speaker, and I am quite open to working with people who do not speak English perfectly. But an email cover letter is a short document. If you can&#8217;t be bothered to check spelling in a two-hundred word document, I&#8217;m pretty sure you won&#8217;t be a fit for us.</li>
<li><strong>No portfolio or broken links in a portfolio.</strong> Many people write to say their portfolio website is &#8220;coming soon.&#8221; How hard is it to put up a one-pager with some screenshots? If you aren&#8217;t ready to show a portfolio, perhaps you should have waited before jumping into the job market.</li>
<li><strong>Excessive formality or informality. </strong>I like and appreciate a bright, conversational tone in a job application email &#8211; that communicates confidence and social facility. But something like:<br />
&#8220;hi there,<br />
saw your ad.&#8221;<br />
is far too informal and goes straight to delete. Excessive formality isn&#8217;t quite as bad, but it does signal a stuffiness or social awkwardness. Recent Asian arrivals often have this issue, as they have trouble adjusting to a more informal style of business communication in North America. If that&#8217;s the case, spend a few hundred dollars and get a career coach who can help you, at the very least, put together a solid cover letter.We may say we accept cultural differences, but the truth is, we prefer people we feel comfortable with. Especially if we have to make small talk with you in the lunchroom every day for the next 2-5 years. Social awkwardness is not something we are generally looking for in a new workmate.</li>
<li><strong>Generic greetings when I have stated my name in the ad. </strong>Dear sir, to whom it may concern. Um, I said my name in the ad. That should be an opening for you. The fact that you didn&#8217;t take it smacks of either sloppiness or social awkwardness.</li>
<li><strong>Not applying for things because you don&#8217;t have one or two of the requirements.</strong> This one I can only speculate about, but I&#8217;ve observed that many applicants feel they&#8217;re immediately disqualified if, say, the position asks for experience in Flash development, and they don&#8217;t have much Flash. In truth, a strong, engaging and targeted application package (and stated willingness to learn) will take you a long way toward getting the interview, especially if all the other applications are lackluster. Use your judgment, but if you think you have most of the requirements and can quickly learn the rest, go for it.</li>
</ol>
<p>Things that work:</p>
<ol>
<li>Tailor your job ad to the employer. Do your research. Find out the name of the person you&#8217;ll be applying to if possible. At bare minimum, read the job ad carefully and craft an email that meets those requirements.</li>
<li>Write in concise, well-formed, lively paragraphs. It is well worth it to hire a writing coach if you are not good at this and can afford it. There are great continuing education and low-cost community-center courses that can help you for a reasonable fee. This is a major investment in your future &#8211; good writers have a leg up in any profession.</li>
<li>Provide prominent links to sample portfolio pieces.</li>
<li>Talk about your soft skills as well as your technical skills. Communication, time-management, teamwork &#8211; those are the things that are hardest to teach, and matter the most. You can pick up Java or PHP in a month or two. Soft skills are the qualities that stay with you and that good managers value most.</li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tomsellecksmoustache.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tomsellecksmoustache.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tomsellecksmoustache.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tomsellecksmoustache.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tomsellecksmoustache.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tomsellecksmoustache.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tomsellecksmoustache.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tomsellecksmoustache.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tomsellecksmoustache.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tomsellecksmoustache.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tomsellecksmoustache.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tomsellecksmoustache.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tomsellecksmoustache.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tomsellecksmoustache.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tomsellecksmoustache.wordpress.com&amp;blog=7424736&amp;post=40&amp;subd=tomsellecksmoustache&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tomsellecksmoustache.wordpress.com/2009/06/13/its-not-an-easy-economy-take-a-few-minutes-to-get-it-right/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88e2ae63dbec7b322af6eab89e11bdc4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">bgthom</media:title>
		</media:content>
	</item>
	</channel>
</rss>
