<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Jimmy Bogard Blog - Latest Comments</title><link xmlns="http://www.w3.org/2005/Atom" rel="http://api.friendfeed.com/2008/03#sup" href="http://disqus.com/sup/all.sup#forumcomments-5507c2d5" type="application/json"/><link>http://jimmybogardblog.disqus.com/</link><description></description><atom:link href="http://jimmybogardblog.disqus.com/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Thu, 23 May 2013 19:40:13 -0000</lastBuildDate><item><title>Re: The case against Interfaces in TDD</title><link>http://lostechies.com/jimmybogard/2010/12/02/the-case-against-interfaces-in-tdd/#comment-906330437</link><description>&lt;p&gt;The title of your article doesn't match your articles.  I want my five minutes back.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Robert</dc:creator><pubDate>Thu, 23 May 2013 19:40:13 -0000</pubDate></item><item><title>Re: Eventual consistency in REST APIs</title><link>http://lostechies.com/jimmybogard/2013/05/15/eventual-consistency-in-rest-apis/#comment-904827315</link><description>&lt;p&gt;Isn't that the same as option 5?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jbogard</dc:creator><pubDate>Wed, 22 May 2013 09:39:54 -0000</pubDate></item><item><title>Re: Eventual consistency in REST APIs</title><link>http://lostechies.com/jimmybogard/2013/05/15/eventual-consistency-in-rest-apis/#comment-904799564</link><description>&lt;p&gt;nice article Jimmy, as always.&lt;/p&gt;

&lt;p&gt;I would add one more option though:&lt;/p&gt;

