<?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>mFabrik - mobile sites, apps, HTML5 and CMS software development &#187; reference</title>
	<atom:link href="http://blog.mfabrik.com/tag/reference/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mfabrik.com</link>
	<description>Freedom delivered.</description>
	<lastBuildDate>Wed, 03 Aug 2011 09:47:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>How do you prefer your documentation?</title>
		<link>http://blog.mfabrik.com/2008/11/22/how-do-you-prefer-your-documentation/</link>
		<comments>http://blog.mfabrik.com/2008/11/22/how-do-you-prefer-your-documentation/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 13:19:43 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[Plone (old)]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[discussion]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[manual]]></category>
		<category><![CDATA[reference]]></category>
		<category><![CDATA[sphinx]]></category>

		<guid isPermaLink="false">http://blog.redinnovation.com/?p=148</guid>
		<description><![CDATA[Lately there have been three long email chains related to Plone development documentation here, here and here (total ~100 messages). This little post tries to summarize the current discussion. I think the dicussion is mostly fueled by third party developers&#8217; frustration with the current development documentation situation. Developing for Plone is difficult, since finding references, [...]]]></description>
			<content:encoded><![CDATA[<p>Lately there have been three long email chains related to Plone development documentation <a href="http://n2.nabble.com/Plone.org-documentation-process-considered-harmful-td1483044.html">here</a>, <a href="http://n2.nabble.com/Plone.org-documentation%3A-first-do-no-harm-td1490526.html">here</a> and <a href="http://n2.nabble.com/Re%3A-If-core-code-is-undocumented-it%27s-broken-%28Was%3A-where-should-developer-documentation-go-%29-td1511898.html">here</a> (total ~100 messages). This little post tries to summarize the current discussion.</p>
<p>I think the dicussion is mostly fueled by third party developers&#8217; frustration with the current development documentation situation. Developing for Plone is difficult, since finding references, how tos and examples for those little things you need is very hard. This is a <a href="http://n2.nabble.com/Re%3A-If-core-code-is-undocumented-it%27s-broken-%28Was%3A-where-should-developer-documentation-go-%29-tp1511898p1564744.html">turn off</a> for many developers who would otherwise use this great system &#8211; high developer learning curve and gaps in the documentation makes the system useless.</p>
<p>Points everyone agree are</p>
<ul>
<li>Plone development documentation is not good</li>
<li>Sphinx is good for API documentation &#8211; already happening</li>
<li><a href="http://n2.nabble.com/user/UserNodes.jtp?user=19441">Contributors are needed</a></li>
</ul>
<p>Points discussed are</p>
<ul>
<li>Should developer documentation be more open ended (Wiki-like). This covers
<ul>
<li>Developer manual</li>
<li>How tos and other misc. references</li>
<li>API documentation</li>
</ul>
</li>
<li>Mostly, it is <strong>not</strong> about generic end user, admin or system integrator or getting started documentation (<a href="http://n2.nabble.com/Re%3A-If-core-code-is-undocumented-it%27s-broken-%28Was%3A-where-should-developer-documentation-go-%29-tp1511898p1516197.html">here</a>, <a href="http://n2.nabble.com/Plone.org-documentation-process-considered-harmful-tp1483044p1484381.html">here</a>)</li>
</ul>
<p>Pro wiki-like documentation stances</p>
<ul>
<li>It should be more open ended (<a href="http://n2.nabble.com/Re%3A-If-core-code-is-undocumented-it%27s-broken-%28Was%3A-where-should-developer-documentation-go-%29-tp1511898p1564610.html">here</a>, <a href="http://n2.nabble.com/Plone.org-documentation-process-considered-harmful-tp1483044p1485470.html">here</a>, <a href="http://n2.nabble.com/Plone.org-documentation-process-considered-harmful-tp1483044p1484381.html">here</a>)</li>
<li>It&#8217;s better to have something messy instead of nothing at all &#8211; the current approval process discourages contribution (<a href="http://plone.org/support/forums/docs">here</a>)</li>
</ul>
<p>Con wiki stances</p>
<ul>
<li>It should not be open ended, since this results to messy documentation (<a href="http://n2.nabble.com/Re%3A-If-core-code-is-undocumented-it%27s-broken-%28Was%3A-where-should-developer-documentation-go-%29-tp1511898p1564102.html">here</a>, <a href="http://n2.nabble.com/Plone.org-documentation-process-considered-harmful-tp1483044p1488603.html">here</a>)</li>
<li>There should be less plone.org documents (<a href="http://n2.nabble.com/Plone.org-documentation-process-considered-harmful-tp1483044p1483985.html">here</a>)</li>
<li>Wikis are bad (<a href="http://n2.nabble.com/Plone.org-documentation%3A-first-do-no-harm-tp1490526p1491276.html">here</a>)</li>
<li>Incomplete wikis are discouraging (<a href="http://n2.nabble.com/Re%3A-If-core-code-is-undocumented-it%27s-broken-%28Was%3A-where-should-developer-documentation-go-%29-tp1511898p1564102.html">here</a>)</li>
</ul>
<p>Let&#8217;s wait and see where this goes.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2008/11/22/how-do-you-prefer-your-documentation/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>MooTools setOptions() nullifies object references</title>
		<link>http://blog.mfabrik.com/2008/08/19/mootools-setoptions-nullifies-object-references/</link>
		<comments>http://blog.mfabrik.com/2008/08/19/mootools-setoptions-nullifies-object-references/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 00:21:08 +0000</pubDate>
		<dc:creator>Tuukka Mustonen</dc:creator>
				<category><![CDATA[debugging]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[solution]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[addressing]]></category>
		<category><![CDATA[merge]]></category>
		<category><![CDATA[object]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[reference]]></category>
		<category><![CDATA[setOptions]]></category>
		<category><![CDATA[ui]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.redinnovation.com/?p=64</guid>
		<description><![CDATA[I bumped up into a problem where the object references where resolved as object copies when I passed them to class instances. That might sound easy to resolve, but unfortunately I was already deep in code and it was difficult to see this. Therefore, here&#8217;s a little explanation for those who are facing the same [...]]]></description>
			<content:encoded><![CDATA[<p>I bumped up into a problem where the object references where resolved as object copies when I passed them to class instances. That might sound easy to resolve, but unfortunately I was already deep in code and it was difficult to see this. Therefore, here&#8217;s a little explanation for those who are facing the same frustrating issue.</p>
<p>Say, you have variable &#8216;a&#8217; and you want to pass it to a MooTools class B instance during creation. In the easiest case you&#8217;d use new B({ myReference: a}) and trust on MooTools&#8217; Class.setOptions() to minify the need of code lines. This is what you should do&#8230; well at least that&#8217;s what I did and in this case it was a mistake.</p>
<p>It turns out that Class.setOptions() merges it&#8217;s arguments to this.options and then takes copy of them via $merge(). That means that any variable references you pass to setOptions() will get copied to this.options and.. well, that&#8217;s it. See lines 1170-1173 in uncompressed version of MooTools 1.2:</p>
<pre>var Options = new Class({
    setOptions: function(){
        this.options = $merge.run([this.options].extend(arguments));</pre>
<p>That effectively nullifies the benefits of Class.setOptions() if you want to pass in variable references..</p>
<p>Here&#8217;s a longer example to clarify (use Firebug):</p>
<pre>  // The most basic MooTools class that implements options
  // ref is a variable meant for pointing at given object
  // (won't do that, however)
  var B = new Class({
    Implements: Options,
    options: {
      ref: null
    },
    initialize: function(options) {
      this.setOptions(options);
    }
  });

  // Ok let's create an instance that we can pass to B
  // It's similar with all sorts of variables
  var A = new Class({
    initialize: function() {
      this.somevar = 'untouched';
    }
  });
  var a = new A();

  // Create an instance of B and give it somevar as reference
  var b = new B({ ref: a });

  // prints out "untouched" as should
  console.log(b.options.ref.somevar);

  // Let's change the variable (direct access, bad)
  a.somevar = "changed";

  // b's reference should still point to a, right?
  // In that case the following should print "changed",
  // but because our reference object was copied instead
  // of retaining reference to it, we just get "untouched"
  console.log(b.options.ref.somevar);</pre>
<p>I don&#8217;t know why MooTools wants to make a copy of arguments in setOptions() &#8211; propably for performance reasons.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2008/08/19/mootools-setoptions-nullifies-object-references/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

