<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>LosTechies - 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-284eb207" type="application/json"/><link>http://lostechies-gabrielschenker.disqus.com/</link><description></description><atom:link href="http://lostechies-gabrielschenker.disqus.com/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Wed, 22 May 2013 08:15:37 -0000</lastBuildDate><item><title>Re: How-To add a custom validation method to the jQuery validator plug-in</title><link>http://lostechies.com/gabrielschenker/2009/03/10/how-to-add-a-custom-validation-method-to-the-jquery-validator-plug-in/#comment-904765666</link><description>&lt;p&gt;Nice&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">A</dc:creator><pubDate>Wed, 22 May 2013 08:15:37 -0000</pubDate></item><item><title>Re: Force .NET application to run in 32bit process on 64bit OS</title><link>http://lostechies.com/gabrielschenker/2009/10/21/force-net-application-to-run-in-32bit-process-on-64bit-os/#comment-848976100</link><description>&lt;p&gt;Hi, when a Process is created from an 32bit image it's not possible to use 64bits assemblies. When a process is created from 64bits image, it can't load a 32bits DLL. It's a Windows restriction&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">elopezrios</dc:creator><pubDate>Mon, 01 Apr 2013 20:12:43 -0000</pubDate></item><item><title>Re: Migrating to Git</title><link>http://lostechies.com/gabrielschenker/2010/06/15/migrating-to-git/#comment-836926540</link><description>&lt;p&gt;Checkout &lt;a href="http://FINN.no" rel="nofollow"&gt;FINN.no&lt;/a&gt;'s story of migrating to Git &lt;a href="http://tech.finn.no/given-the-git/" rel="nofollow"&gt;http://tech.finn.no/given-the-...&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A number of similarities, and in addition it covers GitHub Flow, maintaining externals forks, and Atlassian Stash.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">mck ☠</dc:creator><pubDate>Thu, 21 Mar 2013 04:18:29 -0000</pubDate></item><item><title>Re: Dynamic reflection versus static reflection</title><link>http://lostechies.com/gabrielschenker/2009/02/03/dynamic-reflection-versus-static-reflection/#comment-805536446</link><description>&lt;p&gt;According to  &lt;a href="http://stackoverflow.com/questions/7061237/static-reflection-performance" rel="nofollow"&gt;http://stackoverflow.com/quest...&lt;/a&gt; static reflection is slower than classic one.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Michael Freidgeim</dc:creator><pubDate>Wed, 20 Feb 2013 07:04:38 -0000</pubDate></item><item><title>Re: Synchronizing calls to the UI in a multi-threaded application</title><link>http://lostechies.com/gabrielschenker/2009/01/23/synchronizing-calls-to-the-ui-in-a-multi-threaded-application/#comment-775273737</link><description>&lt;p&gt;Very nice generalised design, thanks for sharing this.  I've been using SynchronizationContext for some time and definitely find it preferable to using Control.BeginInvoke.&lt;/p&gt;

&lt;p&gt;A minor criticism: cancellation does not look thread-safe.  The worker thread reads class field stopRequested (QuoteService.Run) and the consumer thread writes to the field (QuoteService.Stop), but there is no thread synchronisation to prevent a race condition.  This means the consumer may call Stop and begin writing to stopRequested when the worker thread reads the field (stopRequested still equals false), resulting in an additional iteration beyond the consumer request to cancel.&lt;/p&gt;

&lt;p&gt;Thread synchronisation can be implemented by using either a lock statement or qualifying stopRequested by 'volatile'.&lt;/p&gt;

