<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Other Stuff</title>
        <link>http://geekswithblogs.net/AmusinglyMOSS/category/9468.aspx</link>
        <description>Whatever happens to strike my fancy - with any luck, it'll strike yours too</description>
        <language>en-US</language>
        <copyright>Adam McKee</copyright>
        <managingEditor>adammmckee@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Woohoo!  Just got my Google Wave Account!</title>
            <link>http://geekswithblogs.net/AmusinglyMOSS/archive/2009/10/13/woohoo--just-got-my-google-wave-account.aspx</link>
            <description>&lt;p&gt;Sorry, already promised out all of my 8 invites, so no begging :)&lt;/p&gt;
&lt;p&gt;I agree with my buddy Rob when he says, "I hope that my dreams are not crushed when I actually start to get to use it."&lt;/p&gt;
&lt;p&gt;I can't wait to see what kinds of neat things I can do with it!  More to come, as I crash into Google Wave...&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135445"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135445" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AmusinglyMOSS/aggbug/135445.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Adam McKee</dc:creator>
            <guid>http://geekswithblogs.net/AmusinglyMOSS/archive/2009/10/13/woohoo--just-got-my-google-wave-account.aspx</guid>
            <pubDate>Tue, 13 Oct 2009 20:07:39 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AmusinglyMOSS/comments/135445.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AmusinglyMOSS/archive/2009/10/13/woohoo--just-got-my-google-wave-account.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/AmusinglyMOSS/comments/commentRss/135445.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AmusinglyMOSS/services/trackbacks/135445.aspx</trackback:ping>
        </item>
        <item>
            <title>XSLT is Pure Evil</title>
            <link>http://geekswithblogs.net/AmusinglyMOSS/archive/2009/05/15/xslt-is-pure-evil.aspx</link>
            <description>&lt;p&gt;And I don't mean the Diet Coke of Evil (only one calorie, not evil enough). I spent most of today finding out the most stupid of things.&lt;/p&gt;
&lt;p&gt;All I wanted to do was to create a blasted &amp;lt;img /&amp;gt; tag that had its source attribute set dynamically by XSLT.  Seems pretty run-of-the-mill, eh?  Here's the XSLT (I've even replaced the xpath with hard-wired text to simplify the scenario):&lt;/p&gt;
&lt;div style="PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; WIDTH: 96.61%; PADDING-TOP: 10px; HEIGHT: 193px; BACKGROUND-COLOR: gainsboro"&gt;&lt;font style="BACKGROUND-COLOR: #dcdcdc" face="Arial"&gt;&amp;lt;xsl:stylesheet version="1.0" extension-element-prefixes="msxsl" exclude-result-prefixes="msxsl js dl" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:js="urn:custom-javascript" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:dl="urn:datalist"&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method="xml" version="1.0" omit-xml-declaration="yes" indent="yes" encoding="utf-8"/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match="/" xml:space="preserve"&amp;gt;&lt;br /&gt;
  &amp;lt;div class="sponsorLogo"&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:element name="img"&amp;gt;&lt;br /&gt;
     &amp;lt;xsl:attribute name="src"&amp;gt;test.gif&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
   &amp;lt;/xsl:element&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;/font&gt;&lt;/div&gt;
