<?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>brunerd</title>
	<atom:link href="http://www.brunerd.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brunerd.com/blog</link>
	<description>curly haired mac nerd</description>
	<lastBuildDate>Tue, 27 Dec 2011 04:35:28 +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>iPhone 4S and AT&amp;T: The Devil You Know</title>
		<link>http://www.brunerd.com/blog/2011/10/07/iphone-4s-and-att-the-devil-you-know/</link>
		<comments>http://www.brunerd.com/blog/2011/10/07/iphone-4s-and-att-the-devil-you-know/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 08:21:58 +0000</pubDate>
		<dc:creator>brunerd</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Industry]]></category>

		<guid isPermaLink="false">http://www.brunerd.com/blog/?p=433</guid>
		<description><![CDATA[A short tale of insult and injury: First, I lost my iPhone 3GS 2 weeks ago, so I am staying up late to preorder from AT&#38;T at 2:01am CST. Why didn&#8217;t I have a clue this deadline would not be &#8230; <a href="http://www.brunerd.com/blog/2011/10/07/iphone-4s-and-att-the-devil-you-know/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A short tale of insult and injury:<br />
First, I lost my iPhone 3GS 2 weeks ago, so I am staying up late to preorder from AT&amp;T at 2:01am CST. Why didn&#8217;t I have a clue this deadline would not be met&#8230;</p>
<p>So the first time I try it tells me the Safari 5 on the Mac I&#8217;m using is not a supported device. (2:08am)</p>
<p style="text-align: center;"><a href="http://www.brunerd.com/blog/wp-content/uploads/iPhone4s_BadDevice.png"><img class="aligncenter size-full wp-image-434" title="iPhone4s_BadDevice" src="http://www.brunerd.com/blog/wp-content/uploads/iPhone4s_BadDevice.png" alt="" width="598" height="169" /></a></p>
<p>OK let&#8217;s try that link you just gavve me: What?! No Service in my area?! (2:10am)</p>
<p style="text-align: center;"><a href="http://www.brunerd.com/blog/wp-content/uploads/iPhone4s_noservice.png"><img class="aligncenter size-full wp-image-435" title="iPhone4s_noservice" src="http://www.brunerd.com/blog/wp-content/uploads/iPhone4s_noservice.png" alt="" width="710" height="430" /></a></p>
<p style="text-align: left;">OK, kill some time&#8230; doo dee doo&#8230;. OK it&#8217;s 2:32 let&#8217;s give it a go!</p>
<p style="text-align: left;"><a href="http://www.brunerd.com/blog/wp-content/uploads/iPhone4s_lockedout.png"><img class="aligncenter size-full wp-image-436" title="iPhone4s_lockedout" src="http://www.brunerd.com/blog/wp-content/uploads/iPhone4s_lockedout.png" alt="" width="932" height="157" /></a>Locked Out from &#8216;login attempts&#8217;? You are kidding me, it&#8217;s your damn system that was failing on my valid logins! Trying the Apple Store a few minutes later, confirmed my lockout, with them being unable to access my account. So I call the number they give and now I&#8217;ve been holding on the phone for 30 minutes due to &#8220;high call volume&#8221; &#8211; it might also be that no one is working now! (but you don&#8217;t want your voicemail system to give that impression do you?). Click.</p>
<p style="text-align: left;">So it&#8217;s the devil I know for my iPhone 4S and AT&amp;T&#8230;<br />
Hey &#8211; it&#8217;s almost been an hour now!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunerd.com/blog/2011/10/07/iphone-4s-and-att-the-devil-you-know/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lion&#8217;s grey sidebar is a Jedi mind trick</title>
		<link>http://www.brunerd.com/blog/2011/09/27/lions-grey-sidebar-is-a-jedi-mind-trick/</link>
		<comments>http://www.brunerd.com/blog/2011/09/27/lions-grey-sidebar-is-a-jedi-mind-trick/#comments</comments>
		<pubDate>Tue, 27 Sep 2011 21:10:17 +0000</pubDate>
		<dc:creator>brunerd</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Bugs]]></category>
		<category><![CDATA[Industry]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.brunerd.com/blog/?p=415</guid>
		<description><![CDATA[And a poor attempt at a Jedi mind trick at that. With the now grey and lifeless sidbar in Lion Apple is trying to visually say: &#8220;these aren&#8217;t the files or folders you&#8217;re looking for&#8221;. It&#8217;s as if they want &#8230; <a href="http://www.brunerd.com/blog/2011/09/27/lions-grey-sidebar-is-a-jedi-mind-trick/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_423" class="wp-caption aligncenter" style="width: 435px"><a href="http://www.brunerd.com/blog/wp-content/uploads/LionFinderJediMindTrick.png"><img class="size-full wp-image-423 " title="LionFinderJediMindTrick" src="http://www.brunerd.com/blog/wp-content/uploads/LionFinderJediMindTrick.png" alt="" width="425" height="275" /></a><p class="wp-caption-text">These aren&#39;t the files you&#39;re looking for...</p></div>
<p>And a poor attempt at a Jedi mind trick at that. With the now grey and lifeless sidbar in Lion Apple is trying to visually say: &#8220;these aren&#8217;t the files or folders you&#8217;re looking for&#8221;. It&#8217;s as if they want us to become so turned-off to this grey apocalyptic version of the sidebar that we yearn for iCloud where our data lives in the apps and those pesky file and folder structures cease to have any relevance in our workflow.</p>
<p>Reality check Apple, you won&#8217;t change our habits overnight, nor overturn what is a completely valid way of working with your computers.  You will not endear us to the iCloud experience by also crippling the Finder&#8217;s look and feel. Although I do thank you for returning the ability to have large icons in the sidebar, which you took away in 10.5, the grey-ification of the icons and the exile of Devices to the bottom of the list has truly hobbled any usefulness the Finder had. Oh, add the fact that mounted volumes no longer show as a Device, but rather you have to add them manually to favorites has also irked me. Why should I have to open up Shared, click the server then find the volume I want. It&#8217;s ridiculous when you couple that with having the default Finder behavior to not show mounted volumes on the desktop. Fine you hate files, folders and drives, we get it, but not all of us agree&#8230; &#8220;the rest of us&#8221;, as it were.</p>
<p>Here&#8217;s a compromise I could live with Apple:</p>
<div id="attachment_416" class="wp-caption aligncenter" style="width: 317px"><a href="http://www.brunerd.com/blog/wp-content/uploads/LionSidebarOptions.png"><img class="size-full wp-image-416" title="LionSidebarOptions" src="http://www.brunerd.com/blog/wp-content/uploads/LionSidebarOptions.png" alt="" width="307" height="106" /></a><p class="wp-caption-text">At least give us a choice Apple!</p></div>
<p>Thankfully, a very bright Mac developer has made a <a href="http://cooviewerzoom.web.fc2.com/colorfulsidebar.html" target="_blank">plugin</a> to return color to the Finder sidebar. Now I normally do not like using SIMBL plugins because code injection and method swizzling makes me nervous. But having color on the sidebar is worth it. You can find all the info for doing this at <a href="http://osxdaily.com/2011/08/25/get-color-sidebar-icons-back-in-mac-os-x-10-7-lion-finder-windows/" target="_blank">OS X Daily</a> along with installation tips.</p>
<div id="attachment_425" class="wp-caption aligncenter" style="width: 421px"><a href="http://cooviewerzoom.web.fc2.com/colorfulsidebar.html"><img class="size-full wp-image-425 " title="ColorfulSidebar" src="http://www.brunerd.com/blog/wp-content/uploads/ColorfulSidebar.png" alt="" width="411" height="240" /></a><p class="wp-caption-text">Colorful Sidebar by CVZ</p></div>
<p>So, file those <a href="http://bugreporter.apple.com" target="_blank">Bug Reports</a> with Apple and let them know their Jedi mind trick isn&#8217;t going to work. These are the files and folders we&#8217;re looking for and color would greatly help us find them. (I&#8217;d consider this a regression fix rather than a feature request.)</p>
<p>Postscript on (not) using Finder:<br />
A quick note for the purists out there who don&#8217;t even run Finder. You intrepid folks take a road less travelled but not one that not everyone wants to embark down. Now, Rick of Rixstep will argue that Finder is an and abhorrent holdover from OS 9 that should have gotten the axe or at the least been completely recoded into 100% Cocoa, all of its Carbon cruft put out to pasture, its very existence is retarding OS X, and to run Finder on your system is akin to self-trepanation. OK &#8212; fair enough actually on most points! <img src='http://www.brunerd.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  However, until someone else comes along with a Finder replacement that is 100% Cocoa <strong>and</strong> has <strong>full feature parity</strong>, then we put up with the Finder. (And most businesses would be <em>loathe</em> to spend money on licenses for Finder replacements like XFile or PathFinder, it&#8217;s hard enough to get them to spend the extra dough up-front for a Mac!) Wah wah :/ So we commiserate with others on the <a href="https://discussions.apple.com/thread/3190705?start=75&amp;tstart=0" target="_blank">discussion boards</a> and plead our case to the <a href="http://rixstep.com/2/2/20071212,00.shtml" target="_blank">Designers Gone Wild</a> at Apple.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunerd.com/blog/2011/09/27/lions-grey-sidebar-is-a-jedi-mind-trick/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Make Safari find substring matches by default</title>
		<link>http://www.brunerd.com/blog/2011/08/10/make-safari-find-substring-matches-by-default/</link>
		<comments>http://www.brunerd.com/blog/2011/08/10/make-safari-find-substring-matches-by-default/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 18:22:59 +0000</pubDate>
		<dc:creator>brunerd</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://www.brunerd.com/blog/?p=402</guid>
		<description><![CDATA[So, I thought I&#8217;d tip ol&#8217; Pierre at betalogue to an apparent bug that Safari doesn&#8217;t find substrings, only words that begin with the search string! But then his astute readers pointed out that Safari 5.1 has changed the behaviour &#8230; <a href="http://www.brunerd.com/blog/2011/08/10/make-safari-find-substring-matches-by-default/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So, I thought I&#8217;d <a href="http://www.betalogue.com/2011/08/09/safari51-substrings/" target="_blank">tip</a> ol&#8217; Pierre at betalogue to an apparent bug that Safari doesn&#8217;t find substrings, only words that begin with the search string! But then his astute readers pointed out that Safari 5.1 has changed the behaviour of the Find window, if you just look close enough *blush*</p>
<p><a href="http://www.brunerd.com/blog/wp-content/uploads/Safari-5.1-Search.png" target="_blank"><img class="aligncenter" title="Safari 5.1 Search" src="http://www.brunerd.com/blog/wp-content/uploads/Safari-5.1-Search.png" alt="" width="322" height="65" /></a></p>
<p>Now by default in Safari 5.1, when you hit Command-F and type in a word, Safari will match words that &#8220;Start with&#8221; your search item, clicking the magnifying glass, presents you with the option to search for words that &#8220;Contain&#8221; your search phrase (this was the default search behaviour in Safari pre-5.1), and in fact clicking the magnifying glass used to step through matches. Who knew!? I&#8217;m a (Shift)/Command-G man myself.</p>
<p>Now how could we change this behaviour back for a few hundred users who are used to the way Safari has been functioning before Apple so <em>elegantly</em> altered it? Here we go!</p>
<p>Preference domain: com.apple.Safari<br />
Key Name: <code>FindOnPageMatchesWordStartsOnly</code><br />
Values: Boolean, TRUE equals &#8220;Start With&#8221; and FALSE equals &#8220;Contains&#8221;.</p>
<p>It is a per-user preference, if the key is not present Safari defaults to &#8220;Start With&#8221; in a search. Writing the pref to the higher level /Library/Preferences/com.apple.Safari.plist will affect all users who don&#8217;t already have the key set, otherwise Safari will defer to the user&#8217;s prefs (and it can then be assumed the user is aware of the change since they clicked on the magnifying glass and altered the setting).</p>
<p>Here&#8217;s the defaults commands for Terminal to set Safari&#8217;s Find back to &#8220;Contains&#8221;:<br />
<strong>All Users (who don&#8217;t have it set in their prefs)</strong><br />
<code>defaults write /Library/Preferences/com.apple.Safari FindOnPageMatchesWordStartsOnly -bool FALSE</code><br />
<strong>Current User</strong><br />
<code>defaults write com.apple.Safari FindOnPageMatchesWordStartsOnly -bool FALSE</code></p>
<p>There you go that&#8217;ll get things back the way they were, make sure it&#8217;s all on one line, the theme seems to like to wrap code, but a copy/paste does not include the newline.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunerd.com/blog/2011/08/10/make-safari-find-substring-matches-by-default/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Restore previous Safari version from .SafariArchive.tar.gz</title>
		<link>http://www.brunerd.com/blog/2011/07/21/restore-previous-safari-version-from-safariarchive-tar-gz/</link>
		<comments>http://www.brunerd.com/blog/2011/07/21/restore-previous-safari-version-from-safariarchive-tar-gz/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 20:39:57 +0000</pubDate>
		<dc:creator>brunerd</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.brunerd.com/blog/?p=394</guid>
		<description><![CDATA[Did that new Safari update break something? Want your old version back? Simple. Thanks to Apple&#8217;s prescient yet secretive engineers, there&#8217;s a way. Let me show you. When Safari does an upgrade it saves the previous version in this location: &#8230; <a href="http://www.brunerd.com/blog/2011/07/21/restore-previous-safari-version-from-safariarchive-tar-gz/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Did that new Safari update break something? Want your old version back?<br />
Simple. Thanks to Apple&#8217;s prescient yet secretive engineers, there&#8217;s a way.<br />
Let me show you.</p>
<p>When Safari does an upgrade it saves the previous version in this location:<br />
<code>/Library/Application\ Support/Apple/.SafariArchive.tar.gz</code></p>
<p>To restore we just need to tell tar to expand the archive to the root folder:<br />
<code>sudo tar -xvf /Library/Application\ Support/Apple/.SafariArchive.tar.gz -C /</code></p>
<p>To be complete, delete the receipt from /var/db/receipts, in this case it is Safari 5.1<br />
<code>sudo rm -rf /private/var/db/receipts/com.apple.pkg.Safari51SnowLeopard.*</code></p>
<p>Reboot. (since we&#8217;ve just replaced a whole bunch of public and private frameworks the OS uses)</p>
<p>Done.<br />
(Whew. This will fix the early Safari 5.1 adopters at work who now can&#8217;t use our Java based timesheet app since upgrading!)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunerd.com/blog/2011/07/21/restore-previous-safari-version-from-safariarchive-tar-gz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe CS 5.5 InDesign 7.5.1 Update: we fixed our bug and broke every plugin you use</title>
		<link>http://www.brunerd.com/blog/2011/06/23/adobe-cs-5-5-indesign-7-5-1-update-we-fixed-our-bug-and-broke-every-plugin-you-use/</link>
		<comments>http://www.brunerd.com/blog/2011/06/23/adobe-cs-5-5-indesign-7-5-1-update-we-fixed-our-bug-and-broke-every-plugin-you-use/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 19:22:11 +0000</pubDate>
		<dc:creator>brunerd</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Bugs]]></category>
		<category><![CDATA[Industry]]></category>

		<guid isPermaLink="false">http://www.brunerd.com/blog/?p=391</guid>
		<description><![CDATA[Seriously Adobe? You release CS 5.5 May 2011 and InDesign CS5 plugins seem to load just fine, but then just last week, you release an update to InDesign, and under Resolved Issues you list: &#8220;CS5 plug-ins can be loaded in &#8230; <a href="http://www.brunerd.com/blog/2011/06/23/adobe-cs-5-5-indesign-7-5-1-update-we-fixed-our-bug-and-broke-every-plugin-you-use/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Seriously Adobe? You release CS 5.5 May 2011 and InDesign CS5 plugins seem to load just fine, but then just last week, you release an <a href="http://kb2.adobe.com/cps/906/cpsid_90664.html">update</a> to InDesign, and under Resolved Issues you list: &#8220;CS5 plug-ins can be loaded in CS5.5, leading to code conflicts and instability  [2867833]&#8220;, translated: &#8220;Every plugin you thought worked in CS 5.5, doesn&#8217;t really, so we aren&#8217;t allowing them to load anymore.&#8221;</p>
<p>Boo.<br />
You suck.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunerd.com/blog/2011/06/23/adobe-cs-5-5-indesign-7-5-1-update-we-fixed-our-bug-and-broke-every-plugin-you-use/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>myXProtectStatus</title>
		<link>http://www.brunerd.com/blog/2011/06/16/myxprotectstatus/</link>
		<comments>http://www.brunerd.com/blog/2011/06/16/myxprotectstatus/#comments</comments>
		<pubDate>Thu, 16 Jun 2011 17:43:26 +0000</pubDate>
		<dc:creator>brunerd</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.brunerd.com/blog/?p=385</guid>
		<description><![CDATA[myXProtectStatus &#8211; A drop down status menulet for XProtect, showing date, version, and threats protected against. Written in bash, and wrapped with Platypus, it is informational only, so don&#8217;t ask me to add some menu item to do something, it just reports. &#8230; <a href="http://www.brunerd.com/blog/2011/06/16/myxprotectstatus/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://brunerd.com/software/myXProtectStatus.zip">myXProtectStatus</a> &#8211; A drop down status menulet for XProtect, showing date, version, and threats protected against. Written in bash, and wrapped with Platypus, it is informational only, so don&#8217;t ask me to add some menu item to <em>do</em> something, it just reports. However I did add the Command Line and GUI ways to update XProtect in the output, so it&#8217;s of some use for that. When run, it&#8217;ll reside in your menu bar and call a script inside itself each time it runs. Tuck it away somewhere, add it to your loginitems. Check it every once and a while&#8230;</p>
<p>Screenshot of myXProtectStatus:</p>
<h3><img title="myXProtect" src="http://www.brunerd.com/blog/wp-content/uploads/myXProtect.png" alt="" width="349" height="471" /></h3>
<p>Other notes: I pipe the output of the threat list though /usr/bin/uniq, because while Hell.RTS has three different signatures it retains the same name in each and it seemed redundant to list all of them out! So all recurring names will be reduced to one entry.</p>
<p>The menu bar icon: it&#8217;s an X with a grey picket fence around it, I made it tiny&#8230; then realized I need an icon for the App too rather than Platypus&#8217; so I sized it up, it&#8217;s fugly, but you&#8217;ll never see it! <img src='http://www.brunerd.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Bonus: When run as root, it will show the auto-update on/off status, which can only be determined on the command line by root.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunerd.com/blog/2011/06/16/myxprotectstatus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WWDC 2011</title>
		<link>http://www.brunerd.com/blog/2011/06/05/wwdc-2011/</link>
		<comments>http://www.brunerd.com/blog/2011/06/05/wwdc-2011/#comments</comments>
		<pubDate>Sun, 05 Jun 2011 12:07:51 +0000</pubDate>
		<dc:creator>brunerd</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Industry]]></category>

		<guid isPermaLink="false">http://www.brunerd.com/blog/?p=362</guid>
		<description><![CDATA[Going to WWDC 2011! See you all there! (although, I got a haircut so it&#8217;s all short now and not the curls you see on the site ) and whatever is not NDA I&#8217;ll tweet via brunerd]]></description>
			<content:encoded><![CDATA[<p>Going to WWDC 2011! See you all there! (although, I got a haircut so it&#8217;s all short now and not the curls you see on the site <img src='http://www.brunerd.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) and whatever is not NDA I&#8217;ll tweet via brunerd</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunerd.com/blog/2011/06/05/wwdc-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Advanced Safe Downloads List Tips and Tricks</title>
		<link>http://www.brunerd.com/blog/2011/06/03/advanced-safe-downloads-list-tips-and-tricks/</link>
		<comments>http://www.brunerd.com/blog/2011/06/03/advanced-safe-downloads-list-tips-and-tricks/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 19:43:13 +0000</pubDate>
		<dc:creator>brunerd</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.brunerd.com/blog/?p=349</guid>
		<description><![CDATA[So I submitted a hint for getting info about the Safe Downloads protection list, then I made a widget, now delving deeper into Safe Downloads list and the command line Let&#8217;s look at the BOM for the update: /Library/Preferences/com.apple.ReportMessages.domains /Library/Preferences/com.apple.ReportMessages.v2.domains /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.plist /System/Library/CoreServices/MRTAgent.app /System/Library/LaunchAgents/com.apple.mrt.uiagent.plist &#8230; <a href="http://www.brunerd.com/blog/2011/06/03/advanced-safe-downloads-list-tips-and-tricks/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So I submitted a <a href="http://hints.macworld.com/article.php?story=20110602091032338" target="_blank">hint</a> for getting info about the Safe Downloads protection list, then I made a <a title="Safe Downloads List Info Widget" href="http://www.brunerd.com/blog/2011/06/03/safe-downloads-widget/">widget</a>, now delving deeper into Safe Downloads list and the command line</p>
<p>Let&#8217;s look at the BOM for the update:</p>
<p><code>/Library/Preferences/com.apple.ReportMessages.domains<br />
/Library/Preferences/com.apple.ReportMessages.v2.domains<br />
/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.plist<br />
/System/Library/CoreServices/MRTAgent.app<br />
/System/Library/LaunchAgents/com.apple.mrt.uiagent.plist<br />
/System/Library/LaunchDaemons/com.apple.mrt.plist<br />
/System/Library/LaunchDaemons/com.apple.xprotectupdater.plist<br />
/System/Library/PreferencePanes/Security.prefPane<br />
/usr/libexec/MRT<br />
/usr/libexec/XProtectUpdater</code></p>
<p>What&#8217;s interesting is after installation /usr/libexec/MRT, com.apple.mrt.plist, and com.apple.mrt.uiagent.plist delete themselves after they run?! This is odd, yes? From what it looks like MRT has a lot of pattern matching  code in it&#8230; Also notable is that in the postflight action <a href="http://www.brunerd.com/blog/wp-content/uploads/loadMRT.txt" target="_blank">loadMRT</a>, the launchagent and daemon are unloaded and reloaded in the postflight actions, however the <a href="http://www.brunerd.com/blog/wp-content/uploads/loadXProtectUpdater.txt" target="_blank">loadXProtectUpdater</a> script does not do this. So the XProtectUpdater does not run again if you rerun the installer since launchctl will report it&#8217;s already loaded, so you&#8217;ll have to wait a day for it to check again and update as seen in <a href="http://www.brunerd.com/blog/wp-content/uploads/com.apple_.xprotectupdater.plist_.txt" target="_blank">com.apple.xprotectupdater.plist</a> (86400 seconds = 1 day).</p>
<p>If you want to manually force an update, you can run this command:<br />
<code><strong>sudo /usr/libexec/XprotectUpdater</strong><br />
</code>You must run as root or else it informs you:<br />
<span style="font-size: 13px; font-family: Monaco, Consolas, 'Andale Mono', 'DejaVu Sans Mono', monospace; line-height: 19px;">XprotectUpdater[<em>pids</em>] Unable to write new signature meta plist</span></p>
<p>You can also just toggle the preference in the Security prefpane, this causes the launchd job to be unloaded an reloaded, however from an admin POV it&#8217;s nice to have a non-GUI way to do this. Also there seems to be a <a href="http://blog.intego.com/2011/06/01/bug-in-apples-malware-detection-settings-may-lead-to-mistaken-preferences/">bug</a> in the prefpane so values are not written after it is open for more than 30 seconds! Come on 10.6.8! (It feels like this was Lion stuff that&#8217;s getting shoe-horned into Snow Leopard a bit earlier than they expected )</p>
<p>Another interesting tidbit is the actual malware list that is squirreled away here:<br />
/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.plist</p>
<p>If you attempt to use the defaults command to read it you are given this:<br />
<code>defaults[<em>pids</em>] Preference plist was NOT a dictionary.<br />
defaults[<em>pids</em>] Domain /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect does not exist<br />
</code></p>
<p>It seems the Apple folks have done some creative things so while this is still valid XML it is not a defaults compatible plist. The values are dictionaries stored in an array at the top level. Is this protection against script-kiddies who&#8217;d use defaults to change values in the list? While the file is root owned, one must wonder if there are safeguards to check its checksum against a server to detect unauthorized changes to it? Since admin status is enough to escalate to root using sudo (and every initial user in OS X is an admin), combine this with the fact that installer runs as root when installing a pkg, and this is something to keep an eye on&#8230; (oh right my point being this thwarts a script to list detected threats, at least <em>easily</em> using defaults)</p>
<p>And some parting advice: Turn off Open Safe Downloads in Safari! It&#8217;s an oddly bad decision by Apple, its paralells to Windows&#8217; AutoPlay/AutoRun give me goose bumps! I don&#8217;t want a dmg opening itself up and copying out it&#8217;s pkg payload into Downloads, then auto launching it! CRAZY BAD! Malware on a platinum platter, Apple couldn&#8217;t have made it easier!</p>
<p>Here&#8217;s the code for turning this off in Safari, it is a per user preference:<br />
<code>defaults write com.apple.Safari AutoOpenSafeDownloads -bool FALSE</code></p>
<p>And so concludes this expedition, hope you learned something, and can teach me something back in the process, thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunerd.com/blog/2011/06/03/advanced-safe-downloads-list-tips-and-tricks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Safe Downloads List Info Widget</title>
		<link>http://www.brunerd.com/blog/2011/06/03/safe-downloads-widget/</link>
		<comments>http://www.brunerd.com/blog/2011/06/03/safe-downloads-widget/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 17:41:00 +0000</pubDate>
		<dc:creator>brunerd</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.brunerd.com/blog/?p=343</guid>
		<description><![CDATA[UPDATE: The AUTOUPDATE code only works as root and so is not useful in the Dashboard environment! This has been removed from the widget. So I slapped together a widget for the Safe Downloads commands I post at OSXHints: Safe &#8230; <a href="http://www.brunerd.com/blog/2011/06/03/safe-downloads-widget/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>UPDATE: The AUTOUPDATE code only works as root and so is not useful in the Dashboard environment! This has been removed from the widget.</p>
<p>So I slapped together a widget for the Safe Downloads commands I post at <a href="http://hints.macworld.com/article.php?story=20110602091032338">OSXHints</a>:</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-381" title="Safe Downloads Info" src="http://www.brunerd.com/blog/wp-content/uploads/Safe-Downloads-Info.png" alt="" width="346" height="120" /></p>
<p style="text-align: center;"><a href="http://www.brunerd.com/software/Safe-Downloads-Info.zip">Safe Downloads Info Widget</a></p>
<p>Nothing glamorous just the facts and the following code is how it gets it&#8217;s values:</p>
<p><code>defaults read /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.meta LastModification<br />
defaults read /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.meta Version</code></p>
<p>The auto updates status took a bit more massaging:</p>
<p><code>eval $(sudo defaults read /private/var/db/launchd.db/com.apple.launchd/overrides com.apple.xprotectupdater | sed 's/ //g')<br />
if [ ${Disabled:=0} -eq 0 ]; then<br />
echo ON<br />
else<br />
echo OFF<br />
fi</code></p>
<p>All apologies to Dashboard coding perfectionists but the calls for the widget are synchronous, and reading up on Dashboard coding best practices, Apple says a shipping widget should only use asynchronous calls for info&#8230; oh well it works well enough for me! <img src='http://www.brunerd.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Perhaps I&#8217;ll go back and throw in extra lines of code for asynchronous handlers when I can, if my widget freezes up any other widgets you can simply restart Dashboard by killing to Dock process from Activity Monitor.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunerd.com/blog/2011/06/03/safe-downloads-widget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finder&#8217;s Nasty Inherited ACL Bug (aka Error -41)</title>
		<link>http://www.brunerd.com/blog/2011/03/22/finders-nasty-inherited-acl-bug-aka-error-41/</link>
		<comments>http://www.brunerd.com/blog/2011/03/22/finders-nasty-inherited-acl-bug-aka-error-41/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 17:43:30 +0000</pubDate>
		<dc:creator>brunerd</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Bugs]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.brunerd.com/blog/?p=304</guid>
		<description><![CDATA[Finder&#8217;s Inherited ACL handling is broken Support for inherited ACLs on folders is still in disarray in 10.6.7 (and has been since 10.6.5), there have been a few reports here and there, some mentioning Error -41, other saying it was AFP, &#8230; <a href="http://www.brunerd.com/blog/2011/03/22/finders-nasty-inherited-acl-bug-aka-error-41/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h1>Finder&#8217;s Inherited ACL handling is broken</h1>
<p>Support for inherited ACLs on folders is still in disarray in 10.6.7 (and has been since 10.6.5), there have been a few reports here and there, some mentioning Error -41, other saying it was AFP, but I&#8217;ve <a href="http://openradar.appspot.com/9160099" target="_blank">whittled it down</a> and it&#8217;s a Finder flaw handling inherited ACLs that was introduced in 10.6.3!</p>
<h2>Hands On Demo</h2>
<p>Let&#8217;s create a folder in your home directory using Terminal to make a nice little nested folder set to play with :<br />
<code>mkdir -p ~/ACLShackles/1/2/3/4/5/6/7/8/9/10/11</code></p>
<p>Now let&#8217;s add an entry to the folder&#8217;s ACL, in this case  <strong>inherited folder and file </strong>Read &amp; Write permissions, a common setup for workgroups that share a folder. OS X&#8217;s Server Admin sets inheritance by default when adding a user to an ACL, to do this with OS X Client you must use chmod:</p>
<p><code>chmod +a "$(whoami) allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" ~/ACLShackles/</code></p>
<p>Make sure the above is all on one line and paste into Terminal.<br />
Now, that the permissions are set double check with: <code>ls -led ~/ACLShackles</code></p>
<p><a href="http://www.brunerd.com/blog/wp-content/uploads/ACLShacles-ls-led.png"><img class="alignnone size-full wp-image-314" title="ACLShacles-ls-led" src="http://www.brunerd.com/blog/wp-content/uploads/ACLShacles-ls-led.png" alt="" width="975" height="47" /></a></p>
<p>Now duplicate folder structure we made called &#8220;1&#8243; with Command-D, now try and duplicate &#8220;1 copy&#8221;  &#8211; it fails. Finder Error -41.</p>
<p>Looking at the ACL in Terminal isn&#8217;t pretty:<br />
ls -leR /Users/brunerj/ACLShackles/1\ copy\ 2</p>
<p><a href="http://www.brunerd.com/blog/wp-content/uploads/LotsaACLs.png"><img class="alignnone size-medium wp-image-318" title="LotsaACLs" src="http://www.brunerd.com/blog/wp-content/uploads/LotsaACLs-245x300.png" alt="" width="245" height="300" /></a></p>
<p>It goes on to 108&#8230;</p>
<p>If you don&#8217;t like Terminal, I&#8217;ve got an Applescript for you: <a href="http://www.brunerd.com/blog/wp-content/uploads/Error41.zip">Error41.zip<br />
</a></p>
<p>Just download and, open the resulting Error41.dmg, open and run Error41.scpt to get this result:</p>
<p><a href="http://www.brunerd.com/blog/wp-content/uploads/AppleScript_Error41.png"><img class="alignnone size-full wp-image-305" title="AppleScript_Error41" src="http://www.brunerd.com/blog/wp-content/uploads/AppleScript_Error41.png" alt="" width="399" height="116" /></a></p>
<h2>Step-by-step illustrated Demo</h2>
<p>Let&#8217;s try another example and illustrate.</p>
<p>Now, let&#8217;s copy in Chess.app, take a look at the permissions with the Inspector (Command-Option-I), notice the Permissions (for this example I added a different user in the ACL to avoid confusion between the Unix permission and the ACL when looking at Finder&#8217;s Get Info, it&#8217;s the same silhouette):</p>
<p><a href="http://www.brunerd.com/blog/wp-content/uploads/chess0.png"><img class="alignnone size-medium wp-image-289" title="chess0" src="http://www.brunerd.com/blog/wp-content/uploads/chess0-225x300.png" alt="" width="225" height="300" /></a></p>
<p><a href="http://www.brunerd.com/blog/wp-content/uploads/chess0-lsle.png"><img class="alignnone size-full wp-image-285" title="chess0-lsle" src="http://www.brunerd.com/blog/wp-content/uploads/chess0-lsle.png" alt="" width="1013" height="27" /></a></p>
<p>Looks good, and how it should. Now duplicate Chess.app within this folder with a Command-D:</p>
<p><a href="http://www.brunerd.com/blog/wp-content/uploads/chess1.png"><img class="alignnone size-medium wp-image-288" title="chess1" src="http://www.brunerd.com/blog/wp-content/uploads/chess1-225x300.png" alt="" width="225" height="300" /></a></p>
<p><a href="http://www.brunerd.com/blog/wp-content/uploads/chess1-lsle.png"><img class="alignnone size-full wp-image-282" title="chess1-lsle" src="http://www.brunerd.com/blog/wp-content/uploads/chess1-lsle.png" alt="" width="1012" height="56" /></a></p>
<p>Uh-oh. Something&#8217;s not right. It&#8217;s duplicated the original ACE (Access Control Entry) and added one for me the duplicator that seems to mimic my Unix permissions.</p>
<p>Copy the copy.</p>
<p><a href="http://www.brunerd.com/blog/wp-content/uploads/chess2.png"><img class="alignnone size-medium wp-image-287" title="chess2" src="http://www.brunerd.com/blog/wp-content/uploads/chess2-225x300.png" alt="" width="225" height="300" /></a></p>
<p><a href="http://www.brunerd.com/blog/wp-content/uploads/chess2-lsle.png"><img class="alignnone size-full wp-image-284" title="chess2-lsle" src="http://www.brunerd.com/blog/wp-content/uploads/chess2-lsle.png" alt="" width="1016" height="85" /></a></p>
<p>Much worse. It&#8217;s now duplicating my erroneous ACE and the ACE of the test user as well.</p>
<p>Copy the copy.</p>
<p><a href="http://www.brunerd.com/blog/wp-content/uploads/Checkmate.png"><img class="alignnone size-full wp-image-290" title="Checkmate" src="http://www.brunerd.com/blog/wp-content/uploads/Checkmate.png" alt="" width="479" height="187" /></a></p>
<p>Oh dear. Fail. Error -41. Checkmate.</p>
<p>Let&#8217;s look at that third failed and truncated copy in Finder</p>
<p><a href="http://www.brunerd.com/blog/wp-content/uploads/chess3.png"><img title="chess3" src="http://www.brunerd.com/blog/wp-content/uploads/chess3-225x300.png" alt="" width="225" height="300" /></a></p>
<p><a href="http://www.brunerd.com/blog/wp-content/uploads/chess3-lsle.png"><img class="alignnone size-full wp-image-283" title="chess3-lsle" src="http://www.brunerd.com/blog/wp-content/uploads/chess3-lsle.png" alt="" width="1019" height="114" /></a></p>
<p>Care to see how long an ACL is inside the app?</p>
<p><a href="http://www.brunerd.com/blog/wp-content/uploads/HelpChess3ACL.png"><img class="alignnone size-medium wp-image-291" title="HelpChess3ACL" src="http://www.brunerd.com/blog/wp-content/uploads/HelpChess3ACL-202x300.png" alt="" width="202" height="300" /></a></p>
<p>Yes. <strong>110</strong> ACEs are on &#8220;Chess copy 3.app/Contents&#8221;!</p>
<h3>Comparing other file manager&#8217;s behavior</h3>
<p>cp doesn&#8217;t suffer the same fate as Finder when making copies of copies.</p>
<p>This simulates Finder&#8217;s copy of a copy, delete any existing duplicate folders and try this:</p>
<p><code>cp -Rp 1 1\ copy; cp -Rp 1\ copy 1\ copy\ 2; cp -Rp 1\ copy\ 2 1\ copy\ 3; cp -Rp 1\ copy\ 3 1\ copy\ 4</code></p>
<p>Take a <a href="http://www.brunerd.com/blog/wp-content/uploads/cp-Rp.png" target="_blank">look</a> inside with <code>ls -leR ~/ACLShackles</code>, nice and clean, one ACE per ACL on each folder the way it should be.</p>
<p>Rixstep&#8217;s <a title="XFile" href="http://rixstep.com/4/0/td.shtml" target="_blank">XFile</a> &#8211; doesn&#8217;t exhibit this behavior when copying or duplicating either, Rixstep software is quite conscientious about doing the Right Thing™</p>
<p><a title="Path Finder" href="http://www.cocoatech.com/" target="_blank">Path Finder</a> however duplicates ACLs just like Finder, but instead of Error -41 when an ACL gets too long and deep it just hangs instead. What&#8217;s interesting is what calls is PathFinder using? They have an SDK but have only taken a cursory look, regardless it&#8217;s the same result as Finder.</p>
<h3>In conclusion&#8230;</h3>
<p>For OS X Server environments, this affects crucial workflow behavior where multiple people act upon the same files and folders. ACLs quickly stack up and render Finder unusable. Currently the last known proper behavior for Finder was 10.6.2. Then 10.6.3 and 10.6.4, added the quirk of  adding an ACL entry that mimicked the UNIX permissions of the user doing the copy operation, but at least the ACEs weren&#8217;t duplicated <em>ad nauseum</em>. But taking the insanity to new heights was 10.6.5, 10.6.6, and now 10.6.7 with the duplication bug that makes working with inherited permissions unbearable. Luckily for OS X Client, this is minimized since Finder does not enable Inheritance for files or folders, but then you lose out on what inherited ACLs could do for you and your workgroup!</p>
<p>Since 10.6.7 is out now, 10.6.8 might be your last chance to have Snow Leopard&#8217;s Finder ACL behavior put back in working order. Let Apple know this is important to you, file a bug report at <a title="Apple Bug Reporter" href="http://bugreporter.apple.com" target="_blank">Apple&#8217;s Bug Reporter site</a>, you can reference my bug number: <a href="http://openradar.appspot.com/9160099">9160099</a> (you can view it at OpenRadar )</p>
<p>P.S. If you are wondering why I didn&#8217;t file this earlier since I am so detailed in the earlier 10.6 behavior? I actually became aware of something wrong in 10.6.5 but I also wasn&#8217;t sure what the cause was, Client, Server, AFP, Active Direcroty? Our UIDs are 10 digits long! During that time I hoped the soon to be released 10.6.6 would fix it, but when it didn&#8217;t I spent a lot of time just trying to fix it and clean the ACLs, it wasn&#8217;t until last week during the final seed of 10.6.7 that I found time to set up a new server and incrementally test 10.6, 10.6.2, 10.6.3, 10.6.4, 10.6.5, 10.6.6, and 10.6.7, recording QT Screen captures for each one and that took some time! My bug report only got in this Sunday. Oh well better late than never! :/</p>
<h4>Remedies</h4>
<p>It&#8217;s easy to nuke all the ACLs in a given folder, but then you&#8217;ll probably want them set back up again to be of any use! Anyway this will recursively wipe the ACLs from everything in the folder you&#8217;re in, be careful, you could wipe your own access! So it&#8217;s best for the server admin to to run from the server itself, then re-propagate the ACLs for the Share (actually you may not be able to delete ACLs from client anyway):</p>
<p><code>chmod -RN *</code></p>
<h3>Update (3/23/11):</h3>
<p>So I left my ACLShackles folder in my home foder and Time Machine failed to backup (backupd error -41, surprise.) so to avoid that, delete ACLShackles and/or turn off Time Machine while you play around with this&#8230;</p>
<p>Update (Sep 2011):<br />
Just posting my comment down at the bottom so you don&#8217;t have to scroll all the way down there to read it&#8230;</p>
<table cellspacing="0">
<tbody id="the-comment-list">
<tr id="comment-6167">
<td>10.6.8 has addressed it for the most part. You’ll still get weirdness when duplicating folders with inherited folders inside a folder with inherited permissions, but it’s a linear rather than geometric and that’s bearable.</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.brunerd.com/blog/2011/03/22/finders-nasty-inherited-acl-bug-aka-error-41/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
	</channel>
</rss>