&lt;p&gt;So far as I know the race condition here has a minor consequence (potentially delayed cancel) unlike, for example, deposit to/withdrawal from a bank account.  Can anyone think of a situation in which delayed cancel becomes a significant problem?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Groverboy</dc:creator><pubDate>Tue, 22 Jan 2013 19:33:40 -0000</pubDate></item><item><title>Re: Step-by-step Introduction to Delegates and Lambda Expressions</title><link>http://lostechies.com/gabrielschenker/2009/02/03/step-by-step-introduction-to-delegates-and-lambda-expressions/#comment-748396001</link><description>&lt;p&gt;simplest yet most effective  article on lambda expression , expression  tree... I have read so far. Thanks for a great post. &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rvsawant21</dc:creator><pubDate>Thu, 27 Dec 2012 05:39:18 -0000</pubDate></item><item><title>Re: NHibernate 3 Beginners Guide published</title><link>http://lostechies.com/gabrielschenker/2011/08/29/nhibernate-3-beginners-guide-published/#comment-716793511</link><description>&lt;p&gt;which i can buy this book , i need it , give me  a  path or websit   address  then i can pay for money.  my email is vervidian@gmail.com. thx so much.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vervidian</dc:creator><pubDate>Thu, 22 Nov 2012 09:27:59 -0000</pubDate></item><item><title>Re: NHibernate 3 Beginners Guide published</title><link>http://lostechies.com/gabrielschenker/2011/08/29/nhibernate-3-beginners-guide-published/#comment-716793053</link><description>&lt;p&gt;which i can buy this book , i need it , give me  a  path or websit   address  then i can pay for money.  my email is vervidian@gmail.com. thx so much.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Vervidian</dc:creator><pubDate>Thu, 22 Nov 2012 09:27:24 -0000</pubDate></item><item><title>Re: Walking through the creation of a complex installer package</title><link>http://lostechies.com/gabrielschenker/2009/06/26/walking-through-the-creation-of-a-complex-installer-package/#comment-716761575</link><description>&lt;p&gt;What can I do if I have to work with versions??? &lt;br&gt;I mean, if I create a msi with version 1.0 and then I'd like to add some dlls to my existing website, can I just create a repair (1.1) and ask to someone run it for me?? I expected that this new version (1.1) will copy only the files that is new! &lt;/p&gt;

&lt;p&gt;To do that the Guid's has to be the same every time, and only the new files added in the project has to be created with a new guid.&lt;/p&gt;

&lt;p&gt;Is there a way to do that?&lt;br&gt;Thanks, this post is perfect and i really appreciate this... seriously.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LittleFox</dc:creator><pubDate>Thu, 22 Nov 2012 08:50:36 -0000</pubDate></item><item><title>Re: The open closed principle</title><link>http://lostechies.com/gabrielschenker/2009/02/13/the-open-closed-principle/#comment-692735112</link><description>&lt;p&gt;Thanks - Very nice article. &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Per Mikkelsen</dc:creator><pubDate>Fri, 26 Oct 2012 04:00:32 -0000</pubDate></item><item><title>Re: Synchronizing calls to the UI in a multi-threaded application</title><link>http://lostechies.com/gabrielschenker/2009/01/23/synchronizing-calls-to-the-ui-in-a-multi-threaded-application/#comment-661252625</link><description>&lt;p&gt;Million-dollar article!  Thanks a million!  ;)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Mike</dc:creator><pubDate>Mon, 24 Sep 2012 15:40:51 -0000</pubDate></item><item><title>Re: Synchronizing calls to the UI in a multi-threaded application</title><link>http://lostechies.com/gabrielschenker/2009/01/23/synchronizing-calls-to-the-ui-in-a-multi-threaded-application/#comment-659496489</link><description>&lt;p&gt;Fantastic little mechanism that solves the (thread)=&amp;gt;GUI problem nicely.  Is scaleable and simple.  WIN!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Freon</dc:creator><pubDate>Sat, 22 Sep 2012 22:19:24 -0000</pubDate></item><item><title>Re: The Dependency Inversion Principle</title><link>http://lostechies.com/gabrielschenker/2009/01/30/the-dependency-inversion-principle/#comment-620753372</link><description>&lt;p&gt;Hi, the blog is easy to read but is a copy of Robert Martin's post on Object Mentor.  &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Keshav Baweja</dc:creator><pubDate>Thu, 16 Aug 2012 00:47:38 -0000</pubDate></item><item><title>Re: How we got rid of the database&amp;ndash;part 6</title><link>http://lostechies.com/gabrielschenker/2012/06/30/how-we-got-rid-of-the-databasepart-6/#comment-615023146</link><description>&lt;p&gt;Did I miss the follow up post?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bono</dc:creator><pubDate>Thu, 09 Aug 2012 19:58:47 -0000</pubDate></item><item><title>Re: How we got rid of the database&amp;ndash;part 6</title><link>http://lostechies.com/gabrielschenker/2012/06/30/how-we-got-rid-of-the-databasepart-6/#comment-614308421</link><description>&lt;p&gt;Hello Gabriel,  thanks for the so far great introduction into CQRS an ES. After a summerday outside in the garden, watching Greg Young's  long video, your posts were very refreshing. I mostly appreciated the sample code you provided. Debugging working code helps a dummy like me a lot to  understand what your're talking about. Please also integrate this and further posts into your solution (and don't forget to spend your free time without a computer)&lt;/p&gt;

