<?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>Half-Elf on Tech</title>
	<atom:link href="http://halfelf.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://halfelf.org</link>
	<description>Half Elf, Full B.I.T.C.H.*</description>
	<lastBuildDate>Thu, 17 May 2012 20:37:45 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-beta4-20821</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>WordPress 3.4 &#8211; No Problem</title>
		<link>http://halfelf.org/2012/wordpress-3-4-no-problem/</link>
		<comments>http://halfelf.org/2012/wordpress-3-4-no-problem/#comments</comments>
		<pubDate>Thu, 17 May 2012 20:24:16 +0000</pubDate>
		<dc:creator>Ipstenu</dc:creator>
				<category><![CDATA[Emphera]]></category>
		<category><![CDATA[essay]]></category>
		<category><![CDATA[support]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://halfelf.org/?p=2116</guid>
		<description><![CDATA[Now that I've said it, I'm doomed, but I haven't run into any major issues with WP 3.4 beta. Actually, I'm using it on this site right now.]]></description>
			<content:encoded><![CDATA[<p><img src="http://halfelf.org/files/2012/05/wp-dkblue-blue-2650x1600-300x181.png" alt="" title="wp-dkblue-blue-2650x1600" width="300" height="181" class="alignleft size-medium wp-image-2153" />It&#8217;s in beta, don&#8217;t nobody panic.</p>
<p>The last 3 releases of WP, I&#8217;ve made troubleshooting posts about what to do, what plugins are going to barf, and so on. This time, there really doesn&#8217;t seem as much to worry about. Of course, having said that, everything will die in a fire. Actually, though, I haven&#8217;t made a list of things yet, because there&#8217;s nothing to list. I&#8217;ve not run into any stand out &#8216;Oh shits!&#8217; and the forums are remarkably quiet. So. If you&#8217;ve got stupid problems, or found you have to edit themes/plugins, please reply and let me know! I&#8217;ll get on it.</p>
<p>So here&#8217;s some of the cool new stuff:</p>
<p><strong><a href="http://wpdevel.wordpress.com/2012/04/26/new-version-of-akismet-plugin-released-2-5-6-blog/">Akismet 2.5.6</a></strong></p>
<p><strong><a href="http://make.wordpress.org/themes/2012/04/06/updating-custom-backgrounds-and-custom-headers-for-wordpress-3-4/">Custom Headers and Backgrounds</a></strong> &#8212; See also <a href="http://sabreuse.com/flexible-headers-in-wordpress-3-4-themes/">Flexible Headers in 3.4 Themes</a> and <a href="http://sabreuse.com/backwards-compatibility-for-wordpress-3-4-headers-and-backgrounds/">Backwards Compatibility for WP 3.4 Headers and Backgrounds</a></p>
<p><strong><a href="http://codex.wordpress.org/Embeds">Twitter was added to oEmbeds</a></strong> &#8212; This should just work out of the box, but if you have a plugin (like Blackbird Pie), you may want to disable it before upgrading.</p>
<p>RPC-XML support for Custom Post-Types.</p>
<p><strong><del datetime="2012-05-17T20:37:20+00:00">Admin</del> Toolbar To The Top!</strong> Click on any blank space in the admin bar and you go to the top of the page. (It&#8217;s the toolbar, damn it, I know this!)</p>
<p><strong>Sexier Theme Options.</strong> Have you ever wanted to see what the changes did to your theme on the fly? Go to WP Admin > Themes and click on <em>Customize Theme</em> to get a quick way to see what you&#8217;re tweaking. Not every option is there, nor will every option be added, but this is pretty nice!<br />
<a href="http://halfelf.org/2012/wordpress-3-4-no-problem/themeoptions/" rel="attachment wp-att-2117"><img src="http://halfelf.org/files/2012/05/ThemeOptions-300x128.jpg" alt="Theme Options" title="Theme Options" width="300" height="128" class="aligncenter size-medium wp-image-2117" /></a></p>
<p>You also get that view when you preview a theme.</p>
<p>Of note, Twenty Twelve and Favicons got punted to 3.5.</p>
]]></content:encoded>
			<wfw:commentRss>http://halfelf.org/2012/wordpress-3-4-no-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery &#8211; Why U No Enqueued?</title>
		<link>http://halfelf.org/2012/jquery-why-u-no-enqueued/</link>
		<comments>http://halfelf.org/2012/jquery-why-u-no-enqueued/#comments</comments>
		<pubDate>Mon, 14 May 2012 13:43:57 +0000</pubDate>
		<dc:creator>Ipstenu</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://halfelf.org/?p=2136</guid>
		<description><![CDATA[There are some pretty basic things done wrong when calling js files in WordPress plugins. Let's fix that.]]></description>
			<content:encoded><![CDATA[<p><img src="http://halfelf.org/files/2012/05/devo-cover-300x200.jpg" alt="Devo" title="Devo" width="300" height="200" class="alignleft size-medium wp-image-2140" />This is a followup to my <a href="http://halfelf.org/2012/submitting-wp-plugins/" title="How To Submit a WordPress Plugin">how to get your plugin in the WordPress repository</a> post.</p>
<p>While code isn&#8217;t outright rejected for being &#8216;bad&#8217; code (only security holes and guideline violations), a lot of plugins are doing the easy things wrong. These plugins will get approved, but they won&#8217;t work with all setups, they&#8217;re more likely to have issues with Multisite, and they&#8217;re just not thinking forward. They aim to solve a, singular, problem, without looking beyond. Primarily I see this when people are trying to bring in some js code into their plugin. Heavens knows I do it, and I&#8217;ve done it wrong too. But as I see more and more plugins, I&#8217;m starting to get better and better at knowing what&#8217;s wrong when I see it. <a class="simple-footnote" title="&#8220;I know it when I see it&#8221; thanks to United States Supreme Court Justice Potter Stewart" id="return-note-2136-1" href="#note-2136-1"><sup>1</sup></a></p>
<p>The easiest way to show you is to give you some really bad examples and go through some of the steps to fix it. The best part is that I&#8217;m actually going to use <em>real</em> plugins I&#8217;ve seen. Only the name has been changed to protect the innocent.</p>
<p>Ready? Here&#8217;s what we&#8217;re doing wrong.</p>
<h2>Not using functions to define locations</h2>
<p>The very bad code:</p>
<pre class="brush: php; title: ; notranslate">echo '&lt;script src=&quot;/wp-content/plugins/myplugin/myscript.js&quot;&gt;&lt;/script&gt;';</pre>
<p>I wish this was something I made up. Worse, I&#8217;ve see it more than once. Recently.</p>
<p>This install is assuming WordPress is installed in the root of your HTML folder (i.e. domain.com). This is not always the case, as many people install WordPress in subfolders. We&#8217;ll need to fix that first with <code>home_url()</code>.</p>
<pre class="brush: php; title: ; notranslate">echo '&lt;script src=&quot;'.home_url('wp-content/plugins/myplugin/myscript.js').'&quot;&gt;&lt;/script&gt;';</pre>
<p><img src="http://halfelf.org/files/2012/05/jquery-logo-100x100.png" alt="" title="jQuery Logo looks like AT&amp;T" width="100" height="100" class="alignright size-thumbnail wp-image-2138" />Now it&#8217;s a little better, as by using <code>home_url()</code> we&#8217;re letting WordPress define where &#8216;home&#8217; is. Great! This has two pretty obvious problems, however. First, if I have WordPress installed in a folder, like <code>/public_html/wordpress/</code>, but I&#8217;m running it out of the main domain by <a href="http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory">giving it its own directory</a>, this won&#8217;t work. Your code would point to http://example.com/wp-content&#8230; when mine is in http://example.com/wordpress/wp-content.. instead! The &#8216;easy&#8217; fix is to change <code>home_url()</code> for <code>site_url()</code>, but what if I&#8217;m not using <code>wp-content</code>? You didn&#8217;t know we could <a href="http://codex.wordpress.org/Editing_wp-config.php#Moving_wp-content">Move wp-content</a>? We can. So let&#8217;s address that.</p>
<pre class="brush: php; title: ; notranslate">echo '&lt;script src=&quot;'.content_url('plugins/myplugin/myscript.js').'&quot;&gt;&lt;/script&gt;';</pre>
<p>By using <a href="http://codex.wordpress.org/Determining_Plugin_and_Content_Directories">functions to determine plugin and content directories</a>, we can make this much more flexible. That works, but it could be better. What if we didn&#8217;t have to define the <code>plugins</code> or <code>myplugin</code> folders? We could just do something simple like this.</p>
<pre class="brush: php; title: ; notranslate">echo '&lt;script src=&quot;'.plugins_url('myscript.js',__FILE__).'&quot;&gt;&lt;/script&gt;';</pre>
<p>Now we have a simple, flexible, functional script embed of js. Except there&#8217;s one, <em>minor</em> problem. We&#8217;re not including the script correctly.</p>
<h2>Not enqueuing files</h2>
<p>This isn&#8217;t &#8216;wrong&#8217; really. I mean, if I put this in my plugin, it would echo out the script, and that&#8217;s what I want, right?</p>
<pre class="brush: php; title: ; notranslate">echo '&lt;script src=&quot;'.plugins_url('myscript.js',__FILE__).'&quot;&gt;&lt;/script&gt;';</pre>
<p>But let&#8217;s say I want to put it in my header:</p>
<pre class="brush: php; title: ; notranslate">
function my_scripts_method() {
    echo '&lt;script src=&quot;'.plugins_url('myscript.js',__FILE__).'&quot;&gt;&lt;/script&gt;';
}
add_action('wp_head', 'my_scripts_method');</pre>
<p>And now I want to include my CSS so it looks pretty:</p>
<pre class="brush: php; title: ; notranslate">
function my_scripts_method() {
    echo '&lt;script src=&quot;'.plugins_url('myscript.js',__FILE__).'&quot;&gt;&lt;/script&gt;';
    echo '&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;'.plugins_url('myscript.js',__FILE__).'&quot; media=&quot;all&quot; /&gt;';
}
add_action('wp_head', 'my_scripts_method');</pre>
<p>Oh, wait, no, I wanted my JS in the footer:</p>
<pre class="brush: php; title: ; notranslate">
function my_scripts_method_foot() {
    echo '&lt;script src=&quot;'.plugins_url('myscript.js',__FILE__).'&quot;&gt;&lt;/script&gt;';
}
function my_scripts_method_head() {
    echo '&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;'.plugins_url('myscript.js',__FILE__).'&quot; media=&quot;all&quot; /&gt;';
}
add_action('wp_head', 'my_scripts_method_head');
add_action('wp_footer', 'my_scripts_method_foot');</pre>
<p>And really, this will work. But it&#8217;s not efficient, I&#8217;ve got extra actions, and I&#8217;m not considering any jquery dependencies anymore. By using <a href="http://codex.wordpress.org/Function_Reference/wp_enqueue_script">wp_enqueue_script</a> is better. Weblog Tools Collection did a series on how to <a href="http://weblogtoolscollection.com/archives/2010/05/06/adding-scripts-properly-to-wordpress-part-1-wp_enqueue_script/">properly add scripts</a> (note that it&#8217;s a bit out of date with the use of <code>WP-CONTENT</code> constants). From that we can extrapolate to use just this to include our js and css:</p>
<pre class="brush: php; title: ; notranslate">
function my_scripts_method() {
    wp_enqueue_script('my_script', plugins_url('myscript.js',__FILE__) );
    wp_enqueue_style('my_script', plugins_url('myscript.css',__FILE__) );
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
</pre>
<p>What enqueue does is put your code in the best possible location and can be extended to load dependencies. <a href="http://codex.wordpress.org/Function_Reference/wp_enqueue_script">wp_enque_scripts</a> has a lot of power, and because it&#8217;s a WordPress function, it&#8217;s got options that make it more flexible. Like when I look at my above code, I remember, oops! I wanted to run my js out of the footer! Not a problem. Look at my options.</p>
<pre class="brush: php; title: ; notranslate">wp_enqueue_script('handle', 'source', 'dependencies', 'version', 'in_footer');</pre>
<p><img src="http://halfelf.org/files/2012/05/jquery-logo.gif" alt="jQuery Logo looks like a Devo Hat" title="jQuery Logo looks like a Devo Hat" width="168" height="146" class="alignleft size-full wp-image-2137" />The &#8216;handle&#8217; is what I want to name my script, it should be unique. If I register my script, I can call the handle over and over again. We&#8217;re using <code>my_script</code> right now. The &#8216;source&#8217; is where my file is located. We&#8217;re lifting that from our other code, the bad code, because it works. Your  &#8216;dependencies&#8217; are the other js files yours needs to function. If I put in <code>array('jquery', 'scriptaculous')</code> then both jQuery and Scriptaculous would get loaded <em>before</em> my script. Curiously, you don&#8217;t actually need the &#8216;version&#8217; option, as you can leave it blank and WordPress will automatically add a version number equal to the current version of WordPress you are running. So every time you upgrade WP, it will get updated and force a re-download. This is good, since if you have dependencies to scripts included in WordPress, and they change with a new version (which is the only way they <em>can</em> change), then you get updated too. Finally we have the value I was looking for, &#8216;in_footer.&#8217; Leave it blank and it&#8217;s in the header, put in <code>true</code> and it&#8217;s not.</p>
<p>This makes my code:</p>
<pre class="brush: php; title: ; notranslate">
function my_scripts_method() {
    wp_enqueue_script('my_script', plugins_url('myscript.js',__FILE__), '','', true ););
    wp_enqueue_style('my_script', plugins_url('myscript.css',__FILE__) );
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
</pre>
<p>Yeah, isn&#8217;t that a lot easier?</p>
<h2>Using a different jQuery</h2>
<p>This last one I&#8217;m going to touch on today is the exact code I saw, in the wild, and it&#8217;s got two of my three buggaboos in it.</p>
<pre class="brush: php; title: ; notranslate">wp_enqueue_script('jquery-1.4.3.min.js', '/wp-content/plugins/myplugin/js/jquery-1.4.3.min.js');</pre>
<p>Okay. You already know the right way to call the script, so we&#8217;ll edit that into something more flexible.</p>
<pre class="brush: php; title: ; notranslate">wp_enqueue_script('jquery-1.4.3.min.js', plugins_url('js/jquery-1.4.3.min.js',__FILE__) );</pre>
<p>That should be okay, but it&#8217;s totally not.</p>
<p>Most importantly here, we&#8217;re calling jquery, which is actually built in to WordPress. Now, we&#8217;re calling it by a different handle, but that&#8217;s no guarantee that it won&#8217;t cause conflicts. In fact, I&#8217;m pretty sure this will cause no end of problems with some plugins. The <em>right</em> thing to do would be this:</p>
<pre class="brush: php; title: ; notranslate">
function my_scripts_method() {
    wp_deregister_script( 'jquery' );
    wp_register_script( 'jquery', plugins_url('js/jquery-1.4.3.min.js',__FILE__) );
    wp_enqueue_script( 'jquery' );
}
add_action('wp_enqueue_scripts', 'my_scripts_method');</pre>
<p>Now we&#8217;re making sure we won&#8217;t have conflicts by re-registering jquery, replacing it, and moving on. </p>
<p>A lot of people would actually recommend using Google instead, as it takes the responsibility off you for including a file you don&#8217;t &#8216;control.&#8217; Also it makes your plugin smaller and load faster.</p>
<pre class="brush: php; title: ; notranslate">
function my_scripts_method() {
    wp_deregister_script( 'jquery' );
    wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js' );
    wp_enqueue_script( 'jquery' );
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
</pre>
<p><img src="http://halfelf.org/files/2012/05/devo.jpg" alt="Devo Hat looks like Devo Hat" title="Devo Hat looks like Devo Hat" width="150" height="150" class="alignright size-full wp-image-2139" />Great! Now we&#8217;re done, right? Wrong. As of this writing, WordPress is using jQuery <strong>1.7.2</strong>. Now I couldn&#8217;t come up with a reason to include an old version of jQuery in WordPress (newer, yes, older, no), so I asked around and none of my friends could either. Using an older version is more likely to cause issues with newer code included in WordPress, as well as plugins which are upgraded to take advantage of the new features. You&#8217;re shooting yourself in the foot. The only thing you might be using this for is to include deprecated fictions, and really you need to update your code to fix that instead.</p>
<p>If the whole point is to load the scripts from Google, though, <a href="http://wordpress.org/extend/plugins/use-google-libraries/">there&#8217;s an awesome plugin for that</a>.</p>
<div class="simple-footnotes"><p class="notes">Notes:</p><ol><li id="note-2136-1">&#8220;I know it when I see it&#8221; thanks to United States Supreme Court Justice Potter Stewart <a href="#return-note-2136-1">&#8617;</a></li></ol></div>]]></content:encoded>
			<wfw:commentRss>http://halfelf.org/2012/jquery-why-u-no-enqueued/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Speed Up Your Site</title>
		<link>http://halfelf.org/2012/speed-up-your-site/</link>
		<comments>http://halfelf.org/2012/speed-up-your-site/#comments</comments>
		<pubDate>Thu, 10 May 2012 17:22:23 +0000</pubDate>
		<dc:creator>Ipstenu</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://halfelf.org/?p=2088</guid>
		<description><![CDATA[Making your site run faster, when you don't have access to the root of your server, is hard, but not impossible.]]></description>
			<content:encoded><![CDATA[<p><img src="http://halfelf.org/files/2012/04/Faster-poster-100x100.jpg" alt="Faster" title="Faster" width="100" height="100" class="alignleft size-thumbnail wp-image-2097" />The majority of what I do to speed up my website is on the server level. In 2009 I <a href="http://halfelf.org/2009/youre-not-the-boss-of-me/">moved to a VPS</a>, and just last year I switched to a <a href="http://halfelf.org/2011/smart-servers/">Smart Server</a>. I have access to install APC, to tune MaxClients, and to upgrade my PHP whenever I darn well want to. And I regularly use these tools to fine tune my server so it&#8217;s lean, fast, and efficient. 75% of why my domains run this fast under this much stress (I have two fan sites, they get hammered), is that I&#8217;ve done all this work, including some of the stuff I did on <a href="http://halfelf.org/2011/timthumb-pseudo-ddos-effect/">DDOS prevention</a>. <a class="simple-footnote" title="My CT_LIMIT is set to 75 right now, and that seems to be the perfect balance. The only people hurt are some silly people in Brazil who like to open 100 pictures all at once. I&#8217;ve explained why this is bad." id="return-note-2088-1" href="#note-2088-1"><sup>1</sup></a></p>
<p>However, not all of you have access to the server to make all those cool tweaks and changes to speed up your website. If you&#8217;re on shared hosting (and there&#8217;s nothing wrong with that), you can&#8217;t edit httpd.conf, you can&#8217;t always edit php.ini, and you sure can&#8217;t upgrade PHP on your own. Don&#8217;t worry, there are still things that you can do!</p>
<p>The first thing you should do is understand that the more complicated your site is, the slower it&#8217;s going to be. So if you want a site with all those bells and whistles, you have a lot more work to do than a simple, plain, site. These are the tradeoffs we must accept in all things. <a class="simple-footnote" title="The exception being, perhaps, cookware. I have some awesome Lodge cast-iron pots and pans, and they&#8217;re pretty expensive for their simplicity. Then again, they&#8217;re made with such amazing skill and precision, they&#8217;re not &#8216;simple&#8217; to make. So YMMV." id="return-note-2088-2" href="#note-2088-2"><sup>2</sup></a> Reduce the complications and things run faster. You have to have a balance between &#8216;everything&#8217; and usability. If your site is sexy as all get out, but slower than a truculent five year-old on a family walk, then you&#8217;re doing it wrong. That doesn&#8217;t mean you need to have the world&#8217;s most boring site, it just means you have to start learning what it is that makes <em>your</em> site slow. When you look at themes and plugins for a site, remember the more you have, the slower things may become, so use them wisely.</p>
<p>My favorite tools to show why a site is slow are <a href="http://yslow.org/">YSlow</a> and <a href="https://developers.google.com/speed/pagespeed/">PageSpeed</a>. <strong>YSlow</strong> is a browser add-on you can use with Chrome, Firefox, and every other commonly used browser. Except for IE. Once installed, you simply go to the webpage and run the tool to get a scan of your site. You get &#8216;graded&#8217; on an A through F scale, with F being the worst, and the grades are computed based on a fairly understandable methodology. <a class="simple-footnote" title="See FAQ: Grading" id="return-note-2088-3" href="#note-2088-3"><sup>3</sup></a> <strong>Page Speed</strong> is Google&#8217;s version, and I prefer it, but only because I don&#8217;t have to install anything to do it, and it gives really good explanations of what&#8217;s wrong. There&#8217;s also <a href="http://www.webpagetest.org/">Web Page Test</a>, which is great to find out if your site flails on different browsers, as well as giving you accurate speed breakdowns.</p>
<p>Here are three of my sites, all installed on this server, scanned by YSlow:<br />
<center>
<a href='http://halfelf.org/2012/speed-up-your-site/ipstenu-yslow/' title='YSlow - Ipstenu.org'><img width="100" height="100" src="http://halfelf.org/files/2012/04/ipstenu-yslow-100x100.png" class="attachment-thumbnail" alt="YSlow - Ipstenu.org (B)" title="YSlow - Ipstenu.org" /></a>
<a href='http://halfelf.org/2012/speed-up-your-site/halfelf-yslow/' title='YSlow - HalfElf.org'><img width="100" height="100" src="http://halfelf.org/files/2012/04/halfelf-yslow-100x100.png" class="attachment-thumbnail" alt="YSlow - HalfElf.org (D)" title="YSlow - HalfElf.org" /></a>
<a href='http://halfelf.org/2012/speed-up-your-site/jfo-yslow/' title='YSlow - Jorjafox.net'><img width="100" height="100" src="http://halfelf.org/files/2012/04/jfo-yslow-100x100.png" class="attachment-thumbnail" alt="YSlow - JFO (C)" title="YSlow - Jorjafox.net" /></a>
</center></p>
<p>And here are the same three as SiteSpeed:<br />
<center>
<a href='http://halfelf.org/2012/speed-up-your-site/ipstenuorg-pagespeed/' title='PageSpeed - Ipstenu.org'><img width="100" height="100" src="http://halfelf.org/files/2012/04/ipstenuorg-pagespeed-100x100.png" class="attachment-thumbnail" alt="PageSpeed results for Ipstenu.org (89)" title="PageSpeed - Ipstenu.org" /></a>
<a href='http://halfelf.org/2012/speed-up-your-site/halfelf-pagespeed/' title='PageSpeed - HalfElf'><img width="100" height="100" src="http://halfelf.org/files/2012/04/halfelf-pagespeed-100x100.png" class="attachment-thumbnail" alt="PageSpeed results for Halfelf.org (85)" title="PageSpeed - HalfElf" /></a>
<a href='http://halfelf.org/2012/speed-up-your-site/jfo-pagespeed/' title='PageSpeed - JFO'><img width="100" height="100" src="http://halfelf.org/files/2012/04/jfo-pagespeed-100x100.png" class="attachment-thumbnail" alt="PageSpeed results for jorjafox.net (84)" title="PageSpeed - JFO" /></a>
</center></p>
<p>I&#8217;m not going to go through every option, most of them are self explanatory (put the CSS at the top and JS at the bottom).  Instead, I&#8217;ll explain the weirder ones that you can tweak yourself, and some that you can ignore. If you&#8217;re using a tool like W3 Total Cache, you actually can configure most of this directly in the tool instead. For what it&#8217;s worth, I did &#8216;fix&#8217; my scores with both sites and I&#8217;m now in the 90s from Page Speed and .. Well not so much with YSlow. The two disagree on how much &#8216;weight&#8217; to give various errors. Page Speed thinks minification is low priority, and doesn&#8217;t judge you about a CDN. It also understands that you can&#8217;t gzip what you don&#8217;t own. If you use YSlow, make note of what you score poorly in, and fix those as best you can.</p>
<h3>Things I Ignore</h3>
<p>When I get complaints of too many HTTP requests, that just means I&#8217;m calling &#8216;too many&#8217; JS scripts and stylesheets. YSlow doesn&#8217;t say which ones those are, which isn&#8217;t actually helpful to the novice. If you click on &#8216;Read More&#8217; it just explains why this is bad. The idea here is that you should have one CSS file, but realistically, any dynamically generated site is going to have more that one. Especially when you consider I&#8217;m calling some from Google, Facebook and Twitter for my sharing buttons. While this does slow your site down, unless you have 20 stylesheets on your own site (again, I&#8217;m not counting the ones on other domains), it&#8217;s not that big of an issue. If you minimize what you have, and combine as much as you can, you&#8217;re going to be okay.</p>
<p>I also totally ignore any scores related to my CDN, or rather the fact that I&#8217;m <em>not</em> using one. Yes, a CDN will make your site much faster, but I don&#8217;t think this is applicable for everyone, and I generally ignore that value.</p>
<p>Finally I ignore suggestions to use cookie-free domains, but that&#8217;s because I&#8217;m running WordPress, and it needs cookies.</p>
<h3>Things I Fix in .htaccess</h3>
<p>You can fix most <em>expires headers</em> errors, but only the ones that relate to your site. When I look at a scan for one of my domains, I see that the items my site loads that don&#8217;t have Expires headers are a flash module from PayPal, Google&#8217;s +1 javascript, a banner, and two gravatars. Those are all items that, yes, can slow my site down, but they&#8217;re outside my ability to fix! And in the case of gravatars, I don&#8217;t want them to Expire too soon, since they may change. I&#8217;m going to, again, ignore this.<br />
<img src="http://halfelf.org/files/2012/04/yslow-expires.png" alt="YSlow - Add Expires headers (F)" title="YSlow - Add Expires headers (F)" width="535" height="190" class="aligncenter size-full wp-image-2095" /></p>
<p>Why <em>wasn&#8217;t</em> my server listed? It&#8217;s because I added Expires headers to my site. Obviously. The easiest way to do this for your site is to put the following in your <code>.htaccess</code> file <a class="simple-footnote" title="If you&#8217;re using WordPress, Drupal, or any web app that has it&#8217;s own .htaccess rules, remember to put these above the section for them! It&#8217;s important." id="return-note-2088-4" href="#note-2088-4"><sup>4</sup></a>:</p>
<pre class="brush: bash; title: ; notranslate">
&lt;ifmodule mod_expires.c&gt;
  &lt;filesmatch &quot;\.(jpe?g|gif|png|css|js)$&quot;&gt;
       ExpiresActive on
       ExpiresDefault &quot;access plus 1 year&quot;
   &lt;/filesmatch&gt;
&lt;/ifmodule&gt;
</pre>
<p>What this will do is turn on Expires and set to to today plus one year. Now this isn&#8217;t actually the best way to do it, as it leaves out a lot of variables, but for most people, it&#8217;s good. Keep in mind, the further you set out this expires, the harder it is to change any files! For example, if I upload a PNG with a 1 year expiration, and then upload a new version, no one will see it (unless they flush their browser cache). Don&#8217;t set this further than a year, and only set it for things you know aren&#8217;t changing often. <a class="simple-footnote" title="You&#8217;ll notice WordPress sourcecode has your JS and CSS files saved with ?ver=x.x at the end. This lets you work around the expires, as when you change your CSS, it changes the version, and thus, pushes the changes down to your users." id="return-note-2088-5" href="#note-2088-5"><sup>5</sup></a></p>
<p><em>Cache-Control</em> is the half-sibling of Expires, and lets you specify what files should be cached and for how long. The <a href="http://www.askapache.com/htaccess/apache-speed-cache-control.html">Ask Apache</a> site has some great examples, as this is what I generally use:</p>
<pre class="brush: bash; title: ; notranslate">
# 480 weeks
&lt;filesMatch &quot;\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$&quot;&gt;
Header set Cache-Control &quot;max-age=290304000, public&quot;
&lt;/filesMatch&gt;
 
# 2 DAYS
&lt;filesMatch &quot;\.(xml|txt)$&quot;&gt;
Header set Cache-Control &quot;max-age=172800, public, must-revalidate&quot;
&lt;/filesMatch&gt;
 
# 2 HOURS
&lt;filesMatch &quot;\.(html|htm)$&quot;&gt;
Header set Cache-Control &quot;max-age=7200, must-revalidate&quot;
&lt;/filesMatch&gt;
</pre>
<p>The &#8216;must-revalidate&#8217; tag is what makes sure your webpages changes actually get picked up quickly. Nothing&#8217;s worse than editing a typo, and not having it fixed for your readers! </p>
<p>Related to that is <em>ETags</em>, which is a bit weird, but this too is something you can tweak. If you disable ETags, everyone has to trust your cache and that gives you a lot of control. It sounds easy, but there&#8217;s a reason we should be using ETags for some situations. My sites are using a pretty complex rule that was set by W3TC for me. It sets my Cache Control and ETag, generating the rules I need. If you just want the basics, though, <a href="http://www.askapache.com/htaccess/apache-speed-etags.html">AskApache&#8217;s Speed Tips: Turn Off ETags</a> will get you there. For what it&#8217;s worth, a small site doesn&#8217;t need to worry about this too much.</p>
<p>If you want to grab my default .htaccess starter, here you go!</p>
<p><center><a href="http://halfelf.org/downloads/6" title="htaccess Sampler - downloaded 9 times"><img src="http://halfelf.org/code/images/dlm/download-txt.gif" alt="Download {filettype}" /></a></center></p>
<h3>Things I Fix via CPanel</h3>
<p>You can also speed up your site by enabling <em>gzip</em>. I&#8217;d say I left it off on purpose to show you the error, but the fact is I forgot to turn it on when I moved to a new server. If you have cPanel, this is stupid easy. Log in, go to &#8216;Optomize Website&#8217; and turn it on.</p>
<p><img src="http://halfelf.org/files/2012/04/gzip.png" alt="gzip" title="gzip" width="760" height="315" class="aligncenter size-full wp-image-2096" /></p>
<p>Doing improved a lot of results on my site, though it didn&#8217;t want to consider three of my .js files gzipped for some reason, though it did on other domains on the same server when I changed it. I&#8217;m not terribly concerned at this point, since I used the <a href="http://www.whatsmyip.org/http-compression-test/">HTTP Compression Test (from What&#8217;s My IP?)</a> and it says I&#8217;m compressed.</p>
<h3>Things I Fix with Elbow Grease (or Plugins)</h3>
<p><em>Minification</em>. If you view the source of this site, it&#8217;s ugly. Everything&#8217;s all crammed up without line breaks, and finding anything is a hassle. That&#8217;s because I minified my content. If you don&#8217;t have a plugin or add-on for your site that can do that for you, you&#8217;ll need to do this manually, via <a href="http://www.minifycss.com/css-compressor/">Minify CSS</a> and <a href="http://www.minifyjs.com/javascript-compressor/">Minify JS</a>. It&#8217;s more of a hassle to do that manually, since it&#8217;s hard for you to edit later. After-the-fact compression can slow your site a little, but it&#8217;s easier to maintain and still faster than non-minified code. Now I use W3TC, which has a minification tool built in, but there are other WordPress plugins that do the same thing.</p>
<h3>The Rest</h3>
<p>There are a lot more tips and tricks to getting your site running faster. I mention <a href="http://wordpress.org/extend/plugins/w3-total-cache/">W3 Total Cache (W3TC)</a> multiple times because it works great. There&#8217;s also <a href="http://wordpress.org/extend/plugins/wp-super-cache/">WP Super Cache</a>, which I prefer for smaller hosts and shared servers. W3TC is very, very, very complicated, so be warned. WP Super Cache isn&#8217;t a &#8216;lesser&#8217; tool, it&#8217;s just different, and I advocate using either one if your site is moderate to large.</p>
<p>If your site is small, you really can get by with just minifying. There are <a href="http://wordpress.org/extend/plugins/tags/minify">a lot of minification plugins</a> out there. Images can be reduced in size by compressing them more via Smush.it (there&#8217;s a plugin called <a href="http://wordpress.org/extend/plugins/wp-smushit/">WP Smushit</a> for WordPress). Many people have also suggested using a Lazy Load plugin, like <a href="http://wordpress.org/extend/plugins/jquery-image-lazy-loading/">jQuery Image Lazy Loading</a>, which loads images on demand. I like it, but it slows my site down, and doesn&#8217;t work well at all on ones with a lot of dynamic images. I may be using it wrong.</p>
<p>Anyone can take advantage of a free CDN, <a href="https://www.cloudflare.com/">Cloudflare</a> has a free plan. <a class="simple-footnote" title="Caveat: I don&#8217;t use CDN, nor have I looked at Cloudflare in depth." id="return-note-2088-6" href="#note-2088-6"><sup>6</sup></a> They claim to protect you as well as speed things up, and I&#8217;ve heard interesting (good) reports on it.</p>
<p>Many people advocate using plugins to tune your database, but I really don&#8217;t like using a plugin for that. You can optimize your database with a cron job instead, or even just do it manually now and again, if you think your site is sluggish. For WordPress I limit my revisions and empty my trash more often with two lines in my <code>wp-config.php</code>:</p>
<pre class="brush: php; title: ; notranslate">
define('WP_POST_REVISIONS', 5);
define('EMPTY_TRASH_DAYS', 5 );
</pre>
<p>When all else fails and nothing you can do speeds up your site, take a look at your server. If the server itself is really slow, all the time, and I mean you can hardly get your email, ask your host if you can be put on another cluster. A lot of shared hosts are oversold, since not everyone needs all the space and power. It makes sense, but some hosts monitor the status of these servers and move people around if they become bad neighbors, while others wait for you to notice. Opening up a line of communication with your host is always a good thing. Remember, you&#8217;re paying these guys! They should be willing to help you out, or you should leave and get a new host.</p>
<p>At a certain point, you&#8217;ll notice that the only &#8216;fixes&#8217; are to throw more money at it, buying a better host, better themes, better tools, and so on. And that&#8217;s simply a fact of life. You can&#8217;t live forever on ramen and hot dogs.</p>
<div class="simple-footnotes"><p class="notes">Notes:</p><ol><li id="note-2088-1">My CT_LIMIT is set to 75 right now, and that seems to be the perfect balance. The only people hurt are some silly people in Brazil who like to open 100 pictures all at once. I&#8217;ve explained why this is bad. <a href="#return-note-2088-1">&#8617;</a></li><li id="note-2088-2">The exception being, perhaps, cookware. I have some awesome Lodge cast-iron pots and pans, and they&#8217;re pretty expensive for their simplicity. Then again, they&#8217;re made with such amazing skill and precision, they&#8217;re not &#8216;simple&#8217; to make. So YMMV. <a href="#return-note-2088-2">&#8617;</a></li><li id="note-2088-3">See <a href="https://github.com/marcelduran/yslow/wiki/FAQ#wiki-faq_grading">FAQ: Grading</a> <a href="#return-note-2088-3">&#8617;</a></li><li id="note-2088-4">If you&#8217;re using WordPress, Drupal, or any web app that has it&#8217;s own .htaccess rules, remember to put these <em>above</em> the section for them! It&#8217;s important. <a href="#return-note-2088-4">&#8617;</a></li><li id="note-2088-5">You&#8217;ll notice WordPress sourcecode has your JS and CSS files saved with <code>?ver=x.x</code> at the end. This lets you work around the expires, as when you change your CSS, it changes the version, and thus, pushes the changes down to your users. <a href="#return-note-2088-5">&#8617;</a></li><li id="note-2088-6">Caveat: I don&#8217;t use CDN, nor have I looked at Cloudflare in depth. <a href="#return-note-2088-6">&#8617;</a></li></ol></div>]]></content:encoded>
			<wfw:commentRss>http://halfelf.org/2012/speed-up-your-site/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>How To Submit a WordPress Plugin</title>
		<link>http://halfelf.org/2012/submitting-wp-plugins/</link>
		<comments>http://halfelf.org/2012/submitting-wp-plugins/#comments</comments>
		<pubDate>Mon, 07 May 2012 13:50:14 +0000</pubDate>
		<dc:creator>Ipstenu</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[essay]]></category>
		<category><![CDATA[gpl]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://halfelf.org/?p=2115</guid>
		<description><![CDATA[A non-technical how to get your plugin in the WordPress repository.]]></description>
			<content:encoded><![CDATA[<p><img src="http://halfelf.org/files/2012/05/5wJmB-200x300.jpeg" alt="Submit to WordPress" title="Submit to WordPress" width="200" height="300" class="alignleft size-medium wp-image-2129" />I&#8217;m not a super-psycho coder. But between being a busybody and being a volunteer plugin referee, I do spend a disproportionate amount of time looking at the code people put in for plugins, which means I actually see a lot more code, and a lot more submissions, than you might expect. This puts me in a place where I actually can offer some of the world&#8217;s most basic advice ever, that a surprising number of people seem to miss, about how to submit your plugins, what will get them downcheked, and what you really just shouldn&#8217;t do.</p>
<p>This list is not all encompassing, but touches on the issues I see the most often.</p>
<h2>What You <em>Must</em> Do</h2>
<p>Failing to do the following will likely end up in your plugin being yanked (or not approved at all).</p>
<h3>Read The Guidelines</h3>
<p>We are not pirates. These are not wishy-washy rules, though they are intentionally kept as light as possible. You see, the more you make a rule &#8220;You can&#8217;t do this!&#8221; then the more you get &#8220;Well, you said I couldn&#8217;t dig to China, not Australia!&#8221; <a class="simple-footnote" title="That&#8217;s a true story on my part. I once got my kindergarten school class to dig to China. After being told not to, I got them to dig to Australia. At this point, they said &#8216;No digging tunnels at school.&#8217; My parents explained in more detail why this was dangerous, and we watched The Great Escape to understand tunnel collapse. I forget how Dad explained the distance, but I remember a long explanation about the earth&#8217;s core being molten, and no, you can&#8217;t dig under the ocean. I was bummed. I was also 4." id="return-note-2115-1" href="#note-2115-1"><sup>1</sup></a> The basic guidelines are on the front page of the <a href="http://wordpress.org/extend/plugins/about/">Developer Center</a>, but it&#8217;s the <a href="http://wordpress.org/extend/plugins/about/guidelines/">expanded guidelines</a> you really need to read. I helped write those guidelines (over beery emails with Otto) and he and I both hate that we have to spell certain things out, but apparently they&#8217;re unclear. Just read them. If you think you&#8217;re doing something that might be on the far side of okay, ask around. Tweet, post in the forums, or find a plugin dev you respect and ask them directly.</p>
<h3>Check Licences</h3>
<p>All plugins must be GPL2 (or later) compatible. This is pretty basic, but a lot of people don&#8217;t realize what that means. First, there&#8217;s the issue of <a href="http://halfelf.org/2012/gpl-oh-dear-god/">GPL2 versus GPL3</a>. While the WordPress repository accepts GPL3 plugins, it&#8217;s still not compatible with everything, so make sure the code you fold into the plugin will work with which ever license you chose. If you don&#8217;t want to use GPL, you don&#8217;t have to! Remember, there are a lot of <a href="http://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses">GPL Compatible Licences</a>. At the same time, there are a lot of <a href="http://www.gnu.org/licenses/license-list.html#GPLIncompatibleLicenses">incompatible licences</a> as well. And there are the <a href="http://www.gnu.org/licenses/license-list.html#NonFreeSoftwareLicenses">Non-free Software licenses</a>. When you&#8217;re only releasing your own code, this is pretty easy. You pick a compatible license and move on. When you&#8217;re incorporating other people&#8217;s code, however you have to study their license carefully.</p>
<p>Generally I&#8217;ve seen people get dinged for using the Creative Commons license, and in most cases this is because they&#8217;re not using the <a href="http://www.gnu.org/licenses/license-list.html#CC0">CC0 license</a>. That is the <em>only</em> CC license that really works with GPL (except for CC BY ND). Your code really shouldn&#8217;t be CC licensed, anyway, though. Just don&#8217;t use it.</p>
<h3>Provide the code</h3>
<p><img src="http://halfelf.org/files/2012/05/1328101811_Download-100x100.png" alt="World Wide Downloads" title="World Wide Downloads" width="100" height="100" class="alignright size-thumbnail wp-image-2130" />When you submit your plugin, put in a link to the code so it can be downloaded and checked.  <a class="simple-footnote" title="See Expanded Guidelines, Rule #16" id="return-note-2115-2" href="#note-2115-2"><sup>2</sup></a> If, for some reason, you can&#8217;t because the code is behind a paywall, or you don&#8217;t want it in the wild, don&#8217;t worry! The only people who see that link are the plugin review team, and they&#8217;re trustworthy. They don&#8217;t need an API key, either, they just want to make sure you&#8217;re not breaking the repo guidelines. If you don&#8217;t provide a link to the code, you don&#8217;t get in. It&#8217;s really that simple.</p>
<h3>Don&#8217;t break the other WP rules</h3>
<p>Did you know you can&#8217;t use &#8216;wordpress&#8217; in your domain name without permission? If your author or plugin URL is http://mycoolwordpressplugins.com then your plugin will be rejected.  <a class="simple-footnote" title="See Expanded Guidelines, Rule #17" id="return-note-2115-3" href="#note-2115-3"><sup>3</sup></a> In addition, you&#8217;re still going to be held subject to the forum rules with your account. I mention this because if you get blocked on the forums for rampant asshattery, you won&#8217;t be able to check new code in. Basically remember that it&#8217;s the internet, and we can see your behavior on Twitter, Forums, Faceybooky, etc. Don&#8217;t be an idiot.</p>
<h2>What You <em>Should</em> Do</h2>
<p>Not doing the following won&#8217;t get you punted from the repo, but they&#8217;re still good to do, in order to provide the best support possible.</p>
<h3>Write a good readme</h3>
<p>A good readme file is going to tell the person everything they need to know before they download the plugin. This means:</p>
<ol>
<li>Describe what the plugin does</li>
<li>Explicitly state any and all requirements</li>
<li>Be upfront about any external accounts required (for APIs or what have you)</li>
<li>Inform users if their information is being sent to another site, where, and why (not necessarily technical explanations, just ‘Your IP, browser specs, etc will be sent to Google for Analytics purposes. This is required if you want to use Google Analytics.’)</li>
<li>Include screenshots of the options</li>
<li>Include a screenshot of what the plugin looks like on the unmodified default theme</li>
<li>Document if no support is provided (or if support is handled somewhere other than the WordPress forums)</li>
</ol>
<h4>Credit Appropriately</h4>
<p><img src="http://halfelf.org/files/2012/05/320px-Thank_you_001-300x225.jpeg" alt="Thank You" title="Thank You" width="300" height="225" class="alignleft size-medium wp-image-2131" />A subset of that is that if your plugin is a fork of someone else&#8217;s, be the good person and credit them! It&#8217;s not required all the time, but take a look at the copyright information on a plugin. Sometimes they say they require credit in the code. If so, you&#8217;ve got to do it. Even just a line that says &#8220;Copyright 2009-2011 Some Other Dude&#8221; and then &#8220;Copyright 2011 Me&#8221; below it. That&#8217;s a nice CYA. If you want to be really nice, put their userID under &#8216;contributors&#8217; in the readme file, and they&#8217;ll have their pretty face on your plugin.</p>
<h3>Write Good Code</h3>
<p>Using good code is complicated. I don&#8217;t pretend to be the best at it myself (seriously, the level of shenanigans I went through over nonces cannot be measured on a human scale). But I know that good code is secure code. I know I should use <a href="http://codex.wordpress.org/WordPress_Nonces">nonces</a> in certain situations, I know to <a href="http://codex.wordpress.org/Class_Reference/wpdb#Protect_Queries_Against_SQL_Injection_Attacks">protect against SQL injections</a>, and I know to not let total strangers upload executable files (so they can&#8217;t upload a PHP file that wipes my DB, for example). And I know when to go find Otto, WePay him a beer, and say &#8220;So what the hell did I do wrong, here?&#8221;</p>
<p>Writing good code is exceptionally complicated, which is why, if you&#8217;re going to write a large plugin, you need to know what you&#8217;re getting into. The problem a lot of people get into is the classic &#8216;Your eyes are bigger than your stomach.&#8217; When you write a plugin, keep it simple. Start with the code you know, slowly fold in the new stuff. Try to test as many different ways as you can think of, but know that you&#8217;re going to miss something.</p>
<h2>What To Do If Your Plugin Is Yanked?</h2>
<p>Every plugin developer&#8217;s worst nightmare is waking up to find that their plugin was yanked from the WordPress repository.</p>
<p>Don&#8217;t panic!</p>
<p><img src="http://halfelf.org/files/2012/05/panic.png" alt="Don't Panic" title="Don't Panic" width="186" height="287" class="alignright size-full wp-image-2132" /> This happens when your plugin has been reported as possibly being in conflict with the developer guidelines, or it has a security hole. Many times you will <em>not</em> be notified when this happens. Sometimes you&#8217;re not notified because the report is found to be incorrect, and sometimes it&#8217;s because you&#8217;ve been warned before. And, once in a while, it&#8217;s because the person who closed your plugin doesn&#8217;t have the ability to email you. Surprise! There are some people on the plugin repository team who don&#8217;t have the access to the plugins email system, so when they close your plugin, they&#8217;ll ask someone else to email you. If that person is busy, it might take a while.</p>
<p>When a plugin is closed, the rest of your plugins are usually checked over to make sure they&#8217;re not also having an issue. For example, if you have one plugin with a front facing link that&#8217;s turned on by default, all your plugins will be checked for that and, if they all have the same problem, they will <em>all</em> be yanked. This is why you need to keep up to date on the plugin guidelines, and follow the <a href="http://wpdevel.wordpress.com/">WordPress Development Blog</a>.</p>
<p>As soon as you find out your plugin is closed, email plugins@wordpress.org and ask what you can do to restore it. Posting in the forums won&#8217;t help much.</p>
<div class="simple-footnotes"><p class="notes">Notes:</p><ol><li id="note-2115-1">That&#8217;s a true story on my part. I once got my kindergarten school class to dig to China. After being told not to, I got them to dig to Australia. At this point, they said &#8216;No digging tunnels at school.&#8217; My parents explained in more detail why this was dangerous, and we watched <em>The Great Escape</em> to understand tunnel collapse. I forget how Dad explained the distance, but I remember a long explanation about the earth&#8217;s core being molten, and no, you can&#8217;t dig under the ocean. I was bummed. I was also 4. <a href="#return-note-2115-1">&#8617;</a></li><li id="note-2115-2">See <a href="http://wordpress.org/extend/plugins/about/guidelines/">Expanded Guidelines, Rule #16</a> <a href="#return-note-2115-2">&#8617;</a></li><li id="note-2115-3">See <a href="http://wordpress.org/extend/plugins/about/guidelines/">Expanded Guidelines, Rule #17</a> <a href="#return-note-2115-3">&#8617;</a></li></ol></div>]]></content:encoded>
			<wfw:commentRss>http://halfelf.org/2012/submitting-wp-plugins/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lesson #1373 &#8211; Learning</title>
		<link>http://halfelf.org/2012/lesson-1373-learning/</link>
		<comments>http://halfelf.org/2012/lesson-1373-learning/#comments</comments>
		<pubDate>Fri, 04 May 2012 21:40:17 +0000</pubDate>
		<dc:creator>Ipstenu</dc:creator>
				<category><![CDATA[Philosopy]]></category>
		<category><![CDATA[essay]]></category>

		<guid isPermaLink="false">http://halfelf.org/?p=2086</guid>
		<description><![CDATA[I'll take knowledge, please.]]></description>
			<content:encoded><![CDATA[<p>All the help I give on all the forums and various places works using this maze. I can tell you, but then you won&#8217;t learn anything.</p>
<p><a href="http://survivingtheworld.net/Lesson1373.html"><img src="http://halfelf.org/files/2012/04/Lesson1373.jpeg" alt="Lesson #1373 - Learning (Surviving The World)" title="Lesson #1373 - Learning " width="670" height="515" class="aligncenter size-full wp-image-2087" /></a></p>
<blockquote><p>There&#8217;s more than one path to knowledge; it&#8217;s not always the same knowledge once you get there, either. But if you think it was easy to get there, you&#8217;re not at the destination you think you&#8217;re at.</p></blockquote>
<p>Credit: <a href="http://survivingtheworld.net/Lesson1373.html">Surviving the World</a></p>
]]></content:encoded>
			<wfw:commentRss>http://halfelf.org/2012/lesson-1373-learning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making a Stand Alone SQL Account</title>
		<link>http://halfelf.org/2012/stand-alone-sql-account/</link>
		<comments>http://halfelf.org/2012/stand-alone-sql-account/#comments</comments>
		<pubDate>Thu, 03 May 2012 17:16:06 +0000</pubDate>
		<dc:creator>Ipstenu</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[essay]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://halfelf.org/?p=2109</guid>
		<description><![CDATA[A very simple thing you can do to make your sites more secure is to use a separate SQL user for your web apps.]]></description>
			<content:encoded><![CDATA[<p><img src="http://halfelf.org/files/2012/05/sql-logo-100x100.png" alt="" title="sql-logo" width="100" height="100" class="alignleft size-thumbnail wp-image-2120" />One of the ways to secure your web apps is to limit the damage they can cause. When you create a database for a webapp, you have to provide a user ID and password to connect to the database, logically enough. Illogically, most people just use the same username and password they use to SSH into their server. After all, it works.</p>
<p>The obvious problem with this is that if someone gets access to your files (via a security hole in your webapp or your webhost), they now know your server password and ID, and can get in and cause serious damage.</p>
<p>But what if instead of using that normal ID and password, you made a special one that only was used for SQL. You couldn&#8217;t log in with it, you couldn&#8217;t FTP or anything except play with SQL. Then, even if they got in, they couldn&#8217;t delete your files! That&#8217;s really simple.</p>
<h3>cPanel</h3>
<p>If you&#8217;re using cPanel, just go in to the <strong>MySQL Databases</strong> screen and add a new user. I like to use something totally obvious, so I can remember it, like <code>ipstenu_sql</code>.</p>
<p><img class="aligncenter size-full wp-image-2110" title="MySQL - Add New User" src="http://halfelf.org/files/2012/04/add-new-user.jpg" alt="MySQL - Add New User" width="506" height="255" /></p>
<p>For those passwords, I tend to use the generator to make something like <code>m}+akwQN=&amp;)!</code>, not because I feel they&#8217;re more secure (I prefer pass-phrases, like &#8216;donkeyvanillatapdance&#8217;), but as a reminder for me not to use it for anything but SQL. Hang on to the password right now, though, you&#8217;ll want it in a minute.</p>
<p>Then you add the user to the databases. Back on the main MySQL page, there&#8217;s a little selection to <strong>Add User to Database</strong> which is really obvious to use. Pick your user and your database.</p>
<p><img class="aligncenter size-full wp-image-2113" title="add-user" src="http://halfelf.org/files/2012/04/add-user.jpg" alt="" width="302" height="139" /></p>
<p>Clicking <strong>Add</strong> will take you to the privileges screen:</p>
<p><img class="aligncenter size-full wp-image-2111" title="Manage User Privileges" src="http://halfelf.org/files/2012/04/privelegdes.jpg" alt="Manage User Privileges" width="559" height="435" /></p>
<p>Give the user ALL privileges, as you may need this later on.</p>
<h3>Plesk</h3>
<p>It&#8217;s just as easy in Plesk. Once your new database was created you, were automatically brought to the area to create the New Database User. If you didn&#8217;t do that, it&#8217;s okay, just go back the main database page and find the datase you want to add the user to (in this case, it&#8217;s LovePlesk_NewDatabase).  Click on the <strong>Add New Database User</strong> icon, fill in the information (remember to save your password!), and click okay.</p>
<p><img class="aligncenter size-full wp-image-2112" title="AddDataUserScr" src="http://halfelf.org/files/2012/04/AddDataUserScr.png" alt="" width="465" height="215" /></p>
<p>Plesk should automatically grant the user ALL privileges.</p>
<h3>Updating Your WebApp</h3>
<p>Once you have the new user made, all you have to do is edit your config file (i.e. <code>wp-config.php</code> for WordPress) to use the user and password, and hit save.</p>
<p>Now you&#8217;ve made your install a little more secure.</p>
]]></content:encoded>
			<wfw:commentRss>http://halfelf.org/2012/stand-alone-sql-account/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>You Don&#8217;t Need Any Plugins</title>
		<link>http://halfelf.org/2012/you-dont-need-any-plugins/</link>
		<comments>http://halfelf.org/2012/you-dont-need-any-plugins/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 17:02:51 +0000</pubDate>
		<dc:creator>Ipstenu</dc:creator>
				<category><![CDATA[Philosopy]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://tech.ipstenu.org/?p=1996</guid>
		<description><![CDATA[There is no plugin I have to have for a WP site. I can do without all of them, if I wanted. But I understand the difference between wants and needs.]]></description>
			<content:encoded><![CDATA[<p><img src="http://halfelf.org/files/2012/04/I_Want_to_Believe-240x300.jpg" alt="I Want to Believe" title="I Want to Believe" width="240" height="300" class="alignleft size-medium wp-image-2104" />Lorelle said it right when she said there were <a href="http://lorelle.wordpress.com/2012/04/02/what-are-the-essential-wordpress-plugins-you-cant-live-without/">no plugins she couldn&#8217;t live without</a> (except Akismet), and you could even do without Akismet if you turn off comments. She hit the nail right on the head as to why I step out of any &#8216;What plugin/theme should I use?&#8217; discussions, except when someone asks a specific &#8216;What plugin should I use to do<em> this</em>&#8230;&#8217; version there of.</p>
<blockquote><p>Out of the box, WordPress has all the major tools you need to start publishing. Turn on Akismet and you are good to go. What happens next is up to the needs and goals of your site.</p></blockquote>
<p>Out of the box, WordPress <em>needs</em> nothing. It works just fine as is, and you don&#8217;t need to do a blessed thing to it. But you <em>want</em> to. And that&#8217;s where it all gets messy. </p>
<p>Needs and wants are different things, and few of us need everything we have installed on our sites. I have 27 plugins currently installed on my network. Of those, three are &#8216;mu-plugins&#8217; that aren&#8217;t so much plugins but sitewide functions, nine are network activated, and one is Hello Dolly. I average about 10 of the others per site, and I know that at least Hello Dolly is actually not used at all. Some sites are the only one to use a certain plugin (like the &#8216;Downloads&#8217; plugin I use here), and others aren&#8217;t network activated but are used on many sites (like WordPress SEO and W3TC).</p>
<p>Even here on my network, I have different tools for different sites. Heck, one site has only one additional plugin activated on it!</p>
<p><img src="http://halfelf.org/files/2012/04/what_do_you_want-216x300.jpg" alt="What Do You Want?" title="What Do You Want?" width="216" height="300" class="alignright size-medium wp-image-2106" />So when you look at all that, you may wonder if there&#8217;s a plugin I can&#8217;t live without. The answer is a flat out no, but you&#8217;re not asking the right question.</p>
<p>What you need to ask is <em>What features are required for my site?</em></p>
<p>When someone tells me they want help with their site and what plugins should they use, I tell them &#8220;You need to make a list of what features you need. Not want. Need.&#8221; There&#8217;s a huge difference between the stuff you want, to make your site look cool and neat, and the ones you require for the desired functionality. What a website needs is a way to display content in an easily absorbed way.</p>
<p>People forget the purpose of a website is for people to find your stuff, read it, and help spread the word. Now, if your &#8216;word&#8217; is videos, then yes, you totally should consider a video plugin. But that&#8217;s a need, not a want. A &#8216;want&#8217; for a video site is a fancy slideshow of New Videos. Look at YouTube, though. They don&#8217;t do that. YouTube knows they&#8217;re going to get a lot of traffic, so they pull things back to their purpose. They want to show videos, that&#8217;s all they do. Obviously they added in a couple wants, which are the ability to comment, vote, favorite etc. Those are pretty minor when you get around to it, in so far as they don&#8217;t affect site speed as much as the actual videos do.</p>
<p>For most blogs, you really <em>don&#8217;t</em> need plugins. If you pull your site back to the things you <em>must</em> have, you get a better understanding of what your site is. Once you look at your site &#8216;naked,&#8217; with no plugins at all, you can start to add plugins back in. </p>
<p>Each and every plugin I add has to serve a purpose. Even my <a href="http://wordpress.org/extend/plugins/rickroll/">RickRoll</a> plugin has a purpose (though its not something that would be on every site I make). The point of a plugin is not &#8216;Oh look, this is cool!&#8217; but &#8216;How can it serve me best?&#8217; If I can&#8217;t come up with a reason this makes my site better, and I am brutal with myself, I don&#8217;t use it.</p>
<p><img src="http://halfelf.org/files/2012/04/Queen_I_Want_It_All-300x261.png" alt="Queen: I Want It All" title="Queen: I Want It All" width="300" height="261" class="alignleft size-medium wp-image-2105" />If you&#8217;re going to have a website, it&#8217;s incumbent on you that you&#8217;re <em>mean</em> to yourself. You hear the horror stories of clients who want all sorts of crazy things on their sites, and there&#8217;s a reason a lot of us sit and laugh (and cry) when we read the Oatmeal&#8217;s <a href="http://theoatmeal.com/comics/design_hell">How a Web Design Goes Straight to Hell</a>. I push developers to fight back against the crazy, but you clients need to step up and understand that &#8216;more&#8217; isn&#8217;t &#8216;better,&#8217; and if you&#8217;re hiring someone to make a site, you really should listen to their suggestions and recommendations.</p>
<p>But the point in the end is that, to make a website, with WordPress, you <strong>need </strong>no plugins. What you <strong>want</strong> is another matter.</p>
]]></content:encoded>
			<wfw:commentRss>http://halfelf.org/2012/you-dont-need-any-plugins/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>WHOIS Tells All</title>
		<link>http://halfelf.org/2012/whois-tells-all/</link>
		<comments>http://halfelf.org/2012/whois-tells-all/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 20:14:15 +0000</pubDate>
		<dc:creator>Ipstenu</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[essay]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://tech.ipstenu.org/?p=1911</guid>
		<description><![CDATA[WHOIS you think you're fooling? No one. WHOIS well tell you who runs a site. Sometimes. If you're lucky.]]></description>
			<content:encoded><![CDATA[<p><img src="http://halfelf.org/files/2012/04/WHOIS-service-100x100.jpg" alt="WHOIS?" title="WHOIS" width="100" height="100" class="alignleft size-thumbnail wp-image-2099" />This most often comes up when someone is suffering content theft. Invariably, someone will see their hard written prose on some scammy person&#8217;s site, and want it taken down. This is, sadly, harder to do than we&#8217;d like. Basically you have to find the site owner, contact them, ask them to take the stuff down, hope they do it, and when they don&#8217;t, go up to their webhost. I&#8217;m not going to get into the copyright issue, and just assume you know not to attack someone over links to your site (not illegal), rss feeds pulling excerpts from your site (ditto), or quotes (really?). If you don&#8217;t know what is and isn&#8217;t copyright/content theft, then you&#8217;re not ready for this yet.</p>
<p>Assuming you are, how do we do find out who owns a site?</p>
<p>First, remember that when you see &#8220;Powered by WordPress&#8221; in a footer of a site, it is not, in fact, hosted by WordPress. This site says &#8220;Powered by WordPress&#8221; but it&#8217;s hosted by <a href="http://www.liquidweb.com/?RID=JFO123">Liquidweb</a>. Now if you see &#8220;Blog at WordPress.com&#8221;, then yes, it&#8217;s hosted by WordPress, and you can easily <a href="http://en.support.wordpress.com/report-blogs/">report the site</a>. The same is true of Blogger, who also has a way to <a href="http://support.google.com/bin/request.py?&amp;product=blogger&amp;contact_type=lr_dmca">report copyright theft</a>. Many of these &#8216;hive&#8217; hosts do that.</p>
<p>LiquidWeb doesn&#8217;t, though. So, pretending for a moment that I&#8217;m a dirty thief, how do you find out who I am, my email, and get your content removed? And when I don&#8217;t answer, where do you go next?</p>
<p><strong>Start With WHOIS</strong></p>
<p>Your first tool is called &#8216;WHOIS&#8217; and does exactly what it sounds like. It tells you &#8216;who is that.&#8217; Network Solutions has a free <a href="http://www.networksolutions.com/whois/index.jsp">whois lookup tool</a> and if you were to search for <a href="http://www.networksolutions.com/whois-search/halfelf.org">Halfelf.org</a> you&#8217;d get the following:</p>
<pre>
Registrant ID:bf39ab1b08df1394
Registrant Name:WhoisGuard Protected
Registrant Organization:WhoisGuard
Registrant Street1:11400 W. Olympic Blvd. Suite 200
Registrant City:Los Angeles
Registrant State/Province:CA
Registrant Postal Code:90064
Registrant Country:US
Registrant Phone:+1.6613102107
Registrant FAX:+1.6613102107
Registrant Email:28a9f8aa493149b1a58ff9b4c51e0bcd.protect@whoisguard.com
</pre>
<p>It goes on and on, but you may notice none of that is actually &#8230; me. That&#8217;s because I pay a wee bit extra a year for my host to hide my personal information via whoisguard. I do it becuase I had some idiot track me down to call me about how I wasn&#8217;t updating my website enough (a different site), and I now have a restraining order against him. <a class="simple-footnote" title="This is a true story, and yes, he called my house. I no longer have that number for a reason, and frankly if you even think about doing that to someone, get a grip! It&#8217;s harassment. For the full story, buy me a drink." id="return-note-1911-1" href="#note-1911-1"><sup>1</sup></a> Now that said, the last line I listed is <em>Registrant Email</em> and that email actually works! It&#8217;s a real email that will forward messages to me.</p>
<p>So step one with these things is email that address and hope the person answers. But when a week goes by with no reply, what next? Sadly, some people never check those emails, or they think <em>you</em> are spam, and ignore it. Thankfully, WHOIS will still save you! Scroll down to the name server entries!</p>
<p>Your nameservers are what translate your domain to the server IP address, and, as a rule, they have to point to where your server really lives. Generally speaking, a nameserver will give away either the registrar (i.e. who you registered your domain with) or the webhost (who you host with).</p>
<p>Mine are:</p>
<pre>
Name Server:NS1.IPSTENU.ORG
Name Server:NS2.IPSTENU.ORG
</pre>
<p>Doesn&#8217;t really help, does it? I mean, that just says &#8216;ipstenu hosts ipstenu!&#8217; Here&#8217;s what I used to have:</p>
<pre>Name Server:NS1.LIQUIDWEB.COM
Name Server:NS2.LIQUIDWEB.COM</pre>
<p>That would have been much more explanatory. Thankfully you can use <a href="http://www.whoishostingthis.com/">Who Is Hosting This?</a> and run a search for any domain (like <a href="http://www.whoishostingthis.com/halfelf.org">http://www.whoishostingthis.com/halfelf.org</a>), even if they have their own name server, and you get this:<br />
<img class="size-full wp-image-2082 aligncenter" title="WhoIsHostingThis" src="http://halfelf.org/files/2012/04/WhoIsHostingThis.png" alt="" width="483" height="92" /></p>
<p>Well thank goodness we have some information! Look up LiquidWeb, and you can contact them. &#8220;Hey, this evil Half Elf is stealing my stuff!&#8221;</p>
<p>I prefer Who Is Hosting This to &#8216;Who Hosts&#8217; becuase if you look me up on the latter, you get this:<br />
<img src="http://halfelf.org/files/2012/04/Who-Hosts.png" alt="" title="Who-Hosts" width="528" height="235" class="aligncenter size-full wp-image-2085" /></p>
<p>Not useful (though accurate). If you keep getting nested domains, you have to keep digging until you find the end of the rabbit hole. </p>
<p>Really the best thing is always going to be whois, and once you get used to looking at it, it&#8217;s really not that scary. At the same time, I strongly suggest people invest in Whois Guard, or some other &#8216;protection&#8217; to stop annoying people from getting their personal information. You don&#8217;t need the hassle of being listed in a phonebook.</p>
<div class="simple-footnotes"><p class="notes">Notes:</p><ol><li id="note-1911-1">This is a true story, and yes, he called my house. I no longer have that number for a reason, and frankly if you even <em>think</em> about doing that to someone, get a grip! It&#8217;s harassment. For the full story, buy me a drink. <a href="#return-note-1911-1">&#8617;</a></li></ol></div>]]></content:encoded>
			<wfw:commentRss>http://halfelf.org/2012/whois-tells-all/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Giving WordPress That New Car Smell (Part 2)</title>
		<link>http://halfelf.org/2012/new-car-smell-2/</link>
		<comments>http://halfelf.org/2012/new-car-smell-2/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 15:34:09 +0000</pubDate>
		<dc:creator>Ipstenu</dc:creator>
				<category><![CDATA[Philosopy]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[essay]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://halfelf.org/?p=2074</guid>
		<description><![CDATA[Now it's time to bang into the themes I picked, what I liked and disliked, and what (if any) major hurdles I had.]]></description>
			<content:encoded><![CDATA[<p><a href="http://halfelf.org/2012/new-car-smell-2/simplicity/" rel="attachment wp-att-2075"><img src="http://halfelf.org/files/2012/04/Simplicity.jpeg" alt="Simplicity is the ultimate sophistication." title="Simplicity is the ultimate sophistication." width="300" height="300" class="aligncenter size-full wp-image-2075" /></a></p>
<p> In <a href="http://halfelf.org/2012/new-car-smell-1">Part One</a> I talked around what I did. Here are the themes I picked, what I feel about them, and what I loved and hated.</p>
<p>All three themes are frameworks, and I&#8217;m using children there of. Unlike just making a child theme from TwentyEleven, these are true, robust, themes, designed by artists. This took me maybe 10 hours of work, total, to do everything on all three sites, and as most of that wasn&#8217;t me sitting down and concentrating, but multitasking and bouncing around, so it may have been 4 hours serious work.</p>
<p>Oh and all these themes are &#8216;premium.&#8217; And worth it.</p>
<p><strong>Origin &#8211; In use on <a href="http://halfelf.org">Half-Elf On Tech</a></strong></p>
<p><a href="http://devpress.com/themes/origin/"><img src="http://halfelf.org/files/2012/04/origin.jpg" alt="Origin Theme" title="Origin Theme" width="300" height="225" class="alignleft size-full wp-image-2069" /></a> </p>
<p><a href="http://devpress.com/themes/origin/">Origin</a> was the first theme I picked, from <a href="http://devpress.com">DevPress</a>, and I decided on it after playing with a bunch of different DevPress themes. I&#8217;m partial to them (and <a href="http://themehybrid.com/">ThemeHybrid</a>) because I&#8217;ve been using Hybrid Core since before it was released, and I know it. I&#8217;ve memorized the hooks, and I like being able to quickly spin up my <code>functions.php</code> for it. All the serious changes are done in a pretty small file, actually, and mostly have to do with inserting FaceBook and Google into the header and footer, my comments &#8216;rules&#8217; and that cool clickable (and hoverable) <a href="http://halfelf.org/hacks/wp-site-description/">asterisks in my site description</a>. I also really like the &#8216;full page&#8217; view, and used it on some of my content-only-no-comments pages like <a href="http://halfelf.org/license/">Licensing</a>.</p>
<p>Since I have a mini rant later on about favicons, Origin lets you update the favicon right there in the theme settings.<br />
<img src="http://halfelf.org/files/2012/04/favicon.png" alt="Origin Favicon" title="Origin Favicon" width="585" height="113" class="aligncenter size-full wp-image-2073" /></p>
<p>This is especially important for Multisite installs, where each site will want their own favicon. Now I don&#8217;t need a plugin. And if anyone can think of a cooler favicon for this site than the Spock Eye, let me know.</p>
<p><strong>Balance &#8211; In use on <a href="http://ipstenu.org">Ipstenu.org</a></strong></p>
<p><a href="http://www.studiopress.com/themes/balance"><img src="http://halfelf.org/files/2012/04/balance-300x214.jpg" alt="Balance Theme" title="Balance Theme" width="300" height="214" class="alignright size-medium wp-image-2067" /></a></p>
<p><a href="http://www.studiopress.com/themes/balance">Balance</a>, from StudioPress, was next. This was a huge departure for me, and oddly it&#8217;s the theme I love the most and have the most issues with. Let me explain.</p>
<p>While I&#8217;m perfectly comfortable bashing away at a <code>functions.php</code> file, unlike Origin, Balance is a child theme. See, HybridCore is a &#8216;starter&#8217; parent theme, where you make your own child off it. Balance is a true child theme. When I got it, it came with a copy of Genesis, which is the parent. So while with Origin I made &#8216;HalfElf Origin&#8217;, I couldn&#8217;t do that here. I would have to edit the Balance theme directly, which goes against my nature.</p>
<p>Back in the day when I used <a href="http://themehybrid.com/themes/hybrid-news">Hybrid News</a>, Justin made a massive upgrade. I hated it, as I&#8217;d made all sorts of tweaks to the theme, and it was a bitch to fix. Now, I happened to agree 100% with the choice to make those changes, <a href="http://themehybrid.com/docs/tutorials/upgrading-hybrid-news-menus">you <em>had</em> to upgrade the menus for WordPress 3.0</a>, but it was painful. This sort of hassle scarred me for life. I don&#8217;t like to edit themes directly. So I pinged Andrea and asked her &#8216;How often do these themes update? She said &#8216;rarely&#8217; which isn&#8217;t the same as &#8216;never&#8217; and, while calming, wasn&#8217;t the best thing in the world for my neuroses. <a class="simple-footnote" title="Nacin makes &#8216;tin foil hat&#8217; jokes about me for a reason. I don&#8217;t trust anything." id="return-note-2074-1" href="#note-2074-1"><sup>1</sup></a> Personally I&#8217;d love to see Genesis go the same way that Hybrid did, and to make a &#8216;core&#8217; that is included in all their themes. Then Balance would include all the files for Genesis <em>and</em> Balance, and people could happily make their own children.</p>
<p>With that in mind, I did a smart thing. Instead of editing the child theme, I made two files: <code>ipstenu.css</code> and <code>ipstenu.php</code> (I told you I&#8217;d get back to why there was no <code>style.css</code> <a class="simple-footnote" title="Actually, there is a style.css in the folder, but only to stop WordPress from throwing silly errors. It does nothing." id="return-note-2074-2" href="#note-2074-2"><sup>2</sup></a>) and put them in a fake theme folder called <code>ipstenubalance</code>. Those I included into the <code>style.css</code> and <code>functions.php</code> of the actual child theme. </p>
<p>Calling the CSS was easy:</p>
<pre class="brush: xml; title: ; notranslate">@import url(&quot;../ipstenubalance/ipstenu.css&quot;);</pre>
<p>And the special functions is just this:</p>
<pre class="brush: php; title: ; notranslate">require_once( get_theme_root() . '/ipstenubalance/ipstenu.php' );</pre>
<p>Now all I have to remember is that if the default style or functions gets edited in Balance, to re-add those calls in.</p>
<p>The reason I dislike Balance, however, is not my own personal issues (and I&#8217;m well aware they&#8217;re just mine). It&#8217;s that there was a favicon forced on me. I hate that with a passion. You see, everything else is really a small change. I want a larger font, a darker blue, a bigger curve. But a favicon is &#8230; <a href="http://halfelf.org/2009/every-site-should-have-a-favicon/">your site is naked without it</a>. And it should resemble who you are. That&#8217;s why I have my &#8216;me&#8217; image as my favicon most of the time.</p>
<p>But at the same time I love Balance, because I was able to overwrite the favicon with this:</p>
<pre class="brush: php; title: ; notranslate">
remove_action( 'genesis_meta', 'genesis_load_favicon' );
add_action( 'genesis_meta', 'ipstenu_load_favicon' );
function ipstenu_load_favicon() {
	echo '&lt;link rel=&quot;shortcut icon&quot; href=&quot;http://ipstenu.org/favicon.ico&quot; /&gt;';
}
</pre>
<p>Other than that, Balance is my first go-at with a &#8216;managed&#8217; theme, and I have to say I&#8217;m really astounded. If you didn&#8217;t know anything about functions and hooks, you could still make this site (in fact, I did, via a Genesis Hooks plugin). It&#8217;s crazy customizable, without feeling clunky. And yes, some of the other &#8216;pro&#8217; themes I looked at felt that way. StudioPress impressed the hell out of me. If you need a ready-to-go theme and don&#8217;t want to mess around with code, StudioPress is the way to go. They set the bar for parent themes. And like Origin, they too have a full-screen template, which I used on my <a href="http://ipstenu.org/terms-of-use/">terms of use</a>. I suppose this is why the <em>don&#8217;t</em> go the route of Hybrid Core. Most of their users aren&#8217;t going to play with child themes, and instead will use the built in features, or the <a href="http://www.studiopress.com/plugins">Genesis Plugins</a> to customize things from the WordPress admin dashboard. <a class="simple-footnote" title="This morning it occurred to me that having &#8216;hybrid core&#8217; as a non-parent theme means that if Hybrid updated, Origin would need to be, and now someone has to edit that. The difference is I&#8217;m only editing my child theme. When Origin gets updated, it doesn&#8217;t impact my child, and a trained theme guru will make the edits, not a newb. On the other hand, if Balance is updated&#8230; Yeah. I suspect at this point it&#8217;s too much work to say &#8216;Make a child theme!&#8217; for the Genesis users, but I&#8217;d love to be a fly on the wall for that conversation!" id="return-note-2074-3" href="#note-2074-3"><sup>3</sup></a></p>
<p>It&#8217;s a step &#8216;back,&#8217; in terms of me being a developer, but at the same time I feel a burden lifted when it comes to managing things. A strange balance. <a class="simple-footnote" title="The pun was totally intended." id="return-note-2074-4" href="#note-2074-4"><sup>4</sup></a></p>
<p><strong>Dotos- In use on <a href="http://photos.ipstenu.org">Ipstenu.Photos</a></strong></p>
<p><a href="http://devpress.com/themes/dotos/"><img src="http://halfelf.org/files/2012/04/dotos.jpg" alt="Dotos Theme" title="Dotos Theme" width="300" height="225" class="alignleft size-full wp-image-2068" /></a></p>
<p>The last one was for my Photo site, <a href="http://photos.ipstenu.org">Ipstenu.Photos</a>, and I wanted it to look like a photoblog. This was really easy, since as <a href="http://devpress.com/themes/dotos/">Dotos</a> is also from DevPress, I could cheat and make a child theme called <code>photodotos</code> and copy my Origin functions over, renaming halfelf for photos. I did one minor css tweak on Dotos, and that was to hide the ability to comment on photos. Didn&#8217;t want it or need it. I have a lot less to say about it, since everything I said in Origin applies here, and I did less tweaking.</p>
<hr />
<p>So there you have it. My sites got a facelift, and I&#8217;m so happy, I load them up just to smile at how sexy they look. My site feels bright and new, and I want to blog more. And that is a win, no matter how you look at it.</p>
<div class="simple-footnotes"><p class="notes">Notes:</p><ol><li id="note-2074-1">Nacin makes &#8216;tin foil hat&#8217; jokes about me for a reason. I don&#8217;t trust anything. <a href="#return-note-2074-1">&#8617;</a></li><li id="note-2074-2">Actually, there <em>is</em> a style.css in the folder, but only to stop WordPress from throwing silly errors. It does nothing. <a href="#return-note-2074-2">&#8617;</a></li><li id="note-2074-3">This morning it occurred to me that having &#8216;hybrid core&#8217; as a non-parent theme means that if Hybrid updated, Origin would need to be, and now someone has to edit that. The difference is I&#8217;m only editing my child theme. When Origin gets updated, it doesn&#8217;t impact my child, and a trained theme guru will make the edits, not a newb. On the other hand, if Balance is updated&#8230; Yeah. I suspect at this point it&#8217;s too much work to say &#8216;Make a child theme!&#8217; for the Genesis users, but I&#8217;d love to be a fly on the wall for that conversation! <a href="#return-note-2074-3">&#8617;</a></li><li id="note-2074-4">The pun was totally intended. <a href="#return-note-2074-4">&#8617;</a></li></ol></div>]]></content:encoded>
			<wfw:commentRss>http://halfelf.org/2012/new-car-smell-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Giving WordPress That New Car Smell (Part 1)</title>
		<link>http://halfelf.org/2012/new-car-smell-1/</link>
		<comments>http://halfelf.org/2012/new-car-smell-1/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 02:10:03 +0000</pubDate>
		<dc:creator>Ipstenu</dc:creator>
				<category><![CDATA[Philosopy]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[essay]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://halfelf.org/?p=2066</guid>
		<description><![CDATA[A very, very, long post about why this site (and all the ones on this Network) got a massive update in design, and my thought processes for what I did.]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a while since I redesigned my sites, and this isn&#8217;t something I do very often. I also have a tendency to stick to a &#8216;theme.&#8217; For the longest time, I was really homogeneous with the sites on this server. All my Ipstenu sites ran <a href="http://themehybrid.com/themes/retro-fitted/">Retro Fitted</a> and then <a href="http://theme.wordpress.com/themes/twentyeleven/">Twenty Eleven</a>. As we got near 3.4 I was all set to shift to Twenty Twelve, but when that was kiboshed, I sat and thought &#8220;Well, what do I want?&#8221;</p>
<p>Redesigning a site is not to be taken lightly. As I mentioned before, <a href="http://halfelf.org/2011/istanbul/" title="Istanbul (Not Constantinople) Will Confuse Your Users">too many changes confuse your visitors</a>. For the last few years, I&#8217;ve kept my sites pretty much the same, and this is normal for me. I mean, <a href="http://jorjafox.net/wiki/JorjaPedia:About#Gallery">look at the designs for JFO</a>! Clearly I find a style and stick by it. I don&#8217;t consider myself a &#8216;theme designer&#8217; person, either. I can tweak the hell out of a theme, but inventing them? No way. I&#8217;ve <em>never</em> been very good at the part of art where I&#8217;m supposed to take an idea and make it visual. Oddly, I can do it with words and &#8216;people&#8217; (think directing a play), but while I can see these things in my head, putting it down on paper fails me.</p>
<p>So why the dramatic change from everything the same to everything different? </p>
<p><img src="http://halfelf.org/files/2012/04/simple-300x143.png" alt="Everything should be made as simple as possible, but not simpler." title="Albert Einstein quote on simplicity" width="300" height="143" class="alignleft size-medium wp-image-2071" /> There&#8217;s a theme through these themes, actually. They&#8217;re all simplistic, focusing on the content in a way that I can, easily, shove the sidebars out of the way when needed, and showing you what&#8217;s important. I didn&#8217;t want to get distracted by bells and whistles, but I also wanted a theme that was easy to tweak. Ipstenu.org I wanted to look a little more grown up, Half-Elf needed to be more professional (but still as irreverent as I am  <a class="simple-footnote" title="In talking to Dana Severance, she asked what my &#8216;voice&#8217; was for my ebooks. I said &#8216;Ms. Frizzle, after 10 years in corporate America.&#8217; And it&#8217;s true." id="return-note-2066-1" href="#note-2066-1"><sup>1</sup></a>), and my photos needed to be about photos and nothing more. I also didn&#8217;t want to fuss with colors too much, they can be a big distraction, and just putting up a black/white with accents felt &#8216;right.&#8217;</p>
<p>Once I committed to simplification, I cut down my menus while keeping them similar to what they were, and I kept my favicons as they were (though Half Elf has been sporting a Spock eye for a week now). Menus are tricky. You want people to find what they want, quickly, but you also want to guide them to where you want them to be. By cutting down the clutter, and having a little down-arrow on menus with drop-downs, I can gently nudge people around. </p>
<p>Buzz-words annoy me, and I try to avoid terms like &#8216;call to action&#8217; whenever possible. Instead I thought of as the purpose. I like using &#8216;static&#8217; content on front pages for that, as they can explain why you&#8217;re here, show you what&#8217;s new, and grabs you. The new Half-Elf page really does that, with the big honking &#8216;ad&#8217; for the book. The haiku keeps you thinking &#8216;This is Mika,&#8217; and the rest confirms that. On Ipstenu.org, the sales pitch is smaller, but you still have a little &#8216;who am I?&#8217; blurb to get you started. While I wanted it to look grown up, I really felt the &#8216;feel&#8217; of me had to stay. That&#8217;s the only site where you&#8217;ll see my Twitter stream, for example. As for the photos, well, they were simple.</p>
<p>I drew out what I saw in my head on paper a few times. A header, a menu, a &#8216;grab you&#8217; blurb, and the content. It&#8217;s a good layout for me, I felt the eyes naturally flowed. Sorting out where on Half-Elf to put that &#8216;recent post&#8217; inset was tricky, as I wanted it to be &#8216;above the fold,&#8217; if you&#8217;ll pardon the archaic reference. Speaking of, all these themes are &#8216;responsive&#8217; so if you shrink your browser, they adjust. Except for the leaderboard ad in the footer. I need to sort that out. <a class="simple-footnote" title="What I want is for if your screen is less than X wide, it vanishes. Maybe I&#8217;ll play with hiding the overflow." id="return-note-2066-2" href="#note-2066-2"><sup>2</sup></a> This does not contradict my drawing deficiencies I mentioned before, by the way. When I &#8216;drew&#8217; my layout, what I did was grid it out. That part wasn&#8217;t &#8216;art&#8217; and I didn&#8217;t try to make anything pretty. I just made a list of what the themes needed in black, what I wanted in blue, and what I knew would be custom work in red.</p>
<p><img src="http://halfelf.org/files/2012/04/folders.png" alt="" title="folders" width="213" height="247" class="alignright size-full wp-image-2072" /> I ended up with three premium themes that I&#8217;ve added functions and style to, but that&#8217;s it. While I may have made <a href="http://halfelf.org/2010/child-themes-learn-them-love-them/">child themes</a>, there&#8217;s no duplication of code. That is, my child themes have two files (<code>functions.php</code> and <code>style.css</code>) and possibly some images. That&#8217;s. It. <strong>halfelforigin</strong> is the child for Half-Elf, <strong>ipstenubalance</strong> is for Ipstenu.org, and <strong>photodotos</strong> is for the Photo site. The first half of the name is the site, the second half is the theme. I&#8217;ve always done it this way, which is why I also have an <strong>ipstenu2011</strong> folder in there. </p>
<p>Oh, and why does the <strong>ipstenubalance</strong> not have a <code>style.css</code>? We&#8217;ll get to that.</p>
<p>But that will have to wait for the next post, where I break down each theme, what I liked and disliked, and what code I wrestled with. It&#8217;s a little longer than this post, which is why it&#8217;s split up.</p>
<p>By the way, the title is thanks to Ryan, who took my joke seriously.</p>
<blockquote class="twitter-tweet" data-in-reply-to="193060805070168064" width="550"><p>@<a href="https://twitter.com/helenhousandi">helenhousandi</a> Giving WordPress That New Car Smell? No, too silly.</p>
<p>&mdash; Ipstenu (@Ipstenu) <a href="https://twitter.com/Ipstenu/status/193061445762691072" data-datetime="2012-04-19T19:40:10+00:00">April 19, 2012</a></p></blockquote>
<p><script src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<blockquote class="twitter-tweet" data-in-reply-to="193061588553576448" width="550"><p>@<a href="https://twitter.com/Ipstenu">Ipstenu</a> @<a href="https://twitter.com/helenhousandi">helenhousandi</a> I would absolutely read a post/listen to a talk entitled &#8220;Giving WordPress That New Car Smell&#8221;</p>
<p>&mdash; Ryan Giglio (@ryangiglio) <a href="https://twitter.com/ryangiglio/status/193061904686649344" data-datetime="2012-04-19T19:41:59+00:00">April 19, 2012</a></p></blockquote>
<p><script src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<div class="simple-footnotes"><p class="notes">Notes:</p><ol><li id="note-2066-1">In talking to Dana Severance, she asked what my &#8216;voice&#8217; was for my ebooks. I said &#8216;Ms. Frizzle, after 10 years in corporate America.&#8217; And it&#8217;s true. <a href="#return-note-2066-1">&#8617;</a></li><li id="note-2066-2">What I want is for if your screen is less than X wide, it vanishes. Maybe I&#8217;ll play with hiding the overflow. <a href="#return-note-2066-2">&#8617;</a></li></ol></div>]]></content:encoded>
			<wfw:commentRss>http://halfelf.org/2012/new-car-smell-1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: halfelf.org @ 2012-05-17 15:57:19 by W3 Total Cache -->
