nid

4348

vid

6796

type

naspa_articles

status

1

created

1203363747

changed

1204260159

comment

2

promote

0

sticky

0

revision_timestamp

1204260159

title

The Old New Thing

body

<p>One of my favorite quotes is the old chestnut about laws and sausages: the less you know about how they are made, the better!</p> <p>Unfortunately, more often than not, the adage is also perfectly apt for technology endeavors. Any IT pro who has been involved in a major upgrade or development project knows all too well just how many ‘additives&#39; go into such an effort. </p> <p>Indeed, the Windows OS itself (or any OS, for that matter) is no exception to this universal ‘rule of sausage.&#39; Chances are, if you work in a Windows environment at all, you have wondered (likely in exasperation) just how everything has become so sausage-like.</p> <p>For some provocative and ultimately useful answers to the question, take a look at Raymond Chen&#39;s book <em>The Old New Thing: Practical Development throughout the Evolution of Windows</em>.</p> <p>You may know Chen from his amusing blog (<a href="http://blogs.msdn.com/oldnewthing">blogs.msdn.com/oldnewthing</a>),<strong> </strong>or perhaps his entertaining talks at<strong> </strong>developer conferences. You may also be familiar with his popular and enjoyable back page column in Microsoft&#39;s <em><a href="/freelinking/TechNet">TechNet</a></em> magazine.</p> <p>Chen is indisputably a Windows development veteran. He started out at Microsoft in the early 1990s as a developer of Windows 95. He&#39;s still there today, having worked on everything from DirectX to present versions of Windows, and has established a durable reputation as a meticulous and philosophical coder. </p> <p>His book is an absorbing read: a mix of useless trivia, &quot;oh, that&#39;s why they did it that way&quot; explanations, practical strategies for issues like debugging, serious technological history, and subtle tell-all (you won&#39;t have to think too hard to recognize some of the lazy software vendors to which he alludes). Chen is justifiably known for his dry wit, and it shines through in his remarkably readable, yet deeply technical book.</p> <p>However, don&#39;t make the mistake of assuming the book has no value beyond trivia or is strictly for Windows pros. While a few topics (such as on 16-bit environments) are somewhat of a nostalgic glimpse backwards , the fact is that the compromises and philosophies discussed in the book still inform the current Microsoft mindset. Chen adeptly describes all the historical baggage that, by necessity, continues to lurk in Windows code, and still matters today. Present day developers and admins ignore this past at their own peril.</p> <p>As a writer, Chen is enjoyably irreverent, though I at times detect a touch of defensiveness as he explains how some element of Windows came to be such an obvious kludge. But, having read the book, it&#39;s only fair to say his defensiveness may be justified-many aspects of Windows now make sense to me in a way they never did before, and I see the necessity of doing some things the way they were done. </p> <p>Regardless of one&#39;s feelings about the platform, the folks at Redmond have clearly put astonishing effort into making Windows work in spite of an awful lot of junky apps put out by sloppy programmers writing for the platform. If nothing else, the book is a worthy reminder of how mind-bogglingly complex an undertaking software is at heart.</p> <p>The book&#39;s target audience would seem to be a strange hybrid of programmer, developer, geek, systems manager, and perhaps trivia-hound. I think it&#39;s a beneficial read for anybody who works with Windows professionally, whether that means developing, or managing teams of coders, groups of systems, or help desks.</p> <p>Roughly speaking, about half the book is appropriate for any Windows manager, and the other portions are intended more for programmers, but not just those working with Windows. Many of the topics are universal issues faced by anybody diving deeply into coding and scripting, although some topics get fairly arcane and hardcore unless you are truly a full-time developer. Fortunately, Chen includes a handy table in the front of the book indicating which chapters are most suited for the area of interest and skill-level of a given reader.</p> <p>Using myself as an example, although I only do limited hands-on development, I found even the chapters aimed at heavy developers to be informative. I consider my development skill level journeyman, but not expert-yet I rarely felt lost while reading the book.</p> <p>Some of the most practical lessons I took away from the book I found in Chapter 17 (&quot;<em>Security</em>&quot;). For example, when I&#39;m doing simple troubleshooting or maintenance, I get weary of Windows Explorer asking &quot;Are you sure you want to show Hidden Files?&quot;. Although I know the dialogue saves me much grief as an admin by preventing users from throwing away a vital .dll (and so fomenting &quot;dll hell&quot;), it still annoys me. However, Chen explains the risks of these hidden files in a way I&#39;d never thought of; sure, as a developer and admin, I want my critical app components protected and hidden, but the dilemma arises when you contemplate the security risks of undetectable and invisible files. Chen&#39;s brief discussion of this surprisingly complex (hint: it&#39;s an arms race!) issue is fascinating.</p>An especially valuable theme in the book is that of memory management and debugging. Both realms are of course a bane to us all, but Chen&#39;s in-depth look at how memory management and debugging evolved, and his discussion of architectural issues and strategies for memory handling is an aspect of the book I found tremendously educational. <p>On the trivia side, did you ever wonder why the Windows registry is called a hive? Well, it happens that one of the original developers of NT hated bees, and another developer on the project chose the term specifically to annoy that person. Although conveniently a logical term, it&#39;s also a prank. Ironically, it&#39;s also a fitting name since registry problems can indeed pack a potent sting!</p> <p>I came away from this book feeling as if I understood Windows and development better on many levels, with new insights into the give-and-take that inevitably comprises creating software. Moreover, I picked up some arcane trivia that I just know will make me the life of many a party. For example, do you know why you should only use <a href="http://www.example.com/">www.example.com</a> as a sample URL? No? Well, you&#39;ll have to read the book to find out, and the amusing consequences of not doing so.</p> <p>I found myself having epiphany after epiphany while reading this book-everything from new strategies for today&#39;s projects to closure on aggravations encountered in projects long since past-and I&#39;m willing to bet you too will be a better Windows manager and programmer for having read it.</p> <p>The book comes in at about 500 pages, but since it is comprised of brief essays, it&#39;s thankfully no slog to read. In fact, it&#39;s funny enough that I suspect my wife thought I had lost my marbles while engrossed in it, because I&#39;m pretty sure she&#39;s never seen me laugh out loud reading a technical book. That alone may be worth the price! </p> <p><em>The Old New Thing</em> is available at any bookstore. If you buy directly from the publisher at the link below and register, there is a 20% discount available. The book is also &quot;Safari-Enabled,&quot; and so is available as part of a subscription ‘Online bookshelf.&#39; This is an intriguing option, as it provides access to a wealth of additional IT titles from multiple popular technical publishers such as O&#39;Reilly, Cisco, and Que. You can read more about either purchase option on the publisher&#39;s website below.</p><p>&nbsp;</p><p><span class="inline left"><img src="http://www.naspa.com/system/files/images/Oldnewthing_Cover.JPG" alt="The Old New Thing" title="The Old New Thing" class="image img_assist_custom" width="136" height="178" /><span class="caption" style="width: 134px;"><strong>The Old New Thing</strong></span></span>Publication Details:</p><p><em>The Old New</em> <em>Thing</em> by Raymond Chen</p><p>Addison-Wesley Publishing</p> <p>ISBN:0-321-44030-7</p> <p>&nbsp;</p> <p>More info:</p> <p><a href="http://www.informit.com/store/product.aspx?isbn=0321440307">http://www.informit.com/store/product.aspx?isbn=0321440307</a></p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <br class="clear" />