&lt;p&gt;Liebi Grües us de Schwyz von mir und dä Alex.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">C Granwehr</dc:creator><pubDate>Thu, 09 Aug 2012 04:23:08 -0000</pubDate></item><item><title>Re: How we got rid of the database&amp;ndash;part 6</title><link>http://lostechies.com/gabrielschenker/2012/06/30/how-we-got-rid-of-the-databasepart-6/#comment-594040761</link><description>&lt;p&gt;Sorry for the delay, but I was just too busy lately. But the next post is nearly ready to be posted. Thus stay tuned :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">gabrielschenker</dc:creator><pubDate>Sat, 21 Jul 2012 06:40:44 -0000</pubDate></item><item><title>Re: How we got rid of the database&amp;ndash;part 6</title><link>http://lostechies.com/gabrielschenker/2012/06/30/how-we-got-rid-of-the-databasepart-6/#comment-594016441</link><description>&lt;p&gt;Aaaaa. I 've read all 6 posts in 30 minutes and there is no next post and I have to wait (don't know how long) for post no 7. That's why I prefer books.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jiggaboo</dc:creator><pubDate>Sat, 21 Jul 2012 05:06:35 -0000</pubDate></item><item><title>Re: How we got rid of the database&amp;ndash;part 6</title><link>http://lostechies.com/gabrielschenker/2012/06/30/how-we-got-rid-of-the-databasepart-6/#comment-577120058</link><description>&lt;p&gt;Looking forward to that post -- so far nothing I've read in this series explains why you needed to get rid of the database. You still have a database, you just call it a file store. Sounds like you *HAVE* gotten rid of the need for the application to be bound to a data model ala an ORM, which does sound good.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dominic Delmolino</dc:creator><pubDate>Thu, 05 Jul 2012 13:47:57 -0000</pubDate></item><item><title>Re: How we got rid of the database&amp;ndash;part 5</title><link>http://lostechies.com/gabrielschenker/2012/06/24/how-we-got-rid-of-the-databasepart-5/#comment-576819608</link><description>&lt;p&gt;Gabriel,&lt;/p&gt;