&lt;p&gt;I fired up my trusty, dusty C# transform method that I've used for quite a while, passed in the XML I want to transform with the above XSLT, and &lt;strong&gt;&lt;font size="4"&gt;BOOM!&lt;/font&gt;&lt;/strong&gt; I get this .NET runtime error:&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial" color="#ff0000" size="4"&gt;Attribute and namespace nodes cannot be added to the parent element after a text, comment, pi, or sub-element node has already been added.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;What on earth?!  I've done this sort of thing many, &lt;em&gt;many&lt;/em&gt; times, so why now?  Well, here's the reason:&lt;/p&gt;
&lt;p&gt;&amp;lt;xsl:template match="/" &lt;font style="BACKGROUND-COLOR: #ffff00"&gt;xml:space="preserve"&lt;/font&gt;&amp;gt;&lt;/p&gt;
&lt;p&gt;It turns out that this attribute tells the XSLT parser to treat the white space I was using to indent/format my xslt as actual text, which makes the above error make a lot more sense.  I stripped out the &lt;strong&gt;xml:space="preserve"&lt;/strong&gt; attribute, and poof, everything worked perfectly.&lt;/p&gt;
&lt;p&gt;So, there are really two lessons to be learned here:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;xml:space="preserve"&lt;/strong&gt; treats ANY white space (to include line breaks) as actual text, so don't use it if you plan on making your XSLT readable by any human being. &lt;/li&gt;
    &lt;li&gt;Don't cut-and-paste an XSLT document from some other system without first being SURE you know what your headers are doing. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;What a disaster.  Now, it's time to go home.  Have a good weekend, everyone.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132143"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132143" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AmusinglyMOSS/aggbug/132143.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Adam McKee</dc:creator>
            <guid>http://geekswithblogs.net/AmusinglyMOSS/archive/2009/05/15/xslt-is-pure-evil.aspx</guid>
            <pubDate>Sat, 16 May 2009 05:43:05 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AmusinglyMOSS/comments/132143.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AmusinglyMOSS/archive/2009/05/15/xslt-is-pure-evil.aspx#feedback</comments>
            <slash:comments>11</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/AmusinglyMOSS/comments/commentRss/132143.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AmusinglyMOSS/services/trackbacks/132143.aspx</trackback:ping>
        </item>
        <item>
            <title>Your Words are More Powerful Than You Think</title>
            <link>http://geekswithblogs.net/AmusinglyMOSS/archive/2009/03/11/your-words-are-more-powerful-than-you-think.aspx</link>
            <description>&lt;p&gt;&lt;font face="Arial"&gt;If there is ever a time to be aware of how powerful your words are, it's now.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Jonathan was sitting in his grey fabricated cube, wishing he were anywhere else.  It was 9:43 PM on a Tuesday night, and his monitor was spraying that harsh, bluish off-white glow, just as it had been for the past 14 hours.  Jonathan was in a foul mood, but it wasn't the long hours that bothered him, as he was accustomed to late nights at the office.  He was well-paid, after all, and was grateful for his job.  He enjoyed conversations with his co-workers, and thought it was pretty cool how his company let him work just about whenever he wanted to.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;What was eating at Jonathan this particular Tuesday evening at 9:43 PM was that Bruce, his project manager, had just sent him the third utterly ambiguous reply to the same specific questions he'd be asking for days now, and the expectations of his client were the same as they've always been - delivery tomorrow morning at 8:00 AM.  He had been working on this system for only a month now, but when you've been assigned to rescue a two-year long project that was spiraling out of control, a month seems like a year.  Jonathan grumbled under his breath about how he hated this situation, and wondered how he managed to let himself get into it yet again.  &lt;em&gt;This&lt;/em&gt; time, he swore to himself, will be the last.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Jonathan was bewildered, wondering what he could have done differently to get the answers he wanted from his project manager.  Was he asking the wrong questions?  Why on earth was he on the hook for delivery, when it was Bruce that was mismanaging the client's expectations?  Nothing seemed to make sense, especially since he was on his third 5-Hour Energy drink that day, and last night he swore to his wife that the absolute-drop-dead-worst-case scenario would leave him being back home in 17 minutes from now.  And it took at least 32 minutes to get home.  Great.  Another fight to mediate.  At least the kids will be in bed, he thought.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;It was at this time that Jonathan decided that drastic measures were called for - after all, he was the one getting screwed, and there is no better time than the present to take matters into your own hands.  Eric Longfield, the CEO of the company, had recently visited his office branch and reassured everyone at a power-luncheon that he had an open-door policy.  If anyone were in need of anything, all they had to do was let him know, and he'd do everything in his power to see to meeting their needs.  Jonathan decided to take Eric up on his offer.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Jonathan was excruciatingly careful in how he crafted his email to Eric.  After all, Eric &lt;em&gt;was&lt;/em&gt; the CEO - there was a certain reverence required when approaching him in any capacity.  He detailed how his project manager didn't answer any of his questions, and how it was utterly unrealistic to expect him to deliver tomorrow.  He also mentioned how he never saw any goals, and that he felt as if his work wasn't necessarily pushing towards the finish line (if there was one).  Jonathan felt he had adequately communicated the gravity of the situation.  He thought that surely an email that serious will absolve him of having to deliver anything, because it wasn't his fault for the project being in disarray in the first place. It was someone else’s baby, and he was just the sitter... so he thought.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;The next morning, Jonathan’s mood wasn’t much better. The fight with his wife went very poorly last night (not to mention that it lasted until 1:30 AM), and he spilled his $7 mocha on the way to his car. And things only went downhill from there.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;When he reached his desk, he saw his voicemail light blinking on his desk phone. One… two… three… four… &lt;em&gt;five blinks&lt;/em&gt;? Who could have possibly left five messages between ten o’clock and seven-thirty this morning? He didn’t want to find out, but he knew he had to.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;“&lt;em&gt;Message one, left at... 10:02... PM… Yesterday.  &lt;/em&gt;Hey Jonathan, it’s Eric Longfield. I tried your cell but it went straight to voicemail, so I thought I’d call you here too. I got your email, and wanted to talk to you about it. Please give me a call when you get in first thing.  Thanks.”&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;“&lt;em&gt;Message two, left at... 10:34... PM… Yesterday.  &lt;/em&gt;Jonathan, Bruce. You were supposed to have everything done tomorrow morning, and instead of a call from you saying that you were done, I get a call from Eric Longfield. What do you &lt;em&gt;mean&lt;/em&gt; that I’m…”&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Jonathan jammed the “delete message” button as hard as he could with his thumb. He didn’t need to hear the rest of the messages. He slumped in his chair, took a deep breath, and tried to collect himself enough to hold a conversation with Eric, and hope to make amends with Bruce.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Does this story sound familiar in any way to you? How much value do you put into what you say about others? Do you find that you let situations, even the dire situations, dictate your words?&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;In the end, Jonathan was able to keep his job, but he had to work long and hard re-build the bridges he tore down that Tuesday night. Thankfully, Eric saw this as an opportunity to grow Jonathan, and showed him how dangerous sand-blasting really is. The project was delivered eventually, and Jonathan worked on other things, but this simple truth stuck with him:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;em&gt;Your words are more powerful than you think.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130025"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130025" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AmusinglyMOSS/aggbug/130025.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Adam McKee</dc:creator>
            <guid>http://geekswithblogs.net/AmusinglyMOSS/archive/2009/03/11/your-words-are-more-powerful-than-you-think.aspx</guid>
            <pubDate>Thu, 12 Mar 2009 06:30:04 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AmusinglyMOSS/comments/130025.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AmusinglyMOSS/archive/2009/03/11/your-words-are-more-powerful-than-you-think.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AmusinglyMOSS/comments/commentRss/130025.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AmusinglyMOSS/services/trackbacks/130025.aspx</trackback:ping>
        </item>
        <item>
            <title>Backwards Engineering</title>
            <link>http://geekswithblogs.net/AmusinglyMOSS/archive/2009/02/12/backwards-engineering.aspx</link>
            <description>&lt;p&gt;I heard someone say, "backwards-engineer a solution" on a conference call today.  I think he meant, "reverse-engineer," but it got me thinking about when we pass "backwards-engieneering" off as "forward-thinking."&lt;/p&gt;
