<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dev Nambi - Turn Data Into Meaning</title>
	<atom:link href="http://devnambi.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://devnambi.com</link>
	<description>SQL Server Development, Economics, and Analysis</description>
	<lastBuildDate>Tue, 27 Mar 2012 20:33:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Retrospective: Leaving Microsoft</title>
		<link>http://devnambi.com/archive/2012/03/leaving-microsoft/</link>
		<comments>http://devnambi.com/archive/2012/03/leaving-microsoft/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 16:00:27 +0000</pubDate>
		<dc:creator>DevNambi</dc:creator>
				<category><![CDATA[About Dev]]></category>
		<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[change]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[transition]]></category>
		<category><![CDATA[wisdom]]></category>

		<guid isPermaLink="false">http://devnambi.com/?p=3232</guid>
		<description><![CDATA[Tuesday, March 27th was my last day at Microsoft. After 8 years I am finally taking the plunge and switching companies. I have been doing a lot of reflection about my this job, and wanted to share my conclusions. Smarts &#8230; <a href="http://devnambi.com/archive/2012/03/leaving-microsoft/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Tuesday, March 27th was my last day at Microsoft. After 8 years I am finally taking the plunge and switching companies. I have been doing a lot of reflection about my this job, and wanted to share my conclusions.</p>
<h3>Smarts</h3>
<ul>
<li>I love to work with smart people; I am always be learning, if only by osmosis.</li>
<li>A strong engineering group has effective mentors. Lose that, and we&#8217;re doomed.</li>
<li>I can never know enough smart people.</li>
</ul>
<h3>Pride</h3>
<ul>
<li>I take pride in my work. It is a personal thing; I have private standards of quality and performance that I am not willing to compromise.</li>
<li>The colleagues I trust most take pride in their work, also.</li>
<li>I try to admit when I make mistakes. I don&#8217;t try to play politics. I am proud of this, because doing this requires a constant struggle to stay honest with oneself.</li>
</ul>
<h3>Curiosity</h3>
<div id="attachment_3247" class="wp-caption alignright" style="width: 160px"><a href="http://www.flickr.com/photos/54844390@N05/5110231975/"><img class="size-thumbnail wp-image-3247" title="Cat" src="http://devnambi.com/wp-content/uploads/2012/03/cat1-150x150.jpg" alt="" width="150" height="150" /></a><p class="wp-caption-text">Curiosity...</p></div>
<ul>
<li>I always need to learn something new. If I am not learning some new trick, best practice, or language, then I get restless.</li>
<li>I like to play with my work. I like to experiment. I am not happy if I don&#8217;t have the time to do that, and be recognized for it.</li>
</ul>
<h3>Trust</h3>
<ul>
<li>Trust is my ultimate currency. I have a very hard time working with people I do not trust and respect. A good software and IT team will have professionals that trust each other to do the right thing.</li>
<li>The best technical people I know have a finely tuned BS meter. They recognize spin and buzzwords instantly. You can&#8217;t fool them.</li>
</ul>
<h3>Balance</h3>
<ul>
<li>Work-life balance is critical. I am taking a 30% pay cut in order to work 35% less, because the hours were so long. It seems a wise trade.</li>
<li>A study has shown that the <a href="http://www.guardian.co.uk/lifeandstyle/2012/feb/01/top-five-regrets-of-the-dying">#1 regret by seniors</a> was they had worked too much, and didn&#8217;t spend enough time with their friends and family. I do not want that to be me.</li>
<li>Other studies have shown that working your staff more than 40 hours a week <a href="http://www.alternet.org/visions/154518/why_we_have_to_go_back_to_a_40-hour_work_week_to_keep_our_sanity?page=entire">doesn&#8217;t improve productivity</a>, and in fact harms it in the long run. A smart business doesn&#8217;t overwork its employees, because it knows that <em>doing so makes no business sense.</em></li>
<li>Email, Visio, Powerpoint, meetings, planning documents, etc&#8230;the overhead is necessary in any company. But it should be kept to a necessary minimum. Customers don&#8217;t pay us to be in meetings all day.</li>
</ul>
<h3>Joy</h3>
<p><a href="http://www.flickr.com/photos/thecampbells/6787371872/"><img class="size-medium wp-image-3244 alignright" title="Nerf" src="http://devnambi.com/wp-content/uploads/2012/03/nerf-300x225.jpg" alt="Nerf dart" width="300" height="225" /></a></p>
<ul>
<li>I like to celebrate victories. Especially my teammates&#8217; successes. I want to be happy for them, and not jealous.</li>
<li>I like to work in an environment that&#8217;s fun. Ideally one with NERF gun battles</li>
<li>If possible, I like to work with colleagues that have a complementary sense of humor.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://devnambi.com/archive/2012/03/leaving-microsoft/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Buy a Car With Data &#8211; Part 2</title>
		<link>http://devnambi.com/archive/2012/02/buying-a-car-with-data-part-2/</link>
		<comments>http://devnambi.com/archive/2012/02/buying-a-car-with-data-part-2/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 18:00:45 +0000</pubDate>
		<dc:creator>DevNambi</dc:creator>
				<category><![CDATA[Analysis]]></category>
		<category><![CDATA[Economics]]></category>
		<category><![CDATA[Personal Finance]]></category>

		<guid isPermaLink="false">http://devnambi.com/?p=3190</guid>
		<description><![CDATA[In our previous blog post we identified 27 cars based on a list of features, and then narrowed our list down to 3 based on Internet data and test drives. Now, it is time for more data! Deep Dive With a &#8230; <a href="http://devnambi.com/archive/2012/02/buying-a-car-with-data-part-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In our <a href="http://devnambi.com/archive/2012/02/buying-a-car-with-data-part-1/">previous blog post</a> we identified 27 cars based on a list of features, and then narrowed our list down to 3 based on Internet data and test drives. Now, it is time for more data!</p>
<div>
<div>
<h3>Deep Dive</h3>
<p>With a list of cars this small, we can do more in-depth research. We found out the cost of car insurance, average maintenance costs, vehicle crash ratings, accident data, and insurance data. We also tried to estimate how much each model would cost to own over 5 and 10 years.</p>
<p>However, the most interesting data was about <a href="http://www.safercar.gov/Vehicle+Shoppers/5-Star+Safety+Ratings/1990-2010+Vehicles" target="_blank">crash test</a> <a href="http://www.iihs.org/ratings/default.aspx" target="_blank">ratings</a> and <a href="http://www.iihs.org/research/hldi/composite_cls.aspx" target="_blank">accident statistics</a>. Vehicle crash-test ratings are designed to be <em>predictive</em>, which means they try to <em>imitate</em> real-world conditions. Accident data is far more interesting, because it shows <strong>what actually happened</strong>.</p>
<p><a href="http://devnambi.com/wp-content/uploads/2012/02/Car-Analysis-Safety.xlsx"><img class="alignnone size-full wp-image-3210" title="Car List - Safety" src="http://devnambi.com/wp-content/uploads/2012/02/Car-List-Safety.png" alt="" width="468" height="244" /></a></p>
<div id="attachment_3206" class="wp-caption alignright" style="width: 247px"><a href="http://www.flickr.com/photos/scomedy/5212952680/"><img class="size-full wp-image-3206" title="umpire" src="http://devnambi.com/wp-content/uploads/2012/02/umpire.jpg" alt="" width="237" height="283" /></a><p class="wp-caption-text">You&#39;re Out, Civic!</p></div>
<p>The Honda Civic accident data suggests it is less safe than a Fit or Prius. We eliminated it from our list. You can’t argue with data.</p>
<p>We are left with 2 options: the Prius and the Fit. It is time to look at specific cars for sale.</p>
</div>
</div>
<h3>Round 3: Specific Cars</h3>
<p>The Internet makes it easy to find data. In our case, we used <a href="http://www.autotrader.com/">AutoTrader.com</a> and <a href="http://www.toyotacertified.com/">ToyotaCertified.com</a> to get a list of cars within 200 miles of Seattle. We wanted to find any Prius or Fit for less than $20,000 and with under 60K miles. We found <strong>105</strong> cars. Now that we had <a href="http://devnambi.com/wp-content/uploads/2012/02/Car-Analysis-Specific.xlsx">data</a>, it was time for analysis!</p>
<p><strong>Analysis</strong></p>
<p>Our biggest question was how to consider several variables. Which is better: a $15,000 car with 32,000 miles or a $12,000 car with 46,000 miles? What if one is a year older than the other?</p>
<p>The way we handled this is by focusing on the variables that mattered the most to us: price, mileage, and age. We created a &#8216;score&#8217; for each car&#8217;s variable, from 0% to 100%. 100% meant it was the best deal. 0 mean it was the worst. For example, the car with the lowest mileage had a &#8216;mileage score&#8217; of 100%.</p>
<p>To find a &#8216;Good Deal Score&#8217;, we weighted the different scores, and then added them. We said that price matters 50%, mileage 16.6%, age 16.6%, and warranties 16.6%.</p>
<p>You can see the results below. The best cars had a good deal score of over 5. You can see how the best scores are often given to cars with low mileage and a low price.<br />
<script type="text/javascript" src="http://public.tableausoftware.com/javascripts/api/viz_v1.js"></script>
<div class="tableauPlaceholder" style="width:654px; height:803px;"><noscript><a href="#"><img alt="Car Dashboard " src="http:&#47;&#47;public.tableausoftware.com&#47;static&#47;images&#47;Sp&#47;SpecificCars&#47;CarDashboard&#47;1_rss.png" style="border: none" /></a></noscript><object class="tableauViz" width="654" height="803" style="display:none;"><param name="host_url" value="http%3A%2F%2Fpublic.tableausoftware.com%2F" /><param name="site_root" value="" /><param name="name" value="SpecificCars&#47;CarDashboard" /><param name="tabs" value="no" /><param name="toolbar" value="yes" /><param name="static_image" value="http:&#47;&#47;public.tableausoftware.com&#47;static&#47;images&#47;Sp&#47;SpecificCars&#47;CarDashboard&#47;1.png" /><param name="animate_transition" value="yes" /><param name="display_static_image" value="yes" /><param name="display_spinner" value="yes" /><param name="display_overlay" value="yes" /></object></div>
<div style="width:654px;height:22px;padding:0px 10px 0px 0px;color:black;font:normal 8pt verdana,helvetica,arial,sans-serif;">
<div style="float:right; padding-right:8px;"><a href="http://www.tableausoftware.com/public?ref=http://public.tableausoftware.com/views/SpecificCars/CarDashboard" target="_blank">Powered by Tableau</a></div>
</div>
<p>We looked at the top 2 Priuses and Fits, sorting by their Good Deal Score. We realized that the 2009 Prius for $15,000 and with 25,000 miles was what we wanted. We called the car dealer, had them email us the final price ($16.5K with sales tax and registration), and we bought the car that day. No pressure, no hassle, and we knew we got a great deal. <strong>Success!</strong></p>
<p><a href="http://devnambi.com/wp-content/uploads/2012/02/achievement.jpg"><img class="alignnone size-full wp-image-3216" title="achievement" src="http://devnambi.com/wp-content/uploads/2012/02/achievement.jpg" alt="" width="436" height="71" /></a></p>
<h3>Epilogue</h3>
<p><strong>Lessons Learned:</strong></p>
<ul>
<li>The Internet levels the playing field. A few days’ research can make you a much savvier car shopper, giving car salesmen less of an edge.</li>
<li>Remember that the buyer has all of the leverage. I can choose not to buy a car from someone at any time.</li>
<li>Make car dealers bid for your business. Use phone or email, so they can’t pressure you.</li>
</ul>
<p><strong>Pros:</strong></p>
<ul>
<li>Discussing features first was a brilliant idea. We both compromised to make that list of features, but in a low pressure situation. Later on, Kate &amp; I never disagreed about whether a car was a good fit for us, because we both were looking for the same thing.</li>
<li>Decide which model(s) to buy before deciding which specific car to buy.</li>
<li>The amount of money you can save by comparison shopping is incredible. We could immediately tell whether a specific car was a good deal or not based on the data.</li>
<li>A modest amount of time = massive savings. We spent ~40 hours doing research, analysis, and test drives  That may save us $5,000 to $15,000 over the life of the car. That comes out to $125 to $375 saved <em>per hour</em>.</li>
<li>Using data = fewer disagreements. Kate &amp; I always agreed which car was safer, because <em>the data told us</em>. We knew which specific car was a better deal, because <em>our analysis said so</em>.</li>
</ul>
<p><strong>Limitations:</strong></p>
<ul>
<li>Self awareness. Why are certain features and options important to you?</li>
<li>Emotional control. It is hard to walk away from a nice car because you are not <em>intellectually</em> ready to buy it.</li>
<li>Takes time. Those 40 hours were not spent on sleep, reading, or blogging.</li>
</ul>
<div><strong><span style="font-size: 14px; line-height: 23px;">What We Wish We Had:</span></strong></div>
<div>
<ul>
<li>Car maintenance/reliability data. We still don&#8217;t know which car models are more reliable than others.</li>
<li>Car price predictor data. We didn&#8217;t know whether car prices were going up or down.</li>
<li>A service to do this for us. I would gladly pay $100 for some company to do all of this work, and deliver the car to my front door.</li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://devnambi.com/archive/2012/02/buying-a-car-with-data-part-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Buy a Car With Data &#8211; Part 1</title>
		<link>http://devnambi.com/archive/2012/02/buying-a-car-with-data-part-1/</link>
		<comments>http://devnambi.com/archive/2012/02/buying-a-car-with-data-part-1/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 18:00:24 +0000</pubDate>
		<dc:creator>DevNambi</dc:creator>
				<category><![CDATA[Analysis]]></category>
		<category><![CDATA[Economics]]></category>
		<category><![CDATA[Personal Finance]]></category>
		<category><![CDATA[cars]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[personal finance]]></category>
		<category><![CDATA[Tableau]]></category>

		<guid isPermaLink="false">http://devnambi.com/?p=3126</guid>
		<description><![CDATA[In this set of blog posts, I will cover my experience in buying a car using data. I&#8217;ll go over some of the advantages, like ignoring all of the lies marketing. Background My wife, Kate, and I were perfectly content &#8230; <a href="http://devnambi.com/archive/2012/02/buying-a-car-with-data-part-1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In this set of blog posts, I will cover my experience in buying a car <em><strong>using data</strong></em>. I&#8217;ll go over some of the advantages, like ignoring all of the <del>lies</del> marketing.</p>
<h3>Background</h3>
<div id="attachment_3150" class="wp-caption alignright" style="width: 253px"><a href="http://www.flickr.com/photos/aigle_dore/5952302862/"><img class=" wp-image-3150  " title="Horse" src="http://devnambi.com/wp-content/uploads/2012/02/horse-300x206.jpg" alt="" width="243" height="167" /></a><p class="wp-caption-text">We like reliable steeds</p></div>
<p>My wife, Kate, and I were perfectly content to drive her car, a 1995 Honda Civic. It never gave us any trouble&#8230;until it died last December. Then we needed a replacement.</p>
<p>After mourning the passing of our reliable steed, we decided we did not care about specific car brands or models. We cared about <em>features</em>. Our goal was to buy a car with features we care about, for the best price. Our first step: decide what functionality we wanted most.</p>
<h3>Know Thyself</h3>
<p>We spoke for an hour, and made a list of desired features. This was the place for each of us to say what we thought was important; other people will have different results.</p>
<p><strong>Must Have</strong></p>
<table>
<tbody>
<tr>
<th><strong>Feature</strong></th>
<th><strong>Reason</strong></th>
</tr>
<tr>
<td>Better than 27 mpg city, 37 mpg highway.</td>
<td><em>We like the environment. That is what our old car did.</em></td>
</tr>
<tr>
<td>Highly reliable</td>
<td><em>We like low maintenance costs</em></td>
</tr>
<tr>
<td>Good crash test ratings/data</td>
<td><em>We like safety</em></td>
</tr>
<tr>
<td>Lasts at least 5 years</td>
<td><em>The cheapest car is the one you already own</em></td>
</tr>
<tr>
<td>Anti-lock brakes &amp; air bags</td>
<td><em>We like safety</em></td>
</tr>
<tr>
<td>Enough space for a baby seat</td>
<td><em>We&#8217;ll need that in a few years</em></td>
</tr>
<tr>
<td>Cruise control</td>
<td><em>Makes road trips easier</em></td>
</tr>
<tr>
<td>Audio line-in jack, for iPods</td>
<td><em>We like music</em></td>
</tr>
<tr>
<td>At least 10 sq ft of storage space in the trunk</td>
<td><em>Necessary for camping trips</em></td>
</tr>
<tr>
<td>Range of at least 500 miles per day</td>
<td><em>Necessary for road trips</em></td>
</tr>
</tbody>
</table>
<p><strong>Nice to Have</strong></p>
<table>
<tbody>
<tr>
<th><strong>Feature</strong></th>
<th><strong>Reason</strong></th>
</tr>
<tr>
<td>CD player, radio, and good speakers</td>
<td><em>We like music</em></td>
</tr>
<tr>
<td>Sunroof</td>
<td><em>We live in Seattle</em></td>
</tr>
<tr>
<td>Power windows, door locks</td>
<td><em>We&#8217;re lazy</em></td>
</tr>
<tr>
<td>Leather seats</td>
<td><em>Easier to clean child-induced messes</em></td>
</tr>
<tr>
<td>Lasts 10+ years</td>
<td><em>We&#8217;re really cheap</em></td>
</tr>
</tbody>
</table>
<p>Now that we knew our goals, it was time to learn the game</p>
<h3>Know Thy Enemy</h3>
<p>Both of us have heard horror stories about the car buying experience. Neither of us had done this before. So it was time to learn. We used our favorite resource: The Internet. A few <a href="https://www.google.com/#q=car+reviews" target="_blank">web searches</a> found dozens of articles discussing the best ways to buy a car. We read through the top 30 and took notes. From that we made a <a href="http://devnambi.com/analysis-resources/car-buying-best-practices/">list of best practices</a> when buying a car.</p>
<p>We also found there is a balance between features, price, and reliability:</p>
<p><a href="http://devnambi.com/wp-content/uploads/2012/02/Venn-diagram1.png"><img class="alignnone  wp-image-3173" title="Venn diagram" src="http://devnambi.com/wp-content/uploads/2012/02/Venn-diagram1.png" alt="" width="492" height="467" /></a></p>
<p><strong>Lessons Learned</strong></p>
<ul>
<li>Best practices for car shopping</li>
<li>Things to avoid when car shopping</li>
<li>Get a used car if you want a deal</li>
</ul>
<h3>Round 1: Find Good Car Models</h3>
<p>Armed with our list of features, we started looking at different car models made since 2004. I found <a href="http://www.edmunds.com/car-reviews/" target="_blank">Edmunds.com</a> and <a href="http://www.caranddriver.com/reviews" target="_blank">CarAndDriver.com</a> to be particularly helpful here. A couple hours&#8217; web browsing found 27 models that fit our criteria. Now the fun part: <a href="http://devnambi.com/wp-content/uploads/2012/02/Car-Models.xlsx" target="_blank">data</a>!</p>
<div id="attachment_3169" class="wp-caption alignright" style="width: 160px"><a href="http://www.flickr.com/photos/farleyj/2768941171/"><img class="size-thumbnail wp-image-3169" title="aha" src="http://devnambi.com/wp-content/uploads/2012/02/aha-150x150.jpg" alt="" width="150" height="150" /></a><p class="wp-caption-text">&quot;Wow, data is useful!&quot;</p></div>
<p>Our top criteria were reliability and fuel efficiency. So, we documented each car&#8217;s gas mileage, and created an &#8216;Internet score&#8217; that counted how often each model was included in articles about &#8216;the most reliable used cars&#8217; or &#8216;the top 10 quality cars by BigCarWebsite&#8217;. A little <a href="http://www.gcflearnfree.org/excel2010/19" target="_blank">Excel conditional formatting</a>, and voila! We ended up with this:</p>
<p><a href="http://devnambi.com/wp-content/uploads/2012/02/Car-Models.xlsx"><img class="size-full wp-image-3162 alignnone" title="Car List" src="http://devnambi.com/wp-content/uploads/2012/02/Car-List.png" alt="" width="375" height="542" /></a></p>
<p>We removed cars with bad gas mileage (less than 29 mpg combined), and with an Internet score of less than 3 (not reliable enough). That left 7 cars.</p>
<p><a href="http://devnambi.com/wp-content/uploads/2012/02/Car-Models-7.xlsx"><img class="alignnone size-full wp-image-3164" title="Car List - 7" src="http://devnambi.com/wp-content/uploads/2012/02/Car-List-7.png" alt="" width="340" height="163" /></a></p>
<p>Next, we compared each car’s specs with our list of must-have features. This led to 4 more disqualifications:</p>
<ul>
<li><a href="http://www.edmunds.com/chevrolet/volt/2012/" target="_blank">Chevy Volt</a> &#8211; far too expensive</li>
<li><a href="http://www.edmunds.com/honda/civic/2011/?sub=hybrid" target="_blank">Honda Civic Hybrid</a> &#8211; the rear seat does not fold down</li>
<li><a href="http://www.edmunds.com/toyota/yaris/" target="_blank">Toyota Yaris</a> &#8211; can&#8217;t easily fit a child seat. It has too little storage space.</li>
<li><a href="http://www.edmunds.com/toyota/corolla/" target="_blank">Toyota Corollas</a> &#8211; no cruise control</li>
</ul>
<p>We were left with 3 cars: the <a href="http://www.edmunds.com/honda/fit/" target="_blank">Honda Fit</a>, the <a href="http://www.edmunds.com/honda/civic/" target="_blank">Honda Civic</a>, and the <a href="http://www.edmunds.com/toyota/prius/" target="_blank">Toyota Prius</a>. They became our <a href="http://en.wikipedia.org/wiki/Short_list" target="_blank">short list</a>. Now it was time for test drives.</p>
<h3>Round 2: Test Drives!</h3>
<p>Test driving a car isn’t about data. Driving a car is subjective. If we think about <em>why</em> a car feels a certain way, a test drive can provide a wealth of information. One day, 3 test drives and 2 auto dealerships later, Kate &amp; I came away with some pros and cons for each car, but we liked all 3 of them.</p>
<p>Additional web research showed that none of our cons was justified. The only lesson was realizing that a Prius is <em>very</em> mechanically complicated. So we should only look at Priuses (Prii?) with warranties.</p>
<div>
<div>
<p>In our next post, we will analyze specific cars for sale, looking for the best deals.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://devnambi.com/archive/2012/02/buying-a-car-with-data-part-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SQL Saturday Vancouver &#8211; Agile Database Development</title>
		<link>http://devnambi.com/archive/2012/01/sql-saturday-vancouver/</link>
		<comments>http://devnambi.com/archive/2012/01/sql-saturday-vancouver/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 17:00:54 +0000</pubDate>
		<dc:creator>DevNambi</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[SQL Development]]></category>
		<category><![CDATA[SQL PASS]]></category>
		<category><![CDATA[SQL Saturday]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[agile database development]]></category>
		<category><![CDATA[sql development]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://devnambi.com/?p=3111</guid>
		<description><![CDATA[I am honored to say that I have been chosen to give an updated version of my presentation Database Development: Keep it Agile, Not Fragile at SQL Saturday 114, in Vancouver, BC, on March 17th, 2012. The world of software development is accelerating. &#8230; <a href="http://devnambi.com/archive/2012/01/sql-saturday-vancouver/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://devnambi.com/wp-content/uploads/2012/01/sqlsat114_web.png"><img class="alignright size-full wp-image-3112" title="sqlsat114_web" src="http://devnambi.com/wp-content/uploads/2012/01/sqlsat114_web.png" alt="" width="236" height="115" /></a>I am honored to say that I have been chosen to give an updated version of my presentation <a href="http://sqlsaturday.com/viewsession.aspx?sat=114&amp;sessionid=6520">Database Development: Keep it Agile, Not Fragile</a> at <a href="http://sqlsaturday.com/114/eventhome.aspx">SQL Saturday 114</a>, in <a href="http://sqlsaturday.com/114/location.aspx">Vancouver, BC</a>, on March 17th, 2012.</p>
<p>The world of software development is accelerating. The time between a business idea and its release date is shrinking. That means developers, business staff, and IT personnel need to do more iterative (a.k.a. <em>agile</em>) design,  development, and deployments. Agile development for most types of systems is a known quantity. Agile development for <em>databases</em> is harder, and the best practices are more obscure.<a href="http://www.flickr.com/photos/abhi_here/2394171511/"><img class="alignright" title="Agile" src="http://devnambi.com/wp-content/uploads/2011/09/agile-300x199.jpg" alt="" width="300" height="199" /></a></p>
<p>Having done a few hundred database releases in an agile fashion, I’ll be presenting best practices, anti practices, tips, tricks, demos, and scripts you can use. Don’t miss out!</p>
]]></content:encoded>
			<wfw:commentRss>http://devnambi.com/archive/2012/01/sql-saturday-vancouver/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>T-SQL Tuesday #25 &#8211; Tips and Tricks</title>
		<link>http://devnambi.com/archive/2011/12/t-sql-tuesday-tricks-and-treats/</link>
		<comments>http://devnambi.com/archive/2011/12/t-sql-tuesday-tricks-and-treats/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 14:19:23 +0000</pubDate>
		<dc:creator>DevNambi</dc:creator>
				<category><![CDATA[Performance Tuning]]></category>
		<category><![CDATA[SQL Development]]></category>
		<category><![CDATA[T-SQL Tuesdays]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[query optimization]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[t-sql tuesday]]></category>

		<guid isPermaLink="false">http://devnambi.com/?p=3069</guid>
		<description><![CDATA[It is T-SQL Tuesday once again, hosted by Allen White (b / t). The theme for this T-SQL Tuesday is Tricks. One of my favorite tricks is to use INTERSECT when I have to rewrite a SELECT query, to make &#8230; <a href="http://devnambi.com/archive/2011/12/t-sql-tuesday-tricks-and-treats/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://sqlblog.com/blogs/allen_white/archive/2011/12/05/t-sql-tuesday-025-invitation-to-share-your-tricks.aspx"><img class="alignright size-full wp-image-363" title="T-SQL Tuesday" src="http://devnambi.com/wp-content/uploads/2011/01/tsql2sday.jpg" alt="T-SQL Tuesday logo" width="150" height="150" /></a>It is T-SQL Tuesday once again, hosted by Allen White (<a href="http://sqlblog.com/blogs/allen_white/default.aspx">b</a> / <a href="http://twitter.com/#!/SQLRunr">t</a>). The theme for this T-SQL Tuesday is Tricks.</p>
<p>One of my favorite tricks is to use INTERSECT when I have to rewrite a SELECT query, to make sure I am returning the same data.</p>
<p>Let&#8217;s say I have a slow query that returns 1640 rows:<br />
<a href="http://devnambi.com/wp-content/uploads/2011/12/Starting.png"><img class="alignnone size-full wp-image-3073" title="Starting" src="http://devnambi.com/wp-content/uploads/2011/12/Starting.png" alt="" width="231" height="79" /></a></p>
<p>I refactor it for speed, and make sure it still returns 1640 rows:<br />
<a href="http://devnambi.com/wp-content/uploads/2011/12/Starting1.png"><img class="alignnone size-full wp-image-3074" title="Starting" src="http://devnambi.com/wp-content/uploads/2011/12/Starting1.png" alt="" width="231" height="79" /></a></p>
<p>How am I sure my new query returns the same data? I use INTERSECT, and make sure the intersect-ed query returns the same number of rows as the original query:<br />
<a href="http://devnambi.com/wp-content/uploads/2011/12/Intersect.png"><img class="alignnone size-full wp-image-3075" title="Intersect" src="http://devnambi.com/wp-content/uploads/2011/12/Intersect.png" alt="" width="351" height="216" /></a></p>
<div id="attachment_3079" class="wp-caption alignright" style="width: 160px"><a href="http://www.flickr.com/photos/photogaby/4130505300/"><img class="size-thumbnail wp-image-3079" title="cement" src="http://devnambi.com/wp-content/uploads/2011/12/cement-150x150.jpg" alt="" width="150" height="150" /></a><p class="wp-caption-text">Success is concrete. Just like the Mafia.</p></div>
<p>Now I know my changes have not affected what data is returned. <strong>Success!</strong></p>
<p>I also have a more concrete example, using the <a href="http://msftdbprodsamples.codeplex.com/releases/view/55926">AdventureWorks2008 R2</a> database, and <a href="http://devnambi.com/wp-content/uploads/2011/12/Example.sql_.txt">Example.sql</a> .</p>
]]></content:encoded>
			<wfw:commentRss>http://devnambi.com/archive/2011/12/t-sql-tuesday-tricks-and-treats/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Meme Tuesday &#8211; Improvements to SQL Server</title>
		<link>http://devnambi.com/archive/2011/12/sql-server-improvements/</link>
		<comments>http://devnambi.com/archive/2011/12/sql-server-improvements/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 15:00:46 +0000</pubDate>
		<dc:creator>DevNambi</dc:creator>
				<category><![CDATA[Meme Monday]]></category>
		<category><![CDATA[SQL Development]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[wish list]]></category>

		<guid isPermaLink="false">http://devnambi.com/?p=3011</guid>
		<description><![CDATA[Yesterday&#8217;s funny post was about Meme Monday. Today&#8217;s post is the sequel: Meme Tuesday. This is a more serious post. &#160; &#160; Here&#8217;s a list of features and changes I wish Microsoft would make: Dynamic query re-optimization. If a query &#8230; <a href="http://devnambi.com/archive/2011/12/sql-server-improvements/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_3054" class="wp-caption alignright" style="width: 310px"><a href="http://www.flickr.com/photos/kayveeinc/3951223353/"><img class="size-medium wp-image-3054" title="serious" src="http://devnambi.com/wp-content/uploads/2011/12/serious-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">Why So Serious?</p></div>
<p>Yesterday&#8217;s funny post was about <a href="http://devnambi.com/archive/2011/12/meme-monday/">Meme Monday</a>.</p>
<p>Today&#8217;s post is the sequel: <strong>Meme Tuesday</strong>. This is a more serious post.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Here&#8217;s a list of features and changes I wish Microsoft would make:</p>
<ul>
<li>Dynamic query re-optimization. If a query is doing badly, have the SQL engine detect that and re-optimized it on the fly for better performance.</li>
<li>Give the MVPs even more influence over which SQL Server products are developed.</li>
<li>Give DBAs the ability to create filegroups in tempdb, and assign different tempdb usages to each. I&#8217;d love to have user temp tables, sorts, hashes, RCSI data, and rollback data be separated, so I can tune them separately.</li>
<li>Make Enterprise features available in Standard edition. Table compression and backup compression are at the top of my list.</li>
<li>Object-level and index-level backups and restores. I would love to choose which of my nonclustered indexes to back up, because I don&#8217;t need most of them in emergencies.</li>
<li>Let companies build their own <a href="http://www.microsoft.com/sqlserver/en/us/solutions-technologies/data-warehousing/pdw.aspx">PDW</a> instances. Very few companies can afford the multi-million dollar price tag attached to a PDW appliance. They&#8217;ll usually pay somebody to change the code rather than</li>
<li>Add built-in support for code libraries.</li>
<li>Change your <a href="http://itknowledgeexchange.techtarget.com/sql-server/sql-server-2012-licensing-changes/">SQL Server 2012 licensing scheme</a> to be roughly on par with the old prices. The current increase in prices is going to encourage adoption of NoSQL and open-source alternatives.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://devnambi.com/archive/2011/12/sql-server-improvements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meme Monday &#8211; Presents from Microsoft</title>
		<link>http://devnambi.com/archive/2011/12/meme-monday/</link>
		<comments>http://devnambi.com/archive/2011/12/meme-monday/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 15:00:39 +0000</pubDate>
		<dc:creator>DevNambi</dc:creator>
				<category><![CDATA[Humor]]></category>
		<category><![CDATA[Meme Monday]]></category>
		<category><![CDATA[holidays]]></category>
		<category><![CDATA[Kinect]]></category>
		<category><![CDATA[meme monday]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://devnambi.com/?p=3003</guid>
		<description><![CDATA[It is Meme Monday once again. The question this time is, &#8220;What should Microsoft leave under my tree this year?&#8221; I want the ability to control my SQL Server databases using a Kinect. For example:]]></description>
			<content:encoded><![CDATA[<p>It is <a href="http://thomaslarock.com/2011/11/meme-monday-for-december/">Meme Monday</a> once again. The question this time is, &#8220;What should Microsoft leave under my tree this year?&#8221;</p>
<p>I want the ability to control my SQL Server databases using a Kinect. For example:</p>
<div id="attachment_3028" class="wp-caption alignnone" style="width: 310px"><a href="http://www.flickr.com/photos/viralbus/5215602489/sizes/m/in/photostream/"><img class="size-medium wp-image-3028 " title="knife kill spid" src="http://devnambi.com/wp-content/uploads/2011/12/knife-kill-spid-300x199.jpg" alt="Kill that SPID! Kill it!" width="300" height="199" /></a><p class="wp-caption-text">Hold a Knife = Kill a spid.</p></div>
<div id="attachment_3029" class="wp-caption alignnone" style="width: 310px"><a href="http://www.flickr.com/photos/forresto/3736547334/"><img class="size-medium wp-image-3029" title="point" src="http://devnambi.com/wp-content/uploads/2011/12/point-300x300.jpg" alt="" width="300" height="300" /></a><p class="wp-caption-text">Point at the screen = sp_who2</p></div>
<div id="attachment_3040" class="wp-caption alignnone" style="width: 310px"><a href="http://devnambi.com/wp-content/uploads/2011/12/point-boston.jpg"><img class="size-medium wp-image-3040" title="point boston" src="http://devnambi.com/wp-content/uploads/2011/12/point-boston-300x300.jpg" alt="" width="300" height="300" /></a><p class="wp-caption-text">Point and speak with a Boston accent = sp_whoIsActive</p></div>
<div id="attachment_3033" class="wp-caption alignnone" style="width: 310px"><a href="http://www.flickr.com/photos/orangeobject/313835555/"><img class="size-medium wp-image-3033" title="kill a kitten" src="http://devnambi.com/wp-content/uploads/2011/12/kill-a-kitten-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">Kill a Kitten = Shrink a Database</p></div>
<div id="attachment_3034" class="wp-caption alignnone" style="width: 310px"><a href="http://www.flickr.com/photos/athoos/265329441/"><img class="size-medium wp-image-3034" title="frown" src="http://devnambi.com/wp-content/uploads/2011/12/frown-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">Frown = Grant Permissions</p></div>
<div id="attachment_3035" class="wp-caption alignnone" style="width: 310px"><a href="http://www.flickr.com/photos/migs212/96258598/"><img class="size-medium wp-image-3035" title="smile" src="http://devnambi.com/wp-content/uploads/2011/12/smile-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">Smile = Revoke Permission</p></div>
<div id="attachment_3036" class="wp-caption alignnone" style="width: 310px"><a href="http://www.flickr.com/photos/mikeoliveri/5215450917/"><img class="size-medium wp-image-3036" title="kick" src="http://devnambi.com/wp-content/uploads/2011/12/kick-300x199.jpg" alt="" width="300" height="199" /></a><p class="wp-caption-text">Kick = Punish the developer who wrote LINQ on your production DB</p></div>
<div id="attachment_3038" class="wp-caption alignnone" style="width: 235px"><a href="http://www.flickr.com/photos/photophonic/133282355/"><img class="size-medium wp-image-3038" title="math book" src="http://devnambi.com/wp-content/uploads/2011/12/math-book-225x300.jpg" alt="" width="225" height="300" /></a><p class="wp-caption-text">Hold up a math book = Update Statistics</p></div>
]]></content:encoded>
			<wfw:commentRss>http://devnambi.com/archive/2011/12/meme-monday/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Export a database using Powershell</title>
		<link>http://devnambi.com/archive/2011/11/powershell-database-export/</link>
		<comments>http://devnambi.com/archive/2011/11/powershell-database-export/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 16:00:12 +0000</pubDate>
		<dc:creator>DevNambi</dc:creator>
				<category><![CDATA[Powershell]]></category>
		<category><![CDATA[SQL Development]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[bcp]]></category>
		<category><![CDATA[bcp.exe]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[smo]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQLPSX]]></category>
		<category><![CDATA[SQLPX]]></category>

		<guid isPermaLink="false">http://devnambi.com/?p=2987</guid>
		<description><![CDATA[As a SQL developer, I always want access to more data. As a sometime DBA, I have to manage requests from people wants data. Most people are satisfied with query access to a mirror/standby/backup. Some users need more. A common &#8230; <a href="http://devnambi.com/archive/2011/11/powershell-database-export/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As a SQL developer, I always want access to more data. As a sometime DBA, I have to manage requests from people wants data. Most people are satisfied with query access to a mirror/standby/backup.</p>
<p>Some users need more. A common workaround is to provide a production backup. However, most users don&#8217;t have hard drives large enough for a production backup and restore.</p>
<p>I found myself in a situation like this recently. My workaround is to use <a href="http://msdn.microsoft.com/en-us/library/ms162802.aspx">bcp.exe</a> to query out the data into files, along with <a href="http://msdn.microsoft.com/en-us/library/ms191516.aspx">format files</a> and CREATE TABLE statements. Then I can re-create the database one table at a time. To make this easy, I wrote a <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa973757(v=vs.85).aspx">Powershell</a> script to do this, and used the <a href="http://sqlpsx.codeplex.com/">SQLPX Powershell Extensions</a> (these are free, community-written scripts that anyone can use).</p>
<p>My original script was just 14 lines of script. After I cleaned it up, it become ~60 lines of script:</p>
<p><a href="http://devnambi.com/wp-content/uploads/2011/11/Export-DbToBcp.ps1_.txt">Export-DbToBcp.ps1 </a></p>
<p><a href="http://devnambi.com/wp-content/uploads/2011/11/Export-script-part-1.png"><img class="alignright size-full wp-image-2995" title="Export script part 1" src="http://devnambi.com/wp-content/uploads/2011/11/Export-script-part-1.png" alt="" width="567" height="663" /></a><br />
<a href="http://devnambi.com/wp-content/uploads/2011/11/Export-script-part-2.png"><img class="alignright size-full wp-image-2996" title="Export script part 2" src="http://devnambi.com/wp-content/uploads/2011/11/Export-script-part-2.png" alt="" width="515" height="344" /></a></p>
<p>Happy scripting!</p>
]]></content:encoded>
			<wfw:commentRss>http://devnambi.com/archive/2011/11/powershell-database-export/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Top 10 Ways To Break Your Deployments</title>
		<link>http://devnambi.com/archive/2011/10/top-10-ways-to-break-deployments/</link>
		<comments>http://devnambi.com/archive/2011/10/top-10-ways-to-break-deployments/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 16:00:38 +0000</pubDate>
		<dc:creator>DevNambi</dc:creator>
				<category><![CDATA[SQL Development]]></category>
		<category><![CDATA[SQL PASS]]></category>

		<guid isPermaLink="false">http://devnambi.com/?p=2963</guid>
		<description><![CDATA[ On October 12, 2011 I spoke at PASS Summit 2011. I presented a 5-minute &#8220;lightning talk&#8221; about the Top 10 Ways To Break Your Deployments. The reason: we all have bad deployment practices. By mockingly arguing that we all do &#8230; <a href="http://devnambi.com/archive/2011/10/top-10-ways-to-break-deployments/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sqlpass.org/summit/2011/"><img class="alignright" title="PASS Summit 2011" src="http://devnambi.com/wp-content/uploads/2011/09/passlogo.png" alt="" width="169" height="144" /></a> On October 12, 2011 I spoke at <a href="http://www.sqlpass.org/summit/2011/">PASS Summit 2011</a>. I presented a 5-minute &#8220;lightning talk&#8221; about the <a href="http://www.sqlpass.org/summit/2011/Speakers/CallForSpeakers/SessionDetail.aspx?sid=2123">Top 10 Ways To Break Your Deployments</a>.</p>
<p>The reason: we all have bad deployment practices.</p>
<p>By mockingly arguing that we all do the <em>worst</em> deployments possible, I can (hopefully) inspire people to change their bad habits.</p>
<p>Here are my notes and slide deck:</p>
<ul>
<li><a href="http://devnambi.com/wp-content/uploads/2011/10/Top-10-Ways-To-Break-Your-Deployments-Final-V2.pptx">Powerpoint</a></li>
<li><a href="http://devnambi.com/wp-content/uploads/2011/10/Top-10-Ways-To-Break-Your-Deployments-Final-V2.pdf">PDF </a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://devnambi.com/archive/2011/10/top-10-ways-to-break-deployments/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A quick script for database permissions</title>
		<link>http://devnambi.com/archive/2011/10/database-permissions-script/</link>
		<comments>http://devnambi.com/archive/2011/10/database-permissions-script/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 15:18:55 +0000</pubDate>
		<dc:creator>DevNambi</dc:creator>
				<category><![CDATA[SQL Development]]></category>
		<category><![CDATA[SQL Saturday]]></category>
		<category><![CDATA[permissions]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[sql saturdy]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://devnambi.com/?p=2952</guid>
		<description><![CDATA[During SQL Saturday 92 I was asked about how to do easily manage permissions. I am assuming that systems are using application-specific database roles. Database roles are great because they are login-independent and can work in any environment. I have &#8230; <a href="http://devnambi.com/archive/2011/10/database-permissions-script/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>During <a href="http://sqlsaturday.com/92/eventhome.aspx">SQL Saturday 92</a> I was asked about how to do easily manage permissions. I am assuming that systems are using application-specific <a href="http://msdn.microsoft.com/en-us/library/ms189121.aspx">database roles</a>. Database roles are great because they are login-independent and can work in any environment.</p>
<p>I have found that two approaches tend to work quite well.</p>
<ol>
<li>Script out the necessary permissions per object (table, view, stored procedure). Put it into the same file as the object definition itself, in source control</li>
<li>Have a &#8216;complete list&#8217; script that lists all permissions, and applies any updates or changes.</li>
</ol>
<div><span class="Apple-style-span" style="font-size: 14px; line-height: 23px;">I have written a sample &#8216;complete list&#8217; script, below, that defines permissions in XML, which can then be audited or applied to a database.  </span></div>
<p>&nbsp;</p>
<div><a href="http://devnambi.com/wp-content/uploads/2011/10/Agile-DB-Perms-Demo.sql_.txt"><strong>Complete List.sql</strong></a></div>
]]></content:encoded>
			<wfw:commentRss>http://devnambi.com/archive/2011/10/database-permissions-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

