<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Sandvox &#8220;hidden&#8221; feature.</title>
	<atom:link href="http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/</link>
	<description>...so google can organize my head.</description>
	<pubDate>Thu, 20 Nov 2008 09:44:12 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
		<item>
		<title>By: Us vs Them</title>
		<link>http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/#comment-154483</link>
		<dc:creator>Us vs Them</dc:creator>
		<pubDate>Wed, 26 Sep 2007 17:39:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/#comment-154483</guid>
		<description>[...] it. The center of the storm is over at Bill Bumgarner&#8217;s (bbum) blog primarily in the &#8220;Sandvox Hidden Features&#8221; entry but also in the &#8220;Detecting and Disabling Smart Crash Reports&#8221; and [...]</description>
		<content:encoded><![CDATA[<p>[...] it. The center of the storm is over at Bill Bumgarner&#8217;s (bbum) blog primarily in the &#8220;Sandvox Hidden Features&#8221; entry but also in the &#8220;Detecting and Disabling Smart Crash Reports&#8221; and [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: From Concentrate Software</title>
		<link>http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/#comment-615</link>
		<dc:creator>From Concentrate Software</dc:creator>
		<pubDate>Tue, 24 Jan 2006 17:44:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/#comment-615</guid>
		<description>[...] bbum has started a minor riot concerning Sandvox&#8217;s installation of Smart Crash Reporters. To be fair, I think that bbum is genuinely trying to be a nice guy and it is the other people that posted in the comments that are tainting the discussion. Curious to me, however, is that the post was about Sandvox but the comments targeted Unsanity. [...]</description>
		<content:encoded><![CDATA[<p>[...] bbum has started a minor riot concerning Sandvox&#8217;s installation of Smart Crash Reporters. To be fair, I think that bbum is genuinely trying to be a nice guy and it is the other people that posted in the comments that are tainting the discussion. Curious to me, however, is that the post was about Sandvox but the comments targeted Unsanity. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rosyna</title>
		<link>http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/#comment-610</link>
		<dc:creator>Rosyna</dc:creator>
		<pubDate>Mon, 23 Jan 2006 23:42:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/#comment-610</guid>
		<description>John Y. This is not the place to answer FAQs about Unsanity products. For those go to http://www.unsanity.com/support/</description>
		<content:encoded><![CDATA[<p>John Y. This is not the place to answer FAQs about Unsanity products. For those go to <a href="http://www.unsanity.com/support/" >http://www.unsanity.com/support/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bob Kerstetter</title>
		<link>http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/#comment-609</link>
		<dc:creator>Bob Kerstetter</dc:creator>
		<pubDate>Mon, 23 Jan 2006 23:34:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/#comment-609</guid>
		<description>Well, I was sort of impressed with the basic approach of Sandvox, but was not really crazy about their paranoia related to Apple. However, I  was ramping up to work more with this product---it's tons more flexible than iWeb---but have instead removed it. Don't care what the reporter does or how helpful it is to the developer. In fact I would be okay with running the reporter, but I need to know about it, and what it does, even if it's beta software. Omnigroup, for example, has had their own reporter for years. I don't know if they still do because I haven't had one of their apps crash in years, or at least months, :). Anyway,  I have run lots of betas and the developers have always been transparent about what they install where. It's not an over reaction to be annoyed about a stealth reporter. This is just poor policy on the part of the developer.</description>
		<content:encoded><![CDATA[<p>Well, I was sort of impressed with the basic approach of Sandvox, but was not really crazy about their paranoia related to Apple. However, I  was ramping up to work more with this product&#8212;it&#8217;s tons more flexible than iWeb&#8212;but have instead removed it. Don&#8217;t care what the reporter does or how helpful it is to the developer. In fact I would be okay with running the reporter, but I need to know about it, and what it does, even if it&#8217;s beta software. Omnigroup, for example, has had their own reporter for years. I don&#8217;t know if they still do because I haven&#8217;t had one of their apps crash in years, or at least months, :). Anyway,  I have run lots of betas and the developers have always been transparent about what they install where. It&#8217;s not an over reaction to be annoyed about a stealth reporter. This is just poor policy on the part of the developer.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Y.</title>
		<link>http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/#comment-608</link>
		<dc:creator>John Y.</dc:creator>
		<pubDate>Mon, 23 Jan 2006 16:23:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/#comment-608</guid>
		<description>I'd just like to interject that Rosyna's continued dissembling and deflection of concerns (instead of, say, addressing them) has convinced me to make sure no Unsanity products are ever installed on my machine.</description>
		<content:encoded><![CDATA[<p>I&#8217;d just like to interject that Rosyna&#8217;s continued dissembling and deflection of concerns (instead of, say, addressing them) has convinced me to make sure no Unsanity products are ever installed on my machine.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bbum</title>
		<link>http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/#comment-607</link>
		<dc:creator>bbum</dc:creator>
		<pubDate>Mon, 23 Jan 2006 15:28:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/#comment-607</guid>
		<description>It is kind of difficult to write a Cocoa app without the AppKit, isn't it?

Right -- OK -- -init method only because the actual loading of the Input Manager is done via supported mechanisms.   Still it is a foreign piece of code modifying a system service in an unsupported fashion.

That is about as innocuous as an unsupported hack can be.  But it is still an unsupported hack.  It still taints crash reports and taints my work environment.   No thanks.

As for detecting memory smashers/crasher, the tools on the system specifically for doing exactly that are far more effective than relying on random behavior.  MallocPreScribble/MallocScribble, libgmalloc, zombies, etc...

&lt;blockquote&gt; For InputManagers, you are guaranteed that Foundation, AppKit, Carbon, and CoreFoundation are loaded before the InputManagers are even queried.  So linking to any of these will not change the order of initialization or plugin loading at all.&lt;/blockquote&gt;

To be pedantic: that is incorrect.   While the frameworks might be loaded, all of the classes in said frameworks will not be initialized.   Class initialization only happens on first reference.   In SCR's case, the only class referenced in the conditional is NSBundle and that pretty much has to be initialized prior to loading SCR.

So, Yes, SCR is about as safe and low impact as such a product can be.  Flog the horse:  It is good engineering.   But it is an unsupported change to system behavior.  It taints my system that raises both reasonable and unreasonable questions in regards to system integrity.</description>
		<content:encoded><![CDATA[<p>It is kind of difficult to write a Cocoa app without the AppKit, isn&#8217;t it?</p>
<p>Right &#8212; OK &#8212; -init method only because the actual loading of the Input Manager is done via supported mechanisms.   Still it is a foreign piece of code modifying a system service in an unsupported fashion.</p>
<p>That is about as innocuous as an unsupported hack can be.  But it is still an unsupported hack.  It still taints crash reports and taints my work environment.   No thanks.</p>
<p>As for detecting memory smashers/crasher, the tools on the system specifically for doing exactly that are far more effective than relying on random behavior.  MallocPreScribble/MallocScribble, libgmalloc, zombies, etc&#8230;</p>
<blockquote><p> For InputManagers, you are guaranteed that Foundation, AppKit, Carbon, and CoreFoundation are loaded before the InputManagers are even queried.  So linking to any of these will not change the order of initialization or plugin loading at all.</p></blockquote>
<p>To be pedantic: that is incorrect.   While the frameworks might be loaded, all of the classes in said frameworks will not be initialized.   Class initialization only happens on first reference.   In SCR&#8217;s case, the only class referenced in the conditional is NSBundle and that pretty much has to be initialized prior to loading SCR.</p>
<p>So, Yes, SCR is about as safe and low impact as such a product can be.  Flog the horse:  It is good engineering.   But it is an unsupported change to system behavior.  It taints my system that raises both reasonable and unreasonable questions in regards to system integrity.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rosyna</title>
		<link>http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/#comment-606</link>
		<dc:creator>Rosyna</dc:creator>
		<pubDate>Mon, 23 Jan 2006 07:56:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/#comment-606</guid>
		<description>bbum, I understand the problem with not telling the user. It is the application developer's choice to tell the user they're installing it or not. In the future, we may add a ready made dialog directly to the install API.

1. Perhaps we should change the executable name to Smart_Crash_Reports_If_This_Is_Not_CrashReporter_SCR_Is_Unrelated_to_the_Crash. Although from experience, people will still blame it for crashes it can't possibly have anything to do with.

2. Uhm... ok.. that seems rather pedantic. Especially since cocoa itself does more than that. Loading AppKit massively slows down app launches and increases the memory footprint greatly. This is why the Dock doesn't link to Cocoa, why the Finder doesn't link to Cocoa, and also why not a single APE we make links to Cocoa (unless it targets only specific applications like iSWAD).

3. Actually, it doesn't have a +load method, just an -init method. Secondly, if you're testing for bugs, then wouldn't every single person having the *same* configuration lead to many uncaught memory smashers?  What do you call those bugs that appear and disappear if the environment changes slightly? And if it's doing that much damage, it sounds like a bug in the Objective-C runtime (which you say may be fixed)

&lt;blockquote&gt;My understanding of haxies is that they often twiddle the system well below the high level frameworks.&lt;/blockquote&gt;

Not, really, no. We try to be as high level as possible for everything. For example, Menu Master actually installs Carbon Event Handlers on menus. The lower we go in haxies, the more we have to rewrite them for major OS X updates so we avoid them like the plague. A little effort today can save a lot of effort tomorrow.

&lt;blockquote&gt;As for PhotoShop: If I’m understanding the problem correctly, they have a scripting addition that is required for CS’s operation? Just like an Input Manager, a Scripting Addition is a well supported means of extending a particular subsystem in the system. And just like an IM, an SA can easily step outside of the bounds of that particular interface’s intention and cause major hell (or it could just be written poorly and cause major hell).&lt;/blockquote&gt;

Yes, it installs a CFM scripting addition. And a bug somewhere causes nested functions to blow up if the CFM runtime is loaded. Nested functions are deprecated in both gcc and OS X. Yet for some reason, iSync uses them. This is not something Adobe can fix. It's not something I can fix either. However, it is something that can be worked around, which iSWAD does until Apple fixes the bug.

However, the Scripting Addition "suffers" from all the points you've mentioned above. Every single plugin does no matter the plugin API. For InputManagers, you are guaranteed that Foundation, AppKit, Carbon, and CoreFoundation are loaded before the InputManagers are even queried. So linking to any of these will not change the order of initialization or plugin loading at all. SCR links to AppKit, Foundation, and CoreServices (which is linked to by Carbon, so it is guaranteed to be there by the time InputManagers are even looked at).</description>
		<content:encoded><![CDATA[<p>bbum, I understand the problem with not telling the user. It is the application developer&#8217;s choice to tell the user they&#8217;re installing it or not. In the future, we may add a ready made dialog directly to the install API.</p>
<p>1. Perhaps we should change the executable name to Smart_Crash_Reports_If_This_Is_Not_CrashReporter_SCR_Is_Unrelated_to_the_Crash. Although from experience, people will still blame it for crashes it can&#8217;t possibly have anything to do with.</p>
<p>2. Uhm&#8230; ok.. that seems rather pedantic. Especially since cocoa itself does more than that. Loading AppKit massively slows down app launches and increases the memory footprint greatly. This is why the Dock doesn&#8217;t link to Cocoa, why the Finder doesn&#8217;t link to Cocoa, and also why not a single APE we make links to Cocoa (unless it targets only specific applications like iSWAD).</p>
<p>3. Actually, it doesn&#8217;t have a +load method, just an -init method. Secondly, if you&#8217;re testing for bugs, then wouldn&#8217;t every single person having the *same* configuration lead to many uncaught memory smashers?  What do you call those bugs that appear and disappear if the environment changes slightly? And if it&#8217;s doing that much damage, it sounds like a bug in the Objective-C runtime (which you say may be fixed)</p>
<blockquote><p>My understanding of haxies is that they often twiddle the system well below the high level frameworks.</p></blockquote>
<p>Not, really, no. We try to be as high level as possible for everything. For example, Menu Master actually installs Carbon Event Handlers on menus. The lower we go in haxies, the more we have to rewrite them for major OS X updates so we avoid them like the plague. A little effort today can save a lot of effort tomorrow.</p>
<blockquote><p>As for PhotoShop: If I’m understanding the problem correctly, they have a scripting addition that is required for CS’s operation? Just like an Input Manager, a Scripting Addition is a well supported means of extending a particular subsystem in the system. And just like an IM, an SA can easily step outside of the bounds of that particular interface’s intention and cause major hell (or it could just be written poorly and cause major hell).</p></blockquote>
<p>Yes, it installs a CFM scripting addition. And a bug somewhere causes nested functions to blow up if the CFM runtime is loaded. Nested functions are deprecated in both gcc and OS X. Yet for some reason, iSync uses them. This is not something Adobe can fix. It&#8217;s not something I can fix either. However, it is something that can be worked around, which iSWAD does until Apple fixes the bug.</p>
<p>However, the Scripting Addition &#8220;suffers&#8221; from all the points you&#8217;ve mentioned above. Every single plugin does no matter the plugin API. For InputManagers, you are guaranteed that Foundation, AppKit, Carbon, and CoreFoundation are loaded before the InputManagers are even queried. So linking to any of these will not change the order of initialization or plugin loading at all. SCR links to AppKit, Foundation, and CoreServices (which is linked to by Carbon, so it is guaranteed to be there by the time InputManagers are even looked at).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bbum</title>
		<link>http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/#comment-605</link>
		<dc:creator>bbum</dc:creator>
		<pubDate>Mon, 23 Jan 2006 06:46:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/#comment-605</guid>
		<description>It is rather simple!

If an app installs something that is loaded into every app (or every Cocoa app) and that app doesn't tell the user, it is bad.  That is the primary issue.

The reason why this is of concern to me is because I choose to not run a system with any modifications for both personal and professional reasons.  Others may not feel the same way.

SCR does load and execute code in every Cocoa app.  This does cause change that I find problematic.  Three off the top of my head:

- it makes my system work differently than my colleagues.  Then I have to waste time explaining that the mystery item in my crash report or otherwise in my debugging environment is somehow benign.

- it ever so slightly increases the memory footprint of every Cocoa application.  Not by much, but every page counts and since I am often using my machine to determine benchmarks and track performance metrics, every unaccountable variable is problematic.

- it uses a +load method which will potentially change the order of class initialization or other framework infrastructure.   While their shouldn't be any order dependencies (there have been in the past, but I think they are fixed), it is another change that pushes my system away from working the same as my colleagues.

As for Haxies -- sure, Unsanity has put together a great product for managing them.  Kudos.  My understanding of haxies is that they often twiddle the system well below the high level frameworks.

As for PhotoShop:  If I'm understanding the problem correctly, they have a scripting addition that is required for CS's operation?   Just like an Input Manager, a Scripting Addition is a well supported means of extending a particular subsystem in the system.  And just like an IM, an SA can easily step outside of the bounds of that particular interface's intention and cause major hell (or it could just be written poorly and cause major hell).</description>
		<content:encoded><![CDATA[<p>It is rather simple!</p>
<p>If an app installs something that is loaded into every app (or every Cocoa app) and that app doesn&#8217;t tell the user, it is bad.  That is the primary issue.</p>
<p>The reason why this is of concern to me is because I choose to not run a system with any modifications for both personal and professional reasons.  Others may not feel the same way.</p>
<p>SCR does load and execute code in every Cocoa app.  This does cause change that I find problematic.  Three off the top of my head:</p>
<p>- it makes my system work differently than my colleagues.  Then I have to waste time explaining that the mystery item in my crash report or otherwise in my debugging environment is somehow benign.</p>
<p>- it ever so slightly increases the memory footprint of every Cocoa application.  Not by much, but every page counts and since I am often using my machine to determine benchmarks and track performance metrics, every unaccountable variable is problematic.</p>
<p>- it uses a +load method which will potentially change the order of class initialization or other framework infrastructure.   While their shouldn&#8217;t be any order dependencies (there have been in the past, but I think they are fixed), it is another change that pushes my system away from working the same as my colleagues.</p>
<p>As for Haxies &#8212; sure, Unsanity has put together a great product for managing them.  Kudos.  My understanding of haxies is that they often twiddle the system well below the high level frameworks.</p>
<p>As for PhotoShop:  If I&#8217;m understanding the problem correctly, they have a scripting addition that is required for CS&#8217;s operation?   Just like an Input Manager, a Scripting Addition is a well supported means of extending a particular subsystem in the system.  And just like an IM, an SA can easily step outside of the bounds of that particular interface&#8217;s intention and cause major hell (or it could just be written poorly and cause major hell).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rosyna</title>
		<link>http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/#comment-604</link>
		<dc:creator>Rosyna</dc:creator>
		<pubDate>Mon, 23 Jan 2006 05:57:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/#comment-604</guid>
		<description>See, this is the problem I have. Now you're saying that anything loading in applications is bad, even if it &lt;b&gt;does nothing&lt;/b&gt; in that application (like SCR). Given my Photoshop example (http://www.unsanity.org/archives/000425.php), you seem to be saying Photoshop is bad as well.

&lt;blockquote&gt;Anything that modifies the behavior of every Cocoa app on the system is the problem&lt;/blockquote&gt;

&lt;blockquote&gt;Installing something that is loaded at launch of any Cocoa app on the system (by that user) is unacceptable, regardless of how well engineered said solution is.&lt;/blockquote&gt;

&lt;blockquote&gt;I’m all for user’s having full control over their system. If a user wants to run Haxies&lt;/blockquote&gt;

You seem to be going back and forth on your stance, if I'm reading these correctly.

And can you &lt;b&gt;please&lt;/b&gt; elaborate on your definition of "modify" as it clearly does not seem to match the standard definition of "change" since you use it in regards to SCR and you can clearly see from the posted source code just exactly what it is doing in "any Cocoa app" which is definitely not changing anything.

And haxies are actually probably one of the least invasive methods. The user can control exactly which applications they want to modify and APE won't load as root, for security reasons, unlike many other methods (like SIMBL and the like).</description>
		<content:encoded><![CDATA[<p>See, this is the problem I have. Now you&#8217;re saying that anything loading in applications is bad, even if it <b>does nothing</b> in that application (like SCR). Given my Photoshop example (http://www.unsanity.org/archives/000425.php), you seem to be saying Photoshop is bad as well.</p>
<blockquote><p>Anything that modifies the behavior of every Cocoa app on the system is the problem</p></blockquote>
<blockquote><p>Installing something that is loaded at launch of any Cocoa app on the system (by that user) is unacceptable, regardless of how well engineered said solution is.</p></blockquote>
<blockquote><p>I’m all for user’s having full control over their system. If a user wants to run Haxies</p></blockquote>
<p>You seem to be going back and forth on your stance, if I&#8217;m reading these correctly.</p>
<p>And can you <b>please</b> elaborate on your definition of &#8220;modify&#8221; as it clearly does not seem to match the standard definition of &#8220;change&#8221; since you use it in regards to SCR and you can clearly see from the posted source code just exactly what it is doing in &#8220;any Cocoa app&#8221; which is definitely not changing anything.</p>
<p>And haxies are actually probably one of the least invasive methods. The user can control exactly which applications they want to modify and APE won&#8217;t load as root, for security reasons, unlike many other methods (like SIMBL and the like).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bbum</title>
		<link>http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/#comment-602</link>
		<dc:creator>bbum</dc:creator>
		<pubDate>Mon, 23 Jan 2006 03:14:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.friday.com/bbum/2006/01/20/sandvox-hidden-feature/#comment-602</guid>
		<description>It doesn't matter if the software is beta, alpha, or production.  Installing something that is loaded at launch of &lt;i&gt;any&lt;/i&gt; Cocoa app on the system (by that user) is unacceptable, regardless of how well engineered said solution is.</description>
		<content:encoded><![CDATA[<p>It doesn&#8217;t matter if the software is beta, alpha, or production.  Installing something that is loaded at launch of <i>any</i> Cocoa app on the system (by that user) is unacceptable, regardless of how well engineered said solution is.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
