<?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: Adobe Open Source</title>
	<atom:link href="http://mjtsai.com/blog/2005/03/06/adobe-open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://mjtsai.com/blog/2005/03/06/adobe-open-source/</link>
	<description></description>
	<pubDate>Sat, 22 Nov 2008 12:09:00 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Michael</title>
		<link>http://mjtsai.com/blog/2005/03/06/adobe-open-source/#comment-8053</link>
		<dc:creator>Michael</dc:creator>
		<pubDate>Fri, 11 Mar 2005 19:43:50 +0000</pubDate>
		<guid isPermaLink="false">/?p=993#comment-8053</guid>
		<description>Thanks for the information, Sean. I didn't realize that it was easy to use Adam piecemeal. It sounds like a great technology.</description>
		<content:encoded><![CDATA[<p>Thanks for the information, Sean. I didn't realize that it was easy to use Adam piecemeal. It sounds like a great technology.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sean Parent</title>
		<link>http://mjtsai.com/blog/2005/03/06/adobe-open-source/#comment-8052</link>
		<dc:creator>Sean Parent</dc:creator>
		<pubDate>Fri, 11 Mar 2005 19:28:27 +0000</pubDate>
		<guid isPermaLink="false">/?p=993#comment-8052</guid>
		<description>Adam and Eve are pretty light weight (the Adam engine is about 1000 lines of code - Eve is about 1500). They can be used together or independently, with or without the language parsers.  You could use Adam for a single dialog in your UI (or even a piece of a dialog) - you don't have to convert your entire application to use Adam and Eve. The underlying binding mechanism is boost signals - so they are similar to Apple's Cocoa bindings (or Qt, or XAML) - There are several fundamental differences though - Adam is used between the controller and view logic in a UI, Adam can handle inter-related values elegantly (for example, try and write the code for three related numeric entry fields such as 'mass = force * acceleration' - the goal is that the user can enter any two and the third is calculated. This type of relationship is trivial with Adam. Adam tracks the runtime dependencies of all cells. This is used to automatically handle things like control enable/disable states (a checkbox would be disabled if the cell it is attached to isn't considered in the current state, a button would be disabled if the value of it's action is being contributed to by cells that contribute to an invariant). The contributing information is also used for script recording - if you resize an image, you want to record "set current image size to 3 inches wide constraining proportion" even the the application command is "set image size to 300 pixels by 750 pixels" - the information that is recording is the information contributing to the current result. You can use the same Adam model, without the UI attached, to play the script.

I hope that helps to explain what Adam is about -

Thanks for the positive comments.
Sean</description>
		<content:encoded><![CDATA[<p>Adam and Eve are pretty light weight (the Adam engine is about 1000 lines of code - Eve is about 1500). They can be used together or independently, with or without the language parsers.  You could use Adam for a single dialog in your UI (or even a piece of a dialog) - you don't have to convert your entire application to use Adam and Eve. The underlying binding mechanism is boost signals - so they are similar to Apple's Cocoa bindings (or Qt, or XAML) - There are several fundamental differences though - Adam is used between the controller and view logic in a UI, Adam can handle inter-related values elegantly (for example, try and write the code for three related numeric entry fields such as 'mass = force * acceleration' - the goal is that the user can enter any two and the third is calculated. This type of relationship is trivial with Adam. Adam tracks the runtime dependencies of all cells. This is used to automatically handle things like control enable/disable states (a checkbox would be disabled if the cell it is attached to isn't considered in the current state, a button would be disabled if the value of it's action is being contributed to by cells that contribute to an invariant). The contributing information is also used for script recording - if you resize an image, you want to record "set current image size to 3 inches wide constraining proportion" even the the application command is "set image size to 300 pixels by 750 pixels" - the information that is recording is the information contributing to the current result. You can use the same Adam model, without the UI attached, to play the script.</p>
<p>I hope that helps to explain what Adam is about -</p>
<p>Thanks for the positive comments.<br />
Sean</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Henry Maddocks</title>
		<link>http://mjtsai.com/blog/2005/03/06/adobe-open-source/#comment-8050</link>
		<dc:creator>Henry Maddocks</dc:creator>
		<pubDate>Tue, 08 Mar 2005 00:20:18 +0000</pubDate>
		<guid isPermaLink="false">/?p=993#comment-8050</guid>
		<description>From the amount of discussion about bindings on the cocoa mailing list people are having a hard time coping with even small dependency graphs. Of course it's debatable whether Adobe's approach would be any better from that point of view.
QT's signals and slots isn't any better so I think he's kidding himself if he thinks this is an easy problem to solve.</description>
		<content:encoded><![CDATA[<p>From the amount of discussion about bindings on the cocoa mailing list people are having a hard time coping with even small dependency graphs. Of course it's debatable whether Adobe's approach would be any better from that point of view.<br />
QT's signals and slots isn't any better so I think he's kidding himself if he thinks this is an easy problem to solve.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael</title>
		<link>http://mjtsai.com/blog/2005/03/06/adobe-open-source/#comment-8049</link>
		<dc:creator>Michael</dc:creator>
		<pubDate>Sun, 06 Mar 2005 21:28:30 +0000</pubDate>
		<guid isPermaLink="false">/?p=993#comment-8049</guid>
		<description>Bill: I didn't mean to imply that bindings have performance problems; I was thinking about scaling in terms of connecting and comprehending larger and more complex dependency graphs. My guess is that there comes a point where it's nice to have linguistic support for the dependency concepts.</description>
		<content:encoded><![CDATA[<p>Bill: I didn't mean to imply that bindings have performance problems; I was thinking about scaling in terms of connecting and comprehending larger and more complex dependency graphs. My guess is that there comes a point where it's nice to have linguistic support for the dependency concepts.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Bumgarner</title>
		<link>http://mjtsai.com/blog/2005/03/06/adobe-open-source/#comment-8048</link>
		<dc:creator>Bill Bumgarner</dc:creator>
		<pubDate>Sun, 06 Mar 2005 19:37:13 +0000</pubDate>
		<guid isPermaLink="false">/?p=993#comment-8048</guid>
		<description>Bindings are designed to be extremely scalable.   A huge amount of effort has been expended ensuring that the minimum number of notifications and updates are spawned by any given binding related operation.

Bindings are certainly not perfect.   If you do find a performance related issue (or any other issue, for that matter), file a bug!</description>
		<content:encoded><![CDATA[<p>Bindings are designed to be extremely scalable.   A huge amount of effort has been expended ensuring that the minimum number of notifications and updates are spawned by any given binding related operation.</p>
<p>Bindings are certainly not perfect.   If you do find a performance related issue (or any other issue, for that matter), file a bug!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
