<?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>&#60;&#60; shiftedbits &#187; General</title>
	<atom:link href="http://shiftedbits.org/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://shiftedbits.org</link>
	<description>Shifty shifty shifty. Shifty.</description>
	<lastBuildDate>Sun, 29 Jan 2012 23:40:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Enable WordPress Automatic Updates on a Debian Server</title>
		<link>http://shiftedbits.org/2012/01/29/enable-wordpress-automatic-updates-on-a-debian-server/</link>
		<comments>http://shiftedbits.org/2012/01/29/enable-wordpress-automatic-updates-on-a-debian-server/#comments</comments>
		<pubDate>Sun, 29 Jan 2012 23:39:30 +0000</pubDate>
		<dc:creator>Devin Lane</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://shiftedbits.org/?p=329</guid>
		<description><![CDATA[I attempted to get WordPress to update plugins automatically on my Debian server today, and found it a bit less than trivial due to the number of configuration gotchas. Assuming you&#8217;re running a Debian server (I have 6.0 Squeeze), on which WordPress is installed in /var/www/site/public_html: 1) Install required packages. I used vsftpd. sudo apt-get install vsftpd openssl 2) Configure vsftpd. I set the following options in /etc/vsftpd.conf # Enable only local users, no anonymous anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 # &#8230; <a href="http://shiftedbits.org/2012/01/29/enable-wordpress-automatic-updates-on-a-debian-server/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I attempted to get WordPress to update plugins automatically on my Debian server today, and found it a bit less than trivial due to the number of configuration gotchas.</p>
<p>Assuming you&#8217;re running a Debian server (I have 6.0 Squeeze), on which WordPress is installed in /var/www/site/public_html:</p>
<p>1) Install required packages. I used vsftpd.</p>
<p><pre>
sudo apt-get install vsftpd openssl
</pre></p>
<p>2) Configure vsftpd. I set the following options in /etc/vsftpd.conf</p>
<p><pre>
# Enable only local users, no anonymous
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022

# Allow only our special FTP user
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.allow_list

# Here&#039;s the security trick -- listen only on the local interface to 
# prevent external connections
listen_address=127.0.0.1

# Enable debugging until everything works :)
log_ftp_protocol=YES
</pre></p>
<p>3) Add a user for ftp access</p>
<p><pre>
# Add the user
sudo useradd ftpsecure -d /var/www

# Set a password. Since vsftpd is only listening on localhost, the 
# security of this password isn&#039;t too important.
sudo passwd ftpsecure
</pre></p>
<p>4) Turn on vsftpd:</p>
<p><pre>
sudo /etc/init.d/vsftpd restart
</pre></p>
<p>5) Set permissions for ftpsecure to access your wordpress files. I use access control lists (ACLs), but you could use chown/chmod if you want. These may seem like a bit to permissive &#8212; keep in mind that the only way ftpsecure can log in is <strong>from your server.</strong></p>
<p><pre>
setfacl -m u:ftpsecure:r-x /var/www/site/

