<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-5274051535398117366.post7582283290830477144..comments</id><updated>2011-11-18T00:09:35.451-08:00</updated><category term='Python'/><category term='node.js'/><category term='streamie'/><category term='UniversalComet'/><category term='packaging'/><category term='Performance'/><category term='Trackback'/><category term='Attribute Meta Classes'/><category term='Release'/><category term='Cookbook'/><category term='Augment'/><category term='Ext'/><category term='VisualWorks'/><category term='JSCloud'/><category term='Method Modifiers'/><category term='jsonpickle'/><category term='PureMVC'/><category term='Roles'/><category term='Types'/><category term='Testing'/><category term='Joose'/><category term='jsconf'/><category term='Rhino'/><category term='Presentation'/><category term='Documentation'/><category term='Traits'/><category term='HttpRequest'/><category term='JSON'/><category term='Google Gears'/><category term='joosify'/><category term='Offtopic'/><category term='WebWorkers'/><category term='CPAN'/><category term='Logo'/><category term='HTML5'/><category term='database'/><category term='Builder'/><category term='because-you-can'/><category term='speed'/><category term='promotejs'/><category term='jscomp'/><category term='jQuery'/><category term='google gadget api'/><category term='personal'/><category term='JScript .NET'/><category term='WebSocket'/><category term='Profiling'/><category term='OR-Mapper'/><category term='#bchh08'/><category term='NoFlash'/><category term='permanize'/><category term='Joosification'/><category term='widgets'/><category term='Google App Engine'/><category term='PMWA'/><category term='CouchDB'/><category term='Prototypes'/><category term='Omniture'/><category term='Type Coercions'/><category term='recipe'/><category term='Example'/><category term='blok'/><category term='HTML'/><category term='Joose.Storage'/><category term='Trivia'/><category term='bespin'/><category term='JavaScript'/><category term='Exceptions'/><category term='JooseX'/><category term='Old-Style-Interface'/><category term='Meta Classes'/><category term='Block'/><category term='svn'/><category term='Moose'/><title type='text'>Comments on NonBlocking.io - Malte Ubl's Asynchronous Identity Disorder: The jQuery module anti-pattern</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.nonblocking.io/feeds/7582283290830477144/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5274051535398117366/7582283290830477144/comments/default'/><link rel='alternate' type='text/html' href='http://www.nonblocking.io/2011/04/jquery-module-anti-pattern.html'/><author><name>Malte Ubl</name><uri>https://profiles.google.com/116910304844117268718</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-tQJAx2-8rqE/AAAAAAAAAAI/AAAAAAAAEhc/T74iWhwXXf0/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5274051535398117366.post-6638862889299602364</id><published>2011-04-13T01:51:37.183-07:00</published><updated>2011-04-13T01:51:37.183-07:00</updated><title type='text'>@Kris Zyp

