<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8291279233667722324</id><updated>2011-09-30T12:45:01.380-07:00</updated><category term='linux'/><category term='asktom oracle api'/><category term='cx_oracle'/><category term='support'/><category term='sqldeveloper oracle bug'/><category term='java'/><category term='opinion'/><category term='debugging'/><category term='python'/><category term='web'/><category term='mac'/><category term='tutorial'/><category term='dumbness'/><category term='history'/><category term='pl/sql'/><category term='exemplar'/><category term='email'/><category term='omnigraffle'/><category term='c++'/><category term='xml-rpc'/><category term='perforce'/><category term='validation'/><category term='json'/><category term='oracle'/><title type='text'>EastBay CodeHaus</title><subtitle type='html'>Notes on Programming and Software Development</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-3740960148526914241</id><published>2010-08-30T17:26:00.000-07:00</published><updated>2010-08-30T17:26:12.062-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Oracle Packages that include Java</title><content type='html'>&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: small;"&gt;Here's a cheat sheet for including Java stored procedures&amp;nbsp; in packages.&lt;/span&gt;&lt;b&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif; font-size: small;"&gt;Write a class:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class OracleFoo {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void myproc(int port, String s) throws&amp;nbsp; Exception {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Compile and Load:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; javac OracleFoo.java &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; loadjava&amp;nbsp; -u scott/tiger OracleFoo.class&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Declare a package:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; create or replace package oraclefoo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; as&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; procedure myproc(port number, s varchar2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; as language java name 'OracleFoo.myproc(int, java.lang.String)';&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Call:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oracletbslow.myproc(7728,'[1,"a","b1",{}]');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oracletbslow.myproc(7727,'[1,"a","b2",{}]');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;Permissions:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; need to set these, double-check notes...&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-3740960148526914241?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/3740960148526914241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=3740960148526914241' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/3740960148526914241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/3740960148526914241'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2010/08/oracle-packages-that-include-java.html' title='Oracle Packages that include Java'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-5467201901928616461</id><published>2010-08-28T19:34:00.000-07:00</published><updated>2010-08-28T19:34:05.468-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pl/sql'/><category scheme='http://www.blogger.com/atom/ns#' term='json'/><title type='text'>hello world for erasme pl/sql-json package</title><content type='html'>Here's a hello world program for the erasme pl/sql json package.&lt;br /&gt;
&lt;br /&gt;
I need to figure out how to do it outside the context of a dictionary.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; my_obj&amp;nbsp;&amp;nbsp;&amp;nbsp; json.JSONStructObj;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; my_tab&amp;nbsp; json.JSONArray;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- {}&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; json.newJSONObj(my_obj);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; json.closeJSONObj(my_obj);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbms_output.put_line(json.JSON2String(my_obj));&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- {'a':'b'}&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; json.newJSONObj(my_obj);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; my_obj := json.addAttr(my_obj, 'x', 'hello');&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; my_obj := json.addAttr(my_obj, 'y', 99);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; json.closeJSONObj(my_obj);&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbms_output.put_line(json.JSON2String(my_obj));&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-5467201901928616461?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/5467201901928616461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=5467201901928616461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/5467201901928616461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/5467201901928616461'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2010/08/hello-world-for-erasme-plsql-json.html' title='hello world for erasme pl/sql-json package'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-32214485910952179</id><published>2010-08-25T01:31:00.000-07:00</published><updated>2010-08-25T01:31:14.335-07:00</updated><title type='text'>Six Keys to Being Excellent at Anything - Tony Schwartz - The Conversation - Harvard Business Review</title><content type='html'>&lt;a href="http://blogs.hbr.org/cs/2010/08/six_keys_to.html"&gt;Six Keys to Being Excellent at Anything - Tony Schwartz - The Conversation - Harvard Business Review&lt;/a&gt;:
  &lt;ol&gt;&lt;li&gt;&lt;strong&gt;Pursue what you love.&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Do the hardest work first&lt;/strong&gt;.&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;strong&gt;Practice intensely&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Seek expert feedback, in intermittent doses&lt;/strong&gt;.&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;strong&gt;Take regular renewal breaks&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Ritualize practice&lt;/strong&gt;.
&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-32214485910952179?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogs.hbr.org/cs/2010/08/six_keys_to.html' title='Six Keys to Being Excellent at Anything - Tony Schwartz - The Conversation - Harvard Business Review'/><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/32214485910952179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=32214485910952179' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/32214485910952179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/32214485910952179'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2010/08/six-keys-to-being-excellent-at-anything.html' title='Six Keys to Being Excellent at Anything - Tony Schwartz - The Conversation - Harvard Business Review'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-8449357293940467533</id><published>2010-08-25T00:59:00.000-07:00</published><updated>2010-08-25T00:59:25.637-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='dumbness'/><category scheme='http://www.blogger.com/atom/ns#' term='validation'/><title type='text'>Edna at Singapore Speedpost, please email me!</title><content type='html'>&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ugh... I've got a shipment of stuff coming via Speedpost from Singapore, and I can't sign up for email shipment notifications because their main page explicitly rejects my email address.&lt;br /&gt;
&lt;br /&gt;
Interestingly, the guilty party (Edna) put in a comment taking the blame for the situation.&amp;nbsp; It seems she's never come across a two-letter login name!&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.speedpost.com.sg/"&gt;http://www.speedpost.com.sg&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre id="line1"&gt;&lt;!-- by Edna 20 JUL 2009 --&gt;
&lt;!-- Validate email address. --&gt;
function isEmail(Mail) {
 Mail=Mail.toLowerCase();
 return (Mail.search(/^([a-z]+)([a-z0-9\-\_\.]{1,100})([a-z0-9]+)\@([a-z0-9]+)([a-z0-9\-\.]*)([a-z0-9]+)\.([a-z]{2,6})$/) != -1);
}
function checkEmail() {

 var eml = document.onlineform.txtEmail.value;
 if (isEmail(eml)) {
  document.onlineform.action='speedpost_services_track_check.asp';
  document.onlineform.submit();
 }
 else
 {
  alert("Invalid email address. Pls re-enter.");
 }

}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-8449357293940467533?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/8449357293940467533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=8449357293940467533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/8449357293940467533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/8449357293940467533'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2010/08/edna-at-singapore-speedpost-please.html' title='Edna at Singapore Speedpost, please email me!'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-7328702843867580301</id><published>2009-08-22T02:47:00.000-07:00</published><updated>2009-08-22T02:47:08.828-07:00</updated><title type='text'>Unreality - An Awesome Collection of Star Trek Bloopers |</title><content type='html'>&lt;a href="http://unrealitymag.com/index.php/2009/07/03/an-awesome-collection-of-star-trek-bloopers/"&gt;Unreality - An Awesome Collection of Star Trek Bloopers |&lt;/a&gt;: "Call me crazy but there’s something awfully funny about a Vulcan that all of a sudden starts laughing and cursing because he forgot his line.  I’m a huge fan of bloopers.  Nothing’s better than when you see how “human” someone truly is.  And no time is more human than screwing up in the middle of a scene and laughing your ass off."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-7328702843867580301?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://unrealitymag.com/index.php/2009/07/03/an-awesome-collection-of-star-trek-bloopers/' title='Unreality - An Awesome Collection of Star Trek Bloopers |'/><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/7328702843867580301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=7328702843867580301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/7328702843867580301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/7328702843867580301'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2009/08/unreality-awesome-collection-of-star.html' title='Unreality - An Awesome Collection of Star Trek Bloopers |'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-7624412929235523391</id><published>2009-08-21T23:08:00.001-07:00</published><updated>2009-08-21T23:08:56.085-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asktom oracle api'/><title type='text'>An AskTom about database APIs</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;small&gt;An interesting note by Tom regarding &lt;a href="http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:25405782527721"&gt;APIs in the database&lt;/a&gt;.
&lt;/small&gt;&lt;blockquote&gt;&lt;small&gt;API's -- all about API's.  The applications don't do table level
stuff, the apps don't even really *know* about tables.

I have a schema.

On top of schema we have an API that does the data stuff.
In the application we call this API but have our own application
logic as well (only application logic is in the application, data
logic is -- well, right where it belongs -- next to the data, waiting
for the 'next great programming paradigm to come along')
[...]
Applications -- a dime a dozen. They come, they go, they have
programming paradigm of the week.

Data -- priceless. Most of it has been here for a long long long
time.  Most all of it will be here after we are dead.
&lt;/small&gt;&lt;/blockquote&gt;

&lt;div class="zemanta-pixie"&gt;&lt;img src="http://img.zemanta.com/pixy.gif?x-id=1e1905e4-bc1b-8811-b112-839c0c596335" alt="" class="zemanta-pixie-img" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-7624412929235523391?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/7624412929235523391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=7624412929235523391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/7624412929235523391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/7624412929235523391'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2009/08/asktom-about-database-apis.html' title='An AskTom about database APIs'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-680317737599208734</id><published>2009-08-09T21:37:00.000-07:00</published><updated>2009-08-09T21:37:17.726-07:00</updated><title type='text'>Computer Eyeglass Lenses</title><content type='html'>&lt;a href="http://www.eyeglasslensdirect.com/Computer-Lenses-s/6.htm"&gt;Computer Eyeglass Lenses&lt;/a&gt;: "Computer No-Line Lenses are an occupational progressive lens, a no-line multifocal that corrects near, intermediate and, to a degree, distance vision. It has a larger intermediate zone than regular progressive lenses, leaving less space for distance. Computer eyeglass lenses are generally not suitable for driving or regular wear."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-680317737599208734?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.eyeglasslensdirect.com/Computer-Lenses-s/6.htm' title='Computer Eyeglass Lenses'/><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/680317737599208734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=680317737599208734' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/680317737599208734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/680317737599208734'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2009/08/computer-eyeglass-lenses.html' title='Computer Eyeglass Lenses'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-5207571792794988014</id><published>2009-08-08T20:27:00.000-07:00</published><updated>2009-08-08T20:27:20.304-07:00</updated><title type='text'>What does "flatdown" mean?</title><content type='html'>It's reference in the &lt;a href="http://www.opml.org/spec"&gt;OPML spec&lt;/a&gt;.

&lt;a href="http://www.opml.org/stories/storyReader$5199"&gt;Here&lt;/a&gt;'s an explanation:

&lt;blockquote&gt;First, flatdown, in UserLand's outliner terminology, is a direction. The complete list of directions is: up, down, left, right, flatup, flatdown and nodirection. They are used as parameters to the op.xxx verbs which take a direction as a parameter.

 The first four are structured directions. Going up from an outline element takes you to its previous sibling, down takes you to the next sibling. Left takes you to the parent, right takes you to the first child.

 The flat directions, flatup and flatdown view the outline as a linear sequence, not structured. Imagine the outline displayed on a screen. To go flatup you'd go to the outline element displayed immediately before, to go flatdown you'd go to the outline element displayed immediately after.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-5207571792794988014?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.opml.org/stories/storyReader$5199' title='What does &quot;flatdown&quot; mean?'/><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/5207571792794988014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=5207571792794988014' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/5207571792794988014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/5207571792794988014'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2009/08/what-does-flatdown-mean.html' title='What does &quot;flatdown&quot; mean?'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-9046337582698928711</id><published>2009-08-08T13:07:00.000-07:00</published><updated>2009-08-08T13:07:08.941-07:00</updated><title type='text'>How long is it going to take?</title><content type='html'>&lt;a href="http://www.cznp.com/6to8weeks/index.php"&gt;How long is it going to take?&lt;/a&gt;: "How long is it going to take?"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-9046337582698928711?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.cznp.com/6to8weeks/index.php' title='How long is it going to take?'/><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/9046337582698928711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=9046337582698928711' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/9046337582698928711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/9046337582698928711'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2009/08/how-long-is-it-going-to-take.html' title='How long is it going to take?'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-949304962131504019</id><published>2009-08-06T15:13:00.000-07:00</published><updated>2009-08-06T15:21:21.742-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinion'/><title type='text'>Note to a Software Vendor, regarding Document Managment Integration</title><content type='html'>Hi ----,

Thanks for getting back so soon.  I hope you can look at this issue over your entire product line.  Here's the situation as I see it.

Ancient Times:

&lt;ul&gt;&lt;li&gt;I had "my" computer, "my" files, I managed everything myself.  It was all about me, Me, ME!  If you wanted a file, I would mail it to you or copy it to a network share.&lt;/li&gt;&lt;/ul&gt;

Modern Times:

&lt;ul&gt;&lt;li&gt;&lt;blockquote&gt;&lt;/blockquote&gt;I have at least two computers, a desktop and a laptop.  My files are under revision control and stored in a central repository.  I sync files to my local box and work on them.  Sometimes I work on the same file on two boxes -- my desktop coz it has a big screen, and my laptop coz I can take it to meetings.  If you want a file, I can just tell you where it is on the central server and you can access it at your leisure.  And good news for you, I have two copies each of [your product].&lt;/li&gt;&lt;/ul&gt;
Most existing software works well in the first case.  Software that works in the second case will, IMHO, start to replace software that does not, even if the other software is better in most other regards.

As an example, we've installed [a web-based package] on our wiki.  Butt ugly and limited, but certainly matching the modern time requirements and very "friction free" with regards to sharing files.

Of course, it's hard for any local app to beat a web app in the sharing arena, but I hope that all your  products become "so close" that there's no temptation for people to switch.

As a practical thing, here's what I would love to see for all your products.

&lt;ul&gt;&lt;li&gt;easy to check in / check out in revision control system.&lt;/li&gt;&lt;/ul&gt;    This means either

&lt;ul&gt;&lt;li&gt;       - making documents into single files&lt;/li&gt;&lt;li&gt;       - adding support for various revision systems&lt;/li&gt;&lt;li&gt;       - adding hooks so revision system plugins can be created&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt;easy multi-machine usage.&lt;/li&gt;&lt;/ul&gt;
   This is a big deal for something like [the project tracker package].  I'm sad to say I've got two copies but I stopped using it, because I would leave it running on my desktop, and then I couldn't run it on my laptop at home.  Or I would add some action items in a meeting on my laptop, close the lid, and at my desktop, not have them show up.

For programs like this, you should look at how IMAP email works.  It is very convenient, I have my desktop mail open, my laptop mail open, my PDA mail open, and no matter what I do they all just magically stay in sync.

Anyways, all IMHO, of course, and I hope this is useful feedback to you.

Regards,
Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-949304962131504019?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/949304962131504019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=949304962131504019' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/949304962131504019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/949304962131504019'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2009/08/note-to-software-vendor-regarding.html' title='Note to a Software Vendor, regarding Document Managment Integration'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-7764951615739487868</id><published>2009-03-13T21:47:00.000-07:00</published><updated>2009-03-13T21:47:33.386-07:00</updated><title type='text'>Self-Education Resource List</title><content type='html'>&lt;a href="http://selfmadescholar.com/b/self-education-resource-list/"&gt;Self-Education Resource List&lt;/a&gt;: "The internet is an invaluable resource to self-educated learners. Below is a list of some of the most helpful sites out there including opencourseware materials, free libraries, learning communities, educational tools, and more."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-7764951615739487868?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://selfmadescholar.com/b/self-education-resource-list/' title='Self-Education Resource List'/><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/7764951615739487868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=7764951615739487868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/7764951615739487868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/7764951615739487868'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2009/03/self-education-resource-list.html' title='Self-Education Resource List'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-5219995061786938995</id><published>2009-03-12T00:30:00.000-07:00</published><updated>2009-03-12T00:30:46.256-07:00</updated><title type='text'>Java Stored Procedure in Oracle, Database Interaction</title><content type='html'>&lt;a href="http://www.devarticles.com/c/a/Java/Java-Stored-Procedure-in-Oracle-Database-Interaction/"&gt;Java Stored Procedure in Oracle, Database Interaction&lt;/a&gt;:
"Table of Contents:
# Java Stored Procedure in Oracle, Database Interaction
# A Simple Java Class
# Getting Java Classes into Oracle Database
# How to make Classes available to Oracle
# How to execute the Java Stored Procedures"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-5219995061786938995?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.devarticles.com/c/a/Java/Java-Stored-Procedure-in-Oracle-Database-Interaction/' title='Java Stored Procedure in Oracle, Database Interaction'/><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/5219995061786938995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=5219995061786938995' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/5219995061786938995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/5219995061786938995'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2009/03/java-stored-procedure-in-oracle.html' title='Java Stored Procedure in Oracle, Database Interaction'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-8033500997744122269</id><published>2009-03-11T09:18:00.000-07:00</published><updated>2009-03-11T09:18:10.332-07:00</updated><title type='text'>How to Get Bruce Lee Like Strength Without Ever Going to a Gym | Zen Habits</title><content type='html'>&lt;a href="http://zenhabits.net/2009/03/how-to-get-bruce-lee-like-strength-without-ever-going-to-a-gym/"&gt;How to Get Bruce Lee Like Strength Without Ever Going to a Gym | Zen Habits&lt;/a&gt;: "Here’s just a few of the ways you can start getting stronger, faster and more toned without ever stepping into a gym:"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-8033500997744122269?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://zenhabits.net/2009/03/how-to-get-bruce-lee-like-strength-without-ever-going-to-a-gym/' title='How to Get Bruce Lee Like Strength Without Ever Going to a Gym | Zen Habits'/><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/8033500997744122269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=8033500997744122269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/8033500997744122269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/8033500997744122269'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2009/03/how-to-get-bruce-lee-like-strength.html' title='How to Get Bruce Lee Like Strength Without Ever Going to a Gym | Zen Habits'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-8295233325261563705</id><published>2009-03-10T23:22:00.000-07:00</published><updated>2009-03-11T08:12:30.638-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sqldeveloper oracle bug'/><title type='text'>sql developer filter entry bug</title><content type='html'>Here's a bug with the filter entry field in sql developer.

&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-d267efa89d57d587" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;
&lt;param name="bgcolor" value="#FFFFFF"&gt;
&lt;param name="allowfullscreen" value="true"&gt;
&lt;param name="flashvars" value="flvurl=http://v7.nonxt8.googlevideo.com/videoplayback?id%3Dd267efa89d57d587%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330367328%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D76F98DE2E0C9095250F415C1DAC37EA35423591F.28B3305F4A9E0123C81DF6ABA5B63061F95CDB34%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dd267efa89d57d587%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dp1HOOBq7_G4N0B3nKy_psJ3LPZ8&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;
&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"
width="320" height="266" bgcolor="#FFFFFF"
flashvars="flvurl=http://v7.nonxt8.googlevideo.com/videoplayback?id%3Dd267efa89d57d587%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330367328%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D76F98DE2E0C9095250F415C1DAC37EA35423591F.28B3305F4A9E0123C81DF6ABA5B63061F95CDB34%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dd267efa89d57d587%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dp1HOOBq7_G4N0B3nKy_psJ3LPZ8&amp;autoplay=0&amp;ps=blogger"
allowFullScreen="true" /&gt;&lt;/object&gt;



1.  enter a filter which gets saved.  In this case,
        owner='joshm'

2.  now clear the filter field.

3.  type 'o'.  "owner='joshm'" pops up as a completion. the typed 'o'
   is highlighted.

5.  type another character, for example 'x'.  the 'o' is erased because
   it is highlighted.

6.  once in this mode it becomes nearly impossible to type, since
   each character erases the previous.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-8295233325261563705?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=d267efa89d57d587&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/8295233325261563705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=8295233325261563705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/8295233325261563705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/8295233325261563705'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2009/03/sql-developer-filter-entry-bug.html' title='sql developer filter entry bug'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-365557572030108658</id><published>2007-05-30T23:02:00.000-07:00</published><updated>2007-05-30T23:02:38.636-07:00</updated><title type='text'>Making Fizzy Fruit</title><content type='html'>&lt;a href="http://www.fizzyfruit.com/school02.htm"&gt;Making Fizzy Fruit&lt;/a&gt;: "For Fizzy Fruit roll-out in schools, the following
fresh whole and sliced fruit are recommended:

      Apples, Fuji, Gala, Pink Lady and Red Delicious
      (sliced and treated for browning)

      Cantaloupe

      Grapes, Red Flame Seedless

      Mangoes

      Nectarines

      Oranges, Mandarin and Navel

      Pears, Asian and Bartlett

      Pineapple Spears

      Plums, Red and Black
     
      Strawberries

      Tangerines, Clementine

      Watermelon"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-365557572030108658?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.fizzyfruit.com/school02.htm' title='Making Fizzy Fruit'/><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/365557572030108658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=365557572030108658' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/365557572030108658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/365557572030108658'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2007/05/making-fizzy-fruit.html' title='Making Fizzy Fruit'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-7246979590631210443</id><published>2007-05-29T21:53:00.001-07:00</published><updated>2007-05-29T22:06:48.535-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>using dbms_application_info</title><content type='html'>&lt;pre&gt;
exec DBMS_APPLICATION_INFO.SET_MODULE( NULL,NULL );
exec DBMS_APPLICATION_INFO.SET_MODULE('my module', 'my action');
exec DBMS_APPLICATION_INFO.SET_ACTION('my action 2');
exec DBMS_APPLICATION_INFO.SET_CLIENT_INFO('my client info');

-- exec DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS(rindex, slno,
--      'Test Operation', obj, 0, sofar, totalwork, 'Contract', 'Contracts');

select sid,program,module,action,client_info from v$session where username='MH'; 
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-7246979590631210443?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.psoug.org/reference/dbms_applic_info.html' title='using dbms_application_info'/><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/7246979590631210443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=7246979590631210443' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/7246979590631210443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/7246979590631210443'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2007/05/dbmsapplicationinfo.html' title='using dbms_application_info'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-5653190287266559138</id><published>2007-05-24T23:30:00.000-07:00</published><updated>2007-05-24T23:30:42.106-07:00</updated><title type='text'>'Star Wars' at 30: Still a geek's paradise</title><content type='html'>&lt;a href="http://www.startribune.com/1553/story/1192663.html"&gt;'Star Wars' at 30: Still a geek's paradise&lt;/a&gt;: "Friday marks the anniversary of the 1977 movie that made it cool to be a sci-fi dork."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-5653190287266559138?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.startribune.com/1553/story/1192663.html' title='&apos;Star Wars&apos; at 30: Still a geek&apos;s paradise'/><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/5653190287266559138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=5653190287266559138' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/5653190287266559138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/5653190287266559138'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2007/05/star-wars-at-30-still-geeks-paradise.html' title='&apos;Star Wars&apos; at 30: Still a geek&apos;s paradise'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-6166387146208478974</id><published>2007-05-24T21:18:00.000-07:00</published><updated>2007-05-24T21:18:49.683-07:00</updated><title type='text'>FARK.com: (2823158) LOLPRESIDENT!!!1 Add your own in thread (with voting - link goes to samples)</title><content type='html'>&lt;a href="http://forums.fark.com/cgi/fark/comments.pl?IDLink=2823158&amp;thread_type=voteresults&amp;amp;ok=1"&gt;FARK.com: (2823158) LOLPRESIDENT!!!1 Add your own in thread (with voting - link goes to samples)&lt;/a&gt;: "LOLPRESIDENT!!!1 Add your own in thread (with voting - link goes to samples)"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-6166387146208478974?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://forums.fark.com/cgi/fark/comments.pl?IDLink=2823158&amp;thread_type=voteresults&amp;ok=1' title='FARK.com: (2823158) LOLPRESIDENT!!!1 Add your own in thread (with voting - link goes to samples)'/><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/6166387146208478974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=6166387146208478974' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/6166387146208478974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/6166387146208478974'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2007/05/farkcom-2823158-lolpresident1-add-your.html' title='FARK.com: (2823158) LOLPRESIDENT!!!1 Add your own in thread (with voting - link goes to samples)'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-7941278735883804930</id><published>2007-05-23T00:15:00.000-07:00</published><updated>2007-05-23T00:15:35.771-07:00</updated><title type='text'>Marginal Revolution</title><content type='html'>&lt;a href="http://www.marginalrevolution.com/"&gt;Marginal Revolution&lt;/a&gt;:
"How to debate with one's wife

   Even if I can debate with the devil himself, I cannot debate with my wife.  She has, namely, only one syllogism, or rather none at all...The consequence of this is that all my skill in debating becomes a luxury item for which there is no demand at all in my domestic life.  If I, the experienced dialectician, fairly well exemplify this course of justice, which according to the poet's dictum is so very long, my wife is like the royal Danish chancery, kurz and b�ndig [short and to the point], except that she is very different from that august body in being very lovable.

That is again Kierkegaard, from Prefaces."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-7941278735883804930?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.marginalrevolution.com/' title='Marginal Revolution'/><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/7941278735883804930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=7941278735883804930' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/7941278735883804930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/7941278735883804930'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2007/05/marginal-revolution.html' title='Marginal Revolution'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-8768054333992108767</id><published>2007-05-22T16:21:00.000-07:00</published><updated>2007-05-22T16:21:02.753-07:00</updated><title type='text'>Oracle/PLSQL: Oracle System Tables</title><content type='html'>&lt;a href="http://www.techonthenet.com/oracle/sys_tables/index.php"&gt;Oracle/PLSQL: Oracle System Tables&lt;/a&gt;: "an alphabetical listing of the Oracle system tables that are commonly used."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-8768054333992108767?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.techonthenet.com/oracle/sys_tables/index.php' title='Oracle/PLSQL: Oracle System Tables'/><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/8768054333992108767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=8768054333992108767' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/8768054333992108767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/8768054333992108767'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2007/05/oracleplsql-oracle-system-tables.html' title='Oracle/PLSQL: Oracle System Tables'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-4121445278175966681</id><published>2007-05-22T16:19:00.000-07:00</published><updated>2007-05-22T16:19:34.243-07:00</updated><title type='text'>Desc - Describe an Oracle Table, View, Synonym, package or Function</title><content type='html'>&lt;a href="http://www.ss64.com/ora/desc.html"&gt;Desc - Describe an Oracle Table, View, Synonym, package or Function&lt;/a&gt;:

"An alternative to the DESC command is selecting directly from the data dictionary -

DESC MY_TABLE

is equivalent to

SELECT
column_name 'Name',
nullable 'Null?',
concat(concat(concat(data_type,'('),data_length),')') 'Type'
FROM user_tab_columns
WHERE table_name='TABLE_NAME_TO_DESCRIBE';"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-4121445278175966681?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.ss64.com/ora/desc.html' title='Desc - Describe an Oracle Table, View, Synonym, package or Function'/><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/4121445278175966681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=4121445278175966681' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/4121445278175966681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/4121445278175966681'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2007/05/desc-describe-oracle-table-view-synonym.html' title='Desc - Describe an Oracle Table, View, Synonym, package or Function'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-405266649919933431</id><published>2007-02-13T21:02:00.000-08:00</published><updated>2007-02-14T00:40:25.825-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xml-rpc'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>python xml-rpc, supporting 64-bit ints</title><content type='html'>xml-rpc is nice, but brain-dead in that it doesn't support 64-bit integers. There are a couple of extensions to the xml-rpc standard that suggest a new tag for this. If you're using the python xml-rpc library and wish to have 64-bit int support, you can comment out the two lines below in xmlrpclib.py:
&lt;blockquote&gt;
&lt;pre&gt;
def dump_long(self, value, write):
    #if value &gt; MAXINT or value &lt;&gt;
    # raise OverflowError, "long int exceeds XML-RPC limits"
    write("")
    write(str(int(value)))
    write("\n")
    dispatch[LongType] = dump_long
&lt;/pre&gt;
&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-405266649919933431?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/405266649919933431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=405266649919933431' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/405266649919933431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/405266649919933431'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2007/02/python-xml-rpc-supporting-64-bit-ints.html' title='python xml-rpc, supporting 64-bit ints'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-7541403481379451844</id><published>2007-01-31T14:20:00.001-08:00</published><updated>2007-02-14T00:28:11.449-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='support'/><category scheme='http://www.blogger.com/atom/ns#' term='perforce'/><title type='text'>Does p4d care about depot file permissions? No.</title><content type='html'>Does p4d on linux care about the file permissions in the depot?
Specifically, if the permissions are set from 644 to 755 will p4d still operate properly?
&lt;p&gt;
Perforce responds:
&lt;blockquote&gt;
Having the executable bit set on depot files won't affect p4d. However make sure the Linux user starting p4d has write permission on depot directories/files.
&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-7541403481379451844?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/7541403481379451844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=7541403481379451844' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/7541403481379451844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/7541403481379451844'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2007/01/does-p4d-on-linux-care-about-file.html' title='Does p4d care about depot file permissions? No.'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-1353326359930835678</id><published>2007-01-13T21:54:00.000-08:00</published><updated>2007-02-14T01:20:44.372-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Tracing an Oracle session in 10g</title><content type='html'>Setting permissions:
&lt;blockquote&gt;
&lt;pre&gt;
GRANT EXECUTE ON SYS.dbms_monitor TO username; 
&lt;/pre&gt;
&lt;/blockquote&gt;
Turn the trace on and off:
&lt;blockquote&gt;
&lt;pre&gt;
EXECUTE dbms_monitor.session_trace_enable
    (session_id=&gt;NULL, serial_num=&gt;NULL, waits=&gt;TRUE, binds=&gt;TRUE);
EXECUTE dbms_monitor.session_trace_disable
    (session_id=&gt;NULL, serial_num=&gt;NULL); 
&lt;/pre&gt;
&lt;/blockquote&gt;
Older versions of Oracle:
&lt;blockquote&gt;
&lt;pre&gt;
alter session set timed_statistics=true;
alter session set max_dump_file_size=unlimited;
alter session set tracefile_identifier='Hello';
alter session set events '10046 trace name context forever, level 12'; 
&lt;/pre&gt;
&lt;/blockquote&gt;
Look at the results with tkprof. The "aggregate" flag is especially useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-1353326359930835678?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/1353326359930835678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=1353326359930835678' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/1353326359930835678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/1353326359930835678'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2007/02/tracing-oracle-session-in-10g.html' title='Tracing an Oracle session in 10g'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-8151022821028387549</id><published>2006-10-04T20:23:00.000-07:00</published><updated>2007-02-14T00:31:28.754-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><title type='text'>LD_DEBUG: debugging ld.so on linux</title><content type='html'>David Baraff told me about this awesome way to see what ld.so is doing on linux.
&lt;pre&gt;
    $ LD_DEBUG=help /bin/cat
    Valid options for the LD_DEBUG environment variable are:

    libs display library search paths
    reloc display relocation processing
    files display progress for input file
    symbols display symbol table processing
    bindings display information about symbol binding
    versions display version dependencies
    all all previous options combined
    statistics display relocation statistics
    unused determined unused DSOs
    help display this help message and exit

    To direct the debugging output into a file instead of standard output
    a filename can be specified using the LD_DEBUG_OUTPUT environment variable.
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-8151022821028387549?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/8151022821028387549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=8151022821028387549' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/8151022821028387549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/8151022821028387549'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2007/02/fwd-binding-symbols.html' title='LD_DEBUG: debugging ld.so on linux'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-5123151057224560808</id><published>2006-06-13T21:13:00.000-07:00</published><updated>2011-09-28T15:32:16.922-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='history'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><title type='text'>John Backus on debugging</title><content type='html'>John Backus describes debugging, circa 1957:
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/_W0DrtXlTPb4/RdKbCToaHtI/AAAAAAAAAAU/2jzJEGpI4Es/s1600-h/backus-debug.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5031254197658066642" src="http://4.bp.blogspot.com/_W0DrtXlTPb4/RdKbCToaHtI/AAAAAAAAAAU/2jzJEGpI4Es/s400/backus-debug.png" style="float: left; margin-bottom: 10px; margin-left: 0pt; margin-right: 10px; margin-top: 0pt;" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-5123151057224560808?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/5123151057224560808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=5123151057224560808' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/5123151057224560808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/5123151057224560808'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2007/02/john-backus-on-debugging.html' title='John Backus on debugging'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_W0DrtXlTPb4/RdKbCToaHtI/AAAAAAAAAAU/2jzJEGpI4Es/s72-c/backus-debug.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-3024699514065844837</id><published>2006-06-07T20:25:00.000-07:00</published><updated>2007-02-14T01:23:10.780-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><title type='text'>Stopping in a C++ function called via Python</title><content type='html'>How do i tell totalview to stop at a line number in a particular file?
This is a C++ function in a SO which is being loaded as part of a python import.
&lt;p&gt;
Leaf Nunes has the most awesome answer:
&lt;blockquote&gt;I
'm not sure how you tell totalview via totalview, but you can tell the 
C++ to stop at a line by adding:
&lt;pre&gt;
asm("int $3");
&lt;/pre&gt;
This is the only way i've seen to pre-set a breakpoint in C code
referenced by a python binary running under totalview.

Once it's stopped, you should be able to look around all the libraries
the python binary has loaded and set breakpoints as you desire.
&lt;/blockquote&gt;
Arun Rao:
&lt;blockquote&gt;
If you run the python program until it finishes, then you can set the breakpoint because the library will have been loaded, and restart the process.
&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-3024699514065844837?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/3024699514065844837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=3024699514065844837' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/3024699514065844837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/3024699514065844837'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2007/02/fwd-re-totalview-q.html' title='Stopping in a C++ function called via Python'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-8338191991447453136</id><published>2006-06-07T20:21:00.000-07:00</published><updated>2007-02-14T01:24:11.802-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><title type='text'>Introspecting python variables (to print a debug message)</title><content type='html'>I asked about introspecting python variables. I was looking for something similar to Tcl's upvar command. I received a couple of good responses.  I didn't ever end up using them for debugging, but I sure learned a lot more about Python introspection than I knew previously.
&lt;p&gt;
Alex Mohr:
&lt;blockquote&gt;We have to remember that an arbitrary number of variables, all with different names, can refer to the same object.  For example,
&lt;pre&gt;
foo = 'something'bar = foo
&lt;/pre&gt;
Now suppose I say, printvars('message', bar).  The printvars function will get a reference to the 'something' string, but it doesn't know that the name of the reference I called you with was 'bar' rather than 'foo'.

This function will take your argument, and look through globals() and find all the names that refer to that object, and then print those out, but this is almost certainly slow, fragile and useless:
&lt;pre&gt;
def printvars(msg, *args):
    print msg, ':',
    for arg in args:
        matches = []
        for name, val in globals().items():
            if arg is val:
                matches.append(name)
        for match in matches:            print match+',',
        print '=', repr(arg)+';',
    print ''
&lt;/pre&gt;
If I use this as with my hypothetical example above, it produces this output:
&lt;pre&gt;
&gt;&gt;&gt; printvars('message', bar)
message : bar, foo, = 'something'&amp;nbsp;
&lt;/pre&gt;
&lt;/blockquote&gt;
Erick Tryzelaar:
&lt;blockquote&gt;
This is doable with scary python black magic:
&lt;pre&gt;
import sys
def foo(msg, *args):
   caller = sys._getframe(1)
   print msg, ' '.join(['%s=%s' % (x, caller.f_locals[x]) for x in args])
x = 5
y = 6
foo('hello', 'x', 'y')
hello x=5 y=6
&lt;/pre&gt;
&lt;/blockquote&gt;

Lars Damerow:
&lt;blockquote&gt;
I agree with Erick and Alex here -- you can't get away from passing the variable
names in as strings, since Python just considers variable names to be string
keys for the local and global scope dictionaries.

I also second Erick's opinion that using sys._getframe is not a good idea.

It may look redundant, but the simplest and most bulletproof approach is
probably something like this:
&lt;pre&gt;
def printvars(msg, *args):
    print msg, ' '.join(['%s=%s' % (x, v) for (x, v) in args])
&gt;&gt;&gt; x = 1
&gt;&gt;&gt; y = 2
&gt;&gt;&gt; printvars("hello", ("x", x), ("y", y))
hello x=1 y=2
&lt;/pre&gt;
We could make that a lot cleaner if Python had macros, but it doesn't. If we
knew that all of the desired variables are in the same dictionary (which
includes locals() and globals()), we could obviously clean up the calls like
this:
&lt;pre&gt;
def printvars(msg, scope, *args):
    print msg, ' '.join(['%s=%s' % (x, scope[x]) for x in args])
&gt;&gt;&gt; x = 1
&gt;&gt;&gt; y = 2
&gt;&gt;&gt; printvars("hello", locals(), "x", "y")
hello x=1 y=2
&lt;/pre&gt;
&lt;/blockquote&gt;

Jim Atkinson:
&lt;blockquote&gt;
Although you cannot avoid giving the name as well as the value for the variable. You can use keyword syntax to pass them and avoid having to type quotes around the name.
&lt;pre&gt;
def printvars(msg, **kw):
    print msg,
    keys = kw.keys()
    keys.sort()
    for key in keys:
    print "%s=%r", (key, kw[key])
    print

x = 1 
y = 2 
printvars ("hello", x=x, y=y)
hello x=1 y=2 
&lt;/pre&gt;
The only downside is that you cannot control the order of the variables, it is always alphabetical.
&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-8338191991447453136?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/8338191991447453136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=8338191991447453136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/8338191991447453136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/8338191991447453136'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2007/02/fwd-re-introspecting-variables-to-print.html' title='Introspecting python variables (to print a debug message)'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-5082330249928189450</id><published>2006-05-31T20:19:00.000-07:00</published><updated>2007-02-13T23:28:44.698-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='omnigraffle'/><title type='text'>Prevent omnigraffle from writing bundles</title><content type='html'>Sometimes omnigraffle will rewrite a file into a bundle.  It can be configured not to do this:&lt;pre&gt;defaults write com.omnigroup.OmniGraffle PrivateGraffleFlatFile 0
defaults write com.omnigroup.OmniGrafflePro PrivateGraffleFlatFile 0
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-5082330249928189450?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/5082330249928189450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=5082330249928189450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/5082330249928189450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/5082330249928189450'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2007/02/fwd-re-prevent-omnigraffle-from-writing.html' title='Prevent omnigraffle from writing bundles'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-7445833799720830968</id><published>2006-04-27T00:59:00.000-07:00</published><updated>2007-02-14T01:03:03.766-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'></title><content type='html'>I had a query that needed to compare two columns in a row andwas making two queries to do so.  All hail the row-wise comparison!
&lt;BLOCKQUOTE&gt;
&lt;PRE&gt;
select id from p4_versions
where (versionof, version) = (select id, headver from p4_files
      where p4path like '%/date.txt');
&lt;/PRE&gt;
&lt;/BLOCKQUOTE&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-7445833799720830968?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/7445833799720830968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=7445833799720830968' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/7445833799720830968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/7445833799720830968'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2007/02/i-had-query-that-needed-to-compare-two.html' title=''/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-2473063354651611689</id><published>2006-03-29T19:35:00.000-08:00</published><updated>2007-02-13T21:32:22.152-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>How to Create a REST Protocol</title><content type='html'>&lt;a href="http://www.xml.com/pub/a/2004/12/01/restful-web.html"&gt;How to Create a REST Protocol&lt;/a&gt;:

"REST is an architectural style that can be used to guide the construction of web services. Recently, there have been attempts to create such services that have met with mixed success. This article outlines a series of steps you can follow in creating your protocol--guidance that will help you get all the benefits that REST has to offer, while avoiding common pitfalls."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-2473063354651611689?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.xml.com/pub/a/2004/12/01/restful-web.html' title='How to Create a REST Protocol'/><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/2473063354651611689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=2473063354651611689' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/2473063354651611689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/2473063354651611689'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2007/02/how-to-create-rest-protocol.html' title='How to Create a REST Protocol'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-7770851403068289973</id><published>2006-02-28T19:23:00.000-08:00</published><updated>2007-02-13T23:24:27.162-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='exemplar'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Python: how to tell if a class variable exists?</title><content type='html'>I have a debugging dump methodin which I would like to do something like:
&lt;PRE&gt;
    if self.foo exists:
        print foo
&lt;/PRE&gt;
Here are some of the responses I received from my coworkers:
&lt;PRE&gt;
    try:
        print self.foo
    except AttributeError:
        print "self.foo doesn't exist."

    if self.__dict__.has_key("foo"):

    foo = getattr(self, 'foo', None)

    if hasattr(self, 'foo'):

    # for class variables
    if hasattr(self.__class__, 'foo'):
&lt;/PRE&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-7770851403068289973?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/7770851403068289973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=7770851403068289973' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/7770851403068289973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/7770851403068289973'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2007/02/python-how-to-tell-if-class-variable.html' title='Python: how to tell if a class variable exists?'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8291279233667722324.post-6288943466106772650</id><published>2005-10-24T21:42:00.000-07:00</published><updated>2007-02-14T01:21:50.906-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cx_oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='exemplar'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Python: retrieving the oracle error code</title><content type='html'>Anthony Tuininga gave me this hint on retrieving the Oracle error code from a cx_python program:
&lt;blockquote&gt;
&lt;pre&gt;
try:
    cursor.execute("select 1 / 0 from dual")
except cx_Oracle.DatabaseError, e:
    print "Exception:", e    # this is what you are looking at right now
    errorObj, = e.args       # this is the actual "error" that cx_Oracle raises
    print "ErrorCode:", errorObj.code
    print "ErrorMessage:", errorObj.message
&lt;/pre&gt;
&lt;/blockquote&gt;
Causing Guido van Rossum to ask
&lt;blockquote&gt;
This is overly subtle.  Why not write
&lt;pre&gt;
    errorObj = e.args[0]
&lt;/pre&gt;
&lt;/blockquote&gt;
and received the response
&lt;blockquote&gt;
No particularly good reason -- it just happens to be a way of
indicating that there should be one and only one entry in the list. An
exception is raised if there is not whereas args[0] does not raise the
exception. Its an open question which is the better code.
&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8291279233667722324-6288943466106772650?l=codehaus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codehaus.blogspot.com/feeds/6288943466106772650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8291279233667722324&amp;postID=6288943466106772650' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/6288943466106772650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8291279233667722324/posts/default/6288943466106772650'/><link rel='alternate' type='text/html' href='http://codehaus.blogspot.com/2007/02/python-retrieving-oracle-error-code.html' title='Python: retrieving the oracle error code'/><author><name>Mark Harrison</name><uri>http://www.blogger.com/profile/15303543607242803764</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