teaser

<p>One of my favorite quotes is the old chestnut about laws and sausages: the less you know about how they are made, the better!</p> <p>Unfortunately, more often than not, the adage is also perfectly apt for technology endeavors. Any IT pro who has been involved in a major upgrade or development project knows all too well just how many ‘additives&#39; go into such an effort. </p>

log

format

7

uid

2184

name

jkasza

picture

data

a:27:{s:5:"roles";a:1:{i:0;s:1:"2";}s:13:"AMISDB_MBRPFX";s:1:" ";s:13:"AMISDB_MBRFNM";s:5:"Jenny";s:12:"AMISDB_MBRMI";s:1:" ";s:13:"AMISDB_MBRLNM";s:5:"Kasza";s:13:"AMISDB_MBRSFX";s:1:" ";s:12:"AMISDB_EMAIL";s:16:"editor@naspa.com";s:12:"AMISDB_mtype";s:5:"STAFF";s:15:"AMISDB_orgmbrdt";s:10:"08/08/2006";s:15:"AMISDB_trmstart";s:10:"08/08/2006";s:13:"AMISDB_trmend";s:10:"07/31/2010";s:15:"AMISDB_COMPBILL";s:3:"TEI";s:15:"AMISDB_ADDRBILL";s:18:"7044 S 13TH STREET";s:15:"AMISDB_CITYBILL";s:9:"OAK CREEK";s:16:"AMISDB_STATEBILL";s:2:"WI";s:15:"AMISDB_CTRYBILL";s:3:"USA";s:15:"AMISDB_COMPMAIL";s:3:"TEI";s:15:"AMISDB_ADDRMAIL";s:18:"7044 S 13TH STREET";s:15:"AMISDB_CITYMAIL";s:9:"OAK CREEK";s:16:"AMISDB_STATEMAIL";s:2:"WI";s:15:"AMISDB_CTRYMAIL";s:3:"USA";s:8:"og_email";s:1:"1";s:14:"tinymce_status";s:4:"true";s:14:"picture_delete";s:0:"";s:14:"picture_upload";s:0:"";s:7:"contact";i:1;s:5:"block";a:5:{s:4:"book";a:1:{i:0;i:1;}s:4:"menu";a:1:{i:2560;i:1;}s:15:"taxonomy_ticker";a:1:{i:0;i:1;}s:4:"user";a:1:{i:3;i:1;}s:10:"statistics";a:1:{i:0;i:0;}}}