&lt;p&gt;Where does the command dispatcher lives in the layered applications ? I guess it's an application layer and all other components in the domain.&lt;br&gt;How do you implement it ? I can't find it in the source code.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Thomas</dc:creator><pubDate>Thu, 05 Jul 2012 08:51:28 -0000</pubDate></item><item><title>Re: How we got rid of the database&amp;ndash;part 6</title><link>http://lostechies.com/gabrielschenker/2012/06/30/how-we-got-rid-of-the-databasepart-6/#comment-576572131</link><description>&lt;p&gt;@Etienne Tremblay having run ES-based for years in various environments (e.g. mixture of local servers and cloud deployments), I must admit that file-level problems are extremely rare. Mostly it is caused by the fact that we store SHA1 with each record, while verifying it on each operation. &lt;br&gt;Second, it is extremely easy to set up continuous and immediate replication to multiple secondary locations off-site, to reduce disk corruption risks.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rinat Abdullin</dc:creator><pubDate>Wed, 04 Jul 2012 22:17:51 -0000</pubDate></item><item><title>Re: How we got rid of the database&amp;ndash;part 6</title><link>http://lostechies.com/gabrielschenker/2012/06/30/how-we-got-rid-of-the-databasepart-6/#comment-576571044</link><description>&lt;p&gt;@Etienne Tremblay , in the case of thorough event sourcing, the simplest approach to versioning is to simply create a new event (_v2) with additional field. More complex scenarios involve, for example, use of Protocol Buffers (with their native ability to handle changes in serialization contracts) and use of in-memory upgraders to make sure that such events apply to the entire event history.&lt;br&gt;Fortunately, when your aggregates are designed using DDD approach, events do not change that often.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rinat Abdullin</dc:creator><pubDate>Wed, 04 Jul 2012 22:14:54 -0000</pubDate></item><item><title>Re: How we got rid of the database&amp;ndash;part 2</title><link>http://lostechies.com/gabrielschenker/2012/06/13/how-we-got-rid-of-the-databasepart-2/#comment-576566963</link><description>&lt;p&gt;@nyxiscoo1 , failure detection is handled at slightly higher level in this approach. In essence, if server blows up, while we are in the middle of message processing (either command message or event message), then this will mean that message itself was not handled (and hence not removed from the queue). &lt;br&gt;This will mean that next time server starts up - it will automatically try to process the message again, hitting the failed event store and throwing up a real exception.&lt;/p&gt;

&lt;p&gt;BTW, I'm currently testing alpha version of the next version of file event store, which should be able to provide better performance and better handling of random server fails. Latest version is currently available in lokad-iddd-sample at github.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rinat Abdullin</dc:creator><pubDate>Wed, 04 Jul 2012 22:04:11 -0000</pubDate></item><item><title>Re: How we got rid of the database&amp;ndash;part 6</title><link>http://lostechies.com/gabrielschenker/2012/06/30/how-we-got-rid-of-the-databasepart-6/#comment-576316299</link><description>&lt;p&gt; I see, I have to write another blog post about why we do not use a database. A lot of readers do not seem to completely understand our motivations... &lt;br&gt;Just as a short note: we do not trade in "the devil with the belzebub".&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">gabrielschenker</dc:creator><pubDate>Wed, 04 Jul 2012 14:42:45 -0000</pubDate></item><item><title>Re: How we got rid of the database&amp;ndash;part 2</title><link>http://lostechies.com/gabrielschenker/2012/06/13/how-we-got-rid-of-the-databasepart-2/#comment-576313592</link><description>&lt;p&gt; Since I did not yet have any time to verify your findings I forwarded your concern to the author of the Lokad.CQRS "framework" Rinat Abdullin. I will also have another look myself.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">gabrielschenker</dc:creator><pubDate>Wed, 04 Jul 2012 14:37:57 -0000</pubDate></item><item><title>Re: How we got rid of the database&amp;ndash;part 2</title><link>http://lostechies.com/gabrielschenker/2012/06/13/how-we-got-rid-of-the-databasepart-2/#comment-576289162</link><description>&lt;p&gt;Hi Gabriel,&lt;br&gt;I've looked at FileTapeStream and other implementation of storages at Lokad.CQRS, and it turned out thet they are absolutely not fail safe.&lt;/p&gt;

&lt;p&gt;For example: if unexpected system reboot occured at the time of writing event, and last record was just partially written, FileTapeStream will throw exception on attempt to load such file. And as a result of using one file per aggreagation root you'll receive this error only next time this root will be addressed.&lt;/p&gt;

&lt;p&gt;Have you any mechanism to prevent this?&lt;/p&gt;

&lt;p&gt;Sorry for my english)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">nyxiscoo1</dc:creator><pubDate>Wed, 04 Jul 2012 14:04:52 -0000</pubDate></item></channel></rss>