<?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>Eli Kirk</title>
	<atom:link href="http://elikirk.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://elikirk.com</link>
	<description></description>
	<lastBuildDate>Fri, 10 Feb 2012 19:36:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Spam, Spam, WordPress, and Spam</title>
		<link>http://elikirk.com/2012/02/02/spam-wordpress-spam/</link>
		<comments>http://elikirk.com/2012/02/02/spam-wordpress-spam/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 17:06:05 +0000</pubDate>
		<dc:creator>Chris Coray</dc:creator>
				<category><![CDATA[Business Tip]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://elikirk.com/?p=786</guid>
		<description><![CDATA[We all hate spam. I don&#8217;t mean the mystery meat in a can that is a favorite in Hawaii and the subject of parodies from Monty Python and Weird Al Yankovic. I&#8217;m talking about the unwanted comments or e-mails brimming with suspicious intent, typically advertising for shady products. First of all, what exactly is spam [...]]]></description>
			<content:encoded><![CDATA[<p>We all hate <a href="http://en.wikipedia.org/wiki/Spam_(electronic)" target="_blank">spam</a>. I don&#8217;t mean the <a href="http://en.wikipedia.org/wiki/Spam" target="_blank">mystery meat in a can</a> that is a favorite in Hawaii and the subject of parodies from <a href="http://youtu.be/anwy2MPT5RE" target="_blank">Monty Python</a> and Weird Al Yankovic. I&#8217;m talking about the unwanted comments or e-mails brimming with suspicious intent, typically advertising for shady products.</p>
<p>First of all, what exactly is spam and how does it work? Unless you&#8217;re new to the Internet, you&#8217;re probably familiar with the basics of what spam is. How does it end up on your WordPress site, though?</p>
<p>In some rare instances, spam originates from individuals surfing the web and looking for sites that have sections for comments. When they find one, they fill out the information, answer the Captcha question if there is one, and then post their garbage comment. This is one of the hardest forms of spam to fight because it is done by an actual person who has logic, reasoning, and creativity. A person can easily bypass anti-spam measures, such as Captchas.</p>
<p>Most often, however, spamming is done by bots. Bots are scripted programs that are written with the intent of carrying out some function using an automated process. Bots are not all nefarious; some are used for security purposes. Spam bots are programmed to do the same thing as the human in the above scenario&mdash;cruise the internet looking for comment forms to fill out and then leave their garbage message&mdash;but since the bot is a program, it can do this at a much, much faster rate without the need for a bathroom break or food.</p>
<p>Part of the headache with anti-spam is that as the security measures get better or more elaborate, the people who write these programs develop more complex bots to get around the new security. When it is discovered that they can circumvent security, better security is put in place. When the bots encounter better security, their programmers make adjustments to get around <em>that</em> security&#8230;I think you get the idea. It is an endless loop that we have been in for years.</p>
<p>So what can you do? Luckily, there are ways of protecting your WordPress site that don&#8217;t involve a Masters Degree in Computer Science to keep the bots at bay.</p>
<p>A few weeks ago, I wrote about <a href="http://elikirk.com/2012/01/19/my-favorite-wordpress-plugins/">some of the plugins</a> that I, as a web developer, really enjoy for <a href="http://wordpress.org/" target="_blank">WordPress</a>. There was one plugin that I left off of the list on purpose. It was not a reflection of the plugin itself, but I had thought about this current topic as a follow-up and thought it more apropos here.</p>
<p><a href="http://wordpress.org/extend/plugins/akismet/" target="_blank">Akismet</a> is an anti-spam plugin that comes pre-installed with WordPress. In a nutshell, when a user comes to your site and fills out a comment form, the Akismet plugin takes the information supplied by the user and their Internet Service Provider (ISP) and checks that data against a spam database. If the user&#8217;s information has been flagged as spam, the plugin moves the comment to your spam folder automatically.</p>
<p>While this is some pretty nice functionality, it is not entirely necessary for the small business owner, and it is not fail proof. In truth, no method of deterring spammed comments <em>is</em> fail proof, but a combination of things and knowing what to look for when something does make it through can help. Where Akismet shines is the automated, hands-off approach. All a site owner needs to do is obtain a valid license (<a href="http://akismet.com/wordpress/" target="_blank">info at their site</a>), make sure the plugin is activated, and Aksimet does the rest.</p>
<p>Another alternative or backup is a plugin that adds Captchas to your comments section. There are many out there, so I won&#8217;t get into specific plugins, but if you would like to go that route, look for something that uses question-and-answer based security. Surprisingly enough, many bots are smart enough to pull an image, &#8220;read&#8221; the letters or numbers inside of it, and then answer the Captcha correctly, but many are still stumped by basic math problems or riddles with obvious answers like &#8220;What color was George Washington&#8217;s white horse?&#8221; On a side note, this can also act as a security gate against comment authors who don&#8217;t have the ability to respond intelligently. </p>
<p>&#8220;But Chris,&#8221; you may be saying to yourself, &#8220;What if I want more control over my comment moderation? What if I use Akismet and a captcha, and spam still makes it through?&#8221; Excellent questions! I&#8217;m very glad you asked, because I have a response.</p>
<table>
<tr>
<td style="padding-right:20px;"><a href="http://elikirk.com/wp-content/uploads/2012/02/discussion_ss.jpg" rel="prettyPhoto"><img src="http://elikirk.com/wp-content/uploads/2012/02/discussion_ss-150x150.jpg" alt="" title="discussion_screenshot" width="150" height="150" class="alignleft size-thumbnail wp-image-787" /></a></td>
<td>WordPress itself actually has some fairly decent spam protection built in. Inside the Dashboard, if you go to &#8220;Settings > Discussion&#8221; (click the thumbnail on the left for a screenshot), WordPress provides a number of options for getting rid of spam. Not all of the settings in this section are anti-spam, but let&#8217;s go through them quickly:</td>
</tr>
</table>
<p><strong>&#8220;Default article settings:&#8221;</strong> This section contains three options. The first notifies other blog users if you link to their site in your own blog post. The second allows other blogs to send you a notification when someone has linked to your site. Neither of these have much to do with spam, but typically its handy to enable both. The third allows people to comment on your blog posts inside your own site. This (and all of the settings in this section) can be turned on and off for individual blog posts.</p>
<p><strong>&#8220;Other comment settings:&#8221;</strong> The options here are fairly self-explanatory, but see the picture above for my recommendations on how to set these for the average blog. Most blogs want site viewers to be able to leave a comment without having to be actual site members, but requiring a name and e-mail helps to weed out some spam, because offenders can be traced more easily.</p>
<p><strong>&#8220;E-mail me whenever:&#8221;</strong> These settings send an e-mail to the addresses specified for the Administrator (&#8220;Settings > General&#8221;) and the blog author, when someone posts a comment or when a comment is ready to be moderated. To moderate a comment, go to the &#8220;Comments&#8221; section of the dashboard and mark the comments there as &#8220;Approved,&#8221; &#8220;Spam,&#8221; or &#8220;Trash.&#8221;</p>
<p>The next few sections are specifically used for anti-spam measurements, so we&#8217;ll talk about them in a little more detail.</p>
<p><strong>&#8220;Before a comment appears:&#8221;</strong> If you check the top option, &#8220;An administrator must always approve the comment,&#8221; you don&#8217;t need to check the bottom option, &#8220;Comment author must have a previously approved comment.&#8221; If the box is checked that the comment should always be approved, it will always need approval regardless of whether the comment author has a previously approved comment or not. The advantage to only checking the bottom box is that you only have to approve a comment from a legitimate source once, then WordPress remembers that person&#8217;s credentials (provided they use the same name and e-mail address) and will automatically approve any comments from that person in the future. This can get tricky with modern spamming techniques, but we&#8217;ll talk about how to spot spammed comments in a minute.</p>
<p><strong>&#8220;Comment Moderation:&#8221;</strong> One common reason for spam is that the offender is trying to post links to your blog. For them, it is free advertising, and provides trackback links that boost their ranks in search engines. It is the epitome of spam. Using the Comment Moderation settings, you can automatically flag a comment that contains even one link by putting a number in the box. If you have either setting in the last section, &#8220;Before a comment appears&#8221; checked, however, you don&#8217;t need to mess with this. If you would like to set it up, it is easy to use: if you want a comment flagged with just one link, put a &#8220;1&#8243; in the box. If you think you can tolerate one, but two links are too many, put a &#8220;2,&#8221; and so on. Sometimes, however, the link is hidden in the username or e-mail, which leads us to the next section.</p>
<p><strong>&#8220;When a comment contains any of these words</strong> in its content, name, URL, e-mail, or IP, it will be held in the moderation queue.&#8221; Again, if you have already specified that all comments require moderation, you don&#8217;t need this section. Otherwise, you can flag a comment for moderation if it contains text that matches anything in a list you put in this box. The IP, however, is a numerical value, so you can specify IPs using exact values or wildcards to be subject to moderation.</p>
<p>For an example of the first use, if I put the word &#8220;cheap&#8221; into this box, anytime a comment comes up with that word in it, it is automatically suspended for moderation. This is nice if you are worried about comments from legitimate sources getting trashed on accident. If a spammer comes along and comments about &#8220;cheap little blue pills,&#8221; the comment is flagged for moderation. Likewise, if a comment is made saying &#8220;I think the local government is cheap when it comes to education,&#8221; this might be a legitimate source so you don&#8217;t want to automatically banish it, which we&#8217;ll talk about in the next section. Instead, it just flags the comment for moderation. The second use is handy if you go to the Comments section of your blog and notice that a lot of garbage comments are coming from a specific IP address. IP Addresses are listed in the Comments Moderation panel on each comment. To ban by IP, you would copy the IP address into the text box, the same as a word. If you&#8217;re not entirely certain what that means, avoid blocking by IP and use content (word) flags instead.</p>
<p><strong>&#8220;Comment Blacklist:&#8221;</strong> By putting a list of words in this box, you tell your WordPress site that if a comment comes in containing certain words, it should automatically be marked as spam. You don&#8217;t care what the source is, you don&#8217;t want comments containing those words or terms on your site. &#8220;Naughty words&#8221; are perfect candidates for this list. It might make you feel dirty coming up with a list of these phrases on your own, but if you moderate all of your comments, it doesn&#8217;t take very long to figure out what words to flag.</p>
<p>Towards the bottom of this section is the <a href="http://en.support.wordpress.com/avatars/" target="_blank">&#8220;Avatars&#8221;</a> category, which has nothing to do with spam, so we&#8217;ll skip it (see the official <a href="http://en.support.wordpress.com/avatars/" target="_blank">WordPress Avatar Help page</a> for more information on those).</p>
<p>Great, you have your settings configured and you&#8217;re ready to repel the worst of spammers. You write intriguing blog posts like this one, search engines begin indexing your site. As the search engines make your site searchable, spam comments begin rolling in. Some comments getting past security might not look like spam right off. How do you tell the difference between the spam and the legitimate comments?</p>
<p>This is something that has become more and more difficult as spammers have written more sophisticated bots. Some are easy to spot by their name, e-mail address, or their over 150 links to &#8220;cheap appliances&#8221; (yes, this is a real-world example from our own site, I counted them). Others, however, use generic compliments to gain your trust. &#8220;This is exactly the information I was searching for!&#8221; &#8220;You are so right and you use your words so well!&#8221; &#8220;I will come back to your site for more information most certainly!&#8221; Others have information like &#8220;Tips for Success,&#8221; which sound intelligent but have nothing to do with post they are commenting on.</p>
<p>So why would spammers leave these seemingly innocuous comments?</p>
<p>Let&#8217;s go back to the box in our settings that said, &#8220;Comment author must have a previously approved comment.&#8221; By giving a compliment or otherwise gaining the site owner&#8217;s trust and getting their comment approved, they are free to go back and post their spam on your site. While I don&#8217;t advocate un-checking this box and moderating <em>all</em> comments, it is typically enough to watch for red flags before approving the comment in the first place. If the English used sounds like it was run through Google translate first (which it probably was), if it reads like a random bunch of English sentences that are unrelated to each other, or if the comment as a whole has nothing to do with the blog post, those are major flags. Some will even copy data out of your blog post into their comment to make you think its related, but if you read through the sentences created, 99.9 percent of the time it still doesn&#8217;t make sense. In the end, if you still aren&#8217;t sure, either copy and paste the e-mail address provided in the comment into a Google search to see if it has been flagged as a spam address, or simply don&#8217;t approve it. It is better to be safe than sorry.</p>
<p>As the average user might gather from this article, blocking spam is sometimes complicated and requires a little knowledge of what to watch for. Akismet and similar plugins can help remove a lot of the headache. Captchas are also sometimes useful, although more complicated bots have been programmed to bypass those as well. Even with security plugins, it is good to have a backup in place like comment moderation, should anything manage to slip through.</p>
]]></content:encoded>
			<wfw:commentRss>http://elikirk.com/2012/02/02/spam-wordpress-spam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Now Hiring: Senior Project Manager</title>
		<link>http://elikirk.com/2012/01/31/now-hiring-senior-project-manager/</link>
		<comments>http://elikirk.com/2012/01/31/now-hiring-senior-project-manager/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 02:31:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://elikirk.com/?p=774</guid>
		<description><![CDATA[We are seeking a senior-level project manager to oversee project management in a creative agency and Web development environment. Description The senior project manager will report to the company president and will help guide and develop company culture relative to increasing the efficiency and profitability of all projects. He or she will: &#160; &#160;1. Develop [...]]]></description>
			<content:encoded><![CDATA[<p>We are seeking a senior-level project manager to oversee project management in a creative agency and Web<br />
development environment.</p>
<h2>
Description</h2>
<p>The senior project manager will report to the company president and will help guide and develop company<br />
culture relative to increasing the efficiency and profitability of all projects. He or she will:<br />
&nbsp; &nbsp;1. Develop and refine project management processes and lead their implementation across the agency;<br />
&nbsp; &nbsp;2. Directly manage all Web development and other technical projects;<br />
&nbsp; &nbsp;3. Oversee a small team of account/project managers;<br />
&nbsp; &nbsp;4. Be the assigned account manager for Web design and development clients;<br />
&nbsp; &nbsp;5. Perform other account management responsibilities as assigned;<br />
&nbsp; &nbsp;6. Oversee quality assurance testing for all Web projects; and<br />
&nbsp; &nbsp;7. Fulfill other duties as assigned.</p>
<h2>Qualifications</h2>
<p>The ideal candidate will have:<br />
&nbsp; &nbsp;1. At least 6 years of dedicated project management experience;<br />
&nbsp; &nbsp;2. A professional certificate or academic degree/emphasis in project management;<br />
&nbsp; &nbsp;3. Demonstrated success in managing people and client relationships;<br />
&nbsp; &nbsp;4. Demonstrated mastery of project management processes and techniques;<br />
&nbsp; &nbsp;5. Mastery of project management software solutions, including Basecamp; and<br />
&nbsp; &nbsp;6. Successful experience in managing enterprise-level Web development projects.</p>
<h2>Compensation</h2>
<p>Compensation will be negotiated commensurate with experience. Health insurance, including HSA, will be<br />
available following one full calendar month of employment. No relocation package is offered with this position.</p>
<h2>Application</h2>
<p>Submit a resume and cover letter to Bill Brady at <a href="mailto:bill@elikirk.com">bill@elikirk.com</a>. Employment and character references<br />
should also be included. Please direct all inquiries about the position to Bill Brady at 801-377-9321 x207.</p>
]]></content:encoded>
			<wfw:commentRss>http://elikirk.com/2012/01/31/now-hiring-senior-project-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Favorite WordPress Plugins</title>
		<link>http://elikirk.com/2012/01/19/my-favorite-wordpress-plugins/</link>
		<comments>http://elikirk.com/2012/01/19/my-favorite-wordpress-plugins/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 17:54:19 +0000</pubDate>
		<dc:creator>Chris Coray</dc:creator>
				<category><![CDATA[Business Tip]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://elikirk.com/?p=723</guid>
		<description><![CDATA[WordPress is not a new Content Management System (CMS), but it is rapidly gaining in popularity. Originally, this PHP-based system was intended to create a basic content management environment for the ever-increasing pool of internet bloggers. Over the years, a growing number of custom plugins as well as heightened security has made WordPress a more [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://wordpress.org/" target="_blank">WordPress</a> is not a new Content Management System (CMS), but it is <a href="http://en.wordpress.com/stats/" target="_blank">rapidly gaining in popularity</a>. Originally, this PHP-based system was intended to create a basic content management environment for the ever-increasing pool of internet bloggers. Over the years, a growing number of custom plugins as well as heightened security has made WordPress a more solid platform. It allows web developers, like those here at Eli Kirk, to build entire sites&mdash;with or without actual blog functionality&mdash;for businesses of all types and sizes. The WordPress Dashboard allows even non-technical customers the ability to add content and maintain control over their own website without the need to know how to program on their own, while the custom plugins allow us to implement professional designs for the website itself.</p>
<p>Anyone who has spent time looking through lists of plugins on the WordPress Dashboard knows that there are literally <em>thousands</em> of plugins for this CMS. Each developer seems to have their preference of plugins to use on websites, but I thought it might be good to put together a list of the plugins I most commonly use and why.</p>
<p>This list is by no means comprehensive, nor does it reflect the views of all Eli Kirk developers. If you have a plugin you really enjoy and I missed it, please let me know in the comments below!</p>
<h3><a href="http://wordpress.org/extend/plugins/contact-form-7/" target="_blank"><strong>Contact Form 7</strong></a></h3>
<p><strong>Author:</strong> <a href="http://ideasilo.wordpress.com/" target="_blank">Takayuki Miyoshi</a><br />
<strong>Link:</strong> <a href="http://wordpress.org/extend/plugins/contact-form-7/" target="_blank">http://wordpress.org/extend/plugins/contact-form-7/</a></p>
<p><strong>Why I like it:</strong><br />
Contact Form 7 is a simple, easy-to-use way to add a contact form to your site that automatically contains validation and an e-mailer, yet at the same time retains the ability to perform more complicated tasks via customization. Most of our developers can add a basic contact form to a client&#8217;s site with customized questions and e-mail output in less than 10 minutes. More advanced projects can take 30 minutes to an hour, but the amount of time it would take to build the basic functionality from scratch each time makes it well worth the time a developer might take to learn how to customize the plugin once.</p>
<h3><a href="http://wordpress.org/extend/plugins/advanced-custom-fields/" target="_blank"><strong>Advanced Custom Fields</strong></a></h3>
<p><strong>Author:</strong> <a href="http://plugins.elliotcondon.com/" target="_blank">Elliot Condon</a><br />
<strong>Link:</strong> <a href="http://wordpress.org/extend/plugins/advanced-custom-fields/" target="_blank">http://wordpress.org/extend/plugins/advanced-custom-fields/</a></p>
<p><strong>Why I like it:</strong><br />
Many of our clients feel intimidated by code, and that&#8217;s okay. Most of the time, our developers wouldn&#8217;t want to trade jobs with the client, either. Advanced Custom Fields takes the concept of <a href="http://codex.wordpress.org/Custom_Fields" target="_blank">Custom Fields in WordPress</a> and&mdash;well, advances it further. This plugin allows us to create beautiful, custom layouts on a website with almost fill-in-the-blank functionality on the client&#8217;s side. If a client wants to change the text of a sidebar paragraph and the associated image, this plugin allows us to put it in an easy-access location with a simple interface. There are other methods of doing this, but Advanced Custom Fields is probably one of the easiest to set up and maintain.</p>
<h3><a href="http://wordpress.org/extend/plugins/pods-ui/" target="_blank"><strong>Pods CMS Framework</strong></a></h3>
<p><strong>Author:</strong> <a href="http://podsframework.org/about/" target="_blank">The Pods CMS Team</a><br />
<strong>Link:</strong> <a href="http://wordpress.org/extend/plugins/pods-ui/" target="_blank">http://wordpress.org/extend/plugins/pods-ui/</a><br />
<strong>Why I like it:</strong></p>
<p>This plugin, in many ways, falls into the same category of Advanced Custom Fields. It allows us as developers to create customized content for clients that allow them to edit their own site, without an extensive knowledge of code, while maintaining a professional-looking website. There are pros and cons to both this and Advanced Custom Fields, and it is a matter of using the right tool for the right job. Several of our recent custom WordPress builds used both plugins.</p>
<h3><a href="http://wordpress.org/extend/plugins/google-analytics-for-wordpress/" target="_blank"><strong>Google Analytics for WordPress</strong></a></h3>
<p><strong>Author:</strong> <a href="http://yoast.com/" target="_blank">Joost de Valk</a><br />
<strong>Link:</strong> <a href="http://wordpress.org/extend/plugins/google-analytics-for-wordpress/" target="_blank">http://wordpress.org/extend/plugins/google-analytics-for-wordpress/</a></p>
<p><strong>Why I like it:</strong><br />
If you have a website and a Google e-mail address, you should have <a href="http://www.google.com/analytics/" target="_blank">Google Analytics</a>. If you&#8217;re using something else, you probably have some very specific functionality that you don&#8217;t feel is met via Google, but due to the low price point (free) and great features, Google Analytics seems to be the new standard in online metrics. For those not familiar, metrics are essentially the data that tells us how many visitors view a site on a particular day (which can be broken down by hour), what country they are from, what browser they are using, etc. This plugin makes integrating a Google Analytics account into your WordPress-based website even more simple&mdash;just plugin in the UA number given to you by the Google Analytics site when you sign up, and you&#8217;re good to go.</p>
<h3><a href="http://wordpress.org/extend/plugins/google-analytics-dashboard/" target="_blank"><strong>Google Analytics Dashboard</strong></a></h3>
<p><strong>Author:</strong> <a href="http://www.ioncannon.net/" target="_blank">Carson McDonald</a><br />
<strong>Link:</strong> <a href="http://wordpress.org/extend/plugins/google-analytics-dashboard/" target="_blank">http://wordpress.org/extend/plugins/google-analytics-dashboard/</a></p>
<p><strong>Why I like it:</strong><br />
This plugin is not for everyone, but it is handy in many situations. If you&#8217;re already running Google Analytics on your site, this plugin uses code to grab your site&#8217;s data from Google&#8217;s Analytics site and allows you to view it within your WordPress dashboard. The advantage is that you can view visitor data very quickly while on your own site. The disadvantage is that it is limited in what it will display. Also, PROTIP: Go to Settings > Google Analytics Dashboard, and check &#8220;Disable Post Stats Display,&#8221; then &#8220;Save.&#8221; This disables the plugin from creating individual viewing charts for each page/post, which greatly increases page load times when using the WordPress dashboard. When you want to view metrics for individual posts, just go reverse this step temporarily and then go back. If you spend a lot of time looking through pages on your site and want to use this plugin, you&#8217;ll appreciate the ability to disable those charts.</p>
<h3><a href="http://wordpress.org/extend/plugins/simple-social-sharing/" target="_blank"><strong>Simple Social Sharing</strong></a></h3>
<p><strong>Author:</strong> <a href="http://andrewnorcross.com/" target="_blank">Andrew Norcross</a><br />
<strong>Link:</strong> <a href="http://wordpress.org/extend/plugins/simple-social-sharing/" target="_blank">http://wordpress.org/extend/plugins/simple-social-sharing/</a></p>
<p><strong>Why I like it:</strong><br />
Social networking has always been an important factor of business, and online social networking is becoming increasingly important. There are many plugins for taking advantage of multiple social networks, but Simple Social Sharing is an easy-to-setup, easy-to-use plugin that allows users to share your posts and pages on their favorite social networking sites with one or two mouse clicks.</p>
<h3><a href="http://wordpress.org/extend/plugins/wordpress-meta-robots/" target="_blank"><strong>WordPress Meta Robots</strong></a></h3>
<p><strong>Author:</strong> <a href="http://www.destio.de/" target="_blank">Designstudio, Philipp Speck</a><br />
<strong>Link:</strong> <a href="http://wordpress.org/extend/plugins/wordpress-meta-robots/" target="_blank">http://wordpress.org/extend/plugins/wordpress-meta-robots/</a></p>
<p><strong>Why I like it:</strong><br />
A lot of the time, when building websites, there are individual pages that we don&#8217;t want search engines to index. It might be a &#8220;Thank You&#8221; page, a landing page for a specific marketing campaign, or other custom one-off page that is not intended for general public consumption. With this plugin, it is simple and easy to control whether you want the page to be available to general search engines or not.</p>
<h3><a href="http://wordpress.org/extend/plugins/update-notifications-manager/" target="_blank"><strong>Update Notifications Manager</strong></a></h3>
<p><strong>Author:</strong> <a href="http://www.geekpress.fr/" target="_blank">GeekPress</a><br />
<strong>Link:</strong> <a href="http://wordpress.org/extend/plugins/update-notifications-manager/" target="_blank">http://wordpress.org/extend/plugins/update-notifications-manager/</a></p>
<p><strong>Why I like it:</strong><br />
This is not a plugin for the average WordPress user, but is fantastic for the developer who has built a customized WordPress environment for a client and wants to preserve that. This plugin allows a developer to hide the update notifications from the Dashboard, including core, plugin, and theme updates. Many of the updates in WordPress core are great and contain additional security, but sometimes other custom plugins haven&#8217;t been updated to work with the new core release at the time. Your average client user logs in and sees the message &#8220;Update your WordPress now&#8221; and innocently clicks the &#8220;automatic upgrade&#8221; button. Updating the core without updating the plugins can cause chaos, site breakage, and other nastiness. This plugin can prevent that by hiding those upgrade messages completely. Combine this plugin with one that reminds the developer to do an update test on a separate development site works well to keep things updated without the possibility of accidental breakage.</p>
<h3><a href="http://wordpress.org/extend/plugins/twitter-for-wordpress/" target="_blank"><strong>Twitter for WordPress</strong></a></h3>
<p><strong>Author:</strong> <a href="http://rick.jinlabs.com/" target="_blank">Ricardo González</a><br />
<strong>Link:</strong> <a href="http://wordpress.org/extend/plugins/twitter-for-wordpress/" target="_blank">http://wordpress.org/extend/plugins/twitter-for-wordpress/</a></p>
<p><strong>Why I like it:</strong><br />
Twitter for WordPress allows easy integration of the Twitter feed for the business on the site. If you have a business with its own active Twitter account, this plugin can be a quick and easy way to simultaneously add updates to the site and online social networks, especially if used in conjunction with a social network aggregator. It can also be customized and styled. To see an example of this, check out the bottom of the <a href="http://elikirk.com/" target="_blank">Eli Kirk homepage</a> (the birds on the fence).</p>
<h3><a href="http://wordpress.org/extend/plugins/stop-ie6/" target="_blank"><strong>Stop IE6</strong></a></h3>
<p><strong>Author:</strong> <a href="http://www.alencvitkovic.com/" target="_blank">Alen Cvitkovic</a><br />
<strong>Link:</strong> <a href="http://wordpress.org/extend/plugins/stop-ie6/" target="_blank">http://wordpress.org/extend/plugins/stop-ie6/</a></p>
<p><strong>Why I like it:</strong><br />
This entry may get me into some trouble, partially because of its intentional snarkiness and partially out of &#8220;<a href="http://windowsteamblog.com/ie/b/ie/archive/2012/01/03/the-us-says-goodbye-to-ie6.aspx" target="_blank">disrespect for the dead</a>.&#8221; First of all, I would never add this plugin to a client site unless they requested it, but I proudly fly the banner on my <a href="http://chrislcoray.com">personal blog</a>. Internet Explorer 6 (IE6) has been the bane of most developers&#8217; existences since its official release in 2001. Pre-packaged with many Windows Operating Systems, users of the browser were slow to adapt and upgrade, depsite the fact that 99.9% of web browsers are free. It handled styles differently from other browsers, which proponents of Microsoft web technology claim was a better way of doing things (see: <a href="http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug" target="_blank">IE Box Model Bug</a>), but the fact that other browsers were quicker to adapt to updated trends in coding and styles, combined with the lengthy time it took IE6 users to upgrade, made it the most frustrating browser on the market to develop sites for. In an effort to help end-users realize that there were much better browsers out there, including IE 7, 8 and 9 (despite their own flaws), this plugin detects when a user is using an inferior browser and not-so-subtely lets them know that they&#8217;ll need to upgrade to proceed. With IE6 officially being laid to rest and IE 9 shipping with Windows 7 by default, its only a matter of time before the plugin is updated to target the next biggest offender, Internet Explorer 7.</p>
]]></content:encoded>
			<wfw:commentRss>http://elikirk.com/2012/01/19/my-favorite-wordpress-plugins/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Quote on simplicity by Jony Ive</title>
		<link>http://elikirk.com/2011/11/04/quote-on-simplicity-by-jony-ive-3/</link>
		<comments>http://elikirk.com/2011/11/04/quote-on-simplicity-by-jony-ive-3/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 17:04:45 +0000</pubDate>
		<dc:creator>Seth Taylor</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://elikirk.com/?p=498</guid>
		<description><![CDATA[“Why do we assume that simple is good? Because with physical products, we have to feel we can dominate them. As you bring order to complexity, you find a way to make the product defer to you. Simplicity isn’t just a visual style. It’s not just minimalism or the absence of clutter. It involves digging [...]]]></description>
			<content:encoded><![CDATA[<p>“<strong>Why do we assume that simple is good?</strong> Because with physical products, we have to feel we can dominate them. As you bring order to complexity, you find a way to make the product defer to you. Simplicity isn’t just a visual style. It’s not just minimalism or the absence of clutter. It involves digging through the depth of the complexity. To be truly simple, you have to go really deep … The better way is to go deeper with the simplicity, to understand everything about it and how it’s manufactured. You have to deeply understand the essence of a product in order to be able to get rid of the parts that are not essential.”</p>
<p>(From <em>Steve Jobs</em>, by Walter Isaacson)</p>
<p>The same simplicity principle applies to simple User Interface and an enjoyable User Experience. Simplifying a simple experience is not difficult. However making a complex procedure or changing typical user behavior needs to be thoroughly understood in order to make correct decisions.</p>
]]></content:encoded>
			<wfw:commentRss>http://elikirk.com/2011/11/04/quote-on-simplicity-by-jony-ive-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eli Kirk Celebrates 10 Years, Adds New President to Executive Team</title>
		<link>http://elikirk.com/2011/09/08/eli-kirk-celebrates-10-years-adds-new-president-to-executive-team/</link>
		<comments>http://elikirk.com/2011/09/08/eli-kirk-celebrates-10-years-adds-new-president-to-executive-team/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 22:56:04 +0000</pubDate>
		<dc:creator>bbrady</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://elikirk.com/?p=432</guid>
		<description><![CDATA[FOR IMMEDIATE RELEASE Eli Kirk Celebrates 10 Years, Adds New President to Executive Team PROVO, Utah — Sept. 8, 2011 — Now celebrating its tenth year of business, Eli Kirk today announced the appointment of Bill Brady as the company’s president, overseeing day-to-day operations and business development. In a move designed to increase the firm’s [...]]]></description>
			<content:encoded><![CDATA[<p>FOR IMMEDIATE RELEASE</p>
<p><strong>Eli Kirk Celebrates 10 Years, Adds New President to Executive Team</strong></p>
<p><strong></strong>PROVO, Utah — Sept. 8, 2011 — Now celebrating its tenth year of business, Eli Kirk today announced the appointment of Bill Brady as the company’s president, overseeing day-to-day operations and business development. In a move designed to increase the firm’s capacity for growth, he joins Lance Black and Jarid Love as a member of the firm’s executive team.</p>
<p>“After 10 successive years of growth, and with a steadily growing roster of employees, we are excited to expand Bill’s role, which increases our capacity and positions us well for the future,” said Lance Black, who will remain as the company’s CEO and stay fully involved in the business. “We are extremely grateful for all our wonderful clients over the past decade, and this move will help me to have more face time with them and in the community.”</p>
<p>Brady joined Eli Kirk in 2010 and has served as the agency’s vice president of strategy since his arrival. Prior to Eli Kirk, Brady was co-founder and senior partner of M2 Results, a Salt Lake City-based marketing firm for 11 years. He has also filled management-level marketing and PR roles at Dynix Corporation and Nu Skin Enterprises.</p>
<p>“I am thrilled with this opportunity to work closely with Lance and Jarid in leading Eli Kirk,” Brady said. “I am fully committed to the intense culture of service and authenticity they have created and look forward to another exciting decade of growth and of doing outstanding work for our clients.”</p>
<p><strong>ABOUT ELI KIRK<br />
</strong>Founded in 2001 and headquartered in Provo, Utah, Eli Kirk is a leading brand management, Web development, and marketing firm focused on creating memorable brands that produce measurable results. As one of Utah’s top creative agencies, the firm’s team of nearly 45 employees produces award-winning websites and creative work, all focused on building brand identities that drive customer loyalty and create lasting business value. For more information about Eli Kirk, visit www.elikirk.com</p>
<p>Contact: Emily Franson, PR Director<br />
emily@elikirk.com, 801-377-9321 x219</p>
]]></content:encoded>
			<wfw:commentRss>http://elikirk.com/2011/09/08/eli-kirk-celebrates-10-years-adds-new-president-to-executive-team/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fling Thing: Pumpkin Chuckin&#8217; on the Cheap</title>
		<link>http://elikirk.com/2011/08/03/fling-thing-pumpkin-chuckin-on-the-cheap/</link>
		<comments>http://elikirk.com/2011/08/03/fling-thing-pumpkin-chuckin-on-the-cheap/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 16:56:03 +0000</pubDate>
		<dc:creator>Chris Coray</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://elikirk.com/?p=300</guid>
		<description><![CDATA[The Background Stuff As much as I love coding, there are times when it feels that the days blend together. Create an AJAX form here, build a new site template there, figure out how to make it all run across all the major web browsers, and at the end of the day you find yourself [...]]]></description>
			<content:encoded><![CDATA[<h2>The Background Stuff</h2>
<p>As much as I love coding, there are times when it feels that the days blend together. Create an <a href="http://en.wikipedia.org/wiki/AJAX" target="_blank">AJAX</a> form here, build a new site template there, figure out how to make it all run across all the major web browsers, and at the end of the day you find yourself standing in the grocery store aisle using <a href="http://en.wikipedia.org/wiki/Boolean_logic" target="_blank">boolean logic</a> in your head to compare price vs. flavor vs. nutrition on several boxes of cereal.</p>
<p>So when the e-mail showed up in my inbox announcing the second annual gourd-smashing “Slash and Bash” activity for the company, I was excited. Who doesn’t want to let out some stress by making large round vegetables splatter? Until PEETA provides ample proof that plants scream when being picked, cooked, smashed, or cut in half with a sword, we need to enjoy it.</p>
<p>Then I noticed a call for some brave volunteer who was willing to step up and build a &#8220;pumpkin catapult.&#8221; Being the geek that I am, I grew up drawing castles and reading books about dragons and armies that fought with sword, shield, pike, and bow. War machines were familiar to me before I was a teenager, enough so that I could tell them apart even if I couldn’t describe exactly how each was powered. Building such a device was a long-standing dream of mine. Also being the geek that I am, I knew right away that a catapult was not what we needed. We needed something that could expend much more <a href="http://en.wikipedia.org/wiki/Kinetic_energy" target="_blank">kinetic energy</a> for the same rough size. What we needed was a trebuchet. It had been a long time since I had worked on a larger wood project, so I called my Dad (who has a modest wood shop in his garage) and he agreed that it sounded like fun.</p>
<h2>The &#8220;Boring&#8221; (aka &#8220;Technical&#8221;) Stuff</h2>
<table cellspacing="10" cellpadding="0">
<tbody>
<tr>
<td><a href="http://elikirk.com/wp-content/uploads/2010/12/Trebuchet_Castelnaud.jpg" rel="prettyPhoto"><img class="size-medium wp-image-316" src="http://elikirk.com/wp-content/uploads/2010/12/Trebuchet_Castelnaud-300x225.jpg" alt="" width="300" height="225" /></a></td>
<td>With a trebuchet, the force to throw an object comes from a long arm that is mounted up high. One end of the arm has large counterweights attached to it, historically a large wooden bucket full of boulders, rocks, and dirt. The arm is &#8220;loaded&#8221; by being pulled down to the ground through the use of a rope or chain and fastened in place. This lifts the counterweight up high and stores <a href="http://en.wikipedia.org/wiki/Potential_energy" target="_blank">potential energy</a>. The projectile is put into a pouch with one side securely tied close to the top of the trebuchet swing arm. The other side has a loop that hangs loosely on a peg on top of this swinging arm. When the tension is released, the counterweight drops forcefully to the ground, turning the potential energy into kinetic energy, and bringing the opposite end with the projectile up into the air. The loose pouch loop slips off the arm at about 90 degrees, and by the time the arm reaches about 120 degrees the projectile clears the pouch. The pouch adds length to the rotation of the swing arm without extending the arm itself. The longer the lever (or arm), the faster the end is moving, throwing the projectile further and at a higher speed. Watch this <a href="http://www.teachersdomain.org/resource/hew06.sci.phys.maf.trebuchet/" target="_blank">4-minute video</a> of a full-size trebuchet being built and fired for another explanation (worth watching—they throw a piano).</td>
</tr>
</tbody>
</table>
<h2>The Build Stuff</h2>
<p>You would think that using design templates for page styles and diagrams to map out web functions would teach me that I should have drawn up detailed plans, but I suppose I figured that I had enough of an idea in my head I didn’t need one. Surprisingly enough, I did okay.</p>
<p>I’ve been asked a series of questions about how the trebuchet came together, what dimensions I used, etc. I did most of the building during the month of October, but I’ll try to remember the details and get them all in here.</p>
<table>
<tbody>
<tr>
<td style="padding-right: 10px;">The first dimension I needed to determine was the base size. From the base, I could decide roughly how high we could safely go and how long to make the swing arm. Since I would be transporting the trebuchet to the Slash and Bash in a 1997 Ford Ranger, I measured the bed of the truck and figured my base size from there. I think it ended up at about 32”x84”, which would allow the trebuchet to sit in the truck snugly with the tailgate down. I decided to use 2&#215;12 boards for the base, which was a touch arbitrary other than they were large and would probably hold up to more stress than I was going to give them. I knew that to throw a 5- to 10lbs pumpkin 50 feet, I would need well over 150 lbs. of counterweight. That meant that the frame would need to be able to hold up under repeated stress.With the base built and reinforced, it was time to cut and attach some supports that would hold the fulcrum. It seemed like 2&#215;10’s were just a little too big, so 2&#215;8’s were my choice for this. Since the trebuchet was being transported in a pickup, I didn’t want to drive around with the arm and fulcrum (the point at which a lever sits) still up on the supports. I needed a way to be able to partially disassemble the machine for transport. In addition, I didn&#8217;t want to make the uprights so tall that it would tip the whole machine over, so with these two factors in mind we made it a little over 6’ tall. We took 2&#215;8&#8242;s to 6’ and attached them with screws in the center of the base on opposite sides of the box. Again thinking of the repeated stress, we cut 2&#215;4’s and reinforced these sides. There was no rhyme or reason to the angle, as long as it formed a triangle, so we ran them from the inside corners up.</td>
<td>
<p><div id="attachment_315" class="wp-caption alignright" style="width: 235px"><a href="http://elikirk.com/wp-content/uploads/2010/12/trebuchet.jpg" rel="prettyPhoto"><img class="size-medium wp-image-315 " src="http://elikirk.com/wp-content/uploads/2010/12/trebuchet-225x300.jpg" alt="" width="225" height="300" /></a><p class="wp-caption-text">The base and uprights have been cut and attached. This was the end result on the first night of building.</p></div></td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<td>
<p><div id="attachment_313" class="wp-caption alignleft" style="width: 235px"><a href="http://elikirk.com/wp-content/uploads/2010/12/trebuchet2.jpg" rel="prettyPhoto"><img class="size-medium wp-image-313" src="http://elikirk.com/wp-content/uploads/2010/12/trebuchet2-225x300.jpg" alt="" width="225" height="300" /></a><p class="wp-caption-text">Picture on night number two.</p></div></td>
<td>For the fulcrum, I wanted it to be plenty reinforced to be able to hold the stress, but still light, so I bought a chain link fence end post and cut it to size with a metal grinder. The nice thing about chain link fences is that the companies make a few nice trim pieces such as end caps. We ground the ends down smooth and got rid of the rough spots with a metal file, drilled a hole in the caps and pipe, and then screwed them in with small machine screws, counter-tapped so they would sit flush with the caps.The swing arm was constructed out of a single 2&#215;8, 8’ long. Originally we didn’t do much to the board itself other than using a hole saw the same size as the fulcrum pipe to cut a notch where it would rest on the fulcrum, but to reinforce and keep the wood from splitting, we boxed in the end that the weight would be attached to. The weight was attached to the swing arm with a ⅜”x8” eye bolt, and the boxing proved to be more effective than we would realize, but I&#8217;ll get to that below. On the opposite end, we used the rod portion of a gate latch and then ground down the knob at the end to prevent the sling from catching when it slipped free during firing. For the ratio on where to put the “contact point” where the swing arm would rest on the fulcrum, I went online and found that 1:6 seemed to be popular, which put my measurements at 1’3” on the counterweight side and 6’9” on the projectile end. Last, we cut away some extra wood for weight and added another smaller eye bolt to hold the stationary side of the projectile pouch.</td>
</tr>
</tbody>
</table>
<p>To attach the swing arm to the fulcrum, we added a 2&#215;4 &#8220;side wing&#8221; on either side of the arm using Simpson® stair brackets. These are heavy-duty L-shaped brackets with holes for screws that are typically used on stair cases for reinforcing, but they worked great here. We then used two U-bolts (named for their letter &#8220;U&#8221; shape), bolted into the &#8220;wings.&#8221; Using a U-bolt on either side of the swing arm helped to stabilize it and prevent it from twisting on the the fulcrum when firing.</p>
<table>
<tbody>
<tr>
<td>The projectile pouch was made from two cheap basketball nets woven together with 40lbs-weight clothes line. The ends were pulled together and held with 280lbs-rated spring link clips.For the counter weight, I played with the idea of getting a pre-threaded pipe from the hardware store, hanging it from the eye bolt with two C-bolts (&#8220;C&#8221;-shaped bolts that have sides that screw closed), and then putting various weights on the end to adjust depending on the weight of the pumpkin. The trouble with that philosophy is that it wasn’t cost-effective. Even at Wally World the individual weights used in weight lifting ran about $1 per pound, and more for the larger weights. E-bay or Craigs List could have helped in this regard, but I found a great alternative. While browsing at the hardware store, I got the idea of putting a t-junction on the pipe, put some 4” pipes in the t-junction, lower the t-junction into a standard 5-gallon bucket (like an upside-down letter &#8220;T&#8221;) and then fill said bucket with concrete. This proved to be a simple and cost-effective solution, as each bucket held 80lbs of concrete. Some spare cast iron weights from my father’s shed were slid over the pipe to prevent them from falling off, which added an extra 40lbs, for a total of 200lbs.</td>
<td>
<p><div id="attachment_312" class="wp-caption alignright" style="width: 160px"><a href="http://elikirk.com/wp-content/uploads/2010/12/trebuchet_trigger.jpg" rel="prettyPhoto"><img class="size-thumbnail wp-image-312" src="http://elikirk.com/wp-content/uploads/2010/12/trebuchet_trigger-150x150.jpg" alt="" width="150" height="150" /></a><p class="wp-caption-text">Picture of the trigger mechanism.</p></div></td>
</tr>
</tbody>
</table>
<p>To hold the arm down under tension, we tied a thick rope around the swing arm so it would be at 90 degrees to the back of the base when the arm was in a &#8220;loaded&#8221; position. Using three circles cut from 1&#215;10 birch, we constructed a trigger mechanism that was used in the middle ages on larger trebuchets. We started by removing two 90-degree pie-shaped pieces from the outer circles. The middle circle was cut similarly, but an extra few inches was cut from the left side. When glued and screwed together, this created a sandwich effect that allowed the rope to slide past the middle circle and hold onto the outer two circles with a knot. The other cut in all three pieces was for a lever that held the circle in place under tension. A hole was drilled into the lever and a wooden dowel was glued and bolted into the hole. This would allow the operator to stand clear of the swinging arm. The dowel was pulled down, the lever rotated up a few degrees, and as it cleared the wooden circle, the stress of the counterweight caused the circle to turn, releasing the rope holding it down.</p>
<div id="attachment_347" class="wp-caption aligncenter" style="width: 810px"><img class="size-full wp-image-347" src="http://elikirk.com/wp-content/uploads/2010/12/treb_trig_diagram.jpg" alt="" width="800" height="331" /><p class="wp-caption-text">To fire, the (1) lever is pulled to the right, which forces the (2) trigger lock up, allowing the (3) trigger wheel to spin freely and release the tension on the (4) knot, which in turn releases the (5) rope, firing the trebuchet.</p></div>
<p>The final anti-stress measure was something I picked up from a History Channel special on siege weaponry: wheels. Like many people, I had always assumed that the purpose of wheels on an trebuchet or catapult was purely for transportation, but that is only a part of their function. The addition of wheels would allow the extra kinetic energy to be released by causing the trebuchet to swing back and forth as the counterweight lost momentum. This was actually one of the more expensive parts of the build, at about $20/wheel (they were spare wheels for hand trucks). After the Slash n&#8217; Bash was over I found solid wheels for general use at Cal-Ranch for closer to $8/wheel. If I were to do this over again, you can bet that those would have been the wheels I would use. The wheels were attached to the base with 3/8&#8243;x6&#8243; carriage bolts, using fender washers on either side of the wood.</p>
<h2>The Fun Stuff</h2>
<p><strong>Click on the images for an enlarged view</strong></p>
<table>
<tbody>
<tr>
<td style="width: 200px;">
<p><div id="attachment_317" class="wp-caption alignleft" style="width: 160px"><a href="http://elikirk.com/wp-content/uploads/2010/12/trebuchet_test1.jpg" rel="prettyPhoto"><img class="size-thumbnail wp-image-317" src="http://elikirk.com/wp-content/uploads/2010/12/trebuchet_test1-150x150.jpg" alt="" width="150" height="150" /></a><p class="wp-caption-text">Loaded and ready to go - myself with my father and his dog.</p></div></td>
<td style="width: 200px;">
<p><div id="attachment_318" class="wp-caption alignleft" style="width: 160px"><a href="http://elikirk.com/wp-content/uploads/2010/12/trebuchet_test6.jpg" rel="prettyPhoto"><img class="size-thumbnail wp-image-318" src="http://elikirk.com/wp-content/uploads/2010/12/trebuchet_test6-150x150.jpg" alt="" width="150" height="150" /></a><p class="wp-caption-text">Our &quot;test projectile&quot; in flight</p></div></td>
<td style="width: 200px;">
<p><div id="attachment_391" class="wp-caption alignleft" style="width: 160px"><a href="http://elikirk.com/wp-content/uploads/2010/12/IMG_2988.jpg" rel="prettyPhoto"><img class="size-thumbnail wp-image-391" src="http://elikirk.com/wp-content/uploads/2010/12/IMG_2988-150x150.jpg" alt="" width="150" height="150" /></a><p class="wp-caption-text">Emily Franson prepares to fire the war machine</p></div></td>
<td style="width: 200px;">
<p><div id="attachment_390" class="wp-caption alignleft" style="width: 160px"><a href="http://elikirk.com/wp-content/uploads/2010/12/IMG_2979.jpg" rel="prettyPhoto"><img class="size-thumbnail wp-image-390" src="http://elikirk.com/wp-content/uploads/2010/12/IMG_2979-150x150.jpg" alt="" width="150" height="150" /></a><p class="wp-caption-text">Scott Smith and I load the trebuchet</p></div></td>
</tr>
</tbody>
</table>
<p>At the Slash and Bash event, the trebuchet garnered some attention. Due to the limit of 200lbs on the counterweight, the pumpkins couldn’t weigh much over 15 lbs. We tried firing a few larger pumpkins, and it worked, but they often didn’t fly far enough to break open solidly. Still, the machine shot orange projectiles into messy piles for an hour and half. Before I said that boxing in the end of the swing arm was a smart idea. As the Slash and Bash came to a close, we tried firing a larger pumpkin that caused a little too much strain on the opposite end, because the two concrete-filled buckets crashed down to the ground after firing. Upon examination, we learned that the eye bolt holding the weight had stretched and eventually snapped, shearing it fairly clean at the board. We didn’t imagine the wood actually holding up better than the bolt. It’s not the end of the machine, though. A larger bolt could easily be put in just above it.</p>
<p>In total, the trebuchet cost around $430 and took my father and I about 50 or 60 total man-hours, but it was fun to work on another project with him. According to Lance, next year Eli Kirk will be building another machine—a little larger, a lot more weight. Who knows? Maybe in the future we’ll have a team to drive a competition “Punkin’ Chunkin’” machine to the World Championships in Delaware.</p>
]]></content:encoded>
			<wfw:commentRss>http://elikirk.com/2011/08/03/fling-thing-pumpkin-chuckin-on-the-cheap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Social Media and the Bottom Line: Why You Can&#8217;t Afford Not to Tweet</title>
		<link>http://elikirk.com/2010/12/14/social-media-and-the-bottom-line-why-you-cant-afford-not-to-tweet/</link>
		<comments>http://elikirk.com/2010/12/14/social-media-and-the-bottom-line-why-you-cant-afford-not-to-tweet/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 19:13:39 +0000</pubDate>
		<dc:creator>Connor</dc:creator>
				<category><![CDATA[Business Tip]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[ceo]]></category>
		<category><![CDATA[company culture]]></category>
		<category><![CDATA[customer service]]></category>
		<category><![CDATA[executive]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[social networking]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://elikirk.com/?p=295</guid>
		<description><![CDATA[Just a few years ago, the blogging revolution swept through the business community like wildfire. Corporate executives across a variety of industries joined in, participating in one of the first convergences of digital social media and business. As one example, Former Sun Microsystems CEO Jonathan Schwartz&#8212;dubbed &#8220;Blogger in Chief&#8221; in 2006 by Fortune Magazine&#8212;noted the [...]]]></description>
			<content:encoded><![CDATA[<p>Just a few years ago, the blogging revolution swept through the business community <a href="http://www.businessweek.com/bwdaily/dnflash/content/feb2008/db20080219_908252.htm">like wildfire</a>. Corporate executives across a variety of industries joined in, participating in one of the first convergences of digital social media and business. </p>
<p>As one example, Former Sun Microsystems CEO Jonathan Schwartz&#8212;dubbed &#8220;Blogger in Chief&#8221; in 2006 by <a href="http://money.cnn.com/magazines/fortune/fortune_archive/2006/11/13/8393166/index.htm">Fortune Magazine</a>&#8212;<a href="http://blogs.sun.com/jonathan/entry/sunlight">noted the importance</a> of transparency among corporate staff, even considering it &#8220;an outright competitive weapon.&#8221; Describing why he was so big on blogging, he told Fortune:</p>
<blockquote><p>My No. 1 priority isn&#8217;t spending time communicating; it&#8217;s ensuring that my communications are broadly received. Blogging to me has become the most efficient form of communication. When I blog I&#8217;m talking to the world. I can write a blog in an hour and a half and share something substantive with everyone. But for me to get to São Paulo for a meeting with Brazilian customers is easily a two-day operation.</p></blockquote>
<h3>Tearing Down Corporate Walls</h3>
<p>One of the most important and positive aspects that arose from the proliferation of blogs is the progress made in dismantling corporate bureaucracy. Suddenly, customers and consumers had access to the mind of the CEO (filtered, as it may or may not be, by the PR team) and felt a connection with an individual who until then was shrouded in mystery behind layers of subordinates. </p>
<p>That trend has continued with the introduction of newer technologies&#8212;the backbone of our modern &#8220;social media&#8221; world. Facebook, Twitter, YouTube, Foursquare, Groupon, and other services have further revolutionized the way companies do business. While the benefits are clear from an individual standpoint, many companies&#8212;especially larger ones with tradition, structure, and lethargic innovation&#8212;have struggled along the way to adapt.</p>
<p>It&#8217;s a good question: how can I use all this social media stuff to increase my company&#8217;s bottom line? Will I be wasting time by using Facebook and blogging about a product we&#8217;re working on, or will this translate somehow into increased revenue? In short, is it worth my time and energy?</p>
<h3>Social Stats</h3>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td valign="top">
<img src="http://farm4.static.flickr.com/3285/2945559128_0a8871d33d_o.jpg" alt="" width="300" height="251" />
</td>
<td valign="top">
Answering that question requires understanding just what the social media landscape looks like. One can <a href="2010 social media statistics">quickly drown</a> in all of the related statistics, so here&#8217;s just a few:</p>
<ul>
<li><strong>Facebook.</strong> The average user has more than 130 friends and is connected to 60 pages, groups, and events. Over 150 million people engage with Facebook on external sites (such as yours!) each month. Over 25 <em>billion</em> pieces of content are shared each month. Over 100 million active users visit Facebook on a mobile device. </li>
<li><strong>Twitter.</strong> 300,000 new users join per day, pushing Twitter over around 110 million total users. There are 600 million searches every day, with 50,000 third-party apps to access the service. Over 60% of users are outside the U.S. and more than a third access Twitter with a mobile device.</li>
<li><strong>LinkedIn.</strong> More than 70 million users come from more than 200 countries. 80% of companies use the service as a recruitment tool, and executives from all Fortune 500 companies are on LinkedIn. Recruiters account for 1 in 20 profiles on the site.</li>
<li><strong>YouTube.</strong> 2 billion viewers access the site each day, with 70% in the U.S. Half of users are under 20 years old, and 24 hours of video are uploaded every minute. The site uses the same amount of bandwidth as the entire internet used just a decade ago.</li>
</ul>
</td>
</tr>
</table>
<p>Other major players such as Foursquare, MySpace and Groupon boast similar impressive statistics. Taken as a whole, it&#8217;s clear that social media can&#8217;t be ignored. The question is: how can it help your business?</p>
<p><img src="http://www.webdoctus.com/wp-content/uploads/2010/01/Donut-Marketing.gif" alt="" align="right" width="350" height="432" /></p>
<h3>Wading into the Social Media Pool</h3>
<p>A <a href="http://www.marketingforecast.com/archives/3706">recent survey</a> of 1,100 small business owners found that some of the biggest benefits of social networking amongst the respondents were the abilities to generate leads, keep up with industry trends, and monitor what others were saying about their business.</p>
<p>That same survey showed that 25% of small business owners are spending more money on social networking this year than the last; whether their efforts are experimental or intentionally profitable, the perceived benefit is clear: social media is a must.</p>
<p>Going from small businesses to larger corporations finds similar results. In a <a href="http://moblogsmoproblems.blogspot.com/2010/03/senior-marketing-execs-see-their.html">recent study</a> of high-level marketing executives, 70% plan new social media initiatives in 2010. 92% said they personally use LinkedIn, versus 56% on Facebook. While 28% planned to use internal resources to launch new initiatives, 25% rely on social media consultants.</p>
<p>While the trend started with blogging, it has become much more diverse. And yet, despite the many avenues for social media that now exist, blogging is still wildly popular; many other services are intended for short, quick messages, whereas blogging is for longer, more detailed content. If somebody wants to find out what new product a company is working on, they might find that on their blog. If he wants to get a question answered or submit an idea, he&#8217;ll likely do that on Twitter.</p>
<p>Determining which social networks to engage your customers with first requires knowing who your customers are and which networks <em>they</em> use. There&#8217;s no point in spending time advertising your services through an outlet that has no audience. </p>
<h3>How to Get Started</h3>
<p>Once you&#8217;ve determined which networks are worth joining (Facebook and Twitter will usually always be on the list, and at the top), there are a few tips to keep in mind:</p>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td valign="top">
<img src="http://www.webdoctus.com/wp-content/uploads/2010/01/Social-Media-Building.gif" alt="" align="left" width="350" height="438" />
</td>
<td valign="top">
<ul>
<li><strong>Observe.</strong> Before creating an account for your company or product, lurk. Spend time seeing what others are saying. Search for your company or product&#8217;s name to observe what the reactions are, and with what frequency it&#8217;s being discussed.</li>
<li><strong>Compare.</strong> Learn from the successes and mistakes of others. Find out how your competitors are using social media, and check out companies in other industries as well for fresh ideas and potential applications in your own field.</li>
<li><strong>Promote.</strong> Once you&#8217;ve joined a network, use it to your advantage. Generate interest in your company or product by conducting contests, giveaways, or offering exclusive promotions for those who follow/friend you on that network. Make your social media customers feel special, and they&#8217;ll become some of your most vocal evangelists. In effect, you turn your audience into a diverse marketing department, selling your products on your behalf&#8212;for free.</li>
<li><strong>Converse.</strong> One of the selling points of blogs is the ability for people to comment and interact with the author; being able to directly question a CEO or entrepreneur without having to get lost in a pile of emails, or screened by an unsympathetic secretary, has made the platform of a success. Allow for a similar dialogue to occur on the other social networks by responding to others who are talking about your business. Ask them for feedback, and allow them to submit their ideas and suggestions. In this case, you can turn your audience into research, innovation, and QA departments, by encouraging them to help you make your product better.</li>
<li><strong>Measure.</strong> Be sure to use analytics to track links to your site so you can effectively determine how well certain offers or incentives are performing. Seeing aggregated data will allow you to be better informed in creating future incentives and targeting your campaigns to those who will be most likely to respond.</li>
</ul>
</table>
<h3>Challenges</h3>
<p>Migrating to a new advertising platform can be unsettling for an executive looking to wisely budget market dollars. As you consider how best to harness social media for your business&#8217; needs, there are a few things to keep in mind.</p>
<ul>
<li><strong>Permeation.</strong> Social media isn&#8217;t just for the boss. Employees can (and likely already do) use Facebook, Twitter, and other networks. As your company determines how best to become involved, keep in mind that social media can touch every aspect of your business: marketing (the first area most think of), customer service (ostensibly the most important use of corporate social media), public relations, lead gen, human relations, etc. As you begin to peel layers of bureaucracy away from your corporate structure by allowing social network participants to get a &#8220;behind the scenes&#8221; or more direct glimpse into your business, be prepared to assess how that process will affect every aspect of your organization.</li>
<li><strong>Transparency.</strong> The natural effect of social media is transparency, as Schwartz mentioned, but your company will need to determine how &#8220;open&#8221; you&#8217;re willing to be. This will ultimately be a reflection of your corporate culture; companies like <a href="http://www.apple.com">Apple</a> are very secretive and structured, whereas companies like <a href="http://www.mailchimp.com">MailChimp</a> freely use social media for all sorts of situations. How comfortable is your company in sharing details about business processes, new product development, and even mistakes and glitches you&#8217;ve learned from and commit to improve upon?</li>
<li><strong>Legal.</strong> It&#8217;s not uncommon to hear of employees being terminated for something having to do with social media. For example, a new employee hired by Google in 2005 was <a href="http://news.cnet.com/Google-blogger-has-left-the-building/2100-1038_3-5567863.html">let go less than a month later</a>. The reason? The individual was blogging about his experience through the hiring process and integrating into the new company. Google&#8217;s culture did not tolerate such transparency, so he was fired. Heather Armstrong, <a href="http://www.dooce.com">a popular blogger</a>, was let go from her job in 2002 for blogging about her co-workers. Numerous other examples exist. How will your company handle employees talking about your business to friends and the world at large? What rules of engagement will you establish and require of them? Will they be a virtual arm of your customer service department, or will you ask them not to speak on the company&#8217;s behalf whatsoever?</li>
<li><strong>Measurement.</strong> Social media activity can quickly become a black hole of both time and money if not leveraged wisely. If your company plans to spend money on online advertising, exclusive incentives for social networking users, etc., it&#8217;s imperative that you track how well the campaign performs so you quickly learn how and where you should (and should not) be investing your dollars. </li>
</ul>
<h3>Conclusion</h3>
<p>Social media isn&#8217;t a difficult concept to grasp; as with other new technologies, one can &#8220;learn by doing&#8221;. Observe how others use it, and how successful individuals and businesses have harnessed its positive features for increasing their bottom line. Jump in, have fun, and explore new opportunities to engage with existing customers&#8212;and attract new ones!</p>
]]></content:encoded>
			<wfw:commentRss>http://elikirk.com/2010/12/14/social-media-and-the-bottom-line-why-you-cant-afford-not-to-tweet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eli Kirk Acquires M2 Results</title>
		<link>http://elikirk.com/2010/12/03/eli-kirk-acquires-m2-results/</link>
		<comments>http://elikirk.com/2010/12/03/eli-kirk-acquires-m2-results/#comments</comments>
		<pubDate>Fri, 03 Dec 2010 18:45:34 +0000</pubDate>
		<dc:creator>lance</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Press]]></category>

		<guid isPermaLink="false">http://elikirk.com/?p=285</guid>
		<description><![CDATA[FOR IMMEDIATE RELEASE Top Utah County Creative Agency Eli Kirk Acquires M2 Results of Salt Lake City PROVO, Utah — December 3, 2010 — Today Eli Kirk announced the acquisition of M2 Results, a leading brand strategy and marketing firm located in Salt Lake City. Central to the purchase are the transfer of M2’s client [...]]]></description>
			<content:encoded><![CDATA[<p>FOR IMMEDIATE RELEASE</p>
<p><strong>Top Utah County Creative Agency Eli Kirk Acquires M2 Results of Salt Lake City</strong></p>
<p>PROVO, Utah — December 3, 2010 — Today Eli Kirk announced the  acquisition of M2 Results, a leading brand strategy and marketing firm  located in Salt Lake City. Central to the purchase are the transfer of  M2’s client base and acquisition of Brand Effect™, the firm’s proven  brand strategy development methodology.</p>
<p>“We are excited to extend our leadership in brand management, website  development, marketing and award-winning creativity with M2’s deep  background in brand development and marketing strategy,” said Eli Kirk  President Lance Black. “We believe this acquisition will help us  increase the breadth and depth of our offerings by strengthening the  brand cultures and marketing programs we develop for our clients.”</p>
<p>As part of the acquisition, M2 principal Bill Brady will join Eli Kirk  as vice president of strategy, overseeing brand development, market  research and marketing strategy for the combined client base, which  ranges from successful local businesses including BYU, Cascade Collision  and Corporate Alliance to multinational companies, including Novell,  Adobe, LANDesk and Hewlett-Packard.</p>
<p>“I have long respected Eli Kirk for their unrivaled brand and marketing  creativity and for their outstanding website design and development,”  Brady said. “I am excited to join such a talented team.”</p>
<p>In order to maximize the service provided to clients, Brady will  maintain an office in Salt Lake City, expanding Eli Kirk’s geographic  footprint and increasing its presence in Salt Lake County and northward.</p>
<p>About Eli Kirk<br />
Founded in 2001 and headquartered in Provo, Utah, Eli Kirk is a leading  brand management, web development, and marketing firm focused on  creating memorable brands that produce measurable results. As one of  Utah’s top creative agencies, the firm’s team of 30+ employees produces  award-winning websites and creative work, all focused on building brand  identities that drive customer loyalty and create lasting business  value. For more information about Eli Kirk, visit www.elikirk.com.</p>
<p>Contact: Emily Franson, PR Director<br />
emily@elikirk.com, 801-377-9321 x219</p>
<p>﻿</p>
]]></content:encoded>
			<wfw:commentRss>http://elikirk.com/2010/12/03/eli-kirk-acquires-m2-results/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using jQuery in WordPress</title>
		<link>http://elikirk.com/2010/02/26/using-jquery-in-wordpress/</link>
		<comments>http://elikirk.com/2010/02/26/using-jquery-in-wordpress/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 00:13:12 +0000</pubDate>
		<dc:creator>Chris Rock</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://elikirk.com/?p=48</guid>
		<description><![CDATA[WordPress allows you to easily integrate various Javascript libraries by using the wp_enqueue_script function. WordPress mainly uses Prototype (notably in the admin), but you are free to you whichever library you&#8217;d like. wp_enqueue_script&#40;'jquery'&#41;; However, if you use jQuery, you need to be aware that you won&#8217;t be able to use the &#8220;$&#8221; function. Instead, you&#8217;ll [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress allows you to easily integrate various Javascript libraries by using the <code>wp_enqueue_script</code> function. WordPress mainly uses Prototype (notably in the admin), but you are free to you whichever library you&#8217;d like.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">wp_enqueue_script<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'jquery'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>However, if you use jQuery, you need to be aware that you won&#8217;t be able to use the &#8220;$&#8221; function.  Instead, you&#8217;ll have to use the <code>jQuery</code> function.  This is because when WordPress includes jQuery, it runs the <code>jQuery.noConflict()</code> function.  This prevents possible conflicts with the Prototype library, which also uses the &#8220;$&#8221;.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// Not normally usable in wordpress</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#myid'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> myFunction<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// Use this instead</span>
jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#myid).bind('</span>click<span style="color: #3366CC;">', myFunction);</span></pre></div></div>

<p>If you still want to use the &#8220;$&#8221; function you can either edit the /wp-includes/js/jquery/jquery.js file and remove the <code>jQuery.noConflict()</code> function call, or you can include the following code in your theme&#8217;s functions.php file:</p>
<pre>
if( !is_admin()){
   wp_deregister_script('jquery');
   wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"), false, '');
   wp_enqueue_script('jquery');
}
</pre>
<p>This removes the regular jQuery library that&#8217;s included with WordPress and uses the one that Google uses.  The added benefit to this is that you usually get a more recent version of jQuery this way.</p>
]]></content:encoded>
			<wfw:commentRss>http://elikirk.com/2010/02/26/using-jquery-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Animated Accordion-like Dropdown in Dojo</title>
		<link>http://elikirk.com/2010/02/10/hello-world/</link>
		<comments>http://elikirk.com/2010/02/10/hello-world/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 17:19:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[dojo]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://elikirk.com/?p=1</guid>
		<description><![CDATA[It&#8217;s a pretty simple request; present a list of individuals, and when you click on their name, have their bio dynamically drop down below their name. Here&#8217;s how we implemented that using the Javascript library Dojo. HTML Markup First, we created the HTML markup. The current trend is to completely separate markup and Javascript. Stylistically, [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s a pretty simple request; present a list of individuals, and when you click on their name, have their bio dynamically drop down below their name.</p>
<p>Here&#8217;s how we implemented that using the Javascript library Dojo.</p>
<h3>HTML Markup</h3>
<p>First, we created the HTML markup.  The current trend is to completely separate markup and Javascript.  Stylistically, I also like to keep the markup as clean as possible, without overusing ids and classes.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;ul class=&quot;bio-list&quot;&gt;
  &lt;li&gt;
    &lt;a href=&quot;#&quot;&gt;Richard Feynmann&lt;/a&gt;
    &lt;div&gt;
      An American physicist known for his work in the path integral formulation
      of quantum mechanics, the theory of quantum electrodynamics and the
      physics of the superfluidity of supercooled liquid helium.
    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;a href=&quot;#&quot;&gt;Nikola Tesla&lt;/a&gt;
    &lt;div&gt;
      An inventor and a mechanical and electrical engineer. He was one of the
      most important contributors to the birth of commercial
      electricity.
    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;</pre></div></div>

<h3>Javascript</h3>
<p>Now for the fun part.  First we&#8217;ll need an initializer method that will be called once the document is loaded.  This will do three things:</p>
<ol>
<li>Create a span block that will hold the bio content (more about this later).</li>
<li>Hide all the spans that contain the bio.</li>
<li>Connect an event listener to each link that will trigger a expand/contract toggle function, which we&#8217;ll create later.</li>
</ol>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> bioInit<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #006600; font-style: italic;">// Dynamically create container div for smooth wipeIn effect</span>
  dojo.<span style="color: #660066;">query</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.bio-list li &gt; div'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">forEach</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>s<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> x <span style="color: #339933;">=</span> dojo.<span style="color: #660066;">create</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'div'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span> className<span style="color: #339933;">:</span> <span style="color: #3366CC;">'bio-text'</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> s.<span style="color: #660066;">parentNode</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    x.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>s<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// Move bio contents to the container</span>
    x.<span style="color: #660066;">style</span>.<span style="color: #660066;">display</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'none'</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// Hide the span</span>
  <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #006600; font-style: italic;">// Connect event listener to each name</span>
  dojo.<span style="color: #660066;">query</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.bio-list li &gt; a'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">forEach</span><span style="color: #009900;">&#40;</span>
    <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>s<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      dojo.<span style="color: #660066;">connect</span><span style="color: #009900;">&#40;</span>s<span style="color: #339933;">,</span> <span style="color: #3366CC;">'onclick'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'bioToggle'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h4>Creating a Container Element</h4>
<p>If your bio has any <code>margin</code> or <code>padding</code> styles associated with it, the <code>dojo.fx.wipeIn</code> animation that we want to use will render strangely<sup>[<a href="#1">1</a>]</sup>.  To get around this, we&#8217;ll be making a container element (a <code>div</code> in this case) for it.</p>
<p>First, we&#8217;re using the useful <code>dojo.query</code> function to search for specific elements withing the DOM (All <code>div</code> elements that are direct children of <code>li</code> elements in the element with the class &#8220;<code>bio-list</code>&#8220;)<sup>[<a href="#2">2</a>]</sup>.</p>
<p>Then for each bio that we find, we create a new <code>div</code> element using <code>dojo.create</code>, give it the class name &#8220;bio-text&#8221;, and attach it to the parent node of the element.  The class name allows us to style this container specifically if we want, as well as making it easier to find later.</p>
<p>Then by using <code>appendChild</code>, we move the <code>div</code> element that we found (the bio) into the containing <code>div</code> container we just created.</p>
<h4>Expand/Collaspe Toggle Fucntion</h4>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> bioToggle<span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  dojo.<span style="color: #660066;">stopEvent</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// Stop link from processing</span>
&nbsp;
  <span style="color: #006600; font-style: italic;">// Find the container span</span>
  <span style="color: #003366; font-weight: bold;">var</span> bio <span style="color: #339933;">=</span> dojo.<span style="color: #660066;">query</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.bio-text'</span><span style="color: #339933;">,</span> e.<span style="color: #660066;">target</span>.<span style="color: #660066;">parentNode</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #006600; font-style: italic;">// If it's closed, open it</span>
  <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>bio.<span style="color: #660066;">style</span>.<span style="color: #660066;">display</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">'none'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    dojo.<span style="color: #660066;">fx</span>.<span style="color: #660066;">wipeIn</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span> 
      node<span style="color: #339933;">:</span> bio<span style="color: #339933;">,</span>
      onBegin<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 
        bio.<span style="color: #660066;">style</span>.<span style="color: #660066;">height</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'1px'</span><span style="color: #339933;">,</span>
        bio.<span style="color: #660066;">style</span>.<span style="color: #660066;">display</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'block'</span>
      <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">play</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    dojo.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span>e.<span style="color: #660066;">target</span>.<span style="color: #660066;">parentNode</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'bio-down'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #006600; font-style: italic;">// If it's opened, close it</span>
  <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
    dojo.<span style="color: #660066;">fx</span>.<span style="color: #660066;">wipeOut</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
      node<span style="color: #339933;">:</span> bio<span style="color: #339933;">,</span>
      onEnd<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> bio.<span style="color: #660066;">style</span>.<span style="color: #660066;">display</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'none'</span> <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">play</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    dojo.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span>evt.<span style="color: #660066;">target</span>.<span style="color: #660066;">parentNode</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'bio-down'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>We use <code>dojo.query</code> to find the container <code>div</code> that has the bio.  Notice that we&#8217;re passing a second argument to <code>dojo.query</code>.  This is the root element from which the query search will start, in this case, <code>e.target.parentNode</code>.  This way we only get the <code>div.bio-text</code> block that&#8217;s associated with the <code>li</code> element that was clicked, rather than every <code>div.bio-text</code> block on the page.</p>
<p>Also, because <code>dojo.query</code> always returns an array, we&#8217;re grabbing the first element of that array with <code>[0]</code>at the end of our query statement.</p>
<p>To open and close the bio, we&#8217;re using the <code>dojo.fx.wipeIn</code> and <code>dojo.fx.wipeOut</code> functions.  Each function takes an object as an argument and returns a <code>dojo._Animation</code>.  Because of this, it&#8217;s very important to call the <code>play()</code> function at the end, or it won&#8217;t animate.</p>
<p>Notice also that we&#8217;ve added custom <code>onBegin</code> and <code>onEnd</code> functions in the object we&#8217;re passing to <code>dojo.fx.wipeIn</code>.  This allows us to smoothly show and hide the elements at the right times.</p>
<p>We&#8217;re also calling the <code>dojo.addClass</code> to the parent <code>li</code> element, so that we can then style a visual cue for the drop-down.  (In our case, we used an arrow pointing right for the closed state and an arrow pointing down for the open state.)</p>
<h4>Javascript Initialization</h4>
<p>Be sure to add these to the Javascript file so they&#8217;ll load and initialize properly.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">dojo.<span style="color: #660066;">require</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;dojo.fx&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
dojo.<span style="color: #660066;">addOnLoad</span><span style="color: #009900;">&#40;</span>bioInit<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<h3>Conclusion</h3>
<p>An example of how this works can be seen on the <a href="http://www.littleheroesfoundation.org/about/board_of_directors.php">Board of Directors</a> page on the <a href="http://www.littleheroesfoundation.org/">Little Heroes Foundation</a> web site that we created.</p>
<hr />
<h3>Notes</h3>
<p><a name="1">[1]</a>: This is because the <code>dojo.fx.wipeIn</code> function uses the &#8216;height&#8217; style, which is independent of padding and margins.</p>
<p><a name="2">[2]</a>: If we used the CSS selector <code>'.bio-list li div'</code> (instead of <code>'.bio-list li > div'</code>) it could cause problems if there are <code>div</code> elements within your <code>div</code> element.</p>
]]></content:encoded>
			<wfw:commentRss>http://elikirk.com/2010/02/10/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