Stoked to hear dojo is moving towards A...</title><content type='html'>@Kris Zyp&lt;br /&gt;&lt;br /&gt;Stoked to hear dojo is moving towards AMD, will be awesome to grab only the parts that are needed, and to debug readable code instead of aggregated and minified mumbo-jumbo :)&lt;br /&gt;&lt;br /&gt;Big actors populating the js ecosystem with kick-ass AMD modules is a great push for the rest of the community to move in the same direction, and standardizing over something like this will be *massively* benificial.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5274051535398117366/7582283290830477144/comments/default/6638862889299602364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5274051535398117366/7582283290830477144/comments/default/6638862889299602364'/><link rel='alternate' type='text/html' href='http://www.nonblocking.io/2011/04/jquery-module-anti-pattern.html?showComment=1302684697183#c6638862889299602364' title=''/><author><name>Jacob</name><uri>http://www.blogger.com/profile/04639086251529116236</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.nonblocking.io/2011/04/jquery-module-anti-pattern.html' ref='tag:blogger.com,1999:blog-5274051535398117366.post-7582283290830477144' source='http://www.blogger.com/feeds/5274051535398117366/posts/default/7582283290830477144' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2002847271'/></entry><entry><id>tag:blogger.com,1999:blog-5274051535398117366.post-6078920466081965509</id><published>2011-04-11T09:28:06.865-07:00</published><updated>2011-04-11T09:28:06.865-07:00</updated><title type='text'>@Jake:
jQuery UI is a collection of anti-patterns ...</title><content type='html'>@Jake:&lt;br /&gt;jQuery UI is a collection of anti-patterns by itself. It&amp;#39;s not limited to .slider(), it&amp;#39;s the entire API. Like the &amp;#39;option&amp;#39; magic parameter that&amp;#39;s used for dirty function overload.&lt;br /&gt;&lt;br /&gt;As for modular stuff, ever tried with MooTools? :) you don&amp;#39;t need to plug completely unrelated micro-frameworks when you already have a framework that can be chopped in parts and only include what you will need (in essence, each MooTools module is a micro-framework).</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5274051535398117366/7582283290830477144/comments/default/6078920466081965509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5274051535398117366/7582283290830477144/comments/default/6078920466081965509'/><link rel='alternate' type='text/html' href='http://www.nonblocking.io/2011/04/jquery-module-anti-pattern.html?showComment=1302539286865#c6078920466081965509' title=''/><author><name>gonchuki</name><uri>http://www.blogger.com/profile/14469404516872613448</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.nonblocking.io/2011/04/jquery-module-anti-pattern.html' ref='tag:blogger.com,1999:blog-5274051535398117366.post-7582283290830477144' source='http://www.blogger.com/feeds/5274051535398117366/posts/default/7582283290830477144' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-700669164'/></entry><entry><id>tag:blogger.com,1999:blog-5274051535398117366.post-2987966108828025875</id><published>2011-04-11T01:39:48.646-07:00</published><updated>2011-04-11T01:39:48.646-07:00</updated><title type='text'>Agreed. I think this blurring of DOM/not DOM is go...</title><content type='html'>Agreed. I think this blurring of DOM/not DOM is going to cause big problems eventually.&lt;br /&gt;&lt;br /&gt;Eg, when jQuery UI&amp;#39;s Slider triggers a &amp;#39;slide&amp;#39; event, it also tries to call node.slide() on the element (see the docs for jQuery.fn.trigger). This means if the W3 ever define a method on an HTMLElement called &amp;#39;slide&amp;#39; things are going to get a bit breaky. This wouldn&amp;#39;t happen if the &amp;#39;slide&amp;#39; event was triggered on a slider instance that wasn&amp;#39;t also an HTMLElement.&lt;br /&gt;&lt;br /&gt;Another anti-pattern is using string parameters instead of function names, eg $dialog.dialog(&amp;#39;open&amp;#39;) rather than dialog.open(). The former fails silently if the method name is misspelled and shares a namespace with $dialog.show() which behaves confusingly differently.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5274051535398117366/7582283290830477144/comments/default/2987966108828025875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5274051535398117366/7582283290830477144/comments/default/2987966108828025875'/><link rel='alternate' type='text/html' href='http://www.nonblocking.io/2011/04/jquery-module-anti-pattern.html?showComment=1302511188646#c2987966108828025875' title=''/><author><name>Jake Archibald</name><uri>http://www.blogger.com/profile/04599856665408765772</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.nonblocking.io/2011/04/jquery-module-anti-pattern.html' ref='tag:blogger.com,1999:blog-5274051535398117366.post-7582283290830477144' source='http://www.blogger.com/feeds/5274051535398117366/posts/default/7582283290830477144' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1695907352'/></entry><entry><id>tag:blogger.com,1999:blog-5274051535398117366.post-1037689603924713854</id><published>2011-04-11T00:36:46.283-07:00</published><updated>2011-04-11T00:36:46.283-07:00</updated><title type='text'>jQuery.fn === jQuery.prototype 

