<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><description>Principal Engineer, Platform at ExactTarget.  Maintains Fuel UX and guides architecture of API services, UI components, and auth processes for Fuel Platform.</description><title>Adam on the Net</title><generator>Tumblr (3.0; @adamalex)</generator><link>http://www.adamalexander.net/</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/AdamOnTheNet" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="adamonthenet" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://tumblr.superfeedr.com/" /><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FAdamOnTheNet" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FAdamOnTheNet" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FAdamOnTheNet" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bloglines.com/sub/http://feeds.feedburner.com/AdamOnTheNet" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FAdamOnTheNet" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FAdamOnTheNet" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FAdamOnTheNet" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item><title>"Structure is emergent, not primary. When we set out to build a structure, and then fill it in, it’s..."</title><description>“Structure is emergent, not primary. When we set out to build a structure, and then fill it in, it’s not just that we will build the wrong thing, it’s that we won’t notice we’ve built the wrong thing until too late, and won’t be able to easily fix it.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://blog.izs.me/post/33829864983/escaping-captivity-social-apes-making-software-in-the"&gt;http://blog.izs.me/post/33829864983/escaping-captivity-social-apes-making-software-in-the&lt;/a&gt;&lt;/em&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AdamOnTheNet?a=9ciPuXBMKE0:TryM9NMo2e8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamOnTheNet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AdamOnTheNet?a=9ciPuXBMKE0:TryM9NMo2e8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamOnTheNet?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AdamOnTheNet?a=9ciPuXBMKE0:TryM9NMo2e8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamOnTheNet?i=9ciPuXBMKE0:TryM9NMo2e8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://www.adamalexander.net/post/33908738475</link><guid>http://www.adamalexander.net/post/33908738475</guid><pubDate>Fri, 19 Oct 2012 16:03:44 -0400</pubDate></item><item><title>Using promises for clean asynchronous logic</title><description>&lt;p&gt;Awareness of the &lt;a href="http://wiki.commonjs.org/wiki/Promises/A"&gt;Promises&lt;/a&gt; pattern has steadily increased since &lt;a href="http://api.jquery.com/category/deferred-object"&gt;Deferreds&lt;/a&gt; were introduced into jQuery last year.  I was impressed with this informative read by &lt;a href="https://twitter.com/hallettj"&gt;Jesse Hallett&lt;/a&gt; which starts with the basics then continues with a step-by-step example of using small asynchronous flows as components for building more complex ones.  The example&amp;#8217;s subject matter is easily recognized by any frontend developer who has struggled with logic to coordinate multiple interrelated AJAX requests in a fault-tolerant way.  The result from leveraging deferreds and promises is much simpler and safer than before.&lt;/p&gt;
&lt;p&gt;Moving on, Jesse presents a function called flatMap which is able to generalize sequential operations in the same way &lt;a href="http://api.jquery.com/jQuery.when"&gt;$.when&lt;/a&gt; generalizes parallel ones.  As pointed out later, &lt;a href="http://api.jquery.com/deferred.pipe"&gt;$.pipe&lt;/a&gt; provides much the same functionality as flatMap, but watching flatMap implemented as a step-by-step refactoring of the example code from the post provides increased understanding of why this pattern is useful and how it can be used.  Article:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;&lt;a href="http://sitr.us/2012/07/31/promise-pipelines-in-javascript.html"&gt;Promise Pipelines in JavaScript&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AdamOnTheNet?a=D59_mf9ffWg:UY_lhtOOA2A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamOnTheNet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AdamOnTheNet?a=D59_mf9ffWg:UY_lhtOOA2A:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamOnTheNet?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AdamOnTheNet?a=D59_mf9ffWg:UY_lhtOOA2A:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamOnTheNet?i=D59_mf9ffWg:UY_lhtOOA2A:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://www.adamalexander.net/post/28731571350</link><guid>http://www.adamalexander.net/post/28731571350</guid><pubDate>Sat, 04 Aug 2012 20:55:13 -0400</pubDate></item><item><title>Functional JavaScript mixins with Advice</title><description>&lt;p&gt;The following presentation contains some awesomeness that goes beyond the title - &lt;em&gt;&lt;a href="https://speakerdeck.com/u/anguscroll/p/how-we-learned-to-stop-worrying-and-love-javascript"&gt;How we Learned to Stop Worrying and Love JavaScript&lt;/a&gt; -&lt;/em&gt; presented by &lt;a href="https://twitter.com/#!/danwrong/"&gt;@danwrong&lt;/a&gt; and &lt;a href="https://twitter.com/#!/angustweets/"&gt;@angustweets&lt;/a&gt; at &lt;a href="http://fluentconf.com/fluent2012"&gt;Fluent 2012&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Prototypal inheritance, classical inheritance, and simple property mixins are all discussed along with some of their drawbacks.  Then, an innovative pattern is presented for implementing functional JavaScript mixins including the notion of &lt;a href="http://en.wikipedia.org/wiki/Advice_in_aspect-oriented_programming"&gt;Advice&lt;/a&gt;, allowing mixins to augment - rather than clobber - each other.&lt;/p&gt;
&lt;p&gt;I see this type of approach as useful in place of most types of inheritance, especially for implementing a plugin system into a larger library, and plan to give it a try the next time I need something similar.  Innovative work, Twitter guys.  Presentation link:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;a href="https://speakerdeck.com/u/anguscroll/p/how-we-learned-to-stop-worrying-and-love-javascript"&gt;How we Learned to Stop Worrying and Love JavaScript&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AdamOnTheNet?a=_KfqI3M67cQ:ypk-f7At5Hk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamOnTheNet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AdamOnTheNet?a=_KfqI3M67cQ:ypk-f7At5Hk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamOnTheNet?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AdamOnTheNet?a=_KfqI3M67cQ:ypk-f7At5Hk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamOnTheNet?i=_KfqI3M67cQ:ypk-f7At5Hk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://www.adamalexander.net/post/24425561757</link><guid>http://www.adamalexander.net/post/24425561757</guid><pubDate>Mon, 04 Jun 2012 17:45:38 -0400</pubDate></item><item><title>Command Line Tools for Xcode</title><description>&lt;a href="https://developer.apple.com/downloads/index.action"&gt;Command Line Tools for Xcode&lt;/a&gt;: &lt;p&gt;&lt;a class="tumblr_blog" href="http://onethingwell.org/post/24127151427/command-line-tools-for-xcode"&gt;onethingwell&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;This package enables UNIX-style development via Terminal by installing command line developer tools, as well as Mac OS X SDK frameworks and headers. Many useful tools are included, such as the Apple LLVM compiler, linker, and Make.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Apple’s official version of the &lt;a href="http://onethingwell.org/post/23994485346/osx-gcc-installer"&gt;OS X GCC Installer&lt;/a&gt; I mentioned the other day.&lt;/p&gt;
&lt;p&gt;Interestingly, Apple were &lt;a href="http://kennethreitz.com/xcode-gcc-and-homebrew.html"&gt;directly inspired by&lt;/a&gt; the OS X GCC Installer project and worked with the developer to ensure their tools would work with &lt;a href="http://onethingwell.org/post/595179596/homebrew"&gt;Homebrew&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Thanks, Jason!&lt;/small&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AdamOnTheNet?a=PQk5tQbGhXM:rb5-7UhCYOQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamOnTheNet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AdamOnTheNet?a=PQk5tQbGhXM:rb5-7UhCYOQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamOnTheNet?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AdamOnTheNet?a=PQk5tQbGhXM:rb5-7UhCYOQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamOnTheNet?i=PQk5tQbGhXM:rb5-7UhCYOQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://www.adamalexander.net/post/24370650949</link><guid>http://www.adamalexander.net/post/24370650949</guid><pubDate>Sun, 03 Jun 2012 20:42:36 -0400</pubDate></item><item><title>Clean slate</title><description>&lt;p&gt;My previous blog was a custom solution I wrote using Ruby on Rails.  It was a good learning experience, but due to my busy schedule it contained only some old announcements that may have been interesting 2 to 3 years ago when they were written along with some long-outdated technical writing.  To simplify, and maybe gain a little more time for sharing some thoughts here, I am starting over with this tumblelog.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/AdamOnTheNet?a=Zn80plmyO_s:Wyz5ENzToXA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamOnTheNet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AdamOnTheNet?a=Zn80plmyO_s:Wyz5ENzToXA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamOnTheNet?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/AdamOnTheNet?a=Zn80plmyO_s:Wyz5ENzToXA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/AdamOnTheNet?i=Zn80plmyO_s:Wyz5ENzToXA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><link>http://www.adamalexander.net/post/24356765154</link><guid>http://www.adamalexander.net/post/24356765154</guid><pubDate>Sun, 03 Jun 2012 17:19:00 -0400</pubDate></item></channel></rss>