&lt;p&gt;6) use modern databases that are consistent &lt;br&gt;For example:&lt;br&gt;HyperDex (&lt;a href="http://hyperdex.org/consistency/)" rel="nofollow"&gt;http://hyperdex.org/consistenc...&lt;/a&gt;&lt;br&gt;NuoDb (&lt;a href="http://www.nuodb.com/explore/sql-cloud-database-how-it-works/)" rel="nofollow"&gt;http://www.nuodb.com/explore/s...&lt;/a&gt;&lt;br&gt;...&lt;/p&gt;

&lt;p&gt;nothing wrong with that. :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Srdjan</dc:creator><pubDate>Wed, 22 May 2013 09:05:32 -0000</pubDate></item><item><title>Re: Eventual consistency in REST APIs</title><link>http://lostechies.com/jimmybogard/2013/05/15/eventual-consistency-in-rest-apis/#comment-899871762</link><description>&lt;p&gt;I'm a long time RavenDB user, and with the latest versions (2.0) of RavenDB the indexing is so fast I doubt you would be able to query fast enough to hit a stale index (although it is possible). It is even harder to hit a stale index if you are doing basic map indexes. Map/Reduce indexes is where you might hit stale results. Another approach to keep your data from getting stale is to leverage RavenDB's Ids heavily, since loading a document using its Id is not bound to indexing.&lt;/p&gt;

&lt;p&gt;User's don't realize wether you are serving them stale data or not, so I would probably ignore it in the case of Octopus deploy. I wonder what version he is using?&lt;/p&gt;

&lt;p&gt;My choices would be Option 1 or Option 5. But I really do love RavenDB.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">AquaBirdConsult</dc:creator><pubDate>Thu, 16 May 2013 21:06:05 -0000</pubDate></item><item><title>Re: Building forms for deep View Model graphs in ASP.NET MVC</title><link>http://lostechies.com/jimmybogard/2011/09/07/building-forms-for-deep-view-model-graphs-in-asp-net-mvc/#comment-899212034</link><description>&lt;p&gt;good work!! I found what I was searching for.. Thanks for sharing!!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jalpesh Vadgama</dc:creator><pubDate>Thu, 16 May 2013 09:19:24 -0000</pubDate></item><item><title>Re: Eventual consistency in REST APIs</title><link>http://lostechies.com/jimmybogard/2013/05/15/eventual-consistency-in-rest-apis/#comment-898813521</link><description>&lt;p&gt;I like option 2+3 the most: 202 on writes and "last modified" on reads.  The last-modified information could even be returned as a response header (please use ISO 8601 for dates) rather than cluttering up the response body.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jonathan Oliver</dc:creator><pubDate>Wed, 15 May 2013 23:43:10 -0000</pubDate></item><item><title>Re: Ditching two-phased commits</title><link>http://lostechies.com/jimmybogard/2013/05/09/ditching-two-phased-commits/#comment-892220438</link><description>&lt;p&gt;Most queueing technologies provide acknowledgements that a message has been accepted (handling is a separate deal). That's why you have "at least once" supported by just about everyone.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jbogard</dc:creator><pubDate>Fri, 10 May 2013 09:30:11 -0000</pubDate></item><item><title>Re: Ditching two-phased commits</title><link>http://lostechies.com/jimmybogard/2013/05/09/ditching-two-phased-commits/#comment-892132561</link><description>&lt;p&gt;Ultimately, the question I'm trying to answer is without DTC, how are you assured that you are not losing messages, hence having to deal with none-or-at-least-once messaging rather than at-least-once messaging?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Mark Allen</dc:creator><pubDate>Fri, 10 May 2013 07:53:03 -0000</pubDate></item><item><title>Re: Ditching two-phased commits</title><link>http://lostechies.com/jimmybogard/2013/05/09/ditching-two-phased-commits/#comment-892074045</link><description>&lt;p&gt;Great post. We leverage NServiceBus quite heavily, and while we bask in the convenience of 2PC exactly-once messaging, we anticipate that as we scale this is going to break down due to performance issues.&lt;/p&gt;

&lt;p&gt;So without DTC, how do you ensure that a message sent to a queue actually makes it? Is the Bus.Send basically an atomic operation, whereby if it succeeds then you are assured it has made it to the destination queue? I understand the notion of at-least-once messaging, but am nervous about the scenario where the sender thinks the message is delivered, but it actually never makes it to the intended target queue.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Mark Allen</dc:creator><pubDate>Fri, 10 May 2013 07:13:30 -0000</pubDate></item><item><title>Re: Messages, data and types</title><link>http://lostechies.com/jimmybogard/2013/05/01/messages-data-and-types/#comment-891806964</link><description>&lt;p&gt;I'm currently looking at using pure interfaces as message types. NServiceBus supports interfaces as messages, and JSON.NET combined with ImpromptuInterface works really well for wrapping interfaces around JSON. It allows you to compose your message schemas from many simple structures.&lt;/p&gt;

&lt;p&gt;Requires a bit more exploration, but on the surface it seems like a really good compromise between the implicit / dynamic nature of JSON and the explicit nature of the CLR.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dale Anderson</dc:creator><pubDate>Fri, 10 May 2013 03:54:40 -0000</pubDate></item><item><title>Re: Ditching two-phased commits</title><link>http://lostechies.com/jimmybogard/2013/05/09/ditching-two-phased-commits/#comment-891611686</link><description>&lt;p&gt;A good article. I've always kinda known 2PC is not worth worrying about, but you gave me a bit of an "aha" moment, that idempotence is the key.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dale Anderson</dc:creator><pubDate>Thu, 09 May 2013 23:12:54 -0000</pubDate></item><item><title>Re: Ditching two-phased commits</title><link>http://lostechies.com/jimmybogard/2013/05/09/ditching-two-phased-commits/#comment-890852174</link><description>&lt;p&gt;Nope, that's right. Maybe I needed more coffee when I was writing this!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jbogard</dc:creator><pubDate>Thu, 09 May 2013 09:28:48 -0000</pubDate></item><item><title>Re: Ditching two-phased commits</title><link>http://lostechies.com/jimmybogard/2013/05/09/ditching-two-phased-commits/#comment-890814584</link><description>&lt;p&gt;Welcome to the new world.  Things are more wild out here in this untamed land, but you have the freedom to do anything you want since throwing off the shackles of tyranny.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jonathan Oliver</dc:creator><pubDate>Thu, 09 May 2013 08:31:39 -0000</pubDate></item><item><title>Re: Ditching two-phased commits</title><link>http://lostechies.com/jimmybogard/2013/05/09/ditching-two-phased-commits/#comment-890760325</link><description>&lt;p&gt;I couldn't make sense of this sentence: "And since downstream systems can deal with at-least-once messages through our idempotency guarantees."&lt;/p&gt;

&lt;p&gt;Should it be, "And since downstream systems can deal with at-least-once messages through our idempotency guarantees, we can always retry the operation if there is a failure down the stream.", or do I just need more coffee?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Viktor Nordling</dc:creator><pubDate>Thu, 09 May 2013 06:58:21 -0000</pubDate></item><item><title>Re: Messages, data and types</title><link>http://lostechies.com/jimmybogard/2013/05/01/messages-data-and-types/#comment-890745435</link><description>&lt;p&gt;@Steve I use meta data "type" on my external events. Clients have to know the context of the information. How else would clients be able to process information correctly in their context?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Raymond</dc:creator><pubDate>Thu, 09 May 2013 06:43:15 -0000</pubDate></item><item><title>Re: Messages, data and types</title><link>http://lostechies.com/jimmybogard/2013/05/01/messages-data-and-types/#comment-886873905</link><description>&lt;p&gt;If you are using types as a blueprint for your messages that works great for the producer side of the equation. But what about the consumer? Won't you have to include some metadata on the message to give the consumer a hint as to how to interpret the message? I assume from the above that you would consider metadata regarding the type to be too leaky.&lt;/p&gt;

&lt;p&gt;It seems that many .NET frameworks use the type not only for serialization at the producer and consumer, but for routing of the messages to the appropriate handler within a consumer (IHandle&amp;lt;t&amp;gt; or similar). It seems you wouldn't be able to do this type of routing w/o passing/sharing a hint as to the type that was encoded in the message?&amp;lt;/t&amp;gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Steve</dc:creator><pubDate>Mon, 06 May 2013 17:10:44 -0000</pubDate></item><item><title>Re: Analyzing AutoMapper performance</title><link>http://lostechies.com/jimmybogard/2009/08/05/analyzing-automapper-performance/#comment-885449614</link><description>&lt;p&gt;Just used JetBrains' dotTrace product.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jbogard</dc:creator><pubDate>Sun, 05 May 2013 14:55:49 -0000</pubDate></item><item><title>Re: Analyzing AutoMapper performance</title><link>http://lostechies.com/jimmybogard/2009/08/05/analyzing-automapper-performance/#comment-884285409</link><description>&lt;p&gt;Which tool did you use to get performance reports?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">bayram</dc:creator><pubDate>Sat, 04 May 2013 14:15:35 -0000</pubDate></item><item><title>Re: IKEA stand up desk: two months later</title><link>http://lostechies.com/jimmybogard/2012/11/20/ikea-stand-up-desk-two-months-later/#comment-881425295</link><description>&lt;p&gt;A good anti-fatigue mat will go a long way. However, I'll take some sore feet over chronic back pain caused by an office chair any day. Here's mat option &lt;a href="http://www.amazon.com/Standee-Anti-fatigue-Standing-Desk-Mat/dp/B00A64ERKY" rel="nofollow"&gt;http://www.amazon.com/Standee-...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cliff-Rich</dc:creator><pubDate>Wed, 01 May 2013 13:19:41 -0000</pubDate></item><item><title>Re: Git workflows with git-tfs</title><link>http://lostechies.com/jimmybogard/2011/09/20/git-workflows-with-git-tfs/#comment-881332959</link><description>&lt;p&gt;is there any way to diff after "git tfs fetch"? how do you do that, git doesn't see tfs branches as remotes. And if there's no way, what's the use of  "git tfs fetch"?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ag</dc:creator><pubDate>Wed, 01 May 2013 11:31:08 -0000</pubDate></item><item><title>Re: Scaling NServiceBus Sagas</title><link>http://lostechies.com/jimmybogard/2013/03/26/scaling-nservicebus-sagas/#comment-880935286</link><description>&lt;p&gt;Try deploying this. It's not automatic. The handlers are still in one class.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jbogard</dc:creator><pubDate>Tue, 30 Apr 2013 21:28:08 -0000</pubDate></item><item><title>Re: Scaling NServiceBus Sagas</title><link>http://lostechies.com/jimmybogard/2013/03/26/scaling-nservicebus-sagas/#comment-880876333</link><description>&lt;p&gt;I try to think of a Saga as just like any handler for a type of message. If you follow NSB recommendations then you should one message type per queue. So you deploy an instance of a (saga) handler for each message type with its own input queue. &lt;/p&gt;

&lt;p&gt;I guess that is what you mean by " to set this up ourselves".&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tim</dc:creator><pubDate>Tue, 30 Apr 2013 19:42:03 -0000</pubDate></item><item><title>Re: IKEA stand up desk: two months later</title><link>http://lostechies.com/jimmybogard/2012/11/20/ikea-stand-up-desk-two-months-later/#comment-880131556</link><description>&lt;p&gt;I absolutely agree on the programmable memory. In fact, if you use them often as I do, you are really missing out if you don't have have this option. Its annoying having to adjust the height to your ergonomic position all the time. If you are doing that, you might as well go for a manual "hand crank" option: &lt;a href="http://www.jpofficeworkstations.com.au/manual-height-adjustable-stand-up-desk-elizabeth/" rel="nofollow"&gt;http://www.jpofficeworkstation...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Caroline</dc:creator><pubDate>Mon, 29 Apr 2013 23:30:41 -0000</pubDate></item><item><title>Re: Why I&amp;rsquo;m done with Scrum</title><link>http://lostechies.com/jimmybogard/2012/09/12/why-im-done-with-scrum/#comment-879480461</link><description>&lt;p&gt;Software development is a fight against chaos. Software is direct reflection of what's happening in our minds just like as music is a reflection of musician's emotional state. Tricky part is that there's a feedback loop that triggers once you stop **thinking** which throws you into abyss of more chaos.  And since software brings order, more things can be automated - thinking devalues and getting into chaos abyss gets more and more inevitable. "there is no one-size-fits-all for software process" is indeed a way to go - but repeating this statement is already a contradiction to itself. I see Scrum as a tranquilizer that creates illusion of rapid thinking for those that are aware that they don't - in some way that's just giving up.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Arnis Lapsa</dc:creator><pubDate>Mon, 29 Apr 2013 07:59:36 -0000</pubDate></item><item><title>Re: Saga alternatives &amp;ndash; routing slips</title><link>http://lostechies.com/jimmybogard/2013/04/26/saga-alternatives-routing-slips/#comment-877184338</link><description>&lt;p&gt;For that, you'd look at either a state machine or true "saga" pattern. That's next on my plate! For my routing slip handlers, I explicitly handle failures and indicate it on the attachments. Unfortunately I can't "cancel" an exception on failure, so it's just manual right now with the slip's attachments.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jbogard</dc:creator><pubDate>Fri, 26 Apr 2013 17:49:05 -0000</pubDate></item></channel></rss>