<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Disqus - Latest Comments for joelhooks</title><link>http://disqus.com/by/joelhooks/</link><description></description><atom:link href="http://disqus.com/joelhooks/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Thu, 22 Aug 2013 09:23:27 -0000</lastBuildDate><item><title>Re: Flex Date and Time (datetime) Picker Control</title><link>http://joelhooks.com/2008/10/11/flex-date-and-time-datetime-picker-control/#comment-1013174526</link><description>&lt;p&gt;Hey Pablo, glad it was useful. This one is officially a "classic" lol&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Thu, 22 Aug 2013 09:23:27 -0000</pubDate></item><item><title>Re: Lessons Learned: A Year with a Large AngularJS Project</title><link>http://joelhooks.com/blog/2013/05/22/lessons-learned-kicking-off-an-angularjs-project/#comment-905926079</link><description>&lt;p&gt;We use "VOs" and wrap them in Models RL style. For non-singleton models we use providers to logic out what is being requested. This is for a "user with multiple accounts" situation, where each account is a context. It is a bit cumbersome, actually, but works.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Thu, 23 May 2013 11:58:24 -0000</pubDate></item><item><title>Re: Lessons Learned: A Year with a Large AngularJS Project</title><link>http://joelhooks.com/blog/2013/05/22/lessons-learned-kicking-off-an-angularjs-project/#comment-905924667</link><description>&lt;p&gt;We actually use a Node proxy in between the real services. It has been a huge help, and I plan to write that up next. No shared models though.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Thu, 23 May 2013 11:56:53 -0000</pubDate></item><item><title>Re: 5 Essential VIM Plugins</title><link>http://joelhooks.com/blog/2013/04/23/5-essential-vim-plugins/#comment-893440717</link><description>&lt;p&gt;Prostyle! Great tip man, thanks.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Sat, 11 May 2013 19:13:40 -0000</pubDate></item><item><title>Re: A rose by any other name?</title><link>http://joelhooks.com/blog/2013/04/26/a-rose-by-any-other-name/#comment-877046253</link><description>&lt;p&gt;lol, I sent the email kind ;)&lt;/p&gt;&lt;p&gt;What I'd &lt;b&gt;like&lt;/b&gt; to do is spend an hour pair programming with Rob. Don't know if it is something he'd be in to, but voice+code seems like the appropriate medium.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Fri, 26 Apr 2013 14:35:41 -0000</pubDate></item><item><title>Re: 5 Essential VIM Plugins</title><link>http://joelhooks.com/blog/2013/04/23/5-essential-vim-plugins/#comment-876815946</link><description>&lt;p&gt;Ya, that has been suggested &lt;b&gt;several&lt;/b&gt; times. I was actually wanting this functionality while adding links to blog posts. Definitely on my list to check out.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Fri, 26 Apr 2013 09:39:21 -0000</pubDate></item><item><title>Re: A rose by any other name?</title><link>http://joelhooks.com/blog/2013/04/26/a-rose-by-any-other-name/#comment-876808554</link><description>&lt;p&gt;It was rash. I probably missed an opportunity to build a respectful relationship.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Fri, 26 Apr 2013 09:29:01 -0000</pubDate></item><item><title>Re: Modeling Data and State in Your AngularJS Application</title><link>http://joelhooks.com/blog/2013/04/24/modeling-data-and-state-in-your-angularjs-application/#comment-876195575</link><description>&lt;p&gt;It is like I am speaking Spanish and you are speaking Italian. I run with a smart crowd of talented developers, and we've generally had a difficult time interpreting. So, I don't know where the disconnect is. I'm fairly confident in my patterns and definitions, if not so much the implementation.&lt;/p&gt;&lt;p&gt;I genuinely appreciate your input, but there is a certain rigidity that makes me want to leave this conversation as it is.&lt;/p&gt;&lt;p&gt;Proxy: provide a surrogate or placeholder for another object to control access to it.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Thu, 25 Apr 2013 23:58:18 -0000</pubDate></item><item><title>Re: Modeling Data and State in Your AngularJS Application</title><link>http://joelhooks.com/blog/2013/04/24/modeling-data-and-state-in-your-angularjs-application/#comment-875844186</link><description>&lt;p&gt;I enjoyed your post and you've given me a lot to noodle on. I &lt;b&gt;know&lt;/b&gt; what I've described works in practice, at scale...&lt;/p&gt;&lt;p&gt;That doesn't mean it is presented correctly or that the terminology can't be "hardened" to support more understanding.&lt;/p&gt;&lt;p&gt;Cheers.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Thu, 25 Apr 2013 18:14:10 -0000</pubDate></item><item><title>Re: It's Tiny. One Week Developing With an 11" MacBook Air</title><link>http://joelhooks.com/blog/2013/04/18/a-tiny-review-one-week-with-an-11-macbook-air-for-software-development/#comment-875837951</link><description>&lt;p&gt;my font sizes are age appropriate! ;P&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Thu, 25 Apr 2013 18:09:04 -0000</pubDate></item><item><title>Re: Modeling Data and State in Your AngularJS Application</title><link>http://joelhooks.com/blog/2013/04/24/modeling-data-and-state-in-your-angularjs-application/#comment-875704280</link><description>&lt;p&gt;A persistent cart actually does have identity in some systems. I have proof!&lt;/p&gt;&lt;p&gt;The only anti-pattern I called out was using models as event &lt;b&gt;listeners&lt;/b&gt;. I'd clarify, but I don't really understand the question.&lt;/p&gt;&lt;p&gt;My model is definitely acting as a proxy for the data. It's list supplied to it via another entity (when it isn't hard coded in a silly example)&lt;/p&gt;&lt;p&gt;In terms of notification and the $scope being the ultimate middleman for the view... it's angular and the $scope is the view, as far as the application layer is concerned. It's being used as an (effective) event bus. Of course angular binding obviates the need for that in a lot of cases. The notification is delivered by the $scope, but definitely originates from the model. It is likely too much scaffolding when binding does the same thing without boilerplate.&lt;/p&gt;&lt;p&gt;This approach to modeling works and greatly improves life on a large application. I feel as though this is mostly a semantic discussion, but I can assure you I'm not just pulling this out of my rear. I've seen it in action. I like to "call things what they are" but the multitude of definitions around any given term make this sort of conversation inevitable and frustrating.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Thu, 25 Apr 2013 16:02:41 -0000</pubDate></item><item><title>Re: Modeling Data and State in Your AngularJS Application</title><link>http://joelhooks.com/blog/2013/04/24/modeling-data-and-state-in-your-angularjs-application/#comment-875675525</link><description>&lt;p&gt;A shopping cart model most certainly has "contents" containing n products. Customers and products are logic-less value objects. What you describe as a model (Author) is simply a value object as well.&lt;/p&gt;&lt;p&gt;By my definition, models and services are essentially the same thing. I draw the semantic difference as way to separate/encapsulate the storage and manipulation of value objects from asynchronous requests to external services. They could be one and the same, if you were willing to add that distinction.&lt;/p&gt;&lt;p&gt;Another way to look at these is as proxies. A model proxies data, while a service proxies external resources at the very edge boundaries of the application.&lt;/p&gt;&lt;p&gt;&lt;i&gt;A model notifies its associated views and controllers when there has been a change in its state. This notification allows the views to produce updated output, and the controllers to change the available set of commands. A passive implementation of MVC omits these notifications, because the application does not require them or the software platform does not support them.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;from wikipedia &lt;a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller" rel="nofollow noopener" target="_blank" title="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller"&gt;http://en.wikipedia.org/wik...&lt;/a&gt;&lt;/p&gt;&lt;p&gt;This is the definition of model that I use. It is perhaps too general of a word? Models hold state and inform the application when it has changed. Models contain domain logic for manipulating value objects that they proxy for. Services represent the final boundary of the application and proxy external dependencies.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Thu, 25 Apr 2013 15:26:10 -0000</pubDate></item><item><title>Re: 5 Essential VIM Plugins</title><link>http://joelhooks.com/blog/2013/04/23/5-essential-vim-plugins/#comment-873698074</link><description>&lt;p&gt;Wow, so nice and clean without any cruft. This is the first time I've seen Fresh. Cheers!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Tue, 23 Apr 2013 19:14:38 -0000</pubDate></item><item><title>Re: 5 Essential VIM Plugins</title><link>http://joelhooks.com/blog/2013/04/23/5-essential-vim-plugins/#comment-873556159</link><description>&lt;p&gt;Ya, NERDTree is very nice to have, but ctrlp is outrageously handy. I will check out your plugin. Thanks!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Tue, 23 Apr 2013 16:11:31 -0000</pubDate></item><item><title>Re: It's Tiny. One Week Developing With an 11" MacBook Air</title><link>http://joelhooks.com/blog/2013/04/18/a-tiny-review-one-week-with-an-11-macbook-air-for-software-development/#comment-867798197</link><description>&lt;p&gt;for VIM I mapped to `C-c` and it is a decent replacement. It is actually kind of nicer than `&amp;lt;esc&amp;gt;` in terms of ergonomics&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Fri, 19 Apr 2013 00:49:38 -0000</pubDate></item><item><title>Re: On Transitioning to JavaScript From AS3/Flex</title><link>http://joelhooks.com/blog/2012/08/27/on-transitioning-to-javascript-from-as3-slash-flex/#comment-676325980</link><description>&lt;p&gt;Transitioning is correct term for me. I've never done JS development. My experience thus far shows a promising road ahead. I'm not trying to code 2003 DHTML ;)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Mon, 08 Oct 2012 12:36:30 -0000</pubDate></item><item><title>Re: Practical Object Oriented Design is Excellent - @jhooks</title><link>http://joelhooks.com/blog/2012/08/28/practical-object-oriented-design-in-ruby-is-a-really-good-book/#comment-645821862</link><description>&lt;p&gt;Throw in some Art of Unit Testing, and you have a trifecta of kickass.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Mon, 10 Sep 2012 10:02:14 -0000</pubDate></item><item><title>Re: On Transitioning to JavaScript From AS3/Flex</title><link>http://joelhooks.com/blog/2012/08/27/on-transitioning-to-javascript-from-as3-slash-flex/#comment-633253949</link><description>&lt;p&gt;If you're into testing, &lt;a href="https://github.com/mattfysh/testr.js" rel="nofollow noopener" target="_blank" title="https://github.com/mattfysh/testr.js"&gt;testr.js &lt;/a&gt; is wicked cool for dealing with requirejs in your tests (which can be super griefy)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Wed, 29 Aug 2012 11:56:39 -0000</pubDate></item><item><title>Re: On Transitioning to JavaScript From AS3/Flex</title><link>http://joelhooks.com/blog/2012/08/27/on-transitioning-to-javascript-from-as3-slash-flex/#comment-631928705</link><description>&lt;p&gt;It might be ignorance @twitter-130929838, but we had some internal behavior we wanted to modify and it was difficult. It'd be the equivalent of replacing the MediatorMap in Robotlegs at runtime.&lt;/p&gt;&lt;p&gt;General usage I like Angular a lot. Well structured with clean DI.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Tue, 28 Aug 2012 09:04:15 -0000</pubDate></item><item><title>Re: On Transitioning to JavaScript From AS3/Flex</title><link>http://joelhooks.com/blog/2012/08/27/on-transitioning-to-javascript-from-as3-slash-flex/#comment-631048827</link><description>&lt;p&gt;I was at a stand still, spinning my wheels, for a long time with JS. When I finally got some traction (via a real project), it really helped. It is part of the "beauty" of JavaScript. You can essentially do whatever you want. This is also the curse of JavaScript. It requires an agreement up front as to what standards are going to be followed on a given project; backed up with rigorous code review.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Mon, 27 Aug 2012 14:15:01 -0000</pubDate></item><item><title>Re: On Transitioning to JavaScript From AS3/Flex</title><link>http://joelhooks.com/blog/2012/08/27/on-transitioning-to-javascript-from-as3-slash-flex/#comment-631044625</link><description>&lt;p&gt;I love Ruby, and Rails. Mostly for the same reasons I like JavaScript. The community has a lot of depth.&lt;/p&gt;&lt;p&gt;Having made principles and practices my focus from the start makes such a huge difference. My gut tells me that what I have learned can be applied across any platform and beyond. I'm often amazed at how these concepts apply to other systems outside of computers.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Mon, 27 Aug 2012 14:11:05 -0000</pubDate></item><item><title>Re: On Transitioning to JavaScript From AS3/Flex</title><link>http://joelhooks.com/blog/2012/08/27/on-transitioning-to-javascript-from-as3-slash-flex/#comment-631041837</link><description>&lt;p&gt;I've enjoyed AngularJS quite a bit, though it does have its sticky points. If I was to start a project fresh, I'd lobby fairly hard for Backbone, as you nailed it, Angular falls short in the flexibility department. It is well sealed, with very few internal extension points that I can see.&lt;/p&gt;&lt;p&gt;If I was to choose one thing about AS3 I miss, it would be Robotlegs.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Mon, 27 Aug 2012 14:08:20 -0000</pubDate></item><item><title>Re: Fresh Start: Migrating from Wordpress to Octopress - Joel Hooks</title><link>http://joelhooks.com/blog/2012/07/25/fresh-start-migrating-wordpress-octopress/#comment-607396060</link><description>&lt;p&gt;I've "buried" them. I probably need to generate an index of some sort, but really I was trying to preserve existing links from searches and other sites.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Thu, 02 Aug 2012 09:14:22 -0000</pubDate></item><item><title>Re: An Introduction to Robotlegs AS3 Part 1: Context and Mediators</title><link>http://joelhooks.com/2011/03/12/an-introduction-to-robotlegs-as3-part-1-context-and-mediators/#comment-453444649</link><description>&lt;p&gt;Injections occur externally. The Injector has no access to private member variables. I know some folks that have done interesting byte code manipulations to make it possible, but with RL, that isn't the case. &lt;br&gt;--&lt;br&gt;Joel&lt;br&gt;817.675.6031 m&lt;br&gt;@jhooks (&lt;a href="https://twitter.com/#!/jhooks)" rel="nofollow noopener" target="_blank" title="https://twitter.com/#!/jhooks)"&gt;https://twitter.com/#!/jhooks)&lt;/a&gt;&lt;br&gt;&lt;a href="http://joelhooks.com" rel="nofollow noopener" target="_blank" title="http://joelhooks.com"&gt;http://joelhooks.com&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Thu, 01 Mar 2012 10:40:48 -0000</pubDate></item><item><title>Re: Robotlegs 2 (beta): Flickr Image Gallery</title><link>http://joelhooks.com/2011/12/29/robotlegs-2-beta-flickr-image-gallery/#comment-427338558</link><description>&lt;p&gt;I don't think so. I can't investigate until this weekend. You can ask on the &lt;a href="http://knowledge.robotlegs.org" rel="nofollow noopener" target="_blank" title="http://knowledge.robotlegs.org"&gt;http://knowledge.robotlegs.org&lt;/a&gt; and might get a faster collaborator.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joel Hooks</dc:creator><pubDate>Thu, 02 Feb 2012 00:54:29 -0000</pubDate></item></channel></rss>