Thank you jQuery ...</title><content type='html'>jQuery.fn === jQuery.prototype &lt;br /&gt;&lt;br /&gt;Thank you jQuery for obscuring that fact to many people &amp;gt;.&amp;lt;&lt;br /&gt;&lt;br /&gt;That is all.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5274051535398117366/7582283290830477144/comments/default/1037689603924713854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5274051535398117366/7582283290830477144/comments/default/1037689603924713854'/><link rel='alternate' type='text/html' href='http://www.nonblocking.io/2011/04/jquery-module-anti-pattern.html?showComment=1302507406283#c1037689603924713854' title=''/><author><name>Peter van der Zee</name><uri>http://qfox.nl</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.nonblocking.io/2011/04/jquery-module-anti-pattern.html' ref='tag:blogger.com,1999:blog-5274051535398117366.post-7582283290830477144' source='http://www.blogger.com/feeds/5274051535398117366/posts/default/7582283290830477144' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2114594296'/></entry><entry><id>tag:blogger.com,1999:blog-5274051535398117366.post-2149634691039052199</id><published>2011-04-10T14:32:55.536-07:00</published><updated>2011-04-10T14:32:55.536-07:00</updated><title type='text'>Yes, and very excited about that! But which loader...</title><content type='html'>Yes, and very excited about that! But which loader are we going to use in the future and is that going to matter?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5274051535398117366/7582283290830477144/comments/default/2149634691039052199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5274051535398117366/7582283290830477144/comments/default/2149634691039052199'/><link rel='alternate' type='text/html' href='http://www.nonblocking.io/2011/04/jquery-module-anti-pattern.html?showComment=1302471175536#c2149634691039052199' title=''/><author><name>evilhackerdude</name><uri>http://www.blogger.com/profile/02100678919569450493</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.nonblocking.io/2011/04/jquery-module-anti-pattern.html' ref='tag:blogger.com,1999:blog-5274051535398117366.post-7582283290830477144' source='http://www.blogger.com/feeds/5274051535398117366/posts/default/7582283290830477144' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-323257889'/></entry><entry><id>tag:blogger.com,1999:blog-5274051535398117366.post-322587921178963032</id><published>2011-04-10T14:29:00.086-07:00</published><updated>2011-04-10T14:29:00.086-07:00</updated><title type='text'>@evilhackerdude, you may already be aware of the r...</title><content type='html'>@evilhackerdude, you may already be aware of the recent changes in Dojo, but 1.6, we switched to AMD format to allow for decoupling of modules from any Dojo-specific environment, and in 1.7 we will breaking the core into sub modules that can be used completely independently of &amp;quot;base&amp;quot; dojo. Hopefully this another step towards a more modular, pluggable future.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5274051535398117366/7582283290830477144/comments/default/322587921178963032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5274051535398117366/7582283290830477144/comments/default/322587921178963032'/><link rel='alternate' type='text/html' href='http://www.nonblocking.io/2011/04/jquery-module-anti-pattern.html?showComment=1302470940086#c322587921178963032' title=''/><author><name>Kris Zyp</name><uri>http://www.blogger.com/profile/10627088738984039166</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.nonblocking.io/2011/04/jquery-module-anti-pattern.html' ref='tag:blogger.com,1999:blog-5274051535398117366.post-7582283290830477144' source='http://www.blogger.com/feeds/5274051535398117366/posts/default/7582283290830477144' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2026093660'/></entry><entry><id>tag:blogger.com,1999:blog-5274051535398117366.post-6621474845035347836</id><published>2011-04-10T13:37:51.961-07:00</published><updated>2011-04-10T13:37:51.961-07:00</updated><title type='text'>tl;dr: jQuery’s ”special” ways makes it very hard ...</title><content type='html'>tl;dr: jQuery’s ”special” ways makes it very hard to use anything but jQuery.&lt;br /&gt;&lt;br /&gt;Most modules and plugins don’t even depend on any given library’s functions BUT on the naming and the behaviour dictated by the library.&lt;br /&gt;&lt;br /&gt;Today’s libraries force plugin code to presume that, i.e., the qsa function is $, dojo.query or Y.all. They also must presume that the qsa function might return a nodelist instead of a node – with certain library functions defined in the nodelist prototype by the library (chainability).&lt;br /&gt;&lt;br /&gt;This leads to closed module/plugin ecosystems which can only work with the library they’re based upon or even namespaced in.&lt;br /&gt;&lt;br /&gt;I would like to see a movement towards smaller libraries with smaller components. What if I really only wanted a good selector engine (i.e. dojo) and a bunch of insanely great fp-inspired functions (underscore)?&lt;br /&gt;&lt;br /&gt;For one it’ll need a good loader which uses lexical scope to keep conflicts and dependencies in check.&lt;br /&gt;&lt;br /&gt;require([&lt;br /&gt;  &amp;#39;dojo/qsa&amp;#39;,&lt;br /&gt;  &amp;#39;underscore/array/map&amp;#39;,&lt;br /&gt;  &amp;#39;underscore/object/keys&amp;#39;&lt;br /&gt;]), function(query, map, keys){&lt;br /&gt;  // finally, a clean window.&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;We’ll also need libraries which advertise their plugability. Not to win a popularity contest but as a clear message to its users and its maintainers.&lt;br /&gt;&lt;br /&gt;Please, we need to go there.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5274051535398117366/7582283290830477144/comments/default/6621474845035347836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5274051535398117366/7582283290830477144/comments/default/6621474845035347836'/><link rel='alternate' type='text/html' href='http://www.nonblocking.io/2011/04/jquery-module-anti-pattern.html?showComment=1302467871961#c6621474845035347836' title=''/><author><name>evilhackerdude</name><uri>http://www.blogger.com/profile/02100678919569450493</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.nonblocking.io/2011/04/jquery-module-anti-pattern.html' ref='tag:blogger.com,1999:blog-5274051535398117366.post-7582283290830477144' source='http://www.blogger.com/feeds/5274051535398117366/posts/default/7582283290830477144' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-323257889'/></entry></feed>