tags

Array
(
    [5] => Array
        (
            [60] => stdClass Object
                (
                    [tid] => 60
                    [vid] => 5
                    [name] => Networking
                    [description] => 
                    [weight] => 0
                )

            [1292] => stdClass Object
                (
                    [tid] => 1292
                    [vid] => 5
                    [name] => Windows
                    [description] => 
                    [weight] => 0
                )

        )

)

primary_term

last_comment_timestamp

1203363747

last_comment_name

comment_count

0

taxonomy

Array
(
    [60] => stdClass Object
        (
            [tid] => 60
            [vid] => 5
            [name] => Networking
            [description] => 
            [weight] => 0
        )

    [1292] => stdClass Object
        (
            [tid] => 1292
            [vid] => 5
            [name] => Windows
            [description] => 
            [weight] => 0
        )

    [509] => stdClass Object
        (
            [tid] => 509
            [vid] => 18
            [name] => Justen, Jim
            [description] => 
            [weight] => 0
        )

    [558] => stdClass Object
        (
            [tid] => 558
            [vid] => 14
            [name] => Network Support - April-May, 2006
            [description] => 
            [weight] => 0
        )

)

files

Array
(
)

field_author

Array
(
    [0] => Array
        (
            [value] => Jim Justen
            [view] => Jim Justen
        )

)

field_description

Array
(
    [0] => Array
        (
            [value] => Jim Justen positively reviews a book that gives practical lessons and lively history on the subject of Windows. 
            [format] => 1
        )

)

field_article_pdf

Array
(
)

field_item_type

Array
(
    [0] => Array
        (
            [value] => Article
        )

)

field_article_cost

Array
(
    [0] => Array
        (
            [value] => 0
        )

)

field_temppdf

Array
(
    [0] => Array
        (
            [value] => 
        )

)

iid

links_related

Array
(
)

moderate

0

readmore

1

content

