<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6821635495514343859</id><updated>2012-01-16T07:01:20.310-08:00</updated><category term='design pattern'/><category term='Twitter'/><category term='enterprise library'/><category term='WCF'/><category term='TreeView'/><category term='MSMQ'/><category term='UI'/><category term='productivity'/><category term='Genuilder'/><category term='caching'/><category term='WPF'/><category term='Data mining'/><category term='mtree'/><category term='Silverlight'/><title type='text'>Coding Tavern</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.codingtavern.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>24</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-4011243626041877399</id><published>2010-11-13T21:17:00.000-08:00</published><updated>2010-11-13T21:21:42.486-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='caching'/><category scheme='http://www.blogger.com/atom/ns#' term='enterprise library'/><title type='text'>FileBackingStore for enterprise library 5.0</title><content type='html'>Here is a FileBackingStore for the caching application block of enterprise library 5.0, I think some people need it.&lt;br /&gt;I just took the source of IsolatedStorageBackingStore, and make it compiles for Files/Directory.&lt;br /&gt;&lt;br /&gt;Hope you'll like it.&lt;br /&gt;&lt;br /&gt;&lt;iframe title ="Preview" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" style="width:98px;height:115px;padding:0;background-color:#fcfcfc;" src="http://cid-19dec0635f5722c4.office.live.com/embedicon.aspx/.Public/FileBackingStore.zip"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-4011243626041877399?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/4011243626041877399/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2010/11/filebackingstore-for-enterprise-library.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/4011243626041877399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/4011243626041877399'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2010/11/filebackingstore-for-enterprise-library.html' title='FileBackingStore for enterprise library 5.0'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-692785258180790767</id><published>2010-07-20T01:36:00.000-07:00</published><updated>2010-07-20T04:29:40.213-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><title type='text'>How to overcome the programmer's block ?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ppOHTm5wefY/TEWIajHQgOI/AAAAAAAAADc/zdbWncoKb3A/s1600/block.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 159px;" src="http://2.bp.blogspot.com/_ppOHTm5wefY/TEWIajHQgOI/AAAAAAAAADc/zdbWncoKb3A/s320/block.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5495948909959217378" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Have you already suffered from the programmer's block ?&lt;br /&gt;This is the same thing as &lt;a href="http://en.wikipedia.org/wiki/Writer's_block"&gt;  the writer's block &lt;/a&gt; but for programmers !&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;You have work to do, but you can't decide where to start.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;You write two lines of code, but remove them 2 minutes later because you need to refactor the code you already refactored 3 minute earlier.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;You write lots of interfaces without implementation, and remove them 2 minutes later because they don't seem necessary after all.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;I'm a developer and to be honest, user interface design was really not my main concern.&lt;br /&gt;But over time, I've seen that clients don't care about my code, and that this crappy Photoshop designer was getting more credit than me because he can make the client dreams in 2 hours of work.&lt;br /&gt;&lt;br /&gt;I've seen enterprise selling products with nothing more than a pretty powerpoint presentation and three screenshots made with Photoshop of what they are going to develop.&lt;br /&gt;&lt;br /&gt;Now, I try to make my own business and I start to understand.&lt;br /&gt;As an entrepreneur, my main concern was to know if my idea was going to work with the least amount of work I can.&lt;br /&gt;&lt;br /&gt;I don't know how to use Photoshop, but I'm pretty good with Visual Studio and I started to create an horizontal mockup of my product in Silverlight.&lt;br /&gt;&lt;br /&gt;And this is what I learnt :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Going from what the user sees to your code is easier than the contrary.&lt;/b&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Ignoring all good coding practices is the key to be a better user interface designer.&lt;/b&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;It makes meaning since your brain is only focused on one task : make your interface beautiful.&lt;br /&gt;&lt;br /&gt;In only 2 days of work, I was able to make a potential client to dream, and, the most important is that I removed useless features before developing them.&lt;br /&gt;&lt;br /&gt;And now I have a &lt;b&gt; clear goal &lt;/b&gt;.&lt;br /&gt;Page after page, layer after layer, the mockup is becoming a prototype, I clean my code, move the hard coded data, and I can finally focus on good coding practices since my user interface is already done.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;If your goals are clear, you will not suffer from the programmer's block.&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-692785258180790767?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/692785258180790767/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2010/07/how-to-overcome-programmers-block.html#comment-form' title='3 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/692785258180790767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/692785258180790767'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2010/07/how-to-overcome-programmers-block.html' title='How to overcome the programmer&apos;s block ?'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ppOHTm5wefY/TEWIajHQgOI/AAAAAAAAADc/zdbWncoKb3A/s72-c/block.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-2886098572703828751</id><published>2010-07-15T13:00:00.000-07:00</published><updated>2010-07-15T13:53:46.144-07:00</updated><title type='text'>Why are you wasting your time learning without using your new skills ?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ppOHTm5wefY/TD9025yvEkI/AAAAAAAAADU/HPSKPN-fXU4/s1600/DSC08060.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 320px;" src="http://4.bp.blogspot.com/_ppOHTm5wefY/TD9025yvEkI/AAAAAAAAADU/HPSKPN-fXU4/s320/DSC08060.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5494238556990673474" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I don't know if you have the same problem as me. Your room is filled with programming books. You probably already read all of them, partially at least. &lt;br /&gt;&lt;br /&gt;Maybe there is also some artificial intelligence books and data mining books, some image analysis books also.&lt;br /&gt;&lt;br /&gt;And what about the ones about DSL and compilers theory, that's just here too, it was fun to learn, you probably loved that too !&lt;br /&gt;&lt;br /&gt;And now, I'm asking you -I ask to myself too- : "Why am I always coding these business apps of the hell ?"&lt;br /&gt;&lt;br /&gt;"Why am I not using all my knowledge ?"&lt;br /&gt;&lt;br /&gt;In my case I wrote this blog because I wanted so much to use all what I learnt and to share fun and crazy projects with everyone. To be honest, until now, I've failed.&lt;br /&gt;&lt;br /&gt;So from now, I propose : "If you read a book, don't read a new one until you have used what you have just learnt."&lt;br /&gt;&lt;br /&gt;If you had fun learning your new skills, you'll have fun to test and share them.&lt;br /&gt;&lt;br /&gt;Yes, that's also my new resolution !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-2886098572703828751?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/2886098572703828751/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2010/07/why-are-you-wasting-your-time-learning.html#comment-form' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/2886098572703828751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/2886098572703828751'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2010/07/why-are-you-wasting-your-time-learning.html' title='Why are you wasting your time learning without using your new skills ?'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ppOHTm5wefY/TD9025yvEkI/AAAAAAAAADU/HPSKPN-fXU4/s72-c/DSC08060.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-1204331176005926766</id><published>2010-07-09T03:44:00.000-07:00</published><updated>2010-07-09T03:46:23.906-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>ThicknessAnimation in Silverlight</title><content type='html'>Well, no such thing exist in Silverlight, but maybe some of you can be interested by a workaround.&lt;br /&gt;&lt;br /&gt;You'll be able to easily animate Margin, Padding or BorderThickness.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/silverlight/ThicknessAnimation.aspx"&gt;It's on CodeProject.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-1204331176005926766?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/1204331176005926766/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2010/07/thicknessanimation-in-silverlight.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/1204331176005926766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/1204331176005926766'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2010/07/thicknessanimation-in-silverlight.html' title='ThicknessAnimation in Silverlight'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-1600091433236669758</id><published>2010-06-28T00:10:00.001-07:00</published><updated>2010-06-28T00:12:31.535-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Genuilder'/><title type='text'>Need feature idea to implement with Genuilder.Extensibility !!!!</title><content type='html'>Epic fail ! &lt;a href="http://www.codeproject.com/KB/codegen/StronglyTypedAppSettings.aspx"&gt;My article&lt;/a&gt; on strongly typed AppSettings is not a success.&lt;br /&gt;&lt;br /&gt;I need a killer feature to implement with it, any idea ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-1600091433236669758?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/1600091433236669758/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2010/06/need-feature-idea-to-implement-with.html#comment-form' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/1600091433236669758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/1600091433236669758'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2010/06/need-feature-idea-to-implement-with.html' title='Need feature idea to implement with Genuilder.Extensibility !!!!'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-4494631653644667070</id><published>2010-06-27T01:32:00.001-07:00</published><updated>2010-06-27T01:38:09.531-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Genuilder'/><title type='text'>Genuilder.Extensibility use case, Strongly typed AppSettings !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ppOHTm5wefY/TCcM10nUmJI/AAAAAAAAADM/SeE3pVQeQyw/s1600/Autocompletion.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 302px; height: 119px;" src="http://1.bp.blogspot.com/_ppOHTm5wefY/TCcM10nUmJI/AAAAAAAAADM/SeE3pVQeQyw/s320/Autocompletion.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5487368789770410130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I just finished an article which show how to use Genuilder to generate code based on the config file.&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/codegen/StronglyTypedAppSettings.aspx"&gt;It's on CodeProject&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I also released Genuilder 1.3 with &lt;br /&gt;-some bug fixes,&lt;br /&gt;-integration with MSBuild (a logger to send warning and error)&lt;br /&gt;-Include the config file in the CodeItems tracked by Genuilder.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://genuilder.codeplex.com/releases"&gt;It's on CodePlex&lt;/a&gt; !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-4494631653644667070?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/4494631653644667070/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2010/06/genuilderextensibility-use-case.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/4494631653644667070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/4494631653644667070'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2010/06/genuilderextensibility-use-case.html' title='Genuilder.Extensibility use case, Strongly typed AppSettings !'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ppOHTm5wefY/TCcM10nUmJI/AAAAAAAAADM/SeE3pVQeQyw/s72-c/Autocompletion.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-1714217218820436054</id><published>2010-06-19T01:46:00.001-07:00</published><updated>2010-06-19T01:57:12.820-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Genuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='UI'/><title type='text'>Genuilder.Extensibility is not sexy !</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;I just see that &lt;a href="http://www.codeproject.com/KB/codegen/GenuilderExtensibility.aspx"&gt;my article on CodeProject&lt;/a&gt; did not attract lots of reader. I thought that was my best work !&lt;br /&gt;&lt;br /&gt;I'm wondering if I can't make things a bit more sexy, like a UI to activate features and plugins on your projects.&lt;br /&gt;&lt;br /&gt;This UI will automatically take sources on CodePlex, compile, and pakage all files your projects need to run their features.&lt;br /&gt;&lt;br /&gt;Anyway, the interface must be sexy, it seems that it gets more reader ! ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-1714217218820436054?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/1714217218820436054/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2010/06/genuilderextensibility-is-not-sexy.html#comment-form' title='4 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/1714217218820436054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/1714217218820436054'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2010/06/genuilderextensibility-is-not-sexy.html' title='Genuilder.Extensibility is not sexy !'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-538964553081999445</id><published>2010-06-12T00:11:00.000-07:00</published><updated>2010-06-12T00:31:10.701-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Genuilder'/><title type='text'>Genuilder.Extensibility is on CodeProject</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ppOHTm5wefY/TBMzVtITvlI/AAAAAAAAAC8/kh4gwO5ELGw/s1600/genuilderLogo.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 213px; height: 61px;" src="http://3.bp.blogspot.com/_ppOHTm5wefY/TBMzVtITvlI/AAAAAAAAAC8/kh4gwO5ELGw/s320/genuilderLogo.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5481781619424738898" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It is finally here ! &lt;a href="http://www.codeproject.com/KB/codegen/GenuilderExtensibility.aspx"&gt;Genuilder.Extensibility on CodeProject&lt;/a&gt;. And the &lt;a href="http://genuilder.codeplex.com/documentation"&gt;documentation updated on CodePlex&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Need lots of improvements but... LET'S SHIP THAT DAMN LATE PROJECT !! :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-538964553081999445?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/538964553081999445/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2010/06/genuilderextensibility-is-on.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/538964553081999445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/538964553081999445'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2010/06/genuilderextensibility-is-on.html' title='Genuilder.Extensibility is on CodeProject'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ppOHTm5wefY/TBMzVtITvlI/AAAAAAAAAC8/kh4gwO5ELGw/s72-c/genuilderLogo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-1698720398247494751</id><published>2010-06-10T09:03:00.000-07:00</published><updated>2010-06-10T09:05:57.963-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Genuilder'/><title type='text'>Genuilder.Extensibility is on Codeplex</title><content type='html'>Hello,&lt;br /&gt;&lt;br /&gt;As you might expect, I spent most of my time coding Genuilder.Extensibility... 6 months late !!&lt;br /&gt;&lt;br /&gt;It's on CodePlex, I'm writing the article and documentation for CodeProject and Codeplex, it will be out for saturday ;)&lt;br /&gt;&lt;br /&gt;Happy Coding,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-1698720398247494751?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/1698720398247494751/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2010/06/genuilderextensibility-is-on-codeplex.html#comment-form' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/1698720398247494751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/1698720398247494751'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2010/06/genuilderextensibility-is-on-codeplex.html' title='Genuilder.Extensibility is on Codeplex'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-6834609955655840076</id><published>2010-05-23T06:07:00.000-07:00</published><updated>2010-05-23T07:06:24.699-07:00</updated><title type='text'>Developer As A Service has killed me... That's good news !</title><content type='html'>As I'm fully aware that Developer As A Service is fundamentally bad for our mental health, I did exactly that for the last 6 months.&lt;br /&gt;&lt;br /&gt;That put me down. Epic fail ! And worse... I knew it would happen.&lt;br /&gt;&lt;br /&gt;However that is good news, I'm recovering my creative thoughts to code things that matter. Projects I spread here, on CodeProject, and on Codeplex are my greatest pride.&lt;br /&gt;&lt;br /&gt;Stopping to write and to code things for the community was my biggest mistake. &lt;br /&gt;From now I'll spend 80% of my time to get back the joy I had for programming.&lt;br /&gt;The biggest proud as a developer is to see its work loved, I'll work now for the community, my work is yours, I think this is the best way I have to love my job again.&lt;br /&gt;&lt;br /&gt;Happy coding !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-6834609955655840076?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/6834609955655840076/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2010/05/developer-as-service-has-killed-me.html#comment-form' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/6834609955655840076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/6834609955655840076'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2010/05/developer-as-service-has-killed-me.html' title='Developer As A Service has killed me... That&apos;s good news !'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-1039910514529914060</id><published>2010-04-17T12:45:00.000-07:00</published><updated>2010-04-17T13:39:05.926-07:00</updated><title type='text'>Developer As A Service is killing you...</title><content type='html'>Back in the old school days (3 years ago), I was -and I am- a student which loved to code everyday, every hour, every time. And seriously, I did not pass a single day without coding something, or reading a developer book.&lt;br /&gt;&lt;br /&gt;I thought I'll love to do that all my life, all was well and I lived happy.&lt;br /&gt;&lt;br /&gt;Then one day came internships... the projects was cool and people too, but something was wrong... It was not as fun as before ?&lt;br /&gt;&lt;br /&gt;Then one day came clients... most of the time the projects are cool, the cash is flowing, but I really hate coding now, and try to stop thinking about it at home.&lt;br /&gt;3 years ago, I did not understand how such developers could exist.&lt;br /&gt;&lt;br /&gt;The truth is that I'm not the only one in this case. And every developer with clients/boss probably feels the same. &lt;br /&gt;&lt;br /&gt;Are you doomed to hate what you do ? I'm truly convince that developer is the best job in the world, why do we hate it ?&lt;br /&gt;&lt;br /&gt;It took me a long time to realize that the fun in development is to build your own castle, not the one of a king. Developer is boring and stressful without the creative part. It is the creative part which made you code at 3am when you were in college. It is the creative part which make me write articles on Code Project or Genuilder.&lt;br /&gt;&lt;br /&gt;Your client or boss is stealing you the creative part.&lt;br /&gt;&lt;br /&gt;This is what I call &lt;span style="font-weight:bold;"&gt;Developer As A Service&lt;/span&gt; and it is already killing you.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Developer As A Service&lt;/span&gt; is when you are getting requirements from someone else and it is your job to implement it. It can be a sales person, your manager, your boss, your client.&lt;br /&gt;&lt;br /&gt;The only solution to get out of this mess is to take back the creative part. But what does it mean ?&lt;br /&gt;&lt;br /&gt;It means you have to do your job with no garantee to be paid.&lt;br /&gt;It means that the "client" give suggestion, not order.&lt;br /&gt;&lt;br /&gt;I'm conscious some people can't afford to take this risk... But what do you choose, if you had the choice between earning 2000$ and creating a Framework/Software/Site used by thousands of people for free ?&lt;br /&gt;Well, at the start I would take the 2000$ but now I'm sure that what will give me the more on the long term is to create your own stuff for free and give it to people who needs it.&lt;br /&gt;&lt;br /&gt;Get back your creativity and your love for programming.&lt;br /&gt;Make no compromise for your art. Because if you do that is not art anymore.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-1039910514529914060?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/1039910514529914060/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2010/04/developer-as-service-is-killing-you.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/1039910514529914060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/1039910514529914060'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2010/04/developer-as-service-is-killing-you.html' title='Developer As A Service is killing you...'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-6379411958259589302</id><published>2010-02-14T09:02:00.000-08:00</published><updated>2010-02-14T09:04:46.328-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='design pattern'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Wrapper Pattern in Silverlight and WPF</title><content type='html'>It has been a long time since my last article, I wanted to do it on Genuilder.Extensibility, and I will later, but I've not completely finished it -it's buggy for now- :(&lt;br /&gt;&lt;br /&gt;Make your code a little better in WPF and Silverlight : &lt;a href="http://www.codeproject.com/KB/architecture/WrapperPatternSLWPF.aspx"&gt;It's on CodeProject&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-6379411958259589302?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/6379411958259589302/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2010/02/wrapper-pattern-in-silverlight-and-wpf.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/6379411958259589302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/6379411958259589302'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2010/02/wrapper-pattern-in-silverlight-and-wpf.html' title='Wrapper Pattern in Silverlight and WPF'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-4066167901518336808</id><published>2010-01-30T02:21:00.000-08:00</published><updated>2010-01-31T01:15:23.455-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='TreeView'/><title type='text'>Multi Selection TreeView in WPF, the easy way...</title><content type='html'>I was losing my precious coding time to implement a feature microsoft could do themselves... It's their fault if Genuilder is late ! :p&lt;br /&gt;&lt;br /&gt;By the way here is how to use it.&lt;br /&gt;In this example I define an implicit syle for TreeViewItem which set the border in gray when it is selected.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush : xml"&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;Style TargetType="{x:Type TreeViewItem}"&amp;gt;&lt;br /&gt;&amp;lt;Setter Property="BorderThickness" Value="1"&amp;gt;&amp;lt;/Setter&amp;gt;&lt;br /&gt;&amp;lt;Style.Triggers&amp;gt;&lt;br /&gt;&amp;lt;Trigger  Property="c:TreeViewExtensions.IsSelected"  Value="True" &amp;gt;&lt;br /&gt; &amp;lt;Setter Property="BorderBrush" Value="Gray"&amp;gt;&amp;lt;/Setter&amp;gt;&lt;br /&gt;&amp;lt;/Trigger&amp;gt;&lt;br /&gt;&amp;lt;/Style.Triggers&amp;gt;&lt;br /&gt;&amp;lt;/Style&amp;gt;&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&amp;lt;TreeView c:TreeViewExtensions.EnableMultiSelect="true"&lt;br /&gt;c:TreeViewExtensions.SelectedItems="{Binding SelectedItems}"&lt;br /&gt;ItemsSource="{Binding Items}"&lt;br /&gt;... /&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Here is the TreeViewExtension :&lt;br /&gt;&lt;br /&gt;&lt;iframe title="Preview" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" style="width:98px;height:115px;padding:0;background-color:#fcfcfc;" src="http://cid-58d72cdca7a1ed24.skydrive.live.com/embedicon.aspx/.Public/TreeViewExtensions.cs"&gt;&lt;/iframe&gt;&lt;br /&gt;And the sample app :&lt;br /&gt;&lt;iframe title ="Preview" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" style="width:98px;height:115px;padding:0;background-color:#fcfcfc;" src="http://cid-58d72cdca7a1ed24.skydrive.live.com/embedicon.aspx/.Public/MultiSelectionTreeView.zip"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-4066167901518336808?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/4066167901518336808/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2010/01/multi-selection-treeview-in-wpf-easy.html#comment-form' title='6 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/4066167901518336808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/4066167901518336808'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2010/01/multi-selection-treeview-in-wpf-easy.html' title='Multi Selection TreeView in WPF, the easy way...'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-3069005734044066198</id><published>2010-01-11T23:35:00.000-08:00</published><updated>2010-01-11T23:50:40.753-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Genuilder'/><title type='text'>Genuilder.Extensibility Features</title><content type='html'>Well there is a long time since my last post... I was coding on Genuilder.Extensibility and restarted the design from scratch 6 times !&lt;br /&gt;Well I can now a least tell you the features :&lt;br /&gt;&lt;br /&gt;-Generate your own code just before the compilation, using the parser you want (default will be the parser of SharpDevelop).&lt;br /&gt;&lt;br /&gt;-You can link the generated code to a file. If the file is modified, the code is re-generated, if the file is deleted, generated code is also deleted. Automatically, the code will not be generated if it is already up to date.&lt;br /&gt;&lt;br /&gt;-You will be able to modify code files or throw build time errors.&lt;br /&gt;&lt;br /&gt;Using all these features will be as easy as creating a class library project, referencing Genuilder.Extensibility assembly, and implementing the IPlugin interface. This assembly is called "Plugins assembly", and can contain more than one plugin.&lt;br /&gt;&lt;br /&gt;After enabling Genuilder.Extensibility on your target project, you just have to reference the plugins assembly and compile... That's all.&lt;br /&gt;&lt;br /&gt;No install, no hack in your visual studio, no vs addin, no nothing, it just works.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-3069005734044066198?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/3069005734044066198/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2010/01/genuilderextensibility-features.html#comment-form' title='3 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/3069005734044066198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/3069005734044066198'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2010/01/genuilderextensibility-features.html' title='Genuilder.Extensibility Features'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-7977111315612553944</id><published>2009-11-14T13:23:00.000-08:00</published><updated>2009-11-15T07:30:10.053-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Genuilder'/><title type='text'>Genuilder.Extensibility for easy Meta-development.</title><content type='html'>Well, I'm happy with the success that &lt;a href="http://genuilder.codeplex.com/"&gt;Genuilder&lt;/a&gt; had. It seems that the concept is appealing to lots developers.&lt;br /&gt;&lt;br /&gt;However, the first version was just a test and even if the features are not so bad, there is too much use case I can think about.&lt;br /&gt;&lt;br /&gt;The next feature of Genuilder will be called Genuilder.Extensibility, and the goal to create a framework that developers will use to modify code files or create new one easily during the build process, without using MSBuild.&lt;br /&gt;&lt;br /&gt;As always, the developer will need to activate Genuilder on his projects. &lt;br /&gt;After that, if he wants to create a plugin, the only thing to do will be to create a plain old class library, and create his plugins inside. &lt;br /&gt;Then, he just references it in targets project...&lt;br /&gt;&lt;br /&gt;Plugins will have access to all the source code of the target project.&lt;br /&gt;Genuilder.Extensibility will be heavily coupled with &lt;a href="http://wiki.sharpdevelop.net/NRefactory.ashx"&gt;NRefactory&lt;/a&gt;, since my goal is not to create another code parser, and I don't want developers to parse themselves the source code.&lt;br /&gt;Also, I'm evaluating &lt;a href="http://www.codeplex.com/MEF"&gt;MEF&lt;/a&gt;, maybe plugins will be exported with the MEF framework. I currently don't know if I will use it because it depends if it makes plugin developers'life easier.&lt;br /&gt;&lt;br /&gt;Keep in touch,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-7977111315612553944?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/7977111315612553944/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2009/11/extensible-genuilder-for-easy-meta.html#comment-form' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/7977111315612553944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/7977111315612553944'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2009/11/extensible-genuilder-for-easy-meta.html' title='Genuilder.Extensibility for easy Meta-development.'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-5032962820105181389</id><published>2009-11-07T10:07:00.000-08:00</published><updated>2009-12-09T07:21:36.047-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Genuilder'/><title type='text'>Genuilder Out !!!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ppOHTm5wefY/SvW3me7AmOI/AAAAAAAAACo/zY-jyONDliM/s1600-h/genuilderLogo.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 213px; height: 61px;" src="http://1.bp.blogspot.com/_ppOHTm5wefY/SvW3me7AmOI/AAAAAAAAACo/zY-jyONDliM/s320/genuilderLogo.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5401425199864256738" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Genuilder Out, I'm very proud of this project, it will enhance your build process and visual studio so easily that you will wonder why nobody thought about it earlier...&lt;br /&gt;By the way, it's on &lt;a href="http://www.codeproject.com/KB/codegen/genuilder.aspx"&gt;CodeProject&lt;/a&gt;, and it's home is on &lt;a href="http://genuilder.codeplex.com/"&gt;CodePlex&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-5032962820105181389?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/5032962820105181389/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2009/11/genuilder-out.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/5032962820105181389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/5032962820105181389'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2009/11/genuilder-out.html' title='Genuilder Out !!!'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ppOHTm5wefY/SvW3me7AmOI/AAAAAAAAACo/zY-jyONDliM/s72-c/genuilderLogo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-4999341167874366877</id><published>2009-10-25T13:11:00.000-07:00</published><updated>2009-10-29T00:46:28.333-07:00</updated><title type='text'>Meta-development</title><content type='html'>Most developers seems to agree : Laziness is a talent.&lt;br /&gt;The interesting part with this talent is that, when we have boring things to do, we can create a tool which does the boring work for us... And that's interesting! It's what make a boring development funny.&lt;br /&gt;&lt;br /&gt;And yet, it seems that there is potential to exploit here in all of us. Not so many developers creates tools for themselves, I'll call this activity Meta-Development, because it's development about development.&lt;br /&gt;&lt;br /&gt;In the The mythical man month, Fred Brooks exposes an idea of team organisation it's called "The Surgical Team", without entering in details the "Surgical Team" splits differents role for each member. One of the role I want to talk about is the "Toolsmith", as you might expect, it's the developer who creates tools for other developers, what I call Meta-developer.&lt;br /&gt;&lt;br /&gt;Are you a meta-developer ? An easy way to find out, is to ask yourself this question : "Do I eat my own dog food ?". If you don't, most probably you can improve yourself by creating tools for your specific needs (and not the needs of your client).&lt;br /&gt;&lt;br /&gt;Too many times, developers seem to be in a hurry : "I don't have time to do that", when I hear that it translates to "I've never done it, so it will take me too much time". And guess what ? It's the same lame pretext that inexperienced programers say to justify their ignorance. If you can't hack a tool for yourself, how are you able to create one for your customers?&lt;br /&gt;&lt;br /&gt;There is never time to do well, but always time to restart from scratch.&lt;br /&gt;&lt;br /&gt;Indeed, it takes time to create tools for ourselves, but the more we'll do that, the less time it will take.&lt;br /&gt;&lt;br /&gt;Well, it seems that a lots of articles on CodeProject are about meta-development (cool tips and tricks for developers only)... but I wonder, how many of article's author eat their own dog food ? Personally, I haven't yet and it's a shame!&lt;br /&gt;&lt;br /&gt;My next article Genuilder, (Mix of 'Generator' and 'Builder'), will probably be the first project I'll make on CodeProject that I will use on a daily basis (along with my personnal framework I create with tips and tricks taken all over the net).&lt;br /&gt;&lt;br /&gt;If I'm able to eat my own dog food, there is a good probability that others will like it too !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-4999341167874366877?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/4999341167874366877/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2009/10/meta-development.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/4999341167874366877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/4999341167874366877'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2009/10/meta-development.html' title='Meta-development'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-696081269594860670</id><published>2009-10-17T17:50:00.000-07:00</published><updated>2009-10-17T21:02:56.594-07:00</updated><title type='text'>AppConfigVerifier on Codeproject and Codeplex !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ppOHTm5wefY/StprWvi6DHI/AAAAAAAAACg/1ARm_HFMDcE/s1600-h/appconfigverifier.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 245px;" alt="Image Copyright All Rights Reserved by Flickr member dr_odio." src="http://1.bp.blogspot.com/_ppOHTm5wefY/StprWvi6DHI/AAAAAAAAACg/1ARm_HFMDcE/s320/appconfigverifier.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5393741542193761394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;AppConfigVerifier is out ! How to use an MSBuild custom task to provide compile time verification of string type names in app.config files. &lt;br /&gt;It's on &lt;a href="http://www.codeproject.com/KB/cs/AppConfigVerifier.aspx"&gt;CodeProject&lt;/a&gt; and &lt;a href="http://appconfigverifier.codeplex.com/"&gt;CodePlex&lt;/a&gt;. This project was an idea from &lt;a href="http://danielvaughan.orpius.com/"&gt;Daniel&lt;/a&gt; and me just before Left 4 Dead time. Thank you ! :)&lt;br /&gt;&lt;br /&gt;It seems some people will like it, but most will be too lazy to import the config verifier in their project file.&lt;br /&gt;&lt;br /&gt;So, I am creating a new project called Power Builder, it will be a target file to include inside a project file to have at the same time the &lt;a href="http://appconfigverifier.codeplex.com/"&gt;AppConfigVerifier&lt;/a&gt;, the  &lt;a href="http://www.codeproject.com/KB/codegen/AppSettingsClassGenerator.aspx"&gt;AppSettingsGenerator&lt;/a&gt;, the &lt;a href="http://www.codeproject.com/KB/codegen/T4Metadata.aspx"&gt;metadata Generator&lt;/a&gt;, and a AppConfig class generator to get sections of the AppConfig in a strongly typed way. I hope people will like it ! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-696081269594860670?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/696081269594860670/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2009/10/appconfigverifier-on-codeproject-and.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/696081269594860670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/696081269594860670'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2009/10/appconfigverifier-on-codeproject-and.html' title='AppConfigVerifier on Codeproject and Codeplex !'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ppOHTm5wefY/StprWvi6DHI/AAAAAAAAACg/1ARm_HFMDcE/s72-c/appconfigverifier.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-1361862663355702744</id><published>2009-10-05T13:08:00.000-07:00</published><updated>2009-10-05T23:46:42.978-07:00</updated><title type='text'>Code generation and MSBuild</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ppOHTm5wefY/SspTBUVQCAI/AAAAAAAAACY/L61Fxy7kGcA/s1600-h/title.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 94px;" src="http://2.bp.blogspot.com/_ppOHTm5wefY/SspTBUVQCAI/AAAAAAAAACY/L61Fxy7kGcA/s320/title.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5389211186205034498" /&gt;&lt;/a&gt;&lt;br /&gt;Well I'm having a had time to code a good metric tree algorithm, so I thought that writing an article on MSBuild will clear my mind on that! &lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/codegen/AppSettingsClassGenerator.aspx"&gt;Strongly typed AppSettings on Codeproject! :)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-1361862663355702744?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/1361862663355702744/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2009/10/code-generation-and-msbuild.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/1361862663355702744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/1361862663355702744'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2009/10/code-generation-and-msbuild.html' title='Code generation and MSBuild'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ppOHTm5wefY/SspTBUVQCAI/AAAAAAAAACY/L61Fxy7kGcA/s72-c/title.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-545225360987857890</id><published>2009-09-28T12:44:00.000-07:00</published><updated>2009-09-28T13:19:02.495-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Data mining'/><category scheme='http://www.blogger.com/atom/ns#' term='mtree'/><title type='text'>Index your hard drive and find duplicates with M-Trees</title><content type='html'>Truth to be told, I'm not a computer scientist... I'm a developer. I'm not working in research area because I'm too dumb to think, I just prefer to build.&lt;br /&gt;As a developer, I wanted to learn by curiosity AI and I've bought this book in during a trip in China (it was not expensive !!) &lt;a href="http://www.amazon.com/gp/product/0137903952/ref=cm_rdp_product"&gt;Artificial Intelligence: A Modern Approachh by Stuart Russell and Peter Norvig&lt;/a&gt;.&lt;br /&gt;Out of luck, this book is mathematician oriented, I'm really really too dumb to understand what's going on... (I understood some parts, but my mind had to turn off the creative mode).&lt;br /&gt;&lt;br /&gt;AI was too hard, so I wanted to learn Data Mining instead; then I've &lt;a href="http://stackoverflow.com/questions/1395711/recommended-data-mining-books-for-a-developer-not-mathematician"&gt;stackoverflown a little bit&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Then, I amazoned &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0120884070/departmofcompute"&gt;Data Mining: Practical Machine Learning Tools and Techniques by Ian H. Witten , Eibe Frank&lt;/a&gt;, and I don't regret it !!!!!&lt;br /&gt;I discovered that Data mining is just another word to say AI, some sections of this book overlap with my last one, the difference is that this book is really for developers, don't wait just buy, if you want ideas, you'll have !&lt;br /&gt;Metric Tree (M-Tree) are not aborded by this book but they mention it, curiousity obliged, I &lt;a href="ftp://ftp-db.deis.unibo.it/pub/paolo/PAPERS/VLDB97.pdf"&gt;googled&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Quickly, you just have to define what is &lt;a href="http://en.wikipedia.org/wiki/Metric_(mathematics)"&gt;the distance as defined on wikipedia&lt;/a&gt; between two objetcts (not necessarily between two numbers).&lt;br /&gt;And then you can easily search the nearest neighbour of an object. Or the objects contained in a range. And that very very quickly approximatively O(log(n)) where n is the number of objects.&lt;br /&gt;&lt;br /&gt;What if these objects where the files on my hard drives, and the distance function was the &lt;a href="http://en.wikipedia.org/wiki/Hamming_distance"&gt;Hamming distance&lt;/a&gt; between these two files ? Yeah, I will easily find similar or duplicate files on my hard drive ! See you, I need to code NOW !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-545225360987857890?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/545225360987857890/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2009/09/index-your-hard-drive-and-find.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/545225360987857890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/545225360987857890'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2009/09/index-your-hard-drive-and-find.html' title='Index your hard drive and find duplicates with M-Trees'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-6125845777134176720</id><published>2009-09-23T06:17:00.000-07:00</published><updated>2009-09-23T13:24:24.465-07:00</updated><title type='text'>Measurement and Leverage</title><content type='html'>Some times ago, I've read &lt;a href="http://www.paulgraham.com/wealth.html"&gt;"How to make wealth" of Paul Graham&lt;/a&gt;. And I've finally found why I don't enjoy when I code for my company as when I code for fun.&lt;br /&gt;Thanks Paul Graham, I'm sorry that you hate Microsoft so much, but I figured out what is fun for the developer.&lt;br /&gt;&lt;br /&gt;The response is "Measurement and Leverage".&lt;br /&gt;&lt;br /&gt;When you code for yourself, you have both. I mean that you can measure if what you've done is useless, and if you like it, because... you work for yourself. &lt;br /&gt;Most of the times, when you code something for yourself, either it's a great utility which saves you lots of times so it have an impact on your life, either you have learned something valuable in the process which will change your habits and your way of thinking. That's Leverage, what you do for yourself has impacts on you.&lt;br /&gt;&lt;br /&gt;Coding for fun has both measurement and leverage. Contributing to a community, and share what you do increase measurement, a lot of people can tell you how much you suck.&lt;br /&gt;&lt;br /&gt;Now, why I don't enjoy what I do at work ? Even if it's technologicaly interesting ? Even when I learn something from it ? Even if I'm in a cool company ?&lt;br /&gt;I thought that the only things I'll love to do at work was stuff for myself : if we tell me to do X, I will create a tool Y to do X for me, this way it's fun because I'm my own user... But recently, I've had a project which wasn't for me, and that I enjoyed. So maybe I'm not that selfish, why did I enjoyed that?&lt;br /&gt;&lt;br /&gt;Two things: First, I was sure the user will like what I do and that my dear code will be directly useful to him. That's leverage, my program will change the way the user do things, that's so cool!&lt;br /&gt;The other thing, is that my user was frequently trying new versions of my program and he gave me his feedback, that was measurement.&lt;br /&gt;&lt;br /&gt;So from now, I want nothing between the end user and me.&lt;br /&gt;If the user ignores me, I'll ignore the program and seeks users who cares, or maybe I'll create a new program which users care.&lt;br /&gt;&lt;br /&gt;The bad things, is that from what I've seen, when you are an employee, most of the times you loose leverage and measurement. The "team" do something and the "manager" will tell you if the overall program is good. In this case, you've lost everything.&lt;br /&gt;&lt;br /&gt;So now, I'm very excited, I will create a startup with &lt;a href="http://www.c0ding.fr/"&gt;Vincent&lt;/a&gt;. This adventure will be a great playground to test this theory : "Making stuffs in collaboration with the end user is fun!".&lt;br /&gt;I don't know where it will bring us, future will tell us.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-6125845777134176720?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/6125845777134176720/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2009/09/measurement-and-leverage.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/6125845777134176720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/6125845777134176720'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2009/09/measurement-and-leverage.html' title='Measurement and Leverage'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-7922798590574024532</id><published>2009-09-21T14:18:00.001-07:00</published><updated>2009-09-21T14:23:15.902-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>Wcf over Twitter</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ppOHTm5wefY/SrfuQ7deePI/AAAAAAAAACQ/3cIDMYrA5es/s1600-h/wcfovetwitter.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 219px;" src="http://3.bp.blogspot.com/_ppOHTm5wefY/SrfuQ7deePI/AAAAAAAAACQ/3cIDMYrA5es/s320/wcfovetwitter.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5384033854151358706" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Yeah, I know that's a crazy idea... but I know geeks will like it ! You will be able to send SOAP message over Twitter via WCF !!! You'll learn how to create your own TransportBindingElement.&lt;br /&gt;So just go take a look on the &lt;a href="http://wcfovertwitter.codeplex.com/"&gt;project page on codeplex&lt;/a&gt;.&lt;br /&gt;And as always, if you are interested about the inner working, it's &lt;a href="http://www.codeproject.com/KB/WCF/WcfOverTwitter.aspx"&gt;on CodeProject&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-7922798590574024532?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/7922798590574024532/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2009/09/wcf-over-twitter.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/7922798590574024532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/7922798590574024532'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2009/09/wcf-over-twitter.html' title='Wcf over Twitter'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ppOHTm5wefY/SrfuQ7deePI/AAAAAAAAACQ/3cIDMYrA5es/s72-c/wcfovetwitter.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-4665236616272212340</id><published>2009-09-21T14:14:00.000-07:00</published><updated>2009-09-21T14:20:40.669-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MSMQ'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>Duplex MSMQ</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ppOHTm5wefY/SrftgPBSiII/AAAAAAAAACI/etjrMf-I-MQ/s1600-h/duplexMsmq.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 272px;" src="http://4.bp.blogspot.com/_ppOHTm5wefY/SrftgPBSiII/AAAAAAAAACI/etjrMf-I-MQ/s320/duplexMsmq.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5384033017588254850" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;How to create duplex communication over MSMQ in WCF ?&lt;br /&gt;That's easy, just take a look on the &lt;a href="http://duplexmsmq.codeplex.com/"&gt;project home on Codeplex&lt;/a&gt;.&lt;br /&gt;If you are interested of the plumbing, go read &lt;a href="http://www.codeproject.com/KB/WCF/duplexmsmq.aspx"&gt;my article on Codeproject&lt;/a&gt;! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-4665236616272212340?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/4665236616272212340/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2009/09/duplex-msmq.html#comment-form' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/4665236616272212340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/4665236616272212340'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2009/09/duplex-msmq.html' title='Duplex MSMQ'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ppOHTm5wefY/SrftgPBSiII/AAAAAAAAACI/etjrMf-I-MQ/s72-c/duplexMsmq.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6821635495514343859.post-4519140956239063122</id><published>2009-09-21T13:57:00.000-07:00</published><updated>2009-09-21T14:28:34.531-07:00</updated><title type='text'>Crazy coding ideas will come here !</title><content type='html'>I'm Nicolas Dorier, a french student who just loves to create useful (or not so useful) things in code.&lt;br /&gt;I already have a blog, called &lt;a href="http://nicolasdorier.blogspot.com"&gt;Design Mantra&lt;/a&gt; in French. Although I'm French, I spend most of my time reading and writing article on english site. So I thought that would be a cool idea to write my blog in English.&lt;br /&gt;&lt;br /&gt;After French and C#, my third language is English, and I wish I won't suck... Anyway the goal will be to suck less every day !&lt;br /&gt;&lt;br /&gt;My goal is creating interesting piece of code with the concepts I will learn over time.&lt;br /&gt;I'm a .NET developer, so my projects will be mainly in C# with the latest cool technologies...&lt;br /&gt;I want to make my readers to become more creative and give them ideas!&lt;br /&gt;&lt;br /&gt;Maybe it will take a little time but definitively, I can't wait !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6821635495514343859-4519140956239063122?l=www.codingtavern.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.codingtavern.com/feeds/4519140956239063122/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.codingtavern.com/2009/09/crazy-coding-ideas-will-come-here.html#comment-form' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/4519140956239063122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6821635495514343859/posts/default/4519140956239063122'/><link rel='alternate' type='text/html' href='http://www.codingtavern.com/2009/09/crazy-coding-ideas-will-come-here.html' title='Crazy coding ideas will come here !'/><author><name>Nicolas Dorier</name><uri>http://www.blogger.com/profile/07520502469712388579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-z5jbjeDqj-0/Tl5ieEEBbGI/AAAAAAAAAGQ/ZcSPjz3xzAc/s220/nico.jpg'/></author><thr:total>1</thr:total></entry></feed>
