<?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>Pure Performance Inc</title>
	<atom:link href="http://www.pure-performance.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pure-performance.com</link>
	<description>Web and PeopleSoft Consulting</description>
	<lastBuildDate>Fri, 02 Apr 2010 01:59:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Agile Software Development in a Nutshell</title>
		<link>http://www.pure-performance.com/2010/04/agile-software-development-in-a-nutshell/</link>
		<comments>http://www.pure-performance.com/2010/04/agile-software-development-in-a-nutshell/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 01:59:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Business Analyst]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[RUP]]></category>

		<guid isPermaLink="false">http://www.pure-performance.com/?p=171</guid>
		<description><![CDATA[Agile methodology uses war room type collaboration and short iterations to produce incremental versions of software to meet the changing requirements of stakeholders. ]]></description>
			<content:encoded><![CDATA[<p>Agile methodology uses war room type collaboration and short iterations  to produce incremental versions of software to meet the changing  requirements of stakeholders.</p>
<ul>
<li>Working software is key  measurement</li>
<li>Requirements are done in iterations</li>
<li>A War  Room type collaboration</li>
<li>Minimal documentation -  Just enough  documentation is created and maintained</li>
</ul>
<h2>Basic  principles</h2>
<ul>
<li>Customer satisfaction by rapid, continuous  delivery of useful software</li>
<li>Welcome changing requirements</li>
<li>Working  software is delivered frequently</li>
<li>Working software is the  principal measure of progress</li>
<li>Close, daily collaboration between  business and IT</li>
<li>Face-to-face conversation is the best form of  communication</li>
<li>Projects are built around motivated individuals,  who should be trusted</li>
<li>Continuous attention to technical  excellence and good design</li>
<li>Self-organizing teams</li>
<li>Regular  adaptation to changing circumstances</li>
</ul>
<h2>To Make it Work</h2>
<ol>
<li>Adopt  short iterations no more than four weeks in length</li>
<li>Focus on  the delivery of working software,  as a general rule, an iteration  should be seen as a failure if all it produces is documentation</li>
<li>Promote  quality oriented techniques such as test first development, coding  conventions and refactoring</li>
<li>Remove as many barriers to  communication and collaboration as you possibly can by making it as easy  as possible for people to work together.</li>
<li>Make sure that  everyone involved, including business stakeholders, data professionals  and quality assurance professionals work in an evolutionary if not Agile  manner</li>
<li>Streamline RUP as much as possible, less is definitely  more</li>
</ol>
<p>From: <a id="vhsu" title="Overcoming the Myths of IBM Rational Unified Process (RUP) and  Agile Development" href="http://ow.ly/1tHV1">Overcoming the Myths of IBM Rational Unified Process  (RUP) and Agile Development</a></p>
<h2>Myths</h2>
<ul>
<li>No  documentation</li>
<li>Undisciplined</li>
<li>Not scalable to large,  complex projects</li>
<li>No traceability</li>
<li>Issues and risk  management is not done</li>
</ul>
<h2>Resources</h2>
<p><a id="fqwm" title="Overcoming the Myths of IBM  Rational Unified Process (RUP) and Agile Development" href="http://ow.ly/1tHV1">Overcoming the  Myths of IBM Rational Unified Process (RUP) and Agile Development</a> -IBM<br />
<a id="x0iz" title="Manifesto  for Agile Software Development" href="http://agilemanifesto.org/">Manifesto for Agile Software Development</a> &#8211; Agile Manifesto<br />
<a id="hweo" title="The  Experts’ Take on Business Analysis and Agil" href="http://ow.ly/1g3Gg">The Experts’ Take on  Business Analysis and Agil</a>e &#8211; Modern Analyst<br />
<a id="xwjf" title="RUP and Agile Development  Overcoming Myths" href="http://ow.ly/1tGO3">RUP and Agile Development Overcoming Myths</a> &#8211; IBM<br />
<a id="q._x" title="Agile software development" href="http://ow.ly/1tI3p">Agile  software development</a> &#8211; Wikipedia, the free encyclopedia</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pure-performance.com/2010/04/agile-software-development-in-a-nutshell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The IT Value Stack</title>
		<link>http://www.pure-performance.com/2009/12/the-it-value-stack/</link>
		<comments>http://www.pure-performance.com/2009/12/the-it-value-stack/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 19:31:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Business Analyst]]></category>
		<category><![CDATA[Ade McCormack]]></category>
		<category><![CDATA[IT Value Stack]]></category>

		<guid isPermaLink="false">http://www.pure-performance.com/?p=145</guid>
		<description><![CDATA[In The IT Value Stack, Ade McCormack looks to bridge the gap between IT and business.  Using his “IT Value Stack” Ade teaches us how to get these two groups to work together.  I believe every company runs into this issue.  The IT group believes they need to have the latest and greatest technologies to get things done and the business side wants to know what they are getting for their dollars.  Below are the seven steps to get these two groups to mesh.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/gp/product/0470018534?ie=UTF8&amp;tag=pureperforma&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0470018534"><img class="alignleft" style="border: 0pt none;" src="http://ecx.images-amazon.com/images/I/51iGKuGc0lL._SL160_.jpg" border="0" alt="" width="104" height="160" /></a>In <em><a href="http://www.amazon.com/gp/product/0470018534?ie=UTF8&amp;tag=pureperforma&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0470018534">The IT Value Stack</a></em>, <a href="http://uk.linkedin.com/in/ademcormack">Ade McCormack</a> looks to bridge the gap between IT and business.  Using his “IT Value Stack” Ade teaches us how to get these two groups to work together.  I believe every company runs into this issue.  The IT group believes they need to have the latest and greatest technologies to get things done and the business side wants to know what they are getting for their dollars.  Below are the seven steps to get these two groups to mesh.</p>
<h2>Strategy entwinement</h2>
<p>“Involve IT experts in strategy design”</p>
<p>Your business depends on IT to get through the day, you have computers, networks and the information stored on this equipment.   If you try to implement a strategy without the IT group, then you could be looking at serious delays and even costly mistakes.</p>
<p>The business side and the IT side may seem to speak different languages, but both can learn to translate one another’s message into actual English.  Work together.</p>
<h2>Process entwinement</h2>
<p>“IT personal should be business process consultants”</p>
<p>The business side needs to identify and document all their business processes and the IT side needs to use this information to build reliable and stable procedures for supporting the process.  It’s not just hardware and software.</p>
<h2>People entwinement</h2>
<p>“Link IT personal with users, collaborate”</p>
<p>Collaboration between IT and non-IT areas is a crucial step toward turning people into advocates instead of protesters of technology.  If your employees are unwilling to collaborate, then find employees that are willing to work together.  Employees that have business and technology abilities is a plus.</p>
<h2>Technology management</h2>
<p>“Manage IT so it works for your company”</p>
<p>Have a management team that is technology savvy. If you don’t, have a CIO that has the communication skills to get upper management up to speed.</p>
<p>Hire IT personnel that have both technical expertise and people skills.  Instill in your employees that collaboration is a very important objective.</p>
<h2>Service management</h2>
<p>“Include service level agreements on all projects”</p>
<p>IT goes beyond problem solving, it must provide excellent service.  Clearly define your service levels to your users and have well trained support personnel to handle issues that arise.  Reward exceptional service, because good service will build bonds between your IT staff and users, and it will reflect on your bottom line.</p>
<h2>Circulation management</h2>
<p>“Make information accessible to all”</p>
<p>Your data is your business.  IT needs to transform that data into information, which will become knowledge, and eventually wisdom!  To provide information properly and to all who need to know is not a cut and dry process.  Many variables can impede the process like politics, poor management, and short sidedness.   Strong approaches must be defined to circulate data throughout your business and managing the flow of data is critical.</p>
<h2>Value creation</h2>
<p>“IT needs to show executives how they help the bottom line”</p>
<p>The actual value from IT investment lies with everyone in the company, from users to the company’s board.</p>
<p>Ade’s tips on creating technological value:</p>
<ul>
<li>Make sure IT decisions are technically sound and solid for the business as a whole</li>
<li>Teach non-IT personnel to become technology savvy</li>
<li>Run the IT department as a business with high standards</li>
<li>Make sure information circulates and builds wisdom</li>
<li>Measure and identify your IT value</li>
<li>Control supplies</li>
<li>Be a leader</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.pure-performance.com/2009/12/the-it-value-stack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Great jQuery Resources</title>
		<link>http://www.pure-performance.com/2009/05/great-jquery-resources/</link>
		<comments>http://www.pure-performance.com/2009/05/great-jquery-resources/#comments</comments>
		<pubDate>Wed, 20 May 2009 17:44:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[jquery]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[nettuts]]></category>

		<guid isPermaLink="false">http://www.pure-performance.com/?p=129</guid>
		<description><![CDATA[JqueryIn my last post I talked about PHP resources. In this post I have compiled my best jQuery resource.  I hope you find this useful and please add you favorite in the comment area.]]></description>
			<content:encoded><![CDATA[<p><a href="http://jquery.com"><img class="alignleft size-full wp-image-130" title="Jquery" src="http://www.pure-performance.com/wp-content/uploads/2009/05/jq.png" alt="Jquery" width="224" height="77" /></a>In my last post I talked about <a title="PHP Resources" href="http://www.pure-performance.com/2009/03/php-resources/P">PHP resources</a>. In this post I have compiled my best jQuery resource.  I hope you find this useful.</p>
<p>Please add you favorite in the comment area.
<p>&nbsp;</p>
<ul>
<li><a title="Net Tuts" href="http://nettuts.com/">NetTuts </a>- Great resource for all webdev, with some great jQuery posts.</li>
<li><a title="CSS Tricks" href="http://css-tricks.com/">CSS Tricks</a> &#8211; another great webdev resource, with some greate jQuery Posts.</li>
<li><a title="Theme Roller" href="http://jqueryui.com/themeroller/">Themeroller </a>- tool to create a theme with the jQuery UI.</li>
<li><a title="jQuery API" href="http://api.jquery.com/">jQuery API Browser</a> &#8211; You can also download a desktop version.</li>
<li><a title="jQuery" href="http://jquery.com/">jQuery Website</a></li>
<li><a title="jQuery for designers" href="http://jqueryfordesigners.com/">jQuery for designers</a> -  Great video tuts</li>
<li><a title="Learning jQuery" href="http://www.learningjquery.com/">Learning  jQuery</a> &#8211; Tips, techniques, and tutorials for the jQuery JavaScript library</li>
<li><a title="JSbin" href="http://jsbin.com">JSBin </a>- Test and save your javascript.</li>
<li><a title="Six Revisions" href="http://sixrevisions.com/resources/14-jquery-plugins-for-working-with-images/">14  jQuery Image Plugins</a> &#8211; Six Revisions Blog</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.pure-performance.com/2009/05/great-jquery-resources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Resources</title>
		<link>http://www.pure-performance.com/2009/03/php-resources/</link>
		<comments>http://www.pure-performance.com/2009/03/php-resources/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 14:20:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Codeignighter]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.pure-performance.com/?p=122</guid>
		<description><![CDATA[Useful PHP Resources.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.php.net"><img class="alignleft" title="PHP Resources" src="http://static.php.net/www.php.net/images/php.gif" alt="" width="120" height="67" /></a>During development,  you run across resources that are invaluable.  But, if you don’t take the time to save those resources, then you may not be able to find them again for later use.  However, if you bookmark a resource in <a title="Delicious" href="http://delicious.com/">Delicious </a> then you can reference it when needed.  I also subscribe to many blog feeds, so I’m also bookmarking the posts I know I will reference in the future.  Below are a few of my favorite PHP resources.  I hope you find them as useful as I do.</p>
<ul>
<li><a title="PHP Tips" href="http://www.smashingmagazine.com/2009/03/24/10-useful-php-tips-revisited/">10 Advanced PHP Tips</a> -Smashing Mag</li>
<li><a title="PHP Cheat Sheet" href="http://www.addedbytes.com/cheat-sheets/php-cheat-sheet/">PHP Cheat Sheet</a> &#8211; Added Bytes</li>
<li><a title="PHP Security Tutorial" href="http://daniel0.net/phpfreaks_tutorials/php_security/php_security.pdf">PHP Security Tutorial</a> -PHP Freaks</li>
<li><a title="Hierarchical Data in DB using PHP" href="http://www.sitepoint.com/article/hierarchical-data-database/3/">Storing Hierarchical Data in a Database</a> &#8211; Sitepoint</li>
<li><a title="PHP Framework" href="http://codeigniter.com/">PHP Framework</a> &#8211; Codeigniter</li>
</ul>
<p>What are your favorite PHP resources that you bookmark?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pure-performance.com/2009/03/php-resources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Managing Hierarchical Data in SQL</title>
		<link>http://www.pure-performance.com/2009/03/managing-hierarchical-data-in-sql/</link>
		<comments>http://www.pure-performance.com/2009/03/managing-hierarchical-data-in-sql/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 17:29:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[Adjacency List Model]]></category>
		<category><![CDATA[Celko]]></category>
		<category><![CDATA[connect_by]]></category>
		<category><![CDATA[Materialized Path Model]]></category>
		<category><![CDATA[Nested Set Model]]></category>

		<guid isPermaLink="false">http://www.pure-performance.com/?p=102</guid>
		<description><![CDATA[SQL databases are not designed for hierarchical data since the data is stored in flat relational tables with no built in parent-child relationship methods (Oracle does have the connect_by function to help).  XML databases on the other hand are built for hierarchical data.

So with SQL databases we have a problem that requires a solution.  Thanks to the SQL gurus out there we have three models to resolve this issue.  In this post I will point you to these resources.]]></description>
			<content:encoded><![CDATA[<p>SQL databases are not designed for hierarchical data since the data is stored in flat relational tables with no built in parent-child relationship methods (Oracle does have the <a href="http://www.dba-oracle.com/t_connect_by.htm">connect_by</a> function to help).  XML databases on the other hand are built for hierarchical data.</p>
<p>So with SQL databases we have a problem that requires a solution.  Thanks to the SQL gurus out there we have three models to resolve this issue.  In this post I will point you to these resources.</p>
<p>What is hierarchical data?  The best example of a hierarchical model is a company organizational chart; other examples are product categories, forum categories and site maps.  With a hierarchical model you have a tree like structure that needs to be traversed to get to the node you&#8217;re looking for.</p>
<p><img class="aligncenter size-full wp-image-103" title="Hierarchical Data" src="http://www.pure-performance.com/wp-content/uploads/2009/03/image001.png" alt="Hierarchical Data" width="438" height="222" /></p>
<h2>The Adjacency list model</h2>
<p>This is the simplest method to implement, but it&#8217;s the slowest due to recursion.  So if you know the table will be large, use one of the other models. For a small table this would be the answer.</p>
<p>You simply add a parent column that links to the parent entry.  The root entry will be NULL because it does not link to any other node.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top"><strong>Node</strong></td>
<td valign="top"><strong>Parent Node</strong></td>
</tr>
<tr>
<td valign="top">Home</td>
<td valign="top"></td>
</tr>
<tr>
<td valign="top">Products</td>
<td valign="top">Home</td>
</tr>
<tr>
<td valign="top">CD&#8217;s</td>
<td valign="top">Products</td>
</tr>
<tr>
<td valign="top">LP&#8217;s</td>
<td valign="top">Products</td>
</tr>
<tr>
<td valign="top">Artists</td>
<td valign="top">Home</td>
</tr>
<tr>
<td valign="top">Genre</td>
<td valign="top">Artists</td>
</tr>
<tr>
<td valign="top">R&amp;B</td>
<td valign="top">Genre</td>
</tr>
<tr>
<td valign="top">Rock</td>
<td valign="top">Genre</td>
</tr>
<tr>
<td valign="top">About US</td>
<td valign="top">Home</td>
</tr>
</tbody>
</table>
<table style="text-align: left; height: 164px;" border="0" cellpadding="0" width="326">
<tbody>
<tr>
<td width="24%"><strong>CAT_ID</strong></td>
<td width="29%"><strong>NAME</strong></td>
<td width="42%"><strong>CAT_PARENT</strong></td>
</tr>
<tr>
<td width="24%">1</td>
<td width="29%">Home</td>
<td width="42%"></td>
</tr>
<tr>
<td width="24%">2</td>
<td width="29%">product</td>
<td width="42%">2</td>
</tr>
<tr>
<td width="24%">3</td>
<td width="29%">CD&#8217;s</td>
<td width="42%">2</td>
</tr>
<tr>
<td width="24%">4</td>
<td width="29%">LP&#8217;s</td>
<td width="42%">2</td>
</tr>
<tr>
<td width="24%">5</td>
<td width="29%">Artists</td>
<td width="42%">1</td>
</tr>
<tr>
<td width="24%">6</td>
<td width="29%">Genre</td>
<td width="42%">5</td>
</tr>
<tr>
<td width="24%">7</td>
<td width="29%">R&amp;B</td>
<td width="42%">6</td>
</tr>
<tr>
<td width="24%">8</td>
<td width="29%">Rock</td>
<td width="42%">6</td>
</tr>
<tr>
<td width="24%">9</td>
<td width="29%">About Us</td>
<td width="42%">1</td>
</tr>
</tbody>
</table>
<h4>Traversing the table</h4>
<blockquote><p>SELECT t1.name AS lev1, t2.name as lev2, t3.name as lev3, t4.name as lev4</p>
<p>FROM category t1</p>
<p>LEFT JOIN category  t2 ON t2.cat_parent = t1.cat_id</p>
<p>LEFT JOIN category  t3 ON t3.cat_parent = t2.cat_id</p>
<p>LEFT JOIN category  t4 ON t4.cat_parent = t3.cat_id</p>
<p>WHERE t1.name = &#8216;Home&#8217;;</p></blockquote>
<table style="height: 100px;" border="0" cellpadding="0" width="560">
<tbody>
<tr>
<td><strong>LEV1</strong></td>
<td><strong>LEV2</strong></td>
<td><strong>LEV3</strong></td>
<td><strong>LEV4</strong></td>
</tr>
<tr>
<td>Home</td>
<td>Artists</td>
<td>Genre</td>
<td>R&amp;B</td>
</tr>
<tr>
<td>Home</td>
<td>Artists</td>
<td>Genre</td>
<td>Rock</td>
</tr>
<tr>
<td>Home</td>
<td>About Us</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Home</td>
<td>product</td>
<td>LP&#8217;s</td>
<td></td>
</tr>
<tr>
<td>Home</td>
<td>product</td>
<td>CD&#8217;s</td>
<td></td>
</tr>
</tbody>
</table>
<h4>Resources</h4>
<p><a href="http://philip.greenspun.com/sql/trees.html">Trees in Oracle </a> (using connect by)</p>
<p><a href="http://en.wikipedia.org/wiki/Adjacency_list">Adjacency list defined</a></p>
<p><a href="http://www.sqlsummit.com/AdjacencyList.htm">Adjacency list model </a> (Joe Celko )</p>
<h2>Materialized Path model</h2>
<p>The idea with the Materialized path model is to link each node in the hierarchy with its position in the tree.  This is done with a concatenated list of all the nodes ancestors.  This list is usually stored in a delimited string.  Note the &#8220;Linage&#8221; field below.</p>
<table style="height: 164px;" border="0" cellpadding="0" width="522">
<tbody>
<tr>
<td width="16%"><strong>CAT_ID</strong></td>
<td width="20%"><strong>NAME</strong></td>
<td width="30%"><strong>CAT_PARENT</strong></td>
<td width="29%" valign="top"><strong>Lineage</strong></td>
</tr>
<tr>
<td width="16%">1</td>
<td width="20%">Home</td>
<td width="30%"></td>
<td width="29%" valign="top">.</td>
</tr>
<tr>
<td width="16%">2</td>
<td width="20%">product</td>
<td width="30%">1</td>
<td width="29%" valign="top">.1</td>
</tr>
<tr>
<td width="16%">3</td>
<td width="20%">CD&#8217;s</td>
<td width="30%">2</td>
<td width="29%" valign="top">.1.2</td>
</tr>
<tr>
<td width="16%">4</td>
<td width="20%">LP&#8217;s</td>
<td width="30%">2</td>
<td width="29%" valign="top">.1.2</td>
</tr>
<tr>
<td width="16%">5</td>
<td width="20%">Artists</td>
<td width="30%">1</td>
<td width="29%" valign="top">.1</td>
</tr>
<tr>
<td width="16%">6</td>
<td width="20%">Genre</td>
<td width="30%">5</td>
<td width="29%" valign="top">.1. 5</td>
</tr>
<tr>
<td width="16%">7</td>
<td width="20%">R&amp;B</td>
<td width="30%">6</td>
<td width="29%" valign="top">.1. 5.6</td>
</tr>
<tr>
<td width="16%">8</td>
<td width="20%">Rock</td>
<td width="30%">6</td>
<td width="29%" valign="top">.1. 5.6</td>
</tr>
<tr>
<td width="16%">9</td>
<td width="20%">About Us</td>
<td width="30%">1</td>
<td width="29%" valign="top">.1</td>
</tr>
</tbody>
</table>
<h4>Traversing the table</h4>
<blockquote><p>Select lpad(&#8216;-&#8217;,length(t1.lineage))||t1.name listing</p>
<p>From category t1, category t2</p>
<p>Where t1.lineage like t2.lineage ||&#8217;%&#8217;</p>
<p>And t2.name = &#8216;Home&#8217;;</p>
<p>Order by t1.lineage;</p></blockquote>
<table style="height: 164px;" border="0" cellpadding="0" width="267">
<tbody>
<tr>
<td><strong>Listing</strong></td>
</tr>
<tr>
<td style="text-align: left;">Home</td>
</tr>
<tr>
<td>-product</td>
</tr>
<tr>
<td>&#8211;CD&#8217;s</td>
</tr>
<tr>
<td>&#8211;LP&#8217;s</td>
</tr>
<tr>
<td>-Artists</td>
</tr>
<tr>
<td>&#8211;Genre</td>
</tr>
<tr>
<td>&#8212;R&amp;B</td>
</tr>
<tr>
<td>&#8212;Rock</td>
</tr>
<tr>
<td>-About Us</td>
</tr>
</tbody>
</table>
<h4>Resources</h4>
<p><a href="http://www.sqlteam.com/article/more-trees-hierarchies-in-sql">More Trees &amp; Hierarchies in SQL</a></p>
<p><a href="http://www.dbazine.com/oracle/or-articles/tropashko4">Trees in SQL</a></p>
<p><a href="http://joecelkothesqlapprentice.blogspot.com/2006/05/using-materialized-path-to-create.html">Using Materialized Path to create a paths table</a></p>
<h2>The Nested Set Model</h2>
<p>This is the best model for selecting information out of a relational database but slow in adding and deleting. So if you have a static structure this would be your choice.</p>
<p>This model has been championed by <a href="http://www.celko.com/">Joe Celko</a> and is detailed in his articles and book &#8220;<a href="http://www.amazon.com/gp/product/1558609202?ie=UTF8&amp;tag=pureperforma&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1558609202">Trees and Hierarchies in SQL for Smarties</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=pureperforma&amp;l=as2&amp;o=1&amp;a=1558609202" border="0" alt="" width="1" height="1" /><br />
&#8220;.</p>
<div id="attachment_104" class="wp-caption aligncenter" style="width: 431px"><img class="size-full wp-image-104" title="Nested Set Model" src="http://www.pure-performance.com/wp-content/uploads/2009/03/image002.png" alt="Nested Set Model" width="421" height="320" /><p class="wp-caption-text">Nested Set Model</p></div>
<table border="0" cellpadding="0" width="71%">
<tbody>
<tr>
<td width="17%"><strong>CAT_ID</strong></td>
<td width="20%"><strong>NAME</strong></td>
<td width="30%"><strong>CAT_PARENT</strong></td>
<td width="14%" valign="top"><strong>Left</strong></td>
<td width="14%" valign="top"><strong>Right</strong></td>
</tr>
<tr>
<td width="17%">1</td>
<td width="20%">Home</td>
<td width="30%"></td>
<td width="14%" valign="top">1</td>
<td width="14%" valign="top">18</td>
</tr>
<tr>
<td width="17%">2</td>
<td width="20%">product</td>
<td width="30%">1</td>
<td width="14%" valign="top">2</td>
<td width="14%" valign="top">7</td>
</tr>
<tr>
<td width="17%">3</td>
<td width="20%">CD&#8217;s</td>
<td width="30%">2</td>
<td width="14%" valign="top">3</td>
<td width="14%" valign="top">4</td>
</tr>
<tr>
<td width="17%">4</td>
<td width="20%">LP&#8217;s</td>
<td width="30%">2</td>
<td width="14%" valign="top">5</td>
<td width="14%" valign="top">6</td>
</tr>
<tr>
<td width="17%">5</td>
<td width="20%">Artists</td>
<td width="30%">1</td>
<td width="14%" valign="top">8</td>
<td width="14%" valign="top">15</td>
</tr>
<tr>
<td width="17%">6</td>
<td width="20%">Genre</td>
<td width="30%">5</td>
<td width="14%" valign="top">9</td>
<td width="14%" valign="top">14</td>
</tr>
<tr>
<td width="17%">7</td>
<td width="20%">R&amp;B</td>
<td width="30%">6</td>
<td width="14%" valign="top">10</td>
<td width="14%" valign="top">11</td>
</tr>
<tr>
<td width="17%">8</td>
<td width="20%">Rock</td>
<td width="30%">6</td>
<td width="14%" valign="top">12</td>
<td width="14%" valign="top">13</td>
</tr>
<tr>
<td width="17%">9</td>
<td width="20%">About Us</td>
<td width="30%">1</td>
<td width="14%" valign="top">16</td>
<td width="14%" valign="top">17</td>
</tr>
</tbody>
</table>
<h4>Traversing the table</h4>
<p>(t2 is the parent)</p>
<blockquote><p>SELECT  lpad(&#8216;-&#8217;,COUNT(t2.name)-1)||t1.name,t1.left_node</p>
<p><span style="text-decoration: underline;">FROM</span> category t1,category t2</p>
<p>WHERE t1.left_node BETWEEN t2.left_node AND t2.right_node</p>
<p>GROUP BY t1.left_node,t1.name</p>
<p>order by t1.left_node;</p></blockquote>
<table style="height: 164px;" border="0" cellpadding="0" width="374">
<tbody>
<tr>
<td><strong>Listing</strong></td>
<td><strong>LEFT_NODE</strong></td>
</tr>
<tr>
<td>Home</td>
<td>1</td>
</tr>
<tr>
<td>-product</td>
<td>2</td>
</tr>
<tr>
<td>&#8211;CD&#8217;s</td>
<td>3</td>
</tr>
<tr>
<td>&#8211;LP&#8217;s</td>
<td>5</td>
</tr>
<tr>
<td>-Artists</td>
<td>8</td>
</tr>
<tr>
<td>&#8211;Genre</td>
<td>9</td>
</tr>
<tr>
<td>&#8212;R&amp;B</td>
<td>10</td>
</tr>
<tr>
<td>&#8212;Rock</td>
<td>12</td>
</tr>
<tr>
<td>-About Us</td>
<td>16</td>
</tr>
</tbody>
</table>
<h4>Resources</h4>
<p><a href="http://www.sitepoint.com/article/hierarchical-data-database/">Storing Hierarchical Data in a Database</a> (using PHP)</p>
<p><a href="http://dev.mysql.com/tech-resources/articles/hierarchical-data.html">Managing Hierarchical data in MySql</a></p>
<p><a href="http://www.dbmsmag.com/9604d06.html">Sql for Smarities article</a> (Joe Celko)</p>
<p><a href="http://en.wikipedia.org/wiki/Nested_set_model">Nested Set Model defined</a></p>
<h2>Definitions</h2>
<p><strong>Node</strong> &#8211; Abstract basic unit used to build linked data structures. Each node contains data and possibly links to other nodes.</p>
<p><strong>Root</strong> &#8211; Node with no parents.</p>
<p><strong>Leaf</strong> &#8211; Node with no children</p>
<p><strong>Child</strong> &#8211; direct subordinate node.</p>
<p><strong>Sibling</strong> &#8211; Node that shares the same parent.</p>
<p><strong>Ancestors</strong> &#8211; Parent or other superior node.</p>
<p><strong>Descendants</strong> &#8211; all subordinate nodes</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pure-performance.com/2009/03/managing-hierarchical-data-in-sql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Removing duplicate rows (SQL)</title>
		<link>http://www.pure-performance.com/2009/02/removing-duplicate-rows-sql/</link>
		<comments>http://www.pure-performance.com/2009/02/removing-duplicate-rows-sql/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 15:34:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[duplicate rows]]></category>

		<guid isPermaLink="false">http://pure-performance.com/?p=50</guid>
		<description><![CDATA[At least once in your career you will have to deal with duplicate rows causing havic on you application.  This post will help you get through that delema.  I have Oracle and MySql examples below.]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-58" title="Oracle MySql Duplicates" src="http://pure-performance.com/wp-content/uploads/2009/02/oraclemysqlo.jpg" alt="Oracle MySql Duplicates" width="100" height="78" />At least once in your career you will have to deal with duplicate rows causing havoc on you application.  This post will help you get through that dilema.  I have Oracle and MySql examples below.</p>
<h2>ORACLE Specific</h2>
<p>With Oracle with have the luxury of <a title="Rowid Defined" href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/pseudocolumns008.htm" target="_blank">ROWID </a>which uniquely identifies a row in an Oracle table. We will use this pseudo column to remove the duplicates.</p>
<h4>Simple Method</h4>
<p>This is the simplest method which removes the latest duplicate row added. If you want to remove the earliest you need to change  MAX to MIN and replace &#8220;less than&#8221;(&lt;) with &#8220;greater than&#8221;(&gt;).</p>
<blockquote><p>DELETE FROM [TABLE] A<br />
WHERE ROWID &lt;  ( SELECT max(ROWID)<br />
FROM [TABLE] B<br />
WHERE A.[PRIMARY KEY FIELDS] = B.[PRIMARY KEY FIELDS]);</p></blockquote>
<h4>Another method with constraints</h4>
<p>This is another method you can use if you have constraints. This method uses the Oracle function &#8220;<a title="Exists Oracle function" href="http://download.oracle.com/docs/cd/B14117_01/server.101/b10759/conditions009.htm#sthref943" target="_blank">Exists</a>&#8221; which checks for the existence in a sub-query.</p>
<blockquote><p>DELETE FROM [TABLE] A<br />
WHERE CONTRAINT = [VARIABLE]<br />
AND EXISTS ( SELECT &#8216;X&#8217;<br />
FROM [TABLE] B<br />
WHERE A.[PRIMARY KEY FIELDS] = B.[PRIMARY KEY FIELDS]<br />
AND A.ROWID &lt; B.ROWID);</p></blockquote>
<h2>MYSQL <small> (These would also work in Oracle )</small></h2>
<p>With MySQL  we do not have the tools that Oracle has to easily find the duplicates. But most MySql tables use an auto-increment ID field that helps us to identify the duplicates.</p>
<h4>Simple Method</h4>
<p>As with the Oracle method use the &#8220;greater than&#8221; sign to to keep the earliest row entered. We can change this  to pull the latest  by replacing &#8220;greater than&#8221; with &#8220;less than&#8221;.</p>
<blockquote><p>DELETE A FROM [TABLE] as A, [TABLE] as B<br />
WHERE A.[UNIQUE FIELD(S)] = B.[UNIQUE FIELD(S)]<br />
AND A.ID &gt; B.ID;</p></blockquote>
<h4>Without the ID field</h4>
<p>Now it gets complicated in MySQL, we need to create a table with an unique ID then remove the duplicates. Once the dups have been remove  then  we can put the data back onto the original table.</p>
<blockquote><p><em>Drop the dups table if it exists.</em></p>
<p>DROP TABLE IF EXISTS [TABLE]_dups;</p>
<p><em>Create the dups table.  This table will be the base table(table with dups) with the ID added.</em></p>
<p>CREATE TABLE [TABLE]_dups (<br />
id INT(11) default NULL auto_increment,<br />
[ALL TABLE COLUMNS],<br />
PRIMARY KEY (id)<br />
);</p>
<p><em>Insert into the dups table from the base table.</em></p>
<p>INSERT INTO [TABLE]_dups<br />
SELECT NULL,[UNIQUE FIELD(S)]<br />
FROM [TABLE];</p>
<p><em>Delete the dups using the SQL we used in the prior example</em></p>
<p>DELETE A FROM [TABLE]_dups as A, [TABLE]_dups as B<br />
WHERE A.[UNIQUE FIELD(S)] = B.[UNIQUE FIELD(S)]<br />
AND A.ID &lt; B.ID;</p>
<p><em>Delete the Base table</em></p>
<p>DELETE FROM [TABLE];</p>
<p><em>Insert into the base table from the dups table.</em></p>
<p>INSERT INTO [TABLE]<br />
SELECT [all columns less the ID field]<br />
FROM [TABLE]_dups;</p>
<p><em>Remove the dups table</em></p>
<p>DROP TABLE [TABLE]_dups;</p></blockquote>
<p>I hope this posts help you when you run into this problem&#8230; and we all run into this problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pure-performance.com/2009/02/removing-duplicate-rows-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Designing Web Interfaces</title>
		<link>http://www.pure-performance.com/2009/02/designing-web-interfaces/</link>
		<comments>http://www.pure-performance.com/2009/02/designing-web-interfaces/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 14:09:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[web design]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://pure-performance.com/?p=34</guid>
		<description><![CDATA[Bill Scott&#8217;s new book &#8220;Designing web Interfaces&#8221; has just hit stores. I attended a great web cast yesterday by the author Bill Scott of Yahoo. Check it out. Designing Web Interfaces Book &#8211; O&#8217;Reilly Webcast View more presentations from Bill Scott. (tags: rich ajax)]]></description>
			<content:encoded><![CDATA[<p>Bill Scott&#8217;s new book &#8220;Designing web Interfaces&#8221; has just hit stores.  I attended a great web cast yesterday by the author <a title="Bill Scott" href="http://looksgoodworkswell.blogspot.com/" target="_blank">Bill Scott </a>of Yahoo. Check it out.</p>
<object width="420" height="344"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=dwi-1233708570866247-2"/><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=dwi-1233708570866247-2"  type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="420" height="344"></embed></object><!-- ysttest:Array
(
    [id] => 986235&amp;doc=dwi-1233708570866247-2
)
-->
<div id="__ss_986235" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Designing Web Interfaces Book - O'Reilly Webcast" href="http://www.slideshare.net/billwscott/designing-web-interfaces-book-oreilly-webcast?type=presentation">Designing Web Interfaces Book &#8211; O&#8217;Reilly Webcast</a></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/billwscott">Bill Scott</a>. (tags: <a style="text-decoration:underline;" href="http://slideshare.net/tag/rich">rich</a> <a style="text-decoration:underline;" href="http://slideshare.net/tag/ajax">ajax</a>)</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.pure-performance.com/2009/02/designing-web-interfaces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Searching Oracle (Database/PLSQL)</title>
		<link>http://www.pure-performance.com/2009/01/searching-oracle-databaseplsql/</link>
		<comments>http://www.pure-performance.com/2009/01/searching-oracle-databaseplsql/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 14:46:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PL/SQL]]></category>
		<category><![CDATA[database search]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://pure-performance.com/?p=16</guid>
		<description><![CDATA[During development things always change.  Column names change, columns may be added or removed from tables and so on.  When this happens, you need to go back to your PL/SQL programs and change the code. In some cases, you can just recompile the package or procedure to find the problems caused.   But that doesn't always catch everything, especially when you have dynamic SQL.  So you should always run a PL/SQL search to find the column or text that has changed.]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-31" title="Oracle Search" src="http://pure-performance.com/wp-content/uploads/2009/01/orasearch.jpg" alt="Oracle Search" width="117" height="114" /><br />
<h2>PL/SQL Search</h2>
<p>During development things always change.  Column names change, columns may be added or removed from tables and so on.  When this happens, you need to go back to your PL/SQL programs and change the code. In some cases, you can just recompile the package or procedure to find the problems caused.   But that doesn&#8217;t always catch everything, especially when you have dynamic SQL.  So you should always run a PL/SQL search to find the column or text that has changed.</p>
<p>To do this, we use the  Oracle Data dictionary view  XXX_SOURCE (USER_SOURCE,  ALL_SOURCE,  or DBA_SOURCE depending on your access ) .  With USER_SOURCE you do not specify the owner since it only returns the source for the schema you&#8217;re logged into.</p>
<p>Below are SQL statements to find the text you&#8217;re looking for.</p>
<p>Using USER_SOURCE</p>
<blockquote><p>SELECT type, name, line<br />
FROM USER_SOURCE<br />
WHERE UPPER(text) LIKE UPPER(&#8216;%&amp;SearchText%&#8217;);</p></blockquote>
<p>Using DBA_SOURCE, or ALL_SOURCE</p>
<blockquote><p>SELECT type, name, line<br />
FROM ALL_SOURCE<br />
WHERE OWNER = &#8216;&amp;SCHEMA&#8217;<br />
AND UPPER(text) LIKE UPPER(&#8216;%&amp;SearchText%&#8217;);</p></blockquote>
<p>When you run a query above in SQL*Plus  you will be prompted for the  search text. Then, enter what you&#8217;re  looking for and you&#8217;re on your way.  These queries will return the following database types that contain the string your looking for :</p>
<ul>
<li>Packages</li>
<li>Procedures</li>
<li>Functions</li>
<li>Triggers</li>
<li>Types</li>
</ul>
<h2>Database Search</h2>
<p>To search for a given string in an entire Oracle database schema check out this awesome procedure by  <a title="David Yahalom" href="http://www.authoritybase.com/" target="_blank">David Yahalom</a> :  <a title="Search forf a given string in a shcema" href="http://it.toolbox.com/blogs/david/search-for-a-given-string-in-all-fields-of-an-entire-schema-24074" target="_blank">search_db</a></p>
<p>If you have scripts or other methods to search an Oracle database, please add them in a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pure-performance.com/2009/01/searching-oracle-databaseplsql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>News Scroll using jquery</title>
		<link>http://www.pure-performance.com/2008/01/news-scroll-using-jquery/</link>
		<comments>http://www.pure-performance.com/2008/01/news-scroll-using-jquery/#comments</comments>
		<pubDate>Thu, 17 Jan 2008 18:15:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[jquery]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[clipregion]]></category>
		<category><![CDATA[News Scroll]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://pure-performance.com/2008/01/news-scroll-using-jquery/</guid>
		<description><![CDATA[Using the jquery plugin ClipRegion ( for image scrolls ) I created a News Scroll to meet my needs. This scroll was built to be unobtrusive, so if javascript has been turned off, it still look presentable. With JavaScript: Without JavaScript (scroll buttons do not work): You can find a functioning sample page by clicking [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-7" href="http://pure-performance.com/2008/01/news-scroll-using-jquery/news-scroll/" title="News Scroll"></a>Using the jquery plugin ClipRegion ( for image scrolls ) I created a News Scroll to meet my needs. This scroll was built to be unobtrusive, so if javascript has been turned off, it still look presentable.</p>
<p>With JavaScript:</p>
<p><a target="_blank" href="http://www.pure-performance.com/projects/newsscroll.html" title="News Scroll "><img src="http://pure-performance.com/wp-content/uploads/2008/01/newsscroll.thumbnail.jpg" alt="News Scroll" /></a><a target="_blank" href="mailto:"></a></p>
<p>Without JavaScript (scroll buttons do not work):</p>
<p><a target="_blank" href="http://pure-performance.com/wp-content/uploads/2008/01/newsscrollnojs.jpg" title="News Scroll without JavaScript turned on"><img src="http://pure-performance.com/wp-content/uploads/2008/01/newsscrollnojs.thumbnail.jpg" alt="News Scroll with JavaScript turned off" /></a></p>
<p>You can find a functioning sample page by clicking on the javascript image or <strong><a target="_blank" href="http://www.pure-performance.com/projects/newsscroll.html" title="News Scroll at work">click here</a>.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pure-performance.com/2008/01/news-scroll-using-jquery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Welcome to Pure Performance</title>
		<link>http://www.pure-performance.com/2007/11/welcome/</link>
		<comments>http://www.pure-performance.com/2007/11/welcome/#comments</comments>
		<pubDate>Thu, 08 Nov 2007 13:01:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[PeopleSoft]]></category>
		<category><![CDATA[pure performance]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Wecome]]></category>

		<guid isPermaLink="false">http://pure-performance.com/2007/11/welcome/</guid>
		<description><![CDATA[Welcome to the updated site of Pure Performance Inc.  This site will be used to update our clients and clients to be  with our current activities.  We will also be providing tips and tricks for PeopleSoft, Oracle, Web, &#38; UNIX developers. Enjoy -Mark]]></description>
			<content:encoded><![CDATA[<p>Welcome to the updated site of Pure Performance Inc.  This site will be used to update our clients and clients to be  with our current activities.  We will also be providing tips and tricks for PeopleSoft, Oracle, Web, &amp; UNIX developers.</p>
<p>Enjoy -Mark</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pure-performance.com/2007/11/welcome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