&lt;p&gt;Just food for thought.  I may write about this more as my fancy is struck.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=129361"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=129361" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AmusinglyMOSS/aggbug/129361.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Adam McKee</dc:creator>
            <guid>http://geekswithblogs.net/AmusinglyMOSS/archive/2009/02/12/backwards-engineering.aspx</guid>
            <pubDate>Fri, 13 Feb 2009 00:41:13 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AmusinglyMOSS/comments/129361.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AmusinglyMOSS/archive/2009/02/12/backwards-engineering.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AmusinglyMOSS/comments/commentRss/129361.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AmusinglyMOSS/services/trackbacks/129361.aspx</trackback:ping>
        </item>
        <item>
            <title>Systems Design and Poker Odds</title>
            <link>http://geekswithblogs.net/AmusinglyMOSS/archive/2009/02/07/systems-design-and-poker-odds.aspx</link>
            <description>&lt;p&gt;&lt;font face="Arial" size="2"&gt;Deciding whether to implement a new, unproven widget to save in development costs is a lot like deciding whether to call a player who goes all-in on the first hand of a poker game.  You may land your cards, but is it really worth it?&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial" size="2"&gt;The way to determine whether or not to take the risk with an unproven widget is a lot like how a professional would assess the scenario I just described.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial" size="2"&gt;An accomplished poker player knows what each hand is worth, not only in terms of the potential winnings, but in terms of how his invested chips will sway who has what equity in the game.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial" size="2"&gt;This same accomplished poker player will tell you that a big, early chip lead doesn't amount to anything worthwhile.  In fact, if you were to double up on the first hand of the game (implying that you eliminated another player to do so), you'd end up with far less equity in the game than the face value of chips you have in front of you.  This loss of equity occurs because someone being eliminated this early in the game is far more valuable to all players than the amount of chips you won by eliminating him.  You won his chips, but everyone else won the benefit of having a player eliminated, and they didn't have to risk the farm to do it.  Chip-for-dollar, your chips are now worth far less than everyone else's.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial" size="2"&gt;Now, let's apply this idea to systems design.  When your tech lead promises that a widget will make the development life-cycle easier, it's always at the cost of configuration, maintenance, and/or other no-see-ums that add up very quickly come delivery time (and to top it off, they are never documented adequately, if at all).  In other words, since he can't account for the the total cost of ownership (TCO) of the widget when he proposes it (hence it being unproven), he would accept the widget as a viable solution based solely on its perceived benefits without regard for the no-see-ums he'll have to wrangle.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial" size="2"&gt;"Saving" on development time with an unproven widget is a lot like winning that huge pot up-front.  While you save in development, someone will pay for the ownership of something duct-taped together, and if you're a vendor, it will inevitably be you.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial" size="2"&gt;So if you are going to take a risk with an unproven widget, do yourself a favor and build an inordinate amount of time into your project plan.  I mean on a factor of 4x of how fast you think you'd get it done if you were stoned, and had a mountain of cheesy poofs that demanded to be eaten.&lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=129267"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=129267" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AmusinglyMOSS/aggbug/129267.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Adam McKee</dc:creator>
            <guid>http://geekswithblogs.net/AmusinglyMOSS/archive/2009/02/07/systems-design-and-poker-odds.aspx</guid>
            <pubDate>Sun, 08 Feb 2009 09:15:03 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AmusinglyMOSS/comments/129267.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AmusinglyMOSS/archive/2009/02/07/systems-design-and-poker-odds.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AmusinglyMOSS/comments/commentRss/129267.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AmusinglyMOSS/services/trackbacks/129267.aspx</trackback:ping>
        </item>
        <item>
            <title>Why Amusingly MOSS?</title>
            <link>http://geekswithblogs.net/AmusinglyMOSS/archive/2009/01/19/why-amusingly-moss.aspx</link>
            <description>&lt;p&gt;Because you have to have a sense of humor to do what I do.  Otherwise, you'd go putting forehead-shaped dents on all of the flat surfaces your office, and we can't have that.&lt;/p&gt;
