<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>Pencils Down</title>
	<link>http://www.dantoomeysoftware.com/pencils-down</link>
	<description>This weblog is about my experiences in software development</description>
	<pubDate>Mon, 05 Jan 2009 14:07:08 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>The Time is Not Right</title>
		<link>http://www.dantoomeysoftware.com/pencils-down/2009/01/05/the-time-is-not-right/</link>
		<comments>http://www.dantoomeysoftware.com/pencils-down/2009/01/05/the-time-is-not-right/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 14:07:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Brilliant Idiot]]></category>

		<guid isPermaLink="false">http://www.dantoomeysoftware.com/pencils-down/2009/01/05/the-time-is-not-right/</guid>
		<description><![CDATA[I didn&#8217;t notice this flying by in November - probably too concerned with my 401K getting demolished:
&#8220;You cofounded Twitter.com with venture-capital money back in 2006, and it still isn&#8217;t turning a profit. In November, the company declined Facebook&#8217;s offer to buy it for $500 million. Say what? We admire and respect Facebook. We are big [...]]]></description>
			<content:encoded><![CDATA[<p>I didn&#8217;t notice this flying by in November - probably too concerned with my 401K getting demolished:</p>
<p>&#8220;<strong>You cofounded <a target="_new" href="http://twitter.com/"><font color="#2851a2">Twitter.com</font></a> with venture-capital money back in 2006, and it still isn&#8217;t turning a profit. In November, the company declined Facebook&#8217;s offer to buy it for $500 million. Say what? </strong>We admire and respect Facebook. We are big fans, actually. They approached us, and we took it seriously. But we feel like we want to continue this path we&#8217;re on &#8212; sustaining this innovation &#8212; and the time is not right.&#8221;  Boston Globe interview with Biz Stone, founder of twitter.</p>
<p>I am voting for this as the #1 bonehead move by a tech company for 2008.</p>
<p>When exactly would be the right time to take $500 million for your company?  How many companies out there dream of this phone call from Facebook?</p>
<p>Note the article says the company has never been profitable and probably will not be for some period of time.</p>
<p>Further, most of the development has been funded by VC&#8217;s.  I&#8217;d like to know which VC&#8217;s.  They must have the worst lawyers/negotiating skills in the business.  How could they let this guy turn down that kind of payback?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dantoomeysoftware.com/pencils-down/2009/01/05/the-time-is-not-right/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to Use Hibernate for Composite Ids and Many-to-Many Mappings</title>
		<link>http://www.dantoomeysoftware.com/pencils-down/2008/12/29/how-to-use-hibernate-for-composite-ids-and-many-to-many-mappings/</link>
		<comments>http://www.dantoomeysoftware.com/pencils-down/2008/12/29/how-to-use-hibernate-for-composite-ids-and-many-to-many-mappings/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 10:48:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Hibernate]]></category>

		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.dantoomeysoftware.com/pencils-down/2008/12/29/how-to-use-hibernate-for-composite-ids-and-many-to-many-mappings/</guid>
		<description><![CDATA[We have a case where most of our tables have composite ids.  This means a key with multiple parts.  While fairly common in the database world, Hibernate appears to prefer that it&#8217;s users NOT have complex keys.  The mapping definitions don&#8217;t really allow for this to occur (e.g. you can&#8217;t specify a generator class in [...]]]></description>
			<content:encoded><![CDATA[<p>We have a case where most of our tables have composite ids.  This means a key with multiple parts.  While fairly common in the database world, Hibernate appears to prefer that it&#8217;s users NOT have complex keys.  The mapping definitions don&#8217;t really allow for this to occur (e.g. you can&#8217;t specify a generator class in a composite key)</p>
<p>We had thought about generating a single column key (something like a hash of the composite elements), but that just seemed wrong.  I always thought a database should model reality, not some arbitrary manifestation to get a tool to work.</p>
<p>In this example we have two tables that look like this:</p>
<p>Table A<br />
&#8212;&#8212;-<br />
A_NAME VARCHAR(200)<br />
A_ID INT<br />
attributes &#8230;.</p>
<p>Table B<br />
&#8212;&#8212;-<br />
B_NAME VARCHAR(200)<br />
B_ID INT<br />
attributes &#8230;.</p>
<p>They both have composite ids.  A helper table is generated that provides the many-to-many mappings for the two:</p>
<p>Table AB<br />
&#8212;&#8212;&#8211;<br />
A_NAME VARCHAR(200)<br />
A_ID INT<br />
B_NAME VARCHAR(200)<br />
B_ID INT</p>
<p>Using standard Hibernate reverse engineering we end up with the following mappings:</p>
<p>Table A Mapping<br />
&#8212;&#8212;&#8212;&#8212;&#8212;<br />
&#8230;<br />
&lt;composite-id name=&#8221;id&#8221; class=&#8221;path.to.entity.classes.AId&#8221;&gt;<br />
 &lt;key-property name=&#8221;aId&#8221; type=&#8221;integer&#8221;&gt;<br />
  &lt;column name=&#8221;A_ID&#8221; precision=&#8221;22&#8243; scale=&#8221;0&#8243; /&gt;<br />
 &lt;/key-property&gt;<br />
 &lt;key-property name=&#8221;aName&#8221; type=&#8221;string&#8221;&gt;<br />
  &lt;column name=&#8221;A_NAME&#8221; length=&#8221;12&#8243; /&gt;<br />
 &lt;/key-property&gt;<br />
&lt;/composite-id&gt;<br />
&#8230;<br />
&lt;set name=&#8221;bs&#8221; table=&#8221;table_ab&#8221; cascade=&#8221;all&#8221; inverse=&#8221;true&#8221;&gt;<br />
 &lt;key&gt;<br />
  &lt;column name=&#8221;A_NAME&#8221; not-null=&#8221;true&#8221; /&gt;<br />
  &lt;column name=&#8221;A_ID&#8221; not-null=&#8221;true&#8221; /&gt;<br />
 &lt;/key&gt;<br />
 &lt;many-to-many class=&#8221;path.to.entity.classes.B&#8221;&gt;<br />
  &lt;column name=&#8221;B_NAME&#8221; /&gt;<br />
  &lt;column name=&#8221;B_ID&#8221; /&gt;<br />
 &lt;/many-to-many&gt;<br />
&lt;/set&gt;  <br />
&#8230;</p>
<p>Table B Mapping<br />
&#8212;&#8212;&#8212;&#8212;&#8212;<br />
&#8230;<br />
&lt;composite-id name=&#8221;id&#8221; class=&#8221;path.to.entity.classes.BId&#8221;&gt;<br />
 &lt;key-property name=&#8221;bId&#8221; type=&#8221;integer&#8221;&gt;<br />
  &lt;column name=&#8221;B_ID&#8221; precision=&#8221;22&#8243; scale=&#8221;0&#8243; /&gt;<br />
 &lt;/key-property&gt;<br />
 &lt;key-property name=&#8221;bName&#8221; type=&#8221;string&#8221;&gt;<br />
  &lt;column name=&#8221;B_NAME&#8221; length=&#8221;12&#8243; /&gt;<br />
 &lt;/key-property&gt;<br />
&lt;/composite-id&gt;<br />
&#8230;<br />
&lt;!&#8211; CRITICAL - Only one side can have inverse=true, the other must have inverse=false &#8211;&gt;<br />
&lt;set name=&#8221;as&#8221; table=&#8221;table_ab&#8221; cascade=&#8221;all&#8221; inverse=&#8221;false&#8221;&gt;<br />
 &lt;key&gt;<br />
  &lt;column name=&#8221;B_NAME&#8221; not-null=&#8221;true&#8221; /&gt;<br />
  &lt;column name=&#8221;B_ID&#8221; not-null=&#8221;true&#8221; /&gt;<br />
 &lt;/key&gt;<br />
 &lt;many-to-many class=&#8221;path.to.entity.classes.A&#8221;&gt;<br />
  &lt;column name=&#8221;A_NAME&#8221; /&gt;<br />
  &lt;column name=&#8221;A_ID&#8221; /&gt;<br />
 &lt;/many-to-many&gt;<br />
&lt;/set&gt;  <br />
&#8230;</p>
<p>Table AB Mapping<br />
&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
&#8230;<br />
&lt;many-to-one name=&#8221;a&#8221; class=&#8221;path.to.entity.classes.A&#8221; update=&#8221;false&#8221; insert=&#8221;false&#8221; fetch=&#8221;select&#8221;&gt;<br />
 &lt;column name=&#8221;A_NAME&#8221; not-null=&#8221;true&#8221; /&gt;<br />
 &lt;column name=&#8221;A_ID&#8221; not-null=&#8221;true&#8221; /&gt;<br />
&lt;/many-to-one&gt;<br />
&lt;many-to-one name=&#8221;b&#8221; class=&#8221;path.to.entity.classes.B&#8221; update=&#8221;false&#8221; insert=&#8221;false&#8221; fetch=&#8221;select&#8221;&gt;<br />
 &lt;column name=&#8221;B_NAME&#8221; not-null=&#8221;true&#8221; /&gt;<br />
 &lt;column name=&#8221;B_ID&#8221; not-null=&#8221;true&#8221; /&gt;<br />
&lt;/many-to-one&gt;<br />
&#8230;</p>
<p>Be sure to note use of the inverse attribute in the A and B mappings: only one side of a many-to-many can be the &#8216;owner&#8217; of the relationship.  The owner is denoted with inverse=true setting.  The other side of a many-to-many MUST be inverse=false.  It is completely arbitrary which is the owner, but Hibernate will not work unless there is only one.</p>
<p>So, once the mapping is cleared up we produce fairly normal Java code to create a many-to-many relation:</p>
<p>A a = new A();<br />
a.setXYZZY(&#8221;various attributes&#8221;);<br />
AId aid = new AId();<br />
aid.setPKPart1(&#8221;string&#8221;);<br />
aid.setPKPart2(4);           <br />
a.setId(aid);</p>
<p>session.save(a)</p>
<p>B b = new B();<br />
b.setXYZZY(&#8221;various attributes&#8221;);<br />
BId bid = new BId();<br />
bid.setPKPart1(&#8221;string&#8221;);<br />
bid.setPKPart2(12);           <br />
b.setId(bid);</p>
<p>session.save(b)</p>
<p>a.getBs().add(b);<br />
session.saveOrUpdate(a);</p>
<p>b.getAs().add(a);<br />
session.saveOrUpdate(b)</p>
<p>session.flush();</p>
<p>Just to be sure, note we are setting the composite id fields manually.  In Oracle this can be done by accessing a Sequence.  Other databases have built-in row ids.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dantoomeysoftware.com/pencils-down/2008/12/29/how-to-use-hibernate-for-composite-ids-and-many-to-many-mappings/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Oh, by the way&#8230;</title>
		<link>http://www.dantoomeysoftware.com/pencils-down/2008/12/08/oh-by-the-way/</link>
		<comments>http://www.dantoomeysoftware.com/pencils-down/2008/12/08/oh-by-the-way/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 19:12:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://www.dantoomeysoftware.com/pencils-down/2008/12/08/oh-by-the-way/</guid>
		<description><![CDATA[This is never a good thing to hear in the software (maybe any) world.  The follow-on sentence will usually melt away any ideas you had about being on time, on budget, taking vacation time, you name it.
For a project here it was switching operating system to Linux from Windows.  Not particularly bad since they are running Java [...]]]></description>
			<content:encoded><![CDATA[<p>This is never a good thing to hear in the software (maybe any) world.  The follow-on sentence will usually melt away any ideas you had about being on time, on budget, taking vacation time, you name it.</p>
<p>For a project here it was switching operating system to Linux from Windows.  Not particularly bad since they are running Java all-around, but there is always some wierd, buried aspect of Java that you are using that really doesn&#8217;t work the same way on Linux versus Windows.  There is also a lot of testing that has to be added in to account for the o/s change to make sure all the programmers didn&#8217;t add in Windows-like tendencies: file i/o, file naming, network access, threads, etc&#8230;</p>
<p>So, of course, once the first blow was digested the follow-on statement came out that we need Active Directory, which is a Windows product, so need another computer just to run that, but we need everything on a small footprint, and it was going to be a blade server, but is looking to be a standard server, &#8230;</p>
<p>I wonder if these statements were well-known, decided months ago and we never were in the loop or did someone have an idea in the shower or maybe had an idea in the shower months ago and never told anyone?  Assuming these kind of things are not limited to software, I am guessing the latter: someone was sitting on a decision that is/will wreak havoc with the rest of the world but has very little affect on them.  So, why mention it?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dantoomeysoftware.com/pencils-down/2008/12/08/oh-by-the-way/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Calling an Oracle Stored Procedure from Hibernate</title>
		<link>http://www.dantoomeysoftware.com/pencils-down/2008/11/26/calling-an-oracle-stored-procedure-from-hibernate/</link>
		<comments>http://www.dantoomeysoftware.com/pencils-down/2008/11/26/calling-an-oracle-stored-procedure-from-hibernate/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 18:31:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.dantoomeysoftware.com/pencils-down/2008/11/26/calling-an-oracle-stored-procedure-from-hibernate/</guid>
		<description><![CDATA[After looking at several posts on the Internet that had various degrees of correctness we finally got this to work.  So I thought it would be good to share.  In the specific case we were using a stored procedure to access a sequence number (yes, it is outside of Hibernate&#8217;s cachable domain).
First, we [...]]]></description>
			<content:encoded><![CDATA[<p>After looking at several posts on the Internet that had various degrees of correctness we finally got this to work.  So I thought it would be good to share.  In the specific case we were using a stored procedure to access a sequence number (yes, it is outside of Hibernate&#8217;s cachable domain).</p>
<p>First, we place the stored procedure definitions inside of a new mapping file:<br />
<code><br />
&lt;?xml version="1.0"?&gt;<br />
&lt;!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"<br />
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"&gt;<br />
&lt;hibernate-mapping&gt;<br />
 &lt;sql-query name="getNextSequence" callable="true"&gt;<br />
  &lt;return-scalar column="NextVal" type="integer"/&gt;<br />
  { call get_next_sequence(?,:tableName) }<br />
 &lt;/sql-query&gt;<br />
&lt;/hibernate-mapping&gt;<br />
</code></p>
<p>Notes:<br />
- the first argument of the stored procedure is actually an OUT parameter from Oracle.<br />
- the actual name of the output &#8216;column&#8217; must be specified in the return-scalar field</p>
<p>Then the Java code becomes pretty standard:<br />
<code><br />
Session session = TestHibernateSessionFactory.getSession();<br />
Query query = session.getNamedQuery("getNextSequence");<br />
query.setString("tableName", "Table_X");<br />
Object result = query.uniqueResult();<br />
System.out.print(result);<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dantoomeysoftware.com/pencils-down/2008/11/26/calling-an-oracle-stored-procedure-from-hibernate/feed/</wfw:commentRss>
		</item>
		<item>
		<title>bannar design with flash effacts</title>
		<link>http://www.dantoomeysoftware.com/pencils-down/2008/11/25/bannar-design-with-flash-effacts/</link>
		<comments>http://www.dantoomeysoftware.com/pencils-down/2008/11/25/bannar-design-with-flash-effacts/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 13:38:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Programmer Wanted]]></category>

		<guid isPermaLink="false">http://www.dantoomeysoftware.com/pencils-down/2008/11/25/bannar-design-with-flash-effacts/</guid>
		<description><![CDATA[bannar design with flash effacts by EnjazTech
http://www.getafreelancer.com/projects/xxxx
Hello , We need a flash bannar with our logo. Our logo must be with perfect and profissional flash effact with new idea. The bannar should be related to the high tech , because we are related to hosting , programming and sms comunecations&#8230; (Budget: $30-250, Jobs: Flash, Graphic [...]]]></description>
			<content:encoded><![CDATA[<p>bannar design with flash effacts by EnjazTech<br />
<a href="http://www.getafreelancer.com/projects/xxxx">http://www.getafreelancer.com/projects/xxxx</a><br />
Hello , We need a flash bannar with our logo. Our logo must be with perfect and profissional flash effact with new idea. The bannar should be related to the high tech , because we are related to hosting , programming and sms comunecations&#8230; (Budget: $30-250, Jobs: Flash, Graphic Design, Photoshop)<br />
Tue, 25 Nov 2008 03:16:47 -0500<br />
GetAFreelancer.com_project_xxxxx<br />
Flash<br />
Graphic Design<br />
Photoshop</p>
<p>&#8212;-</p>
<p>After dealing with this company you then get a whole $30 for your efforts, most of the work sounds like teaching them to speak English.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dantoomeysoftware.com/pencils-down/2008/11/25/bannar-design-with-flash-effacts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>We&#8217;re a Rational Shop</title>
		<link>http://www.dantoomeysoftware.com/pencils-down/2008/11/24/were-a-rational-shop/</link>
		<comments>http://www.dantoomeysoftware.com/pencils-down/2008/11/24/were-a-rational-shop/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 13:48:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Software Tools]]></category>

		<guid isPermaLink="false">http://www.dantoomeysoftware.com/pencils-down/2008/11/24/were-a-rational-shop/</guid>
		<description><![CDATA[We are well into a coding phase.  The plan had been to get CruiseControl.  We definitely need some tool to automate the build, regression, unit test process.  Surprise, we aren&#8217;t getting CruiseControl, we are going to use Rational Build Forge.  Appears to be an pretty good product.  Lots of features, runs everywhere, etc&#8230;
My only qualm [...]]]></description>
			<content:encoded><![CDATA[<p>We are well into a coding phase.  The plan had been to get CruiseControl.  We definitely need some tool to automate the build, regression, unit test process.  Surprise, we aren&#8217;t getting CruiseControl, we are going to use Rational Build Forge.  Appears to be an pretty good product.  Lots of features, runs everywhere, etc&#8230;</p>
<p>My only qualm is we have been using ClearCase, another Rational product, for version control.  This has been less than stellar to the extreme issues of Blue Screens of Death during regular use.  Again, the Rational product versus Subversion, which I think the rest of the industry has been using without a hitch for years.</p>
<p>Just out of curiosity I poked at the pricing for Build Forge: $165,000 for the server and additional fees for groups of user licenses!</p>
<p>I was always curious how software tool companies have survived in this era of open source.  I think in most cases there is a good alternative free tool that probably works better (svn vs. clearcase, cruise control vs build forge, &#8230;)  Now it is clear:  The larger shops have bought into the commercial products over a period of many years and like anything else, are loathe to change the way they do business even though everyone involved probably agrees it would be a good idea to change.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dantoomeysoftware.com/pencils-down/2008/11/24/were-a-rational-shop/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Which is worse?</title>
		<link>http://www.dantoomeysoftware.com/pencils-down/2008/11/20/which-is-worse/</link>
		<comments>http://www.dantoomeysoftware.com/pencils-down/2008/11/20/which-is-worse/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 13:50:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Business Practice]]></category>

		<category><![CDATA[Clients]]></category>

		<guid isPermaLink="false">http://www.dantoomeysoftware.com/pencils-down/2008/11/20/which-is-worse/</guid>
		<description><![CDATA[I heard about a big software project that took a couple of dozen developers a few years to build.  The project had difficult security requirements that ended up having a login take over an hour to accomplish due to all of the verification between systems that had to occur.
The team went into a client review [...]]]></description>
			<content:encoded><![CDATA[<p>I heard about a big software project that took a couple of dozen developers a few years to build.  The project had difficult security requirements that ended up having a login take over an hour to accomplish due to all of the verification between systems that had to occur.</p>
<p>The team went into a client review cycle <em>knowing</em> this was a big problem.  The client sat through the entire presentation and demonstration without a question.  Always a bad sign.</p>
<p>As the meeting was closing and everyone was gathering up their things one of the developers asked if the login time was a high priority or not.  (Duh!)</p>
<p>The client lead, while still gathering their things and not even looking up, said, &#8220;No.  We have a contract.  We will pay you for the software.  But, we are going to use something else anyway.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dantoomeysoftware.com/pencils-down/2008/11/20/which-is-worse/feed/</wfw:commentRss>
		</item>
		<item>
		<title>I Don&#8217;t Have an Ego</title>
		<link>http://www.dantoomeysoftware.com/pencils-down/2008/11/07/i-dont-have-an-ego/</link>
		<comments>http://www.dantoomeysoftware.com/pencils-down/2008/11/07/i-dont-have-an-ego/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 13:06:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[Yahoo]]></category>

		<guid isPermaLink="false">http://www.dantoomeysoftware.com/pencils-down/2008/11/07/i-dont-have-an-ego/</guid>
		<description><![CDATA[Microsoft CEO Steve Ballmer said emphatically that his company will not make a renewed bid for Yahoo. His comments come after Yahoo CEO Jerry Yang said yesterday that Yahoo, which spent months dodging Microsoft&#8217;s bid, is now their best option.
Yang said he remains open to selling Yahoo at the right price, adding &#8220;people who know me know [...]]]></description>
			<content:encoded><![CDATA[<p _extended="true">Microsoft CEO Steve Ballmer said emphatically that his company will not make a renewed bid for Yahoo. His comments come after Yahoo CEO Jerry Yang said yesterday that Yahoo, which spent months dodging Microsoft&#8217;s bid, is now their best option.</p>
<p _extended="true">Yang said he remains open to selling Yahoo at the right price, adding &#8220;people who know me know <strong><em>I don&#8217;t have an ego</em></strong> about remaining independent versus not remaining independent.&#8221; Ballmer left room open for future partnerships based on the two companies&#8217; search engines, but was definitive on the point that Microsoft does not plan to acquire Yahoo.</p>
<p _extended="true">With no Microsoft bid in sight and its Google partnership dead on arrival, Yahoo has reached what many analysts conclude is a strategic dead-end.</p>
<p _extended="true">Why are Yahoo shareholders so in love with this guy?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dantoomeysoftware.com/pencils-down/2008/11/07/i-dont-have-an-ego/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Did you hear me?</title>
		<link>http://www.dantoomeysoftware.com/pencils-down/2008/11/06/did-you-hear-me/</link>
		<comments>http://www.dantoomeysoftware.com/pencils-down/2008/11/06/did-you-hear-me/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 19:15:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Business Practice]]></category>

		<guid isPermaLink="false">http://www.dantoomeysoftware.com/pencils-down/2008/11/06/did-you-hear-me/</guid>
		<description><![CDATA[Another contractor I know has been having a hard time.  Lots of experience in a team with very little experience.  Ok. Project lead has little experience and gets annoyed at the developer for proposing solutions or changes.  Not Ok.
I know there are lots of openings where he is working so suggested moving to another project.
He [...]]]></description>
			<content:encoded><![CDATA[<p>Another contractor I know has been having a hard time.  Lots of experience in a team with very little experience.  Ok. Project lead has little experience and gets annoyed at the developer for proposing solutions or changes.  Not Ok.</p>
<p>I know there are lots of openings where he is working so suggested moving to another project.</p>
<p>He took the advice, waited for a milestone, and said something like &#8220;We are at a good breaking point.  I don&#8217;t think my contributions have been inline with the team.  Maybe it&#8217;s time for me to move on?&#8221;.  They said thank you for your idea.  Get back to work (not really).</p>
<p>Next day, team management calls him in and says &#8220;We would like you to take over architecture for the product.  This will entail much detailed interaction with the team lead.&#8221;</p>
<p>WTF?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dantoomeysoftware.com/pencils-down/2008/11/06/did-you-hear-me/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Why do New things break Old things?</title>
		<link>http://www.dantoomeysoftware.com/pencils-down/2008/11/05/why-do-new-things-break-old-things/</link>
		<comments>http://www.dantoomeysoftware.com/pencils-down/2008/11/05/why-do-new-things-break-old-things/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 15:21:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Software Development Process]]></category>

		<guid isPermaLink="false">http://www.dantoomeysoftware.com/pencils-down/2008/11/05/why-do-new-things-break-old-things/</guid>
		<description><![CDATA[For one of my clients a certain feature was broken that had been working fine for months.  My initial reaction was that the front-end changed.  Upon testing I tracked it down to a session variable no longer being set during login.  It turns out in the conversion from username/password to SSO a number of session [...]]]></description>
			<content:encoded><![CDATA[<p>For one of my clients a certain feature was broken that had been working fine for months.  My initial reaction was that the front-end changed.  Upon testing I tracked it down to a session variable no longer being set during login.  It turns out in the conversion from username/password to SSO a number of session variables were no longer being set.</p>
<p>For another situation a database job that had been running for some time on the first of the month apparently stopped working.  Upon investigation, the job had been completely removed from the system.  This was done when another client&#8217;s data was moved onto the database server.</p>
<p>In both cases New things, that are good ideas, were implemented in such a slipshod manner that existing, functional aspects were trashed.</p>
<p>Thinking about this some it seems like this is a very common occurrence: the developer of the New thing has the priority of getting the New thing done.  Old things take a distant second in anyones mind - developer, pm, client - anyone.</p>
<p>I know you can use a regression test suite to verify you didn&#8217;t break something, but this is an afterthought.  It is not in the developer&#8217;s frame of mind to determine what else might be affected by the New thing.  From my own experience if you happen to think of side effects you get looked at with squinted eye, not a team player, naysayer, problem child.</p>
<p>Further, fixing the broken Old thing after the fact is also looked at as a good thing.  &#8220;Yes, we fixed the Old thing.  It turns out the New thing broke it.&#8221;  Everyone is <em>happy</em> that the Old thing got fixed.  No one asks why this wasn&#8217;t discovered beforehand.</p>
<p>You can see this on software developer web sites.  Everyone can develop something New for you.  Or even more interesting they can debug your code or evaluate your system performance.  No one is advertising they will maintain your current system.  System maintenance is not valued.</p>
<p>Maybe this is just a trickle-down of the quarterly hockey stick affect working into how things get coded.  Imagine that, developers modeling their behavior after sales people.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dantoomeysoftware.com/pencils-down/2008/11/05/why-do-new-things-break-old-things/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
