<?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>Twenty Ways</title>
	<atom:link href="http://www.twentyways.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.twentyways.com</link>
	<description>(21 would just be ridiculous)</description>
	<lastBuildDate>Thu, 27 Oct 2011 20:07:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Permanently prevent OS X Mail from inserting attachments at the end of emails</title>
		<link>http://www.twentyways.com/2011/10/21/permanently-prevent-os-x-mail-from-inserting-attachments-at-the-end-of-emails/</link>
		<comments>http://www.twentyways.com/2011/10/21/permanently-prevent-os-x-mail-from-inserting-attachments-at-the-end-of-emails/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 20:40:48 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.twentyways.com/?p=369</guid>
		<description><![CDATA[OS X Mail defaults to including all attachments at the end of emails.  While useful for some file types (ZIP archives, programs, etc.), I still prefer that images be embedded exactly where I paste them in a message. This insert-at-the-end behaviour can be disabled by unchecking an option in the Edit/Attachments menu: Unfortunately, the option always [...]]]></description>
			<content:encoded><![CDATA[<p>OS X Mail defaults to including all attachments at the end of emails.  While useful for some file types (ZIP archives, programs, etc.), I still prefer that images be embedded exactly where I paste them in a message.</p>
<p>This insert-at-the-end behaviour can be disabled by unchecking an option in the Edit/Attachments menu:</p>
<p><img class="alignnone size-full wp-image-370" title="OS X Mail / Edit / Attachments" src="http://www.twentyways.com/wp-content/uploads/2011/10/Screen-Shot-2011-10-21-at-4.02.14pm.png" alt="" width="458" height="326" /></p>
<p>Unfortunately, the option always reverts to being checked again for subsequent emails, with no obvious way to disable this behaviour permanently.  As it turns out, the solution is simple:</p>
<blockquote><p>If you disable this option <em>while editing an email</em>, it will remain disabled <strong>for that message only</strong>. If you disable this option <em>from the main window</em>, it will remain disabled <strong>for all future messages</strong>.</p></blockquote>
<p>Tangentially, the option to &#8220;Send Windows-Friendly Attachments&#8221; can only be toggled when you are <em>not</em> editing an email.  When you have a message screen open, the option is greyed out.</p>
<p>These options seem like perfect candidates for Mail&#8217;s Preferences menu.  Why they exist solely as menu options and why they behave this way remains a mystery to me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentyways.com/2011/10/21/permanently-prevent-os-x-mail-from-inserting-attachments-at-the-end-of-emails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changing nginx&#8217;s worker process user on OS X</title>
		<link>http://www.twentyways.com/2011/10/17/changing-nginxs-worker-process-user-on-os-x/</link>
		<comments>http://www.twentyways.com/2011/10/17/changing-nginxs-worker-process-user-on-os-x/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 21:05:26 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[OS X]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.twentyways.com/?p=360</guid>
		<description><![CDATA[nginx defaults to running its master process as root and all workers as nobody. You can tell nginx to run worker processes under different credentials by setting the user directive in nginx.conf. On OS X, you need to specify a valid group as well, since nginx will default to looking for a group that doesn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://nginx.org/">nginx</a> defaults to running its master process as <strong><em>root</em></strong> and all workers as <strong><em>nobody</em></strong>.</p>
<p>You can tell nginx to run worker processes under different credentials by setting the <a href="http://wiki.nginx.org/NginxHttpMainModule#user">user directive</a> in nginx.conf.</p>
<p>On OS X, you need to specify a valid group as well, since nginx will default to looking for a group that doesn&#8217;t exist.  You will see &#8220;nginx – getgrnam()&#8221; in the error log when this happens.  The easiest solution I found is to assign the OS X staff group:</p>
<p><code>user <em>userid</em> staff</code></p>
<p>It probably bears mentioning that changing the runtime credentials won&#8217;t negate the need for <strong><em>sudo</em></strong> if you run your web server on port 80, since OS X (and all Unixes) will not allow nginx to use that port unless it runs as root.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentyways.com/2011/10/17/changing-nginxs-worker-process-user-on-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Group similar apps in OS X dock with spacer tiles</title>
		<link>http://www.twentyways.com/2011/10/14/group-similar-apps-in-os-x-dock-with-spacer-tiles/</link>
		<comments>http://www.twentyways.com/2011/10/14/group-similar-apps-in-os-x-dock-with-spacer-tiles/#comments</comments>
		<pubDate>Fri, 14 Oct 2011 22:55:44 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.twentyways.com/?p=291</guid>
		<description><![CDATA[OS X&#8217;s dock allows the addition of spacer tiles, blank objects that occupy the same space as an application icon.  Spacer tiles are quite helpful for organising applications into logical groups. Adding spacer tiles is relatively simple: Launch Terminal (from Applications/Utilities). Cut and paste the following into the command line, once for each tile you want [...]]]></description>
			<content:encoded><![CDATA[<p>OS X&#8217;s dock allows the addition of spacer tiles, blank objects that occupy the same space as an application icon.  Spacer tiles are quite helpful for organising applications into logical groups.</p>
<p><a href="http://www.twentyways.com/2011/10/14/group-similar-apps-in-os-x-dock-with-spacer-tiles/dockspacertile/" rel="attachment wp-att-304"><img class="alignnone size-full wp-image-304" title="OS X Dock Spacer Tile" src="http://www.twentyways.com/wp-content/uploads/2011/10/dockspacertile.png" alt="" width="480" height="30" /></a></p>
<p>Adding spacer tiles is relatively simple:</p>
<ol>
<li>Launch Terminal (from Applications/Utilities).</li>
<li>Cut and paste the following into the command line, once for each tile you want to add.  (Need 4 tiles?  Run it 4x.)<br />
<code>defaults write com.apple.dock persistent-apps -array-add '{tile-data={}; tile-type="spacer-tile";}'</code></li>
<li>Restart the dock:<br />
<code>killall Dock</code></li>
</ol>
<p>Spacer tiles behave like normal application icons: they can be dragged into any position, or dragged out of the dock completely to remove them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentyways.com/2011/10/14/group-similar-apps-in-os-x-dock-with-spacer-tiles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quitting Terminal app in Lion when the last console session ends</title>
		<link>http://www.twentyways.com/2011/09/29/quitting-terminal-app-in-lion-when-the-last-console-session-ends/</link>
		<comments>http://www.twentyways.com/2011/09/29/quitting-terminal-app-in-lion-when-the-last-console-session-ends/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 19:06:34 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[OS X]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.twentyways.com/?p=282</guid>
		<description><![CDATA[Lion&#8217;s Terminal app and its tabbed full-screen mode is a huge improvement for me. One thing that became a minor annoyance, however, is Terminal&#8217;s failure to quit when the last console session ends: Cmd-Q is still required to quit the app completely. The workaround I chose takes advantage of existing muscle memory.  I had already [...]]]></description>
			<content:encoded><![CDATA[<p>Lion&#8217;s Terminal app and its tabbed full-screen mode is a huge improvement for me. One thing that became a minor annoyance, however, is Terminal&#8217;s failure to quit when the last console session ends: Cmd-Q is still required to quit the app completely.</p>
<p>The workaround I chose takes advantage of existing muscle memory.  I had already configured an alias for <strong><em>exit</em></strong>, allowing me to type <strong><em>x</em></strong> to end a console session.</p>
<p>To solve the Terminal app problem, I repurposed <strong><em>x</em></strong> as a function in my <strong><em>~/.bash_profile</em></strong>:<br />
<code>function x {<br />
[ "$(w -h | grep "^$(whoami) *s[^ ]* *-"|wc -l)" -le 1 ] &amp;&amp; osascript -e 'tell application "Terminal" to quit' || exit<br />
}</code><br />
The function checks for the number of active console sessions. When <strong><em>x</em></strong> is called and only one session remains, <a href="http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/osascript.1.html">osascript</a> is invoked to quit the Terminal app completely.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentyways.com/2011/09/29/quitting-terminal-app-in-lion-when-the-last-console-session-ends/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixing wireless issues with Asus EeePC 1000HE running Ubuntu 10.10</title>
		<link>http://www.twentyways.com/2010/11/19/fixing-wireless-issues-with-asus-eeepc-1000he-running-ubuntu-10-10/</link>
		<comments>http://www.twentyways.com/2010/11/19/fixing-wireless-issues-with-asus-eeepc-1000he-running-ubuntu-10-10/#comments</comments>
		<pubDate>Fri, 19 Nov 2010 05:35:09 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.twentyways.com/?p=266</guid>
		<description><![CDATA[My Asus EeePC 1000HE netbook was recently upgraded from Ubuntu 10.4 to 10.10. The upgrade was smooth except for wireless which became extremely flaky. The wireless connection would disconnect when I unplugged my laptop or woke it up when not directly connected to power. Attempting to disable and re-enable the wireless interface did not fix [...]]]></description>
			<content:encoded><![CDATA[<p>My Asus EeePC 1000HE netbook was recently upgraded from Ubuntu 10.4 to 10.10. The upgrade was smooth except for wireless which became extremely flaky.</p>
<p>The wireless connection would disconnect when I unplugged my laptop or woke it up when not directly connected to power. Attempting to disable and re-enable the wireless interface did not fix it. Even unloading and reloading the driver modules did not fix it. The only fix was to reboot.</p>
<p>The following two things are both required to fix wireless issues with the rt2860sta driver.</p>
<p>First, Ubuntu was loading unnecessary drivers for my wireless card. I addressed this by adding the following lines to: <strong>/etc/modprobe.d/blacklist.conf</strong></p>
<p><code>blacklist rt2800pci<br />
blacklist rt2800lib<br />
blacklist rt2x00usb<br />
blacklist rt2x00pci<br />
blacklist rt2x00lib</code><br />
It seems that these additional modules were interfering with the rt2860sta driver during wake up.</p>
<p>In addition I needed to have Ubuntu to unload and reload my wireless driver before and after going to sleep. This is done putting the following line in <strong>/etc/pm/config.d/unload_wireless</strong><br />
<code>SUSPEND_MODULES="rt2860sta"</code></p>
<p>Note that the file name there is not actually important. The line just needs to be in a file in the <strong>/etc/pm/config.d/</strong> directory.</p>
<p>Rebooting once after making these changes has solved the problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentyways.com/2010/11/19/fixing-wireless-issues-with-asus-eeepc-1000he-running-ubuntu-10-10/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Legend of the Red Dragon on DOSEMU on Linux</title>
		<link>http://www.twentyways.com/2010/08/14/legend-of-the-red-dragon-on-dosemu-on-linux/</link>
		<comments>http://www.twentyways.com/2010/08/14/legend-of-the-red-dragon-on-dosemu-on-linux/#comments</comments>
		<pubDate>Sat, 14 Aug 2010 13:59:48 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[BBS]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[dosemu]]></category>
		<category><![CDATA[legend of the red dragon]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[lord]]></category>

		<guid isPermaLink="false">http://www.twentyways.com/?p=258</guid>
		<description><![CDATA[In setting up a yet to be announced BBS system I discovered that Legend of the Red Dragon does not work on Ubuntu 10.04 Server installation under DOSEMU. When I ran the config program LordCfg it would fail with the following error: This version of LordCfg is not meant for your version of Lord When [...]]]></description>
			<content:encoded><![CDATA[<p>In setting up a yet to be announced BBS system I discovered that <a href="http://en.wikipedia.org/wiki/Legend_of_the_Red_Dragon">Legend of the Red Dragon</a> does not work on Ubuntu 10.04 Server installation under <a href="http://www.dosemu.org/">DOSEMU</a>. When I ran the config program LordCfg it would fail with the following error:<br />
<code>This version of LordCfg is not meant for your version of Lord</code></p>
<p>When running the start.bat script or lord.exe it would fail with this error:<br />
<code># Firing Up LORD.OVR<br />
# Using EMS for faster overlay swapping.<br />
Internal error #38019<br />
Cannot continue.</code></p>
<p>I did few preliminary searches for these errors on <a href="http://www.google.com">Google</a> and finding only complaints about them. I contacted <a href="http://www.gameport.com">Gameport</a> which currently distributes the game and they pointed me to an obscure link on the <a href="http://lord.lordlegacy.com/">authors website</a> which has a <a href="http://lord.lordlegacy.com/dosemu/">patch</a> for this bug.</p>
<p>The url to the patch for this issue is: <a href="http://lord.lordlegacy.com/dosemu/">http://lord.lordlegacy.com/dosemu/</a></p>
<p>There is also single forum posting on the authors site about this issue as well but it lacks useful keywords to make it findable. That forum posting is here: <a href="http://lord.lordlegacy.com/phorum/read.php?5,196">http://lord.lordlegacy.com/phorum/read.php?5,196</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentyways.com/2010/08/14/legend-of-the-red-dragon-on-dosemu-on-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hold Calls on iPhone 4/4S</title>
		<link>http://www.twentyways.com/2010/06/29/hold-calls-on-iphone-4/</link>
		<comments>http://www.twentyways.com/2010/06/29/hold-calls-on-iphone-4/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 08:09:33 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[iOS]]></category>

		<guid isPermaLink="false">http://www.twentyways.com/?p=247</guid>
		<description><![CDATA[The Hold button was replaced with FaceTime on iPhone 4&#8242;s call menu. You can still place calls on hold: just tap and hold Mute for 2 seconds.]]></description>
			<content:encoded><![CDATA[<p>The Hold button was replaced with FaceTime on iPhone 4&#8242;s call menu.<br />
You can still place calls on hold: just tap and hold Mute for 2 seconds.</p>
<p><a href="http://www.twentyways.com/wp-content/uploads/2010/06/iphone.png"><img class="size-medium wp-image-248 alignnone" title="iPhone 4 call menu" src="http://www.twentyways.com/wp-content/uploads/2010/06/iphone-300x225.png" alt="" width="300" height="225" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentyways.com/2010/06/29/hold-calls-on-iphone-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>List all Facebook friends who use iPhones</title>
		<link>http://www.twentyways.com/2009/09/06/list-all-facebook-friends-who-use-iphones/</link>
		<comments>http://www.twentyways.com/2009/09/06/list-all-facebook-friends-who-use-iphones/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 07:19:15 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Social Engineering]]></category>

		<guid isPermaLink="false">http://www.twentyways.com/?p=231</guid>
		<description><![CDATA[Facebook&#8217;s iPhone app seems to integrate with the Facebook Platform using the same rules that other applications must follow. After you sign in to the iPhone app for the first time, a corresponding Facebook app, Facebook for iPhone, is automatically granted access to your profile. There is nothing unusual about this; Facebook is merely playing [...]]]></description>
			<content:encoded><![CDATA[<p>Facebook&#8217;s <a href="http://www.facebook.com/mobile/#/apps/application.php?id=6628568379">iPhone app</a> seems to integrate with the <a href="http://developer.facebook.com/">Facebook Platform</a> using the same rules that other applications must follow.  After you sign in to the iPhone app for the first time, a corresponding Facebook app, <em>Facebook for iPhone</em>, is automatically granted <a href="http://www.facebook.com/editapps.php#/editapps.php?v=extended">access to your profile</a>.</p>
<p>There is nothing unusual about this; Facebook is merely playing by their own rules.  But there is an interesting side effect.</p>
<p>Facebook is a social platform, so all application pages allow you to list other friends using that app.  <em>Facebook for iPhone</em>, the Facebook counterpart for the iPhone app, is no different.</p>
<p>These are all your Facebook friends who use (or once used)…</p>
<ul>
<li> <a href="http://www.facebook.com/social_graph.php?node_id=6628568379&amp;class=AppUserManager&amp;edge_type=mutual">iPhone</a></li>
<li><a href="http://www.facebook.com/social_graph.php?node_id=2254487659&amp;class=AppUserManager&amp;edge_type=mutual">BlackBerry</a></li>
<li><a href="http://www.facebook.com/social_graph.php?node_id=7081486362&amp;class=AppUserManager&amp;edge_type=mutual">Palm</a></li>
<li><a href="http://www.facebook.com/social_graph.php?node_id=38125372145&amp;class=AppUserManager&amp;edge_type=mutual">SonyEricsson</a></li>
<li><a href="http://www.facebook.com/social_graph.php?node_id=26463759431&amp;class=AppUserManager&amp;edge_type=mutual">INQ</a></li>
</ul>
<p>It is worth noting that the <em>Facebook for iPhone</em> app remains in your profile until you explicitly remove it, so results may be misleading.  (After all, how would Facebook know that your iPhone fell into the toilet, when you may simply not have run their app for a long time?)</p>
<p>If any of this bothers you, breathe deeply… then get off the internet.</p>
<p>And my lawn.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentyways.com/2009/09/06/list-all-facebook-friends-who-use-iphones/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Access OS X clipboard from CLI</title>
		<link>http://www.twentyways.com/2009/08/17/access-os-x-clipboard-from-cli/</link>
		<comments>http://www.twentyways.com/2009/08/17/access-os-x-clipboard-from-cli/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 20:59:16 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.twentyways.com/?p=225</guid>
		<description><![CDATA[Accessing the OS X clipboard (or &#8220;pasteboard&#8221;) from the CLI is made simple with the pbcopy and pbpaste commands: cat ~/ confidential_information.txt &#124; pbcopy pbpaste &#62; confidential_information.txt The pbcopy/pbpaste manpages have more detailed information about their use. An interesting footnote to OS X&#8217;s clipboard system is that there are actually four pasteboards, each assigned to [...]]]></description>
			<content:encoded><![CDATA[<p>Accessing the OS X clipboard (or &#8220;<strong>p</strong>aste<strong>b</strong>oard&#8221;) from the CLI is made simple with the <em><strong>pbcopy</strong></em> and <em><strong>pbpaste</strong></em> commands:</p>
<p><code>cat ~/ confidential_information.txt | pbcopy<br />
pbpaste &gt; confidential_information.txt</code></p>
<p>The <a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/pbcopy.1.html">pbcopy/pbpaste manpages</a> have more detailed information about their use.</p>
<p>An interesting footnote to OS X&#8217;s clipboard system is that there are actually four pasteboards, each assigned to its own, unique purpose.  The <em>Find</em> clipboard is particularly useful because it enables search queries to be saved automatically between applications.  To test this, enter a string in (for example) Firefox&#8217;s search box.  Don&#8217;t copy it to the clipboard.  Now open your text editor and start a new search.  The same string should already be in the dialog box…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentyways.com/2009/08/17/access-os-x-clipboard-from-cli/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Permanently disable Google Software Update on OS X</title>
		<link>http://www.twentyways.com/2009/02/07/permanently-disable-google-software-update-on-os-x/</link>
		<comments>http://www.twentyways.com/2009/02/07/permanently-disable-google-software-update-on-os-x/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 05:04:57 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.twentyways.com/?p=207</guid>
		<description><![CDATA[UPDATE Parsa Fatehi kindly points out below that Google now has a simpler solution: http://www.google.com/support/installer/bin/answer.py?answer=100386 As many have noted, recent Google software releases for OS X now include Google Software Update, a background daemon that checks for and installs updates to Google software with no user intervention and no option for disabling it. In theory, [...]]]></description>
			<content:encoded><![CDATA[<p><strong><em>UPDATE</em></strong></p>
<p>Parsa Fatehi kindly points out below that Google now has a simpler solution:<br />
<a href="http://www.google.com/support/installer/bin/answer.py?answer=100386">http://www.google.com/support/installer/bin/answer.py?answer=100386</a></p>
<hr />
<p>As many <a href="http://tech.slashdot.org/article.pl?sid=09/02/06/1510228">have noted</a>, recent Google software releases for OS X now include <em>Google Software Update</em>, a background daemon that checks for and installs updates to Google software with no user intervention and no option for disabling it.</p>
<p>In theory, GSU is removed automatically when the last Google software to utilise it is uninstalled from your computer… but this assumes that you use the uninstallers bundled by Google, and don&#8217;t attempt to remove the software by hand.</p>
<p>I&#8217;ll save my disappointment for another editorial.<br />
Instead, here is a workaround:<br />
<code>sudo rm /Library/LaunchAgents/com.google.keystone.agent.plist<br />
sudo rm /Library/LaunchDaemons/com.google.keystone.daemon.plist<br />
sudo rm /Library/LaunchDaemons/com.google.keystone.daemon4.plist<br />
</code></p>
<p><code>sudo touch /Library/LaunchAgents/com.google.keystone.agent.plist<br />
sudo touch /Library/LaunchDaemons/com.google.keystone.daemon.plist<br />
sudo touch /Library/LaunchDaemons/com.google.keystone.daemon4.plist<br />
</code></p>
<p><code>sudo chmod 000 /Library/LaunchAgents/com.google.keystone.agent.plist<br />
sudo chmod 000 /Library/LaunchDaemons/com.google.keystone.daemon.plist<br />
sudo chmod 000 /Library/LaunchDaemons/com.google.keystone.daemon4.plist<br />
</code></p>
<p>This hint does not uninstall GSU – it only &#8220;disables&#8221; the launchd entries that would run <em>GoogleSoftwareUpdateAgent.app</em> at boot time.</p>
<p>We first remove each entry (<strong><em>sudo rm …</em></strong>) and create empty files (<strong><em>sudo touch …</em></strong>) in their place.  We then change their POSIX permissions (<strong><em>sudo chmod</em></strong>) to deny any access to these files (<strong><em>000</em></strong>) for all accounts except root.</p>
<p>Creating inaccessible dummy files is important.  Without them, the launchd entries can simply be replaced whenever Google software is run.  But with these steps taken, no Google app can reinstall the GSU launchd entries, unless they:</p>
<ul>
<li>ask for your username and password (to authenticate as root),</li>
<li>use different filenames, or</li>
<li>create local launchd entries (<em><strong>~</strong></em>/Library/Launch[…])</li>
</ul>
<p>This hint is easily adapted for each of these cases. You can also use this technique to remove GSU completely.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.twentyways.com/2009/02/07/permanently-disable-google-software-update-on-os-x/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>

