<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>shawnhcorey</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/shawnhcorey/" />
    <link rel="self" type="application/atom+xml" href="http://blogs.perl.org/users/shawnhcorey/atom.xml" />
    <id>tag:blogs.perl.org,2009-11-03:/users/shawnhcorey//102</id>
    <updated>2012-12-09T19:28:12Z</updated>
    <subtitle>A blog about the Perl programming language</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.38</generator>

<entry>
    <title>A Look at Cartesian Products</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/shawnhcorey/2012/12/a-look-at-cartesian-products.html" />
    <id>tag:blogs.perl.org,2012:/users/shawnhcorey//102.4114</id>

    <published>2012-12-09T19:20:34Z</published>
    <updated>2012-12-09T19:28:12Z</updated>

    <summary>A new post in my blog about Cartesian products. Problem: You have a number of sets and you want all the combinations when choosing one element from each set. In mathematics, these combinations are called the Cartesian products. They are...</summary>
    <author>
        <name>shawnhcorey</name>
        
    </author>
    
    <category term="cartesian" label="Cartesian" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/shawnhcorey/">
        <![CDATA[<p>A new post in my blog about <a href="http://lookatperl.blogspot.ca/2012/12/a-look-at-cartesian-products.html">Cartesian products</a>.</p>

<p><strong>Problem:</strong> You have a number of sets and you want all the combinations when choosing one element from each set.</p>

<p>In mathematics, these combinations are called the Cartesian products. They are also known as cross-products. In the database world, they are sometimes called cross-joins.<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>A Look at Recursion</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/shawnhcorey/2012/11/a-look-at-recursion.html" />
    <id>tag:blogs.perl.org,2012:/users/shawnhcorey//102.4074</id>

    <published>2012-11-27T18:37:21Z</published>
    <updated>2012-11-27T18:38:39Z</updated>

    <summary>I created a blog about Perl over on Blogger and I have just posted an new article on recursion....</summary>
    <author>
        <name>shawnhcorey</name>
        
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/shawnhcorey/">
        <![CDATA[<p>I created a <a href="http://lookatperl.blogspot.ca/">blog about Perl</a> over on Blogger and I have just posted an new article on recursion.</p>]]>
        
    </content>
</entry>

<entry>
    <title>How to Post an Article on blogs.perl.org</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/shawnhcorey/2012/09/how-to-post-an-article-on-blogsperlorg.html" />
    <id>tag:blogs.perl.org,2012:/users/shawnhcorey//102.3826</id>

    <published>2012-09-13T14:22:34Z</published>
    <updated>2012-09-13T14:34:42Z</updated>

    <summary>When creating an article for blogs.perl.org, place only one or two paragraphs in the BODY section. This is the lead (pronounced &quot;leed&quot;) to the article. Place the bulk of the article in the EXTENDED section....</summary>
    <author>
        <name>shawnhcorey</name>
        
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/shawnhcorey/">
        <![CDATA[<p>When creating an article for blogs.perl.org, place only one or two paragraphs in the BODY section. This is the lead (pronounced "leed") to the article. Place the bulk of the article in the EXTENDED section.</p>]]>
        <![CDATA[<p>The bulk of the article goes in the EXTENDED section.</p>

<p>Although this one's not too bulky. ;)</p>

<p>Image of BODY section: <img alt="perl-blog-body.png" src="http://blogs.perl.org/users/shawnhcorey/perl-blog-body.png" width="644" height="442" class="mt-image-none" style="" />.</p>

<p>Image of EXTENDED section: <img alt="perl-blog-extended.png" src="http://blogs.perl.org/users/shawnhcorey/perl-blog-extended.png" width="626" height="437" class="mt-image-none" style="" /></p>]]>
    </content>
</entry>

<entry>
    <title>A Look At Braces</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/shawnhcorey/2012/09/a-look-at-braces.html" />
    <id>tag:blogs.perl.org,2012:/users/shawnhcorey//102.3809</id>

    <published>2012-09-10T13:33:51Z</published>
    <updated>2012-09-10T13:36:12Z</updated>

    <summary>In a comment of an article here at blogs.perl.org, Going to Perl School, I mentioned that Perl has 9 uses for braces. Here they are:...</summary>
    <author>
        <name>shawnhcorey</name>
        
    </author>
    
    <category term="braces" label="braces" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/shawnhcorey/">
        <![CDATA[<p>In a comment of an article here at blogs.perl.org, <a href=
"http://blogs.perl.org/users/lesleyb/2012/08/going-to-perl-school.html"
class="podlinkurl">Going to Perl School</a>, I mentioned that Perl has 9
uses for braces. Here they are:</p>
]]>
        <![CDATA[<dl>
  <dt><a name="1._BLOCK"><b>1. BLOCK</b></a></dt>

<p>  <dd><br />
    <p>The first one is easy: Perl uses braces to delimit blocks of<br />
    code.</p></p>

<p>    <p>This may be to provide isolation. For example to slurp a file:</p><br />
    <pre><br />
  open my $fh, '&lt;', $some_file or die $!;</p>

<p>  # have to declare lines outside of the block<br />
  # or it will be dropped at the end<br />
  my $lines;</p>

<p>  {<br />
      # set the input record separator to undef,<br />
      # see `perldoc perlvar`<br />
      # and search for /INPUT_RECORD_SEPARATOR/<br />
      local $/;</p>

<p>      $lines = &lt;$fh&gt;;<br />
  }<br />
  close $fh or die $!;<br />
</pre></p>

<p>    <p>Blocks must be used with the compound statements like <a href=<br />
    "http://perldoc.perl.org/perlsyn.html#Compound-Statements" class=<br />
    "podlinkurl"><code>if</code></a>, <a href=<br />
    "http://perldoc.perl.org/perlsyn.html#Compound-Statements" class=<br />
    "podlinkurl"><code>while</code></a>, and <a href=<br />
    "http://perldoc.perl.org/perlsyn.html#Compound-Statements" class=<br />
    "podlinkurl"><code>for</code></a>. They are also used with commands<br />
    like <a href="http://perldoc.perl.org/functions/map.html" class=<br />
    "podlinkurl"><code>map</code></a> and <a href=<br />
    "http://perldoc.perl.org/functions/grep.html" class=<br />
    "podlinkurl"><code>grep</code></a>.</p><br />
  </dd></p>

<p>  <dt><a name="2._Hash_Keys"><b>2. Hash Keys</b></a></dt></p>

<p>  <dd><br />
    <p>Braces are used with a hash to access the value.</p><br />
    <pre><br />
  print $hash{$key};<br />
</pre><br />
  </dd></p>

<p>  <dt><a name="3._Anonymous_Hashes"><b>3. Anonymous Hashes</b></a></dt></p>

<p>  <dd><br />
    <p>Braces are used to create anonymous hashes.</p><br />
    <pre><br />
  my $hash_ref = { foo =&gt; 'bar' };<br />
</pre><br />
  </dd></p>

<p>  <dt><a name="4._De-referencing"><b>4. De-referencing</b></a></dt></p>

<p>  <dd><br />
    <p>Braces are used in de-referencing, especially for arrays and<br />
    hashes.</p><br />
    <pre><br />
  for my $item ( @{ $obj-&gt;{list} } ){<br />
      # ...<br />
  }</p>

<p>  for my $key ( sort keys %{ $obj-&gt;{config} } ){<br />
      # ...<br />
  }<br />
</pre><br />
  </dd></p>

<p>  <dt><a name="5._File_Handles_Isolation"><b>5. File Handles<br />
  Isolation</b></a></dt></p>

<p>  <dd><br />
    <p>Braces are used to to isolate a file handle.</p><br />
    <pre><br />
  print {STDERR} "Error detected.\n";<br />
</pre></p>

<p>    <p>This is the only way to use a file handle in a data structure.</p><br />
    <pre><br />
  print {$object-&gt;{out_fh}} "Error detected.\n";<br />
</pre><br />
  </dd></p>

<p>  <dt><a name="6._Quote_Delimiters"><b>6. Quote Delimiters</b></a></dt></p>

<p>  <dd><br />
    <p><a href=<br />
    "http://perldoc.perl.org/perlop.html#Quote-and-Quote-like-Operators"<br />
    class="podlinkurl">Generic quotes</a> can be delimited with braces.</p><br />
    <pre><br />
  my $SPACE =  q{ };<br />
  my $NL    = qq{\n};</p>

<p>  s{ \A \s+ }{}msx;<br />
  s{ \s+ \z }{}msx;<br />
</pre><br />
  </dd></p>

<p>  <dt><a name="7._Delimiters_in_String_Interpolation"><b>7. Delimiters in<br />
  String Interpolation</b></a></dt></p>

<p>  <dd><br />
    <p>Braces are use in string interpolation to create special characters<br />
    and to delimit them from the rest of the text.</p><br />
    <pre><br />
  "\o{033}"<br />
  "\x{1b}"<br />
  \N{ESC}"</p>

<p>  "\x{2022}"<br />
  "\N{U+2022}"<br />
</pre></p>

<p>    <p>They are also used to separate a variable name from other<br />
    alphanumerics.</p><br />
    <pre><br />
  print "Using temporary file ${src_file}_tmp";<br />
</pre><br />
  </dd></p>

<p>  <dt><a name="8._Regular_Expression_Quantifiers"><b>8. Regular Expression<br />
  Quantifiers</b></a></dt></p>

<p>  <dd><br />
    <p>In regular expressions, braces are used for specifying quantifiers<br />
    of matches.</p><br />
    <pre><br />
  # look for two or more underscores<br />
  if( m{ _{2,} }msx ){<br />
      # ...<br />
  }<br />
</pre><br />
  </dd></p>

<p>  <dt><a name="9._Regular_Expression_Embedded_Code"><b>9. Regular<br />
  Expression Embedded Code</b></a></dt></p>

<p>  <dd><br />
    <p>Code can be embedded in regular expressions in the newer versions of<br />
    Perl.</p><br />
    <pre><br />
  perl -nE'm{ ( [aeiou] ) (?{ say "$1" }) }msx'<br />
</pre><br />
  </dd><br />
</dl><br />
</p>]]>
    </content>
</entry>

<entry>
    <title>Useful CPAN Modules</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/shawnhcorey/2012/05/useful-cpan-modules.html" />
    <id>tag:blogs.perl.org,2012:/users/shawnhcorey//102.3296</id>

    <published>2012-05-25T13:56:07Z</published>
    <updated>2012-05-25T14:04:19Z</updated>

    <summary>I have recently installed perl-5.16.0 using perlbrew and have begun adding CPAN modules. Here is some of them that I find most useful. Would you add any to the list? JSON YAML List::MoreUtils Readonly Regexp::Common Data::Alias Text::CSV Text::CSV_XS...</summary>
    <author>
        <name>shawnhcorey</name>
        
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/shawnhcorey/">
        <![CDATA[<p>I have recently installed <a href="http://www.perl.org/get.html" title="download Perl">perl-5.16.0</a> using <a href="http://www.perlbrew.pl/" title="an admin-free Perl installation management tool">perlbrew</a> and have begun adding CPAN modules. Here is some of them that I find most useful. Would you add any to the list?</p>
<ul>
<li>JSON</li>
<li>YAML</li>
<li>List::MoreUtils</li>
<li>Readonly</li>
<li>Regexp::Common</li>
<li>Data::Alias</li>
<li>Text::CSV</li>
<li>Text::CSV_XS</li>
</ul>]]>
        
    </content>
</entry>

<entry>
    <title>A Look At Arrays</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/shawnhcorey/2012/05/a-look-at-arrays.html" />
    <id>tag:blogs.perl.org,2012:/users/shawnhcorey//102.3233</id>

    <published>2012-05-11T19:13:33Z</published>
    <updated>2012-05-11T19:14:33Z</updated>

    <summary>A Look At Arrays Perl&apos;s built-in datatype, array, is a multi-purpose tool which can be used for many things. It&apos;s primary purpose is to preserve the order of data. But it comes with a powerful set of tools to make...</summary>
    <author>
        <name>shawnhcorey</name>
        
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/shawnhcorey/">
        <![CDATA[<h1><a class='u' name="A_Look_At_Arrays" id="A_Look_At_Arrays">A Look At
Arrays</a></h1>

<p>Perl's built-in datatype, array, is a multi-purpose tool which can be
used for many things. It's primary purpose is to preserve the order of
data. But it comes with a powerful set of tools to make manipulating it
easy. This article is to show how to use these tools by implementing a
linked list.</p>

<p><a href="http://en.wikipedia.org/wiki/Linked_list" class=
"podlinkurl">Linked lists</a> were originally created for languages like C
which only had simple datatypes. They are a technique for using the
system's memory allocation to create a data structure that allows unlimited
expansion, that is, until it runs out of memory. They use a simple datatype
called a pointer that records a position in memory. Without pointers,
linked list would be impossible.</p>

<p>Perl has a datatype similar to pointers, the <a href=
"http://perldoc.perl.org/perlref.html" class="podlinkurl">reference</a>.
Like pointers, it records a memory location and it can be used link them.
But using references to implement a linked list the same way one would do
in C, needlessly complicates the code. Linked lists can be implemented
using just arrays. Here's how.</p>
]]>
        <![CDATA[<h2><a class='u' name="The_Difference_Between_an_Array_and_a_List" id=
"The_Difference_Between_an_Array_and_a_List">The Difference Between an
Array and a List</a></h2>

<p>Perl makes a distinction between an array and a list. An array is a
datatype and has permanent storage for its contents. This allows a
reference to be made to it. A list is a temporary structure and cannot be
referenced. Lists are used both as parameters to a subroutine and their
returned values. And lists can be assigned to arrays and hashes to store
their values.</p>

<h2><a class='u' name="Simple_Manipulations" id=
"Simple_Manipulations">Simple Manipulations</a></h2>

<h3><a class='u' name="Creating_a_Linked_List" id=
"Creating_a_Linked_List">Creating a Linked List</a></h3>

<p>Simply declare an array using <a href=
"http://perldoc.perl.org/functions/my.html" class=
"podlinkurl"><code>my</code></a> or <a href=
"http://perldoc.perl.org/functions/our.html" class=
"podlinkurl"><code>our</code></a>.</p>
<pre>
my @list = ();
</pre>

<h3><a class='u' name="Clearing_a_Linked_List" id=
"Clearing_a_Linked_List">Clearing a Linked List</a></h3>

<p>Clear the array by assigning the empty list to it.</p>
<pre>
@list = ();
</pre>

<h3><a class='u' name="Add_an_Item_to_the_End_of_the_List" id=
"Add_an_Item_to_the_End_of_the_List">Add an Item to the End of the
List</a></h3>

<p>Use the <a href="http://perldoc.perl.org/functions/push.html" class=
"podlinkurl"><code>push</code></a> command to addend the item to the end of
the array.</p>
<pre>
push @list, $item;
</pre>

<h3><a class='u' name="Add_an_Item_to_the_Front_of_the_List" id=
"Add_an_Item_to_the_Front_of_the_List">Add an Item to the Front of the
List</a></h3>

<p>The <a href="http://perldoc.perl.org/functions/unshift.html" class=
"podlinkurl"><code>unshift</code></a> command will insert the item at the
beginning of the array.</p>
<pre>
unshift @list, $item;
</pre>

<h3><a class='u' name="Remove_an_Item_to_the_End_of_the_List" id=
"Remove_an_Item_to_the_End_of_the_List">Remove an Item to the End of the
List</a></h3>

<p>The <a href="http://perldoc.perl.org/functions/pop.html" class=
"podlinkurl"><code>pop</code></a> command will remove an item from the end
of the array.</p>
<pre>
$item = pop @list;
</pre>

<h3><a class='u' name="Remove_an_Item_to_the_Front_of_the_List" id=
"Remove_an_Item_to_the_Front_of_the_List">Remove an Item to the Front of
the List</a></h3>

<p>The <a href="http://perldoc.perl.org/functions/shift.html" class=
"podlinkurl"><code>shift</code></a> command will remove an item from the
beginning of the array.</p>
<pre>
$item = shift @list;
</pre>

<h3><a class='u' name="Checking_for_an_Item_in_the_List" id=
"Checking_for_an_Item_in_the_List">Checking for an Item in the
List</a></h3>

<p>To check if an item is in a list, use <code>first</code> from <a href=
"http://perldoc.perl.org/List/Util.html" class=
"podlinkurl"><code>List::Util</code></a>. <code>List::Util</code> is a
standard Perl module and is installed with Perl. For a list of all the
standard modules and pragmatics, see <a href=
"http://perldoc.perl.org/perlmodlib.html#THE-PERL-MODULE-LIBRARY" class=
"podlinkurl"><code>perlmodlib</code></a>.</p>
<pre>
use List::Util qw( first );
$found = defined( first { $_ eq $item } @list );
</pre>

<p>The test inside the block may be replaced with a match. Any valid
pattern may be used.</p>
<pre>
$found = defined( first { /^$item$/i } @list );
</pre>

<h3><a class='u' name="Counting_the_Occurrences_of_an_Item_in_the_List" id=
"Counting_the_Occurrences_of_an_Item_in_the_List">Counting the Occurrences
of an Item in the List</a></h3>

<p>To count the occurrences of an item in a list, use <a href=
"http://perldoc.perl.org/functions/grep.html" class=
"podlinkurl"><code>grep</code></a>.</p>
<pre>
$count = grep { $_ eq $item } @list;
</pre>

<p>The test inside the block may be replaced with a match. Any valid
pattern may be used.</p>
<pre>
$count = grep { /^$item$/i } @list;
</pre>

<h3><a class='u' name="Reverse_the_List" id="Reverse_the_List">Reverse the
List</a></h3>

<p>A list can be reversed with the <a href=
"http://perldoc.perl.org/functions/reverse.html" class=
"podlinkurl"><code>reverse</code></a> command.</p>
<pre>
@list = reverse @list;
</pre>

<h3><a class='u' name="Rotate_the_List_Forward" id=
"Rotate_the_List_Forward">Rotate the List Forward</a></h3>

<p>An array can be rotated by combining the <code>shift</code> and
<code>push</code> commands.</p>
<pre>
push @list, shift @list;
</pre>

<h3><a class='u' name="Rotate_the_List_Backward" id=
"Rotate_the_List_Backward">Rotate the List Backward</a></h3>

<p>An array can be rotated backward by combining the <code>pop</code> and
<code>unshift</code> commands.</p>
<pre>
unshift @list, pop @list;
</pre>

<h3><a class='u' name="Extracting_the_i-th_Item" id=
"Extracting_the_i-th_Item">Extracting the <i>i</i>-th Item</a></h3>

<p>Extracting a single item from a list can be done by indexing the
position in the list.</p>
<pre>
 $item = $list[$i];
</pre>

<h3><a class='u' name="Replacing_the_i-th_Item" id=
"Replacing_the_i-th_Item">Replacing the <i>i</i>-th Item</a></h3>

<p>An item can be replacing with indexing.</p>
<pre>
 $list[$i] = $item;
</pre>

<h3><a class='u' name="Extracting_a_List_of_Items" id=
"Extracting_a_List_of_Items">Extracting a List of Items</a></h3>

<p>To extract a list of items from the <i>i</i>-th to <i>j</i>-th position
inclusive, use a <a href="http://perldoc.perl.org/perldata.html#Slices"
class="podlinkurl"><code>slice</code></a>.</p>
<pre>
@items = @list[ $i .. $j ];
</pre>

<h3><a class='u' name="Replacing_a_List_of_Items" id=
"Replacing_a_List_of_Items">Replacing a List of Items</a></h3>

<p>Items can be replaced by assigning them to a slice.</p>
<pre>
@list[ $i .. $j ] = @items;
</pre>

<p>The range of items from the <i>i</i>-th to the <i>j</i>-th position
inclusive will be replaced. If <code>@items</code> is longer than the
range, those left over will be ignored. If it is shorter,
<code>undef</code> will be place in <code>@list</code>.</p>

<h2><a class='u' name="Using_splice" id="Using_splice">Using
<code>splice</code></a></h2>

<p>Although slices can be used to replace items in a list, it will not
remove them. Use Perl's <a href=
"http://perldoc.perl.org/functions/splice.html" class=
"podlinkurl"><code>splice</code></a> command for this.</p>

<h3><a class='u' name="Removing_Items_from_a_List" id=
"Removing_Items_from_a_List">Removing Items from a List</a></h3>

<p>Removing a number of items starting in the <i>i</i>-th position of list.
The list will shrink in size by the number of items removed.</p>
<pre>
@removed_items = splice( @list, $i, $number );
</pre>

<h3><a class='u' name="Inserting_Items_into_a_List" id=
"Inserting_Items_into_a_List">Inserting Items into a List</a></h3>

<p>Inserting a number of items starting in the <i>i</i>-th position of
list. The list will grow in size by the number of items inserted.</p>
<pre>
splice( @list, $i, 0, @items );
</pre>

<h3><a class='u' name="Replacing_Items_With_a_List_of_Others" id=
"Replacing_Items_With_a_List_of_Others">Replacing Items With a List of
Others</a></h3>

<p>Replacing a number of items with others starting in the <i>i</i>-th
position. The list will grow or shrink to accommodate the new items. The
removed items can be saved.</p>
<pre>
@saved_items = splice( @list, $i, $number, @new_items );
</pre>

<h2><a class='u' name="Conclusion" id="Conclusion">Conclusion</a></h2>

<p>Perl's array datatype has powerful tools that can be used for many
tasks.</p>
]]>
    </content>
</entry>

<entry>
    <title>I Don&apos;t Do Deadlines</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/shawnhcorey/2010/08/i-dont-do-deadlines.html" />
    <id>tag:blogs.perl.org,2010:/users/shawnhcorey//102.862</id>

    <published>2010-08-09T22:20:56Z</published>
    <updated>2010-08-09T22:27:14Z</updated>

    <summary><![CDATA[ Because of deadlines, many programmers create Quick & Dirty (Q&D) code rather than doing things The Right Way. This leads to many problems. &bull; Deadlines cause bugs When programmers write Q&D, they often ignore edge cases. This means the...]]></summary>
    <author>
        <name>shawnhcorey</name>
        
    </author>
    
    <category term="deadlines" label="deadlines" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="programmingpractices" label="programming practices" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/shawnhcorey/">
        <![CDATA[<p><rant></p>

<p>Because of deadlines, many programmers create Quick & Dirty<br />
(Q&D) code rather than doing things The Right Way.  This<br />
leads to many problems.</p>

<p>&bull; Deadlines cause bugs</p>

<blockquote>When programmers write Q&D, they often ignore edge cases.  This means the code reject things it should process and
process things that is should reject.</blockquote>

<p>&bull; Deadlines cause delays</p>

<blockquote>Because of the bugs, the code doesn't work when the deadline arrives and the deadline has to be extended.</blockquote>

<p>&bull; Deadlines undermine the confidence of the programmers</p>

<blockquote>IBM sets its sales quote so that 80% of its sales force will meet them.  When was the last time you heard of a manager setting the deadlines so that 80% of his programmers meet them?  In fact, many managers set their deadlines so that their programmer can't possible meet them.  They assume that this will make their programmers work harder.  And it does.  They work harder but are less productivity in their work.  That's because repeats failures undermine their confidence which increases stress and reduces productivity.</blockquote>

<p>&bull; Deadlines undermines any sort of company spirit</p>

<blockquote>Because programmers repeatedly fail to meet their deadlines, they lose any interest in their work and this undermines any loyalty or team spirit they might have.</blockquote>

<p>&bull; Deadlines causes turnover</p>

<blockquote>Because of the programmers' low morale, they often switch jobs to find more interesting work.</blockquote>

<p>In summary, deadlines are just a bad idea.</p>

<p></rant></p>]]>
        
    </content>
</entry>

</feed>
