<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Dan Cramer</title>
	
	<link>http://dancramer.com/notebook</link>
	<description>The occasional thought on the stuff I think about</description>
	<pubDate>Tue, 01 Jul 2008 00:34:58 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/DanCramer" type="application/rss+xml" /><item>
		<title>Deleting duplicate Outlook Contacts</title>
		<link>http://feeds.feedburner.com/~r/DanCramer/~3/323643700/</link>
		<comments>http://dancramer.com/notebook/2008/06/deleting-duplicate-outlook-contacts/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 00:34:58 +0000</pubDate>
		<dc:creator>Dan Cramer</dc:creator>
		
		<category><![CDATA[Tools]]></category>

		<category><![CDATA[duplicates]]></category>

		<category><![CDATA[lifehack]]></category>

		<category><![CDATA[outlook]]></category>

		<guid isPermaLink="false">http://dancramer.com/notebook/?p=20</guid>
		<description><![CDATA[Just found an awesome tip via Lifehacker on the site tech-recipies. I had set up my mom&#8217;s computer to sync her phone and her Outlook and of course something went screwy and she ended up with duplicate contacts of every contact. This tip was a lifesaver as it allowed me to quickly and easily delete [...]]]></description>
			<content:encoded><![CDATA[<p><span class="drop">J</span>ust found an awesome tip via <a href="http://lifehacker.com/software/outlook-tip/quickly-delete-duplicate-contacts-in-outlook-326818.php">Lifehacker </a>on the site <a href="http://www.tech-recipes.com/rx/2700/outlook_how_to_delete_duplicated_contacts">tech-recipies</a>. I had set up my mom&#8217;s computer to sync her phone and her Outlook and of course something went screwy and she ended up with duplicate contacts of every contact. This tip was a lifesaver as it allowed me to quickly and easily delete all of the duplicates while maintaining her original list!</p>
<p>Read the article for a more in depth approach including screenshots, but the basic steps are</p>
<ol>
<li>Switch to &#8216;Phone List&#8217; view on the Contact screen</li>
<li>Add the &#8216;Created&#8217; column to the view and sort by it</li>
<li>Delete all the contacts that were created on a later date</li>
</ol>
<p>Of course it&#8217;s more sophisticated than that, but that&#8217;s the basic idea. Anyway, saved me a bunch of time.</p>
<img src="http://feeds.feedburner.com/~r/DanCramer/~4/323643700" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dancramer.com/notebook/2008/06/deleting-duplicate-outlook-contacts/feed/</wfw:commentRss>
		<feedburner:origLink>http://dancramer.com/notebook/2008/06/deleting-duplicate-outlook-contacts/</feedburner:origLink></item>
		<item>
		<title>Get your wireframe up quickly</title>
		<link>http://feeds.feedburner.com/~r/DanCramer/~3/303733978/</link>
		<comments>http://dancramer.com/notebook/2008/06/get-your-wireframe-up-quickly/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 13:38:19 +0000</pubDate>
		<dc:creator>Dan Cramer</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<category><![CDATA[images]]></category>

		<category><![CDATA[wireframe]]></category>

		<category><![CDATA[Yahoo!]]></category>

		<guid isPermaLink="false">http://dancramer.com/notebook/?p=16</guid>
		<description><![CDATA[The nice folks at Yahoo have released an incredible resource for anyone looking to get a web application out the door. The Yahoo! Design Stencil Kit version 1.0 (catchy name too) has been released in a number of different formats. This will let anyone quickly mockup a web page digitally using a number of standard [...]]]></description>
			<content:encoded><![CDATA[<p><span class="drop">T</span>he nice folks at <a href="http://developer.yahoo.com/ypatterns/wireframes">Yahoo</a> have released an incredible resource for anyone looking to get a web application out the door. The <a href="http://developer.yahoo.com/ypatterns/wireframes">Yahoo! Design Stencil Kit version 1.0</a> (catchy name too) has been released in a number of different formats. This will let anyone quickly mockup a web page digitally using a number of standard controls. And best of all the whole thing is licensed under a <a href="http://creativecommons.org/licenses/by/2.5/">Creative Commons Attributions 2.5 License</a> which lets any one to share and remix the work as long as they give attribution.</p>
<p><a href="http://developer.yahoo.com/ypatterns/wireframes/"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" title="stencil_illustration" src="http://dancramer.com/notebook/wp-content/uploads/2008/06/stencil-illustration.jpg" border="0" alt="stencil_illustration" width="540" height="236" /></a></p>
<img src="http://feeds.feedburner.com/~r/DanCramer/~4/303733978" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dancramer.com/notebook/2008/06/get-your-wireframe-up-quickly/feed/</wfw:commentRss>
		<feedburner:origLink>http://dancramer.com/notebook/2008/06/get-your-wireframe-up-quickly/</feedburner:origLink></item>
		<item>
		<title>Displaying the SQL from a Query</title>
		<link>http://feeds.feedburner.com/~r/DanCramer/~3/301365549/</link>
		<comments>http://dancramer.com/notebook/2008/05/displaying-the-sql-from-a-query/#comments</comments>
		<pubDate>Fri, 30 May 2008 16:36:30 +0000</pubDate>
		<dc:creator>Dan Cramer</dc:creator>
		
		<category><![CDATA[ColdFusion]]></category>

		<category><![CDATA[SQL]]></category>

		<category><![CDATA[Query]]></category>

		<guid isPermaLink="false">http://dancramer.com/notebook/?p=14</guid>
		<description><![CDATA[Ray Camden has put up a very nice post about pulling the actual text of a ColdFusion query. I&#8217;ve been playing around with ColdFusion 8 in my dev environment and one of the things I miss most when going back to a 7 server is the text of the SQL in the &#60;cfdump&#62; for the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://coldfusionjedi.com"><span class="drop">R</span>ay Camden</a> has put up a very nice post about pulling the actual text of a ColdFusion query. I&#8217;ve been playing around with ColdFusion 8 in my dev environment and one of the things I miss most when going back to a 7 server is the text of the SQL in the &lt;cfdump&gt; for the query.</p>
<p><a href="http://www.coldfusionjedi.com/index.cfm/2008/5/30/Ask-a-Jedi-Getting-the-SQL-from-a-Query">Go read the article</a> for a more thorough explanation bust basically there are two ways to see the text of a query.</p>
<ol>
<li>Add the &#8216;result=yourstruct&#8217; attribute to your query tag and a bunch of meta data about the query will be put in yourstruct</li>
<li>Call the function getMetaData() on the query and you&#8217;ll get a bunch of information about the column names and types of the query</li>
</ol>
<p>The full article explains a lot more about the two approaches. This is a great tip especially when you don&#8217;t have access to a server&#8217;s administration application.</p>
<img src="http://feeds.feedburner.com/~r/DanCramer/~4/301365549" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dancramer.com/notebook/2008/05/displaying-the-sql-from-a-query/feed/</wfw:commentRss>
		<feedburner:origLink>http://dancramer.com/notebook/2008/05/displaying-the-sql-from-a-query/</feedburner:origLink></item>
		<item>
		<title>Google’s new AJAX Libraries API</title>
		<link>http://feeds.feedburner.com/~r/DanCramer/~3/299896334/</link>
		<comments>http://dancramer.com/notebook/2008/05/googles-new-ajax-libraries-api/#comments</comments>
		<pubDate>Wed, 28 May 2008 14:55:43 +0000</pubDate>
		<dc:creator>Dan Cramer</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[CDN]]></category>

		<category><![CDATA[dojo]]></category>

		<category><![CDATA[Google]]></category>

		<category><![CDATA[jQuery]]></category>

		<category><![CDATA[MooTools]]></category>

		<category><![CDATA[prototype]]></category>

		<category><![CDATA[script.acul.us]]></category>

		<guid isPermaLink="false">http://dancramer.com/notebook/?p=13</guid>
		<description><![CDATA[Yesterday Google announced that they are going to serve up some of the top JavaScript libraries on its own content delivery network. This allows developers to hand off the responsibilities of storing and caching these libraries to Google. In the announcement Dion Almaer listed several benefits to having Google host these files:


&#8220;Developers won&#8217;t have to [...]]]></description>
			<content:encoded><![CDATA[<p><span class="drop">Y</span>esterday <a href="http://googleajaxsearchapi.blogspot.com/2008/05/speed-up-access-to-your-favorite.html">Google announced</a> that they are going to serve up some of the top JavaScript libraries on its own content delivery network. This allows developers to hand off the responsibilities of storing and caching these libraries to Google. In the announcement Dion Almaer listed several benefits to having Google host these files:</p>
<blockquote>
<ul>
<li>&#8220;Developers won&#8217;t have to worry about getting caching setup correctly, as we will do that for you</li>
<li>If another application uses the same library (much more likely), they there is a much better chance that it will be already caching on the users machine</li>
<li>The network and bandwidth of the users systems will not be taxed.&#8221;</li>
</ul>
</blockquote>
<p>They currently are hosting five of the more popular libraries <a href="http://code.google.com/apis/ajaxlibs/documentation/index.html#jquery">jQuery</a>, <a href="http://code.google.com/apis/ajaxlibs/documentation/index.html#prototype">prototype</a>, <a href="http://code.google.com/apis/ajaxlibs/documentation/index.html#script_aculo_us">script.aculo.us</a>, <a href="http://code.google.com/apis/ajaxlibs/documentation/index.html#mootools">MooTools</a> and <a href="http://code.google.com/apis/ajaxlibs/documentation/index.html#dojo">dojo</a>. Depending on how you call the library you can get a specific version or just the most recently available one. If this convention catches on then potential when a new person enters your site they may already have the library cached from a visit to another site.</p>
<p>There are two ways to access the libraries at Google. First, you can access them using the standard &lt;script src=&#8221;..&#8221;&gt; tag. So to include jQuery you would include the following line in your page:</p>
<div style="border-right: gray 1px solid; padding-right: 4px; padding-left: 4px; font-size: 8pt; border-top: gray 1px solid; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 37px; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">script</span> <span style="color: #ff0000;">src</span><span style="color: #0000ff;">=&#8221;http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js&#8221;</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">script</span><span style="color: #0000ff;">&gt;</span></pre>
</div>
</div>
<p>Second, you can use Google&#8217;s own AJAX API Loader. Here&#8217;s the example from the site:</p>
<div style="border-right: gray 1px solid; padding-right: 4px; padding-left: 4px; font-size: 8pt; border-top: gray 1px solid; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #006080;">&lt;</span><span style="color: #0000ff;">script</span> src=&#8221;http:<span style="color: #008000;">//www.google.com/jsapi&#8221;&gt;&lt;/script&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #006080;">&lt;</span><span style="color: #0000ff;">script</span><span style="color: #006080;">&gt;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #008000;">// Load jQuery</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">google<span style="color: #cc6633;">.load</span>(&#8221;jquery&#8221;, &#8220;1&#8243;);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #008000;">// on page load complete, fire off a jQuery json-p query</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #008000;">// against Google web search</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">google<span style="color: #cc6633;">.setOnLoadCallback</span>(function() {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">$<span style="color: #cc6633;">.getJSON</span>(&#8221;http:<span style="color: #008000;">//ajax.googleapis.com/ajax/services/search/web?q=google&amp;;v=1.0&amp;;callback=?&#8221;,</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #008000;">// on search completion, process the results</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">function (data) {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">if (data<span style="color: #cc6633;">.responseDate</span><span style="color: #cc6633;">.results</span> <span style="color: #006080;">&amp;</span><span style="color: #006080;">&amp;</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">data<span style="color: #cc6633;">.responseDate</span><span style="color: #cc6633;">.results</span><span style="color: #cc6633;">.length</span><span style="color: #006080;">&gt;</span>0) {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">renderResults(data<span style="color: #cc6633;">.responseDate</span><span style="color: #cc6633;">.results</span>);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">}</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">});</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">});</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #006080;">&lt;</span>/<span style="color: #0000ff;">script</span><span style="color: #006080;">&gt;</span></pre>
</div>
</div>
<p>There is a full set of usage guidelines on the <a href="http://code.google.com/apis/ajaxlibs/documentation/index.html#AjaxLibraries">documentation site</a> which further explain how to use the loader. You can specify to what level of the version you want of the library (&#8221;1&#8243;, &#8220;1.1&#8243;, or &#8220;1.1.2&#8243;) and the loader will return the most relevant version.</p>
<p>This is a nice validation of the usefulness of frameworks in developing and will help remove some barriers of entry to site creation. I&#8217;m excited to give this a try in my next project. One thing to note though, is the files are hosted at an outside site. Now Google is in the business of continuous uptime, but on the off chance that the service goes down your site could go down with it. Also developers on internal company projects may not be able to access an outside service which would also invalidate this method.</p>
<img src="http://feeds.feedburner.com/~r/DanCramer/~4/299896334" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dancramer.com/notebook/2008/05/googles-new-ajax-libraries-api/feed/</wfw:commentRss>
		<feedburner:origLink>http://dancramer.com/notebook/2008/05/googles-new-ajax-libraries-api/</feedburner:origLink></item>
		<item>
		<title>Removing an Oracle Job</title>
		<link>http://feeds.feedburner.com/~r/DanCramer/~3/299380898/</link>
		<comments>http://dancramer.com/notebook/2008/05/removing-an-oracle-job/#comments</comments>
		<pubDate>Tue, 27 May 2008 22:26:11 +0000</pubDate>
		<dc:creator>Dan Cramer</dc:creator>
		
		<category><![CDATA[SQL]]></category>

		<category><![CDATA[dbms_job]]></category>

		<category><![CDATA[oracle]]></category>

		<category><![CDATA[vsession_longops]]></category>

		<guid isPermaLink="false">http://dancramer.com/notebook/?p=12</guid>
		<description><![CDATA[I&#8217;m just getting started in the world of Oracle Jobs, but here&#8217;s a nice little tip I had to look up today. You can stop a job by calling the REMOVE(job_id) function of the DBMS_JOB package. Notice there is no &#8216;S&#8217; after DBMS_JOB, a minor mistake that I already made today.
So if I have a [...]]]></description>
			<content:encoded><![CDATA[<p><span class="drop">I</span>&#8217;m just getting started in the world of Oracle Jobs, but here&#8217;s a nice little tip I had to look up today. You can stop a job by calling the REMOVE(job_id) function of the DBMS_JOB package. Notice there is no &#8216;S&#8217; after DBMS_JOB, a minor mistake that I already made today.</p>
<p>So if I have a job 10045 and would like to get rid of it I would call:</p>
<div style="border-right: gray 1px solid; padding-right: 4px; padding-left: 4px; font-size: 8pt; border-top: gray 1px solid; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #0000ff;">begin</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">DBMS_JOB.REMOVE(10045);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #0000ff;">end</span>;</pre>
</div>
</div>
<p>Also, too check get an idea of how much longer an existing job has to run you can query the session table:</p>
<div style="border-right: gray 1px solid; padding-right: 4px; padding-left: 4px; font-size: 8pt; border-top: gray 1px solid; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #0000ff;">SELECT</span> round(sofar*100 / totalwork) <span style="color: #0000ff;">as</span> percent_done,</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">       round((totalwork - sofar) * (((last_update_time - start_time) *</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">       24*60)/sofar)) <span style="color: #0000ff;">as</span> min_remaining,</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">       round(elapsed_seconds/60) <span style="color: #0000ff;">as</span> elapsed_time</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #0000ff;">FROM</span> v$session_longops a</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #0000ff;">WHERE</span> SID = {the SID running the job}</pre>
</div>
</div>
<p>You can find the SID of the running job using the following query:</p>
<div style="border-right: gray 1px solid; padding-right: 4px; padding-left: 4px; font-size: 8pt; border-top: gray 1px solid; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #0000ff;">select</span> * <span style="color: #0000ff;">from</span> v$<span style="color: #0000ff;">session</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #0000ff;">where</span> status=<span style="color: #006080;">&#8216;ACTIVE&#8217;</span></pre>
</div>
</div>
<p>And look for the username that is running the query.</p>
<p>This is very elementary stuff that a lot of programmers probably already know, but still worth mentioning. I&#8217;ve also been doing some work the the DBMS_APPLICATION_INFO package which lets your application update its status for others to see.</p>
<img src="http://feeds.feedburner.com/~r/DanCramer/~4/299380898" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dancramer.com/notebook/2008/05/removing-an-oracle-job/feed/</wfw:commentRss>
		<feedburner:origLink>http://dancramer.com/notebook/2008/05/removing-an-oracle-job/</feedburner:origLink></item>
		<item>
		<title>Finding out what’s eating your disk space</title>
		<link>http://feeds.feedburner.com/~r/DanCramer/~3/296176625/</link>
		<comments>http://dancramer.com/notebook/2008/05/finding-out-whats-eating-your-disk-space/#comments</comments>
		<pubDate>Thu, 22 May 2008 23:53:54 +0000</pubDate>
		<dc:creator>Dan Cramer</dc:creator>
		
		<category><![CDATA[Tools]]></category>

		<category><![CDATA[disk]]></category>

		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://dancramer.com/notebook/?p=11</guid>
		<description><![CDATA[Today my computer slowed down to a crawl. I decided to open the Computer window and see what my disks were looking like. My C: drive was down to 300MB (not GB) free! Not a good state to be in. I&#8217;ve tried to be really careful about keeping my large files off this drive so [...]]]></description>
			<content:encoded><![CDATA[<p><span class="drop">T</span>oday my computer slowed down to a crawl. I decided to open the Computer window and see what my disks were looking like. My C: drive was down to 300MB (not GB) free! Not a good state to be in. I&#8217;ve tried to be really careful about keeping my large files off this drive so I was very confused what was going on. Now rather than click on each folder to find out its properties I did a little googling and found the program<strong> WinDirStat. <a title="http://windirstat.info/" href="http://windirstat.info/">http://windirstat.info/</a> </strong></p>
<p>Short story: This is an awesome program and helped me free up 35GB.</p>
<p>Long story: I was able to find a program whose temp folder wasn&#8217;t getting cleaned up resulting in a lot of extra junk. There is no way I could have found this poking around (it was in a pretty obscure location) but it showed up right away in WinDirStat. And best of all the price is right! Free.</p>
<p>Check it out for yourself.</p>
<p><a href="http://windirstat.info"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://dancramer.com/notebook/wp-content/uploads/2008/05/image.png" border="0" alt="image" width="634" height="480" /></a></p>
<img src="http://feeds.feedburner.com/~r/DanCramer/~4/296176625" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dancramer.com/notebook/2008/05/finding-out-whats-eating-your-disk-space/feed/</wfw:commentRss>
		<feedburner:origLink>http://dancramer.com/notebook/2008/05/finding-out-whats-eating-your-disk-space/</feedburner:origLink></item>
		<item>
		<title>Code Style test</title>
		<link>http://feeds.feedburner.com/~r/DanCramer/~3/296176626/</link>
		<comments>http://dancramer.com/notebook/2008/05/code-style-test/#comments</comments>
		<pubDate>Thu, 15 May 2008 18:08:41 +0000</pubDate>
		<dc:creator>Dan Cramer</dc:creator>
		
		<category><![CDATA[Site News]]></category>

		<guid isPermaLink="false">http://dancramer.com/notebook/2008/05/code-style-test/</guid>
		<description><![CDATA[

this.itemDataTable.subscribe(&#34;rowMouseoverEvent&#34;, this.itemDataTable.onEventHighlightRow);
this.itemDataTable.subscribe(&#34;rowMouseoutEvent&#34;, this.itemDataTable.onEventUnhighlightRow);
this.itemDataTable.subscribe(&#34;rowClickEvent&#34;, this.itemDataTable.onEventSelectRow);
this.itemDataTable.subscribe(&#34;rowSelectEvent&#34;, function(oArgs){
    this.clearTextSelection();
});


]]></description>
			<content:encoded><![CDATA[<div style="border-right: gray 1px solid; padding-right: 4px; padding-left: 4px; font-size: 8pt; border-top: gray 1px solid; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #0000ff"><span class="drop">t</span>his</span>.itemDataTable.subscribe(<span style="color: #006080">&quot;rowMouseoverEvent&quot;</span>, <span style="color: #0000ff">this</span>.itemDataTable.onEventHighlightRow);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #0000ff">this</span>.itemDataTable.subscribe(<span style="color: #006080">&quot;rowMouseoutEvent&quot;</span>, <span style="color: #0000ff">this</span>.itemDataTable.onEventUnhighlightRow);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #0000ff">this</span>.itemDataTable.subscribe(<span style="color: #006080">&quot;rowClickEvent&quot;</span>, <span style="color: #0000ff">this</span>.itemDataTable.onEventSelectRow);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #0000ff">this</span>.itemDataTable.subscribe(<span style="color: #006080">&quot;rowSelectEvent&quot;</span>, <span style="color: #0000ff">function</span>(oArgs){</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    <span style="color: #0000ff">this</span>.clearTextSelection();</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">});</pre>
</p></div>
</div>
<img src="http://feeds.feedburner.com/~r/DanCramer/~4/296176626" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dancramer.com/notebook/2008/05/code-style-test/feed/</wfw:commentRss>
		<feedburner:origLink>http://dancramer.com/notebook/2008/05/code-style-test/</feedburner:origLink></item>
		<item>
		<title>Hello World</title>
		<link>http://feeds.feedburner.com/~r/DanCramer/~3/291079667/</link>
		<comments>http://dancramer.com/notebook/2008/05/hello-world/#comments</comments>
		<pubDate>Tue, 06 May 2008 18:09:40 +0000</pubDate>
		<dc:creator>Dan Cramer</dc:creator>
		
		<category><![CDATA[Site News]]></category>

		<category><![CDATA[me]]></category>

		<category><![CDATA[site]]></category>

		<guid isPermaLink="false">http://thecramerfamily.org/notebook/?p=3</guid>
		<description><![CDATA[I&#8217;m going to start writing some technical stuff here. It should all be related to Coldfusion, Java, Medical Informatics and other such stuff, but who knows how well I&#8217;ll stay on target.
]]></description>
			<content:encoded><![CDATA[<p><span class="drop">I</span>&#8217;m going to start writing some technical stuff here. It should all be related to Coldfusion, Java, Medical Informatics and other such stuff, but who knows how well I&#8217;ll stay on target.</p>
<img src="http://feeds.feedburner.com/~r/DanCramer/~4/291079667" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dancramer.com/notebook/2008/05/hello-world/feed/</wfw:commentRss>
		<feedburner:origLink>http://dancramer.com/notebook/2008/05/hello-world/</feedburner:origLink></item>
	</channel>
</rss>
