<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: TinkerTool review: Adjust hidden Mac settings</title>
	<atom:link href="http://mac.elated.com/2008/12/22/tinkertool-review-adjust-hidden-mac-settings/feed/" rel="self" type="application/rss+xml" />
	<link>http://mac.elated.com/2008/12/22/tinkertool-review-adjust-hidden-mac-settings/</link>
	<description>A blog about Macs and that</description>
	<lastBuildDate>Tue, 07 Feb 2012 21:10:56 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
	<item>
		<title>By: Matt</title>
		<link>http://mac.elated.com/2008/12/22/tinkertool-review-adjust-hidden-mac-settings/comment-page-1/#comment-12372</link>
		<dc:creator>Matt</dc:creator>
		<pubDate>Mon, 12 Jan 2009 20:34:18 +0000</pubDate>
		<guid isPermaLink="false">http://mac.elated.com/?p=486#comment-12372</guid>
		<description>I don&#039;t think any of the current tools work in this way. It&#039;s a great idea though! :)</description>
		<content:encoded><![CDATA[<p>I don&#8217;t think any of the current tools work in this way. It&#8217;s a great idea though! <img src='http://mac.elated.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: R. Hamilton</title>
		<link>http://mac.elated.com/2008/12/22/tinkertool-review-adjust-hidden-mac-settings/comment-page-1/#comment-12368</link>
		<dc:creator>R. Hamilton</dc:creator>
		<pubDate>Fri, 09 Jan 2009 03:13:49 +0000</pubDate>
		<guid isPermaLink="false">http://mac.elated.com/?p=486#comment-12368</guid>
		<description>Are any of these data driven?

By that I mean that I think a tweaker should perhaps
be _just_ a tweaker, something that potentially
handles anything that is a single independent setting.
It should be almost totally data driven, with a simple GUI (categories, subcategories, value validation); all
data living in a plist.  Also extensible, with plugins
for different mechanisms (defaults, launchctl, etc);
the plugins would deal with temporary vs permanent
(if applicable), and there might be additional
plugins for value validation beyond that common
for value types appearing in plists, and for
applicability verification beyond what would
always be done (OS version) and what would
always be done by a particular plugin.

The data would include basic applicability
description, mechanism, mechanism-specific
elements, GUI placement (category, subcategory),
date added, and some sort of UUID.  The data would be
user-extensible through the GUI, and could
optionally be submitted to a central database
of candidate updates, in return for a UUID;
if a submission was accepted and redistributed,
it would retain that original UUID and on update,
replace the user&#039;s original entry (for uniformity);
this would require that the &quot;how&quot; details were
unchanged (GUI placement and descriptive text
might change).  Validation of candidate updates
and data maintenance (consolidating entries
for individual OS versions, for example) would
be done by a set of &quot;trusted&quot; volunteers.  Candidate
updates, approved updates, new plugin distribution,
all would use distributed infrastructure; all updates
would be signed, and the plist would have
a three-part overall version number (major=
incompatible changes, minor=compatible changes
that may require new plugins or plugin updates,
micro=updates that don&#039;t require major or minor
version changes), as well as a timestamp.

Resource editing might also become a plugin.

By being run in a batch form at system or session
startup, this could optionally make persistent any
tweaks that would otherwise be non-persistent;
an additional message should be present if there
were undue risk of painting oneself into a corner
by doing that.

Security and privileges should be honored; non-admin
users should only be able to change their own settings, while admin users should where applicable
have a choice of scope.

The only fundamental limitation is that each tweak
should be something that can be adequately validated independently of any others.  Even that could perhaps
be circumvented by validation plugins, that would
only allow certain settings to be changed in
reasonable combination; but then all the value
fields would have to be able to fit onto a single
line in a list view in the GUI; the schema could
accomodate that with the use of appropriate
combinations of dictionaries and arrays.

Ideally, once it was bug-free, there would be
no need for changes to the basic program, only
data maintenance and occasional new plugins.
This mechanism would take advantage of
distributed knowlege; as new tweaks were submitted,
the program would grow ever more capable.  And
since each record had a timestamp, one would
be advised of new tweaks as they were distributed.

Seems to me that 90% of the work would be getting
the schema right; the rest would follow.

The only problem is that either someone pretty
big would have to do it all (if it were commercial),
or the support would have to  be from a large
pool of volunteers (if it were free), because the
support infrastructure really needs to be distributed
for updates to be verified and distributed promptly
and with high availability.

No, I haven&#039;t used XCode enough (i.e. at all) to
whip out something like that reasonably quickly;
and I don&#039;t have the time right now to flesh out the
design, and then either learn XCode or do it
the old-fashioned way (Makefiles and hand-coding).
However, I hereby grant a free license to anything
unique I might have mentioned, for anything
distributed free and open source.  Any other rights
are negotiable.

The data acquired by such a tool could also be used
by other tools, that simplified matters by being
&quot;smart&quot; about tuning for certain objectives
(performance, choosing look and feel options that
were as much as possible like some prior version,
etc).  Ideally those would also be open as to what
they did, but would not necessarily be free or open
as to their code (even coders have to eat, pizza&amp;beer
isn&#039;t usually free).</description>
		<content:encoded><![CDATA[<p>Are any of these data driven?</p>
<p>By that I mean that I think a tweaker should perhaps<br />
be _just_ a tweaker, something that potentially<br />
handles anything that is a single independent setting.<br />
It should be almost totally data driven, with a simple GUI (categories, subcategories, value validation); all<br />
data living in a plist.  Also extensible, with plugins<br />
for different mechanisms (defaults, launchctl, etc);<br />
the plugins would deal with temporary vs permanent<br />
(if applicable), and there might be additional<br />
plugins for value validation beyond that common<br />
for value types appearing in plists, and for<br />
applicability verification beyond what would<br />
always be done (OS version) and what would<br />
always be done by a particular plugin.</p>
<p>The data would include basic applicability<br />
description, mechanism, mechanism-specific<br />
elements, GUI placement (category, subcategory),<br />
date added, and some sort of UUID.  The data would be<br />
user-extensible through the GUI, and could<br />
optionally be submitted to a central database<br />
of candidate updates, in return for a UUID;<br />
if a submission was accepted and redistributed,<br />
it would retain that original UUID and on update,<br />
replace the user&#8217;s original entry (for uniformity);<br />
this would require that the &#8220;how&#8221; details were<br />
unchanged (GUI placement and descriptive text<br />
might change).  Validation of candidate updates<br />
and data maintenance (consolidating entries<br />
for individual OS versions, for example) would<br />
be done by a set of &#8220;trusted&#8221; volunteers.  Candidate<br />
updates, approved updates, new plugin distribution,<br />
all would use distributed infrastructure; all updates<br />
would be signed, and the plist would have<br />
a three-part overall version number (major=<br />
incompatible changes, minor=compatible changes<br />
that may require new plugins or plugin updates,<br />
micro=updates that don&#8217;t require major or minor<br />
version changes), as well as a timestamp.</p>
<p>Resource editing might also become a plugin.</p>
<p>By being run in a batch form at system or session<br />
startup, this could optionally make persistent any<br />
tweaks that would otherwise be non-persistent;<br />
an additional message should be present if there<br />
were undue risk of painting oneself into a corner<br />
by doing that.</p>
<p>Security and privileges should be honored; non-admin<br />
users should only be able to change their own settings, while admin users should where applicable<br />
have a choice of scope.</p>
<p>The only fundamental limitation is that each tweak<br />
should be something that can be adequately validated independently of any others.  Even that could perhaps<br />
be circumvented by validation plugins, that would<br />
only allow certain settings to be changed in<br />
reasonable combination; but then all the value<br />
fields would have to be able to fit onto a single<br />
line in a list view in the GUI; the schema could<br />
accomodate that with the use of appropriate<br />
combinations of dictionaries and arrays.</p>
<p>Ideally, once it was bug-free, there would be<br />
no need for changes to the basic program, only<br />
data maintenance and occasional new plugins.<br />
This mechanism would take advantage of<br />
distributed knowlege; as new tweaks were submitted,<br />
the program would grow ever more capable.  And<br />
since each record had a timestamp, one would<br />
be advised of new tweaks as they were distributed.</p>
<p>Seems to me that 90% of the work would be getting<br />
the schema right; the rest would follow.</p>
<p>The only problem is that either someone pretty<br />
big would have to do it all (if it were commercial),<br />
or the support would have to  be from a large<br />
pool of volunteers (if it were free), because the<br />
support infrastructure really needs to be distributed<br />
for updates to be verified and distributed promptly<br />
and with high availability.</p>
<p>No, I haven&#8217;t used XCode enough (i.e. at all) to<br />
whip out something like that reasonably quickly;<br />
and I don&#8217;t have the time right now to flesh out the<br />
design, and then either learn XCode or do it<br />
the old-fashioned way (Makefiles and hand-coding).<br />
However, I hereby grant a free license to anything<br />
unique I might have mentioned, for anything<br />
distributed free and open source.  Any other rights<br />
are negotiable.</p>
<p>The data acquired by such a tool could also be used<br />
by other tools, that simplified matters by being<br />
&#8220;smart&#8221; about tuning for certain objectives<br />
(performance, choosing look and feel options that<br />
were as much as possible like some prior version,<br />
etc).  Ideally those would also be open as to what<br />
they did, but would not necessarily be free or open<br />
as to their code (even coders have to eat, pizza&amp;beer<br />
isn&#8217;t usually free).</p>
]]></content:encoded>
	</item>
</channel>
</rss>

