<?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 jasonrudolph</title><link>http://disqus.com/by/jasonrudolph/</link><description></description><atom:link href="http://disqus.com/jasonrudolph/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Sun, 25 Nov 2012 18:47:56 -0000</lastBuildDate><item><title>Re: ClojureScript Experience Report — Resources</title><link>http://jasonrudolph.com/blog/2012/08/17/clojurescript-experience-report-resources/#comment-719022171</link><description>&lt;p&gt;You definitely want to be wary of client-side code. A malicious user might alter the client-side code in an attempt to access data that he's not authorized to access. Or, he might alter client-side code in an attempt to corrupt or destroy data.&lt;br&gt;To protect against these scenarios, One Rep Max uses the user's MongoHQ API key in order to access the user's data stored at &lt;a href="http://mongohq.com" rel="nofollow noopener" target="_blank" title="mongohq.com"&gt;mongohq.com&lt;/a&gt;. When One Rep Max launches, it prompts the user to enter his API key. One Rep Max (running locally in the user's browser) uses that key to make authenticated requests to the MongoHQ API. Using that key, One Rep Max can access and manipulate the data in that specific user's MongoHQ database, but it cannot access the databases belonging to any other users. Therefore, we don't have to worry about client-side code accessing data that it is not authorized to access; MongoHQ's built-in security gives us the protection we need. Of course, the user could still alter the client-side code to corrupt or destroy data, but he would only be corrupting or destroying his *own* data, so there isn't much incentive for that form of malice. ;-)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Sun, 25 Nov 2012 18:47:56 -0000</pubDate></item><item><title>Re: ClojureScript: 4 Things That Might Worry You, but Shouldn't</title><link>http://jasonrudolph.com/blog/2012/09/11/clojurescript-4-things-that-might-worry-you-but-should-not/#comment-651431777</link><description>&lt;p&gt;This is a good point.  It's funny though: I run into this so rarely that I wasn't even sure that it still happened.  I had to go intentionally insert an syntax error in my code to verify that this behavior still exists.&lt;/p&gt;&lt;p&gt;I think there are two primary reasons why I had forgotten about this issue:&lt;/p&gt;&lt;p&gt;1. My editor's syntax highlighting alerts me to many potential syntax errors.  That helps me make fewer syntax errors.&lt;/p&gt;&lt;p&gt;2. I typically make small changes, and I then verify that those changes work.  If I've introduced a syntax error, I know the general area where I need to look.&lt;/p&gt;&lt;p&gt;While I'd like to see the compiler's error reporting improved, I rarely find it to be a significant problem.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Sat, 15 Sep 2012 10:19:00 -0000</pubDate></item><item><title>Re: ClojureScript: 4 Things That Might Worry You, but Shouldn't</title><link>http://jasonrudolph.com/blog/2012/09/11/clojurescript-4-things-that-might-worry-you-but-should-not/#comment-650345204</link><description>&lt;p&gt;I used ClojureScript for two reasons:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;1. I wanted to take a deeper dive into Clojure, and I enjoy exploring a language by using it to scratch an itch. In my case, I wanted to build a &lt;a href="https://github.com/jasonrudolph/one-rep-max" rel="nofollow noopener" target="_blank" title="https://github.com/jasonrudolph/one-rep-max"&gt;mobile app for tracking my workout data&lt;/a&gt;. I suppose I could have built it with something like Compojure+JavaScript, but I wanted to maximize my time writing &lt;em&gt;Clojure&lt;/em&gt;. By choosing ClojureScript, I was able to write 100% of the application logic in Clojure, which meant that I was able to spend more time learning/practicing Clojure.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;2. I wanted to build a &lt;a href="http://en.wikipedia.org/wiki/Single-page_application" rel="nofollow noopener" target="_blank" title="http://en.wikipedia.org/wiki/Single-page_application"&gt;single-page app&lt;/a&gt; where 100% of the application code runs inside the browser.  Most of my &lt;em&gt;previous&lt;/em&gt; client-side experience was similar to what you describe (i.e., a “little bit of front-end interactivity”).  With &lt;a href="https://github.com/jasonrudolph/one-rep-max#architecture" rel="nofollow noopener" target="_blank" title="https://github.com/jasonrudolph/one-rep-max#architecture"&gt;this project&lt;/a&gt;, I was embarking on something on a much larger scale.  It has no server-side code at all; it’s all client-side code.  To support that effort, I wanted a good mechanism for organizing a larger code base (e.g., Clojure namespaces).&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;With those motivations, I chose ClojureScript, and I’m happy that I did so.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;If I wanted to add just a “little bit of front-end interactivity” to a web app, I probably wouldn’t use ClojureScript today.  It’s not easy enough (yet) to just drop it into a web project.  In this case, the client-side code is a “condiment.” ;-)  And currently, ClojureScript feels more like a “main dish”—in my opinion, a fairly tasty one.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Fri, 14 Sep 2012 10:12:16 -0000</pubDate></item><item><title>Re: Bitwise operations in Ruby, and an example application to testing with Rspec</title><link>https://vitobotta.com/2012/08/09/bitwise-operations-in-ruby-and-an-example-application-to-testing-with-rspec/#comment-624400847</link><description>&lt;p&gt;I agree with DGM and Matt.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;The assertion represents a testing anti-pattern sometimes referred to as the "&lt;a href="http://jasonrudolph.com/blog/2008/07/30/testing-anti-patterns-the-ugly-mirror" rel="nofollow noopener" target="_blank" title="http://jasonrudolph.com/blog/2008/07/30/testing-anti-patterns-the-ugly-mirror"&gt;ugly mirror&lt;/a&gt;".&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Because the test code essentially mirrors the implementation code, it's incredibly easy for both of them to be wrong, and thus the tests wrongly pass (i.e., we end up with a false sense of correctness).&lt;/p&gt;&lt;p&gt;I appreciate the desire to avoid having to manually write a separate assertion for each and every combination. This would get old very quickly:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;br&gt;     it "can not be activated if not persisted and status is new" ...&lt;br&gt;&lt;br&gt;     it "can not be activated if not persisted and status is suspended" ...&lt;br&gt;&lt;br&gt;     it "can be activated if not persisted and status is new" ...&lt;br&gt;&lt;br&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;So, let's take into account these two motivations:&lt;/p&gt;&lt;p&gt;1. We want to avoid hand writing a bunch of boilerplate specs.&lt;/p&gt;&lt;p&gt;2. We want to avoid the ugly mirror (i.e., we want to use &lt;i&gt;literal&lt;/i&gt; values in our assertions, as opposed to duplicating the implementation algorithm inside the assertions).&lt;/p&gt;&lt;p&gt;With these motivations in mind, I'll offer the following alternative: &lt;a href="https://gist.github.com/3386962" rel="nofollow noopener" target="_blank" title="https://gist.github.com/3386962"&gt;https://gist.github.com/338...&lt;/a&gt;&lt;/p&gt;&lt;p&gt;And, I'll try pasting the code inline here. Fingers crossed that it renders correctly. ;-)&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;# [ activable?, persisted?, new?,  suspended? ]&lt;br&gt;# =============================================&lt;br&gt;combinations = [&lt;br&gt;  [ false,      false,      false, false      ],&lt;br&gt;  [ false,      false,      true,  false      ],&lt;br&gt;  [ false,      false,      false, true       ],&lt;br&gt;  [ false,      true,       false, false      ],&lt;br&gt;  [ true,       true,       true,  false      ],&lt;br&gt;  # and the remaining possible combinations ...&lt;br&gt;]&lt;br&gt;&lt;br&gt;combinations.each do |activable, persisted, _new, suspended|&lt;br&gt;  license.stub(:persisted?).and_return(persisted)&lt;br&gt;  license.stub(:status_new?).and_return(_new)&lt;br&gt;  license.stub(:status_suspended?).and_return(suspended)&lt;br&gt;  &lt;br&gt;  license.activable?.should eq(activable)&lt;br&gt;end&lt;br&gt;&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Mon, 20 Aug 2012 18:42:04 -0000</pubDate></item><item><title>Re: Episode #288: Pruning Your Branches</title><link>http://ruby5.envylabs.com/episodes/292/stories/2559.html#comment-587969701</link><description>&lt;p&gt;Good stuff!&lt;/p&gt;&lt;p&gt;As a bonus, recent versions of Git have added some usability improvements to make these tasks easier and more intuitive.&lt;/p&gt;&lt;p&gt;=== Fetch and Prune in One Step ===&lt;/p&gt;&lt;p&gt;Prior to Git 1.6.6, you needed two steps into order to fetch and prune:&lt;/p&gt;&lt;p&gt;    git fetch&lt;br&gt;    git remote prune your_remote&lt;/p&gt;&lt;p&gt;As of Git 1.6.6, you can actually combine fetching and pruning in a single command.&lt;/p&gt;&lt;p&gt;    git fetch --prune&lt;/p&gt;&lt;p&gt;=== Improved Syntax for Deleting Remote Branches  ===&lt;/p&gt;&lt;p&gt;I would argue that the original syntax is odd and a bit unintuitive for deleting remote branches:&lt;/p&gt;&lt;p&gt;    git push your_remote :branch_name&lt;/p&gt;&lt;p&gt;Who thought ":" was a good indicator for "delete"? ;-)&lt;/p&gt;&lt;p&gt;As of Git 1.7.0, you can use this alternative syntax to delete remote branches:&lt;/p&gt;&lt;p&gt;    git push your_remote --delete branch_name&lt;br&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Sat, 14 Jul 2012 15:35:00 -0000</pubDate></item><item><title>Re: :jasonrudolph =&gt; :blog &gt;&gt; Programming Achievements: How to Level Up as a Developer</title><link>http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer/#comment-291330568</link><description>&lt;p&gt;I wrote a quick script to fetch all the forks and identify any new content.  You can see the results here:&lt;/p&gt;&lt;p&gt;&lt;a href="https://gist.github.com/1158051" rel="nofollow noopener" target="_blank" title="https://gist.github.com/1158051"&gt;https://gist.github.com/115...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Fri, 19 Aug 2011 17:27:39 -0000</pubDate></item><item><title>Re: :jasonrudolph =&gt; :blog &gt;&gt; Programming Achievements: How to Level Up as a Developer</title><link>http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer/#comment-283833136</link><description>&lt;p&gt;Interesting.  Thanks for pointing out that matrix.  I'm glad to see that SICP and Forth land you in the top tier of the matrix. ;-)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Thu, 11 Aug 2011 18:19:15 -0000</pubDate></item><item><title>Re: :jasonrudolph =&gt; :blog &gt;&gt; Programming Achievements: How to Level Up as a Developer</title><link>http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer/#comment-283832961</link><description>&lt;p&gt;&amp;gt; Even the most ambitious of individuals will find achieving all of this unrealistic while maintaing good balance between career and family.&lt;/p&gt;&lt;p&gt;Justin (below) had a similar concern. Please see my reply: &lt;a href="http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer/#comment-282863991" rel="nofollow noopener" target="_blank" title="http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer/#comment-282863991"&gt;http://jasonrudolph.com/blo...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Thu, 11 Aug 2011 18:18:50 -0000</pubDate></item><item><title>Re: :jasonrudolph =&gt; :blog &gt;&gt; Programming Achievements: How to Level Up as a Developer</title><link>http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer/#comment-283832528</link><description>&lt;p&gt;That's a very personal decision.  Don't let anyone else make it for you.&lt;/p&gt;&lt;p&gt;What do *you* *want* to do?  (Note the emphasis on "you."  Note the emphasis on "want.")&lt;br&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Thu, 11 Aug 2011 18:17:53 -0000</pubDate></item><item><title>Re: :jasonrudolph =&gt; :blog &gt;&gt; Programming Achievements: How to Level Up as a Developer</title><link>http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer/#comment-283832203</link><description>&lt;p&gt;&amp;gt; Don't think this is helpful.&lt;/p&gt;&lt;p&gt;I'll make sure you get a refund then. ;-)&lt;/p&gt;&lt;p&gt;&amp;gt; Yeah, if you do all that stuff, it will probably make you a better developer. But you've basically staked out a whole career here.&lt;/p&gt;&lt;p&gt;Perhaps. But as I responded to Justin in the thread below, I have some good news: each *individual* achievement benefits you. ;-)  If you only do one of them, you benefit from that one.  If you're worried about the time commitment, pick one of the smaller ones.  (For example, you can prepare and present a lightning talk in much less time than it takes to prepare and deliver a training course.)&lt;/p&gt;&lt;p&gt;Then, if you like, you can start on another one and pursue its benefits.&lt;/p&gt;&lt;p&gt;This is not a process wherein you work for thirty years and get zero reward until the very end.  You reap benefits every step of the way.&lt;br&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Thu, 11 Aug 2011 18:17:11 -0000</pubDate></item><item><title>Re: :jasonrudolph =&gt; :blog &gt;&gt; Programming Achievements: How to Level Up as a Developer</title><link>http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer/#comment-283831676</link><description>&lt;p&gt;We agree on at least one thing: if you ignore the goals of your project and you focus only on the tools, you are destined to fail.&lt;/p&gt;&lt;p&gt;Of all the metaphors you could have chosen, it's funny that you chose carpentry.  I'm sure you're familiar with the saying: "If all you have is a hammer, everything looks like a nail." (Maslow's Hammer: &lt;a href="http://en.wikipedia.org/wiki/Law_of_the_instrument)" rel="nofollow noopener" target="_blank" title="http://en.wikipedia.org/wiki/Law_of_the_instrument)"&gt;http://en.wikipedia.org/wik...&lt;/a&gt;&lt;/p&gt;&lt;p&gt;You argue that "to be a good programmer you must learn to program effectively."  I agree.  Can a carpenter be effective if he only knows how to use a hammer?  Of course not.  The same goes for software development: if you never explore other approaches to solving problems, you won't be as effective as you could be.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Thu, 11 Aug 2011 18:16:02 -0000</pubDate></item><item><title>Re: Refactotum</title><link>http://thinkrelevance.com/blog/2007/04/03/twir#comment-283382498</link><description>&lt;p&gt;Thanks for the heads up. Those links are fixed now.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Thu, 11 Aug 2011 07:31:30 -0000</pubDate></item><item><title>Re: :jasonrudolph =&gt; :blog &gt;&gt; Programming Achievements: How to Level Up as a Developer</title><link>http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer/#comment-282863991</link><description>&lt;p&gt;&amp;gt; This is too much for one person to do it all and still have time to build business solutions for their employers.&lt;/p&gt;&lt;p&gt;Perhaps. But I have some good news: each *individual* achievement benefits you. ;-)  If you only do one of them, you benefit from that one. And then, if you like, you can start on another one and pursue its benefits.&lt;/p&gt;&lt;p&gt;&amp;gt; Some items, like writing a book or creating an open-source project are easier said than done and may not be realistic for most programmers.&lt;/p&gt;&lt;p&gt;Isn't everything is easier said than done?  You can do anything if you put your mind to it.&lt;/p&gt;&lt;p&gt;&amp;gt; Still, I plan on picking a couple of these items and using them to increase my knowledge.&lt;/p&gt;&lt;p&gt;Rock on!&lt;/p&gt;&lt;p&gt;&amp;gt; Might I also suggest another item: Learn and understand how a popular run-time environment really works under the hood (i.e. CLI/CLR or JVM).&lt;/p&gt;&lt;p&gt;I like it. Any thoughts on how to make that achievement measurable/observable? Perhaps you could combine this task with some aspect of teaching? For example, present a talk at a local user group (or to a group of coworkers) explaining how a popular runtime environment works under the hood.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Wed, 10 Aug 2011 18:22:19 -0000</pubDate></item><item><title>Re: :jasonrudolph =&gt; :blog &gt;&gt; Programming Achievements: How to Level Up as a Developer</title><link>http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer/#comment-282835716</link><description>&lt;p&gt;I agree with the importance of those two goals: building the right thing and building it well. &lt;/p&gt;&lt;p&gt;* If you deliver a beautifully-crafted system, but it doesn't satisfy the project's objectives, you're doing it wrong.  (Actually, good developers do more than deliver what was required; they seek out the *motivation* for those requirements.)&lt;br&gt;* And as you noted, if you skimp on quality, you're doing it wrong.&lt;/p&gt;&lt;p&gt;Those goals are more than important; they're non-negotiable. It's not that the post "misses" these goals, it's that I consider these goals to be implicit.&lt;br&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Wed, 10 Aug 2011 18:04:25 -0000</pubDate></item><item><title>Re: :jasonrudolph =&gt; :blog &gt;&gt; Programming Achievements: How to Level Up as a Developer</title><link>http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer/#comment-282777575</link><description>&lt;p&gt;Good question.  :-)&lt;/p&gt;&lt;p&gt;I'm getting closer every week.  I decided back in April that I wanted to run a 5-minute mile.  At that point, I ran at 6:29 mile.&lt;/p&gt;&lt;p&gt;Since then, it's been several months of hill sprints, intervals, long-distance runs on Sunday mornings, track meets, etc.  Last week I ran a 5:40 mile.  (Progress!)  It's been hard work, but I'm getting closer to my goal every week.&lt;/p&gt;&lt;p&gt;It's also been *fun* to pursue this goal.  The same thing goes for programming achievements: don't forget to enjoy the pursuit.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Wed, 10 Aug 2011 17:23:55 -0000</pubDate></item><item><title>Re: :jasonrudolph =&gt; :blog &gt;&gt; Programming Achievements: How to Level Up as a Developer</title><link>http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer/#comment-281591995</link><description>&lt;p&gt;I've completed many of these achievements, but I definitely have not completed all of them.  Each one that I have completed has been a positive learning experience though, and I look forward to learning from the one I'm working on now and the ones I'll pursue in the future.&lt;br&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Tue, 09 Aug 2011 20:11:19 -0000</pubDate></item><item><title>Re: :jasonrudolph =&gt; :blog &gt;&gt; Programming Achievements: How to Level Up as a Developer</title><link>http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer/#comment-281587798</link><description>&lt;p&gt;Thanks, Mike. Glad you enjoyed the post.&lt;/p&gt;&lt;p&gt;&amp;gt; Have you ever had that experience of looking at some code you did a long time ago and being amazed at your own cleverness?&lt;/p&gt;&lt;p&gt;Definitely.  And it's usually not "amazed" in the sense that I am impressed by the code; it's usually "amazed" in the sense that I can now see a cleaner approach to solving the problem at hand.  As a guideline, I try to avoid *cleverness*, as it is often at odds with intuitiveness and readability.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Tue, 09 Aug 2011 20:00:39 -0000</pubDate></item><item><title>Re: Blog | Why I still prefer Prototype to jQuery | Relevance</title><link>http://thinkrelevance.com/blog/2009/01/12/why-i-still-prefer-prototype-to-jquery#comment-129709414</link><description>&lt;p&gt;This is fixed now. Thanks for alerting us to this problem.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Sun, 16 Jan 2011 10:33:49 -0000</pubDate></item><item><title>Re: Testing Anti-Patterns: Overspecification</title><link>http://jasonrudolph.com/blog/2008/07/01/testing-anti-patterns-overspecification/#comment-52074483</link><description>&lt;p&gt;Thanks for point this out.  It's fixed now.  Sorry for the trouble.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Tue, 25 May 2010 20:29:39 -0000</pubDate></item><item><title>Re: Testing Anti-Patterns: Overspecification</title><link>http://jasonrudolph.com/blog/2008/07/01/testing-anti-patterns-overspecification/#comment-52074307</link><description>&lt;p&gt;Zoinks!  Sorry about that guys.&lt;/p&gt;&lt;p&gt;And you're right, Paul; that irony is definitely not lost on me.  It's fixed, and I now have tests in place to detect and prevent this error in the future.  ;-)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Tue, 25 May 2010 20:28:51 -0000</pubDate></item><item><title>Re: Astrails  Importing Mephisto comments into Disqus</title><link>http://blog.astrails.com/2009/5/20/importing-mephisto-comments-into-disqus#comment-42914004</link><description>&lt;p&gt;Thanks for this!  I had to make a few tweaks for the latest rest-client gem and the latest disqus API. You can see those tweaks on this fork: &lt;a href="http://gist.github.com/353645" rel="nofollow noopener" target="_blank" title="http://gist.github.com/353645"&gt;http://gist.github.com/353645&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Fri, 02 Apr 2010 16:35:30 -0000</pubDate></item><item><title>Re: RunCodeRun</title><link>http://subakva.tumblr.com/post/244922374#comment-23156042</link><description>&lt;p&gt;Glad we could help.&lt;/p&gt;&lt;p&gt;Regarding the more complex build setups you mentioned: we currently have customers using RunCodeRun with multiple databases and customers using RunCodeRun with Sphinx.  Such setups usually involve a support request to answer a question or offer some guidance, but we're happy to help.&lt;/p&gt;&lt;p&gt;Thanks for using RunCodeRun.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Sun, 15 Nov 2009 17:25:51 -0000</pubDate></item><item><title>Re: Testing Anti-Patterns: Overspecification</title><link>http://jasonrudolph.com/blog/2008/07/01/testing-anti-patterns-overspecification/#comment-22258304</link><description>&lt;p&gt;@levsa I'd usually define #create_product in my collection of factories used for generating valid test objects.  For Ruby and Rails projects, I prefer &lt;a href="http://github.com/thoughtbot/factory_girl" rel="nofollow noopener" target="_blank" title="http://github.com/thoughtbot/factory_girl"&gt;factory_girl&lt;/a&gt;.  Prior to the existence of factory_girl, I used to roll my own factories, so you could certainly do that as well.&lt;/p&gt;&lt;p&gt;I hope this helps.&lt;/p&gt;&lt;p&gt;Cheers,&lt;br&gt;Jason&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Sun, 08 Nov 2009 16:52:14 -0000</pubDate></item><item><title>Re: Now Supporting Campfire Notifications</title><link>http://blog.runcoderun.com/post/164928931#comment-15105237</link><description>&lt;p&gt;Thanks for pointing out this confusion.  We'll be sure to update the UI soon.  In the meantime, we've updated the screenshot above to show our real world settings (so that folks can see to use the room name instead of the room number).&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Wed, 19 Aug 2009 21:26:52 -0000</pubDate></item><item><title>Re: Git Up! 10 Reasons to Upgrade Your Old Git Installation</title><link>http://jasonrudolph.com/blog/2009/05/27/git-up-10-reasons-to-upgrade-your-old-git-installation/#comment-11509202</link><description>&lt;p&gt;@gitster - Thanks for the clarification!  I've updated the post accordingly.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jason Rudolph</dc:creator><pubDate>Sat, 20 Jun 2009 15:40:39 -0000</pubDate></item></channel></rss>