Array
(
    [body] => Array
        (
            [#value] => <p>One of my favorite quotes is the old chestnut about laws and
sausages: the less you know about how they are made, the better!</p>



<p>Unfortunately, more often than not, the adage is also perfectly
apt for technology endeavors. Any IT pro who has been involved in a major
upgrade or development project knows all too well just how many ‘additives&#39; go
into such an effort. </p>



<p>Indeed, the Windows OS itself (or any OS, for that matter)
is no exception to this universal ‘rule of sausage.&#39; Chances are, if you work
in a Windows environment at all, you have wondered (likely in exasperation)
just how everything has become so sausage-like.</p>



<p>For some provocative and ultimately useful answers to the
question, take a look at Raymond Chen&#39;s book <em>The Old New Thing: Practical Development throughout the Evolution of
Windows</em>.</p>



<p>You may know Chen from his amusing blog (<a href="http://blogs.msdn.com/oldnewthing">blogs.msdn.com/oldnewthing</a>),<strong> </strong>or perhaps his entertaining
talks at<strong> </strong>developer
conferences. You may also be familiar with his popular and enjoyable back page
column in Microsoft&#39;s <em><a href="/freelinking/TechNet">TechNet</a></em>
magazine.</p>



<p>Chen is indisputably a Windows development veteran. He
started out at Microsoft in the early 1990s as a developer of Windows 95. He&#39;s
still there today, having worked on everything from DirectX to present versions
of Windows, and has established a durable reputation as a meticulous and
philosophical coder. </p>



<p>His book is an absorbing read: a mix of useless trivia, &quot;oh,
that&#39;s why they did it that way&quot; explanations, practical strategies for issues
like debugging, serious technological history, and subtle tell-all (you won&#39;t
have to think too hard to recognize some of the lazy software vendors to which
he alludes).  Chen is justifiably known
for his dry wit, and it shines through in his remarkably readable, yet deeply
technical book.</p>



<p>However, don&#39;t make the mistake of assuming the book has no
value beyond trivia or is strictly for Windows pros. While a few topics (such
as on 16-bit environments) are somewhat of a nostalgic glimpse backwards
, the fact is that the compromises and philosophies
discussed in the book still inform the current Microsoft mindset. Chen adeptly
describes all the historical baggage that, by necessity, continues to lurk in
Windows code, and still matters today. Present day developers and admins ignore
this past at their own peril.</p>



<p>As a writer, Chen is enjoyably irreverent, though I at times
detect a touch of defensiveness as he explains how some element of Windows came
to be such an obvious kludge. But, having read the book, it&#39;s only fair to say
his defensiveness may be justified-many aspects of Windows now make sense
to me in a way they never did before, and I see the necessity of doing some
things the way they were done. </p>



<p>Regardless of one&#39;s feelings about the platform, the folks
at Redmond have clearly put
astonishing effort into making Windows work in spite of an awful lot of junky
apps put out by sloppy programmers writing for the platform. If nothing else,
the book is a worthy reminder of how mind-bogglingly complex an undertaking
software is at heart.</p>



<p>The book&#39;s target audience would seem to be a strange hybrid
of programmer, developer, geek, systems manager, and perhaps trivia-hound. I
think it&#39;s a beneficial read for anybody who works with Windows professionally,
whether that means developing, or managing teams of coders, groups of systems,
or help desks.</p>



<p>Roughly speaking, about half the book is appropriate for any
Windows manager, and the other portions are intended more for programmers, but
not just those working with Windows. Many of the topics are universal issues
faced by anybody diving deeply into coding and scripting, although some topics
get fairly arcane and hardcore unless you are truly a full-time developer.
Fortunately, Chen includes a handy table in the front of the book indicating
which chapters are most suited for the area of interest and skill-level of a
given reader.</p>



<p>Using myself as an example, although I only do limited
hands-on development, I found even the chapters aimed at heavy developers to be
informative. I consider my development skill level journeyman, but not
expert-yet I rarely felt lost while reading the book.</p>



<p>Some of the most practical lessons I took away from the book
I found in Chapter 17 (&quot;<em>Security</em>&quot;).
For example, when I&#39;m doing simple troubleshooting or maintenance, I get weary
of Windows Explorer asking &quot;Are you sure you want to show Hidden Files?&quot;.  Although I know the dialogue saves me much
grief as an admin by preventing users from throwing away a vital .dll (and so
fomenting &quot;dll hell&quot;), it still annoys me. However, Chen explains the risks of
these hidden files in a way I&#39;d never thought of; sure, as a developer and
admin, I want my critical app components protected and hidden, but the dilemma
arises when you contemplate the security risks of undetectable and invisible
files. Chen&#39;s brief discussion of this surprisingly complex (hint: it&#39;s an arms
race!) issue is fascinating.</p>An especially valuable theme in the book is that of memory
management and debugging. Both realms are of course a bane to us all, but
Chen&#39;s in-depth look at how memory management and debugging evolved, and his
discussion of architectural issues and strategies for memory handling is an
aspect of the book I found tremendously educational. 



<p>On the trivia side, did you ever wonder why the Windows
registry is called a hive? Well, it happens that one of the original developers
of NT hated bees, and another developer on the project chose the term
specifically to annoy that person. Although conveniently a logical term, it&#39;s
also a prank. Ironically, it&#39;s also a fitting name since registry problems can
indeed pack a potent sting!</p>



<p>I came away from this book feeling as if I understood
Windows and development better on many levels, with new insights into the
give-and-take that inevitably comprises creating software. Moreover, I picked up some
arcane trivia that I just know will make me the life of many a party. For
example, do you know why you should only use <a href="http://www.example.com/">www.example.com</a>
as a sample URL? No? Well, you&#39;ll have to read the book to find out, and the
amusing consequences of not doing so.</p>



<p>I found myself having epiphany after epiphany while reading
this book-everything from new strategies for today&#39;s projects to closure on
aggravations encountered in projects long since past-and I&#39;m willing to bet you
too will be a better Windows manager and programmer for having read it.</p>



<p>The book comes in at about 500 pages, but since it is
comprised of brief essays, it&#39;s thankfully no slog to read. In fact, it&#39;s funny
enough that I suspect my wife thought I had lost my marbles while engrossed in
it, because I&#39;m pretty sure she&#39;s never seen me laugh out loud reading a
technical book. That alone may be worth the price! </p>



<p><em>The Old New Thing</em>
is available at any bookstore. If you buy directly from the publisher at the
link below and register, there is a 20% discount available. The book is also
&quot;Safari-Enabled,&quot; and so is available as part of a subscription ‘Online
bookshelf.&#39; This is an intriguing option, as it provides access to a wealth of
additional IT titles from multiple popular technical publishers such as
O&#39;Reilly, Cisco, and Que. You can read more about either purchase option on the
publisher&#39;s website below.</p><p>&nbsp;</p><p><span class="inline left"><img src="http://www.naspa.com/system/files/images/Oldnewthing_Cover.JPG" alt="The Old New Thing" title="The Old New Thing"  class="image img_assist_custom" width="136" height="178" /><span class="caption" style="width: 134px;"><strong>The Old New Thing</strong></span></span>Publication Details:</p><p><em>The Old New</em> <em>Thing</em> by Raymond Chen</p><p>Addison-Wesley Publishing</p>

<p>ISBN:0-321-44030-7</p>

<p>&nbsp;</p>

<p>More info:</p>

<p><a href="http://www.informit.com/store/product.aspx?isbn=0321440307">http://www.informit.com/store/product.aspx?isbn=0321440307</a></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>



<br class="clear" />
            [#weight] => 0
        )

    [adsense_start] => Array
        (
            [#value] => <!-- google_ad_section_start -->
            [#weight] => -1
        )

    [adsense_end] => Array
        (
            [#value] => <!-- google_ad_section_end -->
            [#weight] => 1
        )

    [field_author] => Array
        (
            [#weight] => -4
            [#value] => <div class="field field-type-text field-field-author"><div class="field-items"><div class="field-item"><div class="field-label-inline-first">Author:&nbsp;</div>Jim Justen</div></div></div>
            [#access] => 1
        )

    [field_description] => Array
        (
            [#weight] => -2
            [#value] => 
            [#access] => 
        )

    [field_article_pdf] => Array
        (
            [#weight] => -1
            [#value] => 
            [#access] => 
        )

    [field_item_type] => Array
        (
            [#weight] => 9
            [#value] => 
            [#access] => 
        )

    [field_article_cost] => Array
        (
            [#weight] => 10
            [#value] => 
            [#access] => 
        )

    [field_temppdf] => Array
        (
            [#weight] => 10
            [#value] => 
            [#access] => 
        )

    [fivestar_widget] => Array
        (
            [#value] => <form action="/node/4348/render"  accept-charset="UTF-8" method="post" id="fivestar-form-node-4348" class="fivestar-widget">
<div><input type="hidden" name="content_type" id="edit-content-type" value="node"  />
<input type="hidden" name="content_id" id="edit-content-id" value="4348"  />
<div class="form-item">
 <label>Your vote: </label>
 <div class="fivestar-widget container-inline  fivestar-average-text fivestar-user-stars"><input type="hidden" name="auto_submit_path" id="edit-auto-submit-path" value="/fivestar/vote/node/4348"  class="fivestar-path" />
<div class="form-item">
 <label class="option"><input type="radio" name="vote" value="20"   class="form-radio  fivestar-average-text fivestar-user-stars" /> 1</label>
</div>
<div class="form-item">
 <label class="option"><input type="radio" name="vote" value="40"   class="form-radio  fivestar-average-text fivestar-user-stars" /> 2</label>
</div>
<div class="form-item">
 <label class="option"><input type="radio" name="vote" value="60"   class="form-radio  fivestar-average-text fivestar-user-stars" /> 3</label>
</div>
<div class="form-item">
 <label class="option"><input type="radio" name="vote" value="80"   class="form-radio  fivestar-average-text fivestar-user-stars" /> 4</label>
</div>
<div class="form-item">
 <label class="option"><input type="radio" name="vote" value="100"   class="form-radio  fivestar-average-text fivestar-user-stars" /> 5</label>
</div>
</div><div id="fivestar-summary-4348" class="description"><div class="fivestar-summary-empty">No votes yet</div></div>
</div>
<input type="submit" name="op" id="edit-submit" value="Submit rating"  class="form-submit fivestar-submit" />
<input type="hidden" name="form_id" id="edit-fivestar-form-node-4348" value="fivestar_form_node_4348"  />

</div></form>

            [#weight] => 50
        )

    [forward] => Array
        (
            [#value] => <form action="/node/4348/render"  accept-charset="UTF-8" method="post" id="forward-form">
<div><fieldset class=" collapsible collapsed"><legend>Forward this page to a friend</legend><div class="form-item">
 <label for="edit-yemail">Your Email: <span class="form-required" title="This field is required.">*</span></label>
 <input type="text" maxlength="256" name="yemail" id="edit-yemail"  size="58" value="" class="form-text required" />
</div>
<div class="form-item">
 <label for="edit-yname">Your Name: <span class="form-required" title="This field is required.">*</span></label>
 <input type="text" maxlength="256" name="yname" id="edit-yname"  size="58" value="" class="form-text required" />
</div>
<div class="form-item">
 <label for="edit-recipients">Send To: <span class="form-required" title="This field is required.">*</span></label>
 <textarea cols="50" rows="5" name="recipients" id="edit-recipients"  class="form-textarea resizable required"></textarea>
 <div class="description">Enter multiple addresses on separate lines or separate them with commas.</div>
</div>
<div class="form-item">
 <label>Message Subject: </label>
 (Your Name) has forwarded a page to you from NaSPA.com
</div>
<div class="form-item">
 <label>Message Body: </label>
 (Your Name) thought you would like to see this page from the NaSPA web site.
</div>
<div class="form-item">
 <label for="edit-message">Your Personal Message: <span class="form-required" title="This field is required.">*</span></label>
 <textarea cols="50" rows="10" name="message" id="edit-message"  class="form-textarea resizable required"></textarea>
</div>
<input type="hidden" name="nid" id="edit-nid" value="4348"  />
<input type="hidden" name="forward_footer" id="edit-forward-footer" value=" "  />
<input type="submit" name="op" id="edit-submit" value="Send Message"  class="form-submit" />
</fieldset>
<input type="hidden" name="form_id" id="edit-forward-form" value="forward_form"  />

</div></form>

            [#weight] => 10
        )

    [links_related] => Array
        (
            [#value] => 
            [#weight] => 1
        )

    [vote_up_down] => Array
        (
            [#value] => <div class="vote-up-down-widget"><span class="up-inact" title="You must login to vote."></span><span class="down-inact" title="You must login to vote."></span></div>
            [#weight] => -10
        )

)
Syndicate content