<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Los Techies - Latest Comments</title><link>http://jagregory-lostechies.disqus.com/</link><description></description><atom:link href="https://jagregory-lostechies.disqus.com/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Fri, 01 Dec 2017 10:30:02 -0000</lastBuildDate><item><title>Re: Entity interface anti-pattern</title><link>https://lostechies.com/jamesgregory/2009/05/09/entity-interface-anti-pattern/#comment-3641526467</link><description>&lt;p&gt;I'm obviously 9 years late, but I would have to respectively disagree, especially with the use of ORMs today. A great benefit in having abstractions that simply have properties is that we can have different entity implementations of that abstraction. A great use case for this is when you're using different data access technologies over the lifetime of the application. Some ORMs such as PetaPoco require adding metadata to your POCOs to specify the mapping between your properties and table fields. It's highly probable that your properties and table fields are not a 1-2-1 match in naming convention. Some ORMs such as Dapper allow you to specify this mapping within the SQL itself, therefore, eliminating the need to add metadata to your POCOs. I'm not a fan in going back and changing existing classes and/or having that POCO having a dependency on a specific data access framework.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Keith</dc:creator><pubDate>Fri, 01 Dec 2017 10:30:02 -0000</pubDate></item><item><title>Re: Git guts: Merging and rebasing</title><link>https://lostechies.com/jamesgregory/2009/11/27/git-guts-merging-and-rebasing/#comment-3130946787</link><description>&lt;p&gt;Thanks for the article.  s/"bare this in mind"/"bear this in mind"/ :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Anderson</dc:creator><pubDate>Tue, 31 Jan 2017 15:59:31 -0000</pubDate></item><item><title>Re: Me on NHibernate 3.2</title><link>https://lostechies.com/jamesgregory/2011/04/13/me-on-nhibernate-3-2/#comment-2356178493</link><description>&lt;p&gt;FNH &amp;gt;&amp;gt;&amp;gt; CONFORMIST&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">kns98</dc:creator><pubDate>Thu, 12 Nov 2015 12:49:53 -0000</pubDate></item><item><title>Re: Git guts: Merging and rebasing</title><link>https://lostechies.com/jamesgregory/2009/11/27/git-guts-merging-and-rebasing/#comment-2172360540</link><description>&lt;p&gt;One of the best description regarding differences between rebasing and merging.&lt;br&gt;Thanks for this piece. Very helpful.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sachin Agrawal</dc:creator><pubDate>Mon, 03 Aug 2015 14:49:13 -0000</pubDate></item><item><title>Re: Behaviours in MSpec</title><link>https://lostechies.com/jamesgregory/2010/01/18/behaviours-in-mspec/#comment-1834269822</link><description>&lt;p&gt;Nice post!! One question - why all the fields must be static when working with MSpec ?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Haidet Vlad-Dragos</dc:creator><pubDate>Wed, 04 Feb 2015 07:48:25 -0000</pubDate></item><item><title>Re: Git: Remotes, contributions, and the letter N</title><link>https://lostechies.com/jamesgregory/2010/02/12/git-remotes-contributions-and-the-letter-n/#comment-1431526189</link><description>&lt;p&gt;Very helpful. It would be great to get an article about the "guts" behind git push. I've always wondered exactly what git was doing during a push outside of broad stroke terms like "sharing your local changes with the remote repository".&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">David Land</dc:creator><pubDate>Thu, 12 Jun 2014 00:21:05 -0000</pubDate></item><item><title>Re: Git&amp;#8217;s guts: Branches, HEAD, and fast-forwards</title><link>https://lostechies.com/jamesgregory/2009/11/25/git-s-guts-branches-head-and-fast-forwards/#comment-1431518435</link><description>&lt;p&gt;Images are broken&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">David Land</dc:creator><pubDate>Thu, 12 Jun 2014 00:14:24 -0000</pubDate></item><item><title>Re: Git guts: Merging and rebasing</title><link>https://lostechies.com/jamesgregory/2009/11/27/git-guts-merging-and-rebasing/#comment-1431494740</link><description>&lt;p&gt;Wow, really nice article. Getting down in the details like this really helps clarify a lot of the more mysterious behaviors of git.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">David Land</dc:creator><pubDate>Wed, 11 Jun 2014 23:45:01 -0000</pubDate></item><item><title>Re: Behaviours in MSpec</title><link>https://lostechies.com/jamesgregory/2010/01/18/behaviours-in-mspec/#comment-1172153480</link><description>&lt;p&gt;What about being able to add the Act part to the behaviour definition:&lt;br&gt;Because of = () =&amp;gt;&lt;br&gt;    vehicle.StartEngine();&lt;/p&gt;&lt;p&gt;is there any way that this Act part can be isolated for commonality?&lt;br&gt;I can see this as being useful given your example and having recently struggled with&lt;br&gt;breaking DRY myself just as you are doing in your solution, but wouldn't this be better?&lt;/p&gt;&lt;p&gt;[Behaviors]&lt;br&gt;public class StartingAVehicleBehaviors&lt;br&gt;{&lt;br&gt;  protected static IVehicle vehicle;&lt;/p&gt;&lt;p&gt;  Because of = () =&amp;gt; vechicle.StartEngine();&lt;/p&gt;&lt;p&gt;  It should_have_a_running_engine = () =&amp;gt;&lt;br&gt;    vehicle.IsEngineRunning.ShouldBeTrue();&lt;/p&gt;&lt;p&gt;  It should_be_polluting_the_atmosphere = () =&amp;gt;&lt;br&gt;    vehicle.IsPolluting.ShouldBeTrue();&lt;/p&gt;&lt;p&gt;  It should_be_idling = () =&amp;gt;&lt;br&gt;    vehicle.RevCount.ShouldBeBetween(0, 1000);&lt;br&gt;}&lt;/p&gt;&lt;p&gt;I ran info the need to simplify equality testing for IEquatable&amp;lt;t&amp;gt; where it would be&lt;br&gt;nice to do:&lt;/p&gt;&lt;p&gt;[Behaviors]&lt;br&gt;public class IsEqualBehavior&amp;lt;t&amp;gt;&lt;br&gt;{&lt;br&gt;  protected static IEquatable&amp;lt;t&amp;gt; equatable;&lt;br&gt;  protected static IEquatable&amp;lt;t&amp;gt; otherObject;&lt;br&gt;  protected static IEquatable&amp;lt;t&amp;gt; isEqual;&lt;/p&gt;&lt;p&gt;  Because of = () =&amp;gt; isEqual = equatable.Equals(otherObject);&lt;/p&gt;&lt;p&gt;  It should_be_equal = () =&amp;gt; isEqual.ShouldBeTrue();&lt;br&gt;}&lt;/p&gt;&lt;p&gt;[Behaviors]&lt;br&gt;public class IsNotEqualBehavior&amp;lt;t&amp;gt;&lt;br&gt;{&lt;br&gt;  protected static IEquatable&amp;lt;t&amp;gt; equatable;&lt;br&gt;  protected static T otherObject;&lt;br&gt;  protected static bool isEqual;&lt;/p&gt;&lt;p&gt;  Because of = () =&amp;gt; isEqual = equatable.Equals(otherObject);&lt;/p&gt;&lt;p&gt;  It should_not_be_equal = () =&amp;gt; isEqual.ShouldBeFalse();&lt;br&gt;}&lt;/p&gt;&lt;p&gt;Although the type of T and the setup is guaranteed to be different, the&lt;br&gt;implementation should most likely be constrained to the same behaviour&lt;br&gt;despite the many uses of IEquatable&amp;lt;t&amp;gt;.&lt;/p&gt;&lt;p&gt;This also satisfies DRY much better.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jeremy Wilkins</dc:creator><pubDate>Fri, 20 Dec 2013 18:16:29 -0000</pubDate></item><item><title>Re: Behaviours in MSpec</title><link>https://lostechies.com/jamesgregory/2010/01/18/behaviours-in-mspec/#comment-1170234729</link><description>&lt;p&gt;Just a note that your " It should_have_a_running_engine = " is duplicated both in the second example and the behaviours class.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anon</dc:creator><pubDate>Thu, 19 Dec 2013 10:54:05 -0000</pubDate></item><item><title>Re: Preventing debugger property evaluation for side-effect laden properties</title><link>https://lostechies.com/jamesgregory/2009/08/18/debugger-property-evaluation-side-effects/#comment-919765019</link><description>&lt;p&gt;Just what i was looking for, thanks! This saved me&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joom</dc:creator><pubDate>Wed, 05 Jun 2013 10:00:46 -0000</pubDate></item><item><title>Re: Observations on the Play! framework</title><link>https://lostechies.com/jamesgregory/2011/09/18/observations-on-the-play-framework/#comment-807282295</link><description>&lt;p&gt;I am fairly new to Play, but seems very difficult to do DI. I am not able to get the confidence in doing TDD in Play&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ashish</dc:creator><pubDate>Thu, 21 Feb 2013 13:09:28 -0000</pubDate></item><item><title>Re: Observations on the Play! framework</title><link>https://lostechies.com/jamesgregory/2011/09/18/observations-on-the-play-framework/#comment-666487907</link><description>&lt;p&gt;Has this changed much at all in Play?  My suspicions after toying with Play 2.0 this morning were that testing was going to be annoying, especially isolation unit tests that I want to run fast, without services running.  Seems like this post confirms my fears.  I also see plenty of stack overflow posts mentioning that DI is unnecessary in Play  but I think people forget that well laid out services/controllers rely on interfaces and class composition to perform work, which invites DI and makes it easier to unit test this code as well as configure your application.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">lotan</dc:creator><pubDate>Sat, 29 Sep 2012 16:16:21 -0000</pubDate></item><item><title>Re: Observations on the Play! framework</title><link>https://lostechies.com/jamesgregory/2011/09/18/observations-on-the-play-framework/#comment-415647519</link><description>&lt;p&gt;Hello James,&lt;/p&gt;&lt;p&gt;Five years ago you shared this knowledge &amp;lt;&amp;lt;http: &lt;a href="http://jagregory.com" rel="nofollow noopener" target="_blank" title="jagregory.com"&gt;jagregory.com&lt;/a&gt;="" writings="" how-to-use-clientids-in-javascript-without-the-ugliness=""/&amp;gt;&amp;gt;, I don´t know how to implemented it, Can you please share a complete implementation, that is to say, a little visual studio project using the code.  I will be gratefull for your help. Thansk. Henry.-&lt;/p&gt;&lt;p&gt;My email is : samario@gmail.com.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Samario</dc:creator><pubDate>Thu, 19 Jan 2012 16:52:52 -0000</pubDate></item><item><title>Re: Me on NHibernate 3.2</title><link>https://lostechies.com/jamesgregory/2011/04/13/me-on-nhibernate-3-2/#comment-396864399</link><description>&lt;p&gt;I like you.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">James Gregory</dc:creator><pubDate>Thu, 29 Dec 2011 17:16:48 -0000</pubDate></item><item><title>Re: Me on NHibernate 3.2</title><link>https://lostechies.com/jamesgregory/2011/04/13/me-on-nhibernate-3-2/#comment-396849542</link><description>&lt;p&gt;Ever thought about making FNH licensed?  "Closer to my millions", eh?  I mean don't rake us over the coals or anything, but fair compensation for a hard days work is acceptable by all means.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brad Smith</dc:creator><pubDate>Thu, 29 Dec 2011 17:01:02 -0000</pubDate></item><item><title>Re: Me on NHibernate 3.2</title><link>https://lostechies.com/jamesgregory/2011/04/13/me-on-nhibernate-3-2/#comment-384283675</link><description>&lt;p&gt;james, any word when the next fluent nhibernate gets released. &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">tor</dc:creator><pubDate>Sun, 11 Dec 2011 18:50:29 -0000</pubDate></item><item><title>Re: Me on NHibernate 3.2</title><link>https://lostechies.com/jamesgregory/2011/04/13/me-on-nhibernate-3-2/#comment-382076390</link><description>&lt;p&gt;I finally managed to get something done with nhibernate, and it's all thanks to you, FNH and all the people in the community using it and helping out when running into issues...&lt;br&gt;So for that, I can only thank you! (and hope FNH will be here for the long haul!)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Myri</dc:creator><pubDate>Thu, 08 Dec 2011 10:15:46 -0000</pubDate></item><item><title>Re: Me on NHibernate 3.2</title><link>https://lostechies.com/jamesgregory/2011/04/13/me-on-nhibernate-3-2/#comment-367581997</link><description>&lt;p&gt;Good news... I really love fluent nhibernate, make our job much more easier.&lt;/p&gt;&lt;p&gt;Waiting for the next release... :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rafael</dc:creator><pubDate>Fri, 18 Nov 2011 10:27:26 -0000</pubDate></item><item><title>Re: Me on NHibernate 3.2</title><link>https://lostechies.com/jamesgregory/2011/04/13/me-on-nhibernate-3-2/#comment-367252031</link><description>&lt;p&gt;Nope :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">James Gregory</dc:creator><pubDate>Fri, 18 Nov 2011 02:04:48 -0000</pubDate></item><item><title>Re: Me on NHibernate 3.2</title><link>https://lostechies.com/jamesgregory/2011/04/13/me-on-nhibernate-3-2/#comment-367129042</link><description>&lt;p&gt;So.... fluent nhibernate is dead?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rafael</dc:creator><pubDate>Thu, 17 Nov 2011 21:44:36 -0000</pubDate></item><item><title>Re: Me on NHibernate 3.2</title><link>https://lostechies.com/jamesgregory/2011/04/13/me-on-nhibernate-3-2/#comment-360512280</link><description>&lt;p&gt; Hey Greg&lt;/p&gt;&lt;p&gt;When is FNH version 2.0 coming out? &lt;/p&gt;&lt;p&gt;bigFan&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">BigFan</dc:creator><pubDate>Thu, 10 Nov 2011 21:00:15 -0000</pubDate></item><item><title>Re: Observations on the Play! framework</title><link>https://lostechies.com/jamesgregory/2011/09/18/observations-on-the-play-framework/#comment-350701362</link><description>&lt;p&gt;I've always subscribed to the notion that a framework API shouldn't be considered as having 'survived contact with the enemy' until not only has somebody written something using your API, but that they have also written tests against their code.&lt;/p&gt;&lt;p&gt;I've just started getting into Play, having previously used ASP.NET MVC and Rails, and having spent the last few years doing constructor-based injection testing, it's  bit of a disappointment testing-wise. Didn't they learn from the static unmockable HttpContent fiasco in ASP.NET? *sigh*&lt;/p&gt;&lt;p&gt;But maybe it's not a 'deal breaker' - can we make it work anyway?&lt;/p&gt;&lt;p&gt;Controller action methods are meant to be extremely lightweight, and generally you want to get out of those and into services, repositories, other (non-REST) 'controller' objects as quickly as possible.  Those can all be developed using proper instances with constructor injection and all the usual good stuff, no?&lt;/p&gt;&lt;p&gt;Play introduces its own 'FunctionalTest' and 'UnitTest' base classes, but you don't have to use them: you can write your own (fast) plain JUnit tests as long as the code you're testing doesn't make heavy use of Play stuff, which is probably in the database level.  But then you're straying out of unit tests and into more integration-y tests, perhaps?  The biggest area of irritation there is all the static fields inherited from Controller, e.g. 'validation'.&lt;/p&gt;&lt;p&gt;I dunno.  I like the feel of the framework (apart from the curious static methods everywhere) and so I _want_ it to work.  But when I see the great work that's been going on in ASP.NET MVC, where they've made it really easy to use out-of-the-box yet have made everything completely pluggable and testable, Play seems a bit backward.&lt;/p&gt;&lt;p&gt;I'm going to give it a try and see if I can bend it to my DI+unit testing will.  If not, I'm dumping it.  But what's the alternative in Java land? :(&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Royston Shufflebotham</dc:creator><pubDate>Sun, 30 Oct 2011 13:08:20 -0000</pubDate></item><item><title>Re: Observations on the Play! framework</title><link>https://lostechies.com/jamesgregory/2011/09/18/observations-on-the-play-framework/#comment-319613752</link><description>&lt;p&gt;Hi Ryan, you are correct. I do actually do this, though re-reading what I wrote I can see how that's not very clear. My real complaint is that whilst you can run them in your IDE, they require the full web stack to be available before they'll execute; this basically means you get a minimum of a 5s overhead for running your tests. Five seconds doesn't sound like much, I admit, but it quickly gets frustrating when you're used to a fast cycle.&lt;/p&gt;&lt;p&gt;Like many things in Play, I can live with it, and I can appreciate their decisions; however, it would be nice to not *have* to do it their way. I get the feeling Play! is at the place where Rails was a few years ago.&lt;/p&gt;&lt;p&gt;Phase 1: "You WILL do it our way!"&lt;br&gt;Phase 2: "Ok, you SHOULD do it our way but you can deviate a bit"&lt;br&gt;Phase 3: "Our way is the default, do whatever the hell you want though."&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">James Gregory</dc:creator><pubDate>Sun, 25 Sep 2011 12:03:40 -0000</pubDate></item><item><title>Re: Observations on the Play! framework</title><link>https://lostechies.com/jamesgregory/2011/09/18/observations-on-the-play-framework/#comment-319596592</link><description>&lt;p&gt;It's been awhile since I've been in the Java space but I seem to remember being able to run tests through Intellij when using the play "idealize" command see the following link&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.playframework.org/documentation/1.2.3/ide" rel="nofollow noopener" target="_blank" title="http://www.playframework.org/documentation/1.2.3/ide"&gt;http://www.playframework.or...&lt;/a&gt; &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">rssvihla</dc:creator><pubDate>Sun, 25 Sep 2011 11:21:53 -0000</pubDate></item></channel></rss>