&lt;p&gt;And that, ladies and gentlemen, is &lt;strong&gt;exactly&lt;/strong&gt; why I'm here, and that's why I started this blog - to save your employer money on broken office furniture and computer hardware.&lt;/p&gt;
&lt;p&gt;I want to personally welcome you to what will become a heaping galvanized bucket-full of knowledge and wisdom regarding SharePoint, ASP.NET, Commerce Server, and various other Microsoft Technologies.&lt;/p&gt;
&lt;p&gt;It is my sincere hope that what you get out of this blog is &lt;strong&gt;meaningful and actionable information to resolve your technology problems.&lt;/strong&gt; I'm always open to comments and questions.  Oh, and if you find that there is a technicality (or glaring mistake) that I have overlooked, I'm always willing to fix them.&lt;/p&gt;
&lt;p&gt;As always, thanks for visiting!&lt;/p&gt;
&lt;p&gt;Cheers,&lt;/p&gt;
&lt;p&gt;Adam&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=128792"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=128792" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AmusinglyMOSS/aggbug/128792.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Adam McKee</dc:creator>
            <guid>http://geekswithblogs.net/AmusinglyMOSS/archive/2009/01/19/why-amusingly-moss.aspx</guid>
            <pubDate>Tue, 20 Jan 2009 06:03:56 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AmusinglyMOSS/comments/128792.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AmusinglyMOSS/archive/2009/01/19/why-amusingly-moss.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AmusinglyMOSS/comments/commentRss/128792.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AmusinglyMOSS/services/trackbacks/128792.aspx</trackback:ping>
        </item>
    </channel>
</rss>