<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Webmaster-Source</title>
	
	<link>http://www.webmaster-source.com</link>
	<description>Useful Resources For Webmasters</description>
	<lastBuildDate>Wed, 19 Jun 2013 11:04:29 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Webmaster-source" /><feedburner:info uri="webmaster-source" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>Webmaster-source</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FWebmaster-source" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FWebmaster-source" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FWebmaster-source" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/Webmaster-source" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FWebmaster-source" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FWebmaster-source" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FWebmaster-source" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item>
		<title>Solar: A Jekyll Theme Based on the Solarized Color Palette</title>
		<link>http://feedproxy.google.com/~r/Webmaster-source/~3/A4XrxaBXo98/</link>
		<comments>http://www.webmaster-source.com/2013/06/19/solar-a-jekyll-theme-based-on-the-solarized-color-palette/#comments</comments>
		<pubDate>Wed, 19 Jun 2013 11:04:29 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Jekyll]]></category>
		<category><![CDATA[Themes]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=5120</guid>
		<description><![CDATA[I&#8217;ve been having fun playing around with Jekyll and Ruby lately, which has lead to a sudden increase in the number of repositories on my GitHub profile. After converting my personal blog and porting its theme over, I thought it would be fun to build a fresh theme and release it to the public. Without [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been having fun playing around with <a href="http://jekyllrb.com/">Jekyll</a> and Ruby lately, which has lead to a sudden increase in the number of repositories on my GitHub profile. After converting my personal blog and porting its theme over, I thought it would be fun to build a fresh theme and release it to the public.</p>
<p>Without further ado, I would like to introduce <a href="https://github.com/redwallhp/solar-theme-jekyll">Solar</a>, a theme I based upon the <a href="http://ethanschoonover.com/solarized">Solarized</a> color palette. It includes stylesheets for both Solarized Dark and Solarized Light, since the colors are defined separately from the page structure. It&#8217;s responsive, all the way down to mobile size, and it&#8217;s built with link-blogging in mind.</p>
<p style="text-align: center;"><a href="https://github.com/redwallhp/solar-theme-jekyll"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="size-full wp-image-5121 aligncenter imgborder" alt="Solar Theme" src="http://media.webmaster-source.com/wp-content/uploads/2013/06/solar-theme.png" width="600" height="451" /></a></p>
<p>You can view <a href="http://redwallhp.github.io/solar-theme-jekyll/">a demo of Solar here</a>, and <a href="https://github.com/redwallhp/solar-theme-jekyll">download it on GitHub</a>. It&#8217;s licensed under the GPL, so feel free to fork it and go crazy.</p>
<p><iframe src="http://ghbtns.com/github-btn.html?user=redwallhp&#038;repo=solar-theme-jekyll&#038;type=watch&#038;count=true&#038;size=large" allowtransparency="true" frameborder="0" scrolling="0" width="170" height="30"></iframe></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=A4XrxaBXo98:jPJvFg8srtA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=A4XrxaBXo98:jPJvFg8srtA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=A4XrxaBXo98:jPJvFg8srtA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=A4XrxaBXo98:jPJvFg8srtA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=A4XrxaBXo98:jPJvFg8srtA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=A4XrxaBXo98:jPJvFg8srtA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=A4XrxaBXo98:jPJvFg8srtA:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=A4XrxaBXo98:jPJvFg8srtA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Webmaster-source/~4/A4XrxaBXo98" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster-source.com/2013/06/19/solar-a-jekyll-theme-based-on-the-solarized-color-palette/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.webmaster-source.com/2013/06/19/solar-a-jekyll-theme-based-on-the-solarized-color-palette/</feedburner:origLink></item>
		<item>
		<title>DigitalOcean Review</title>
		<link>http://feedproxy.google.com/~r/Webmaster-source/~3/N-uabg9aRxw/</link>
		<comments>http://www.webmaster-source.com/2013/06/12/digitalocean-review/#comments</comments>
		<pubDate>Wed, 12 Jun 2013 21:32:49 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[DigitalOcean]]></category>
		<category><![CDATA[VPS]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=5104</guid>
		<description><![CDATA[Since the beginning of April, this site has been hosted by DigitalOcean. I&#8217;ve been a longtime customer of VPS.net—from September of 2009 up until April of 2012—but the difference in service was so huge that I had to switch. While VPS.net was a good choice back in 2009, when I chose them over the then-comparable [...]]]></description>
				<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-5107" alt="DigitalOcean" src="http://media.webmaster-source.com/wp-content/uploads/2013/05/digitalocean-logo.png" width="167" height="112" />Since the beginning of April, this site has been hosted by <a href="https://www.digitalocean.com/">DigitalOcean</a>. I&#8217;ve been a longtime customer of VPS.net—from September of 2009 up until April of 2012—but the difference in service was so huge that I had to switch. While VPS.net was a good choice back in 2009, when I chose them over the then-comparable Linode, their competition has outpaced them over the years. I&#8217;m now getting substantially more for half the price. It was a big decision to move, but I&#8217;m glad I did.</p>
<p>History lesson aside, here&#8217;s what DigitalOcean has to offer: affordable VPS hosting with plenty of memory and fast solid-state drives. Their offerings are comparable to those of the venerable <a href="https://www.linode.com/">Linode</a>, though cheaper. (The difference comes down to which is more important to you: CPU or price.)</p>
<p>Their cheapest plan gets you a VM with 512MB of RAM and 20GB of space for a mere five dollars per month (or $0.007/hour). That&#8217;s cheaper than a lot of shared hosting plans, for a speedy box with full root access. The plan I&#8217;m using is their $10/month option, which comes with one gigabyte of memory.</p>
<p style="text-align: center;"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-5106 imgborder" alt="DigitalOcean Pricing" src="http://media.webmaster-source.com/wp-content/uploads/2013/05/digitalocean-pricing.png" width="600" height="491" /></p>
<p>Backups and snapshots of VMs are priced reasonably, with backups costing 20% of the server&#8217;s price (e.g. $1 per month for a $5 per month server) and snapshots being $0.02 per gigabyte stored.</p>
<p>The service has been stable so far, and the one support ticket I opened was resolved in a timely manner. Performance-wise, there has been a definite improvement over my previous host. (It&#8217;s also nice having the server be in New York, which results in a much more favorable network latency from where I live.)</p>
<p>DigitalOcean has a freshly redesigned control panel, from which you can manage your servers, DNS, billing and other settings. It&#8217;s also the place where you can set up your API access if you want to manage things from a mobile app, command line utility, or even use a Vagrant provider.</p>
<p><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-5108" alt="DigitalOcean Control Panel" src="http://media.webmaster-source.com/wp-content/uploads/2013/05/digitalocean-controlpanel.png" width="600" height="375" /></p>
<p>I&#8217;ve been very happy with DigitalOcean since my big switch, and definitely recommend them if you&#8217;re in the market for a decent VPS provider. If you want to give them a try, <a href=" https://www.digitalocean.com/?refcode=b6711983671a ">here&#8217;s my affiliate link</a>. If you enter the promo code SSDPOWER on the billing settings page, you&#8217;ll get $10 worth of free credit. You can spin up a VM, play around with it, and delete it when you&#8217;re done.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=N-uabg9aRxw:i9742uWgCgM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=N-uabg9aRxw:i9742uWgCgM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=N-uabg9aRxw:i9742uWgCgM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=N-uabg9aRxw:i9742uWgCgM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=N-uabg9aRxw:i9742uWgCgM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=N-uabg9aRxw:i9742uWgCgM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=N-uabg9aRxw:i9742uWgCgM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=N-uabg9aRxw:i9742uWgCgM:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Webmaster-source/~4/N-uabg9aRxw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster-source.com/2013/06/12/digitalocean-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.webmaster-source.com/2013/06/12/digitalocean-review/</feedburner:origLink></item>
		<item>
		<title>BlogBuzz June 8, 2013</title>
		<link>http://feedproxy.google.com/~r/Webmaster-source/~3/wj1qrC8PE-o/</link>
		<comments>http://www.webmaster-source.com/2013/06/08/blogbuzz-june-8-2013/#comments</comments>
		<pubDate>Sat, 08 Jun 2013 11:03:18 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[BlogBuzz]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=5115</guid>
		<description><![CDATA[It’s not a web app. It’s an app you install from the web. Why Amazon Supports An Online Sales-Tax Bill Magnific Popup: Responsive jQuery Lightbox Plugin Secret Bitcoin mining code added to e-sports software sparks outrage Static Is Beautiful Mass Assignment, Rails, and You Google Login Buttons Are Worth It This Is a Blog Post. [...]]]></description>
				<content:encoded><![CDATA[<ul>
<li><a href="http://blog.forecast.io/its-not-a-web-app-its-an-app-you-install-from-the-web/">It’s not a web app. It’s an app you install from the web.</a></li>
<li><a href="http://www.npr.org/blogs/money/2013/04/22/178407898/why-amazon-supports-an-online-sales-tax-bill">Why Amazon Supports An Online Sales-Tax Bill</a></li>
<li><a href="http://dimsemenov.com/plugins/magnific-popup/">Magnific Popup: Responsive jQuery Lightbox Plugin</a></li>
<li><a href="http://arstechnica.com/security/2013/05/secret-bitcoin-mining-software-added-to-video-game-sparks-outrage/">Secret Bitcoin mining code added to e-sports software sparks outrage</a></li>
<li><a href="http://decomplecting.org/blog/2012/07/04/static-is-beautiful/">Static Is Beautiful</a></li>
<li><a href="http://net.tutsplus.com/tutorials/ruby/mass-assignment-rails-and-you/">Mass Assignment, Rails, and You</a></li>
<li><a href="http://blog.theappifier.com/2013/05/21/google-login-buttons-are-worth-it/">Google Login Buttons Are Worth It</a></li>
<li><a href="http://www.slate.com/blogs/browbeat/2013/05/24/blog_post_vs_blog_this_blog_post_is_not_a_blog.html">This Is a Blog Post. It Is Not a &#8220;Blog.&#8221;</a></li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=wj1qrC8PE-o:xuZ9o4vc8lg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=wj1qrC8PE-o:xuZ9o4vc8lg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=wj1qrC8PE-o:xuZ9o4vc8lg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=wj1qrC8PE-o:xuZ9o4vc8lg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=wj1qrC8PE-o:xuZ9o4vc8lg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=wj1qrC8PE-o:xuZ9o4vc8lg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=wj1qrC8PE-o:xuZ9o4vc8lg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=wj1qrC8PE-o:xuZ9o4vc8lg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Webmaster-source/~4/wj1qrC8PE-o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster-source.com/2013/06/08/blogbuzz-june-8-2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.webmaster-source.com/2013/06/08/blogbuzz-june-8-2013/</feedburner:origLink></item>
		<item>
		<title>CDNJS: The Missing CDN</title>
		<link>http://feedproxy.google.com/~r/Webmaster-source/~3/YHMtJsm1pDQ/</link>
		<comments>http://www.webmaster-source.com/2013/06/05/cdnjs-the-missing-cdn/#comments</comments>
		<pubDate>Wed, 05 Jun 2013 11:22:33 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[CDN]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=5101</guid>
		<description><![CDATA[The Google CDN is an awesome way to speed up page load times, but it only has a few of the most popular JavaScript libraries. That&#8217;s what CloudFlare is aiming to rectify with their CDNJS. They have a ludicrously long list of libraries—JavaScript, CSS, SWF, images, etc.—served over HTTP/HTTPS/SPDY. Need 960gs, Twitter Bootstrap, Backbone.js, TinyMCE [...]]]></description>
				<content:encoded><![CDATA[<p>The <a href="https://developers.google.com/speed/libraries/devguide">Google CDN</a> is an awesome way to speed up page load times, but it only has a few of the most popular JavaScript libraries. That&#8217;s what CloudFlare is aiming to rectify with their <a href="http://cdnjs.com/">CDNJS</a>. They have a ludicrously long list of libraries—JavaScript, CSS, SWF, images, etc.—served over HTTP/HTTPS/SPDY.</p>
<p>Need 960gs, Twitter Bootstrap, Backbone.js, TinyMCE or something else entirely? They probably have it. If they don&#8217;t, you can open a pull request on GitHub to add it!</p>
<p>And since it&#8217;s backed by CloudFlare, it should be reliable. They know what they&#8217;re doing.</p>
<p><a href="http://cdnjs.com/">CDNJS — The Missing CDN</a> [CloudFlare]</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=YHMtJsm1pDQ:E6BLs2rP0VI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=YHMtJsm1pDQ:E6BLs2rP0VI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=YHMtJsm1pDQ:E6BLs2rP0VI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=YHMtJsm1pDQ:E6BLs2rP0VI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=YHMtJsm1pDQ:E6BLs2rP0VI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=YHMtJsm1pDQ:E6BLs2rP0VI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=YHMtJsm1pDQ:E6BLs2rP0VI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=YHMtJsm1pDQ:E6BLs2rP0VI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Webmaster-source/~4/YHMtJsm1pDQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster-source.com/2013/06/05/cdnjs-the-missing-cdn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.webmaster-source.com/2013/06/05/cdnjs-the-missing-cdn/</feedburner:origLink></item>
		<item>
		<title>Find the Number of Lines in a Git Repository</title>
		<link>http://feedproxy.google.com/~r/Webmaster-source/~3/MPItWbpSNXs/</link>
		<comments>http://www.webmaster-source.com/2013/05/29/find-the-number-of-lines-in-a-git-repository/#comments</comments>
		<pubDate>Wed, 29 May 2013 11:07:09 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=5082</guid>
		<description><![CDATA[Want to figure out how many lines of code are in your Git repository? I&#8217;ve had an alias in my .bashrc file for ages that does just that. It uses git ls-files to generate a list of files, which it then passes it to the wc command, which generates word and character count statistics (the [...]]]></description>
				<content:encoded><![CDATA[<p>Want to figure out how many lines of code are in your Git repository? I&#8217;ve had an alias in my <code>.bashrc</code> file for ages that does just that.</p>
<pre class="brush: bash; title: ; notranslate">git ls-files | xargs wc -l</pre>
<p>It uses <code>git ls-files</code> to generate a list of files, which it then passes it to the wc command, which generates word and character count statistics (the &#8220;l&#8221; flag makes it count lines).</p>
<p>Obviously the line is a bit of a mouthful (handful?). So you can create an easier alias, like &#8220;gitlines&#8221; and put it in your <code>.bashrc</code> file.</p>
<pre class="brush: bash; title: ; notranslate">alias gitlines=&quot;git ls-files | xargs wc -l&quot;</pre>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=MPItWbpSNXs:tMO8w6Da0Kc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=MPItWbpSNXs:tMO8w6Da0Kc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=MPItWbpSNXs:tMO8w6Da0Kc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=MPItWbpSNXs:tMO8w6Da0Kc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=MPItWbpSNXs:tMO8w6Da0Kc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=MPItWbpSNXs:tMO8w6Da0Kc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=MPItWbpSNXs:tMO8w6Da0Kc:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=MPItWbpSNXs:tMO8w6Da0Kc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Webmaster-source/~4/MPItWbpSNXs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster-source.com/2013/05/29/find-the-number-of-lines-in-a-git-repository/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.webmaster-source.com/2013/05/29/find-the-number-of-lines-in-a-git-repository/</feedburner:origLink></item>
		<item>
		<title>WordPress 4.0 Would Be a Good Chance for a Rewrite</title>
		<link>http://feedproxy.google.com/~r/Webmaster-source/~3/em2MqbHo6nM/</link>
		<comments>http://www.webmaster-source.com/2013/05/22/wordpress-4-0-would-be-a-good-chance-for-a-rewrite/#comments</comments>
		<pubDate>Wed, 22 May 2013 11:36:02 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=5062</guid>
		<description><![CDATA[It&#8217;s no secret that the WordPress codebase is a mess. It seems that not a week goes by without some blogger publishing a post criticizing it. Unfortunately, fixing it is no simple matter. One of the goals the WordPress project holds is to maintain compatibility with older plugins and themes that may not have been [...]]]></description>
				<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  src="http://media.webmaster-source.com/wp-content/uploads/2013/04/wordpress-logo-type.png" alt="WordPress" width="249" height="57" class="alignright size-full wp-image-5065" />It&#8217;s no secret that the WordPress codebase is a mess. It seems that not a week goes by without some blogger publishing a post criticizing it. Unfortunately, fixing it is no simple matter.</p>
<p>One of the goals the WordPress project holds is to maintain compatibility with older plugins and themes that may not have been updated to work with the latest version, which means, well, not changing things that would break old plugins. Or adding new functions and leaving the older, redundant ones behind to maintain compatibility. It&#8217;s that methodology that led the developers to bake the infamous <a href="http://en.wikipedia.org/wiki/Magic_quotes">Magic Quotes</a> functionality into WordPress itself, when it has been deprecated and removed from newer versions of PHP, so as to not break plugins expecting that behavior. (Which means plugin developers have to unescape strings before passing them to prepared statements, like they <em>should</em> be doing.)</p>
<p>That&#8217;s just one example of something <em>I</em> find vexing about WordPress, and not really indicative of the deeper <em>structural</em> issues that others complain about.<span id="more-5062"></span></p>
<p>Sadly, the core developers would never agree to just dump everything and rewrite from scratch. It would break everyone&#8217;s plugins and themes, and it would take forever for them to be rewritten. That thought lead me to an idea, though. There&#8217;s a similar parallel to this: Python.</p>
<p>Version three of the Python language was released several years ago, but Python 2.6/2.7 are still used more widely than the latest and greatest. Why? Because scripts written for Python 2.x have to be adjusted to work with the newer version, which doesn&#8217;t retain backwards-compatibility. Projects like the <a href="https://www.djangoproject.com/">Django framework</a> are currently straddling the two versions, offering support for both through a compatibility layer, while slowly phasing out the older. Their plans are to slowly drop support for previous point-releases in the 2.x line while targeting Python 3.</p>
<p>A similar roadmap could be used with WordPress. Let&#8217;s say that WordPress 4.0 should be a completely rewritten, modern PHP application with a minimum requirement of PHP 5.3. The developer team would basically create a new dev branch and get to work, while still maintaining the 3.x branch for awhile. As the new version progresses, developers of plugins and themes could follow along and incrementally make changes to support any differences in the API. This would make it possible to do a full rewrite, and give the creators of <em>actively developed</em> plugins and themes a chance to catch up. (It&#8217;s high time to axe antique plugins designed for Magic Quotes and other PHP4 crimes against humanity.)</p>
<p>Once the 4.0 branch reaches completion, and the timeline for third-party developers to update their stuff nears its end, the 3.x branch is ended. Sites that depend on ye olde software could still delay updating until their dependencies are patched.</p>
<p>For another parallel, look to <a href="http://laravel.com/">Laravel</a>. They have the old Laravel 3, which people looking for a stable framework stick with, and the subject-to-change development branch, <a href="http://four.laravel.com/">Laravel 4</a>. The latter is significantly different, and will one day replace Laravel 3, but the older version isn&#8217;t being dumped until the shiny new version is 100% complete.</p>
<p>Personally, I think this issue is going to need to be addressed soon. WordPress&#8217;s reputation of being a &#8220;bloated mess of spaghetti code&#8221; is surely exaggerated, but certainly not unfounded. It needs work. Yes, it will cause incompatibilities, but that&#8217;s a part of the life cycle for any major software product. Sometimes you just need to cut the legacy software loose and begin anew, like Apple did with the OS 9 to OS X transition.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=em2MqbHo6nM:Mu7PgEOzTqE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=em2MqbHo6nM:Mu7PgEOzTqE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=em2MqbHo6nM:Mu7PgEOzTqE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=em2MqbHo6nM:Mu7PgEOzTqE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=em2MqbHo6nM:Mu7PgEOzTqE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=em2MqbHo6nM:Mu7PgEOzTqE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=em2MqbHo6nM:Mu7PgEOzTqE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=em2MqbHo6nM:Mu7PgEOzTqE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Webmaster-source/~4/em2MqbHo6nM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster-source.com/2013/05/22/wordpress-4-0-would-be-a-good-chance-for-a-rewrite/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.webmaster-source.com/2013/05/22/wordpress-4-0-would-be-a-good-chance-for-a-rewrite/</feedburner:origLink></item>
		<item>
		<title>CSS Zen Garden Returns</title>
		<link>http://feedproxy.google.com/~r/Webmaster-source/~3/QWvtqRurL_Q/</link>
		<comments>http://www.webmaster-source.com/2013/05/15/css-zen-garden-returns/#comments</comments>
		<pubDate>Wed, 15 May 2013 11:09:30 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[CSS3]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=5095</guid>
		<description><![CDATA[It&#8217;s been ten years since CSS Zen Garden launched with its goal to excite and inspire people to build creative designs with the much more limited tools CSS offered at the time. A decade later, it&#8217;s back. Given how the CSS landscape has changed since the original CSS Zen Garden, it will be interesting to [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s been ten years since <a href="http://www.csszengarden.com/">CSS Zen Garden</a> launched with its goal to excite and inspire people to build creative designs with the much more limited tools CSS offered at the time. <a href="http://mezzoblue.com/archives/2013/05/07/10_years/">A decade later, it&#8217;s back.</a> Given how the CSS landscape has changed since the original CSS Zen Garden, it will be interesting to see what people create with the new requirements.</p>
<blockquote><p>So for the tenth anniversary, the Zen Garden is open for business once more. I’ve <a href="https://github.com/mezzoblue/csszengarden.com">thrown the codebase on Github</a>, given the dusty copy a refresh, started the conversion of the site to HTML5, and brought all of the existing designs kicking and screaming into the modern age. The work isn’t done yet, but it’s a darn sight closer to how we would build it these days. If you see an area that needs help, consider sending a patch. (Here’s the current <a href="https://github.com/mezzoblue/csszengarden.com/issues">list of issues</a> to resolve, for example.)</p></blockquote>
<p><a href="http://mezzoblue.com/archives/2013/05/07/10_years/">10 Years</a> [Mezzoblue]</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=QWvtqRurL_Q:Zb1wBSNhfj0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=QWvtqRurL_Q:Zb1wBSNhfj0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=QWvtqRurL_Q:Zb1wBSNhfj0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=QWvtqRurL_Q:Zb1wBSNhfj0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=QWvtqRurL_Q:Zb1wBSNhfj0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=QWvtqRurL_Q:Zb1wBSNhfj0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=QWvtqRurL_Q:Zb1wBSNhfj0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=QWvtqRurL_Q:Zb1wBSNhfj0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Webmaster-source/~4/QWvtqRurL_Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster-source.com/2013/05/15/css-zen-garden-returns/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.webmaster-source.com/2013/05/15/css-zen-garden-returns/</feedburner:origLink></item>
		<item>
		<title>Adobe Kills Creative Suite, Demands Monthly Subscription</title>
		<link>http://feedproxy.google.com/~r/Webmaster-source/~3/KKpIHQ7k1sI/</link>
		<comments>http://www.webmaster-source.com/2013/05/08/adobe-kills-creative-suite-demands-monthly-subscription/#comments</comments>
		<pubDate>Wed, 08 May 2013 11:30:49 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=5087</guid>
		<description><![CDATA[At the Adobe MAX conference this week, Adobe announced that they will be discontinuing their Creative Suite products (Photoshop, Illustrator, etc.) in favor of their subscription-based &#8220;Creative Cloud&#8221; service. Instead of purchasing the software outright, and upgrading at your leisure, the new system involves paying a monthly subscription fee in order to continue using the [...]]]></description>
				<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-5089" alt="Adobe Creative Cloud" src="http://media.webmaster-source.com/wp-content/uploads/2013/05/adobe-creative-cloud.png" width="200" height="89" />At the Adobe MAX conference this week, Adobe <a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/201305/050613AdobeUpdatesCreativeCloud.html">announced</a> that they will be discontinuing their Creative Suite products (Photoshop, Illustrator, etc.) in favor of their subscription-based &#8220;Creative Cloud&#8221; service. Instead of purchasing the software outright, and upgrading at your leisure, the new system involves paying a monthly subscription fee in order to continue using the software. It costs $50/month for access to the Creative Suite products, or $20/month for a single product (e.g. just Photoshop).</p>
<p>If you&#8217;re someone like me, who doesn&#8217;t purchase every version, waiting years between upgrades, this is a very unpleasant development. (I just moved from CS1 to CS5 during the past year, and the impetus behind that decision was the lack of support for legacy PowerPC software on newer versions of OS X. I upgraded to a newer MacBook Pro, and had to pick up a newer version of Photoshop to go with it.)</p>
<p>The move shouldn&#8217;t make huge difference if you already upgrade annually, as you&#8217;re basically paying the $600 upgrade fee perpetually, but it&#8217;s not great if you prefer to skip versions or buy secondhand.</p>
<p>Existing users for Creative Suite 3 or higher can get a reduced rate of $30/month for their first year, but will have to pay full price thereafter.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=KKpIHQ7k1sI:87P1h1khpUM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=KKpIHQ7k1sI:87P1h1khpUM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=KKpIHQ7k1sI:87P1h1khpUM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=KKpIHQ7k1sI:87P1h1khpUM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=KKpIHQ7k1sI:87P1h1khpUM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=KKpIHQ7k1sI:87P1h1khpUM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=KKpIHQ7k1sI:87P1h1khpUM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=KKpIHQ7k1sI:87P1h1khpUM:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Webmaster-source/~4/KKpIHQ7k1sI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster-source.com/2013/05/08/adobe-kills-creative-suite-demands-monthly-subscription/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.webmaster-source.com/2013/05/08/adobe-kills-creative-suite-demands-monthly-subscription/</feedburner:origLink></item>
		<item>
		<title>How IMDB’s Speedy Search Suggestions Work</title>
		<link>http://feedproxy.google.com/~r/Webmaster-source/~3/o2-3BgiUoHs/</link>
		<comments>http://www.webmaster-source.com/2013/05/01/how-imdbs-speedy-search-suggestions-work/#comments</comments>
		<pubDate>Wed, 01 May 2013 11:35:56 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[static]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=5049</guid>
		<description><![CDATA[If you type a few letters into the search field over at the Internet Movie Database, you might notice how fast it is. That&#8217;s because they&#8217;re not served dynamically from their primary servers. IMDB, instead, serves the JSON data for search suggestions from a CDN, resulting in a significant speed boost. They use pregenerated static [...]]]></description>
				<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-5050 imgborder" alt="IMDB Search JSON" src="http://media.webmaster-source.com/wp-content/uploads/2013/03/imdbsuggestjson.png" width="300" height="207" />If you type a few letters into the search field over at the <a href="http://imdb.com/">Internet Movie Database</a>, you might notice how fast it is. That&#8217;s because they&#8217;re not served dynamically from their primary servers. IMDB, instead, serves the JSON data for search suggestions from a CDN, resulting in a significant speed boost. They use pregenerated static files to make this possible.</p>
<p>For example, if you visit this URL, you&#8217;ll get a JSON file of results for Harry Potter films:</p>
<pre class="brush: plain; title: ; notranslate">http://sg.media-imdb.com/suggests/h/harry.json</pre>
<p>The &#8220;h&#8221; directory means the query starts with an &#8220;h,&#8221; as they group their result sets alphabetically, and the &#8220;harry&#8221; part is what was typed into the search box. So if you wanted results that would match Doctor Who, you could use <a href="http://sg.media-imdb.com/suggests/d/doct.json"><code>/d/doct.json</code></a>. (Spaces are replaced with underscores.)</p>
<p>They only seem to have result sets for 4-5 character inputs, though. So you can query &#8220;ince&#8221; but not &#8220;inception.&#8221; The latter will result in an error. I guess most searches common enough to be matched in the suggestion box are covered within that limitation.</p>
<p>It&#8217;s a clever implementation, and it has to save a lot of computing power on a site that large, in addition to being fast.</p>
<p>(Note that this is not a public API, and IMDB/Amazon probably wouldn&#8217;t be happy about you scraping it or anything like that. But it&#8217;s a nice thing to learn from.)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=o2-3BgiUoHs:uZ4GYvsbE6M:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=o2-3BgiUoHs:uZ4GYvsbE6M:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=o2-3BgiUoHs:uZ4GYvsbE6M:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=o2-3BgiUoHs:uZ4GYvsbE6M:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=o2-3BgiUoHs:uZ4GYvsbE6M:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=o2-3BgiUoHs:uZ4GYvsbE6M:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=o2-3BgiUoHs:uZ4GYvsbE6M:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=o2-3BgiUoHs:uZ4GYvsbE6M:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Webmaster-source/~4/o2-3BgiUoHs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster-source.com/2013/05/01/how-imdbs-speedy-search-suggestions-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.webmaster-source.com/2013/05/01/how-imdbs-speedy-search-suggestions-work/</feedburner:origLink></item>
		<item>
		<title>WordPress Security Advisory: Harden Your Admin Login</title>
		<link>http://feedproxy.google.com/~r/Webmaster-source/~3/spuyn0v06SQ/</link>
		<comments>http://www.webmaster-source.com/2013/04/24/wordpress-security-advisory-harden-your-admin-login/#comments</comments>
		<pubDate>Wed, 24 Apr 2013 11:58:00 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.webmaster-source.com/?p=5075</guid>
		<description><![CDATA[There has been news lately of a distributed attack against WordPress sites. A growing botnet has been running dictionary attacks against sites powered by WordPress, in effort to gain access to the the admin panel and infect the server. As is usually the case with botnets, infected servers are assimilated into the pool of compromised [...]]]></description>
				<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-5065" alt="WordPress" src="http://media.webmaster-source.com/wp-content/uploads/2013/04/wordpress-logo-type.png" width="249" height="57" />There has been news lately of <a href="http://arstechnica.com/security/2013/04/huge-attack-on-wordpress-sites-could-spawn-never-before-seen-super-botnet/">a distributed attack against WordPress sites</a>. A growing <a href="http://en.wikipedia.org/wiki/Botnet">botnet</a> has been running <a href="http://en.wikipedia.org/wiki/Dictionary_attack">dictionary attacks</a> against sites powered by WordPress, in effort to gain access to the the admin panel and infect the server. As is usually the case with botnets, infected servers are assimilated into the pool of compromised systems that make up the botnet and put to use for nefarious purposes such as DDoS attacks.</p>
<p>It&#8217;s important to note that this is <em>not</em> a WordPress security flaw, but rather an attempt to systematically guess passwords.</p>
<p>The attacks consist of simple POST requests to <code>wp-login.php</code> with a supplied username of <code>admin</code> and one of many simple, insecure passwords. I&#8217;ve noticed plenty in my logs, including <code>rainydays</code>, <code>sophie1</code>, and <code>wordpress</code>. The requests come from a rotation of IP addresses in the botnet, making it difficult to block them outright.</p>
<p>It&#8217;s easy enough to protect yourself from the attacks, providing you follow some simple best practices.</p>
<h3>1. Get Rid of the Admin User</h3>
<p>Historically, every WordPress installation would come with an administrative user named <code>admin</code>, which was created during the setup process. In more recent versions, the setup screen prompts you to choose your own username instead of providing a default. Check the Users screen in your WordPress backend to see if a user named <code>admin</code> exists. If it does, you should replace it with a profile that has a unique name, ensuring that the new account has administrative privileges.</p>
<p>Having a user account with that default name is a bad idea, because numerous attacks over the years have operated under the assumption that the operators of many WordPress sites will have been too lazy to change it. The current attack only tries passwords for a user named <code>admin</code>, as well, so ensuring that such a user does not exist will go a long way toward protecting your site.<span id="more-5075"></span></p>
<h3>2. Set a Strong Password</h3>
<p>What&#8217;s the common theme among these passwords?</p>
<ul>
<li>sophie1</li>
<li>rainydays</li>
<li>roberts</li>
<li>online</li>
<li>onions</li>
</ul>
<p>They&#8217;re all incredibly simple and insecure, and they&#8217;re all ones that were tried right here on Webmaster-Source recently. Obviously you want to avoid passwords like those if you want to avoid being compromised.</p>
<p>For a basic, reasonably strong password, your password should:</p>
<ul>
<li>Be at least eight characters long</li>
<li>Have a mixture of upper and lower case letters</li>
<li>Contain numbers and non-alphanumeric symbols</li>
</ul>
<p>An easy way to create something secure and memorable is to pick a phrase that means something to you and use the first letter of each word, mixing up the case and adding some numbers and symbols. For example, &#8220;The Wheel of Time turns and Ages come and pass&#8221; would become <code>TWoTtaAc&amp;p13</code>. Complex, yet still possible to remember.</p>
<p>Or you could go with <a href="http://xkcd.com/936/">the XKCD method</a> and pick four random, unrelated words and use them as your pass<em>phrase</em>. (e.g. &#8220;double pizza kitten book.&#8221;) As the comic explains, such a password can actually be <em>more</em> secure against a brute-force attack, and is far easier to remember than a conventional password.</p>
<h3>3. Block the Bots</h3>
<p>Install a plugin like <a href="http://wordpress.org/extend/plugins/bad-behavior/">Bad Behavior</a> (which will also help cut down on spam comments) or <a href="http://wordpress.org/extend/plugins/limit-login-attempts/">Limit Login Attempts</a>. Both plugins attempt to hinder bot activity, though through different means. Bad Behavior detects suspicious requests and blocks them, optionally using the <a href="http://www.projecthoneypot.org/">Project Honeypot</a> database to improve its effectiveness. Limit Login Attempts will block IP addresses if they continually make incorrect login attempts.</p>
<h3>4. CloudFlare</h3>
<p><a href="https://www.cloudflare.com/">CloudFlare</a> is an interesting service that speeds up your site and mitigates security threats by sitting between the user and your server. You update your domain to point to their servers, and they act similarly to a CDN, caching your site and analyzing the incoming traffic. If you&#8217;re running off a cheap shared hosting plan, it could make a significant improvement to your loading speed. I don&#8217;t use their services personally, but they&#8217;ve been instrumental in mitigating DDoS attacks and traffic spikes for some high-profile sites, and they&#8217;re <a href="http://blog.cloudflare.com/patching-the-internet-fixing-the-wordpress-br">on top of</a> the current WordPress threat.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=spuyn0v06SQ:h6pyAEjpxnw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=spuyn0v06SQ:h6pyAEjpxnw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=spuyn0v06SQ:h6pyAEjpxnw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=spuyn0v06SQ:h6pyAEjpxnw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=spuyn0v06SQ:h6pyAEjpxnw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=spuyn0v06SQ:h6pyAEjpxnw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?i=spuyn0v06SQ:h6pyAEjpxnw:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Webmaster-source?a=spuyn0v06SQ:h6pyAEjpxnw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Webmaster-source?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Webmaster-source/~4/spuyn0v06SQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webmaster-source.com/2013/04/24/wordpress-security-advisory-harden-your-admin-login/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.webmaster-source.com/2013/04/24/wordpress-security-advisory-harden-your-admin-login/</feedburner:origLink></item>
	</channel>
</rss><!-- Served from: www.webmaster-source.com @ 2013-06-19 07:14:41 by W3 Total Cache -->
