<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://devlicio.us/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Anne Epstein - All Comments</title><link>http://devlicio.us/blogs/anne_epstein/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>re: NHibernate and Composite Keys</title><link>http://devlicio.us/blogs/anne_epstein/archive/2009/11/20/nhibernate-and-composite-keys.aspx#54927</link><pubDate>Tue, 05 Jan 2010 22:53:37 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:54927</guid><dc:creator>Anne Epstein</dc:creator><description>&lt;p&gt;walkthewalk, &lt;/p&gt;
&lt;p&gt;Unfortunately, I don&amp;#39;t know of a way to get nhibernate to do that. &amp;nbsp;You might consider asking on the NHibernate users list to see if they have some ideas: &amp;nbsp;&lt;a rel="nofollow" target="_new" href="http://groups.google.com/group/nhusers"&gt;groups.google.com/.../nhusers&lt;/a&gt;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=54927" width="1" height="1"&gt;</description></item><item><title>re: NHibernate and Composite Keys</title><link>http://devlicio.us/blogs/anne_epstein/archive/2009/11/20/nhibernate-and-composite-keys.aspx#54921</link><pubDate>Tue, 05 Jan 2010 17:11:49 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:54921</guid><dc:creator>walkthewalk</dc:creator><description>&lt;p&gt;Thanks for a nice clear summary of using Composite Keys.&lt;/p&gt;
&lt;p&gt;On question I have... &amp;nbsp;the NHibernate documentation says:&lt;/p&gt;
&lt;p&gt;&amp;quot;You can&amp;#39;t use an IIdentifierGenerator to generate composite keys. Instead the application must assign its own identifiers. &amp;quot;&lt;/p&gt;
&lt;p&gt;Does anyone know of a way to get NHibernate to generate part of the Composite Key? &amp;nbsp;In my case, the Composite Key is three integers, two of which are set from the application. &amp;nbsp;It would be usefule to have NHibernate to auto increment the third.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m stuck with a legacy schema and using a SQL identity column is not an option. &amp;nbsp;Nor is introducing a new primary key.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=54921" width="1" height="1"&gt;</description></item><item><title>re: Intro to series on quality VB.Net</title><link>http://devlicio.us/blogs/anne_epstein/archive/2009/01/12/intro-to-series-on-quality-vb-net.aspx#54889</link><pubDate>Sun, 03 Jan 2010 15:06:09 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:54889</guid><dc:creator>Kevin LaBranche</dc:creator><description>&lt;p&gt;Your theory at least sounds good. :-)&lt;/p&gt;
&lt;p&gt;I never thought much about the VBA to VB connection and in that case I would agree that this connection didn&amp;#39;t teach much on code quality. &amp;nbsp;VB was designed for RAD and it did that well. &amp;nbsp;VB&amp;#39;s beginnings pioneered / fostered RAD development but now other languages have caught up but where those communities kept going with quality ideas, VB did not. &amp;nbsp;Perhaps the idea of RAD hindered the ideas of code quality and now the VB community needs to catch up.&lt;/p&gt;
&lt;p&gt;......And of course, I could be way wrong on that to. :-) &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Not that the why matters much as you mentioned in your tweet to me. &amp;nbsp;I am really curious personally to understand why since I have been a VB&amp;#39;r for a while and know the language isn&amp;#39;t perfect but which one is? &amp;nbsp;&lt;/p&gt;
&lt;p&gt;None the less, to make myself a better developer I have been working in C# on the side and have enjoyed it. &amp;nbsp;My initial adversion to semi-colons is gone. &amp;nbsp;=)&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Kevin&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=54889" width="1" height="1"&gt;</description></item><item><title>re: Intro to series on quality VB.Net</title><link>http://devlicio.us/blogs/anne_epstein/archive/2009/01/12/intro-to-series-on-quality-vb-net.aspx#54882</link><pubDate>Sun, 03 Jan 2010 04:06:20 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:54882</guid><dc:creator>Anne Epstein</dc:creator><description>&lt;p&gt;Kevin, thanks for your comment!&lt;/p&gt;
&lt;p&gt; I can&amp;#39;t &amp;nbsp;say for certain, but here&amp;#39;s a completely unsubstantiated theory: it may be more common (or may have been more common a few years ago, at least) for VB programmers (vs. C#) programmers to have become programmers via Excel/Access programming and the like, i.e. very concrete procedural-type tasks, whereas I&amp;#39;d guess at least historically, C# programmers are more likely to have roots in university than VB programmers and thus by default arrive into programing with a stronger background in abstract thinking (though some argue, a weaker background, in, say, thinking about things practically) &amp;nbsp;Any particular programmer favoring either language might be nothing like the profiles I&amp;#39;ve outlined, but if on a larger scale the body of programmers in each language trend slightly like I have described, that might be enough to change the language-wide stylistic preferences and the like. &amp;nbsp;Again, I may be completely wrong in this theory, there may be something else entirely behind the difference in culture.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=54882" width="1" height="1"&gt;</description></item><item><title>re: Intro to series on quality VB.Net</title><link>http://devlicio.us/blogs/anne_epstein/archive/2009/01/12/intro-to-series-on-quality-vb-net.aspx#54875</link><pubDate>Sat, 02 Jan 2010 18:24:43 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:54875</guid><dc:creator>Kevin LaBranche</dc:creator><description>&lt;p&gt;I agree and I think you have given a well rounded answer in that VB can do it but it seems that many who are using VB do not. For a while now I have been diving into topics like DI, IOC, SOLID, etc &amp;amp; almost all examples/tutorials &amp;amp; books talking about it has used c#. My first exposure to VB was back in the 3.0 days and real started using it professionally in 6.0. &amp;nbsp;Since then I naturally moved to VB.Net and only now have really started to branch out a little with C#. &amp;nbsp;(Shame on me by the way for not writing in other languages). &amp;nbsp;&lt;/p&gt;
&lt;p&gt;I am not sure why VB has this issue. &amp;nbsp;As you stated, it is possible to do. &amp;nbsp;Perhaps it&amp;#39;s a holdover from VB&amp;#39;s beginnings? &amp;nbsp;What do you think?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Kevin&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=54875" width="1" height="1"&gt;</description></item><item><title>Social comments and analytics for this post</title><link>http://devlicio.us/blogs/anne_epstein/archive/2009/12/28/on-learning.aspx#54866</link><pubDate>Sat, 02 Jan 2010 06:48:28 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:54866</guid><dc:creator>uberVU - social comments</dc:creator><description>&lt;p&gt;This post was mentioned on Twitter by devlicious: New Blog Post On Learning: As programmers, we work in a discipline that is a bit different from that of many of the... &lt;a rel="nofollow" target="_new" href="http://bit.ly/83snWj"&gt;http://bit.ly/83snWj&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://devlicio.us/aggbug.aspx?PostID=54866" width="1" height="1"&gt;</description></item><item><title>re: On Learning</title><link>http://devlicio.us/blogs/anne_epstein/archive/2009/12/28/on-learning.aspx#54805</link><pubDate>Tue, 29 Dec 2009 22:49:43 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:54805</guid><dc:creator>Rob Reynolds</dc:creator><description>&lt;p&gt;@Thomas: I work for one of those companies. I imagine they are far and few between though. &amp;nbsp;The developers that work here on average have been here for 5+ years (to give you an idea).&lt;/p&gt;
&lt;p&gt;@Anne: This is wonderfully written and encapsulates much of how I feel about software development. It&amp;#39;s so unlike anything else you can do and that&amp;#39;s why I love it. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Congratulations on the new job! Is there a nickname for the retreat? Anything fun like Practice with Palermo or Progresssion with Palermo?&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=54805" width="1" height="1"&gt;</description></item><item><title>re: On Learning</title><link>http://devlicio.us/blogs/anne_epstein/archive/2009/12/28/on-learning.aspx#54795</link><pubDate>Tue, 29 Dec 2009 07:51:04 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:54795</guid><dc:creator>Thomas Weller</dc:creator><description>&lt;p&gt;I wholeheartedly agree with your arguments. They formed essentially one of the main reasons why I quit being employed altogether and became a self-employed contractor - I wanted some more freedom to decide on the things that are important to learn and the time that should be invested for it. Now I can take me that time and can then bring that to my customer&amp;#39;s account as appropriate - and hey, it makes me as well as my customers much happier...&lt;/p&gt;
&lt;p&gt;I think, there are two general problems - at least in my corner of the world: &lt;/p&gt;
&lt;p&gt;* First, the people who decide upon the hire/fire issue, often are business people who have no deep insight into the problem domain. Most people think that programming is &amp;#39;writing code&amp;#39; and overlook the fact that it is much more something like &amp;#39;providing solutions based on technical knowledge&amp;#39;. I even saw a developer&amp;#39;s competency and productivity being judged by the produced number of code lines!&lt;/p&gt;
&lt;p&gt;* Second, many companies tend to look only at the short-term financial gain of a software project. So all too often, &amp;#39;code-and-run&amp;#39; is the preferred programming style in such companies - of course it&amp;#39;s not an official strategy, but it&amp;#39;s intrinsically promoted by the companies&amp;#39; policy.&lt;/p&gt;
&lt;p&gt;I have heard of companies, that understand the problems and know that sustainability in software development is a huge cost factor (mostly the biggest one, much bigger than immediate development), and that this means that they need a loyal team of well-trained, highly capable developers to be successful in the long run. But I&amp;#39;ve never seen one in real life yet...&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=54795" width="1" height="1"&gt;</description></item><item><title>re: NHibernate and Composite Keys</title><link>http://devlicio.us/blogs/anne_epstein/archive/2009/11/20/nhibernate-and-composite-keys.aspx#54057</link><pubDate>Mon, 23 Nov 2009 14:09:36 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:54057</guid><dc:creator>Anne Epstein</dc:creator><description>&lt;p&gt;Thanks, bonskijr! Great catch. &amp;nbsp;I&amp;#39;d set things up for serialization but forgot to actually mark it as such, or put in info about that... oops. done.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=54057" width="1" height="1"&gt;</description></item><item><title>re: NHibernate and Composite Keys</title><link>http://devlicio.us/blogs/anne_epstein/archive/2009/11/20/nhibernate-and-composite-keys.aspx#54036</link><pubDate>Mon, 23 Nov 2009 08:50:34 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:54036</guid><dc:creator>bonskijr</dc:creator><description>&lt;p&gt;Nice post on composite ID, one thing that was missed is that CompositeID class should also be Serializable(ie marked Serializable attribute)&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=54036" width="1" height="1"&gt;</description></item><item><title>re: NHibernate and Composite Keys</title><link>http://devlicio.us/blogs/anne_epstein/archive/2009/11/20/nhibernate-and-composite-keys.aspx#53914</link><pubDate>Sat, 21 Nov 2009 15:26:40 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:53914</guid><dc:creator>kibbled_bits</dc:creator><description>&lt;p&gt;agreed, I&amp;#39;m &amp;quot;getting&amp;quot; to execute stored procedures now from NHibernate (someone else&amp;#39;s DB) much to my dismay&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=53914" width="1" height="1"&gt;</description></item><item><title>re: NHibernate and Composite Keys</title><link>http://devlicio.us/blogs/anne_epstein/archive/2009/11/20/nhibernate-and-composite-keys.aspx#53913</link><pubDate>Sat, 21 Nov 2009 15:00:53 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:53913</guid><dc:creator>Anne Epstein</dc:creator><description>&lt;p&gt;kibbled_bits, &lt;/p&gt;
&lt;p&gt;Agreed, absolutely-adding in a surrogate key is a preferable idea if that&amp;#39;s an option...unfortunately, sometimes, be it the fact that the composite key is *already* being used all over the place as a FK, or, well, politics, you&amp;#39;re stuck with the composite. &amp;nbsp;still...hmm...maybe a post discussing migration is warranted...&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=53913" width="1" height="1"&gt;</description></item><item><title>re: NHibernate and Composite Keys</title><link>http://devlicio.us/blogs/anne_epstein/archive/2009/11/20/nhibernate-and-composite-keys.aspx#53874</link><pubDate>Sat, 21 Nov 2009 06:46:17 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:53874</guid><dc:creator>kibbled_bits</dc:creator><description>&lt;p&gt;Nice, my only thoughts are that I like adding a surrogate key to cross references tables for a couple of reasons. &amp;nbsp;One is because I get the uniqueness &amp;amp; avoid a composite key. &amp;nbsp;Secondly a lot of XREF tables eventually have a table hanging off of it so I only have to propagate the surrogate to the children.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=53874" width="1" height="1"&gt;</description></item><item><title>re: You are your Institutional Knowledge</title><link>http://devlicio.us/blogs/anne_epstein/archive/2009/08/27/you-are-your-institutional-knowledge.aspx#52888</link><pubDate>Wed, 21 Oct 2009 19:47:59 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:52888</guid><dc:creator>Sarita</dc:creator><description>&lt;p&gt;Like many companies, mine has gone through layoffs; however I see the lay-off trend continue within the same organizations. &amp;nbsp;For sure a benefit of the recession is to lose sub-par performers, but belts continue to tighten so the differentiating line between who stays and goes and why has gotten a lot blurrier. &amp;nbsp;Sometimes it&amp;#39;s financial, sometimes it&amp;#39;s arbitrary and sometimes it&amp;#39;s combining 2 positions into 1. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Institutional knowledge therefore becomes even more critical in the current environment, particularly when it comes to the daily operations. &amp;nbsp;Day 1 through Day 30 - what do you do and where do you get the information if your &amp;quot;go-to&amp;quot; person is gone? &amp;nbsp;Technology certainly plays a key role here. &amp;nbsp;My firm has invested heavily in electronic repositories and required documentation so we aren&amp;#39;t left in a lurch if the go-to person didn&amp;#39;t leave a good audit trail. &amp;nbsp;Technology helps BUT IT&amp;quot;S NOT ENOUGH! &amp;nbsp;If you operate in a high touch environment, service delivery WILL suffer despite efficiencies gained through technology. &amp;nbsp;If you&amp;#39;re client facing, internal or external, It takes time to transfer knowledge from your predecessor and do it effectively. &amp;nbsp;Care has to be put if one is to make a seamless transition but if there&amp;#39;s a lack of investment in this effort, how is one setup for success? &amp;nbsp;Not spending enough time to answer this question is what I&amp;#39;m seeing in today&amp;#39;s market.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=52888" width="1" height="1"&gt;</description></item><item><title>re: You are your Institutional Knowledge</title><link>http://devlicio.us/blogs/anne_epstein/archive/2009/08/27/you-are-your-institutional-knowledge.aspx#52464</link><pubDate>Thu, 08 Oct 2009 17:41:13 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:52464</guid><dc:creator>Erica Janine</dc:creator><description>&lt;p&gt;I do not agree with the comment above. Companies generally lay off their weakest employees, true, when it can be determined. In more technical environments, the ability to even determine who is technically stronger or weaker is really not there in favor of appearance of importance. The very fact so many silo situations exist in big companies today goes to illustrate it is impossible to determine who knows what they should because the projects/items being worked *are* so specialized. In healthy technical or software-oriented groups, cross-training and common development is the norm, not the exception. &lt;/p&gt;
&lt;p&gt;In big companies whose primary industry is not technology (i.e. most corporations), silos exist because software is NOT the focus. In this scenario, it is likely that only the most invisible (not necessarily the weakest) or most disliked employees are let go. &lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=52464" width="1" height="1"&gt;</description></item></channel></rss>