<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Noel NOT NULL;</title>
	
	<link>http://noelmckinney.com</link>
	<description>Noel McKinney on database technology, professional development, books...</description>
	<lastBuildDate>Sun, 01 Jan 2012 19:56:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/NoelMcKinney" /><feedburner:info uri="noelmckinney" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Favorite Non-Tech Books Read in 2011</title>
		<link>http://feedproxy.google.com/~r/NoelMcKinney/~3/ohYe_s599i4/</link>
		<comments>http://noelmckinney.com/2012/01/favorite-non-tech-books-read-2011/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 14:09:22 +0000</pubDate>
		<dc:creator>Noel McKinney</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[Professional Development]]></category>

		<guid isPermaLink="false">http://noelmckinney.com/?p=2581</guid>
		<description><![CDATA[I have a pile of non-technical reading in 2012, and here are my favorite non-technical books read in 2011. <a href="http://noelmckinney.com/2012/01/favorite-non-tech-books-read-2011/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Paul Randal (<a href="http://www.sqlskills.com/blogs/paul/">Blog</a>|<a href="http://twitter.com/PaulRandal">Twitter</a>) recently blogged about the books <a href="http://www.sqlskills.com/BLOGS/PAUL/post/2011-the-year-in-books.aspx">he read in 2011</a>, which reminded me of <a href="http://noelmckinney.com/2011/01/favorite-non-tech-books-read-2010/">my list from last New Year&#8217;s Day</a> of favorite non-tech books read in the prior year. That post also mentioned the books I had queued up and ready to read. So let&#8217;s hit the bookshelves for a repeat exercise.</p>
<h3>Favorite Non-tech Books Read in 2011</h3>
<p>I started off reading the queued-up books mentioned previously, then added some as the year progressed. Here are the favorites.</p>
<p><a href="http://www.amazon.com/Zero-History-William-Gibson/dp/0425240770/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1325383971&amp;sr=1-1">Zero History</a><img src="http://www.assoc-amazon.com/e/ir?t=nononu-20&amp;l=as2&amp;o=1&amp;a=0399156828" border="0" alt="" width="1" height="1" /> by William Gibson – I started 2011 by reading the final book in Gibson’s latest trilogy. Lots of hiding and running around being chased for the characters in this one. While I appreciate Gibson shifting his writing from the future to current day, this book left me wanting some futuristic fiction. Thus, my next choice.</p>
<p><a href="http://en.wikipedia.org/wiki/David_Louis_Edelman">The Jump 225 Trilogy</a> by David Louis Edelman – This trilogy starts off with <a href="http://www.amazon.com/Infoquake-Trilogy-David-Louis-Edelman/dp/1844166457/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1325384593&amp;sr=1-1">Infoquake</a>. Once I began reading it, I immediately ordered the remaining novels, <a href="http://www.amazon.com/MultiReal-Book-Two-Jump-Trilogy/dp/1591026474/ref=pd_bxgy_b_text_b">Multireal</a> and <a href="http://www.amazon.com/Geosynchron-Book-Three-Jump-Trilogy/dp/1591027926/ref=pd_bxgy_b_text_b">Geosynchron</a> so that I could read all three without interruption. The main character is an entrepreneur and programmer dealing with bureaucrats, clients and competitors in a world shaped by bio-technology and terrorism.</p>
<p><a href="http://www.amazon.com/Great-Shark-Hunt-Strange-Tales/dp/0743250451/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1325385401&amp;sr=1-1">The Great Shark Hunt</a><img src="http://www.assoc-amazon.com/e/ir?t=nononu-20&amp;l=as2&amp;o=1&amp;a=0743250451" border="0" alt="" width="1" height="1" /> by Hunter S. Thompson – Little did I know that the shark hunt took place in Cozumel, the destination of <a href="http://noelmckinney.com/category/sqlcruise/">SQLCruise</a> 2010!</p>
<p><a href="http://www.amazon.com/Kingdom-Fear-Loathsome-Star-Crossed-American/dp/0684873249/ref=pd_sim_b_8">Kingdom of Fear</a> by Hunter S. Thompson – After reading the above book I was ready for more of Hunter&#8217;s work. This book starts with Thompson&#8217;s first run-in with the law at age nine, and ends with a strangely romantic scene where Anita diagnoses his problems in life while he speeds his Cadillac along a Pacific coast highway under a full moon.</p>
<p><a href="http://www.amazon.com/Invisible-Monsters-Novel-Chuck-Palahniuk/dp/0393319296/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1325387422&amp;sr=1-1">Invisible Monsters</a> by Chuck Palahniuk – The third of this author&#8217;s books I&#8217;ve read (the others being <a href="http://www.amazon.com/Fight-Club-Novel-Chuck-Palahniuk/dp/0393327345/ref=pd_bxgy_b_img_c">Fight Club</a> and <a href="http://www.amazon.com/Survivor-Novel-Chuck-Palahniuk/dp/039333807X/ref=pd_sim_b_1">Survivor</a>). A wonderful read but not for everyone.</p>
<p><a href="http://www.amazon.com/When-I-Grow-up-Memoir/dp/0470189592/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1325387798&amp;sr=1-1">When I Grow up: A Memoir</a><img src="http://www.assoc-amazon.com/e/ir?t=nononu-20&amp;l=as2&amp;o=1&amp;a=0470189592" border="0" alt="" width="1" height="1" /> by Juliana Hatfield – As I mentioned in last year&#8217;s review, I gave up on this book during a previous attempt at reading it. It was just too exhausting and depressing. But with <a href="http://noelmckinney.com/2011/01/favorite-non-tech-books-read-2010/#comment-659">Claire&#8217;s encouragement</a> I finally picked it up again this year. The book&#8217;s mood did change, plus the chapter on the <a href="http://en.wikipedia.org/wiki/Telecommunications_Act_of_1996">Telecommunications Act of 1996</a> and how it changed the music industry was fascinating.</p>
<h3>Non-tech Books Queued for Reading in 2012</h3>
<p>There are lots of non-technical books ready for my attention this year. So many that they won&#8217;t fit on my nightstand, so I had to find room for a bookshelf next to my bed! I&#8217;m not going to list all of them, but here are the ones at the top of the stack.</p>
<p><a href="http://www.amazon.com/Fear-Loathing-America-Odyssey-Journalist/dp/0684873168/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1325389089&amp;sr=1-1">Fear and Loathing in America</a> by Hunter S. Thompson – Okay, I cheated and have already started this one. So far, a truly amazing collection of Hunter&#8217;s letters.</p>
<p><a href="http://www.amazon.com/Proud-Highway-Desperate-Gentleman-1955-1967/dp/0345377966/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1325389170&amp;sr=1-1">The Proud Highway</a> by Hunter S. Thompson</p>
<p><a href="http://www.amazon.com/Songs-Doomed-Notes-Death-American/dp/0743240995/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1325389150&amp;sr=1-1">Songs of the Doomed</a> by Hunter S. Thompson</p>
<p><a href="http://www.amazon.com/Informationist-Vanessa-Michael-Munroe-Novels/dp/0307717100/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1325389222&amp;sr=1-1">The Informationist</a> by Taylor Stevens</p>
<p><a href="http://www.amazon.com/Russian-Debutantes-Handbook-Gary-Shteyngart/dp/1573229881/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1325389304&amp;sr=1-1">The Russian Debutante&#8217;s Handbook</a> by Gary Shteyngart</p>
<p>By the way, I am painfully aware that I dropped out on my <a href="http://noelmckinney.com/2011/06/sqlcruise-book-list/">SQLCruise2011 book list</a> commitments. After that <a href="http://noelmckinney.com/2011/07/sqlcruise-book-review-01/">first review</a> where I announced that I was joining The President&#8217;s re-election campaign headquarters staff, things changed for me on many dimensions. Perhaps if I go third <a href="http://sqlcruise.com/">SQLCruise</a> someday, I can get another chance to try keeping up with the book list commitments!</p>
<img src="http://feeds.feedburner.com/~r/NoelMcKinney/~4/ohYe_s599i4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://noelmckinney.com/2012/01/favorite-non-tech-books-read-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://noelmckinney.com/2012/01/favorite-non-tech-books-read-2011/</feedburner:origLink></item>
		<item>
		<title>It’s Easy to Trash Your Reputation</title>
		<link>http://feedproxy.google.com/~r/NoelMcKinney/~3/Yr_0Keidf4A/</link>
		<comments>http://noelmckinney.com/2011/12/its-easy-to-trash-your-reputation/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 01:06:34 +0000</pubDate>
		<dc:creator>Noel McKinney</dc:creator>
				<category><![CDATA[Professional Development]]></category>

		<guid isPermaLink="false">http://noelmckinney.com/?p=2570</guid>
		<description><![CDATA[A small act can trash years of good performance. <a href="http://noelmckinney.com/2011/12/its-easy-to-trash-your-reputation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s New Year&#8217;s Eve and tomorrow many people will be cleaning up the trash leftover from parties. Along those lines, I have a story of trash and reputation.</p>
<p>Over the recent holiday season I was visiting with relatives who live in a rural area where trash removal services are provided by small private operators (e.g. a guy with a truck). The latest news among these family members was that their trash collector had announced the week before Christmas that he was retiring immediately and would no longer provide his services. Ever. He was done. Even though people had paid him through the end of the year and he owed them another week trash collection services in 2011.</p>
<p>I heard this story recited over and over again to anyone who would listen. Given how little I was around to hear it, I can only imagine how widely this event has been discussed in this rural community.</p>
<p>What wasn&#8217;t mentioned. Lots of things that I can think of. That unlike some of his competitors, this small operator hadn&#8217;t been banned from county dumps for bringing in improper materials. That he would drive all the way down your private lane and pick up trash right at your house instead of requiring you to take your trash to the main road. That for years people could count on him to collect their trash right on schedule.</p>
<p>But that&#8217;s not what will be remembered.</p>
<p>Instead, he&#8217;ll be the guy who quit and owed people a week of service. Or worse, as the story spreads, a week will become a month and so on.</p>
<p>Okay, not the happiest story to end the year with. However, it&#8217;s been on my mind so I wanted to pound it out on the keyboard before moving on to something more fun. Have a great time ringing in the New Year tonight!</p>
<img src="http://feeds.feedburner.com/~r/NoelMcKinney/~4/Yr_0Keidf4A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://noelmckinney.com/2011/12/its-easy-to-trash-your-reputation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://noelmckinney.com/2011/12/its-easy-to-trash-your-reputation/</feedburner:origLink></item>
		<item>
		<title>T-SQL Tuesday #024 – When Procedures Are Stored</title>
		<link>http://feedproxy.google.com/~r/NoelMcKinney/~3/avt9bBpptds/</link>
		<comments>http://noelmckinney.com/2011/11/t-sql-tuesday-024-stored-procedures/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 01:51:28 +0000</pubDate>
		<dc:creator>Noel McKinney</dc:creator>
				<category><![CDATA[T-SQL Tuesday]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[T-SQL]]></category>

		<guid isPermaLink="false">http://noelmckinney.com/?p=2496</guid>
		<description><![CDATA[November's T-SQL Tuesday topic is about stored procedures and functions. <a href="http://noelmckinney.com/2011/11/t-sql-tuesday-024-stored-procedures/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://bradsruminations.blogspot.com/2011/10/invitation-for-t-sql-tuesday-024-prox-n.html"><img class="alignright size-full wp-image-462" title="TSQL2sDay150x150" src="http://noelmckinney.com/wp-content/uploads/2010/09/TSQL2sDay150x150.jpg" alt="" width="150" height="150" /></a>November&#8217;s T-SQL Tuesday is brought to us by Brad Schulz (<a href="http://bradsruminations.blogspot.com/">blog</a>). Brad&#8217;s topic is Prox ‘n’ Funx. In other words, procedures and functions. In the database. Yes, code in the database. This concept alone can bring out strong opinions. In a prior post (see item 3 of July&#8217;s T-SQL Tuesday <a href="http://noelmckinney.com/2011/07/t-sql-tuesday-020-best-practices/">Best Practices</a> post) I discussed this briefly. In many situations  I&#8217;ve had good results using stored procedures and functions, but they are a concept that can be abused, overused, etc. One such situation I encountered is what I&#8217;ll relay here today.</p>
<p>I was working with a firm that had scaling issues. The architecture was such that each of the firm&#8217;s clients had their own database, and each of these client databases had identical database objects. So when the firm got a new client, a new database for that client&#8217;s data was cloned from a template database that contained these identical  database objects (e.g. empty tables plus views, stored procedures, functions, triggers, etc.).</p>
<p>Among the problems that were upsetting the CIO was the rate at which he was having to purchase new servers to host these client databases. By &#8220;new servers&#8221; I&#8217;m referring to 1U servers with two 20GB SCSI drives in a RAID1 array (this was many years ago). The CIO was looking at an Excel spreadsheet provided to him by system administrators showing space being used on these servers. The CIO said to me &#8220;Look at this, brand new clients, we don&#8217;t even have data loaded for them yet, but all of this space is already being consumed. That makes no sense!&#8221;</p>
<p>At which point I said &#8220;Well, it starts to make sense when you learn that each client&#8217;s database has over 27,000 stored procedures in  it.&#8221; You can only imagine his shock and disbelief when learning this. But little by little, this had happened over time.</p>
<p>Everything imaginable in these client databases was done via stored procedures. Each table had a stored procedure for every type of function that could be done on the table. So every table had a store procedure each for INSERT, UPDATE, etc. as well as variations that provided extra features. Tables could only be modified through these stored procedures. Every table had a stored procedure for variations of queries. Views had one or more stored procedures for access. These stored procedures were then called by application code. Imagine <a href="http://en.wikipedia.org/wiki/Object-relational_mapping">ORM</a> implemented through stored procedures. However, the data-access application code was also auto-generated via a solution that was tied to tables, so these stored procedures always seemed like an unnecessary layer of indirection to me. In any case, each table had a bunch of stored procedures tied to it for access and modification. So adding a table meant adding multiple new stored procedures. All queries and business logic were implemented in stored procedures, and each client database had every possible one of these stored procedures, even if that client would never need the functionality provided by them. In other words, if one client needed a stored procedure for some specific feature, all client databases contained that stored procedure. Some of these procedures were very large and unwieldy, so they would be broken up into smaller stored procedures that called one after another in sequence.</p>
<p>Rather than saying whether all this is good or bad, I&#8217;ll just say &#8220;Watch out.&#8221; This situation probably started off fine in the early days when there were two or three clients and a database had 25 tables or whatever. But with hundreds of identical databases, each containing hundreds of tables, this became an issue.</p>
<p>Stored procedures. Procedures that are stored, right? What is storing code (as opposed to data) going to mean for your solution over time? You need to think about such things when deciding that stored procedures are going to play a key role in your solution design.</p>
<p>Thanks to Brad Schulz for hosting T-SQL Tuesday #24, and thank you Adam Machanic (<a href="http://sqlblog.com/blogs/adam_machanic/">Blog</a>|<a href="http://twitter.com/adammachanic">Twitter</a>) for creating this monthly blog event and keeping it going for two years!</p>
<img src="http://feeds.feedburner.com/~r/NoelMcKinney/~4/avt9bBpptds" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://noelmckinney.com/2011/11/t-sql-tuesday-024-stored-procedures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://noelmckinney.com/2011/11/t-sql-tuesday-024-stored-procedures/</feedburner:origLink></item>
		<item>
		<title>Ubuntu 11.10 Upgrade – Getting Back to Work</title>
		<link>http://feedproxy.google.com/~r/NoelMcKinney/~3/THbS2Uo1lgY/</link>
		<comments>http://noelmckinney.com/2011/10/ubuntu-11-10-upgrade/#comments</comments>
		<pubDate>Sun, 23 Oct 2011 22:36:54 +0000</pubDate>
		<dc:creator>Noel McKinney</dc:creator>
				<category><![CDATA[General Technology]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://noelmckinney.com/?p=2484</guid>
		<description><![CDATA[After upgrading to Ubuntu 11.10 from 11.04, I wanted to get back to the old interface. <a href="http://noelmckinney.com/2011/10/ubuntu-11-10-upgrade/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The new Ubuntu 11.10 version (<a href="http://releases.ubuntu.com/11.10/">Oneiric Ocelot</a>) has arrived. I was happy using Ubuntu 11.04 (<a href="http://en.wikipedia.org/wiki/List_of_Ubuntu_releases#Ubuntu_11.04_.28Natty_Narwhal.29">Natty Narwhal</a>) with the <a href="http://en.wikipedia.org/wiki/GNOME#Controversy_over_GNOME_3.0">classic GNOME</a> desktop environment, but it&#8217;s always hard to turn down an upgrade to the new flashy toy when it just takes a click of the mouse.</p>
<p>So I said &#8220;yes&#8221; to the upgrade, and when it was done I was sad to  see the classic  desktop was gone and replaced with <a href="http://en.wikipedia.org/wiki/Unity_%28user_interface%29">Unity</a>. For browsing and light activity on my netbook Unity is fine, but I was having trouble getting any real work done with it. I like moving forward and learning new things, but this interface is downright frustrating to me. I wanted my old experience back, or at least something close to it.</p>
<p>Fortunately, it wasn&#8217;t hard to find out how to do this because so many others feel the same way. After reading several posts,  I found <a href="http://www.webupd8.org/2011/08/installing-using-classic-gnome-desktop.html">one</a> that was loaded with ad pop-up junk, but it was quite straightforward with advice for &#8220;falling-back&#8221; to a classic Gnome  experience. From a terminal I just entered &#8220;sudo apt-get install gnome-session-fallback&#8221; at the command line. After that, log out then log back in choosing &#8220;GNOME Classic&#8221; (click on the little gears on the login screen to get this choice) and things will look more familiar.</p>
<p>After that I added some applets to the upper panel (Alt-right click on the panel and choose &#8220;Add to Panel&#8230;&#8221;) to add some other things I like having there, for example &#8220;The main GNOME menu&#8221;, Show Desktop, Shutdown, Trash, and some commonly used application launchers.</p>
<p>I fired up the Nautilus file manager and returned some of the features I prefer there. I like seeing a tree structure in the left panel, so I brought that back by clicking View in the menu, then Sidebar -&gt; Tree. I don&#8217;t like icon views, so on the menu I chose Edit -&gt; Preferences select List View as the Default View. Finally I selected View -&gt; Statusbar to get back the status bar on the bottom of Nautilus.</p>
<p>In a few minutes I was able to return my experience to something much more usable. So far it seems fine, and I&#8217;ll probably report back here if I run into any issues.</p>
<img src="http://feeds.feedburner.com/~r/NoelMcKinney/~4/THbS2Uo1lgY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://noelmckinney.com/2011/10/ubuntu-11-10-upgrade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://noelmckinney.com/2011/10/ubuntu-11-10-upgrade/</feedburner:origLink></item>
		<item>
		<title>UnSQL Friday – Living in the Intertubez</title>
		<link>http://feedproxy.google.com/~r/NoelMcKinney/~3/Y-bCInIxxBs/</link>
		<comments>http://noelmckinney.com/2011/10/unsql-friday-%e2%80%93-living-in-the-intertubez/#comments</comments>
		<pubDate>Sat, 22 Oct 2011 04:51:30 +0000</pubDate>
		<dc:creator>Noel McKinney</dc:creator>
				<category><![CDATA[General Technology]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://noelmckinney.com/?p=2471</guid>
		<description><![CDATA[This is UnSQL Friday #006, yet another SQL Server blog party, and the topic this time is anything about life on the internet. <a href="http://noelmckinney.com/2011/10/unsql-friday-%e2%80%93-living-in-the-intertubez/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://noelmckinney.com/wp-content/uploads/2011/02/UNSQL.png"><img class="alignright size-thumbnail wp-image-1527" title="UNSQL" src="http://noelmckinney.com/wp-content/uploads/2011/02/UNSQL-150x127.png" alt="" width="150" height="127" /></a>Jen McCown (<a href="http://www.midnightdba.com/Jen/">Blog</a>|<a href="http://www.twitter.com/MidnightDBA">Twitter</a>) has declared today <a href="http://www.midnightdba.com/Jen/2011/10/un-sql-friday-006-living-in-the-intertubez">UnSQL Friday #006</a>. I&#8217;m going to try to sneak this one in before Friday ends, and the clock is ticking. No problem, I think it will easy for me to mention what I love about &#8220;Living in the Intertubez.&#8221;</p>
<p>One of my early benefits when I started participating in <a href="https://twitter.com/#!/NoelMcKinney">twitter</a> was discovering great things happening within blocks of my home and work. For example, there were technology meetings with really awesome folks in my neighborhood. I had been missing out because, quite frankly, sometimes even technology associations have <a href="http://www.sqlpass.org/">websites</a> so uninspiring that you can&#8217;t imagine attending their meetings voluntarily. However, with twitter I could follow members of these organizations and learn that they were amazing&#8230; I couldn&#8217;t wait to meet them! The internet means empowerment to the people and degrees of independence from the formal communications of stodgy organizations and the masters pulling their strings.</p>
<p>But the reach of twitter went beyond my neighborhood. It meant connecting with people all around the world. Those first few times you meet people in the &#8220;real world&#8221; who you had only known on twitter is an amazing experience. You just start talking like you&#8217;ve known each other for years and pretty much pick up from your last tweet with that person. Who could have imagined such a thing was possible when given 140 characters to work with!</p>
<p>&#8220;Living in the Intertubez&#8221; played a huge role in my landing in a job more amazing than anything I could have imagined. Actively blogging and tweeting not only kept me in touch with former colleagues, but also provided a sense of what I had been doing to advance my skills and such.</p>
<p>This week I stepped up my &#8220;Living in the Intertubez&#8221; world by joining <a href="http://www.facebook.com/MrNoelMcKinney">facebook</a>. I&#8217;d resisted so far because my experience with <a href="http://en.wikipedia.org/wiki/Myspace">another</a> social network many years ago soured me on such things. But things change fast in &#8220;the Intertubez&#8221; and I&#8217;m looking forward to learning the lingo of the facebook world.</p>
<img src="http://feeds.feedburner.com/~r/NoelMcKinney/~4/Y-bCInIxxBs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://noelmckinney.com/2011/10/unsql-friday-%e2%80%93-living-in-the-intertubez/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://noelmckinney.com/2011/10/unsql-friday-%e2%80%93-living-in-the-intertubez/</feedburner:origLink></item>
		<item>
		<title>T-SQL Tuesday #022 – Data Presentation</title>
		<link>http://feedproxy.google.com/~r/NoelMcKinney/~3/NJb9Ng9qvwA/</link>
		<comments>http://noelmckinney.com/2011/09/t-sql-tuesday-022-data-presentatio/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 00:59:46 +0000</pubDate>
		<dc:creator>Noel McKinney</dc:creator>
				<category><![CDATA[T-SQL Tuesday]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Database Technology]]></category>

		<guid isPermaLink="false">http://noelmckinney.com/?p=2444</guid>
		<description><![CDATA[September’s T-SQL Tuesday topic is about data presentation. <a href="http://noelmckinney.com/2011/09/t-sql-tuesday-022-data-presentatio/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sqlservercentral.com/blogs/pearlknows/archive/2011/09/06/invitation-for-t-sql-tuesday-22-data-presentation.aspx"><img class="alignright size-full wp-image-462" title="TSQL2sDay150x150" src="http://noelmckinney.com/wp-content/uploads/2010/09/TSQL2sDay150x150.jpg" alt="" width="150" height="150" /></a>September&#8217;s T-SQL Tuesday is brought to us by Robert Pearl (<a href="http://www.sqlservercentral.com/blogs/pearlknows/default.aspx">Blog</a>|<a href="https://twitter.com/#!/PearlKnows">Twitter</a>), and he has chosen Data Presentation as the topic for this month’s T-SQL Tuesday. I shuddered after seeing this topic because it brought to mind an experience where the separation of data and presentation was violated.</p>
<p>I received an email from the boss saying he had been querying a particular database. He wanted the leading zeros removed from all numeric values.</p>
<p>I said that&#8217;s no problem, we&#8217;ll just modify the query tool to trim leading zeros. The previous boss wanted to see data exactly as it was stored in the database, thus he didn&#8217;t want leading zeros trimmed. But no problem Mr. Boss Du Jour, we can change that. Or better yet, we can offer it as an option in a checkbox. Because who knows what the next boss will want (okay, I didn&#8217;t say this last part, I just thought it to myself).</p>
<p>The boss countered &#8220;No, don&#8217;t modify the query tool. I also want to see the data as it is stored in the database. And the way I want it stored in the database is with the leading zeros trimmed.&#8221;</p>
<p>I explained that there were specifications written years before detailing that numbers were to be stored in that database exactly as they were received from data providers. There were a number of reasons for this, the most crucial being that part of our service offering was the ability to rate data from our various sources by a range of metrics. This particular database was used for that product offering. Modifying the numeric values by removing leading zeros would corrupt that process.</p>
<p>In the end, none of my arguments mattered. I could tell it had become a point of pride for the boss to win this no matter what. I asked why this was so important. For example, did he have storage or performance concerns. But his answer was just &#8220;It looks better without leading zeros.&#8221;</p>
<p>After that, there were questions I thought about asking but didn&#8217;t. Like if he thought it would look nicer if he could see the database at the byte level. Or if he had an opinion on whether <a href="http://en.wikipedia.org/wiki/Endianness">big-endian</a> or little-endian looks prettier. Or if he&#8217;d be happier with a <a href="http://dilbert.com/strips/comic/1995-11-17/">mauve</a> database.</p>
<p>Or, how we were supposed to put the zeros back when the next boss asks for them.</p>
<p>Anyway, I know I mentioned this in a prior <a href="http://noelmckinney.com/2011/07/t-sql-tuesday-020-best-practices/">post</a>, but it&#8217;s probably worth repeating&#8230; when asked to do certain tasks (such as those regarding presentation), at least consider whether it&#8217;s something that belongs in the database or at another level.</p>
<p>Thanks to Robert Pearl for hosting T-SQL Tuesday #22, especially when he was asked to host earlier than planned! And thanks to Adam Machanic (<a href="http://sqlblog.com/blogs/adam_machanic/">Blog</a>|<a href="http://twitter.com/adammachanic">Twitter</a>) for creating this monthly blog event and keeping it going!</p>
<img src="http://feeds.feedburner.com/~r/NoelMcKinney/~4/NJb9Ng9qvwA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://noelmckinney.com/2011/09/t-sql-tuesday-022-data-presentatio/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://noelmckinney.com/2011/09/t-sql-tuesday-022-data-presentatio/</feedburner:origLink></item>
		<item>
		<title>Labor for the Data</title>
		<link>http://feedproxy.google.com/~r/NoelMcKinney/~3/e9lTnVrVvdI/</link>
		<comments>http://noelmckinney.com/2011/09/labor-for-data/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 21:25:48 +0000</pubDate>
		<dc:creator>Noel McKinney</dc:creator>
				<category><![CDATA[Professional Development]]></category>
		<category><![CDATA[Data]]></category>

		<guid isPermaLink="false">http://noelmckinney.com/?p=2422</guid>
		<description><![CDATA[Labor Day post on the importance of data skills. <a href="http://noelmckinney.com/2011/09/labor-for-data/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Happy Labor Day! My last post on <a href="http://noelmckinney.com/2011/09/drawing-google-correlate/">Google Correlate</a> is still on my mind. So is Buck Woody&#8217;s (<a href="http://buckwoody.com/">Blog</a>|<a href="http://twitter.com/#%21/buckwoody">Twitter</a>) post on being a <a href="http://blogs.msdn.com/b/buckwoody/archive/2009/10/29/don-t-be-a-dba-be-a-data-professional.aspx">Data Professional</a> &#8230; yes, this is at least the third time I&#8217;ve mentioned Buck&#8217;s post, but I think the message is that important to grasp. Anyway, what&#8217;s on my mind is two encounters I had that, at least for me, indicated I should not get so involved in technology that I forget about the data.</p>
<p>The first encounter was seventeen years ago, the second was ten years ago. So I have two stories, and since it&#8217;s a holiday you probably feel like reading just one. Okay, I&#8217;ll go with the more recent story for now and save the older one for a follow-up blog post.</p>
<p>It was my first day at a new job. The previous day I graduated with a computer science degree (I know, I should have taken some time off in between, but I was excited about the new job). My boss came over to my desk to welcome me, and the exchange went something like this:</p>
<ul>
<li>Boss: Hi Noel, we&#8217;re glad you&#8217;re finally here.</li>
<li><em>Me: Same here, I received my degree yesterday, so I&#8217;m ready to get to work!</em></li>
<li>Boss: You were the one who wanted to wait until you graduated to start work. I was ready for you to start working here months ago. Quite frankly, I don&#8217;t care about your computer science degree, it&#8217;s the skills from your previous graduate study that are interesting.</li>
</ul>
<p>Ouch, talk about a backhanded compliment. I&#8217;d just spent over two years of time and boatloads of <a href="http://noelmckinney.com/category/sqlcruise/">SQLCruises</a> in dollars to study algorithms, programming languages, relational algebra, software engineering techniques, etc. How could he not value that? How could he find the five years of grad school I did beforehand more interesting? Especially when half of those five years didn&#8217;t even result in a degree.</p>
<p>After a few years, I not only understood his viewpoint but even agreed with it. Well, mostly agree with it. I&#8217;d never want to give up the computer science study (especially the algorithms material), and if I try to think of what parts I could have cut out, I don&#8217;t come up with much.</p>
<p>So what was it about the five years of non-computer science grad school that made my boss interested in me?</p>
<p>The answer: data. I spent all that time rolling around in data.</p>
<p>The first graduate degree was in social and applied economics. The focus was on applying data, statistics and economic theory to public policy and business issues. I was also a research assistant. So days and nights revolved around loading data tapes on mainframes, crunching away at them with <a href="http://en.wikipedia.org/wiki/SAS_%28software%29">SAS</a>, then taking the resulting greenbar printouts to a professor&#8217;s office. That&#8217;s where your real education started: pour over scatter plots and regression lines, dig into data rows to find points that didn&#8217;t fit, figure out what was missed, what the data told us that we didn&#8217;t know, adjust models, then head back to the computer center and repeat.</p>
<p>After that, I taught economics for a few years, then I headed back to graduate school to work on a doctorate (I became bored with being in a small college town, plus my interests changed, so I left without a degree during my third year). Once again I was a research assistant while taking courses in quantitative methods, economics and accounting, so my experience was similar to the above. Similar but not the same; by that time, PCs had become powerful enough that you no longer needed a mainframe to run SAS on large data sets. Which meant you spent more time with data&#8230; it was right there on your desktop, so you didn&#8217;t have to run back and forth to the computer center!</p>
<p>That&#8217;s the end of the story. My take-away: it occurs to me that in recent years I&#8217;ve spent disproportionately more time learning about the technology side than the data side. So I&#8217;m consciously going to try to balance that out in the coming months. With that, I guess it&#8217;s time to find my copy of <a href="http://en.wikipedia.org/wiki/Robert_V._Hogg#Collaboration_and_friendship_with_Allen_Craig">Hogg and Craig</a>. Oh there it is, underneath my monitor stand <img src='http://noelmckinney.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/NoelMcKinney/~4/e9lTnVrVvdI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://noelmckinney.com/2011/09/labor-for-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://noelmckinney.com/2011/09/labor-for-data/</feedburner:origLink></item>
		<item>
		<title>Drawing with Google Correlate</title>
		<link>http://feedproxy.google.com/~r/NoelMcKinney/~3/i6vqnY_7DVI/</link>
		<comments>http://noelmckinney.com/2011/09/drawing-google-correlate/#comments</comments>
		<pubDate>Sat, 03 Sep 2011 21:40:17 +0000</pubDate>
		<dc:creator>Noel McKinney</dc:creator>
				<category><![CDATA[Data]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://noelmckinney.com/?p=2354</guid>
		<description><![CDATA[Google Correlate has a tool that matches searches with your drawing of a time series. <a href="http://noelmckinney.com/2011/09/drawing-google-correlate/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This week, Nick Hatch (<a href="https://twitter.com/#!/oasisbob">twitter</a>) showed me the Search by Drawing feature in Google Correlate. My reaction was &#8220;That&#8217;s going to consume several hours of my weekend&#8221; and sure enough, it already has <img src='http://noelmckinney.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Getting started is easy. Go to <a href="http://www.google.com/trends/correlate">Google Correlate</a> (you&#8217;ll need to sign in with your Google account) then click on the Search by Drawing link on the left side of the page under the Correlate Labs section. With that, you&#8217;ll be presented with a blank chart where you can draw a time series of search activity&#8230; just draw a line, click the Correlate! button and see what happens. The tool will display your line with a line of activity for search terms. The most correlated search term is displayed initially, but other search terms are presented as well (ranked by decreasing correlation) and you can click on those terms to display their lines.</p>
<p>You might be wondering how could I spend hours drawing lines. Fair enough.</p>
<p>I started thinking about search terms and imagining what a time series for that term would look like, then drew it, then looked at what my line actually matched. For example, try to think of the number of searches over the last several years for Lady Gaga or Charlie the Unicorn, then draw that time series and see the results.</p>
<p>Some of my more interesting attempts:</p>
<ul>
<li>The line I drew that I thought might look like the time series for <a href="http://en.wikipedia.org/wiki/Musicmatch_Jukebox">MusicMatch</a> had a 0.9756 correlation with AltaVista. This was interesting because Yahoo ended up acquiring both of these products.</li>
<li>The line I drew trying to guess search activity for <a href="http://en.wikipedia.org/wiki/FarmVille">FarmVille</a> correlated most highly with Dropbox. This wasn&#8217;t too interesting, but the data had something unexpected. As I looked at the time series of search activity for Dropbox, there wasn&#8217;t a surprise in the general trend. Dropbox was founded in 2007, so sure enough in 2007 the time series shot up exponentially. Before that, the search activity was perfectly level, except for little squiggles around 2005. Hmmm&#8230;</li>
<li>I drew my imagined time series for searches on the mortgage banking industry, and my line&#8217;s highest correlation was with a bank that was purchased after the 2008 banking crisis. However, well before the banking crisis, there was a sudden and dramatic peak in search activity for that bank. With a little searching, I read that the bank encountered regulatory activity during the period of that peak. So looking at the data prompted me to do a little digging and learn something.</li>
</ul>
<p>Anyway, if you&#8217;re a data geek and haven&#8217;t poked around with Google Correlate yet, then you might want to check it out. Enjoy!</p>
<img src="http://feeds.feedburner.com/~r/NoelMcKinney/~4/i6vqnY_7DVI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://noelmckinney.com/2011/09/drawing-google-correlate/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://noelmckinney.com/2011/09/drawing-google-correlate/</feedburner:origLink></item>
		<item>
		<title>Netbook – Part 3</title>
		<link>http://feedproxy.google.com/~r/NoelMcKinney/~3/brqr7kBq25s/</link>
		<comments>http://noelmckinney.com/2011/08/netbook-part-3/#comments</comments>
		<pubDate>Sat, 20 Aug 2011 06:01:47 +0000</pubDate>
		<dc:creator>Noel McKinney</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[SQLCruise]]></category>

		<guid isPermaLink="false">http://noelmckinney.com/?p=2327</guid>
		<description><![CDATA[It's been 13 months since first posting about my netbook experience, here's a follow-up and new tips. <a href="http://noelmckinney.com/2011/08/netbook-part-3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Thirteen months ago I wrote <a href="http://noelmckinney.com/2010/07/sql-server-on-a-netbook-part-1/">Part 1</a> about my experience with choosing a netbook to take on the very first <a href="http://sqlcruise.com/cruise/past-cruises/fall-miami/">SQLCruise</a>. <a href="http://noelmckinney.com/2010/07/sql-server-on-a-netbook-part-2/">Part 2</a> continued with setting up the netbook for SQL Server development and education use.</p>
<h3>Thoughts After a Year of Use</h3>
<p>So after more than a year of use, what&#8217;s the verdict? Easy answer: success, no regrets.</p>
<p>The netbook not only went on the very first SQLCruise from Miami to Cozumel, but also the most recent <a href="http://sqlcruise.com/2011/07/sqlcruise-alaska-movie-trailer/">SQLCruise</a> to Alaska. On both trips I used it in the classroom as well as to VPN into the office to do work. Same for last year&#8217;s <a href="http://noelmckinney.com/2010/12/pass-summit-2010-reflections/">PASS Summit</a> and some <a href="http://noelmckinney.com/tag/sql-saturday/">SQL Saturday </a>events. For a year I carried it to the office so that I could work away from my desk for an hour or so each day. The netbook had a cost of around $300, throws off very little heat compared to a laptop, and only weighs 2.8 pounds. Most surprising: the estimate of 14 hours of use on battery power was not much of an overstatement (turning on wi-fi zaps it down a bit, turning on bluetooth zaps it down a lot).</p>
<p>So is that the end of this post? Am I going to end with &#8220;All is well, tune in next year when I will let you know if the netbook is still running&#8221; or something like that?</p>
<p>No.</p>
<p>Let us push-on and take the netbook to a new place. A wonderful place with everyone&#8217;s favorite creature of the arctic waters, the <a href="http://en.wikipedia.org/wiki/Narwhal">narwhal</a>. In this particular case, a <a href="https://wiki.ubuntu.com/NattyNarwhal">natty narwhal</a>.</p>
<h3>It&#8217;s Ubuntu Time</h3>
<p><a href="http://www.ubuntu.com/">Ubuntu</a> is a <a href="http://en.wikipedia.org/wiki/Linux_distribution">linux distribution</a>. Unlike the olden days, you can avoid the disk partitioning stuff, boot loader configurations, command lines, having to do yet another operating system install where you have to babysit the machine in case you need to type in information and hit the enter key, etc. More on that later.</p>
<p>But first, why would I want linux on my netbook if it already works fine? Because sometimes I just want to grab my netbook and do some web browsing, but I don&#8217;t want to wait for Windows 7 to boot up. So I wondered if a minimal Ubuntu install would boot up faster on my netbook. No need for suspense&#8230; the boot up time is about the same, but the feature I like is that the Ubuntu user interface is very nice for smaller, netbook-size screens. This interface seems a bit awkward at first, but it doesn&#8217;t take long before you begin to appreciate it.</p>
<p>One way to get Ubuntu running would have been to use a virtualization solution such as <a href="http://www.vmware.com/products/player/overview.html">VMware Player</a>. But that&#8217;s not going to work in this case because then I&#8217;d have to boot to Windows first, then Ubuntu. That&#8217;s not much of a time-saver. Also, my netbook doesn&#8217;t have a lot of memory or CPU horsepower for pushing virtual machines. So it was looking like I would be setting up a dual-boot configuration.</p>
<p>At this point, I decided to try the option of running <a href="http://www.ubuntu.com/download/ubuntu/windows-installer">Ubuntu within Windows</a>. This turned out to be very simple, and so far I&#8217;ve been quite satisfied with the result. With this installation option, Ubuntu installs into a folder in your Windows file system, and the experience is similar to installing a Windows application. So you don&#8217;t have to deal with partitioning your hard disk for a separate operating system. The Ubuntu installer uses your existing Windows installation to figure out the settings to use, so your interaction during the installation process is minimized.</p>
<p>If you want to try out Ubuntu then you can follow the instructions <a href="http://www.ubuntu.com/download/ubuntu/windows-installer">here</a>, plus <a href="https://wiki.ubuntu.com/WubiGuide">this page</a> has more detailed instructions on installation as well as how to uninstall (you uninstall from the Control Panel just like you&#8217;d uninstall a typical Windows application).</p>
<p>Once you have Ubuntu installed, fire up the web browser and do some reading. A couple of links I&#8217;d recommend would be</p>
<ul>
<li><a href="http://bikeshed.com/">Why should I care what color the bikeshed is?</a> by Poul-Henning Kamp</li>
<li><a href="http://gettingreal.37signals.com/toc.php">Getting Real</a> by 37signals</li>
</ul>
<p>So my netbook has become even more useful now. When I start it up, I can choose to boot into Windows to do some SQL Server work, or boot into Ubuntu for some linux goodness.</p>
<img src="http://feeds.feedburner.com/~r/NoelMcKinney/~4/brqr7kBq25s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://noelmckinney.com/2011/08/netbook-part-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://noelmckinney.com/2011/08/netbook-part-3/</feedburner:origLink></item>
		<item>
		<title>T-SQL Tuesday #021 – Inelegant Yet Educational</title>
		<link>http://feedproxy.google.com/~r/NoelMcKinney/~3/gSm7rPQEANI/</link>
		<comments>http://noelmckinney.com/2011/08/t-sql-tuesday-021-educational/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 01:02:20 +0000</pubDate>
		<dc:creator>Noel McKinney</dc:creator>
				<category><![CDATA[T-SQL Tuesday]]></category>

		<guid isPermaLink="false">http://noelmckinney.com/?p=2285</guid>
		<description><![CDATA[August’s T-SQL Tuesday topic is about crap code, hacks, bad habits, etc. <a href="http://noelmckinney.com/2011/08/t-sql-tuesday-021-educational/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://sqlblog.com/blogs/adam_machanic/archive/2011/08/03/t-sql-tuesday-21-a-day-late-and-totally-full-of-it.aspx"><img class="alignright size-thumbnail wp-image-2284" title="TSQLWednesday_thumb" src="http://noelmckinney.com/wp-content/uploads/2011/08/TSQLWednesday_thumb-150x150.jpg" alt="" width="150" height="150" /></a>August&#8217;s T-SQL Tuesday is brought to us by Adam Machanic (<a href="http://sqlblog.com/blogs/adam_machanic/">Blog</a>|<a href="http://twitter.com/adammachanic">Twitter</a>). Actually, we have Adam to thank for every T-SQL Tuesday because he created it in the first place, however this month he&#8217;s hosting it as well. He&#8217;s also decided to have the event take place on a Wednesday rather than Tuesday, which is appropriate given this month&#8217;s topic, which is to reveal our &#8220;crap code.&#8221;</p>
<p>This seems easy enough because I&#8217;ve got plenty of examples. The first one that came to mind was when I was told to replace all cursors with temp tables and WHILE loops. However, I already discussed this in item #4 of last month&#8217;s <a href="http://noelmckinney.com/2011/07/t-sql-tuesday-020-best-practices/">post</a>. No need to revisit that. So here&#8217;s two other crap code examples; one that died quickly and another that lives on.</p>
<h3>Quickly Archived But Not Forgotten</h3>
<p>I was directed to implement a <a href="http://thedailywtf.com/Articles/Soft_Coding.aspx">soft-coded</a> values solution that shoehorned generic objects into a relational model, with <a href="http://sqlskills.com/BLOGS/KIMBERLY/post/GUIDs-as-PRIMARY-KEYs-andor-the-clustering-key.aspx">GUIDs</a> as clustered keys and values in <a href="http://www.sql-server-performance.com/2007/datatypes/2/">sql_variant</a> columns. By the way, the data architect in this situation admitted not knowing anything about 1) the solution&#8217;s industry and 2) SQL Server.</p>
<p>I implemented the design. Now, you might ask, why write this code even though I knew it would be crap? Well, because I had already been labeled a naysayer by the new management team for raising objections on two other issues. I had also been shown negative emails that managers were circulating about me. So I decided to be a team player while preparing to get a pink slip, and along the way I&#8217;d learn about this type of design.</p>
<p>Guess what? I did learn a lot about soft-coded values design (e.g. when it&#8217;s appropriate, when it&#8217;s not, how far you can optimize it, and non-relational approaches). But in the end, a daily load of just one feed took 22 hours (and almost 100 feeds needed to be processed a day). Each consultant brought in to review my code said it was perfect. According to them, the solution was that we needed to buy much, much more expensive hardware to fix the situation.</p>
<p>New hardware was not possible, and the situation was desperate enough to ask this &#8220;naysayer&#8221; for ideas. I demonstrated a redesigned solution that could process a feed in several minutes. With that, the soft-coded values solution was replaced and sent off to the archive repository. Years later, my solution is still used to process large volumes of data. Even though the soft-coded values solution was only used for several months many years ago, I continue to be asked questions related to that experience.</p>
<p><span style="text-decoration: underline;">Lesson</span>: Data matters. Relying on technology and/or technical skills to allow abstraction or over-generalization of your data might not be a viable solution. I was able to design a superior solution in this situation because of my experience with data in this particular industry. This is why I like Buck Woody&#8217;s (<a href="http://buckwoody.com/">Blog</a>|<a href="http://twitter.com/#%21/buckwoody">Twitter</a>) job title of <a href="http://blogs.msdn.com/b/buckwoody/archive/2009/10/29/don-t-be-a-dba-be-a-data-professional.aspx">Data Professional</a> &#8211; it keeps me focused on what I consider to be the most important part of my work.</p>
<h3>It Lives On</h3>
<p>It was over eight years ago when I was asked for this particular hack. A new solution had been developed without considering that certain identifier values from the old solution needed to be maintained.</p>
<p>The manager of development asked if I could hack something together quickly to maintain these identifiers. It went something like &#8220;<em>You can? Two days? Great! And, oh yeah, also create new identifiers that won&#8217;t collide with the old solution. This will be a temporary hack, don&#8217;t worry. In a couple of months a permanent solution will be built. Two, three months. Okay, maybe four or five since some people might go on vacation. That&#8217;s it. Probably. Well, maybe six months. Tops.</em>&#8221;</p>
<p>So I created my hack solution. Driven by nothing but the finest .bat scripts. Plus several tables, stored procedures and user-defined functions. Yes, I usually avoid user-defined functions, but this was just a temporary hack that I needed to throw together quickly, right? Since this was a temporary solution, I decided to stick these objects in their own database that could just be dropped when the hack was no longer needed.</p>
<p>I asked the DBA for a database, which he named DB_CorpCo (replace &#8220;CorpCo&#8221; with client name). I said this was a terrible name because it&#8217;s not doing something necessarily related to a specific client, rather it&#8217;s performing a certain function. The DBA said for now only one client, CorpCo, will use it, so that&#8217;s a fine name. I said that sometimes temporary hacks become permanent, so this database might end up being used for other clients such as AirCo, FruitCo, StoreCo, etc. The name will be confusing. It should not contain a client name. However, my argument was going nowhere, and I had a lot of hacking to do, so DB_CorpCo was created. Over eight years ago.</p>
<p>DB_CorpCo worked great. Six months came and went. Then most of the development team was laid off. DB_CorpCo was working fine and there were no resources to replace it, so it kept going. Pretty soon, it&#8217;s use was expanded to include other clients than just CorpCo. I got to explain over and over that, yes, it&#8217;s called DB_CorpCo, but all clients use it.</p>
<p>I left the company for a while, and when I returned I found that even with all the comments and documentation warning that no new functionality should be added to DB_CorpCo, it&#8217;s tables had been altered and stored procedures had been modified to add new, expanded duties that belonged elsewhere. Like a beast in a horror film, DB_CorpCo, with all it&#8217;s temporary, hacked together abominations, was now intertwined with new and old solutions serving multiple clients. And at the top of each source code file is the comment &#8220;Original version created by Noel McKinney.&#8221;</p>
<p>To this day, in a data center far, far away, on a lonely server in a rack, a database named &#8220;DB_CorpCo&#8221; is being updated and queried daily. It Lives (cue the horror music now).</p>
<p><span style="text-decoration: underline;">Lesson</span>: Temporary hacks can become permanent, unless you want to argue that eight years is not &#8220;permanent&#8221; when it comes to computer solutions.</p>
<p>I’m looking forward to reading the contributions to this month’s T-SQL <span style="text-decoration: line-through;">Tuesday</span> Wednesday and reading the examples that others were generous enough to share. Thanks to Adam Machanic for creating this monthly blog event and hosting it this month!</p>
<img src="http://feeds.feedburner.com/~r/NoelMcKinney/~4/gSm7rPQEANI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://noelmckinney.com/2011/08/t-sql-tuesday-021-educational/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://noelmckinney.com/2011/08/t-sql-tuesday-021-educational/</feedburner:origLink></item>
	</channel>
</rss>