# The updater needs access to the root site
setfacl -R -m u:ftpsecure:rwx /var/www/site/public_html
setfacl -R -d -m u:ftpsecure:rwx /var/www/site/public_html
</pre></p>
<p>7) Tell WordPress about your FTP credentials. In /var/www/site/public-html/wp-config.php:</p>
<p><pre>
define(&#039;FTP_HOST&#039;, &#039;localhost&#039;);
define(&#039;FTP_USER&#039;, &#039;ftpsecure&#039;);
define(&#039;FTP_PASS&#039;, &#039;&lt;password&gt;&#039;);
</pre></p>
<p>6) Run an update. If WordPress asks for the connection type, choose FTP. Try getting WordPress to update a plugin or the entire site. If it fails, view the log with</p>
<p><pre>
tail -f /var/log/vsftpd.log
</pre></p>
<p>and run the update again. You&#8217;ll be able to tell from the log if there was a permission problem.</p>
<p>7) Disable logging. Remove the line</p>
<p><pre>
log_ftp_protocol=YES
</pre></p>
<p>in /etc/vsftpd.conf</p>
<p>8) You&#8217;re done!</p>
<p>Comment below if these steps didn&#8217;t work for you.</p>
<p>For reference, I used:</p>
<ul>
<li><a href="https://www.ramgad.com/2009/09/19/updating-wordpress-via-installed-ssl-ftp-server-on-debian-ftps/" target="_blank">Updating WordPress via installed SSL FTP Server on Debian (FTPS)</a></li>
<li><a href="https://security.appspot.com/vsftpd/vsftpd_conf.html" target="_blank">vsftpd Configuration Manual</a></li>
<li><a href="http://www.619cloud.com/blog/configure-wordpress-to-remember-ftp-details/" target="_blank">How To Configure WordPress To Remember FTP Details</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://shiftedbits.org/2012/01/29/enable-wordpress-automatic-updates-on-a-debian-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Correcting Message Order with Courier</title>
		<link>http://shiftedbits.org/2012/01/03/correcting-message-order-with-courier/</link>
		<comments>http://shiftedbits.org/2012/01/03/correcting-message-order-with-courier/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 04:10:05 +0000</pubDate>
		<dc:creator>Devin Lane</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[courier]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Mail.app]]></category>

		<guid isPermaLink="false">http://shiftedbits.org/?p=261</guid>
		<description><![CDATA[Recently I moved some local messages from my machine (previously downloaded with pop3) onto the server so I could use imap. I used Mail.app on Mac OS X 10.5.8 to do this. For some reason, the messages in this example were uploaded in a way that caused them to be loaded in the wrong order on iOS 5.0.1. Since I run the mailserver myself, I took a look at the message files to see if I could deduce the cause &#8230; <a href="http://shiftedbits.org/2012/01/03/correcting-message-order-with-courier/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recently I moved some local messages from my machine (previously downloaded with pop3) onto the server so I could use imap. I used Mail.app on Mac OS X 10.5.8 to do this. </p>
<p>For some reason, the messages in this example were uploaded in a way that caused them to be loaded in the wrong order on iOS 5.0.1. Since I run the mailserver myself, I took a look at the message files to see if I could deduce the cause of the issue. I noticed a series of messages on the mail server that looked like this:</p>
<p><pre>
1324697191.M91227P15574V000000000000CA00I0004B07D_556.hostname,S=5622:2,S
1324697192.M322096P15574V000000000000CA00I0004B07F_557.hostname,S=225691:2,RS
1324697196.M144018P15574V000000000000CA00I0004B081_558.hostname,S=7702:2,RS
1324697197.M715598P15574V000000000000CA00I0004B083_559.hostname,S=15741:2,S
1324697199.M327587P15574V000000000000CA00I0004B085_560.hostname,S=8744:2,RS
</pre></p>
<p>The received times of these messages, in the same order as listed above, are:</p>
<p><pre>
01/15/2010
01/09/2009
07/13/2010
02/21/2010
05/06/2010
</pre></p>
<p>It turns out that due to the messages in this example having a modification date that doesn&#8217;t match their receive timestamp the messages appear in the wrong order on an iOS device, where the mail application assumes the order of the messages it gets from the imap server is already sorted by date. This isn&#8217;t a problem with desktop mail clients &#8212; they simply fetch all the messages, sort them, and everything is fine. Several google searches on this subject yielded threads where people were trying to get their messages in the correct order and the suggested remedy was &#8220;sort them on the client side.&#8221;</p>
<p>To fix this, I <a href="/static/code/rename.pl">wrote a perl script</a> script to read the message headers, determine the receive time, and update the file name and modification date to match.</p>
<p>Use the script like this:</p>
<p><pre>
perl rename.pl cur/*
</pre></p>
<p>When you&#8217;re convinced it will do the right thing:</p>
<p><pre>
perl rename.pl cur/* --output-dir cur_renamed
</pre></p>
<p>After ensuring the rename was correct, I swapped the <code>cur</code> and <code>cur_renamed</code> directories, deleted the <code>courierimapuiddb</code> file, and restarted courier-imap. I also had to quit Mail.app on OS X and delete and read the mail account on the iOS device to get the messages to come in in the correct order.</p>
]]></content:encoded>
			<wfw:commentRss>http://shiftedbits.org/2012/01/03/correcting-message-order-with-courier/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Authenticator Backup Woes</title>
		<link>http://shiftedbits.org/2011/12/29/google-authenticator-backup-woes/</link>
		<comments>http://shiftedbits.org/2011/12/29/google-authenticator-backup-woes/#comments</comments>
		<pubDate>Wed, 28 Dec 2011 23:45:54 +0000</pubDate>
		<dc:creator>Devin Lane</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[google-authenticator]]></category>
		<category><![CDATA[iOS]]></category>

		<guid isPermaLink="false">http://shiftedbits.org/?p=257</guid>
		<description><![CDATA[Google Authenticator doesn't backup on iOS; before erasing your old device, make sure to re-configure Google Authenticator on your new one. <a href="http://shiftedbits.org/2011/12/29/google-authenticator-backup-woes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>TL;DR: <strong>Google Authenticator doesn&#8217;t backup on iOS; before erasing your old device, make sure to re-configure Google Authenticator on your new one.</strong></p>
<p>I use the Google Authenticator app on iOS for 2-factor authentication into Google&#8217;s services. Recently, I was transitioning to a new phone after giving my existing one to my mom for Christmas. I did the standard backup -> restore plan which put most of my settings on my new device without issues. Fortunately, before I erased the old device, I made sure all my apps worked, including the authenticator.</p>
<p>Apparently, the data the authenticator app stores is not backed up for whatever reason, which means that instead of being able to generate the keys needed to access my accounts, the authenticator was prompting me to set up a new account. The smart folks over <a href="http://cadince.com/3-ways-to-move-google-authenticator/">here</a> recommend taking a screenshot of the QR code Google&#8217;s site gives you when you set up 2-factor authentication. </p>
<p>Questions:</p>
<p>To Google: Why doesn&#8217;t the authenticator back up its data? Seems this could be a nasty surprise for someone.<br />
To Android users: Does this happen on Android as well?</p>
]]></content:encoded>
			<wfw:commentRss>http://shiftedbits.org/2011/12/29/google-authenticator-backup-woes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quicksilver Plugins</title>
		<link>http://shiftedbits.org/2007/10/28/quicksilver-plugins/</link>
		<comments>http://shiftedbits.org/2007/10/28/quicksilver-plugins/#comments</comments>
		<pubDate>Sun, 28 Oct 2007 20:38:17 +0000</pubDate>
		<dc:creator>Devin Lane</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://shiftedbits.org/2007/10/28/quicksilver-plugins/</guid>
		<description><![CDATA[As the Quicksilver site seems to be down right as everyone is reinstalling for Leopard, I&#8217;ve packaged the plugins I have into a zip available here. Quicksilver itself is available here. To install, just put the PlugIns folder in your Library/Application Support/Quicksilver folder or double click the plugins. [Update] Zon Wakest was nice enough to upload additional plugins. Thanks Zon! These are now added into my archive and the combined list is below. If you got the old archive, download &#8230; <a href="http://shiftedbits.org/2007/10/28/quicksilver-plugins/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As the Quicksilver site seems to be down right as everyone is reinstalling for Leopard, I&#8217;ve packaged the plugins I have into a zip available <a href="/static/qsplugins.zip">here</a>. Quicksilver itself is available <a href="http://blacktree.meadgroup.com/quicksilver/application/QS.3814.dmg">here</a>. To install, just put the PlugIns folder in your Library/Application Support/Quicksilver folder or double click the plugins.</p>
<p>[Update] Zon Wakest was nice enough to upload additional plugins. Thanks Zon! These are now added into my archive and the combined list is below. If you got the old archive, download <a href="/static/qsplugins2.zip">just the additional plugins</a>.</p>
<p>[Update2] Quicksilver now links to 3814 instead of 3813.</p>
<p>The plugins included are as follows:</p>
<p><span id="more-10"></span></p>
<p class="code"><code>Adium Module.qsplugin
Airport Module.qsplugin
Apple Address Book Module.qsplugin
Apple Mail Module.qsplugin
Automator Module.qsplugin
Bezel Interface.qsplugin
Calculator Module.qsplugin
Camino Module.qsplugin
Chat Support.qsplugin
Clipboard Module.qsplugin
Command Line Tool.qsplugin
Cube Interface.qsplugin
Desktop Picture Action.qsplugin
Developer Module.qsplugin
Deviant Module.qsplugin
Dictionary Module.qsplugin
Download Actions.qsplugin
Email Support.qsplugin
Extra Scripts.qsplugin
File Attribute Actions.qsplugin
File Compression Module.qsplugin
File Tagging Module.qsplugin
Finder Module.qsplugin
Firefox Module.qsplugin
Flashlight Interface.qsplugin
Flickr Upload.qsplugin
Gmail Module.qsplugin
Google Calendar Module.qsplugin
Growl Module.qsplugin
HotKey Triggers.qsplugin
Keychain Module.qsplugin
Menu Interface.qsplugin
Mini Interface.qsplugin
Music Support.qsplugin
NotificationHub.qsplugin
Primer Interface.qsplugin
Process Manipulation Actions.qsplugin
QSFumoInterface.qsplugin
SSH Plugin.qsplugin
Safari Module.qsplugin
SafariStand Queries.qsplugin
Services Menu Module.qsplugin
Shelf Module.qsplugin
Slideshow Action.qsplugin
Social Bookmarks.qsplugin
Spotlight Module.qsplugin
Tatau Module.qsplugin
Terminal Module.qsplugin
Text Manipulation Actions.qsplugin
TextMate Ranker.qsplugin
Todoist Module.qsplugin
Transmit Module.qsplugin
UI Access.qsplugin
Web Search Module.qsplugin
Window Interface.qsplugin
iCal Module.qsplugin
iChat Module.qsplugin
iPhoto Module.qsplugin
iTunes Module.qsplugin
</code></p>
<p>If you have other plugins that I don&#8217;t, upload them somewhere and post the link in the comments and I&#8217;ll add them to my collection.</p>
]]></content:encoded>
			<wfw:commentRss>http://shiftedbits.org/2007/10/28/quicksilver-plugins/feed/</wfw:commentRss>
		<slash:comments>51</slash:comments>
		</item>
		<item>
		<title>It&#8217;s all about the bits</title>
		<link>http://shiftedbits.org/2007/09/23/its-all-about-the-bits/</link>
		<comments>http://shiftedbits.org/2007/09/23/its-all-about-the-bits/#comments</comments>
		<pubDate>Sun, 23 Sep 2007 09:02:49 +0000</pubDate>
		<dc:creator>Devin Lane</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://shiftedbits.org/2007/09/23/its-all-about-the-bits/</guid>
		<description><![CDATA[So the idea here is to talk about programming, all the way down to the nitty-gritty: the bits we all know and love. In particular, I intend to focus on lower-level topics, such as what a piece of code actually does, rather than architecture and design. I&#8217;m passionate about performance, so you&#8217;ll find both rants about performance problems I come across and discussions of work I&#8217;ve done to speed things up when I can. A lot can be done with &#8230; <a href="http://shiftedbits.org/2007/09/23/its-all-about-the-bits/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So the idea here is to talk about programming, all the way down to the nitty-gritty: the bits we all know and love. In particular, I intend to focus on lower-level topics, such as what a piece of code actually does, rather than architecture and design. I&#8217;m passionate about performance, so you&#8217;ll find both rants about performance problems I come across and discussions of work I&#8217;ve done to speed things up when I can. A lot can be done with a computer, but to keep it real, it&#8217;s all about the bits :)</p>
]]></content:encoded>
			<wfw:commentRss>http://shiftedbits.org/2007/09/23/its-all-about-the-bits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.218 seconds -->

