<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;AkYMQn85eyp7ImA9WhRWGEg.&quot;"><id>tag:blogger.com,1999:blog-36756986</id><updated>2012-01-06T07:56:23.123-06:00</updated><category term="codesmith" /><category term="ruby" /><category term="nettiers" /><category term="DLR" /><category term="SQL" /><category term="apple" /><category term="development" /><category term="open source" /><category term="css" /><category term="functional language" /><category term="team dynamics" /><category term="python" /><category term="user interface" /><category term="haskell" /><category term="source control" /><category term="touchpoint" /><category term="provider pattern" /><category term="code generation" /><category term="database" /><category term="safari" /><category term="diabetes" /><category term="apache" /><category term="green snickers" /><category term="xml" /><category term="linq" /><category term="personal" /><category term="dynamic language" /><category term="ajax" /><category term="process" /><category term="programming" /><category term="smalltalk" /><category term="sorting" /><category term="rants" /><category term="multicore" /><category term="music" /><category term="code snippets" /><category term="lambda" /><category term="dog" /><category term="gaming" /><category term="satisfaction" /><category term="freezing" /><category term="creative" /><category term="passion" /><category term="user control" /><category term="subsonic" /><category term="discipline" /><category term="insurance" /><category term="xbox 360" /><category term="asp.net" /><category term="design" /><category term="management" /><category term="subversion" /><category term="recursion" /><category term="scheduling" /><title>Webb on the Web</title><subtitle type="html">Yet another blog on software development.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://nicwebb.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/WebbOnTheWeb" /><feedburner:info uri="webbontheweb" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FWebbOnTheWeb" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FWebbOnTheWeb" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FWebbOnTheWeb" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/WebbOnTheWeb" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FWebbOnTheWeb" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FWebbOnTheWeb" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FWebbOnTheWeb" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><entry gd:etag="W/&quot;AkUARXo6eyp7ImA9WxFRFE0.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-2067101110110439678</id><published>2010-04-27T17:44:00.000-05:00</published><updated>2010-04-27T17:44:04.413-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-27T17:44:04.413-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="personal" /><title>Bump, Bump</title><content type="html">I'm sitting in a doctors office. We've been waiting for almost an hour, but I'm OK with that.&lt;br /&gt;
&lt;br /&gt;
The doctor comes in and asks Veronica to lie down. She fiddles with a small device and after a few moments I hear a quick, repetitive sound. It reminds me of a car driving over a bridge - a "ba-bump, ba-bump."&lt;br /&gt;
&lt;br /&gt;
It's the sound of our child, it's tiny heart beating 152 times per minute.&lt;br /&gt;
&lt;br /&gt;
I can't wait to hear more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-2067101110110439678?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/W-m3ZFaEWPc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/2067101110110439678/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=2067101110110439678" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/2067101110110439678?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/2067101110110439678?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/W-m3ZFaEWPc/bump-bump.html" title="Bump, Bump" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2010/04/bump-bump.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEEQnozfyp7ImA9WxFREk4.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-2955642620955907154</id><published>2010-04-25T16:23:00.000-05:00</published><updated>2010-04-25T16:23:23.487-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-25T16:23:23.487-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="personal" /><category scheme="http://www.blogger.com/atom/ns#" term="diabetes" /><title>My Diabetic Rebellion</title><content type="html">Over the past few weeks, I &lt;a href="http://www.diabetesmine.com/2010/02/teens-with-diabete.html"&gt;read several accounts&lt;/a&gt;&amp;nbsp;of the parents of children with diabetes going through what I like to refer to as "diabetic rebellion."&lt;br /&gt;
&lt;br /&gt;
I haven't seen a lot of accounts of younger diabetics who actually went through this, though.&lt;br /&gt;
&lt;br /&gt;
I would like to tell my story.&lt;br /&gt;
&lt;br /&gt;
I was diagnosed when I was 7 years old. &amp;nbsp;My parents were very good at teaching me to be independent and how take care of myself. &amp;nbsp;I was giving myself shots very soon. I don't remember exactly when, but when I went to &lt;a href="http://www.campsweeney.org/"&gt;Camp Sweeney&lt;/a&gt;&amp;nbsp;I was the only one in my age group that did not have to sign up for "giving myself shots" programs.&lt;br /&gt;
&lt;br /&gt;
I want to make something very clear. My parents &lt;span class="Apple-style-span" style="text-decoration: line-through;"&gt;were&lt;/span&gt;&amp;nbsp;are&amp;nbsp;&lt;b&gt;awesome&lt;/b&gt;. They got me supplies for years with no health insurance. They taught me how to take care of myself, and how important it was to stay on top of my diabetes. I can only hope that if I ever have to raise a diabetic child I can do half as good as they did.&lt;br /&gt;
&lt;br /&gt;
I went to college, and about two years after moving out I just...wasn't staying on top of it. &amp;nbsp;I'd skip a blood sugar test. I'd wait for a while to take insulin, or skip it entirely. I was on Humalog so it was pretty easy to correct later, but it was also easy to just...not do it. &amp;nbsp;I could go to Wal-mart and buy a pint of Ben and Jerry's and eat it. &amp;nbsp;Sure, my friends would give me a hard time, but what did they know? &amp;nbsp;I'd bolus myself enough and it'd be OK.&lt;br /&gt;
&lt;br /&gt;
It wasn't a sudden thing, it took time. I worked as a waiter and grazed on food (chips and salsa), but I was also busting my ass. I told myself that I'd get insulin later. I remember there were days where I probably only got about half what I needed.&lt;br /&gt;
&lt;br /&gt;
Finally, I got very sick. I couldn't hold anything down. My blood sugar turned out to be around 600 mg/dL.&lt;br /&gt;
&lt;br /&gt;
I had to ask my mom to come take me to the emergency room. When they released me, I was told my &lt;a href="http://en.wikipedia.org/wiki/Glycated_hemoglobin"&gt;A1c&lt;/a&gt;&amp;nbsp;was around 14%.&amp;nbsp;It was one of the most humbling times in my life.&lt;br /&gt;
&lt;br /&gt;
When I got out, it was an eye opener. &amp;nbsp;I had a lot of very good friends who were frank with me. They joked "&lt;a href="http://www.google.com/search?q=diabetic+foot+problems"&gt;they'll take your feet&lt;/a&gt;." But, they cared about me. My parents were worried. I had a &lt;a href="http://twitter.com/elementalcolor"&gt;girlfriend&lt;/a&gt; (at the time) who I didn't want to let down.&lt;br /&gt;
&lt;br /&gt;
So, I shaped up. &amp;nbsp;Started seeing my endocrinologist again. &amp;nbsp;Taking care of myself.&lt;br /&gt;
&lt;br /&gt;
I'm currently on the &lt;a href="http://myomnipod.com/"&gt;OmniPod&lt;/a&gt; insulin pump and my A1c levels are doing great. &amp;nbsp;Not quite as low as I'd like, but I'm working on it, like every other diabetic out there :).&lt;br /&gt;
&lt;br /&gt;
This particular post has been written over the past several weeks, off and on. &amp;nbsp;Recently another diabetic, &lt;a href="http://www.hanselman.com/"&gt;Scott Hanselman&lt;/a&gt;, has started a pledge drive at&amp;nbsp;&lt;a href="http://www.hanselman.com/blog/TeamHanselmanAndDiabetesWalk2010.aspx"&gt;http://www.hanselman.com/blog/TeamHanselmanAndDiabetesWalk2010.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Please donate. As hard as it is to write something like this, my hope is that someday, no one ever need deal with something like this again.&lt;br /&gt;
&lt;br /&gt;
Thanks for reading.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-2955642620955907154?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/7u9C9lJY81I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/2955642620955907154/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=2955642620955907154" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/2955642620955907154?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/2955642620955907154?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/7u9C9lJY81I/my-diabetic-rebellion.html" title="My Diabetic Rebellion" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>3</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2010/04/my-diabetic-rebellion.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8FQ3g4fyp7ImA9WxBQGEs.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-5643342593565124307</id><published>2010-01-18T19:26:00.003-06:00</published><updated>2010-01-18T19:33:32.637-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-18T19:33:32.637-06:00</app:edited><title>Long Time No Blog</title><content type="html">You aren't supposed to blog about how you aren't blogging, but I'm going to anyway.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, here it is.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is partly inspired by a &lt;a href="http://nicwebb.blogspot.com/2007/01/battlestar-galactica-and-developing.html?showComment=1262576839500#c7225552444110221708"&gt;comment someone left&lt;/a&gt; on a 4 year old article.  I enjoy writing and need to do more of it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What's been up with me, you ask?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I joined Mary Kay full time. It's a great company to work for, and I get to work on awesome stuff.  Currently spending about half my time doing configuration management (source control, releases) and the other half working with WPF.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I bought a house.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I &lt;a href="http://twitter.com/nicwebb"&gt;joined Twitter&lt;/a&gt; and get a lot of use out of it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I got an insulin pump (the &lt;a href="http://myomnipod.com"&gt;OmniPod&lt;/a&gt;) and I'm loving the pumping lifestyle - much better than injections.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And I've got a lot of things to talk about.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Stay tuned!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-5643342593565124307?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/rW2xTDKT3H8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/5643342593565124307/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=5643342593565124307" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/5643342593565124307?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/5643342593565124307?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/rW2xTDKT3H8/long-time-no-blog.html" title="Long Time No Blog" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2010/01/long-time-no-blog.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8NQHs6cSp7ImA9WB5bE08.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-1214306826121527845</id><published>2007-08-28T12:52:00.000-05:00</published><updated>2007-08-28T13:48:11.519-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-08-28T13:48:11.519-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="passion" /><category scheme="http://www.blogger.com/atom/ns#" term="discipline" /><category scheme="http://www.blogger.com/atom/ns#" term="team dynamics" /><title>You Gotta Stand Up For What You Believe In</title><content type="html">&lt;a href="http://www.amazon.com/Built-Last-Successful-Visionary-Companies/dp/0060566108/ref=pd_bbs_4/105-3043109-9895665?ie=UTF8&amp;s=books&amp;amp;qid=1188326250&amp;sr=8-4"&gt;Built To Last&lt;/a&gt; and &lt;a href="http://www.amazon.com/Good-Great-Companies-Leap-Others/dp/0066620996/ref=pd_bbs_sr_1/105-3043109-9895665?ie=UTF8&amp;amp;s=books&amp;qid=1188326250&amp;amp;sr=8-1"&gt;Good To Great&lt;/a&gt; left me with a lot of ideas to digest, but I'd like to touch on two of them.  In Good To Great, part of the &lt;a href="http://www.jimcollins.com/lab/hedgehog/"&gt;Hedgehog Concept&lt;/a&gt; involves the journey in finding the "core" that you believe in.  In Built To Last, half of the foundation for building a visionary company is "&lt;a href="http://www.jimcollins.com/lab/buildingVision/index.html"&gt;Preserving the Core&lt;/a&gt;."&lt;br /&gt;&lt;br /&gt;How do you find the core?  It has to be something you're passionate about.  Philip Morris is passionate about offering products and defending your choice to use those products.  You may not agree with that stance, and if that's the case, working at Philip Morris is probably not a good idea.  Nordstrom's is passionate about customer service - almost fanatically so.  If you aren't, you won't fit in.&lt;br /&gt;&lt;br /&gt;These companies spent a while looking for their core values.  Once they found them - they were passionate about keeping them, and developing a company where the values would flourish, by hiring (and keeping) individuals who shared those values.&lt;br /&gt;&lt;br /&gt;This is of the utmost importance.  At the point where you're looking for employment in your life, your core set of values is probably established.  It becomes harder to change these as you grow older.  Don't be afraid of what you truly believe in.  If you're passionate about something, find and surround yourself with others who share these values.  By the same token, a company should actively seek to hire individuals that identify with it's core values.&lt;br /&gt;&lt;br /&gt;For software companies - I think there is a key difference between core values and core competencies.  I feel far too many recruiters and jobs focus on technical skills that can be acquired by any good developer in a few weeks.  Focus on the values the developer holds.  Are they &lt;a href="http://nicwebb.blogspot.com/2007/08/software-companies-and-discipline.html"&gt;disciplined&lt;/a&gt;?  Are they &lt;a href="http://gettingreal.37signals.com/ch08_You_Cant_Fake_Enthusiasm.php"&gt;enthusiastic&lt;/a&gt;?  These are more important, as these traits will drive them to always be learning the technical skills they need to help them succeed (and your business, as well).&lt;br /&gt;&lt;br /&gt;Disclaimer:  There is still a core level of technical competency that any developer needs.  I think it's hard to really quantify it, but anyone working as a developer definitely needs technical skills.   They are, after all, what allows us to do our jobs.  I just don't feel that measuring someone solely by their laundry list of buzzwords on their resume is a good indicator of their true worth.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-1214306826121527845?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/ypacjUkzDFE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/1214306826121527845/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=1214306826121527845" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/1214306826121527845?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/1214306826121527845?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/ypacjUkzDFE/you-gotta-stand-up-for-what-you-believe.html" title="You Gotta Stand Up For What You Believe In" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/08/you-gotta-stand-up-for-what-you-believe.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQMQXYzeCp7ImA9WB5UFk4.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-6131719433867011341</id><published>2007-08-20T13:59:00.001-05:00</published><updated>2007-08-20T14:16:20.880-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-08-20T14:16:20.880-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="personal" /><category scheme="http://www.blogger.com/atom/ns#" term="music" /><title>DJ Z-Trip at the Granada</title><content type="html">My wife and I went to see &lt;a href="http://djztrip.com"&gt;DJ Z-Trip&lt;/a&gt; at the &lt;a href="http://www.granadatheater.com/"&gt;Granada&lt;/a&gt; last night.  It was one of the best shows I've ever been to.&lt;br /&gt;&lt;br /&gt;Any time you can hear Led Zeppelin mixed with Jay-Z is definitely a good time.&lt;br /&gt;&lt;br /&gt;Watching Z-Trip mix is a sight to behold.  I've never seen anyone so into what they were doing.  He looked absolutely thrilled to be doing what he was doing - the enthusiasm was infectious.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.myspace.com/aceyalone"&gt;Aceyalone&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Gift_of_Gab"&gt;Gift of Gab&lt;/a&gt; were fantastic, as well.  I definitely need to check out &lt;a href="http://www.blackalicious.com/"&gt;Blackalicious&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The opener DJ, Tricky-T was pretty good as well.  Not as good as Z-Trip, but definitely talented.&lt;br /&gt;&lt;br /&gt;The drummer was great too.  They gave him a good 10 minute set, with nothing but the drums.&lt;br /&gt;&lt;br /&gt;My wife and I got a chance to meet Z-Trip, as well.  Real nice guy, gave my wife a big hug like he'd known her for years.  She had bought a shirt and he tagged the back of it.&lt;br /&gt;&lt;br /&gt;If you have a chance to catch any of the remaining tour dates, I'd definitely recommend doing that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-6131719433867011341?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/gqwGZ13xrcg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/6131719433867011341/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=6131719433867011341" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/6131719433867011341?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/6131719433867011341?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/gqwGZ13xrcg/dj-z-trip-at-granada.html" title="DJ Z-Trip at the Granada" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/08/dj-z-trip-at-granada.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0IMQHkyfip7ImA9WB5UEko.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-4129849217676645512</id><published>2007-08-16T08:22:00.000-05:00</published><updated>2007-08-16T08:39:41.796-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-08-16T08:39:41.796-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="recursion" /><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="user control" /><category scheme="http://www.blogger.com/atom/ns#" term="asp.net" /><title>FindControl and UniqueID</title><content type="html">The &lt;a href="http://msdn2.microsoft.com/en-us/library/31hxzsdw.aspx"&gt;FindControl&lt;/a&gt; method &lt;a href="http://www.codinghorror.com/blog/archives/000307.html"&gt;is not recursive&lt;/a&gt;.  Should have done that Google query before I spent 3 hours debugging.&lt;br /&gt;&lt;br /&gt;Imagine you've gotten a page that adds user controls very late in the page lifecycle - after Init, in any case.  Like any good control developer, you're definitely going to &lt;a href="http://weblogs.asp.net/infinitiesloop/archive/2006/08/30/TRULY-Understanding-Dynamic-Controls-_2800_Part-3_2900_.aspx"&gt;recreate the control tree after postback&lt;/a&gt;, but you have some additional requirements.  In addition to adding the control to the tree, you need to keep track of certain types of controls, and re-apply some properties to them.  Like, a "&lt;a href="http://www.asp.net/ajax/control-toolkit/live/CollapsiblePanel/CollapsiblePanel.aspx"&gt;collapsed&lt;/a&gt;" property, for instance.&lt;br /&gt;&lt;br /&gt;So, you throw some control ID's into a &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.statebag.aspx"&gt;StateBag&lt;/a&gt; (I really like that class name) to retrieve later, to apply the properties to each control.  You have the ID, and you have the control type - should be easy to find the controls on each page, and then apply properties, right?&lt;br /&gt;&lt;br /&gt;Wrong.  Not if you don't know where in the tree it is.  Page.FindControl(controlID) doesn't work if it's deep in the tree.  However, using our handy-dandy &lt;a href="http://www.aisto.com/roeder/dotnet/"&gt;Reflector&lt;/a&gt;, we can see that FindControl uses ID and &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.control.uniqueid.aspx"&gt;UniqueID&lt;/a&gt;, which:&lt;br /&gt;&lt;blockquote&gt;Gets the unique, hierarchically qualified identifier for the server control.&lt;/blockquote&gt;&lt;br /&gt;Ahhh...just what I need. The ID and where it is in the tree - all without having to to implement FindControlRecursive (for now).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-4129849217676645512?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/efiFp0S_qAs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/4129849217676645512/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=4129849217676645512" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/4129849217676645512?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/4129849217676645512?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/efiFp0S_qAs/findcontrol-and-uniqueid.html" title="FindControl and UniqueID" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>4</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/08/findcontrol-and-uniqueid.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAEQXk8fyp7ImA9WB5VF0U.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-4259344274393091630</id><published>2007-08-10T15:07:00.000-05:00</published><updated>2007-08-10T17:08:20.777-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-08-10T17:08:20.777-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="discipline" /><category scheme="http://www.blogger.com/atom/ns#" term="management" /><title>Software Companies and Discipline</title><content type="html">&lt;a href="http://theimes.com/"&gt;Anderson&lt;/a&gt; &lt;a href="http://nicwebb.blogspot.com/2007/08/discipline-and-unity.html#comment-2192406374333988202"&gt;brings up&lt;/a&gt; to my next point - what would you consider discipline in a software company?&lt;br /&gt;&lt;br /&gt;The first discipline concept is Disciplined People.  Most top-notch software shops know how to hire  disciplined employees - individuals who never stop learning, and who are committed to building (and shipping) great software.  You want everyone on board to be serious about their craft (whether it is a developer, tester, or manager).  They need to have both the guts and the ability to take your company to Great (as capitalized by Jim Collins).&lt;br /&gt;&lt;br /&gt;The next concept is Disciplined Thought.  You've hired the right people.  They have the raw abilities, and they have the &lt;a href="http://www.answers.com/topic/gumption"&gt;gumption&lt;/a&gt; to perform at their best.  Now, comes the unified part.  You have to harness all of that discipline and focus it on your software.  This is hard.  You need to create a sense of unity. It's not the testers vs. the developers.  It's not management vs. everyone else.  The entire team needs to be "signed up" to deliver Great software.  Again - if you've got Disciplined People, this part should be cake.&lt;br /&gt;&lt;br /&gt;Finally, there's Disciplined Action.  This is definitely the hardest part to "get right."  It's crucial that the first two ideas happen before this one can be truly successful.  I myself have a hard time with it - undisciplined thoughts that turn into actions can make it look like it's a failure in execution, rather than planning.  (Especially when you have several successes under your belt.)&lt;br /&gt;&lt;br /&gt;Developers are notorious for being bleeding-edge adopters.  It's practically a badge of honor to be running nothing but beta software on one's machine.  I'm no exception - it's happened in the past, and right now I've got two different versions of Visual Studio running side-by-side.  What happens is if you let this tendency run wild in your software, you will have problems.  I'm not saying new technology is a bad thing.  I can't wait to replace some of my &lt;a href="http://msdn2.microsoft.com/en-us/library/xfhwa508.aspx"&gt;Dictionaries&lt;/a&gt; with &lt;a href="http://blogs.msdn.com/bclteam/archive/2006/11/09/introducing-hashset-t-kim-hamilton.aspx"&gt;HashSets&lt;/a&gt;.  &lt;a href="http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx"&gt;LINQ&lt;/a&gt; is undoubtedly cool.  And don't get me started on &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/04/08/new-orcas-language-feature-lambda-expressions.aspx"&gt;lamda&lt;/a&gt;s.  But, there's no way I would try to integrate .NET 3.5 into an existing project that needs to ship anytime soon.  I've been down that road before, and I know where it ends.  (Hint: it's a particularly "deathly" kind of "march.")&lt;br /&gt;&lt;br /&gt;You get the right people, who will make the right decisions, and execute them properly.  For a software company, this means hiring people who will &lt;em&gt;ship&lt;/em&gt; great software, and base their decisions and actions around that &lt;a href="http://jimcollins.com/lab/hedgehog/index.html"&gt;concept&lt;/a&gt;.  Developers write high quality, unit tested code. Testers make sure the code meets requirements and is of high quality.  Managers keep the machine running smoothly, and block any attempts to foul it up. Business analysts figure out what the customer &lt;em&gt;really&lt;/em&gt; wants.  And no one makes decisions that will run contrary to the desired outcome - &lt;em&gt;shipping Great software&lt;/em&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-4259344274393091630?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/OS0vLuYJK9Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/4259344274393091630/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=4259344274393091630" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/4259344274393091630?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/4259344274393091630?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/OS0vLuYJK9Y/software-companies-and-discipline.html" title="Software Companies and Discipline" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/08/software-companies-and-discipline.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQMQ347eyp7ImA9WB5VFko.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-6172859924792012424</id><published>2007-08-09T09:26:00.001-05:00</published><updated>2007-08-09T09:39:42.003-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-08-09T09:39:42.003-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="management" /><category scheme="http://www.blogger.com/atom/ns#" term="team dynamics" /><title>Discipline and Unity</title><content type="html">I've just about finished up &lt;a href="http://jimcollins.com/"&gt;Jim Collins&lt;/a&gt;' &lt;a href="http://www.amazon.com/Good-Great-Companies-Leap-Others/dp/0066620996/ref=pd_bbs_sr_1/105-3043109-9895665?ie=UTF8&amp;s=books&amp;amp;qid=1186670115&amp;sr=8-1"&gt;Good To Great&lt;/a&gt; audio book, and I've recently finished &lt;a href="http://www.amazon.com/Dynamics-Software-Development-Best-Practices/dp/0735623198/ref=pd_bbs_sr_1/105-3043109-9895665?ie=UTF8&amp;amp;s=books&amp;qid=1186670151&amp;amp;sr=1-1"&gt;Dynamics of Software Development&lt;/a&gt; by &lt;a href="http://www.mccarthyshow.com/"&gt;Jim McCarthy&lt;/a&gt;.  After reading/listening to both, I've come to the conclusion that:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;For a software team to become successful, you need a common understanding of the goal.  Every member needs to know what the final desired outcome is.&lt;/li&gt;&lt;li&gt;Every team member also needs discipline.  &lt;a href="http://jasona.net"&gt;Jason Alexander&lt;/a&gt; &lt;a href="http://jasona.net/archive/2007/07/31/disciplined-everything.aspx"&gt;sums it up&lt;/a&gt; better than I could.&lt;/li&gt;&lt;/ol&gt;With discipline and a clear goal, everyone focuses on the outcome with all the effort they can muster.&lt;br /&gt;&lt;br /&gt;Now, there are obviously more factors that contribute to a successful team, but I feel like these are some of the most important ones.  If your team has these qualities, you're definitely on the right track.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-6172859924792012424?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/m2Tj1qGDeLk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/6172859924792012424/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=6172859924792012424" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/6172859924792012424?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/6172859924792012424?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/m2Tj1qGDeLk/discipline-and-unity.html" title="Discipline and Unity" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/08/discipline-and-unity.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4GRH04fyp7ImA9WB5VFko.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-1016118238667799232</id><published>2007-07-12T07:48:00.000-05:00</published><updated>2007-08-09T10:55:25.337-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-08-09T10:55:25.337-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="asp.net" /><category scheme="http://www.blogger.com/atom/ns#" term="css" /><title>Raising the Lowered Bar – ASP.NET and the Barrier of Entry</title><content type="html">&lt;a href="http://video.google.com/videoplay?docid=8913084255008000794"&gt;Developers, developers, developers!&lt;/a&gt; It's been Microsoft's mantra for a long time. They had the VB developers "back in the day" (a Tuesday, I believe) and when .NET came out, they needed a way to keep them. &lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So, what do you do with a bunch of developers that don't want to learn a new way of doing things? Simple - don't make them learn.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;ASP.NET has a low barrier of entry&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;So, now, there's this new .NET "thing" and there's all sorts of ways to make a presentation layer for your applications. You can start using WinForms, or you can use ASP.NET. (Now, you can also start using WPF, or Silverlight, but we're talking about the dark ages of 2002. Bear with me.) From what I recall, it seems like that Microsoft was pushing ASP.NET pretty hard, and leaving WinForms as a not-quite second class citizen.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So, ASP.NET. It's fantastic. I loved it and I still think it's a fantastic platform for any development - web-focused or otherwise. Microsoft did too, and they did several things to make it easy to start developing applications in ASP.NET. They used a lot of conventions from the old VB world of Forms development (TextBox, Label, Button) for the presentation, and they presented a fairly robust event-driven model for UI interaction. They kept the same basic state management tools available to you from ASP classic, and tried to make it as easy as possible to migrate existing ASP applications to .NET.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;(Side note - anyone who's actually done a migration like that with a "real" application knows that it's not trivial at all. But Microsoft did try.)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;What Microsoft failed to do with ASP, and what they sort-of did with ASP.NET was abstract the messy land of web development, with it's:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;HTTP verbs (POST, GET)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Javascript&lt;/li&gt;&lt;br /&gt;&lt;li&gt;the HTML DOM&lt;/li&gt;&lt;br /&gt;&lt;li&gt;CSS&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Different browser issues (usually related to the items above).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;They shipped a bunch of tools (DataGrids, several wizards) that would allow you to make your easy, cookie-cutter "enter some data and display it back to the user, or throw it in the database" applications very quickly.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I know I'm glossing over a lot of stuff. Bear with me.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Rails and Scaffolding&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;What? Ruby? Rails? Blasphemy!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Seriously though, this is great stuff. I have yet to do more than play with it, but &lt;a href="http://nicwebb.blogspot.com/2007/05/dynamic-ducks-dynamically-functionally.html"&gt;I've made a commitment&lt;/a&gt; to start learning something new, and Ruby is a start.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So, what do I do? I start reading blogs. I've been reading a lot of &lt;a href="http://gilesbowkett.blogspot.com/"&gt;Giles Bowkett&lt;/a&gt;. He's abrasive, but &lt;a href="http://gettingreal.37signals.com/ch04_Make_Opinionated_Software.php"&gt;he takes a side&lt;/a&gt;, and I like that. Something he &lt;a href="http://gilesbowkett.blogspot.com/2007/05/does-seaside-have-marketing-problem.html"&gt;touched on&lt;/a&gt; is part of the inspiration behind this whole article:&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;I recently tried to get the Rails core team to switch the for loops in the scaffolding templates to iterators, on the grounds that this would encourage new Rails programmers to use iterators instead of repeating their bad old habits with for loops. I failed completely. Josh Susser said that replacing for loops with iterators would &lt;strong&gt;set up a barrier to adoption for new Rails programmers&lt;/strong&gt;, and that was that. The idea didn't fly for a second.&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;So - barriers of entry &amp;lt;=&amp;gt; Bad.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The whole philosophy behind the Rails team is to get programmers using Rails (and Ruby). The easier it is to switch, the better.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;The state of Web Development Now&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;So, what's happening now? You don't find a lot of WinForms developers, for one. I've been on job hunts recently, and let me tell you - Microsoft shops don't care about WinForms. They all want ASP.NET. (Or they're stuck supporting their old VB apps. But they're moving them to ASP.NET.)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So, now all of the developers working on Microsoft's platform have ASP.NET based applications. You have zillions of web applications out there that basically all do the same thing - enter data into a database and display it back later. And a lot of them are exactly the same. Sure, the database is different, and the colors are different, but there's not a huge differentiator in applications that are developed for ASP.NET, if you stick to the DataGrid/GridView application model.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Where you find the truly outstanding applications now, is both a great idea, with great execution, in ways that make that web browser dance. And there's frameworks out there that try to help you (&lt;a href="http://ajax.asp.net/"&gt;ASP.NET AJAX&lt;/a&gt;, control suites like &lt;a href="http://telerik.com/"&gt;telerik&lt;/a&gt; or &lt;a href="http://componentone.com/default.aspx"&gt;ComponentOne&lt;/a&gt;).&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;However, several of these still provide somewhat &lt;a href="http://www.joelonsoftware.com/articles/LeakyAbstractions.html"&gt;leaky abstractions&lt;/a&gt;. FileUpload controls don't work correctly in UpdatePanels. Validators don't work correctly anymore. ComponentOne's grid looks great, but only if you're willing to put up with it's bloat. (It emits a TON of code to the browser.)&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;However, think of those applications that just give you the &lt;a href="http://www.randsinrepose.com/archives/2002/07/05/your_holy_shit_list.html"&gt;"holy shit"&lt;/a&gt; moment when you figure out what's really going on.&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://maps.google.com/"&gt;GoogleMaps&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://mail.google.com/"&gt;Gmail&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://local.live.com/"&gt;VirtualEarth&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://communityserver.org/"&gt;Community Server&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.basecamphq.com/"&gt;Basecamp&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I'm sure you've probably got your own list, but these are ones that really stuck out in my mind. And what do they have in common? These applications were built with the understanding that the browser is fickle, but powerful, and take advantage of the HTML/CSS/Javascript "mess."&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Go Learn Something!&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;So, what's the point of all this? Go learn what you're emitting to the browser! Here's some problems that, without knowing about the HTML DOM and Javascript, I would have had a nightmare of a time dealing with.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;The ASP.NET Label - is there any more mis-used control? This needs to have the AssociatedControlID property filled in, so that it actually renders as a &amp;lt;label&amp;gt; or you'll end up with a &amp;lt;span&amp;gt;. Heaps of problems there. Much better to use a Literal if you're just trying to throw some text up on the page.&lt;br /&gt;&lt;br /&gt;Side note - DataBinding (for globalization), in my experience, &lt;em&gt;is easier&lt;/em&gt; with a Label. It has all the properties that you'll need to globalize. So, what can you do? Override the default rendering (as a &amp;lt;span&amp;gt;) with something else if it's screwing up your CSS. Or roll your own control. The &lt;a href="http://www.asp.net/cssadapters/"&gt;CSS Friendly Adapters&lt;/a&gt; are a good place to start.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;The DataGrid, or the GridView. Good for simple stuff, but I bet you won't find many of those on anything that is public facing - too much to send up to the browser. Use a Repeater instead.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://scottwater.com/"&gt;Scott Watermasysk&lt;/a&gt; has a &lt;a href="http://scottwater.com/blog/archive/quick-tips-for-asp-net-part-one/"&gt;great article&lt;/a&gt; about these tips, and others as well.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;I'm sure there are other problems out there, but these are just some of what I've encountered. But, without the big picture, I couldn't have solved them as effectively as I would have liked.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Congratulations! You've reached the end. Thanks for reading, and I'll (hopefully) have some more in the future.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-1016118238667799232?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/wprDZxN0SuY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/1016118238667799232/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=1016118238667799232" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/1016118238667799232?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/1016118238667799232?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/wprDZxN0SuY/raising-lowered-bar-aspnet-and-barrier.html" title="Raising the Lowered Bar – ASP.NET and the Barrier of Entry" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/07/raising-lowered-bar-aspnet-and-barrier.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8ESXk5eip7ImA9WB5QEkw.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-5522341393429730810</id><published>2007-06-30T09:08:00.000-05:00</published><updated>2007-06-30T09:30:08.722-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-06-30T09:30:08.722-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="xbox 360" /><category scheme="http://www.blogger.com/atom/ns#" term="personal" /><category scheme="http://www.blogger.com/atom/ns#" term="freezing" /><category scheme="http://www.blogger.com/atom/ns#" term="gaming" /><title>Please sir, may I have another?</title><content type="html">Between my wife and I, we own a PlayStation 2, Gamecube, Xbox, Dreamcast, Super Nintendo, and a Nintendo 64 and NES in storage.&lt;br /&gt;&lt;br /&gt;We've also gotten into &lt;a href="http://www.boardgamegeek.com/"&gt;board games&lt;/a&gt; recently, and we own &lt;a href="http://www.boardgamegeek.com/game/13"&gt;Settlers of Catan&lt;/a&gt;, &lt;a href="http://www.boardgamegeek.com/game/9209"&gt;Ticket to Ride&lt;/a&gt;, &lt;a href="http://www.boardgamegeek.com/game/13642"&gt;Louis XIV&lt;/a&gt;, and &lt;a href="http://www.boardgamegeek.com/game/10383"&gt;Risk Godstorm&lt;/a&gt; and &lt;a href="http://www.boardgamegeek.com/game/22551"&gt;Risk Star Wars (Original Trilogy&lt;/a&gt;, of course.  Thanks &lt;a href="http://zcoder.blogspot.com/"&gt;Zach&lt;/a&gt;!). We like games.&lt;br /&gt;&lt;br /&gt;We also &lt;strike&gt;have&lt;/strike&gt; had a launch Xbox 360. It finally decided to flash the dreaded &lt;a href="http://editorials.teamxbox.com/xbox/1651/The-Red-Ring-of-Death/p1/"&gt;Red Ring of Death&lt;/a&gt; 2 weeks ago, so I called to get it replaced.&lt;br /&gt;&lt;br /&gt;I recieved the "new" one yesterday, and was very excited to try out &lt;a href="http://www.xbox.com/en-US/games/c/carcassonnexboxlivearcade/"&gt;Carcassonne&lt;/a&gt; (our first Euro-board game experience, shared with &lt;a href="http://theimes.com/"&gt;The Imes&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Instead, I'm treated to the console freezing. Constantly. Any notification will freeze the system within a second or two, forever letting me know that &lt;a href="http://live.xbox.com/en-US/profile/profile.aspx?pp=0&amp;GamerTag=PoofyLake"&gt;PoofyLake&lt;/a&gt; or &lt;a href="http://live.xbox.com/en-US/profile/profile.aspx?pp=0&amp;amp;GamerTag=BooleanFlag"&gt;BooleanFlag&lt;/a&gt; is now online. Playing a video is certain to cause the system to freeze before about 30 seconds have elapsed. And forget games. &lt;a href="http://www.elderscrolls.com/home/home.htm"&gt;Oblivion&lt;/a&gt; locks up, &lt;a href="http://gearsofwar.com/"&gt;GoW&lt;/a&gt; locks up, even Arcade titles.&lt;br /&gt;&lt;br /&gt;So, I'm getting a "new" one again. I really hope they get it right this time, and I don't end up like &lt;a href="http://www.joystiq.com/2007/06/27/audio-proof-of-one-mans-11-dead-xbox-360s/"&gt;this guy&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We'll see.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-5522341393429730810?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/WHMqJxyS5p0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/5522341393429730810/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=5522341393429730810" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/5522341393429730810?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/5522341393429730810?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/WHMqJxyS5p0/please-sir-may-i-have-another.html" title="Please sir, may I have another?" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/06/please-sir-may-i-have-another.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4MRn4zeCp7ImA9WB5RE0g.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-3539474488918092363</id><published>2007-06-18T15:03:00.000-05:00</published><updated>2007-06-20T09:49:47.080-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-06-20T09:49:47.080-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="touchpoint" /><title>TouchPoint Released!</title><content type="html">Something that I got to watch be developed by a &lt;a href="http://zcoder.blogspot.com/2007/06/touchpoint.html"&gt;good friend of mine&lt;/a&gt; was &lt;a href="http://ariamedia.com/products/touchpoint/"&gt;released&lt;/a&gt; recently.&lt;br /&gt;&lt;br /&gt;Go &lt;a href="http://ariamedia.com/products/touchpoint/take_a_tour/"&gt;check it out&lt;/a&gt; - very cool stuff. Kudos!&lt;br /&gt;&lt;br /&gt;&lt;em&gt;(6/20/2007) Edit - changed link.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-3539474488918092363?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/i-gMsnIqTjw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/3539474488918092363/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=3539474488918092363" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/3539474488918092363?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/3539474488918092363?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/i-gMsnIqTjw/touchpoint-released.html" title="TouchPoint Released!" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/06/touchpoint-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YDQXo7eyp7ImA9WB5SGE4.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-8802551292504621470</id><published>2007-06-14T10:29:00.001-05:00</published><updated>2007-06-14T10:32:50.403-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-06-14T10:32:50.403-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="green snickers" /><title>I Think That Snicker's Bar has Gone Bad</title><content type="html">&lt;div&gt;So, I got low blood sugar and decided to grab a candy bar from the machine. I bit into it and here's what I saw:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.x-entertainment.com/updates/pics/skwid3.jpg"&gt;&lt;img style="WIDTH: 320px; CURSOR: hand" alt="" src="http://www.x-entertainment.com/updates/pics/skwid3.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Scared the be-jeebus out of me.  Turns out it's movie promotion for Shrek.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Seriously, who comes up with this stuff?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-8802551292504621470?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/x3Vyd8EQKbo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/8802551292504621470/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=8802551292504621470" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/8802551292504621470?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/8802551292504621470?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/x3Vyd8EQKbo/i-think-that-snickers-bar-has-gone-bad.html" title="I Think That Snicker's Bar has Gone Bad" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/06/i-think-that-snickers-bar-has-gone-bad.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIMQHY4cCp7ImA9WB5SF0k.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-8494467055712590086</id><published>2007-06-13T09:38:00.000-05:00</published><updated>2007-06-13T09:56:21.838-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-06-13T09:56:21.838-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="dog" /><category scheme="http://www.blogger.com/atom/ns#" term="insurance" /><category scheme="http://www.blogger.com/atom/ns#" term="user interface" /><category scheme="http://www.blogger.com/atom/ns#" term="diabetes" /><title>My Dog Ate My Blood Sugar Meter</title><content type="html">The title just about sums it up. &lt;a href="http://zcoder.blogspot.com/"&gt;Zach&lt;/a&gt; has heard all of my "my dog ate..." stories by now, but this one was just too good.&lt;br /&gt;&lt;br /&gt;There's a big crack in the LCD cover. The LCD isn't actually cracked, but it's still hard to read anything.&lt;br /&gt;&lt;br /&gt;Since &lt;a href="http://nicwebb.blogspot.com/2007/02/hello-my-name-is-nic-and-im-diabetic.html"&gt;I now have insurance&lt;/a&gt;, I figured that I'd check the website to see what the copay would be on a new meter. I had to sign up first though.&lt;br /&gt;&lt;br /&gt;It asked for a username, with the following verbage:&lt;br /&gt;&lt;blockquote&gt;Please enter your desired username. Must be between 5-50 characters&lt;/blockquote&gt;&lt;br /&gt;I enter my standard username, fill everything out, and am then greeted with the following error message:&lt;br /&gt;&lt;blockquote&gt;Your username must contain both letters and numbers.&lt;/blockquote&gt;&lt;br /&gt;Oh, really? Would it be that difficult to put that statement above the username entry field? Or, even better, not require numbers in the username? Is that really necessary?&lt;br /&gt;&lt;br /&gt;Did they even set a real user down to run through the sign-up process before it went to production?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-8494467055712590086?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/F3z86AVFI1M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/8494467055712590086/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=8494467055712590086" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/8494467055712590086?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/8494467055712590086?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/F3z86AVFI1M/my-dog-ate-my-blood-sugar-meter.html" title="My Dog Ate My Blood Sugar Meter" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/06/my-dog-ate-my-blood-sugar-meter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ECQnc_fSp7ImA9WB5SFkg.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-1989195972459358038</id><published>2007-06-12T08:33:00.000-05:00</published><updated>2007-06-12T08:41:03.945-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-06-12T08:41:03.945-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="safari" /><category scheme="http://www.blogger.com/atom/ns#" term="apple" /><title>Safari Hates my Proxy Server</title><content type="html">So, &lt;a href="http://www.apple.com/safari"&gt;Safari for Windows&lt;/a&gt;.  I'm not the &lt;a href="http://www.codinghorror.com/blog/archives/000884.html"&gt;first&lt;/a&gt; &lt;a href="http://www.hanselman.com/blog/SafariForWindowsFirstImpressions.aspx"&gt;person&lt;/a&gt; &lt;a href="http://www.joelonsoftware.com/items/2007/06/11.html"&gt;to talk&lt;/a&gt; about this, and they'll have much more interesting things to say, so I'll keep it short.&lt;br /&gt;&lt;br /&gt;I'm behind a proxy server that requires domain authentication.  FireFox works great. Windows LiveWriter works fine. Windows Media Player (using XM Radio Online and Urge) works just fine.  Opera has no problems.&lt;br /&gt;&lt;br /&gt;Safari crashes the instant I try to authenticate.  Every time.&lt;br /&gt;&lt;br /&gt;I know it's beta, but still - not too impressed so far.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-1989195972459358038?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/mv4updaFuhk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/1989195972459358038/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=1989195972459358038" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/1989195972459358038?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/1989195972459358038?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/mv4updaFuhk/safari-hates-my-proxy-server.html" title="Safari Hates my Proxy Server" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/06/safari-hates-my-proxy-server.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMESHoyfCp7ImA9WB5SFUs.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-3634445030785438126</id><published>2007-05-18T08:12:00.000-05:00</published><updated>2007-06-11T08:10:09.494-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-06-11T08:10:09.494-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="personal" /><category scheme="http://www.blogger.com/atom/ns#" term="satisfaction" /><category scheme="http://www.blogger.com/atom/ns#" term="management" /><title>Oh, The Places You'll Go</title><content type="html">&lt;a href="http://nicwebb.blogspot.com/2007/04/buy-me-pink-cadillac.html"&gt;Leaving a job is never easy&lt;/a&gt;, especially when you've been a part of moving the company forward.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Recently, I learned that a lot of the frustrations that I had with my previous position were being addressed directly&lt;br /&gt;&lt;br /&gt;They are moving forward, implemented Scrum and a lot of the changes I was pushing for, and have turned the development team into a highly motivated, effecient team with a great sense of camraderie.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And that's awesome. I just wish I could be there to see it happen. It's a shame when the changes can only be brought about with a major catalyst, such as someone leaving the company.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Best of luck, team A.D.D. - I know this is going to be great for you all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-3634445030785438126?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/-XkEMRKi4o8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/3634445030785438126/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=3634445030785438126" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/3634445030785438126?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/3634445030785438126?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/-XkEMRKi4o8/oh-places-youll-go.html" title="Oh, The Places You'll Go" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/05/oh-places-youll-go.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUFQ348eCp7ImA9WBFaFEw.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-1101409161755707738</id><published>2007-05-17T11:04:00.000-05:00</published><updated>2007-05-17T11:10:12.070-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-05-17T11:10:12.070-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="code snippets" /><category scheme="http://www.blogger.com/atom/ns#" term="xml" /><title>Get XmlDocument from a class</title><content type="html">&lt;p&gt;So - I've been trying to find an easy way to add a ToXml() method to a lot of objects lately.  Here's what I've come up with:&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;MemoryStream ms = new MemoryStream();&lt;br /&gt;XmlWriter writer = XmlWriter.Create(ms);&lt;br /&gt;XmlSerializer xs = new XmlSerializer(this.GetType());&lt;br /&gt;xs.Serialize(writer, this);&lt;br /&gt;XmlDocument doc = new XmlDocument();&lt;br /&gt;&lt;br /&gt;// Need to start at the beginning of the MemoryStream&lt;br /&gt;ms.Seek(0, SeekOrigin.Begin);&lt;br /&gt;&lt;br /&gt;doc.Load(ms);&lt;br /&gt;return doc;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The Seek method took me the longest to figure out.  I kept getting a "Root node is missing." exception.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Hope this helps someone.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-1101409161755707738?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/Dwhoq9DeKK8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/1101409161755707738/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=1101409161755707738" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/1101409161755707738?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/1101409161755707738?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/Dwhoq9DeKK8/get-xmldocument-from-class.html" title="Get XmlDocument from a class" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/05/get-xmldocument-from-class.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEINQ3w6fip7ImA9WBFbGEU.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-3101183189772727533</id><published>2007-05-11T07:16:00.000-05:00</published><updated>2007-05-11T07:29:52.216-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-05-11T07:29:52.216-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="open source" /><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="subversion" /><category scheme="http://www.blogger.com/atom/ns#" term="subsonic" /><title>CodePlex and Subversion</title><content type="html">As I've &lt;a href="http://nicwebb.blogspot.com/search/label/subversion"&gt;posted about before&lt;/a&gt;, &lt;a href="http://subversion.tigris.org"&gt;Subversion&lt;/a&gt; is a great tool.  It's&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Open Source&lt;/li&gt;&lt;li&gt;Free&lt;/li&gt;&lt;li&gt;Fast&lt;/li&gt;&lt;li&gt;Easy&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://blog.wekeroad.com/"&gt;Rob Conery&lt;/a&gt; and his awesome &lt;a href="http://www.codeplex.com/actionpack"&gt;SubSonic&lt;/a&gt; project are hosted on &lt;a href="http://www.codeplex.com/"&gt;CodePlex&lt;/a&gt;, which uses &lt;a href="http://msdn2.microsoft.com/en-us/teamsystem/aa718934.aspx"&gt;TFS&lt;/a&gt; as it's backend.  I'm working with TFS now (at &lt;a href="http://www.marykay.com/"&gt;work&lt;/a&gt;) and it's a great solution for the teams we have here.  But, I don't think it's appropriate for the CodePlex community.&lt;/p&gt;&lt;p&gt;And &lt;a href="http://blog.wekeroad.com/archive/2007/05/10/SubSonic-2.0-Starter-Site-Is-Ready.aspx"&gt;Rob's losing contributors&lt;/a&gt; - something no open source team wants to happen.&lt;/p&gt;&lt;p&gt;So - here's my two cents.  &lt;a href="http://www.codeplex.com/CodePlex/WorkItem/View.aspx?WorkItemId=7082"&gt;CodePlex should switch to Subversion&lt;/a&gt;.  It's a much more appropriate source control tool (for this type of collaboration) and I'll even go out on a limb here and say that if they do switch, I'll personally see what I can do to start contributing to SubSonic.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-3101183189772727533?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/qoOw6UieEZ0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/3101183189772727533/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=3101183189772727533" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/3101183189772727533?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/3101183189772727533?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/qoOw6UieEZ0/codeplex-and-subversion.html" title="CodePlex and Subversion" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/05/codeplex-and-subversion.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8CR3s4fyp7ImA9WBFbF0w.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-3484565326005303630</id><published>2007-05-09T07:42:00.000-05:00</published><updated>2007-05-09T07:47:46.537-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-05-09T07:47:46.537-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="design" /><title>I Took the Web Design Survey</title><content type="html">&lt;a href="http://meyerweb.com/pix/2007/i-took-the-2007-survey.gif"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;Found from &lt;a href="http://meyerweb.com"&gt;Eric Meyer&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://alistapart.com/articles/webdesignsurvey"&gt;&lt;img alt="I Took It!  And So Should You.  The Web Design Survey." src="http://aneventapart.com/webdesignsurvey/templates/ala/images/i-took-the-2007-survey.gif" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-3484565326005303630?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/Xg9UkCiylQY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/3484565326005303630/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=3484565326005303630" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/3484565326005303630?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/3484565326005303630?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/Xg9UkCiylQY/i-took-web-design-survey.html" title="I Took the Web Design Survey" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/05/i-took-web-design-survey.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4NSHo8fip7ImA9WBFbFUk.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-3747987166515148543</id><published>2007-05-07T07:28:00.000-05:00</published><updated>2007-05-07T08:19:59.476-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-05-07T08:19:59.476-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="personal" /><category scheme="http://www.blogger.com/atom/ns#" term="diabetes" /><title>Team Hanselman Fights Diabetes</title><content type="html">As &lt;a href="http://nicwebb.blogspot.com/2007/02/hello-my-name-is-nic-and-im-diabetic.html"&gt;I've mentionend before&lt;/a&gt; - I'm a Type 1 Diabetic.&lt;br /&gt;&lt;br /&gt;And &lt;a href="http://www.hanselman.com/blog/CategoryView.aspx?category=Diabetes"&gt;Scott Hanselman is as well&lt;/a&gt;. And he's raising money to fight it. Which is awesome.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.hanselman.com/fightdiabetes/"&gt;&lt;img src="http://www.hanselman.com/fightdiabetes/HanselmanBadge125.png" alt="Team Hanselman - Fight Diabetes" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-3747987166515148543?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/xofAkgJCI4E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/3747987166515148543/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=3747987166515148543" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/3747987166515148543?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/3747987166515148543?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/xofAkgJCI4E/team-hanselman-fights-diabetes.html" title="Team Hanselman Fights Diabetes" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/05/team-hanselman-fights-diabetes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IHQXkyeip7ImA9WBFbE00.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-2100965811223968425</id><published>2007-05-04T14:42:00.000-05:00</published><updated>2007-05-04T15:12:10.792-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-05-04T15:12:10.792-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="codesmith" /><category scheme="http://www.blogger.com/atom/ns#" term="nettiers" /><category scheme="http://www.blogger.com/atom/ns#" term="design" /><category scheme="http://www.blogger.com/atom/ns#" term="database" /><category scheme="http://www.blogger.com/atom/ns#" term="code generation" /><title>Everything I ever needed to Know about Database Design, I learned from .netTiers</title><content type="html">OK - not really. But, it's a good &lt;a href="http://www.peace.ca/kindergarten.htm"&gt;play on words&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I recently evaluated &lt;a href="http://www.codesmithtools.com/"&gt;CodeSmith&lt;/a&gt; and &lt;a href="http://www.nettiers.com/"&gt;.netTiers&lt;/a&gt; to help me develop the middleware for a project I had been working on. I'd like to talk about some of my experiences, and what I learned.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;.netTiers doesn't like tbl_.&lt;br /&gt;&lt;br /&gt;Originally, the database had been developed with the tbl_table_name convention - and although there's a &lt;a href="http://docs.nettiers.com/GettingStarted.ashx#CBC:AJCodeStyle-Advanced"&gt;StripTablePrefixes&lt;/a&gt; in .netTiers, it seemed like it was being ignored. I remedied this problem by scripting up the entire database, applying &lt;a href="http://www.regexbuddy.com/"&gt;Regular Expression Magic™&lt;/a&gt; to change the table names to &lt;a href="http://msdn2.microsoft.com/en-us/library/x2dbyw72(vs.71).aspx"&gt;PascalCase&lt;/a&gt;, and then re-created.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Don't name any of your tables anything that might be a type in .netTiers framework - like &lt;a href="http://docs.nettiers.com/EntityLayer.ashx"&gt;Entity&lt;/a&gt;, for example. Originally, we had thought to have a generic "business entity" table that held customers and system users.  This turned out to be a bad idea.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://docs.nettiers.com/Database.ashx#Relationships"&gt;Relationships&lt;/a&gt; and &lt;a href="http://docs.nettiers.com/Database.ashx#Indexes"&gt;indexes&lt;/a&gt; are awesome. .netTiers will generate any "Get" methods based on any index that return strongly-typed Entities or List&lt;entity&gt; collections, depending on if the index is a unique constraint or not. Very cool. Also, you can have GetCollectionFromRelationship() methods that do the same thing.&lt;br /&gt;&lt;br /&gt;Plus - you've made a head start on optimizing your database.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;If your schema has problems, and .netTiers doesn't compile - better to find out now, rather than later. This was a rather rude awakening for me - I thought I had a grasp on some DB design. I now have a much better one.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;p&gt;Overall - highly recommended. It doesn't come cheap (you need a licensed version of CodeSmith), but if you're already using CodeSmith - definitely give this template a shot.&lt;/p&gt;&lt;p&gt;One other caveat - it's open source, which is great.  But, the &lt;a href="http://docs.nettiers.com/"&gt;documentation&lt;/a&gt; is a work in progress.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-2100965811223968425?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/9mpEjcnNHgs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/2100965811223968425/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=2100965811223968425" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/2100965811223968425?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/2100965811223968425?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/9mpEjcnNHgs/everything-i-ever-needed-to-know-about.html" title="Everything I ever needed to Know about Database Design, I learned from .netTiers" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/05/everything-i-ever-needed-to-know-about.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MBQns8eip7ImA9WBFbEkU.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-5881730405368616565</id><published>2007-05-04T08:17:00.000-05:00</published><updated>2007-05-04T08:30:53.572-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-05-04T08:30:53.572-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="lambda" /><category scheme="http://www.blogger.com/atom/ns#" term="functional language" /><category scheme="http://www.blogger.com/atom/ns#" term="smalltalk" /><category scheme="http://www.blogger.com/atom/ns#" term="haskell" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="dynamic language" /><category scheme="http://www.blogger.com/atom/ns#" term="DLR" /><title>Dynamic Ducks!  Dynamically!  (Functionally too!)</title><content type="html">So - with all this talk about the DLR and &lt;a href="http://blogs.msdn.com/hugunin/archive/2007/04/30/a-dynamic-language-runtime-dlr.aspx"&gt;dynamic languages becoming first class citizens in the .NET Framework&lt;/a&gt;, I'm going to make a commitment.  Here.  Where about 10 people read.&lt;br /&gt;&lt;br /&gt;I'm going to &lt;strong&gt;really&lt;/strong&gt; learn a functional, dynamic programming language.  I'm going to really understand &lt;a href="http://lambda-the-ultimate.org/"&gt;lambda's&lt;/a&gt;.  I'm going to figure out why those &lt;a href="http://www.ruby-lang.org/en/"&gt;Ruby&lt;/a&gt;, &lt;a href="http://www.smalltalk.org/main/"&gt;Smalltalk&lt;/a&gt;, &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt;, and &lt;a href="http://www.haskell.org/haskellwiki/Haskell"&gt;Haskell &lt;/a&gt;guys all start frothing at the mouth.  I may even figure out this &lt;a href="http://en.wikipedia.org/wiki/JavaScript"&gt;JavaScript&lt;/a&gt; thing.&lt;br /&gt;&lt;br /&gt;I did get a B.S. in Mathematics - so I'm not too worried.  Being a math guy and hearing about these functional languages intrigues me.  Plus, with &lt;a href="http://msdn2.microsoft.com/en-us/vcsharp/aa336745.aspx"&gt;C# 3.0&lt;/a&gt; coming out soon, I might even be able to apply this skill to my &lt;a href="http://www.marykay.com/"&gt;day job&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I don't know what I'm going to do yet, but I'm going to do something.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-5881730405368616565?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/Ox8i6i1r0hE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/5881730405368616565/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=5881730405368616565" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/5881730405368616565?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/5881730405368616565?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/Ox8i6i1r0hE/dynamic-ducks-dynamically-functionally.html" title="Dynamic Ducks!  Dynamically!  (Functionally too!)" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/05/dynamic-ducks-dynamically-functionally.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEARXcyeSp7ImA9WBFUFkw.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-8591442266656872125</id><published>2007-04-26T08:00:00.000-05:00</published><updated>2007-04-26T13:37:24.991-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-04-26T13:37:24.991-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="personal" /><title>Buy me a Pink Cadillac</title><content type="html">Today is my last day at &lt;a href="http://www.ariamedia.com/"&gt;Ariamedia&lt;/a&gt;. I was recently offered a position developing software for &lt;a href="http://www.marykay.com/"&gt;Mary Kay&lt;/a&gt;, and I will start on April 30.&lt;br /&gt;&lt;br /&gt;It's been a tough decision to leave. I enjoyed working at Ariamedia, and met a lot of &lt;a href="http://zcoder.blogspot.com/"&gt;awesome&lt;/a&gt;, &lt;a href="http://www.fringeimage.com/"&gt;very&lt;/a&gt; &lt;a href="http://www.albertvo.com/"&gt;talented&lt;/a&gt; individuals. I'm sure I'll be hearing about all of them in the future. My team has been on a push to get the software development lifecycle more agile (Scrum specifically), and I'm very glad to have been a part of that. I was also a big part of getting our &lt;a href="http://nicwebb.blogspot.com/2006/10/subversion-conversion.html"&gt;source control moved to Subversion&lt;/a&gt;. I'm definitely glad I was involved with that - I'll never go back to &lt;a href="http://www.codinghorror.com/blog/archives/000660.html"&gt;SourceUnSafe&lt;/a&gt; and now, I don't have to.&lt;br /&gt;&lt;br /&gt;Choosing Mary Kay was a big decision for me. I've never worked in a corporate environment. I've never had to wear a tie to work. So, that will be interesting.&lt;br /&gt;&lt;br /&gt;I'll be glad to be working with a good &lt;a href="http://theimes.com/"&gt;friend&lt;/a&gt; of mine, as well.&lt;br /&gt;&lt;br /&gt;I also had another very enticing offer that, while I didn't accept, I was very flattered to have received, and I'm glad to know that avenue is open to me. However, after looking at the choices that I had, and where I'm at in life, I'm happy with my decision.&lt;br /&gt;&lt;br /&gt;Leaving a job is difficult. I've made friends, learned new things, and done a lot of (I hope) good work. You always leave with projects unfinished, but I know that I'm leaving them in very capable hands.&lt;br /&gt;&lt;br /&gt;So long, and thanks for all the fish.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-8591442266656872125?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/9Tjb8yucyTA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/8591442266656872125/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=8591442266656872125" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/8591442266656872125?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/8591442266656872125?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/9Tjb8yucyTA/buy-me-pink-cadillac.html" title="Buy me a Pink Cadillac" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/04/buy-me-pink-cadillac.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEICQH0yfCp7ImA9WBFVGEw.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-1546056902918562190</id><published>2007-04-17T07:10:00.000-05:00</published><updated>2007-04-17T07:22:41.394-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-04-17T07:22:41.394-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="sorting" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL" /><title>Automatically insert SortOrder value in SQL</title><content type="html">So, the other day I ran into an interesting problem. I've been using &lt;a href="http://www.codesmithtools.com/"&gt;CodeSmith&lt;/a&gt; and &lt;a href="http://www.nettiers.com"&gt;.netTiers&lt;/a&gt; to develop all that "boring business/data access code" for an application at work. One of our requirements was to have a list of things with a user-specified sort order.&lt;br /&gt;&lt;br /&gt;So, I added a SortOrder column to the table (not sort_order, but more on that later), and ran my code-gen. I didn't want to put the "automatic sort order insertion" into a stored procedure (since they're all generated), but I also didn't want to have to hit the database several times just to figure out what the next value should be.&lt;br /&gt;&lt;br /&gt;Then someone showed me that you can have a function for a default value in a column in SQL Server. I knew this instinctively (NEWID() for a uniqueidentifier, or GETDATE() for a "date inserted" column) but I hadn't thought about using my own function.&lt;br /&gt;&lt;br /&gt;So, here it is:&lt;br /&gt;&lt;br /&gt;DECLARE @newMax int&lt;br /&gt;&lt;br /&gt;SELECT @newMax = MAX(SortOrder) + 1 FROM TableWithSortColumn WHERE SomeForeignKeyId = (SELECT SomeForiegnKeyId FROM TableWithSortColumn WHERE Id = (SELECT IDENT_CURRENT('TableWithSortColumn')))&lt;br /&gt;&lt;br /&gt;RETURN @newMax&lt;br /&gt;&lt;br /&gt;I just created the function, set my default value for the sort column to dbo.GetNewSortOrder() and&lt;br /&gt;&lt;br /&gt;Disclaimer: I'm not particularly sure this is really the right place to do this type of thing. If anyone has any suggestions or comments, please let me know. If you think this is a terrible idea and will cause my application to start fires and kidnap small children - definitely let me know. I'd like to avoid any legal entanglements.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-1546056902918562190?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/A-rITrg_fRI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/1546056902918562190/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=1546056902918562190" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/1546056902918562190?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/1546056902918562190?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/A-rITrg_fRI/automatically-insert-sortorder-value-in.html" title="Automatically insert SortOrder value in SQL" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>4</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/04/automatically-insert-sortorder-value-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkADQX0_eip7ImA9WBFRGEk.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-8683070351580719787</id><published>2007-03-02T08:07:00.000-06:00</published><updated>2007-03-02T08:12:50.342-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-03-02T08:12:50.342-06:00</app:edited><title>i'm Making a Difference</title><content type="html">Just ran across &lt;a href="http://www.majornelson.com/archive/2007/03/01/the-secret-msn-emoticon.aspx"&gt;this&lt;/a&gt; while doing my morning blog checks.&lt;br /&gt;&lt;br /&gt;Basically - Microsoft will donate a portion of the advertising revenue they recieve for every Messenger conversation you participate in to charity. All you have to do is add an emoticon to your display name.&lt;br /&gt;&lt;br /&gt;I think it's a great idea - especially if you already use Live Messenger.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://im.live.com/?source=WLM88x31"&gt;&lt;img src="http://global.msads.net/ads/pronws/WLM.88x31.gif" /&gt;&lt;img height="0" src="http://microsoftwlmessengermkt.112.2o7.net/b/ss/mswlmmktdreamcom/1/H.9--NS/1?ns=microsoftwlmessengermkt&amp;pageName=Module&amp;amp;c3=Module%20WLM88x31" width="0" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-8683070351580719787?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/UMM6AUwnPPg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/8683070351580719787/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=8683070351580719787" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/8683070351580719787?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/8683070351580719787?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/UMM6AUwnPPg/im-making-difference.html" title="i'm Making a Difference" /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/03/im-making-difference.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0IEQHcyeSp7ImA9WBBUGEk.&quot;"><id>tag:blogger.com,1999:blog-36756986.post-6211832507975654869</id><published>2007-02-13T08:13:00.000-06:00</published><updated>2007-01-03T10:25:01.991-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-01-03T10:25:01.991-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="personal" /><category scheme="http://www.blogger.com/atom/ns#" term="diabetes" /><title>Hello, my name is Nic.  And I'm a Diabetic.</title><content type="html">Yesterday, I did something I haven't done in quite some time.  I went to an endocrinoligist, or what I like to think of as "the hormone doctor".&lt;br /&gt;&lt;br /&gt;I'm a &lt;a href="http://www.diabetes.org/type-1-diabetes.jsp"&gt;Type I Diabetic&lt;/a&gt;.  Many who read this blog probably already knew that.  If you are one of those who's been reading that I don't know personally - please leave a comment.  I'd love to know how many people actually read this thing.&lt;br /&gt;&lt;br /&gt;I've read a lot of articles and interviews with diabetics, and it seems like so many let the disease become the focus of their lives.  I remember reading one where a woman refused to take a 2-week vacation because she couldn't get enough backup supplies to last for a month.  In Las Vegas, which is technically in the middle of the desert, but I'm pretty sure they have pharmacies in Vegas.&lt;br /&gt;&lt;br /&gt;I feel that having diabetes is part of who I am, but it doesn't define me.  Yes, I have to watch what I eat.  So should anyone trying to be healthy.  I have to take shots before every meal - no big deal.  It's over and done with in about 3 minutes.  I take Gatorade (or Powerade, or Generic-Sports-Drink-Ade) when I work out in case my blood sugar gets low.  Just like most people working out.  I wear a &lt;a href="http://www.medicalert.org/home/Homegradient.aspx"&gt;medic-alert&lt;/a&gt; necklace that would let someone know of my condition, in the case of an emergency.&lt;br /&gt;&lt;br /&gt;But that's about it.  I don't let it run my life, or ruin my plans.  I just have to make adjustments when they come up.&lt;br /&gt;&lt;br /&gt;I hadn't gone to the doctor in a while, because I've been without medical insurance for the past 3 years.  I finally got insurance and can afford to go to the doctor, and my insulin and supplies aren't going to cost a fortune.  It's a good feeling.  In fact, paying for my diabetic necessities is now relegated to a financial "annoyance" status, instead of a financial "oh crap I can't afford to fix my car because then I can't buy my insulin" situation.  Which is just how I like it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36756986-6211832507975654869?l=nicwebb.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebbOnTheWeb/~4/cYS816D0m7A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://nicwebb.blogspot.com/feeds/6211832507975654869/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=36756986&amp;postID=6211832507975654869" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/6211832507975654869?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36756986/posts/default/6211832507975654869?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WebbOnTheWeb/~3/cYS816D0m7A/hello-my-name-is-nic-and-im-diabetic.html" title="Hello, my name is Nic.  And I'm a Diabetic." /><author><name>Nic Webb</name><uri>http://www.blogger.com/profile/18415881239873336373</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://nicwebb.blogspot.com/2007/02/hello-my-name-is-nic-and-im-diabetic.html</feedburner:origLink></entry></feed>

