<?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 jmtulloss</title><link>http://disqus.com/by/jmtulloss/</link><description></description><atom:link href="http://disqus.com/jmtulloss/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Tue, 29 Dec 2015 11:58:28 -0000</lastBuildDate><item><title>Re: An Introduction to JavaScript&amp;#8217;s &amp;#8220;this&amp;#8221;</title><link>https://justin.harmonize.fm/development/2009/09/26/an-introduction-to-javascripts-this.html#comment-2430763957</link><description>&lt;p&gt;Not only practical, but a fine work of literature too.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Tue, 29 Dec 2015 11:58:28 -0000</pubDate></item><item><title>Re: Transducers.js: A JavaScript Library for Transformation of Data</title><link>http://jlongster.com/Transducers.js--A-JavaScript-Library-for-Transformation-of-Data#comment-1841467982</link><description>&lt;p&gt;I'm kind of struggling with making some higher level transducers. I'm trying to make a transducer that takes a sequence of transducers and applies them to each value it receives. What might that look like?&lt;/p&gt;&lt;p&gt;It's easy to imagine in an imperative world, but my mind hurts in this world.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Sat, 07 Feb 2015 22:58:44 -0000</pubDate></item><item><title>Re: Caffeinated Simpleton — Authenticating With Phabricator</title><link>https://justin.harmonize.fm/development/2013/06/29/authenticating-with-phabricator.html#comment-1786408128</link><description>&lt;p&gt;I don't recall having that problem, and if I did it's been so long that I don't remember the solution. Hope you figure it out!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Sat, 10 Jan 2015 22:01:50 -0000</pubDate></item><item><title>Re: Caffeinated Simpleton — Authenticating With Phabricator</title><link>https://justin.harmonize.fm/development/2013/06/29/authenticating-with-phabricator.html#comment-1775771695</link><description>&lt;p&gt;Glad you found it useful!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Tue, 06 Jan 2015 21:20:44 -0000</pubDate></item><item><title>Re: Caffeinated Simpleton — Authenticating With Phabricator</title><link>https://justin.harmonize.fm/development/2013/06/29/authenticating-with-phabricator.html#comment-1558655212</link><description>&lt;p&gt;Fixed. Thanks!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Mon, 25 Aug 2014 14:48:21 -0000</pubDate></item><item><title>Re: Caffeinated Simpleton — Om and Flux (An Ongoing Experiment)</title><link>https://justin.harmonize.fm/development/2014/08/05/om-and-flux.html#comment-1533591662</link><description>&lt;p&gt;Stores in Flux seem to do two things: provide data and provide methods for mutating data. If data is all uniformly accessed and updated through the cursor API, then in my mind the functionality that's left is the side effects... broadcasting changes to various things that might care (websocket, http API, analytics service, whatever).&lt;/p&gt;&lt;p&gt;Those things could conceivably have dependencies between themselves, and the dependency graph could conceivably be constructed with a pipeline of channels. However, I haven't done anything about that here.&lt;/p&gt;&lt;p&gt;I might dig further into the actual program that I'm writing to find an actual use case before trying to solve this problem. I think a lot of the dependency issues are state dependencies and can be solved by just looking at a cursor into the global state (IE, something updates the derived state, and thing that depends on that just looks at cursor to the derived state)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Fri, 08 Aug 2014 11:48:25 -0000</pubDate></item><item><title>Re: Caffeinated Simpleton — Om and Flux (An Ongoing Experiment)</title><link>https://justin.harmonize.fm/development/2014/08/05/om-and-flux.html#comment-1532434611</link><description>&lt;p&gt;You're right, I'll need to think about this more.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Thu, 07 Aug 2014 17:13:32 -0000</pubDate></item><item><title>Re: Algorithm and Blues</title><link>https://algorithms.rdio.com/post/make/#comment-1370973479</link><description>&lt;p&gt;That's a great post! I'm glad to see more people trying out this approach.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Mon, 05 May 2014 17:28:29 -0000</pubDate></item><item><title>Re: Algorithm and Blues</title><link>https://algorithms.rdio.com/post/make/#comment-1313865253</link><description>&lt;p&gt;My example is definitely simplified. In reality you'll probably want to make a shell script that directs the output to some log and calls the appropriate build target.&lt;/p&gt;&lt;p&gt;This is what we use:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;br&gt;exec &amp;gt;&amp;gt; build.log 2&amp;gt;&amp;amp;1&lt;br&gt;make dev-build&lt;br&gt;if [ $? -ne 0 ]; then&lt;br&gt;    tput bel # Make a noise so the dev will look at their terminal&lt;br&gt;fi&lt;br&gt;&lt;/code&gt;&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Tue, 01 Apr 2014 15:31:02 -0000</pubDate></item><item><title>Re: Algorithm and Blues</title><link>https://algorithms.rdio.com/post/make/#comment-1302512465</link><description>&lt;p&gt;Yeah, that's really cool!&lt;/p&gt;&lt;p&gt;I, of course, would prefer that it had a CLI interface to rival the JS interface, but the JS interface seems pretty good. It seems like it'd be trivial to start plugging AssetGraph into an existing workflow.&lt;/p&gt;&lt;p&gt;Since you used to be using make, why did you make AssetGraph start building and inlining things instead of just having it take part of the dependency management part?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Tue, 25 Mar 2014 17:41:24 -0000</pubDate></item><item><title>Re: Algorithm and Blues</title><link>https://algorithms.rdio.com/post/make/#comment-1302096267</link><description>&lt;p&gt;Yeah, this is a bit tough. I like your solution, but instead of creating a dependency file for each file, why not just spit them into your Makefile? Something like this might work:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;br&gt;%.css: $(shell ./find-deps %.less)&lt;br&gt;     # Do the compilation here&lt;br&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;For us, we tend to have one file that every less file depends on and then very few that depend on others. So we just manually duplicate those dependencies into the Makefile and assume every less file depends on our one helper less file. If this becomes too burdensome we'll probably have a script look at the dependency graph.&lt;/p&gt;&lt;p&gt;And two seconds later, I realize this has already been solved. It looks like `lessc --depends` will generate exactly what you need! Time to go update our internal Makefile...&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Tue, 25 Mar 2014 14:28:47 -0000</pubDate></item><item><title>Re: Algorithm and Blues</title><link>https://algorithms.rdio.com/post/make/#comment-1302075813</link><description>&lt;p&gt;Thanks for asking this question! It's exactly what I would have gone into more depth on if I wanted to write something way too long.&lt;/p&gt;&lt;p&gt;First of all, I really liked your post. I would love it if some powershell-like thing became standard on *nix systems. Seems unlikely to happen anytime soon though.&lt;/p&gt;&lt;p&gt;As for actually addressing this issue, you need a tool that is capable of examining your dependency graph. This is pretty valuable outside of just building things, but it's useful for your build as well. We've ended up spinning our own that will look at our target files (like &lt;a href="https://github.com/rdio/algorithms/blob/master/targets/blog.json" rel="nofollow noopener" target="_blank" title="https://github.com/rdio/algorithms/blob/master/targets/blog.json"&gt;this one&lt;/a&gt;) and then spit those dependencies into our Makefile via a $(shell) call in the Makefile. This is because I was a bit shortsighted years ago and decided not to use require.js, and browserify didn't even exist.&lt;/p&gt;&lt;p&gt;Today I would use one of browserify or require.js. Both include tools for playing with your dependency graph. `browserify --deps` will do exactly what you want, and `r.js` might do what you want but I can't tell by glancing at the documentation.&lt;/p&gt;&lt;p&gt;So we don't really define the dependency graph in make, but we use the definition we have in our program and then make keeps track of it all.&lt;/p&gt;&lt;p&gt;For versioning our bundles, we use .md5 placeholder files. So the rule looks something like this:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;br&gt;%.md5: %&lt;br&gt;    $(eval VERSION := $(shell $(MD5SUM) $&amp;lt; | cut -d ' ' -f 1))&lt;br&gt;    cp $&amp;lt; $(basename $&amp;lt;).$(VERSION).js&lt;br&gt;    printf $(VERSION) &amp;gt; $@&lt;br&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Then our bundles rely on the md5 file existing, which causes the bundle to be built and then versioned.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Tue, 25 Mar 2014 14:19:36 -0000</pubDate></item><item><title>Re: Algorithm and Blues</title><link>https://algorithms.rdio.com/post/make/#comment-1300590491</link><description>&lt;p&gt;Ah, you're right, I'll update with an example from the actual Makefile.&lt;/p&gt;&lt;p&gt;As for the PHONY thing, I was going for an example that just shows running a simple task. You could optimize this example with actual build times, so perhaps an example like starting a server would have been more appropriate.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Mon, 24 Mar 2014 20:40:11 -0000</pubDate></item><item><title>Re: With Potentially Deadly New Apple Rules Looming, Rdio Revamps Their iPhone App</title><link>http://techcrunch.com/2011/02/16/rdio-iphone-app-2/#comment-149800066</link><description>&lt;p&gt;What is Rdio missing that you would like to see?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Thu, 17 Feb 2011 03:32:58 -0000</pubDate></item><item><title>Re: Sonos adds Rdio to its streaming music repertoire</title><link>http://www.engadget.com/2011/01/27/sonos-adds-rdio-to-its-streaming-music-repertoire/#comment-135477471</link><description>&lt;p&gt;&lt;a href="http://www.rdio.com/apps/mobile/" rel="nofollow noopener" target="_blank" title="http://www.rdio.com/apps/mobile/"&gt;http://www.rdio.com/apps/mo...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Thu, 27 Jan 2011 13:36:23 -0000</pubDate></item><item><title>Re: An Introduction to JavaScript&amp;#8217;s &amp;#8220;this&amp;#8221;</title><link>https://justin.harmonize.fm/development/2009/09/26/an-introduction-to-javascripts-this.html#comment-114601084</link><description>&lt;p&gt;Good catch!&lt;/p&gt;&lt;p&gt;I recently updated the post to use "self" instead of "my", since more and&lt;br&gt;more people are using that style these days. It's also the style I prefer&lt;br&gt;now. I guess I missed one!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Sat, 18 Dec 2010 21:11:29 -0000</pubDate></item><item><title>Re: Bujagali: Incredibly Fast JavaScript Templating</title><link>https://justin.harmonize.fm/development/2010/10/18/bujagali-incredibly-fast-javascript-templating.html#comment-88309381</link><description>&lt;p&gt;Thanks! That's good to hear.&lt;/p&gt;&lt;p&gt;There are some subtle things that a good understanding of JS helps with (like the difference between 'self' and 'this' in templates) and some crazy ways of designating functions to be called after rendering is complete, but you can definitely get going without using any of that craziness.&lt;/p&gt;&lt;p&gt;On the other hand, a lot of designers are becoming quite fluent in JavaScript, which is awesome. Those guys should (hopefully) have no problem.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Tue, 19 Oct 2010 15:46:03 -0000</pubDate></item><item><title>Re: Bujagali: Incredibly Fast JavaScript Templating</title><link>https://justin.harmonize.fm/development/2010/10/18/bujagali-incredibly-fast-javascript-templating.html#comment-88300204</link><description>&lt;p&gt;What it comes down to is that all JavaScript templates, when it comes to actually transforming templates into markup, basically do the same thing. So speed tests against moustache or jQote2 are boring, because while they might all be slightly different, the whole ecosystem around those systems hasn't improved, where it has for Bujagali.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Tue, 19 Oct 2010 15:05:41 -0000</pubDate></item><item><title>Re: Bujagali: Incredibly Fast JavaScript Templating</title><link>https://justin.harmonize.fm/development/2010/10/18/bujagali-incredibly-fast-javascript-templating.html#comment-88294533</link><description>&lt;p&gt;Moustache and jQote2 don't provide a built-in way of separating templates from the rest of your markup, meaning they don't cache well. Also, since the templates aren't pre-compiled, there will always be a compilation hit. Bujagali templates can be pre-compiled server side and sent down as regular old JS files. This is what we do at rdio.&lt;/p&gt;&lt;p&gt;It's kind of an entirely different approach, but I'll come up with some numbers and make a new post soon to illustrate the differences.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Tue, 19 Oct 2010 14:55:26 -0000</pubDate></item><item><title>Re: Caffeinated Simpleton — Cobra is Ready to Release</title><link>https://justin.harmonize.fm/development/2010/02/15/cobra-is-ready-to-release.html#comment-87663220</link><description>&lt;p&gt;It's on github: &lt;a href="http://github.com/JustinTulloss/cobra" rel="nofollow noopener" target="_blank" title="http://github.com/JustinTulloss/cobra"&gt;http://github.com/JustinTul...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Sun, 17 Oct 2010 14:52:02 -0000</pubDate></item><item><title>Re: Java, please stop ruining my fun.</title><link>https://justin.harmonize.fm/development/2009/07/13/java-please-stop-ruining-my-fun.html#comment-56435937</link><description>&lt;p&gt;Yes, I should have updated this post after this project came out. I haven't played with leiningen much, but it's clear that the situation is now much better.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Sat, 12 Jun 2010 21:26:32 -0000</pubDate></item><item><title>Re: An Introduction to JavaScript&amp;#8217;s &amp;#8220;this&amp;#8221;</title><link>https://justin.harmonize.fm/development/2009/09/26/an-introduction-to-javascripts-this.html#comment-17644993</link><description>&lt;p&gt;Updated the first example. Thanks!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Sun, 27 Sep 2009 16:32:11 -0000</pubDate></item><item><title>Re: An Introduction to JavaScript&amp;#8217;s &amp;#8220;this&amp;#8221;</title><link>https://justin.harmonize.fm/development/2009/09/26/an-introduction-to-javascripts-this.html#comment-17644914</link><description>&lt;p&gt;Yeah, I think you're right DougBTX. I've changed it.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Sun, 27 Sep 2009 16:28:28 -0000</pubDate></item><item><title>Re: An Introduction to JavaScript&amp;#8217;s &amp;#8220;this&amp;#8221;</title><link>https://justin.harmonize.fm/development/2009/09/26/an-introduction-to-javascripts-this.html#comment-17644717</link><description>&lt;p&gt;You're right that it's unnecessary. I was trying to combine the previous point, but it might just make things more confusing. I might change it.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Sun, 27 Sep 2009 16:18:56 -0000</pubDate></item><item><title>Re: An Introduction to JavaScript&amp;#8217;s &amp;#8220;this&amp;#8221;</title><link>https://justin.harmonize.fm/development/2009/09/26/an-introduction-to-javascripts-this.html#comment-17627819</link><description>&lt;p&gt;You're right about the order, it's been corrected. I don't really believe in putting millisecond timeouts in examples since it's needlessly detail oriented. &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">justin</dc:creator><pubDate>Sun, 27 Sep 2009 06:55:41 -0000</pubDate></item></channel></rss>