<?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-2160921736769720124</id><updated>2012-01-20T13:52:23.089-05:00</updated><category term='Python'/><category term='technology'/><category term='Biden'/><category term='Rachel'/><category term='Parenting'/><category term='PL/SQL'/><category term='Awesome'/><category term='Absolutely'/><category term='Backpacking'/><category term='Windows'/><category term='Programming'/><category term='Zeke'/><category term='OpenStreetMap'/><category term='Job'/><category term='Saint Marks'/><category term='Environment'/><category term='Arianna'/><category term='Web Comic'/><category term='Chrome'/><category term='family'/><category term='internet'/><category term='Food'/><category term='Safari'/><category term='Athena'/><category term='Obama'/><category term='गमेस'/><category term='rant'/><category term='School'/><category term='Walking'/><category term='माफिया'/><category term='Wedding'/><category term='Cooking'/><category term='Video Games'/><category term='Holiday'/><category term='Music'/><category term='politics'/><category term='Christmas'/><category term='Opera'/><category term='Fort Meyers'/><category term='philosophy'/><category term='OSX'/><category term='Camping'/><category term='XO'/><category term='Aurora'/><category term='Firefox'/><category term='Computers'/><category term='anniversary'/><category term='Ruby'/><category term='Kim'/><category term='Linux'/><category term='religion'/><category term='chromium'/><category term='Internet Explorer'/><category term='ubuntu'/><category term='tea'/><category term='Hiking'/><category term='Books'/><category term='Bicycles'/><title type='text'>Absolutely!</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default?start-index=101&amp;max-results=100'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>275</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-6880552701184304407</id><published>2012-01-10T11:58:00.000-05:00</published><updated>2012-01-10T11:58:15.024-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computers'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Copy and paste from the system clipboard with vim</title><content type='html'>&lt;div style="text-align: justify;"&gt;Often, when using vim, highlighting text in the terminal to copy-and-paste it around is plausible. &amp;nbsp;This is definitely true when on a true terminal. &amp;nbsp;I use the rnu option so that I have relative line numbers on each line. &amp;nbsp;So copying multiple lines with the mouse includes the line number with unwanted indentation. &amp;nbsp;When I need to move code around it is annoying to have to manually remove the numbers.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;To understand how to get vim's clipboard to match your system's you need to understand vim registers. &amp;nbsp;On a computer we usually only get one clipboard. &amp;nbsp;Every time we ctrl-c, the contents of the clipboard are discarded and replaced with whatever is highlighted. &amp;nbsp;We don't have any option to copy multiple objects and then paste them around. &amp;nbsp;However vim has multiple "registers" where can copy text and paste from. &amp;nbsp;To see the registers type :reg from command mode.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The register that we are interested in is register +. &amp;nbsp;To test it out, copy some text from another application then run :reg and see the contents displayed in register +.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;So now we just need to know how to access the contents of register +. &amp;nbsp;Register access is done with ". &amp;nbsp;To paste from they keyboard we type "+p &amp;nbsp;To copy, for example an entire line, into the system clipboard we type "+yy &amp;nbsp;To delete the current line and store it in the system clipboard we type "+dd&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We can also use registers with visual mode. &amp;nbsp;If we wanted to copy the line underneath the cursor we would type V"+y &amp;nbsp;We could copy the next three lines into the system clipboard by typing Vjj"+y&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;To sum it up, to use the system clipboard to copy and paste in vim simply do what you would usually do in vim, then prepend "+ to your y (yank) or p (paste) command.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-6880552701184304407?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/6880552701184304407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2012/01/copy-and-paste-from-system-clipboard.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/6880552701184304407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/6880552701184304407'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2012/01/copy-and-paste-from-system-clipboard.html' title='Copy and paste from the system clipboard with vim'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-6013538582242017920</id><published>2012-01-10T08:00:00.002-05:00</published><updated>2012-01-10T08:00:15.876-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenStreetMap'/><title type='text'>Changing priorities for a bit.</title><content type='html'>I'm going to cease work on beefing up the Tallahassee map and fixing MapDust bug in Florida to start addressing area that the OSM Inspector shows needs to be addressed before the licensing change. &amp;nbsp;Given that this is time sensitive it will be my new effort up until April 1.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-6013538582242017920?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/6013538582242017920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2012/01/changing-priorities-for-bit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/6013538582242017920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/6013538582242017920'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2012/01/changing-priorities-for-bit.html' title='Changing priorities for a bit.'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-791881969680173682</id><published>2011-12-15T22:56:00.000-05:00</published><updated>2011-12-16T13:01:34.251-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenStreetMap'/><title type='text'>Finding duplicate MapDust bugs.</title><content type='html'>&lt;br /&gt;&lt;div style="background-color: white; line-height: 19px; text-align: left;"&gt;&lt;/div&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;One big issue that the MapQuest app seems to have is that it sometimes will report a single button multiple times at the exact same lat/long. Often one of the duplicates will have the description the user entered, if one was entered at all, and the other bugs will have seemingly random Types, with the default text for that type in the bug report.&lt;/div&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;In my effort to squash all reported in Florida, sometimes I just go looking for invalid bugs so that when I'm in the mood to do some real fixing its easier to find actual problems. In that spirit I have whipped up a quick way to find duplicate bugs so that the dupes can easily be marked invalid so that the original can later be individually verified.&lt;/div&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;To find duplicate bugs, first download the latest MySQL database extract from&amp;nbsp;&lt;a href="http://www.mapdust.com/dumps/latest_mapdust.sql.tar.gz" rel="nofollow" style="color: blue; text-decoration: none;"&gt;http://www.mapdust.com/dumps/latest_mapdust.sql.tar.gz&lt;/a&gt;&amp;nbsp;Unzip the database file in the tarball to wherever is convenient for you.&lt;/div&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;Install MySQL on your system and then run the following command:&lt;/div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;CREATE DATABASE mapdust&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: Arial, sans-serif;"&gt;Now edit the database extract and add the following to the first line.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;use mapdust;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;Now, while in the same directory as the extract file run the following command&lt;/div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;mysql -u root -ppassword &amp;lt; latest_mapdust.sql&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;Replace the word password above with your root password, being careful to not put a space between -p and your password.&lt;/div&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;Now we are ready to query our new database for duplicates.&lt;/div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;use mapdust;&lt;br /&gt;SELECT id,&lt;br /&gt;&amp;nbsp; &amp;nbsp; latitude,&lt;br /&gt;&amp;nbsp; &amp;nbsp; longitude,&lt;br /&gt;&amp;nbsp; &amp;nbsp; bug_count&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;FROM&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;select latitude,&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;longitude,&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;count(*) bug_count&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;FROM osmexportbug&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;GROUP BY latitude,&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;longitude&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;) foo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;JOIN osmexportbug&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;USING (latitude, longitude)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;WHERE bug_count &amp;gt; 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;ORDER BY bug_count,&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;id;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;You should now have the bug number and lat/long of the duplicates. The ones that belong together are easy to spot because they are sequentially together. I use the following query to only find duplicates in Florida.&lt;/div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;SELECT id,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;latitude,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;longitude,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;bug_count&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;FROM&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;(&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;select latitude,&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;longitude,&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;count(*) bug_count&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;FROM osmexportbug&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;WHERE administrative_area = 'Florida'&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;GROUP BY latitude,&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;longitude&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;) foo&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;JOIN osmexportbug&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;USING (latitude, longitude)&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;WHERE bug_count &amp;gt; 1&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;ORDER BY bug_count,&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;id;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;After locating a strand of duplicate bugs I go through and mark all but the lowest numbered bug as a duplicate. I use language like the following:&lt;/div&gt;&lt;span style="font-family: Times, 'Times New Roman', serif;"&gt;Duplicate of bug 85064.&lt;br /&gt;&lt;a href="http://www.mapdust.com/detail/85064" rel="nofollow" style="color: blue; text-decoration: none;"&gt;http://www.mapdust.com/detail/85064&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;Later when I come across the original bug, I'll only have the one to verify and squash, not a bunch after it to go through and tediously mark invalid.&lt;/div&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial, sans-serif;"&gt;I hope this helps any other bug squashers out there looking to address the bugs the awesome MapQuest users are out there reporting for us.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-791881969680173682?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/791881969680173682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/12/finding-duplicate-mapdust-bugs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/791881969680173682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/791881969680173682'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/12/finding-duplicate-mapdust-bugs.html' title='Finding duplicate MapDust bugs.'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-1493263413633441613</id><published>2011-12-11T22:24:00.000-05:00</published><updated>2011-12-16T13:03:04.025-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenStreetMap'/><title type='text'>Out of town mapping</title><content type='html'>&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;This weekend I went down to the West Palm Beach area to celebrate my sister-in-laws graduation from FAU. My father-in-law noticed that his son's neighborhood was not completely mapped in either Bing or on Google. Bing is missing some streets, and Google is missing some street names. I pulled up OSM and the situation was even worse. No streets where mapped at all. Apparently this place was only built around two years ago.&lt;/span&gt;&lt;br /&gt;&lt;br style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;" /&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;Like a good OSMer, I began tracing the missing streets using the areal imagery. When I was done with that I downloaded the area into JOSM, loaded the kids into the car, and drove around, marking the names of the streets as we campused the neighborhood. When we got back we uploaded the edit, and now OSM has the only 100% mapping of the area.&lt;/span&gt;&lt;br /&gt;&lt;br style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;" /&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;I mapped some other missing streets, but there is no chance of me getting the chance to visit the areas to get street names, mostly because of time issues, but also, these are gated communities where I wouldn't be allowed in to anyways.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-1493263413633441613?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/1493263413633441613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/12/out-of-town-mapping.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/1493263413633441613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/1493263413633441613'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/12/out-of-town-mapping.html' title='Out of town mapping'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-6879336884171155768</id><published>2011-11-10T23:00:00.001-05:00</published><updated>2011-11-11T16:31:29.270-05:00</updated><title type='text'>Steve Jobs was wrong on Flash</title><content type='html'>With Adobe's recent announcement that they will discontinue supporting Flash on mobile devices, a lot of people are declaring that Jobs was right on Flash.  I say he was wrong and here's why.&lt;br&gt;Before we really start, lets set the record straight about Flash.  Flash allowed web developers to do things that where impossible in HTML.  This was good, but many developers got carried away and created monstrosities, building websites void of HTML and completely annoying to use.  This gave Flash a bad name amongst real web developers who saw it as a cop-out for developers.  However it allowed games and videos to exist in a space where it would have otherwise to deliver such content.As HTML5 has been rolled out amongst every major browser web developers have been looking forward to the death of Flash.&lt;br&gt;I fall in the "death to Flash" camp, but I still believe Jobs was wrong.  Computing is a user-centric experience.  If the computer isn't doing what the user wants, then the computer isn't really doing its job.  Designers of software are in a position where they have to balance making everything excessively configurable, such that a user try to set settings becomes confused, and making decisions for the user.  This is a pretty delicate balance, and one that is fraught with inevitably some minority of users becoming upset at the choices that are made.&lt;br&gt;The direction Apple has chosen with the iPhone is to be the ultimate gate keeper, keeping their users behind a walled garden where Apple dictates what will be allowed, and how what is allowed will behave.  Break Apple's rules and you get the boot, or are not even let in in the first place.  This is a fundamental design decision Apple has made that has driven their product every step of the way.  Because Apple holds the key they keep the bad stuff out and only allow in what they deem to be good enough for their users.  Before the iPhone users have had a chance to speak their voice, Apple has decided if a voice will even be allowed in the first place.This is what Apple did with Flash.  They declared Flash on mobile to be a dead end, and didn't allow their users to choose for themselves if Flash on their iPhone was good or bad.  Jobs, and through him Apple, may have been right that Flash on mobile devices isn't a good idea.  They where wrong, however, to not allow Flash on the iPhone.  If users didn't like it, nobody had to make them use it.  If nobody used it then no harm-no foul.&lt;br&gt;We can only hope that over time Flash goes the way of Shockwave, but in the meantime, lets let those purchase computing devices make that decision, not the manufacturers of those devices.  It is my inherent freedom, as the purchaser of a device, to use it in any lawful way I choose.  It is unethical for the makers of that device to micro-manage those choices for me, barring me from the decision making process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-6879336884171155768?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/6879336884171155768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/11/steve-jobs-was-wrong-on-flash.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/6879336884171155768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/6879336884171155768'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/11/steve-jobs-was-wrong-on-flash.html' title='Steve Jobs was wrong on Flash'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-3787369160311694919</id><published>2011-10-29T12:16:00.000-04:00</published><updated>2011-11-11T16:34:00.568-05:00</updated><title type='text'>UEFI Secure Boot Controversy Explained</title><content type='html'>There's been a lot of buzz and hyperbole spread out over the Internet regarding a new UEFI specification called secure boot.  The concern isn't with secure boot itself but with its potential to prevent computers from running any operating system other than Microsoft Windows 8.  I've discussed, read, and debated this issue quite a bit and wanted to throw formalize the situation as I understand it.  I hope that this explanation is clear, factual and not favoring any political agenda.&lt;br&gt;&lt;br&gt;Secure Boot is a new feature where a computer will only boot an operating system that contains a digital signature known to the motherboard.  But what does that even mean?In digital cryptography there is an idea of what is called a public key and a private key.  The author of a digital file can sign that file with their own private key.  This key, as the name suggests, is private to the author.  Only the person with that key can sign the file as long as that key stays private.  Once it is made public the game is off.&lt;br&gt;&lt;br&gt;The public key can be used to authorize the file.  Using the public key I can verify that it is indeed signed by the person claiming to be the author.To play that explanation back to the real world, Microsoft would sign its Windows 8 operating system with its private key.  Any operating system with this signature attached to it must have come from Microsoft as only they have the key.  The computer hardware itself would have a copy of Microsoft's public key, which it can then use to verify that the operating system is genuinely from Microsoft.  It any unauthorized modifications have been made to it the verification process would fail, and the computer would fail to boot.  This would both insure that a malicious program hasn't modified Windows 8 in a way that is harmful to the user, and would also help verify that the system is not pirated.&lt;br&gt;&lt;br&gt;Here's where the controversy comes in.  What if I buy a machine configured with secure boot and I wanted to run something else, such as a GNU/Linux distribution, Solaris, BSD, or my own homemade operating system?  I couldn't, unless it was signed with a private key, and the computer had the public key to verify it with.  Or, if the user could simply disable secure boot, then they could run a different operating system.Let's pause for a moment now.  Secure boot can be a good thing.  Ensuring that a verified operating system is running on your machine can only be good for you.  Boot sector viruses can cause all sorts of mayhem.  You only want on your machine the things that you have authorized to be on your machine.  If something gets installed on your machine that you didn't authorize, the fact it found a backdoor into your machine is a good sign that was only put there with malicious intent.  With that, let's continue.&lt;br&gt;&lt;br&gt;So let's explore the option of disabling secure boot.  The first problem with this is that the ability to disable secure boot is not a requirement, and it is likely that many vendors will ship hardware without this option.  The desire to disable secure boot to install something other than Windows is, admittedly, a niche desire amongst consumers.  Vendors have a tendency to not cater to the niche.  They focus on delivering the pieces that the masses will want.  How this will really play out is yet to be seen.  Perhaps all PCs shipping with secure boot (which is likely to soon be all PCs) will have the ability to disable it, but it seems reasonably likely this may not be the case.&lt;br&gt;&lt;br&gt;But even if all PCs shipped with secure boot have the ability to disable it, we still aren't in the scenario we want to be in.  Remember, secure boot is a good thing.  If the only way to install GNU/Linux is to disable secure boot, it means that I am missing out on an important feature of my hardware.  Why can't I enjoy the freedoms and security of Linux, and the security of secure boot?  There's no technical reason why this can't happen.  But first, my computer needs the public key to whatever third party OS I choose.  This leads me into my next piece, and is absolutely the most crucial part.&lt;br&gt;&lt;br&gt;How does my PC with secure boot receive the public keys that list the operating systems that are allowed to boot?  Microsoft's recommendation, and requirement to be Windows 8 certified, is for the hardware vendors to provide this.  This is called being a certificate authority, or CA.  A CA has a list of whitelist, or allowed, public keys and who they belong to.  They also provide a blacklist of, or denied, public keys.  This puts the hardware vendor in control of what can and cannot run on the hardware they ship.  But what's wrong with that?  The problem are many, but I'm going to only focus on the two major issues.&lt;br&gt;&lt;br&gt;The first problem is that you own that hardware.  You bought it.  It is yours and it should obey your commands.  If you can only do with your hardware what the manufacturer says, then it hardly really belongs to you.  Like having to ask your landlord permission to paint your living room, you will have to ask Dell, or Intel, or whomever anytime you want to do something that they didn't preapprove.  This is a horrible way to move forward with technology.  It is a fundamental freedom of ownership that you get to do what you want with it, within the limits of the law.  If you wanted to run something they didn't preapprove, what kind of hurdles do you think you would run through trying to get in touch with your computer manufacturer and getting them to add new keys, which they could only push out to your machine, because you wouldn't want them to be adding keys for any consumer who just calls in and asks them to do so.&lt;br&gt;&lt;br&gt;This could have a disastrous effect on the young tinkerers who like to play with hardware and make it do all the things it's not supposed to do so that they can one day because the future Steve Jobs and Larry Schmidts of the world.  The ability of the young to toy with hardware and software in weird ways is how visionaries are born.The second problem with making computer manufacturers the CA is the barrier it creates to new entrants in the market.  Imagine that you created a really great products, say a new operating system, and your just this geek living in your mother's apartment, but you know if you can just get it out there the world will be at your feet.  But how?  How are you, Mr(s). Nobody, going to convince all the different manufacturers out there to review your software, to make sure you aren't just some schmoe trying to get bad things on people's computers, and then get them all to add your key to their customer's hardware?  The answer is simple.  You won't.  And whether or not your idea would have flopped, or transformed the world doesn't matter.  You where stopped before you where even allowed to try.  This is a horrible artificial barrier to progress and innovation.&lt;br&gt;&lt;br&gt;The good news is that it is not necessary.  All we simply need to do is for hardware vendors to make consumers the CA.  This may sound difficult, what does the average human being know about being a certificate authority?  People want to spend their time in front of their computer using it, not messing around with blacklists and whitelists for public keys.  That's simply not feasible.&lt;br&gt;&lt;br&gt;However, it is possible that your computer can have a standard means of accepting and denying keys upon request.  Let's start with the scenario of a new PC owner booting up their Windows 8 machine for the first time.  The bootup initial bootup process of the installer could request the computer to add the Microsoft key.  This would then create a prompt for the user to either accept or deny the key.  Most people would just accept it and continue, no big deal.  Someone like myself may deny it, I don't want to run Window (actually I wouldn't purchase a PC that even comes with Windows, but that's another story.)  For the person who denies it, they may put the CD into their machine that has the installer for their OS of choice.  That installer would have its own public key, which would then prompt the user to accept, and then could boot that OS.It's even reasonable that antivirus programs could help the user keep the whitelist and blacklist up to date, requesting the computer to add whitelist and blacklist keys, and each time the user would accept or deny the request.&lt;br&gt;&lt;br&gt;This puts the user in control.  Only the owner of the hardware has the authority to accept or deny software from running on their own system, and it doesn't have to be complicated.  It also allows all software vendors to play ball on an equal field.&lt;br&gt;&lt;br&gt;I hope you find this post to clear and lacking of hyperbole.  It is not an attempt to call foul on Microsoft or anyone else.  I do not believe anyone is acting in bad faith with secure boot, but I do believe we can have user freedom, security, and robust software competition all at the same time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-3787369160311694919?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/3787369160311694919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/10/uefi-secure-boot-controversy-explained.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/3787369160311694919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/3787369160311694919'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/10/uefi-secure-boot-controversy-explained.html' title='UEFI Secure Boot Controversy Explained'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-7196013037337857412</id><published>2011-10-21T12:57:00.000-04:00</published><updated>2011-12-16T13:05:49.135-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenStreetMap'/><title type='text'>OSM is ready for the Ubuntu Developer's Summit</title><content type='html'>&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;OSM is ready for UDS:&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.openstreetmap.org/?lat=28.3568&amp;amp;lon=-81.4884&amp;amp;zoom=16&amp;amp;layers=M" rel="nofollow" style="background-color: white; color: blue; font-family: Arial, sans-serif; line-height: 19px; text-align: left; text-decoration: none;"&gt;http://www.openstreetmap.org/?lat=28.3568&amp;amp;lon=-81.4884&amp;amp;zoom=16&amp;amp;layers=M&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-7196013037337857412?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/7196013037337857412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/10/osm-is-ready-for-ubuntu-developers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/7196013037337857412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/7196013037337857412'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/10/osm-is-ready-for-ubuntu-developers.html' title='OSM is ready for the Ubuntu Developer&apos;s Summit'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-5469016535289225604</id><published>2011-10-02T03:44:00.000-04:00</published><updated>2011-12-16T13:06:46.778-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenStreetMap'/><title type='text'>Big Fix</title><content type='html'>&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;I came upon MapDust bug 209335,&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.mapdust.com/detail/209335" rel="nofollow" style="background-color: white; color: blue; font-family: Arial, sans-serif; line-height: 19px; text-align: left; text-decoration: none;"&gt;http://www.mapdust.com/detail/209335&lt;/a&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;, which noted some misplaced and missing streets. Further review of satellite imagery showed that there was a massive issue in this area where the Tiger data was missing lots of streets, and the streets it did have where grossly misplaced and mis-shaped. The problem only seemed to exist on Pleasent Hill Road north of Southport Road and South of John Young Parkway, but that area is pretty large.&lt;/span&gt;&lt;br /&gt;&lt;br style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;" /&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;Anyhow, after many hours of fixing, redrawing, and adding roads, I was finally able to close out the bug today.&lt;/span&gt;&lt;br /&gt;&lt;br style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;" /&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;After the hiatus of squashing a bunch of MapDust bugs, and marking many more invalid, I'm back to mapping out my homeland. I've already fixed up a bunch of roads, and added others. Soon I will need to do some on-the-ground checking to get some road names and find out what's going on with roads that, from the aerial imagery, don't seem to actually exist.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-5469016535289225604?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/5469016535289225604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/10/big-fix.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5469016535289225604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5469016535289225604'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/10/big-fix.html' title='Big Fix'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-3824624197907886259</id><published>2011-09-03T17:31:00.000-04:00</published><updated>2011-12-16T13:07:42.103-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenStreetMap'/><title type='text'>Squashing bugs</title><content type='html'>&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;Today I spent a good deal of time addressing bugs in Florida reported mapdust.com MapDust is a great tool for crowd-sourcing the location of problems, and providing the tools for cartographers to address them. There are a number of issues with MapDust. There is no ability to have a back-and-forth dialogue with the person who reported the issue. Lots of bugs do not contain sufficient information to know what issue the reporter may have been wanting resolved. Sometimes a scan of the area with the Bing aerial imagery where the bug report was filed will show where there could be improvements made. In those scenerios I just do cleanup of the area and then close the bug.&lt;/span&gt;&lt;br /&gt;&lt;br style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;" /&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;I have cleared out all bugs in the Florida Panhandle, and did spent most of my efforts today in South-West Florida. There where lots of very useful bug reports in the Fort Meyers and Naples area, so I addressed every single one of them. I would like to see a day where Florida's bug count was at zero.&lt;/span&gt;&lt;br /&gt;&lt;br style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;" /&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;I think having a fast turn-around time for bug resolution will help with the perception that OSM is a good source for mapping data, and that it's open nature empowers problems to be resolved quicker than proprietary mappers can provide.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-3824624197907886259?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/3824624197907886259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/09/squashing-bugs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/3824624197907886259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/3824624197907886259'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/09/squashing-bugs.html' title='Squashing bugs'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-8228391984221868514</id><published>2011-08-30T15:04:00.000-04:00</published><updated>2011-12-16T13:09:01.314-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenStreetMap'/><title type='text'>On-the-ground work</title><content type='html'>&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;The vast majority of my mapping work is done via my computer chair with the Bing imagery. I've been going over South-East Tallahassee roads very thoroughly. My existing knowledge of the area, plus the Bing imagery allows me to get a lot of very accurate work done fast.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;However, there have been a number of questions I couldn't answer. Lots of churches where brought in via the GNIS import, and they need to be individually verified to 1. Actually exist and 2. Be named correctly.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;Today I stayed home with my sick daughter, and I used the opportunity to drive around and get some on-the-ground mapping done. I was able to remove some streets I was 95% sure didn't exist. I added some detail to some schools in the area. I removed some churches that didn't exist, renamed churches that had changed denominations and names, and I did some other minor cleanup and fixing.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;I was able to accomplish this with my CR-48 Chrome Laptop, and my rooted Droid Incredible's Internet access. This setup isn't nearly as nice as my desktop computer with DSL.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;Downloading tiles took much longer, and Flash on the laptop isn't nearly as fast. The mediocre trackpad was another issue of frustration. However, with some time and patience, and with my daughter quite content playing her new 3DS, I got some good mapping done.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;When I got home I went back and added some better detail to a local city park, and made other touch-ups easier done at home, but from knowledge gained during my field mapping. I've got a few more roads I need to visually verify and I will consider my work, for now, on the area to be done.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-8228391984221868514?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/8228391984221868514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/08/on-ground-work.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/8228391984221868514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/8228391984221868514'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/08/on-ground-work.html' title='On-the-ground work'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-6324390565189929265</id><published>2011-08-20T12:01:00.000-04:00</published><updated>2011-12-16T13:10:32.535-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenStreetMap'/><title type='text'>Time to get some real detail</title><content type='html'>&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;Today I finished reviewing all of the primary and secondary roads in Tallahassee. Name abbreviations have been removed, positions have been corrected, dual-carriage ways have been separated out, and other relevant meta-data has been added.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;" /&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;At this point I'm going to move on to cleaning up neighborhoods, adding area detail such as marking wooded areas and lakes, and removing erroneous roads. The TIGER import has lots of residential roads that don't exist in real life, and plenty of other roads just grossly misplaced. Sometimes there are named streets that don't even exist.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;" /&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;I've also added detail for a few schools around town.&lt;/span&gt;&lt;br /&gt;&lt;br style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;" /&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;I find the maps look truly beautiful when an area has a high level of detail added. I don't think I will be adding too many building, except when working on schools. At some point I will probably tackle FSU and FAMU, though those will be major undertakings. I've already got some FSU mapped out.&lt;/span&gt;&lt;br /&gt;&lt;br style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;" /&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;The good news is that if you are passing through Tallahassee with your GPS and OSM data, you can have a high level of confidence that you will be guided through without any sort of crazy bad TIGER data causing you heartache.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-6324390565189929265?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/6324390565189929265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/08/time-to-get-some-real-detail.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/6324390565189929265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/6324390565189929265'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/08/time-to-get-some-real-detail.html' title='Time to get some real detail'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-3742932975856744730</id><published>2011-08-06T20:55:00.002-04:00</published><updated>2011-08-10T12:44:29.452-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Fix flickering in Boxee with ATI graphics card</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;I recently installed Boxee on a new computer I got for my daughter. &amp;nbsp;It was running Ubuntu 11.04 and I used this &lt;a href="http://maxolasersquad.blogspot.com/2011/05/install-boxee-on-ubunty-1104-natty.html"&gt;fix&lt;/a&gt; to get it to install. &amp;nbsp;Unfortunately, like many in the comments section of the fix blog post, was getting too much flickering in the application to be able to use it. &amp;nbsp;It took me a little Googling, but I finally found a fix after following a link that suggested I follow another link, which finally took me to instructions that hinted at how to fix it. &amp;nbsp;Apparently the problem exists when using an ATI card with the open source driver and Compiz enabled, but don't quote me on that.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;To fix it, one simply needs to turn off vsync. &amp;nbsp;To do this open up the guisettings.xml configuration file and change vsync from 2 to 0.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;First, lets backup the file.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;cp ~/.boxee/UserData/guisettings.xml ~/.boxee/UserData/guisettings.xml.bak&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; line-height: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Now we need to edit the file. &amp;nbsp;Run the first command to do it with a GUI, or the second to use vim.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: Verdana, Arial, sans-serif; font-size: 13px; line-height: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;gedit ~/.boxee/UserData/guisettings.xml&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;vi&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: 'Courier New', Courier, monospace; font-size: 13px; line-height: 16px;"&gt;~/.boxee/UserData/guisettings.xml&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: inherit; line-height: 16px;"&gt;Find vsync in this file and change the 2 to a 0, and save the file. &amp;nbsp;It should be line 551 in the file. &amp;nbsp;Lines 546 &amp;nbsp;through 552 should look like this initially.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Courier New', Courier, monospace; font-size: x-small; line-height: 16px;"&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;videoscreen&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;guicalibration&amp;gt;&amp;lt;/guicalibration&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;resolution&amp;gt;11&amp;lt;/resolution&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;testpattern&amp;gt;&amp;lt;/testpattern&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;testresolution&amp;gt;&amp;lt;/testresolution&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;vsync&amp;gt;2&amp;lt;/vsync&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/videoscreen&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 16px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="color: #333333;"&gt;After the change they should look like this.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;videoscreen&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;guicalibration&amp;gt;&amp;lt;/guicalibration&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;resolution&amp;gt;11&amp;lt;/resolution&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;testpattern&amp;gt;&amp;lt;/testpattern&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;testresolution&amp;gt;&amp;lt;/testresolution&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;vsync&amp;gt;0&amp;lt;/vsync&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/videoscreen&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit; line-height: 16px;"&gt;Now if you start boxee it no longer flicker.&lt;/span&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/2160921736769720124-3742932975856744730?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/3742932975856744730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/08/fix-flickering-in-boxee-with-ati.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/3742932975856744730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/3742932975856744730'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/08/fix-flickering-in-boxee-with-ati.html' title='Fix flickering in Boxee with ATI graphics card'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-5385903047042909209</id><published>2011-07-29T12:30:00.000-04:00</published><updated>2011-12-16T13:11:27.703-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenStreetMap'/><title type='text'>Finally getting into real mapping</title><content type='html'>&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;I've been mapping for quite some time, spending a lot of resources getting a ridiculous amount of detail in the neighborhood I work. That work is 99% done, and I think I've got a pretty good sense of mapping for OSM.&lt;/span&gt;&lt;br /&gt;&lt;br style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;" /&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;Yesterday I started working on combing through Tallahassee via the Bing Satellite imagery and fixing things up. There's a lot of residential roads grossly misplaced, and dual carriageways that need to be split out as such.&lt;/span&gt;&lt;br /&gt;&lt;br style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;" /&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;My plan of attack is to make sure the major roads in Tallahassee are accurately mapped so that at the very least, routing applications could properly take people through the major parts of Tallahassee properly.&lt;/span&gt;&lt;br /&gt;&lt;br style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;" /&gt;&lt;span style="background-color: white; font-family: Arial, sans-serif; line-height: 19px; text-align: left;"&gt;I'm debating spending resources on also marking POIs, such as gas stations and grocery stores. That is, of course, very nice to have, but could take significant time away from getting the streets down correctly.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-5385903047042909209?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/5385903047042909209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/07/finally-getting-into-real-mapping.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5385903047042909209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5385903047042909209'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/07/finally-getting-into-real-mapping.html' title='Finally getting into real mapping'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-9032320931294034573</id><published>2011-07-20T08:18:00.000-04:00</published><updated>2011-07-20T08:18:51.681-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>How to setup auto-login in Ubuntu at the console Part 2.</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;These instructions are for Ubuntu 11.10 Oneiric and onward, and any other version that uses LightDM, as opposed to the previous default of GDM, which I had previously wrote about at &lt;a href="http://maxolasersquad.blogspot.com/2009/07/how-to-setup-auto-login-in-ubuntu-at.html"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="background-color: white; line-height: 16px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;First we'll backup the configuration file and then in your editor of choice, probably vi open up /etc/gdm/gdm.conf.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote style="margin-bottom: 1em; margin-left: 20px; margin-right: 20px; margin-top: 1em;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo cp /etc/lightdm/lightdm.conf /etc/lightdm/lightdm.conf.bak&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;div style="text-align: justify;"&gt;sudo vi /etc/lightdm/lightdm.conf&lt;/div&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;div style="text-align: justify;"&gt;Next find the line that reads:&lt;/div&gt;&lt;/span&gt;&lt;blockquote style="margin-bottom: 1em; margin-left: 20px; margin-right: 20px; margin-top: 1em;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;#default-user=bob&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;div style="text-align: justify;"&gt;#default-user-timeout=5&lt;/div&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;div style="text-align: justify;"&gt;In the first line change "false" to "true" and in the second line append the username you want to auto-login after the equals sign. Here is how mine looked:&lt;/div&gt;&lt;/span&gt;&lt;blockquote style="margin-bottom: 1em; margin-left: 20px; margin-right: 20px; margin-top: 1em;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;default-user=david&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;div style="text-align: justify;"&gt;default-user-timeout=0&lt;/div&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;div style="text-align: justify;"&gt;After a reboot you will find that Ubuntu goes straight to the desktop of the user you defined.&lt;/div&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;div style="text-align: justify;"&gt;There are other settings you can set in here, such as a time login. Most of these are available from the GUI, but feel free to look around and find any other settings you might want to change.&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-9032320931294034573?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/9032320931294034573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/07/how-to-setup-auto-login-in-ubuntu-at.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/9032320931294034573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/9032320931294034573'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/07/how-to-setup-auto-login-in-ubuntu-at.html' title='How to setup auto-login in Ubuntu at the console Part 2.'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-2737897915460012325</id><published>2011-07-10T11:07:00.000-04:00</published><updated>2011-07-10T11:07:52.815-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Features needed in Thunderbird to replace Evolution</title><content type='html'>&lt;div style="text-align: justify;"&gt;As most know by now, Ubuntu 11.10 is looking to replace the Evolution mail client with Mozilla Thunderbird. &amp;nbsp;Evolution has long been problematic. &amp;nbsp;I have found it to crash pretty often, fail to display mail messages, and just generally be quirky. &amp;nbsp;Over the last two years it has really shaped up a lot, but still remains pretty quirky as of Ubuntu 10.04 LTS.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;To produce a quality Linux desktop, shipping a quirky e-mail client can be a turn off for many, and that's what's lead to talk about replacing Evolution with Thunderbird. &amp;nbsp;Despite it's problems, Evolution does many things right. &amp;nbsp;Syncing Evolution with your cloud services, especially Google services, is especially easy. &amp;nbsp;Evolution also comes with native Exchange support, with some exceptions. &amp;nbsp;The Exchange server must provide Webmail for the Exchange support to work. &amp;nbsp;However when it does work, users can send/receive e-mail, view and mail contacts, and integrate with their Exchange calendar, all in one application, almost as if they where using the Microsoft Outlook. &amp;nbsp;This can be a real savior for people like myself who run Ubuntu in a corporate environment deeply tied to Microsoft products.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;All Calendar integration in Evolution comes with the benefit of desktop integration. &amp;nbsp;Any calendar configured in Evolution shows up in Gnome calendar panel, allowing the user to easily see what's scheduled without having to fire up Evolution.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;All-in-all Evolution has a very solid feature set, and great usability and integration. &amp;nbsp;It's just those nasty quirks that pop-up from time to time that keep it back. &amp;nbsp;It seems to me that the best thing the Ubuntu community could do is go through the Evolution bug list and start applying some fixes. &amp;nbsp;A change of client seems rather drastic, but at this point, inevitable.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In this light, I have installed the Oneiric release client and kicked the Thunderbird tires. &amp;nbsp;Here's what I've seen so far.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Setting up Gmail is very easy. &amp;nbsp;I simply put in my Gmail login and password and that was it. &amp;nbsp;Thunderbird recognized the @gmail.com and did the rest of the configuration. &amp;nbsp;Evolution will auto-populate the Google server information, but Thunderbird doesn't even show you the server configuration options. &amp;nbsp;It simply notifies you it knows what to do from here and finishes.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;After it downloaded all the message headers, I had one new e-mail, I received a desktop notification about the new e-mail. &amp;nbsp;However, Evolution also turns the mail notification icon in the menu green. &amp;nbsp;If you click on it, you will see the new e-mail in your inbox. &amp;nbsp;Thunderbird provided no such desktop integration.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Thunderbird does not include any sort of Calendar integration by default. &amp;nbsp;Instead, I had to manually install the Lightning plugin, which provides the calendar support. &amp;nbsp;However, this was not enough, as Lightning does not provide any remote calendar syncing. &amp;nbsp;To get Google Calendar support I had to install the "Provider for Google Calendar" plugin.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Even still, it was not as intuitive to setup Google Calendar support. &amp;nbsp;I had to log into Google Calendar in my browser to get the iCal URL of the calendar I wanted to support, and copy-and-paste this into Thunderbird. &amp;nbsp;With Evolution I simply provide my calendar credentials and it will give me a list of calendars in my Google Calendar account, and then syncs the one I selected.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Finally, the calenders do not integrate with the Gnome calendar.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I hope that 11.10 has the Lightning and Google Calendar plugins installed by default, but even still, this is a step backwards. &amp;nbsp;Showing people the tight integration between cloud calendar services and Ubuntu has been a point of impression for many users in my experience.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Next is the contact syncing. &amp;nbsp;Again, setting up Evolution to sync with your Google Contacts is very easy. &amp;nbsp;With Thunderbird I had to install the "Google Contacts" plugin. &amp;nbsp;After that I selected my existing Google account and my contacts where in Thunderbird. &amp;nbsp;I really liked that I didn't need to reenter my Google credentials. &amp;nbsp;This is a move forward from Evolution, and a feature I'd like to see replicated in the Google Calendar plugin.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Thunderbird has no Exchange support. &amp;nbsp;For those of us in a corporate environment, this is a loss. &amp;nbsp;If your Exchange server supports IMAP, one can still check their e-mail in Thunderbird, but there will be neither contact or calendar support.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Others thoughts. &amp;nbsp;Thunderbird does not store its connection information in Seahorse, leaving the connections unavailable to other applications that would like to integrate. &amp;nbsp;I don't think the icons are coming from the Gnome theme. &amp;nbsp;Minimizing to tray can be accomplished via an extension, but I'd like to see something similar to how Rhythmbox and Banshee can be minimized to the sound menu. &amp;nbsp;Neither of these are possible in Evolution either, so ...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;So where does this leave us? &amp;nbsp;I believe we need to have the Lighting, Google Calendar, and Google Contacts plugins installed by default. &amp;nbsp;A custom plugin needs to be written to bring the Lightning calendars into the Gnome calendar menu. &amp;nbsp;This will bring most users into having all of their existing Evolution functionality in Thunderbird. &amp;nbsp;An Exchange plugin for Thunderbird should be started. &amp;nbsp;Thunderbird needs to be extended to act like an application that was written to be part of the Linux desktop, not an application that just happens to also run on the Linux desktop.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Finally, I wonder how much the mail client really matters. &amp;nbsp;I don't know many people who use thick mail clients. &amp;nbsp;Everyone seems to be happy using their providers webmail. &amp;nbsp;The only reason I use Evolution is to have an offline backup of my e-mail, and for the desktop notifications about new e-mail and calendar events. &amp;nbsp;When I receive these I then go to the webmail interface and respond accordingly.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I wonder what KDE users think about how it looks, feels, and integrates for them.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-2737897915460012325?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/2737897915460012325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/07/features-needed-in-thunderbird-to.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/2737897915460012325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/2737897915460012325'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/07/features-needed-in-thunderbird-to.html' title='Features needed in Thunderbird to replace Evolution'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>1</thr:total><georss:featurename>2716 Juncture Dr, Tallahassee, FL 32305, USA</georss:featurename><georss:point>30.302901 -84.234012</georss:point><georss:box>-5.791344000000002 -143.999637 66.39714599999999 -24.468387000000007</georss:box></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-978825349947003196</id><published>2011-06-17T22:20:00.000-04:00</published><updated>2011-06-23T18:52:58.768-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='family'/><category scheme='http://www.blogger.com/atom/ns#' term='Camping'/><title type='text'>South-East Tour Day 8 - Nashville to Smoky Mountains</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;This morning Kim and I woke to the 7:30 alarm we set on her phone.&amp;nbsp; We immediately began packing and gradually got the girls up, dressed and fed.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;There was a pretty heavy overcast, but we were going to try and get a dip in the lake before we left.&amp;nbsp; However, as soon as we got fully packed up and down to the lake it began to pour and thunder.&amp;nbsp; The swim was going to act as our final "bath" before we headed to the Smokys, as there are no showing facilities there.&amp;nbsp; Since the lake wasn't going to happen, we drove up to the bath house and took proper showers.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We were scheduled to turn in our rental car today, which meant the GPS had to go with it.&amp;nbsp; We couldn't find our Tennessee map, so we decided to meet somewhere dry to figure out what to do next.&amp;nbsp; Kim led us I.to a McDonald's/gas station that had free wireless.&amp;nbsp; There we filled up our tanks, ate brunch, and pulled up directions on our Chrome laptop, which I copied onto paper.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We returned the rental at the airport, which we are hoping will be alright.&amp;nbsp; We were supposed to turn it in in Tallahassee.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;From the airport we all loaded up in the van and headed East on I-40.&amp;nbsp; The drive was absolutely magnificent.&amp;nbsp; I don't try to drive very fast, usually going between 55 &amp;amp; 65 mph.&amp;nbsp; I only went 70 - 75 on long downhill stretches.&amp;nbsp; Once I could only push 35, during a long uphill stretch.&amp;nbsp; Fortunately there were 3 semis in front of me doing the same thing, so I don't think I stuck out too much.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Once we got off the Interstate we entered a little town.&amp;nbsp; There we ate and picked up groceries.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;A few times we thought we may have missed a turn and a few other we almost did.&amp;nbsp; Driving with just maps and directions, we did have our Smoky Mountains map, is much more nerve racking that the comfort at a GPS guiding you through every turn. &amp;nbsp;Each time we were sure we were going the wrong way and was about stop, our turn would immediately show up. &amp;nbsp;Kim and I took this as a sign we should give up quicker if we wanted our turns to show up quicker. &amp;nbsp;In the park the roads were often completely unmarked which made things really fun. &amp;nbsp;And what should be only a mile drive seems much longer when you are only going 30 - 35 through winding roads. &amp;nbsp;My odometer is broken so we couldn't use that to judge distance traveled.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We finally made it into the campground in our site. &amp;nbsp;It is right next to a little stream. &amp;nbsp;There is also a full river very close by, which makes for a very comforting background noise. &amp;nbsp;Kim setup the tens while I played with the kids in the stream, and walked around the campgrounds with them. &amp;nbsp;We used Katie's tent to store our stuff, and I will be sleeping with Athena and Arianna in our tent. &amp;nbsp;Kim and Aurora will sleep in the camper, which I set up.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The weather here is very great. &amp;nbsp;A heavy overdraft, coupled with occasional light sprinkles means we never sweat no matter how much we work or play. &amp;nbsp;It also provides a gorgeous fog.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Occasionally we'll hear thunder from far off in the distance, but rarely do we actually see the lightning.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We are very low on clean laundry and there are no laundering facilities, so I washed our clothes in the stream and hung them on bungee chords and ropes I attached to some trees. &amp;nbsp;We'll see if they'll be dry in two days. &amp;nbsp;We've got our undergarments hanging in the camper, so if nothing else, we should have clean dry undies, which is the most important.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The girls wanted smores, so I tried to get a fire going, but anything I could find for starter was too damp. Everyone got too anxious and just had "row" smores. &amp;nbsp;Just as everyone else was ready to turn in, and with the help of lighter fluid, Kim's&amp;nbsp;insistence, I got the fire started. &amp;nbsp;So I was the only one to get hot smores.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Eating the smores was the last thing I did before writing this. &amp;nbsp;Since the laptop is dead, and there is no Internet for the Chrome-book, I am writing this on notebook paper to type in later. &amp;nbsp;In fact, my last two entries are in a text document on the laptop, waiting to be pasted in the online blog when I can provide both power and Internet to it.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Now I'm off to bed, and if the weather gets too bad, the lightning is getting closer, the girls and I will move to the van too.&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/2160921736769720124-978825349947003196?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/978825349947003196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/06/south-east-tour-day-8-nashville-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/978825349947003196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/978825349947003196'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/06/south-east-tour-day-8-nashville-to.html' title='South-East Tour Day 8 - Nashville to Smoky Mountains'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-7904313000336572305</id><published>2011-06-17T00:49:00.001-04:00</published><updated>2011-06-17T00:53:50.473-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='family'/><category scheme='http://www.blogger.com/atom/ns#' term='Camping'/><title type='text'>South-East Tour Day 6 - Trip to Memphis</title><content type='html'>&lt;div style="text-align: justify;"&gt;This morning we ate breakfast and left for Memphis. &amp;nbsp;Kim punched in the address to the Volkswagen dealership in Memphis and we left. &amp;nbsp;I spent most of the trip driving between 60 to 70 mph and the van held up very well under these conditions.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We arrived at the dealership at 5:15 and I was feeling pretty good about making it when I hit the key and accidentally turned off the van in a place that was not very good for push starting, which kind of killed my high from making it. &amp;nbsp;Mark at the dealership told me how to get to the place that had my starter, but they where closing in fifteen minutes, and I still had to push-start my van, which wasn't going to happen in time to get there and picked up the starter.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Mark arranged to have them get the starter the next day since we already knew where they where at, which we agreed to. &amp;nbsp;Kim and I tried to push start the van but it wouldn't work. &amp;nbsp;Finally a mechanic shop hooked the van up to a large truck with towing cables and pulled me as I popped it into gear and got it started.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Kim was pretty stressed about not getting the starter today, having to push start the van so much today, and that our campsite was so far away, so we agreed to get a hotel again that was near the dealership so we could get it early and I could get started on installing it as early as possible.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This afternoon we ate at a pretty good Mexican restaurant called Happy Mexican and swam in the hotel pool. &amp;nbsp;I am looking forward to getting our trip back on track tomorrow.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-7904313000336572305?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/7904313000336572305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/06/south-east-tour-day-6-trip-to-memphis.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/7904313000336572305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/7904313000336572305'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/06/south-east-tour-day-6-trip-to-memphis.html' title='South-East Tour Day 6 - Trip to Memphis'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total><georss:featurename>Memphis, TN</georss:featurename><georss:point>35.0438213 -89.79751479999999</georss:point><georss:box>35.0438133 -89.79751529999999 35.0438293 -89.79751429999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-6747227885406384474</id><published>2011-06-16T23:18:00.000-04:00</published><updated>2011-06-23T19:00:57.731-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='family'/><category scheme='http://www.blogger.com/atom/ns#' term='Camping'/><title type='text'>South-East Tour Day 7 - Nashville, TN</title><content type='html'>&lt;div style="text-align: justify;"&gt;This morning we awoke to some light rain that only lasted about 45 minutes. &amp;nbsp;After a breakfast of grits and left-over pancakes we headed to the Verizon store to pick up my new phone. &amp;nbsp;As it turns out, even though I had selected to have the phone overnighted, it wasn't scheduled to arrive until Monday, at which point we would not be in Nashville anymore. &amp;nbsp;The guy at the store was extremly helpful and called the campground we are supposed to be at on Tuesday to make sure it was okay if he could ship the package there, and he would send it overnight. &amp;nbsp;So hopefully on Tuesday I will finally be back in business with my phone ... hopefully.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;After the Verizon store we headed to the reconstruction of the Parthenon. &amp;nbsp;The building was really cool. &amp;nbsp;You enter through a downstairs area that has an art gallery and an exhibit that lays out the constructions of the Parthenon from concept to a full-scale museum, including a reconstruction of the statue of Athena, which was upstairs. &amp;nbsp;The whole thing was incredibly cool. &amp;nbsp;They had cast reconstructions of actual surviving statues from the original Parthenon, and everything was reconstructed with a high level of detail and quality. &amp;nbsp;A lady who was part of the reconstruction of the statue of Athena was there volunteering to answer questions. &amp;nbsp;Aurora and her talked on and on for quite some time, and the two of them really enjoyed each other. &amp;nbsp;Another really cool part was a pair of bronze doors on each side of the Parthenon that stood about 40 to 50 feet high, but they moved with ease with only a slight push. &amp;nbsp;The plaque said that they where the largest pair of bronze doors in the world, and are not actually part of the original Parthenon, which probably had doors made out of wood.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;After that we ate at an Italian restaurant named Maggiano's, which was much fancier than we where expecting. &amp;nbsp;Howerver, the kids where really well behaved, the service was great, and the food was excellent. &amp;nbsp;We even got a few compliments from those eating around us about how cute and well behaved our children where.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We followed this with a visit to the Grand Ole Opry Gaylord Hotel. &amp;nbsp;This was hands down the most amazing hotel I have ever seen. &amp;nbsp;You could tell from the bricks and windows that the building was quite old, but was kept in very good condition. &amp;nbsp;The courtyard in between the buildings had a glass ceiling built in, and was completely air conditioned. &amp;nbsp;A river ran through the different courtyards, and one area had beautiful plants everywhere, coming out of giant rocks, and planted in with the walkways. &amp;nbsp;Waterfalls, various fish, and beautiful ponds kept the kids well entertained the whole time. &amp;nbsp;Athena exclaimed that she never wanted to leave the hotel for her whole life. &amp;nbsp;And even though we walked around for a couple of hours, the kids never complained that their feet hurt, or that they where getting tired. &amp;nbsp;It came with dissapointment from all three when it was finally time to go back to our campsight.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We stopped at a Walgreens and picked up chocolate, graham crackers, and marhmellows, which we turned into smores back at the campsite. &amp;nbsp;The kids all agreed that today was a fun day, and we got them to bed in good time so that we can wake up early and swim in the lake before we head off for the Smoky Mountains.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-6747227885406384474?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/6747227885406384474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/06/south-east-tour-day-7-nashville-tn.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/6747227885406384474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/6747227885406384474'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/06/south-east-tour-day-7-nashville-tn.html' title='South-East Tour Day 7 - Nashville, TN'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-751265735286386460</id><published>2011-06-16T21:55:00.004-04:00</published><updated>2011-07-16T17:32:53.526-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='family'/><category scheme='http://www.blogger.com/atom/ns#' term='Camping'/><title type='text'>South-East Tour Day 9 - Smoky Mountains</title><content type='html'>&lt;div style="text-align: justify;"&gt;Last night there was a lot of rain and thunder. &amp;nbsp;The temperature fell quite a bit. &amp;nbsp;I had long johns in my tent, but they were sitting against the side and where wet.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Kim and I awoke long before the girls. &amp;nbsp;I got the fire going again while Kim boiled water for oatmeal. &amp;nbsp;I put tinfoil on the gril over the fire and took turns placing an article of wet clothing from the line on it to dry. &amp;nbsp;I would get them mostly dry and place them back on the line to finish drying. &amp;nbsp;The rain was completely gone, and the clouds that were still in the sky did not look threatening.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;After the girls awoke, were fed and dressed, we headed towards Cade's Cove to rent some bicycles. &amp;nbsp;The bike riding didn't go quite as well as planned, but was still fun. &amp;nbsp;Athena still needs training wheels, and the ones on her rental bike where kind of crooked, which kept her off balance.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Being in the mountains, there were plenty of hills. &amp;nbsp;Athena and Arianna both had trouble peddling up hill, and down hill they didn't know to ride breaks and would just keep coming to complete stops. &amp;nbsp;At they very end of the ride Arianna got going down hill and couldn't stop. &amp;nbsp;The bike eventual fell over and she went down with it. &amp;nbsp;Fortunately she wasn't hurt badly and calmed down as I carried her, and both our bikes, back to the rental checkout. &amp;nbsp;Aurora was a prop on her bike going up and down the hills with ease.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;After this we headed on to the Cade's Cove loop. &amp;nbsp;I didn't know it until we got on, but the loop is nine miles long, and the speed limit is 25 mph. &amp;nbsp;We would have been happy to drive the thing at 25mph, but cars in front of us wouldn't even break ten, and would sometimes come to complete stops. &amp;nbsp;The road is one-way and one-line wide. &amp;nbsp;There are occasional turn-offs with signs urgin slower traffic to use them to let others pass, but the slower vehicles didn't seem to use them.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The loop is a preserve of older houses and churches used by the original settler of the Smoky Mountains. &amp;nbsp;We passed by the first house, not realizing what the stop there was, until after we passed the parking. &amp;nbsp;Aurora became very excited when she found out what we passed.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The loop has two shortcuts which let you bypass a large portion of it. &amp;nbsp;We took the first one, which took us to another house, which had a storage house and stable. &amp;nbsp;We stopped this time and the girls where very excited. &amp;nbsp;They just loved walking through these old building and didn't want to leave.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;When we returned we again got stuck behind slow moving cars that made frequent stops. &amp;nbsp;At one point while going up a steep incline, a few vehicles in front of us made a complete stop and everyone got out. &amp;nbsp;After just sitting there for about five minutes Kim got out and tol them they where creating quite a jam. &amp;nbsp;They could apparently see a family of black bears, and it didn't occur to them that just stopping in the middle of the road as an&amp;nbsp;inconvenience&amp;nbsp;to everyone behind them.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Once off the loop we headed into town to fill up our gas tank. &amp;nbsp;During our drive we saw a lot of people pulled off the side of the road swimming in the river. &amp;nbsp;The kids has exclaimed how they wanted to swim in the river. &amp;nbsp;So when we got back to our campsite and Kim had a long list of packing she wanted to do, I took the kids back on the road to find a place to swim.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The river water was very cold, but once we got used to it the girls started walking upstream. &amp;nbsp;The river bottom is entirely rocks and it rarely got beyond waist deep on the girls. &amp;nbsp;I held Arianna's hand as we walked us, since the rocks where very slipper and the current would have been strong enough to keep her under she would have slipped.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We eventually found a good spot where Aurora and Athena played games and Arianna and I took turns throwing rocks. &amp;nbsp;Arianna thought throwing rocks with me was about as much fun could be had in this world and seemed prepared to do this indefinitely, but eventually we had to return to the campsite for dinner.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Kim and I made rick, broccoli, and corn for dinner. &amp;nbsp;The cor was especially sweet and juicy. &amp;nbsp;I cooked it over the camp fire in tin foild after Kim had soaked it in water for a while.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;After dinner we&amp;nbsp;exhausted&amp;nbsp;our supply of chocolate on smores. &amp;nbsp;We loaded the van up with everything that could be packed away and I made the pop-top bed for Kim and Aurora. &amp;nbsp;Arianna, Athena and I will sleep in the tent again.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Tomorrow we will find one more thing to do in the Smokys and then head into town to find wifi to get directions to our next campground in Asheville, NC. &amp;nbsp;Hopefully I'll also be able to get a hold of my friend Sean who lives there.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-751265735286386460?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/751265735286386460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/06/smoky-mountains.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/751265735286386460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/751265735286386460'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/06/smoky-mountains.html' title='South-East Tour Day 9 - Smoky Mountains'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-8199228765464600353</id><published>2011-06-16T02:15:00.001-04:00</published><updated>2011-06-16T02:17:06.726-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='family'/><category scheme='http://www.blogger.com/atom/ns#' term='Camping'/><title type='text'>South-East Tour Day 5 - Stranded in Natchez</title><content type='html'>&lt;div style="text-align: justify;"&gt;Today began really well. &amp;nbsp;We all woke up and just hung out at our camp site. &amp;nbsp;The kids glued googly eyes on rocks and ate grits while Kim and I loaded up the Volkswagen. &amp;nbsp;I made a few rearrangements for where we put stuff so that the middle area wasn't so crowded with stuff. &amp;nbsp;I even brought out the hose and a rag and gave the van a wash, though I had no soap to really get the hard grime off that has been collected over the miles we've traveled so far. &amp;nbsp;I also charged up the battery because running the fan and the interior lights had eaten up some of it.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;There was a minor problem. &amp;nbsp;My cell phone had gone belly up on me. &amp;nbsp;When I tried to turn it on it would go to the boot screen, go black and then cycle back to the boot screen, repeating this loop. &amp;nbsp;I tried leaving the battery out for an extended amount of time, and then repowering everything, but it did not good. &amp;nbsp;Even attempting a factory reset just put it back into the boot loop. &amp;nbsp;I finally had to face the fact that my phone was dead. &amp;nbsp;Fortunately Kim and I had planned for this possibility and had printed everything out, including directions to each place, and we even had maps of each place we are planning to visit. &amp;nbsp;I thought this was going to be the worst of my issues, but it turned out to only be a minor blip for the day.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;A little after noon we headed up to the ranger station to check in, since we got in too late to check in the day before, and check out. &amp;nbsp;As we loaded back up in the van it wouldn't start. &amp;nbsp;I knew the battery was full, so I figured it had to be more starter troubles. &amp;nbsp;Ever since the starter that was in the van when I bought it went out, the thing has never started quite right, and I've been through a few of them. &amp;nbsp;This starter is only a couple of weeks old, but given that I had a good battery charged, and putting my keys in the start position wasn't doing anything, I was sure it was more starter issues.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Kim called AAA, got a wrecker issues, ordered someone from Enterprise to pick us to rent a car, and reserved a room at a local hotel. &amp;nbsp;While waiting on the wrecker and the guy from Enterprise, Kim helped me push the van up hill a little and as she pushed it back in we push-started it, confirming it was starter issues.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;At Enterprise Kim took care of getting a car checked out while I called around Jackson, MS and Memphis, TN to try to find someone who could overnight a start, or seeing if someone locally could get it fixed. &amp;nbsp;The local mechanics where backed up for about a week, and nobody seemed to be able to get a start overnighted. &amp;nbsp;I finally got the Volkwagen dealership in Memphins, TN to say they could overnight a start, and later they found a shop in Memphis, TN that actually had the starter in stock and for a cheaper price than the dealer. &amp;nbsp;This was pretty fantastic for the dealership to hook me up with someone locally for cheaper.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;With this Kim and I made plans that we would stay the night in the Natchez hotel, fill up the gas tank in the van, push start it the next morning and drive it and the rental to Memphis the next day to get the starter.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The people at Enterprise where really awesome in letting us stay in their building, with our kids who where playing and being really loud, while helping us look up phone numbers to places to call, and letting Kim use their phone while I use Kim's cell phone to make calls. &amp;nbsp;The girls where really awesome for entertaining each other and being in very high spirits while Kim and I where in a rather stressful situation.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This whole time through the planning at Enterprise I had to leave my van running because there was no good place to park there to give it a good push-start. &amp;nbsp;I didn't stop it until we arrived at the hotel, which did have a good place for me to park that is on a little bit of an incline that should help with the push-start.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Everyone was glad to have an evening in air conditioning, and to get a nice hot bath, and to watch some TV. &amp;nbsp;The hotel also had free dinner, a reasonably good chicken parmesan pasta. &amp;nbsp;After getting fully settled in to the hotel I walked up to the gas station next door and purchased a two-gallon gas container. &amp;nbsp;I walked back-and-forth filling up the container and then dumping it into the tank of the van, trying to get it filled up so we can make it to Memphis tomorrow without stopping. &amp;nbsp;I wasn't able to fill the tank all the way up before the station closed, but I will finish that tomorrow.&lt;br /&gt;So this is the break-down I think everyone was sort of expecting. &amp;nbsp;The engine in the van is rather solid, and I had my mechanic do a lot of work on it before we left to make sure it was in top condition. &amp;nbsp;Given the number of starters I've gone through in the last year, I'm going to have to have my mechanic look into what is causing that when we get back to Tallahassee.&lt;br /&gt;If everything goes well tomorrow, then when we will only have missed one night in Memphis, and the rest of the trip will be on track to go smoothly. &amp;nbsp;If not, we'll figure out what to do from there.&lt;br /&gt;I think one thing this trip will have taught us about our family is that, as a group, we are not the campers my family was growing up. &amp;nbsp;Our future trips will have to include more hotel stays, though I don't believe that using the camper van is out. &amp;nbsp;The kids genuinely enjoy sleeping in the camper, and I think that as a whole it is a fun traveling vehicle. &amp;nbsp;It just needs to be reliable, and my family can only rough-it so much. &amp;nbsp;Perhaps during a time of year when the weather is more agreeable, especially the night temperatures, the family will be up for more extended periods of sleeping in the van.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-8199228765464600353?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/8199228765464600353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/06/south-east-tour-day-5-stranded-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/8199228765464600353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/8199228765464600353'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/06/south-east-tour-day-5-stranded-in.html' title='South-East Tour Day 5 - Stranded in Natchez'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total><georss:featurename>Days Inn Natchez, MS</georss:featurename><georss:point>31.5175111 -91.38609959999997</georss:point><georss:box>31.4735201 -91.42902159999997 31.5615021 -91.34317759999996</georss:box></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-501376075737240498</id><published>2011-06-14T23:00:00.002-04:00</published><updated>2011-06-16T02:20:00.056-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='family'/><category scheme='http://www.blogger.com/atom/ns#' term='Camping'/><title type='text'>South-East Tour Day 4 - Audubon Zoo</title><content type='html'>&lt;div style="text-align: justify;"&gt;This morning begin with the hot moggy Lousiana air putting us all a little on edge. &amp;nbsp;Kim and I did what we could to get everything packed and loaded up, but I think to any bystanders we just like crazy people as we tried to get our grumpy kids and our grumpy selves ready for the day. &amp;nbsp;Once fully packed we hit the road headed for the Audubon Zoo.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;On the way was a police trap checking to make sure everyone was buckled. &amp;nbsp;When we pulled up he looked in and said, "Is everyone buckled? &amp;nbsp;... Ok, got on through." &amp;nbsp;I think he only noticed Kim sitting in the middle as we where pulling away. &amp;nbsp;I'm not sure what we would have done if he had seen her and started to ask questions.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;At the zoo we met one of Kim's old coworkers at Fairview, Rhonda. &amp;nbsp;She was the star of the day. &amp;nbsp;She paid for all of us to go the zoo including lunch, snow cones, and gifts for the girls. &amp;nbsp;Aurora was really excited to see the elephants, while Athena was looking forward to the gorillas. &amp;nbsp;Our last stop was to see the giraffes, which Arianna had been asking about since we first mentioned we would go the zoo a few days ago.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Along the way we saw all sorts of cool looking monkeys, giant snakes, poisonous frogs, and some really stout rhinoceroses. &amp;nbsp;The rhinos where my favorite part.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The kids had a great time. &amp;nbsp;I started to catch a headache towards the end, which I tried to wash away with some Advil when we got back in the van.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We headed west on I-10, and then North on 55. &amp;nbsp;The last ten miles on the I-10 route was bridge, and stayed a bridge as we pulled onto 55 for another twenty miles. &amp;nbsp;We passed over beautiful lakes and swamps as we drove over the bridge. &amp;nbsp;It was too bad I was unable to enjoy it as my headache only got worse. &amp;nbsp;When we departed I pulled over at the first town so that Kim could drive.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I slept off and on most of the way to Natchez. &amp;nbsp;As we got closer the GPS took us through dirt roads and through some very country neighborhoods. &amp;nbsp;What we didn't pass by was any signs indicated that Natchez State Park was coming up. &amp;nbsp;When we finally reached our "destination" we where getting in kind of a panic as it was passed eight o'clock, and our destination was not where the GPS had taken us. &amp;nbsp;We went a little further, and then turned around. &amp;nbsp;While Kim did this I tried to figure out where to go passed on Google Maps and the instructions given on the Natchez Sate Park website.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;By this time Kim and I where rather stressed out and I took over driving. &amp;nbsp;It turned out that the state park entrance was just a couple miles beyond where the GPS had told us to go. &amp;nbsp;There is a back entrance that is gated off, which is where Google Maps took us, and there is the main entrance a couple miles beyond that.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Once at our campsite Kim and I were in good spirits again. &amp;nbsp;She took the kids off to take showers while I prepped the van for sleeping. &amp;nbsp;When Kim came back I took a shower as Kim prepped the kids for sleeping. &amp;nbsp;After the kids climbed into the top, I told them a store where I retold the story of today, but I replaced us with a family of gorillas who visited the zoo to see the humans. &amp;nbsp;In my story, the youngest gorilla wanted to see the tall-people exhibit, the middle gorilla wanted to see strong-people exhibit, and the oldest gorilla wanted to see the tall-people exhibit. &amp;nbsp;The girls thought this was really funny, and they where in good spirits to go to sleep.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Then the girls got really hot. &amp;nbsp;I put the box fan in the top sleeping area blowing right on them, and I put Aurora's hair up. &amp;nbsp;Arianna went to sleep pretty easily, but Athena and Aurora had a pretty hard time getting to sleep in the heat. &amp;nbsp;Kim and I have to settle for the small fan that only plugs into the cigarette lighter.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-501376075737240498?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/501376075737240498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/06/south-east-tour-day-4-new-orleans.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/501376075737240498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/501376075737240498'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/06/south-east-tour-day-4-new-orleans.html' title='South-East Tour Day 4 - Audubon Zoo'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total><georss:featurename>Natchez State Park, 230 Wickcliff Rd # B, Natchez, MS 39120-9136, USA</georss:featurename><georss:point>31.6025962 -91.21453539999999</georss:point><georss:box>31.5815107 -91.24141639999999 31.623681700000002 -91.18765439999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-2617024390860078111</id><published>2011-06-13T20:37:00.001-04:00</published><updated>2011-06-13T20:39:25.942-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='family'/><category scheme='http://www.blogger.com/atom/ns#' term='Camping'/><title type='text'>South-East Tour Day 3 - New Orleans</title><content type='html'>&lt;div style="text-align: justify;"&gt;Today we toured the French Quarters of New Orleans. &amp;nbsp;Like most big cities, parking was insanely expensive, especially for someone like myself from Tallahassee where parking is almost always free, and if it not is just a couple of dollars, or usually even less.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We didn't get too far from our car before Athena started complaining about having to walk. &amp;nbsp;She has never been much of a walker, and it didn't seem like today she was going to start being one. &amp;nbsp;We pushed through a few blocks and I spotted Peaches Records. &amp;nbsp;We went in. &amp;nbsp;Kim and the girls got some Skittles while I perused their records.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;They had a lot of really great records, but they where way overpriced. &amp;nbsp;Most of the good ones where $30 or more. &amp;nbsp;There where a few good records that could be had for around $5, but I wasn't about to pick anything up regardless. &amp;nbsp;I'd doubt I could get any vinyl all the way home before it completely melted in this summer heat.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;After the Skittles where finished we walked a few more blocks down and then realized we should probably get some food soon. &amp;nbsp;Kim had prepaid for food at the House of Blues on &lt;a href="http://www.restaurant.com/"&gt;restaurant.com&lt;/a&gt;. &amp;nbsp;I would have not picked such a corporate place, but Kim was awesome for getting so many things taken care ahead of time, and the food there was good, so there was no reason to complain.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Unlike The House of Blues in Orlando, this one, praise Allah, had sweet tea. &amp;nbsp;The service was great, the food was good, and the kids perked up quite a bit, have been properly refrigerated, and tummies made full.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;When we got back on the streets the kids where in very good spirits. &amp;nbsp;We trucked along, passing street performers, almost all exclusively sitting around age of ten, passed artists showing off their distinctively New Orleans art, and went into some of the tourist trap shops. &amp;nbsp;The youth of the street performers was kind of unsettling. &amp;nbsp;One has to wonder if these kids are really the ones getting the money put in their box. &amp;nbsp;The tourist trap shops are really annoying. &amp;nbsp;They sell all sorts of horrible apparel with stupid sayings on them like, "I got bourbon faced on shit street" and stupid stuff like that, with the mandatory "New Orleans, LA" tag underneath the quote.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We stopped at Café du Monde for some beignets. &amp;nbsp;The place was absolutely packed with customers, and we had to search to find an empty table. &amp;nbsp;A man stood outside and sang songs, mostly spiritual hymns, while the patrons of the cafe clapped, sang, and offered him money. &amp;nbsp;We ate our beignets, took silly pictures of our faces covered in powdered sugar, watched the birds eat food form the ground, and then started back to the streets.&lt;br /&gt;We went to the outside market, which was pretty bare, and then stopped at Fiorella's for some cool drinks. &amp;nbsp;Fiorella's was my stop. &amp;nbsp;I've been wanting to visit it since seeing the video on youtube of the &lt;a href="http://www.youtube.com/watch?v=dzVCHv6FSbg"&gt;Preservation Hall Jazz Band's version of Comlicated Life&lt;/a&gt;, which features this restaurant. &amp;nbsp;We where too full to eat any food so we just sipped on waters and sodas.&lt;br /&gt;At this point it was getting pretty late, so we started to head back. &amp;nbsp;This time the kids where understandably tired, so Kim stopped with them at the intersection of Decatur St and Bienville St and I went to get the car. &amp;nbsp;The parking fee was $16. &amp;nbsp;On my way back to get them I overheard some hippy girl talking on her phone say, "You should see this rusty pile of shit. &amp;nbsp;Yeah ... yeah. &amp;nbsp;I don't think he's looking to sell." &amp;nbsp;She then turned to me and said, "Hey, would you be willing to sell this thing?" &amp;nbsp;I shook my head so she replied in a very nice voice, "You should take care of it," and then she walked away.&lt;br /&gt;On the way back to the campsite the kids where pretty tired, as where we. &amp;nbsp;Overall, we all had a lot fun, and saw lots of cool stuff. New Orleans is a place I'd like to visit again some time with just Kim and myself, so we can go do all of the night life stuff and see some jazz bands.&lt;br /&gt;Tomorrow we are planning on going to the local zoo, and, if we have time, to the Louisiana Children's Museum, and finally head towards Natchez Trace. &amp;nbsp;We will probably take the interstate and just go the same slow speeds we would take on the back roads.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-2617024390860078111?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/2617024390860078111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/06/south-east-tour-day-3-new-orleans.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/2617024390860078111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/2617024390860078111'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/06/south-east-tour-day-3-new-orleans.html' title='South-East Tour Day 3 - New Orleans'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total><georss:featurename>Bayou Segnette State Park</georss:featurename><georss:point>29.886188872596616 -90.16367589671171</georss:point><georss:box>29.869710372596614 -90.1722438967117 29.902667372596618 -90.15510789671171</georss:box></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-536763471884583082</id><published>2011-06-13T00:25:00.000-04:00</published><updated>2011-06-13T00:25:42.215-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='family'/><category scheme='http://www.blogger.com/atom/ns#' term='Camping'/><title type='text'>South-East Tour Day 2 - Bayou Segnette State Park</title><content type='html'>&lt;div style="text-align: justify;"&gt;This morning Kim was the first one up, followed by Athena and Aurora. &amp;nbsp;I got up last and began getting things packed up. &amp;nbsp;Arianna woke up very last. &amp;nbsp;She slept in the bottom bed with me. &amp;nbsp;Aurora and Kim slept up top. &amp;nbsp;Athena slept with Angel and Ashton.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Ashley made a breakfast of sausage patties and eggs. &amp;nbsp;There was also a bunch of watermelon my grandfather bought. &amp;nbsp;We were worried that there wasn't going to be enough food, but after cooking everything there was just enough to fill everyone's bellies.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Kim and I slowly got everything ready and eventually got things on the road. &amp;nbsp;After leaving the camp grounds we stopped by a Tom Thumb gas station for some ice and gas. &amp;nbsp;We then went across the street to Wal-Mart to get some other needed supplies, including letting the kids spend a little bit of the money we got for them to buy a toy to entertain them on the road. &amp;nbsp;Arianna got a mini version of the classic Fishing Game. &amp;nbsp;Athena bought herself a toy pony, and Aurora just got a bag of Skittles.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We kind of took our time in Wal-Mart because being in the air conditioning was feeling pretty nice. &amp;nbsp;However, we eventually drug ourselves back outside to the van and left around 12:30.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The initial estimation our GPS gave us to arrive in New Orleans was a little over four hours. &amp;nbsp;We had planned our trip so that we wouldn't be spending much more than four hours on the road each day. &amp;nbsp;I don't think the Google navigation software does a good job at taking into account the time that in-town driving has on stopping, going, and just generally having to drive slowly.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We stopped after about two and half hours on the road at a restartaurant called Saucy Q's. &amp;nbsp;It is a local Bar BQ place with some really great Bar BQ sauce in Mobile, AL. &amp;nbsp;Kim found herself eating french fries just to have something to dip into the sauce. &amp;nbsp;Everything there was really good, and it was worth pushing our already late lunch back a little bit to have some great local cooking.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;One of the great things about taking the back roads is all the cool towns you get to go through, and all the really nice scenery. &amp;nbsp;Interstates have a habit of looking almost identical no matter how far you travel them. &amp;nbsp;The back roads of west Florida, Alabama, Mississippi, and Louisiana are absolutely gorgeous. &amp;nbsp;The bad part, and this was really rough, is that our actual time from leaving Pensacola to arriving at our destination was almost eight hours, including gas and food stops.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The kids where absolutely amazing. &amp;nbsp;For them to be on the road that long and maintain the mostly (mostly being a strong word here) good attitudes was unexpected. &amp;nbsp;The Nintendo DS, and CR-48 laptop (tethered to my Android phone) helped a lot. &amp;nbsp;So did the toys the two girls purchased.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I drove the first leg of the trip, and Kim took the second. &amp;nbsp;Athena got the treat of riding in the front today, something they are taking turns doing each day. &amp;nbsp;So Aurora played with Arianna a lot, which was very helpful.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The coastline in Mississippi is something you don't here much about, but it was really great to drive through. &amp;nbsp;Kim was pretty jealous that she was having to do the driving at the part because the sites where so great to look at, but she had to keep her eyes on the road. &amp;nbsp;Aurora was very taken by the sites too. &amp;nbsp;There where a lot of old houses along the way that where just magnificent. &amp;nbsp;You could also see the remaining foundations of many other homes that where presumably swept away by Katrina. &amp;nbsp;There was also a lot of brand new homes that where probably built sometime after Katrina came through in the remains of fallen homes.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The entrance to Louisiana is really awesome. &amp;nbsp;There are beautiful swamps filled with tall swamp grass that go on for miles and miles. &amp;nbsp;We also noticed a very strong coffee smell which we think might be Chicory plants growing in the area, but we'll have to research that later.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;New Orleans appears to be a very diverse town where lots of cultures have taken route. &amp;nbsp;We passed by a very large Catholic monastary-looking area, followed by lots of Catholic churches and other Catholic features. &amp;nbsp;There was also a decidedly Asian area with what looked like Buddhist temples, and lots of other Asian culture buildings like restaurants and Buddhist worship areas.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;There was also jumps from very poor looking areas that suddenly, and the turn of a single street, turned into very ritzy neighborhoods with mansions for houses. &amp;nbsp;What we didn't see much of was any sign of regular middle-class sections.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Finally towards the end sanity began to break down as we made our last few turns to get into the state park. &amp;nbsp;Finding the campgrounds was confusing because the signs didn't exactly lead you to them. &amp;nbsp;We first found ourselves at a boat landing area, and then we turned around and found ourselves going down what looked like a road under development with big tractors and dirt movers parked everywhere.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I used the Google map to try to guide us into the camping area but what looked like an entrance to the camp area was in actuality roped off. &amp;nbsp;By this time Kim was freaking out so I took over the wheel and just drove around the rope and into the campsites. &amp;nbsp;It looked completely empty when we first entered. &amp;nbsp;All the sites where vacant. &amp;nbsp;I continued to drive until we finally found a few sites with occupants. &amp;nbsp;Finally, we found our site, and there was even someone else camping in the site next to ours, so we felt reassured that all was well.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;When we pulled in and parked Aurora began freaking out, after a very long trip of being very calm and in good spirits. &amp;nbsp;She was absolutely inconsolable. &amp;nbsp;She started getting a very nasty attitude towards her sisters and I had to put her at the bench away from everyone else.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I set up a tent we brought with us, so that we could put our stuff in it to keep the van empty. &amp;nbsp;As I got everything set up and moved everything we didn't need into the tent Aurora finally slowly settled down and then Athena got very grumpy.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We where going to have Kim take all the girls to shower so that I could get the bus set up and we could sleep. &amp;nbsp;I was going to shower the next morning. &amp;nbsp;However, Kim was not up to taking all three girls with Athena acting the way she was, so we all went up to the bath house and Athena bathed with me.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;She cried very loudly the whole time, and Kim and sisters could hear her through the wall. &amp;nbsp;When we where finally bathed we went to wait in the van and I let Athena lay down on the bottom bed, which I had pulled out. Upon laying down she was instantly settled down.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;When we got back to the site we got the bus all setup, and finally got each of the kids quited down and sleeping.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We are thinking about taking the Interstate, at a slow speed, for some of our future drives to save on time, even though the scenery won't be nearly as beautiful, because that much time on the road can really be draining, and we where really planning on keeping our road time to a minimum since a two week vacation of mostly driving isn't really much of a vacation at all.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-536763471884583082?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/536763471884583082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/06/south-east-tour-day-2-bayou-segnette.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/536763471884583082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/536763471884583082'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/06/south-east-tour-day-2-bayou-segnette.html' title='South-East Tour Day 2 - Bayou Segnette State Park'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total><georss:featurename>Bayou Segnette State Park</georss:featurename><georss:point>29.886991813540146 -90.164990179129</georss:point><georss:box>29.882340813540146 -90.172285679129 29.891642813540145 -90.15769467912901</georss:box></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-5177794248423680856</id><published>2011-06-12T01:08:00.001-04:00</published><updated>2011-06-12T01:09:33.279-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='family'/><category scheme='http://www.blogger.com/atom/ns#' term='Camping'/><title type='text'>South-East Tour Day 1 - Big Lagoon State Park</title><content type='html'>&lt;div style="text-align: justify;"&gt;Today we drove form our home in Tallahassee to Big Lagoon State Park.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Kim and I woke up around 7:30 this morning and we started doing the final stretch of loading up the Volkswagen, and cleaning up the house. &amp;nbsp;I made a breakfast of eggs, hash browns and toast. &amp;nbsp;The girls are usually up between 7:30 and 8:30, but when they where still not up around 9:00 we went ahead and woke them. &amp;nbsp;After feeding everyone and getting them ready for the day, we headed out. &amp;nbsp;We had to drop off Mollie with a pet sitter Kim found on Craig's List, and then we left town.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I drove the first leg of the trip all the way to Fort Walton Beach, taking Highway 20 almost the whole way. We dropped by a Subway for lunch, but ate in the car.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We arrived at the campsite around 4:30, making our trip around five hours, including the stopping for food and gas. &amp;nbsp;The kids where mostly well behaved on the trip, with the usual "I'm tired", "I'm hungry", and "How far?" along the way. &amp;nbsp;The bus held up like a champ the whole way too.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Nick and his family had stayed the previous night at one of the two campsites we had reserved, the night before. Him and my grandparents where already in their site when we arrived.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;After getting settled in, Nick helped us install a boat seat in the back for Kim to sit in while I drove. &amp;nbsp;He also helped me install second cigarette lighter in the dash, which is going to be crucial so I can charge my phone, and have another appliance, such as a fan, going.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The beach at Big Lagoon isn't really the nicest in Florida, but the kids surely didn't mind. &amp;nbsp;The water here is very calm, and there where plenty of other children around our children's age to keep them company. &amp;nbsp;Aurora had something sting her on her chest so Kim took her back to the camp grounds. &amp;nbsp;Towards the end Arianna and I made a big sand castle, which was nothing more than a big pile of sand we made from digging a hole in the beach and laying the sand from it in one big pile. &amp;nbsp;We found a hermit crab that we put in our hole, which was full of water, and declared our crab as being a citizen of our castle, which we where the rulers of. &amp;nbsp;After that it was time to head back to start getting things prepared for dinner. &amp;nbsp;Arianna lost her Star Wars sunglasses somewhere in the water.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Kim and Ashley went to the store to get supplies, since raccoons ate all the food Nick and Ashley had purchased the previous night. &amp;nbsp;Nick cooked up a meal of cheese burgers, corn and baked beans. &amp;nbsp;We spent the rest of the night with the kids keeping an out for raccoons that where constantly on the alert to find some abandoned plate of food.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We finally wound down the night with Kim taking Aurora to the showers, Athena sleeping with Nick's family, and me putting Arianna down to bed.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;All of the kids have agreed that so far they are having a really great time and are very excited about the nights to come.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-5177794248423680856?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/5177794248423680856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/06/south-east-tour-day-0-getting-ready_12.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5177794248423680856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5177794248423680856'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/06/south-east-tour-day-0-getting-ready_12.html' title='South-East Tour Day 1 - Big Lagoon State Park'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total><georss:featurename>Big Lagoon State Park Camp Site 51</georss:featurename><georss:point>30.313999062074334 -87.41541795633623</georss:point><georss:box>30.313709562074333 -87.41587395633623 30.314288562074335 -87.41496195633623</georss:box></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-1748152332378189846</id><published>2011-06-11T01:19:00.000-04:00</published><updated>2011-06-11T01:19:31.861-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Camping'/><title type='text'>South-East Tour Day 0 - Getting Ready</title><content type='html'>Starting tomorrow (technically today since it is past midnight) we will be heading off for a two week adventure across the South-East in our 1980 Volkswagen.&lt;br /&gt;&lt;iframe frameborder="0" height="300" marginheight="0" marginwidth="0" scrolling="no" src="http://maps.google.com/maps?f=d&amp;amp;source=s_d&amp;amp;saddr=2716+Juncture+Dr,+Tallahassee,+FL+32305&amp;amp;daddr=Big+Lagoon+State+Park,+12301+Gulf+Beach+Hwy,+Pensacola,+Florida+32507+to:Bayou+Segnette+State+Park,+Westbank+Expy,+Westwego,+LA+70094+to:29.97247,-90.30856+to:Natchez+State+Park,+Natchez,+MS+to:910+Riddick+Rd,+Millington,+Tennessee+to:1810+Stewarts+Ferry+Pike,+Hermitage,+TN+to:434+Elkmont+Road,+Gatlinburg,+TN+to:375+Wesley+Branch+Road,+Asheville,+NC&amp;amp;geocode=FbVizgEd5LD6-imdVtezLmLsiDE8kNL1TSW-4Q%3BFbGszgEdBFPK-imRy_OZYaWQiDFhawJRdqbPSA%3BFeMbyAEd9Tug-ilrySc-W7sghjFgKRQWrpADNQ%3BFfZXyQEdMACe-imPzCe_CsgghjGpTa0iAbjg1A%3BFaQ34gEdOS2Q-iHVFCd4ysgYBA%3BFQNMGwIdmjSi-ilvB2IuAYfVhzFosWxNRgnfRA%3BFU5fJwIdFwnX-in99YRjrxRkiDG_cTew2nB6pw%3BFSogIAId3aUE-ylvmTRlqFRZiDE5ZjTSo8_VBQ%3BFeOcHQIdaVQT-ylvb3SwaZJZiDHIhBY2JlHUhQ&amp;amp;gl=us&amp;amp;hl=en&amp;amp;mra=ls&amp;amp;via=3&amp;amp;dirflg=h&amp;amp;sll=34.216345,-86.000977&amp;amp;sspn=6.6931,14.27124&amp;amp;ie=UTF8&amp;amp;t=h&amp;amp;ll=33.431441,-86.396484&amp;amp;spn=10.992753,13.183594&amp;amp;z=5&amp;amp;output=embed" style="float: left;" width="300"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;We will be heading West to New Orleans, which I've been really wanting to visit for quite some time. We will then head North to Nashville, going back East through Nashville to Asheville, NC, then back down South and probably home.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We still have not yet planned our trip past Asheville, but it will probably involve a stop in Augusta, GA and a final stop at the Okefenokee Swamp State Park.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I have been able to use this trip as a way to motivate us to get some things done on the van that I've been meaning to take care of for quite some time. &amp;nbsp;I had my mechanic do some major engine work. &amp;nbsp;Kim and I also made curtains for the windows. &amp;nbsp;In fact, we just got done after midnight finishing the curtains.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The three girls are really excited about this trip, and Arianna has asked practically every day, "Are we going to start our trip tomorrow?" &amp;nbsp;Some mornings she'll even ask if the trip is starting that day. &amp;nbsp;So tonight I made a big deal out of how we would be leaving first thing tomorrow morning. &amp;nbsp;So yeah, we're all pumped.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Here's what we have planned so far.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;216 miles. 4:29&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Saturday 6/11: Pensacola, Fl Big Lagoon State Park Sites 50 &amp;amp; 51&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;222 miles. &amp;nbsp;4:43&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Sunday 6/12: New Orleans Bayou Segnette Site CI074&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Monday 6/13: New Orleans Bayou Segnette CI074&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;180 miles. 3:46&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Tuesday 6/14: Natchez Trace Parkway Natchez State Park 044, Campground B&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Wednesday 6/15: Memphis, TN&amp;nbsp;Meeman-Shelby Forest State Park&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Thursday 6/16: Memphis, TN&amp;nbsp;Meeman-Shelby Forest State Park&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;6/17: Nashville, TN Seven Points Campground&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Saturday 6/18 - Nashville, TN Seven Points Campground&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Sunday 6/19 - Great Smoky Mountains National Park, Tenn. Elkmont Campground, site A7&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Monday 6/20- Great Smoky Mountains National Park, Tenn. Elkmont Campground, site A7&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Tuesday 6/21- Lake Powhatan State Park Asheville, NC Site 21&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Wednesday 6/22- Georgia Somewhere&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Thursday 6/23 - Georgia Somewhere&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Friday 6/24- Okefenokee Swamp State Park&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Saturday 6/25 - Drive to Tallahassee&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Katie, Kim's sister, will be watching our cat for us. &amp;nbsp;We have paid an animal sitter to watch our dog Mollie. &amp;nbsp;I've now got to get back to the rest of our packing so I can hurry up and get to bed.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Oh yeah, and Kim has her own blog going on at&amp;nbsp;&lt;a href="http://baucumfamily.blogspot.com/"&gt;http://baucumfamily.blogspot.com/&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/2160921736769720124-1748152332378189846?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/1748152332378189846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/06/south-east-tour-day-0-getting-ready.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/1748152332378189846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/1748152332378189846'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/06/south-east-tour-day-0-getting-ready.html' title='South-East Tour Day 0 - Getting Ready'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-5275260154033103507</id><published>2011-05-14T23:18:00.004-04:00</published><updated>2011-07-25T08:03:49.629-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Install Boxee on Ubuntu 11.04 Natty Narwhal</title><content type='html'>&lt;div style="text-align: justify;"&gt;The Ubuntu package for the current version of Boxee as of this writing, 0.9.22.13692M, does not install on the latest version of Ubuntu. &amp;nbsp;It throws an error "Dependency is not satisfiable: libxmlrpc-c3" &amp;nbsp;The problem arises because libxmlrpc-c3 has been renamed to libxmlprc-c3-0.&amp;nbsp;&amp;nbsp;The solution is to modify the debian package and change its dependencies. &amp;nbsp;This is easier than it sounds, but you have to know how. &amp;nbsp;Download the debian installer from the Boxee website, and place it in your home directory and then open up a terminal&lt;/div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;dpkg-deb -x boxee-0.9.22.13692.i486.modfied.deb boxee&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;dpkg-deb --control&amp;nbsp;boxee-0.9.22.13692.i486.modfied.deb boxee/DEBIAN&lt;/span&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;Now we need to edit the file that lists the dependencies. &amp;nbsp;Run the first command to do it with a GUI, or the second to use vim.&lt;/div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;gedit boxee/DEBIAN/control&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;vi boxee/DEBIAN/control&lt;/span&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;Find libxmlrpc-c3 in this file and append -0 to the end of it so that is read "libxmlrpc-c3-0", and save the file. &amp;nbsp;Now we need to repackage our changes into a new debian package file.&lt;/div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;dpkg -b boxee boxee-works.deb&lt;/span&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;When it is done simply double-click the newly created boxee-works.deb file and install it with Software Center. &amp;nbsp;Hopefully it will not be too long before the peeps over at Boxee fix the package so that it Just Works™.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-5275260154033103507?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/5275260154033103507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/05/install-boxee-on-ubunty-1104-natty.html#comment-form' title='50 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5275260154033103507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5275260154033103507'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/05/install-boxee-on-ubunty-1104-natty.html' title='Install Boxee on Ubuntu 11.04 Natty Narwhal'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>50</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-7131821482315018681</id><published>2011-04-25T23:21:00.001-04:00</published><updated>2011-12-21T08:20:56.163-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>cx_Oracle on Ubuntu 11.04 Natty</title><content type='html'>&lt;div style="text-align: justify;"&gt;I used the following to install cx_Oracle on Ubuntu 11.04 for use with Python 3.2, though they should work with any version of Python supported by cx_Oracle. &amp;nbsp;This will basically involve using alien to convert lots of rpms into debian package. &amp;nbsp;Go ahead and install alien as well as some other libraries we will need.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo apt-get install alien libaio1 python3.2 libpython3.2&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Change the above to reflect the version of Python you want to use.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;First we need the Oracle Instant Client software. &amp;nbsp;Go to&amp;nbsp;&lt;a href="http://www.oracle.com/technetwork/topics/linuxsoft-082809.html"&gt;http://www.oracle.com/technetwork/topics/linuxsoft-082809.html&lt;/a&gt;&amp;nbsp;and download either the basic or basiclite rpm. &amp;nbsp;I did not try the basiclite client, but I think they should both work. &amp;nbsp;You can also grab sqlplus and whatever other packages you may need while working with Oracle, but only the basic package is needed for cx_Oracle to work. &amp;nbsp;Once downloaded convert it to a debian package.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo alien -d&amp;nbsp;oracle-instantclient11.2-sqlplus-11.2.0.2.0.i386.rpm&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Replace the above line with the appropriate version of the instant client that you downloaded.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Now install it.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo dpkg -i oracle-instantclient11.2-basic_11.2.0.2.0-2_i386.deb&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;We need to create a configuration file pointing to the oracle library folder.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo vi /etc/ld.so.conf.d/oracle.conf&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Depending on the version of the instant client installed you should have a folder like&amp;nbsp;/usr/lib/oracle/11.2/client/lib. &amp;nbsp;This folder should be the first line to the oracle.conf file we create here.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Finally, for our Oracle client install, we need to define our ORACLE_HOME. &amp;nbsp;We need to create a new file.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo vi /etc/profile.d/oracle.sh&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Add the following line, tweaking it as necessary to point to the version of Oracle you installed.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;export ORACLE_HOME=/usr/lib/oracle/11.2/client&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;On 64-bit installs then do the following line instead.&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;export ORACLE_HOME=/usr/lib/oracle/11.2/client64&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;Now that our client software is setup, we can install the python library to connect to Oracle.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Download cx_Oracle from&amp;nbsp;&lt;a href="http://cx-oracle.sourceforge.net/"&gt;http://cx-oracle.sourceforge.net/&lt;/a&gt;&amp;nbsp; I want the 11gR2 client for my x86 (32-bit) machine, and I want to use it with Python 3.2, so here I download the line labeled&amp;nbsp;CentOS 5 i386 RPM (Oracle 11g, Python 3.2) &amp;nbsp;Make sure NOT to download the Unicode version unless you know for sure you need it. &amp;nbsp;Download the version for the version of Oracle and Python that you plan on using. &amp;nbsp;Usually, regardless of the version of Oracle you plan on using, downloading the latest version will work with any of the older versions of Oracle.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;After downloading we use alien again to created a debian package.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo alien -d cx_Oracle-5.1-11g-py32-1.i386.rpm&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo dpkg -i cx-oracle_5.1-2_i386.deb&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The way our debian installs cx_Oracle isn't quite what Ubuntu needs, so run the following command to set things right.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cd /usr/lib/python2.6&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo mv site-packages/cx_Oracle* dist-packages/&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo rmdir site-packages/&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo ln -s dist-packages site-packages&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;If the dist-packages folder does not already exist, you may need to run the following.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo mkdir dist-packages&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Now you should be able to import the cx_Oracle module into Python and start creating connection.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;david@fink:/usr/lib/python3.2$ python3.2&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Python 3.2 (r32:88445, Mar 25 2011, 19:28:28)&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[GCC 4.5.2] on linux2&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Type "help", "copyright", "credits" or "license" for more information.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;gt;&amp;gt;&amp;gt; import cx_Oracle&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Profit!&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/2160921736769720124-7131821482315018681?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/7131821482315018681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/04/cxoracle-on-ubuntu-1104-natty.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/7131821482315018681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/7131821482315018681'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/04/cxoracle-on-ubuntu-1104-natty.html' title='cx_Oracle on Ubuntu 11.04 Natty'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-5070696001557813744</id><published>2011-03-18T18:20:00.000-04:00</published><updated>2011-03-18T18:20:56.543-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computers'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Connect to MySQL database from LibreOffice Base on Ubuntu</title><content type='html'>&lt;div style="text-align: justify;"&gt;LibreOffice's Base program can provide a quick easy way to access a MySQL database and write some reports against data. &amp;nbsp;The following outlines how to easily setup LibreOffice Base to connect to MySQL. &amp;nbsp;It assumes that you already have LibreOffice Base installed. &amp;nbsp;It works just as easily for OpenOffice Base.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;First we need to install the JDBC driver for MySQL&lt;/div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;sudo apt-get install libmysql-java&lt;/span&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;Next open up any LibreOffice program and then click on Tools-&amp;gt;Options. &amp;nbsp;Expand LibreOffice and then click on Java. &amp;nbsp;Click on the Class Path button on the right followed by Add Archive. &amp;nbsp;Browse to&amp;nbsp;/usr/share/java/mysql-connector-java.jar &amp;nbsp;Click Ok and choose to restart LibreOffice.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Now open LibreOffice Base and choose to Connect to an existing database. &amp;nbsp;In the drop-down menu choose MySQL, and connect using JDBC. &amp;nbsp;Click on the Test class button to make sure the JDBC driver loads successfully. &amp;nbsp;If it doesn't, then check that you followed the previous steps properly. &amp;nbsp;If it does load then simply enter the settings as it relates to your MySQL database.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;If you get the JDBC driver to load properly, but you cannot connect to your MySQL database, then I would recommend installing the mysql client and making sure you can connect from the MySQL client first. &amp;nbsp;If the JDBC driver loads properly, and you can connect to your database with the MySQL database, then you should not have any problem connecting with LibreOffice.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-5070696001557813744?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/5070696001557813744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/03/connect-to-mysql-database-from.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5070696001557813744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5070696001557813744'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/03/connect-to-mysql-database-from.html' title='Connect to MySQL database from LibreOffice Base on Ubuntu'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-7307655154478749956</id><published>2011-03-06T13:21:00.013-05:00</published><updated>2011-05-02T21:56:42.777-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Installing Oracle 11gR2 on Ubuntu 10.04 Lucid Lynx 32-bit</title><content type='html'>&lt;div style="text-align: justify;"&gt;These instructions are based largely off of the instructions for the 64-bit version of Ubuntu 10.04 found at&amp;nbsp;&lt;a href="http://www.pythian.com/news/13291/installing-oracle-11gr2-enterprise-edition-on-ubuntu-10-04-lucid-lynx/"&gt;http://www.pythian.com/news/13291/installing-oracle-11gr2-enterprise-edition-on-ubuntu-10-04-lucid-lynx/&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="http://www.pythian.com/news/2329/installing-oracle-11gr1-on-ubuntu-904-jaunty-jackalope/"&gt;http://www.pythian.com/news/2329/installing-oracle-11gr1-on-ubuntu-904-jaunty-jackalope/&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I did this install in a virtual machine, which I would strongly suggest you do first before doing it on a physical install that you intend to use.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Start off by logging in as the user you created during the install. &amp;nbsp;This user should have sudo powers. &amp;nbsp;First we need to install the libraries needed.&lt;/div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo apt-get install unzip build-essential x11-utils rpm ksh lsb-rpm libaio1&lt;/span&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;Ubuntu 10.04 comes with libstdc++6, but we need libstdc++5_3.3.6. &amp;nbsp;Browse to&amp;nbsp;&lt;a href="http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/"&gt;http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/&lt;/a&gt; and find the latest version. &amp;nbsp;When I wrote this it was 5_3.3.6-21. &amp;nbsp;Let's download and install it.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;wget &lt;a href="http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-21ubuntu1_i386.deb"&gt;http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-21ubuntu1_i386.deb&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;dpkg-deb -x libstdc++5_3.3.6-21ubuntu1_i386.deb ia32-libs&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo cp ia32-libs/usr/lib/libstdc++.so.5.0.7 /usr/lib/&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo ln -s /usr/lib/libstdc++.so.5.0.7 /usr/lib/libstdc++.so.5&lt;/span&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;Next, we need to setup the oracle users and groups.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo addgroup oinstall&lt;br /&gt;sudo addgroup dba&lt;br /&gt;sudo useradd -g oinstall -G dba -p password -d /home/oracle -s /bin/bash oracle&lt;br /&gt;sudo mkdir /home/oracle&lt;br /&gt;sudo chown -R oracle:dba /home/oracle&lt;br /&gt;sudo ln -s /usr/bin/awk /bin/awk&lt;br /&gt;sudo ln -s /usr/bin/rpm /bin/rpm&lt;br /&gt;sudo ln -s /usr/bin/basename /bin/basename&lt;br /&gt;sudo mkdir /etc/rc.d&lt;br /&gt;for i in 0 1 2 3 4 5 6 S ; do sudo ln -s /etc/rc$i.d /etc/rc.d/rc$i.d ; done&lt;br /&gt;sudo mkdir -p /u01/app/oracle&lt;br /&gt;sudo chown -R oracle:dba /u01&lt;/span&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;Various configuration files need to be modified. &amp;nbsp;Next we back up the original configuration file and add the configurations.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;echo 'fs.file-max = 6815744&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;fs.aio-max-nr = 1048576&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;kernel.shmall = 2097152&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;kernel.shmmax = 2147483648&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;kernel.shmmni = 4096&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;kernel.sem = 250 32000 100 128&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;net.core.rmem_default = 4194304&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;net.core.rmem_max = 4194304&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;net.core.wmem_default = 1048576&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;net.core.wmem_max = 1048576&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;net.ipv4.ip_local_port_range = 9000 65535&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;' | sudo tee -a /etc/sysctl.conf &amp;gt; /dev/null&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo cp /etc/security/limits.conf /etc/security/limits.conf.bak&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;echo 'oracle soft nproc 2047&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;oracle hard nproc 16383&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;oracle soft nofile 1023&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;oracle hard nofile 65535' | sudo tee -a /etc/security/limits.conf &amp;gt; /dev/null&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo sysctl -p&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;Now it is time to log out, and then log back in as our new oracle user. &amp;nbsp;As the oracle user download the software from oracle.com &amp;nbsp;You should be able to find it at&amp;nbsp;&lt;a href="http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html"&gt;http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Open a terminal and change into the directory where you downloaded both files. &amp;nbsp;And then run the following to unzip and run the installer.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;unzip linux_11gR2_database_1of2.zip&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;unzip linux_11gR2_database_2of2.zip&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cd database&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;./runInstaller&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;From here it is up to you which options you want to choose. &amp;nbsp;I used all the defaults and supplied 'password' for my passwords, since it is just a test install.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Last, we just need to setup our system paths.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo echo '&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;export ORACLE_BASE=/u01/app/oracle&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;export ORACLE_SID=orcl&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;export LD_LIBRARY_PATH=$ORACLE_HOME/lib&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;export PATH=$ORACLE_HOME/bin:$PATH&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;export EDITOR=/usr/bin/vi' &amp;gt;&amp;gt; /etc/profile&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;Your install is ready to go. &amp;nbsp;You should be able to log in with sqlplus, or any other IDE you want to use, based on the setup you chose during the install.&lt;br /&gt;Now, we need Oracle to start up on each reboot. &amp;nbsp;To do this we need to create an init script. &amp;nbsp;As root, create a file at /etc/init.d/oracledb with the following contents.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# /etc/init.d/oracledb&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# Run-level Startup script for the Oracle Listener and Instances&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# It relies on the information on /etc/oratab&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;# these are the paths for our base installation&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;export ORACLE_BASE=/u01/app/oracle&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;export ORACLE_HOME=/u01/app/oracle/product/11.1.0/jaunty11&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;export ORACLE_OWNR=oracle&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;export PATH=$PATH:$ORACLE_HOME/bin&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; echo "Oracle startup: cannot start"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; exit 1&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;case "$1" in&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; start)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # Oracle listener and instance startup&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo -n "Starting Oracle: "&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; touch /var/lock/oracle&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo "OK"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; stop)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # Oracle listener and instance shutdown&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo -n "Shutdown Oracle: "&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rm -f /var/lock/oracle&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo "OK"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; reload|restart)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $0 stop&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $0 start&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; *)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo "Usage: `basename $0` start|stop|restart|reload"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; exit 1&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;esac&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;exit 0&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;Now we need to make it bootable and tell Ubuntu to run it on bootup.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo chmod a+x /etc/init.d/oracledb&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo update-rc.d oracledb default&lt;/span&gt;&lt;/blockquote&gt;Use &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;dbca&lt;/span&gt; to create and manage databases, and use &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;netca&lt;/span&gt; to create and manage listeners.&lt;br /&gt;&lt;br /&gt;&lt;/div&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/2160921736769720124-7307655154478749956?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/7307655154478749956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/03/installing-oracle-11gr2-on-ubuntu-1004.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/7307655154478749956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/7307655154478749956'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/03/installing-oracle-11gr2-on-ubuntu-1004.html' title='Installing Oracle 11gR2 on Ubuntu 10.04 Lucid Lynx 32-bit'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-3174036810655497568</id><published>2011-03-05T20:40:00.002-05:00</published><updated>2011-03-05T20:55:54.734-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parenting'/><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><category scheme='http://www.blogger.com/atom/ns#' term='Aurora'/><title type='text'>Aurora's first manga</title><content type='html'>&lt;div style="text-align: justify;"&gt;Today we went to Borders so Aurora could spend a gift card she got for there.&amp;nbsp; I picked up a Python book and thumbed through it for a while.&amp;nbsp; Then Kim needed me to watch Aurora because she wanted to go look at books in places other than the kids section, where Athena and Arianna wanted to hang out.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Aurora had already picked out a book, but was still looking around.&amp;nbsp; We went over to the history section for a while a checked out what was in store there, and then started heading back to the kids section.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;On our way back we ran into the manga section, and I made a comment to Aurora about how I'd like for her to try manga to see if she liked it.&amp;nbsp; She started talking about putting her book back and I told her that she needs the book she wants to buy, not the one I want her to buy.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;She asked me what manga was about, so I randomly picked up a book that looked like it may be something in her area and showed her the first page.&amp;nbsp; I showed her how the first page is what we normally think of as the last page.&amp;nbsp; I then put the book back and started looking for something that I thought was closer to what she may like when she asked me for that same book back.&amp;nbsp; I explained it was just a book I randomly selected, not necessarily anything I thought she would like.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;While I looked around she thumbed through the book and declared she wanted to put her other book back and get the one I had shown her.&amp;nbsp; It is called &lt;a href="http://en.wikipedia.org/wiki/Neko_Rahmen"&gt;&lt;i&gt;Neko Ramen&lt;/i&gt;&lt;/a&gt;.&amp;nbsp; It is about a cat named Taisho who owns a Ramen shop and comes up with ridiculous ideas about how he can sell Ramen, such as using spaghetti noodles and calling it Italian Ramen.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I double checked she really wanted to get this book I just randomly grabbed off the shelf instead of the one she had already picked out.&amp;nbsp; She assured me she was, so she ended up buying it.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;On the way home she read through the book and thought it was really funny.&amp;nbsp; She thought it was really weird how the excited faces look.&amp;nbsp; I explained that it is part of the manga art style.&amp;nbsp; It took us both a while to realise that you ride from top-right, down, then move to the top of the next panel to the left.&amp;nbsp; We started off thinking you started at the top-right, moved left, and then down, until we realised why the panels sometimes made no sense.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I hope Aurora takes to this manga thing.&amp;nbsp; Aurora and I have didn't interests in books.&amp;nbsp; She likes non-fiction and historical fiction type books.&amp;nbsp; I prefer science fiction and fantasy.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I have been able to get her into the Narnia series.&amp;nbsp; We have finished &lt;i&gt;The Magician's Nephew&lt;/i&gt; and &lt;i&gt;The Lion, the Witch, and the Wardrobe.&lt;/i&gt;&amp;nbsp; At first she did not like &lt;i&gt;The Magician's Nephew&lt;/i&gt;, but she gave it a second shot and started to get into it.&amp;nbsp; We are presently taking a break from the Narnia series and reading &lt;i&gt;James and the Giant Peach&lt;/i&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;So, if this trend continues, Aurora and I will have more things to do together.&amp;nbsp; Plus, it has been nice reading good children's books that I would otherwise not put any interest into.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;As for me, I'm reading a chapter a day of an eleven-hundred plus page book on programming in Python, which is followed by another Python book that covers more advanced topics on the language and is equally as large.&amp;nbsp; Fun times. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-3174036810655497568?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/3174036810655497568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/03/auroras-first-manga.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/3174036810655497568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/3174036810655497568'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/03/auroras-first-manga.html' title='Aurora&apos;s first manga'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-7230633744705594127</id><published>2011-02-22T08:30:00.000-05:00</published><updated>2011-02-22T08:30:54.430-05:00</updated><title type='text'>Rebuilding invalid indexes in Oracle</title><content type='html'>&lt;div style="text-align: justify;"&gt;I wrote many moons ago &lt;a href="http://maxolasersquad.blogspot.com/2010/09/listing-invalid-partitions-in-oracle.html"&gt;a post&lt;/a&gt; on finding invalid indexes in an Oracle database. &amp;nbsp;I have since written a script to go through all the invalid indexes and attempt to rebuild them, going down to the partition or subpartition level. &amp;nbsp;I have used this script many times and it appears to work as advertised.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It uses the all_indexes, all_ind_partitions, and all_ind_subpartitions so that it can interrogate all indexes it has permissions to view. &amp;nbsp;It will attempt to rebuild the invalid indexes, and will report on any indexes it could see, but not rebuild. &amp;nbsp;If run as a DBA account, it should be able to rebuild all invalid indexes in the system.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;DECLARE&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;schema_name all_tab_partitions.table_owner%TYPE;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;table_name all_tab_partitions.table_name%TYPE;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;index_partition_name all_tab_partitions.partition_name%TYPE;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;CURSOR invalid_indexes IS&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;SELECT owner,&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;index_name,&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;table_owner,&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;table_name,&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;status,&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;partitioned&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;FROM all_indexes&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;WHERE owner NOT IN ('SYS', 'SYSTEM')&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;AND status != 'VALID'&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;AND&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;status != 'N/A'&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;OR index_name IN&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;      &lt;/span&gt;SELECT index_name&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;       &lt;/span&gt;FROM all_ind_partitions&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;       &lt;/span&gt;WHERE status != 'USABLE'&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;        &lt;/span&gt;AND&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;        &lt;/span&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;         &lt;/span&gt;status != 'N/A'&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;         &lt;/span&gt;OR index_name IN&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;         &lt;/span&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;          &lt;/span&gt;SELECT index_name&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;           &lt;/span&gt;FROM all_ind_subpartitions&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;           &lt;/span&gt;WHERE status != 'USABLE'&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;         &lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;        &lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;CURSOR tab_partitions IS&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;SELECT partition_name,&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;subpartition_count&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;FROM all_tab_partitions&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;WHERE table_owner = UPPER(schema_name)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;AND table_name = UPPER(table_name);&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;CURSOR tab_subpartitions IS&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;SELECT subpartition_name&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;FROM user_ind_subpartitions&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;WHERE partition_name = index_partition_name;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;successful_rebuilds NUMBER := 0;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;unsuccessful_rebuilds NUMBER := 0;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;BEGIN&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;FOR invalid_index IN invalid_indexes&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;LOOP&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;DBMS_OUTPUT.PUT_LINE('Rebuilding ' || invalid_index.owner || '.' || invalid_index.index_name);&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;IF invalid_index.partitioned = 'NO' THEN&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;BEGIN&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;EXECUTE IMMEDIATE('ALTER INDEX ' || invalid_index.owner || '.' || invalid_index.index_name || ' REBUILD');&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;successful_rebuilds := successful_rebuilds + 1;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;EXCEPTION&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;WHEN OTHERS THEN&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;unsuccessful_rebuilds := unsuccessful_rebuilds + 1;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;DBMS_OUTPUT.PUT_LINE('Unable to rebuild ' || invalid_index.owner || '.' || invalid_index.index_name || '. &amp;nbsp;' || SQLERRM);&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;END;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;ELSE&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;schema_name := invalid_index.table_owner;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;table_name := invalid_index.table_name;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;FOR tab_partition IN tab_partitions&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;LOOP&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;IF tab_partition.subpartition_count = 0 THEN&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;BEGIN&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;      &lt;/span&gt;EXECUTE IMMEDIATE('ALTER INDEX ' || invalid_index.owner || '.' || invalid_index.index_name || ' REBUILD PARTITION ' || tab_partition.partition_name || ' COMPUTE STATISTICS');&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;      &lt;/span&gt;successful_rebuilds := successful_rebuilds + 1;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;EXCEPTION&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;      &lt;/span&gt;WHEN OTHERS THEN&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;       &lt;/span&gt;unsuccessful_rebuilds := unsuccessful_rebuilds + 1;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;       &lt;/span&gt;DBMS_OUTPUT.PUT_LINE('Unable to rebuild ' || invalid_index.owner || '.' || invalid_index.index_name || ', for partition ' || tab_partition.partition_name || '. &amp;nbsp;' || SQLERRM);&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;END;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;ELSE&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;index_partition_name := tab_partition.partition_name;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;FOR tab_subpartition IN tab_subpartitions&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;LOOP&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;      &lt;/span&gt;BEGIN&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;       &lt;/span&gt;EXECUTE IMMEDIATE('ALTER INDEX ' || invalid_index.owner || '.' || invalid_index.index_name || ' REBUILD SUBPARTITION ' || tab_subpartition.subpartition_name);&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;       &lt;/span&gt;successful_rebuilds := successful_rebuilds + 1;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;      &lt;/span&gt;EXCEPTION&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;       &lt;/span&gt;WHEN OTHERS THEN&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;        &lt;/span&gt;unsuccessful_rebuilds := unsuccessful_rebuilds + 1;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;        &lt;/span&gt;DBMS_OUTPUT.PUT_LINE('Unable to rebuild ' || invalid_index.owner || '.' || invalid_index.index_name || ', for subpartition ' || tab_subpartition.subpartition_name || '. &amp;nbsp;' || SQLERRM);&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;      &lt;/span&gt;END;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;END LOOP;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;END IF;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;END LOOP;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;END IF;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;END LOOP;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;DBMS_OUTPUT.PUT_LINE(successful_rebuilds || ' indexes successfully rebuilt.');&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;DBMS_OUTPUT.PUT_LINE(unsuccessful_rebuilds || ' indexes could not be rebuilt.');&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;END;&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/2160921736769720124-7230633744705594127?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/7230633744705594127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/02/rebuilding-invalid-indexes-in-oracle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/7230633744705594127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/7230633744705594127'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/02/rebuilding-invalid-indexes-in-oracle.html' title='Rebuilding invalid indexes in Oracle'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-4015457925179569960</id><published>2011-01-07T10:56:00.001-05:00</published><updated>2011-01-07T11:08:13.147-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>How to sync your Facebook calendar to Evolution</title><content type='html'>&lt;div style="text-align: justify;"&gt;It looks like Facebook provides some very weak, but better than nothing, webcal support, that can be used to have your Facebook events show up in Evolution, and thus, on your Ubuntu desktop calendar.&lt;/div&gt;&lt;br /&gt;&lt;ol&gt;&lt;li style="text-align: justify;"&gt;Log in to Facebook and then browse to&amp;nbsp;&lt;a href="http://www.facebook.com/?sk=events"&gt;http://www.facebook.com/?sk=events&lt;/a&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;At the bottom, find the links that says, "Export Events"&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Right-click the webcal link and copy the link address.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;In Evolution, go to the Calendar section.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Click on New-&amp;gt;Calendar.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Under Type, choose On The Web.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Paste the link you copied from Facebook into the URL field.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Give the calendar a name, like "Facebook", and put your Facebook username in the Username field.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Click OK and then supply your Facebook password when prompted.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Profit.&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;This webcal is read only, so you cannot add Facebook events through Evolution, and invites won't be synched back to Facebook either.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-4015457925179569960?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/4015457925179569960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2011/01/how-to-sync-your-facebook-calendar-to.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/4015457925179569960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/4015457925179569960'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2011/01/how-to-sync-your-facebook-calendar-to.html' title='How to sync your Facebook calendar to Evolution'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-65061787690114729</id><published>2010-12-16T00:13:00.001-05:00</published><updated>2011-02-27T07:11:40.720-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>How to compile mame in Ubuntu 10.04 Lucid Lynx</title><content type='html'>Using the following instructions you should be able to compile Mame on Ubuntu 10.04 Lucid Lynx, though it should also work in most any other version of Ubuntu too.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Download the latest source from http://mamedev.org/release.html  Grab the .zip version.  The following command will grab the latest source as of the time I wrote this tutorial.&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;wget http://mamedev.org/downloader.php?file=releases/mame0140s.zip --user-agent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" -O mame_source.zip&lt;/span&gt;&lt;/blockquote&gt;Here we change the user/agent string, because the server is set to prevent robots, like wget, from programmatically downloading the file.&lt;/li&gt;&lt;li&gt;Unzip the file, and then unzip that file.  Place it anywhere you like, perhaps your home directory.&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;mkdir mame&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;unzip mame_source.zip&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;unzip mame.zip -d mame&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;rm mame.zip&lt;/span&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;Next we install all the libraries and dependencies necessary to build mame.&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo aptitude install build-essential libgtk2.0-dev libgnome2-dev libsdl1.2-dev&lt;/span&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;Finally, lets get to building it.&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cd mame&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;make&lt;/span&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;Let's setup a rom folder and get some roms.&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;mkdir roms&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cd roms&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;wget http://mamedev.org/roms/sidetrac/sidetrac.zip --user-agent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"&lt;/span&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;Now that we have legally obtained an arcade ROM, let's play it!&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cd ..&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Once you know what libraries to install, compiling Mame from source is quite easy in Ubuntu.  Drop me a line in the comments if this is helpful, or if you run into any problems or have any suggestions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-65061787690114729?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/65061787690114729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2010/12/how-to-compile-mame-in-ubuntu-1004.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/65061787690114729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/65061787690114729'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2010/12/how-to-compile-mame-in-ubuntu-1004.html' title='How to compile mame in Ubuntu 10.04 Lucid Lynx'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-5336152214263934695</id><published>2010-12-16T00:07:00.001-05:00</published><updated>2010-12-16T22:47:31.808-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computers'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Ubuntu Up and Running Book Review</title><content type='html'>&lt;div style="text-align: justify;"&gt;Note: This is a review of the O'Reilly book &lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Ubuntu: Up and Running&lt;/span&gt;. &amp;nbsp;I received this book through O'Reilly's &lt;a href="http://www.oreillynet.com/oreilly/bloggers/home.csp"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;Blogger Review Program&lt;/span&gt;&lt;/a&gt;. &amp;nbsp;When I received this book I was already in the middle of &lt;a href="http://machineofdeath.net/"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;Machine of Death&lt;/span&gt;&lt;/a&gt;, and JavaScript: The Definitive Guide. &amp;nbsp;So it took me a little longer than I expected to finish this book, and finally, get around to writing this review.&lt;br /&gt;This book touts itself as "A Power User's Desktop Guide." &amp;nbsp;This rather accurately defines the target audience of the book. &amp;nbsp;It is not for your average user, but for a technically inclined user who is interested in getting his or her hands dirty with Ubuntu.&lt;br /&gt;This book is very thorough, going step-by-step through each process, often times in what can be grueling detail for someone if such detail is not necessary. &amp;nbsp;I committed myself to not skipping any parts, and that made some parts of this book very hard to read, as it went through each and every single little click to perform certain tasks. &amp;nbsp;However, this attention to detail and verbosity probably makes this a very good read for the person who needs to be taken all the way to the finish line to understand the concepts being taught in this book. &amp;nbsp;This level of detail also makes it a good read for those who may not consider themselves all that technical literate, but are willing to put in the time and effort needed to really learn Ubuntu. &amp;nbsp;The first chapter of the book introduces the reader to Ubuntu, Linux, and the whole FOSS movement. &amp;nbsp;It lets the reader know that Ubuntu is more than just an operating system, but it is the leader in a movement that has been fighting the good fight for over thirty years. &amp;nbsp;After finishing this chapter, the reader should have a good idea of common open source idioms, such as free as in beer versus free as in freedom, and be familiar with some of the leaders in the open source movement including RMS, Torvalds, and Shuttleworth.&lt;br /&gt;With the history out of the way, the second chapter goes into installing Ubuntu. &amp;nbsp;Here the level of detail this book goes through is revealed. &amp;nbsp;Installing Ubuntu is a trivial task. &amp;nbsp;I've given disks to non-technical people, and they where able to get Ubuntu installed without any hand-holding. &amp;nbsp;However, this book doesn't just cover a vanilla install. &amp;nbsp;It covers dual-booting, an installing in VirtualBox, and installing through Wubi, as well as upgrading from a previous version.&lt;br /&gt;For each type of install, this book goes step-by-step, screen-by-screen, explaining everything along the way.&lt;br /&gt;I did feel that this book should have stressed the advantages of doing a real hard-disk install over a Wubi or virtual installation. &amp;nbsp;In my experience the other types of installations provide a significantly reduced experience over a real HD install.&lt;br /&gt;I also felt like there where some areas covered that where really unnecessary, and could give the impression that Ubuntu may be harder to get up and running than it really does. &amp;nbsp;This includes going over the different Function Key Options. &amp;nbsp;I feel that for the sake of brevity, and being relevant, these areas could be skipped. &amp;nbsp;A person who is likely to use these areas of the installer is unlikely to need this book anyhow.&lt;br /&gt;The book then moves on to configuring your installation, and then covers areas of use such as chapters devoted to multimedia, OpenOffice, etc. &amp;nbsp;I did feel that the order of chapters could have been laid out better.&lt;br /&gt;After getting the user to install Ubuntu, it probably would have been best to have an introduction to the desktop, going over the basic features of the Gnome interface, including the Menu Bar, the different widgets in the top-right, and the default folders in the home folder. &amp;nbsp;This would make the user comfortable with the basics of Gnome, and would encourage the user to discover the other features, such as web browsing, multimedia, etc. on their own.&lt;br /&gt;I believe Chapter 7, which covers the command line, should have been moved to the back. &amp;nbsp;It makes more sense, I believe, to cover all the tools that have been developed so that Linux users no longer have to master the command line to perform your usual tasks. &amp;nbsp;This could help dispel the fear that many users come in with, that if they don't master the command line, then Linux is not for them.&lt;br /&gt;While the true power-user, be they a Linux user, or otherwise, will spend a good deal of time on the command-line, I think it is important to stress to new users that the most important tasks can be performed through point-and-click.&lt;br /&gt;It also would have been helpful if this book had waited for Ubuntu 10.04 to come out, and spent more time focusing on the features of 10.04, since it is an LTS release, and would make this book more relevant over the next three years that this version of Ubuntu will be supported. &amp;nbsp;10.04 also alleviates some of the problems this book mentions such as the immaturity of the Empathy IM client in Ubuntu 9.10, making the suggestion of trying Pidgin somewhat more mute. &amp;nbsp;It could have also covered in better the Ubuntu One music store, if it had spent more time focusing on Ubuntu 10.04. &amp;nbsp;While this book says that it covers Ubuntu 9.10 and 10.04, it really covers 9.10, with some mentions of 10.04 enhancements.&lt;br /&gt;With all that said, I would stay give this a book a "would recommend" as it is very detailed, and can go a long way in taking the interested reader from being interested in Ubuntu, to reasonably well versed in Ubuntu.&lt;br /&gt;The chapter covering the command line is thorough and clear. &amp;nbsp;In fact, I learned a few things that I didn't about using some CLI tools installed in Ubuntu.&lt;br /&gt;I look forward to future versions of this book covering newer versions of Ubuntu, and hopefully, through the Blogger Review program, is touched up in some of its rough edges.&lt;br /&gt;I already have some friends and acquaintances lined up to borrow this book, as they have an interest in getting their feet a little more wet with Ubuntu.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-5336152214263934695?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/5336152214263934695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2010/12/ubuntu-up-and-running-book-review.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5336152214263934695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5336152214263934695'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2010/12/ubuntu-up-and-running-book-review.html' title='Ubuntu Up and Running Book Review'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-877546104591004613</id><published>2010-11-01T23:10:00.000-04:00</published><updated>2010-11-01T23:10:51.856-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computers'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='OSX'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Introducing Git-Notifier</title><content type='html'>&lt;div style="text-align: justify;"&gt;This evening I finished the preliminary base code for a project I have been working on called Git-Notifier. &amp;nbsp;Inspired by Gitifer for OSX, Git-Notifier provides pop-up notifications for updates of a remote git repository using libnotify in Ubuntu.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;As it stands, the program is currently a bash script, and configuration is a manual process.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;To get started, download the come from&amp;nbsp;&lt;a href="http://github.com/maxolasersquad/Git-Notifier/archives/v0.1"&gt;http://github.com/maxolasersquad/Git-Notifier/archives/v0.1&lt;/a&gt;&amp;nbsp;in either tar.gz or .zip format. &amp;nbsp;Extract the .gitnotifier folder to your home directory. &amp;nbsp;Extract the gitnotify.sh file to wherever you would like to execute it from. &amp;nbsp;I keep this file in my home directory as well.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Next cd into the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;~/.gitnotify&lt;/span&gt; directory and clone the remote repository using the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-n&lt;/span&gt; switch. &amp;nbsp;For example, to get notified of updates to the Git-Notifier application, do the following&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cd ~/.gitnotify&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git clone -n&amp;nbsp;git://github.com/maxolasersquad/Git-Notifier.git&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Finally, edit the file ~/.gitnotify/gitnotify.ini file. &amp;nbsp;To the right of repos=, list out each git project you have cloned. &amp;nbsp;Using the same example from above, the line would look like this.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;repos=Git-Notifier&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;If you have cloned any more repositories, simply list them all in the repos line, separated by a space.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Finally you can change how often the program looks for updates, and the pretty style to display the results. To see the different options for the pretty styel, run &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;man git show&lt;/span&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Once you have cloned the directories you want, with the -n switch, and you have configured the ini file appropriately, simply run the gitnotify.sh script. &amp;nbsp;As commits are made to the remote repository, you should get notifications on your deskop.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The code could probably use some love, and a few more features would be nice as well. &amp;nbsp;Once I am happy with how this script works, I'd like to port it over to python. &amp;nbsp;I'd also like to have better support for non-Ubuntu flavors of Linux, though I'm not sure what other notifications are out there that can be easily programmed from Bash.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Any bugs, fixes, improvements, etc. would be appreciated on the github site.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-877546104591004613?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/877546104591004613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2010/11/introducing-git-notifier.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/877546104591004613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/877546104591004613'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2010/11/introducing-git-notifier.html' title='Introducing Git-Notifier'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-3809751662912431280</id><published>2010-10-20T10:29:00.001-04:00</published><updated>2011-01-13T09:29:09.873-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computers'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><title type='text'>Migrating from subversion to git</title><content type='html'>&lt;div style="text-align: justify;"&gt;At work we have been migrating from subversion to git. &amp;nbsp;The projects that we still have in subversion I check out using &lt;a href="http://www.kernel.org/pub/software/scm/git/docs/git-svn.html"&gt;git-svn&lt;/a&gt;. &amp;nbsp;This allows me to use much of the git happiness while we make the transition. &amp;nbsp;It also performs another very nice function; it allows us to migrate our repositories to git keeping our full version control history.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;What follows demonstrates, from a Linux machine, to migrate a repository from http://svn.foo.com/bar to ssh://git.foo.com/repos/bar.git. &amp;nbsp;This assumes you already have git, subversion, and git subversion installed. &amp;nbsp;It also assumes that you have read access to the subversion repository, and a git repository you have direct access to.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git svn clone http://svn.foo.com/bar/trunk bar&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Next we need to log into the machine hosting our git repository. &amp;nbsp;We do this over ssh.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ssh foo.com&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cd ~/repos&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;mkdir bar.git&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cd bar.git&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git init --bare&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Back on our machine.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cd bar&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git remote add origin ssh://git.foo.com/repos/bar.git&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;git push origin master&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;You should now have a central git repository at ssh://git.foo.com/repos/bar.git &amp;nbsp;You can create your branches, and do whatever git-style version controlling that you wish. &amp;nbsp;The final step, of course, is to remove the old subversion repository so that others do not&amp;nbsp;accidentally&amp;nbsp;make changes that never find themselves in the real copy of the code.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;One limitation is that this process does not import any branches or tags from the subversion repository. &amp;nbsp;I'm not sure if there is a clean way to do this.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-3809751662912431280?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/3809751662912431280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2010/10/migrating-from-subversion-to-git.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/3809751662912431280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/3809751662912431280'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2010/10/migrating-from-subversion-to-git.html' title='Migrating from subversion to git'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-8272847682363448117</id><published>2010-10-14T13:10:00.000-04:00</published><updated>2010-10-14T13:10:50.353-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><title type='text'>Shuffling cards in PHP</title><content type='html'>The following demonstrates what I believe to be an efficient means of shuffling a deck of cards, using PHP.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;$cards = array(array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'01'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'02'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'03'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'04'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'05'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'06'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'07'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'08'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'09'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'10'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'11'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'12'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'13'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'14'),&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'01'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'02'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'03'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'04'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'05'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'06'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'07'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'08'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'09'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'10'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'11'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'12'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'13'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'14'),&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'01'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'02'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'03'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'04'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'05'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'06'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'07'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'08'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'09'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'10'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'11'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'12'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'13'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'14'),&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'01'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'02'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'03'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'04'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'05'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'06'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'07'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'08'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'09'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'10'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'11'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'12'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'13'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'14'));&lt;br /&gt;$shuffled_cards = array();&lt;br /&gt;while (sizeof($cards) != 0)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;mt_srand((double)microtime()*1000000);&lt;br /&gt;&amp;nbsp;&amp;nbsp;$card = mt_rand(0, sizeof($cards) - 1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;$shuffled_cards[] = $cards[$card];&lt;br /&gt;&amp;nbsp;&amp;nbsp;unset($cards[$card]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;$cards = array_values($cards);&lt;br /&gt;}&lt;br /&gt;print_r($shuffled_cards);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We start by initializing our deck of fifty-two cards. &amp;nbsp;Each member of our array is an associative array holding the suit and rank of each card. &amp;nbsp;We then initialize a blank array where we will store our shuffled cards.&lt;br /&gt;The while loop will execute until all of the cards have been popped out of our initial array.&lt;br /&gt;At the beginning of each iteration we start a new pseudo-random seed. &amp;nbsp;Then, we get a random number between zero, and the number of cards we have left to shuffle, minus one (because arrays are zero indexed.) &amp;nbsp;Next, we append the randomly selected card to our shuffled array and remove it from our cards array.&lt;br /&gt;When we remove a card from our numerically indexed array, the array becomes sparse. &amp;nbsp;So if the random number was four, then we are left with indexes one, two, three, five, six and so on. &amp;nbsp;If we hit four through another iteration, there would be no value to add to our shuffled array.&lt;br /&gt;To make our array dense again, we can simply call the array_values function on our cards array and assign it back to cards.&lt;br /&gt;This solution buys us a few&amp;nbsp;niceties, compared to other solutions I have come across. &amp;nbsp;First, at any given time a card is only in one array (except the split moment that we are doing the move). &amp;nbsp;The second is that we don't have to worry about our random number being the same as a previously picked random number, and thus waste time picking another number until we hit a unique number.&lt;br /&gt;Finally, this solution is really just an exercise in efficiently shuffling an array. &amp;nbsp;In a real application I would not use this solution at all. &amp;nbsp;PHP comes with a nice little function named, easy enough to remember, shuffle(). &amp;nbsp;So let's take a look at how one should really implement the solution.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$cards = array(array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'01'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'02'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'03'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'04'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'05'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'06'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'07'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'08'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'09'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'10'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'11'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'12'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'13'), array('suit'=&amp;gt;'Spade', 'rank'=&amp;gt;'14'),&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'01'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'02'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'03'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'04'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'05'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'06'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'07'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'08'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'09'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'10'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'11'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'12'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'13'), array('suit'=&amp;gt;'Club', 'rank'=&amp;gt;'14'),&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'01'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'02'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'03'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'04'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'05'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'06'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'07'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'08'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'09'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'10'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'11'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'12'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'13'), array('suit'=&amp;gt;'Diamond', 'rank'=&amp;gt;'14'),&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'01'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'02'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'03'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'04'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'05'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'06'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'07'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'08'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'09'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'10'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'11'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'12'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'13'), array('suit'=&amp;gt;'Heart', 'rank'=&amp;gt;'14'));&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;shuffle($cards);&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;print_r($cards);&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-8272847682363448117?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/8272847682363448117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2010/10/shuffling-cards-in-php.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/8272847682363448117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/8272847682363448117'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2010/10/shuffling-cards-in-php.html' title='Shuffling cards in PHP'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-3227272601520083257</id><published>2010-10-07T08:10:00.000-04:00</published><updated>2010-10-07T08:10:08.346-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Comic'/><title type='text'>Sucrose Progression</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_SaNJz2jXUyg/TK23ybJ4MSI/AAAAAAABA0U/Zvjs4VZWnuE/s1600/sucrose_progression.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_SaNJz2jXUyg/TK23ybJ4MSI/AAAAAAABA0U/Zvjs4VZWnuE/s1600/sucrose_progression.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This was made using the &lt;a href="http://catandgirl.com/?page_id=1391"&gt;Cat and Girl Maker&lt;/a&gt;&amp;nbsp;&amp;nbsp;The artwork is all Dorothy Gambrell, the dialog is mine. &amp;nbsp;The style is meant to closely resemble Dorothy's style for her Cat and Girl comics.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-3227272601520083257?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/3227272601520083257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2010/10/sucrose-progression.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/3227272601520083257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/3227272601520083257'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2010/10/sucrose-progression.html' title='Sucrose Progression'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_SaNJz2jXUyg/TK23ybJ4MSI/AAAAAAABA0U/Zvjs4VZWnuE/s72-c/sucrose_progression.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-5623478682010978429</id><published>2010-10-03T23:23:00.004-04:00</published><updated>2010-10-08T18:53:43.400-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computers'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Updating JOSM in Ubuntu</title><content type='html'>If you are a contributor to Open Street Map, and you run Ubuntu, then you probably use JOSM from time-to-time. &amp;nbsp;It has a lot of great tools that are not available in the online editor. &amp;nbsp;My favorite is the Orthogonalize Shape tool.&lt;br /&gt;Anyhow, I got tired of being told to update each time I started the application. &amp;nbsp;Plus, I like being up to date. &amp;nbsp;Since Ubuntu only gets an updated version of JOSM with each new release of Ubuntu, I decided to find out how to cleanly update JOSM in a way that integrates well with the currently installed JOSM. &amp;nbsp;Here's what I did.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Go to&amp;nbsp;&lt;a href="http://josm.openstreetmap.de/"&gt;http://josm.openstreetmap.de/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Under the Download section, click on the "tested JOSM" link and save it.&lt;/li&gt;&lt;li&gt;Under a terminal run the following.&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;sudo cp ~/Downloads/josm-tested.jar /usr/share/josm/&lt;br /&gt;cd /usr/share/josm/&lt;br /&gt;sudo ln -f -s josm-tested.jar josm.jar&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Change ~/Downloads/josm-test.jar to the location in which you saved the josm-tested.jar file.&lt;/span&gt; &lt;/ol&gt;Now when you run JOSM the way you always have, it will load the latest stable version of JOSM.&lt;br /&gt;&lt;div&gt;When you first start JOSM you should go ahead and update your plugins.&lt;/div&gt;&lt;div&gt;This was testing in Ubuntu Lucid 10.04, but should work with any version of Ubuntu, and with any version of JOSM. &amp;nbsp;If it doesn't for any reason, respond in the comments below.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-5623478682010978429?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/5623478682010978429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2010/10/updating-josm-in-ubuntu.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5623478682010978429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5623478682010978429'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2010/10/updating-josm-in-ubuntu.html' title='Updating JOSM in Ubuntu'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-2381303283611064231</id><published>2010-09-03T14:12:00.004-04:00</published><updated>2011-02-22T08:32:06.842-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='PL/SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><title type='text'>Listing invalid indexes in Oracle</title><content type='html'>I have often seen it asked online many times how to get a list of invalid indexes. &amp;nbsp;The information was mostly incomplete, and often contained misinformation. &amp;nbsp;Determined to solve this problem once and for all I wrote a query to get a list of invalid indexes on our Oracle 10g database.&lt;br /&gt;&lt;br /&gt;Before we get on to the query, I'd like to note what makes finding invalid indexes so difficult, and how to overcome these obstacles.&lt;br /&gt;&lt;br /&gt;Finding invalid global indexes is rather easy.  Global indexes are your standard indexes you use and love every day.  They are simply an index on a column, or columns in a standard non-partitioned table.  Oracle provides a nice little view called &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;all_indexes&lt;/span&gt;, which has a column named status. This view will return a list of all indexes that the user running the query has permissions to view. &amp;nbsp;There is also the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;dba_indexes&lt;/span&gt; view and the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;user_indexes&lt;/span&gt; view. &amp;nbsp;The status column can be one of three values, &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;VALID&lt;/span&gt;, &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;INVALID&lt;/span&gt;, or &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;N/A&lt;/span&gt;.  Global indexes will never have a status of &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;N/A&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;We run into trouble if we try to query &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;WHERE status != 'VALID'&lt;/span&gt; if our database has any partitioned tables with partitioned indexes and potentially bring back valid indexes. &amp;nbsp;Partitioned tables, and their indexes, save the lives of millions of baby every year, so we must give them our full respect, and do the necessary extra work that is required to account for the quirks they sometimes bring to our code.&lt;br /&gt;&lt;br /&gt;Partitioned indexes will always have a status of &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;N/A&lt;/span&gt; in the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;all_indexes&lt;/span&gt; view. &amp;nbsp;Each of these indexes will have a partitioned index, which we can see by querying the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;all_ind_partitions&lt;/span&gt; view. &amp;nbsp;Again, we also have the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;dba_ind_partitions&lt;/span&gt; and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;user_ind_partitions&lt;/span&gt; views available to us as well. &amp;nbsp;This table contains all partitioned indexes, along with a status column. &amp;nbsp;This status column works a little bit differently. &amp;nbsp;Its possible values are &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;USABLE&lt;/span&gt;, &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;UNUSABLE&lt;/span&gt;, and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;N/A&lt;/span&gt;. &lt;br /&gt;&lt;br /&gt;If our index'es partitioned indexes are marked as usable then we know our index is valid. &amp;nbsp;However, we could again run into a case where our &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;status&lt;/span&gt; column is marked as &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;N/A&lt;/span&gt;. &amp;nbsp;Partitioned indexes can go a level deeper and have their own subpartitioned indexes. &amp;nbsp;Determined, we pick up our shovel and keep digging deeper.&lt;br /&gt;&lt;br /&gt;Oracle provides us with a third view named &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;all_ind_subpartitions&lt;/span&gt;. &amp;nbsp;Like the above views, we also have&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;user_ind_subpartitions&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt; and &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;dba&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;_ind_subpartitions&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;. &amp;nbsp;Again, we have a status column. &amp;nbsp;This time, though, we can only have two possible values, &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;USABLE&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;, and &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;UNUSABLE&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;. &amp;nbsp;At this point, we can determine if our index is valid or not by looking at its partition's subpartition's status.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Okay, so this is all well and good, but what we really need is a query that will give us the name of indexes that need rebuilding. &amp;nbsp;Global indexes do not have partitions, and not all partitioned indexes have subpartitions, yet we want to know all invalid indexes, regardless of their makeup. &amp;nbsp;The following query accomplishes this.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SELECT&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: small;"&gt;index_name&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;FROM all_indexes&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WHERE owner NOT IN ('SYS', 'SYSTEM')&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;AND status != 'VALID'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;AND&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;status != 'N/A'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;OR index_name IN&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SELECT index_name&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;FROM all_ind_partitions&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WHERE status != 'USABLE'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;AND&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;status != 'N/A'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;OR index_name IN&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;SELECT index_name&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;FROM all_ind_subpartitions&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;WHERE status != 'USABLE'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;I'll leave dissecting how this query works as a lesson to the reader. &amp;nbsp;Here I am also leaving out the indexes owned by &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;SYS&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt; and &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;SYSTEM&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;, but you can remove that line if you need those indexes listed as well.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;I do presently have an anonymous block that makes a cursor out of this query, loops through it, and builds all indexes, partitioned indexes, and subpartitioned indexes, as is appropriate. &amp;nbsp;I am still working on making sure that it is battle hardened. &amp;nbsp;After that I'll post about how I accomplish this. &amp;nbsp;Combined they provide an elegant solution to finding all of your invalid indexes and rebuild them.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;If you find this helpful, or have some additional information to provide, please do so in the comment section below.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Edit: The script is available at &lt;a href="http://maxolasersquad.blogspot.com/2011/02/rebuilding-invalid-indexes-in-oracle.html"&gt;Rebuilding invalid indexes in Oracle&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-2381303283611064231?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/2381303283611064231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2010/09/listing-invalid-partitions-in-oracle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/2381303283611064231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/2381303283611064231'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2010/09/listing-invalid-partitions-in-oracle.html' title='Listing invalid indexes in Oracle'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-3694777230148236512</id><published>2010-08-05T13:06:00.004-04:00</published><updated>2010-09-30T11:56:51.152-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='PL/SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><title type='text'>Dynamic column ordering and paging in PL/SQL</title><content type='html'>&lt;div style="text-align: justify;"&gt;Update 09/30/2010: There was a problem with how I was doing the dynamic ordering. &amp;nbsp;I have resolved this and updated the post.&lt;br /&gt;&lt;br /&gt;The following demonstrates how a PL/SQL function or procedure can take in parameters, and dynamically sort based on those parameters.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Let's start with an example. &amp;nbsp;This example accepts two parameters, a VARCHAR2 that will be the column we want to sort on, and a REF CURSOR. &amp;nbsp;The REF CURSOR is an out variables that the calling program can use to iterate through to get the result set.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;TYPE cursortype IS REF CURSOR;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;PROCEDURE sort_example&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;sort_column VARCHAR2,&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;result_set OUT&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cursortype&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;) AS&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;BEGIN&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;OPEN result_set FOR&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;SELECT column_one,&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;column_two&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;FROM example_table&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;ORDER BY DECODE&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;(&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UPPER(sort_column),&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;'COLUMN_ONE',&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;column_one,&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;'COLUMN_TWO',&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;column_two,&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;column_one&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;);&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;EXCEPTION&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;WHEN OTHERS THEN&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;NULL;//Real error handling should go in this exception block.&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;END;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;DECODE&lt;/span&gt; statement&amp;nbsp;examines&amp;nbsp;the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sort_column&lt;/span&gt; passed in and matches it to an actual column in the table(s) that we are selecting from. &amp;nbsp;If the variable passed in is not in our list of columns then it will default, in this example, to &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;column_one&lt;/span&gt;.&lt;br /&gt;Using this technique we have to define, up front, all of the columns that we are going to allow the calling procedure to order by. &amp;nbsp;If we want to allow ordering by any column, we must go through and list them out one-by-one.&lt;br /&gt;It is also a good idea to add some extra validation, beyond the DECODE clause, to make sure that &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sort_column&lt;/span&gt; is an actual column in the table. &amp;nbsp;In our real packages that do this, we have an out variable named &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;message&lt;/span&gt;. &amp;nbsp;If an invalid column name is passed in we notify the calling program by sticking a message to that effect in our &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;message&lt;/span&gt; variable.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;To make our procedure even more robust, it is nice to have the ability to decide if the column should be sorted in ascending or descending order.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This gets a little tricker, and to accomplish&amp;nbsp;we need to understand how ROWNUM works in PL/SQL. &amp;nbsp;When a query is executed, Oracle assigns each returned result a pseudo-column nmaed ROWNUM, with the first returned row having a ROWNUM of 1, the second 2, etc.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Through a subquery, and ROWNUM, we can dynamically sort in either ascending or descending order.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;TYPE cursortype IS REF CURSOR;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;PROCEDURE sort_example&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;(&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;sort_column VARCHAR2,&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;sort_direction VARCHAR2,&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;result_set OUT cursortype&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;) AS&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;BEGIN&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;OPEN result_set FOR&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;SELECT *&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;FROM&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;(&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;SELECT column_one,&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;column_two&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;FROM example_table&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ORDER BY DECODE&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UPPER(sort_column),&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;'COLUMN_ONE',&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;column_one,&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;'COLUMN_TWO',&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;column_two,&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;column_one&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;)&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;ORDER BY&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;CASE&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;WHEN UPPER(sort_direction) = 'DESC' THEN&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;ROWNUM * -1&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;ELSE&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;ROWNUM&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;END&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;EXCEPTION&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;WHEN OTHERS THEN&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;NULL;//Real error handling should go in this exception block.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;END;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;Here we have our original query, initially sorting on the passed in column, that is&amp;nbsp;subqueried&amp;nbsp;and then sorted again, either on the rownum, or the opposite of rownum. &amp;nbsp;If the calling program passed in 'DESC' for the sort_direction, then we sort descending, if anything else is passed in we sort ascending.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;We can take this maddening query a step further, utilizing rownum again, to handle paging. &amp;nbsp;We use this in our applications to push paging out of our interface code, and onto the database. &amp;nbsp;It is much quicker for our database to only return ten or so results we want to show on each page, then to return the whole set of data, and have our PHP application parse through the data.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;So here is our final procedure, with dynamic sorting and paging.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;TYPE cursortype IS REF CURSOR;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;PROCEDURE sort_example&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;(&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;sort_column VARCHAR2,&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;sort_direction VARCHAR2,&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;start_row NUMBER,&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;end_row NUMBER,&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;result_set OUT cursortype&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;) AS&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;BEGIN&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;IF start_row &amp;lt; 1 THEN&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;start_row = 1&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;END IF;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;IF start_row &amp;gt; end_row THEN&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;end_row = start_row;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;ELSIF end_row IS NULL THEN&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;end_row = start_row + 10;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;END IF;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;OPEN result_set FOR&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;SELECT *&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;FROM&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;(&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;SELECT ROWNUM rnum,&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;column_one,&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;column_two&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;FROM&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;(&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;SELECT *&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;FROM&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;(&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;SELECT column_one,&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;column_two&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;FROM example_table&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;ORDER BY DECODE&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;(&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UPPER(sort_column),&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;'COLUMN_ONE',&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;column_one,&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;'COLUMN_TWO',&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;column_two,&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;column_one&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;)&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;ORDER BY&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;CASE&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;WHEN UPPER(sort_direction) = 'DESC' THEN&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;ROWNUM * -1&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;ELSE&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;ROWNUM&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;END&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;WHERE rnum &amp;gt;= start_result&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;AND rnum &amp;lt;= end_result&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;ORDER BY rnum&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;EXCEPTION&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;WHEN OTHERS THEN&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;NULL;//Real error handling should go in this exception block.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;END;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Yes, this one is a beast. &amp;nbsp;Starting at the child-most query, we have our SELECT statement, ordering the data by the column passed in. &amp;nbsp;In the parent query we then use ROWNUM, and the sort_direction argument to sort either ascending or descending. &amp;nbsp;We subquery these results, capturing the ROWNUM into an aliased column named rnum, so that in it's parent query we can refer to it's ROWNUM, and not some other ROWNUM from any other part of the query. &amp;nbsp;In the parent-most query we use our new rnum column to get only the data from the rows asked for.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Before you do any querying, we check the validity of the start_result and end_result arguments to make sure they actually make sense. &amp;nbsp;If they don't then we do some manual patching. &amp;nbsp;You may want to handle this differently, such as throwing an exception. &amp;nbsp;It is really up to you. &amp;nbsp;We have a DEFAULT_PAGING environmental variable we store in our database. &amp;nbsp;When end_result is NULL, then we set it to start_result plus our DEFAULT_PAGING variable.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;You may look at this and think it is complicated, and probably performs very poorly. &amp;nbsp;In our testing, as long as your inner-most query has the proper indexes and constraints, the performance is actually pretty good. &amp;nbsp;In our environment, it is definitely much faster than having our PHP parse through all the results, sort and order the whole thing, and then cut out only the rows we actually want, especially when we have result sets that are well over 100,000 rows long.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;There is one final step we take, so that our interface application knows how many results there are in the whole query, so that it knows how many pages it can expect there to be. &amp;nbsp;This example won't show it, but we actually check for a cached rowcount first, and we have all sorts of logic to try to guarantee integrity of those results, but I'm not going to get into all that here.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;TYPE cursortype IS REF CURSOR;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;PROCEDURE sort_example&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;(&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;sort_column VARCHAR2,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;sort_direction VARCHAR2,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;start_row NUMBER,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;end_row NUMBER,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;result_set OUT cursortype,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;rowcount OUT NUMBER&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;) AS&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;BEGIN&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;IF start_row &amp;lt; 1 THEN&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;start_row = 1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;END IF;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;IF start_row &amp;gt; end_row THEN&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;end_row = start_row;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;ELSIF end_row IS NULL THEN&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;end_row = start_row + 10;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;END IF;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;OPEN result_set FOR&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;SELECT *&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;FROM&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;(&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;SELECT ROWNUM rnum,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;column_one,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;column_two&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;FROM&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;(&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;SELECT *&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;FROM&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;(&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;SELECT column_one,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;column_two&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;FROM example_table&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;ORDER BY DECODE&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;(&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UPPER(sort_column),&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;'COLUMN_ONE',&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;column_one,&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;'COLUMN_TWO',&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;column_two,&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;column_one&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;)&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;ORDER BY&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;CASE&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;WHEN UPPER(sort_direction) = 'DESC' THEN&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;ROWNUM * -1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;ELSE&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;ROWNUM&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;END&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;WHERE rnum &amp;gt;= start_result&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;AND rnum &amp;lt;= end_result&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;ORDER BY rnum&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;SELECT COUNT(*)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;INTO rowcount&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;FROM example_table;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;EXCEPTION&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;WHEN OTHERS THEN&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;NULL;//Real error handling should go in this exception block.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;END;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;With any luck this will help someone out. &amp;nbsp;With better luck, someone will drop by and offer some tips on how to do this even better.&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/2160921736769720124-3694777230148236512?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/3694777230148236512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2010/08/dynamic-column-ordering-and-paging-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/3694777230148236512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/3694777230148236512'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2010/08/dynamic-column-ordering-and-paging-in.html' title='Dynamic column ordering and paging in PL/SQL'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-1955709044518801943</id><published>2010-07-09T12:39:00.001-04:00</published><updated>2010-07-09T12:44:45.149-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>iDrive vs. Android Engine</title><content type='html'>I remember when Apple first announced the release of iDrive, the first car manufactured by Apple.  I was sitting in the doctor's office when the news shifted from reports of civil rights abuses in Russia to the iDrive.  The car sounded amazing.  I didn't get it immediately, but all the Youtube videos showing off the great features had me putting my money down six months after the release.&lt;br /&gt;The thing was slick.  It had all the features that futurists have been saying a car would have one day for the last fifty years.  When I approached the car it used biometrics to recognize me and automatic unlock and open the driver's door.  When my wife approached the passenger door it did the same for her.  I decided I'd visit my fellow grease-head friend to show off my latest purchase.&lt;br /&gt;I simply spoke his name and it started driving itself to his house.  The ride was real smooth.  You could barely feel the turns or bumps when it went over bumpy roads.  A couple miles down the road I grabbed the steering wheel, and put it in to manual mode.  Once I took control I knew that this was what driving was always meant to be.  I was in heaven.&lt;br /&gt;I drove for a few more miles and then put it back in automatic.  I wanted to see how it performed parking at my buddies house.  To my amazement it pulled right up to his driveway and parallel parked, making sure not to be in the yellow-painted no-parking zone.  It was simply amazing.&lt;br /&gt;So I pulled my friend out of his house and showed off my new iDrive.  We went for a spin around the neighborhood and he admitted the thing was as sweet as he had heard.&lt;br /&gt;I asked him if he was planning on getting one.  He kind of looked at me blankly and then asked me to pop the hood.  When I did I was pretty taken back by what I saw.  There was a huge metal covering over the engine.  I thought I would just pop it off, but when I looked for a way to do it, I couldn't find any nut or bolts, or anything so I could remove it.  I peeked on the underside and it was the same story.  He pointed at the cover and said, "I can't bring myself to buy something with those ridiculous restrictions."  I thought he was overreacting and brushed it off.&lt;br /&gt;I figured that sooner or later I'd find out how to get that thing off and start digging around at the engine.  Like my buddy, I'm a grease-head.  I got my first car when I was 14, not even old enough to drive, and by the time I had a license in my hand, I had gone through every inch of that machine and had some sort of custom modification.  I've done the same to every car I've owned ever since.  I wasn't going to let some silly cover get in my way of finding out how this thing works and improving upon it.&lt;br /&gt;When I got home I was on a mission.  I was going to get that cover off by nightfall.  I pulled the iDrive into my shop and pulled out all of my tools.  I spent two hours without getting anywhere.&lt;br /&gt;Frustrated, I pulled out my laptop and did a little Googling.  First hit for "iDrive engine case" had instruction on how to get the thing open.  The directions where poorly written, and the process was a little convoluted, but it seemed like it should work.  There was one pretty big problem.  At the top of the instruction the site anounced:&lt;br /&gt;&lt;blockquote&gt;Warning: Cracking your iDrive could potentially void your car's warranty and insurance.&lt;/blockquote&gt;This had to be a joke.  I went back to the Apple dealership and asked them about opening up the engine cover.  They explained that removing the cover would not only void both my warranty and insurance, but it was illegal.  I laughed in his face and drove home a little confused.&lt;br /&gt;Some more research on the Internet confirmed the Apple representatives claims.  In fact, it seemed to be a pretty big discussion on the Internet.  Trolls and flame wars abounded in various chat rooms.  When I asked about it on the iDrive IRC channel, the simply asking of the questions seemed to warrant some pretty emotionally charged statements from some people.  I didn't think simply asking the question would get me attacked.&lt;br /&gt;It turned out to be even worse.  Not only could I not get to my engine, but nobody else was allowed to either, unless they where a certified Apple technician.  I am a grease head, but I also have a mechanic who has been working on my cars for the last fifteen years.  Between my personal and professional life I don't always have the time to fix stuff when it breaks.  My mechanic has shown me that he can be trusted and does excellent work.  Ever since I've found him I've never taken my car to anyone else.  The idea that I would be forced to go to some stranger was absurd.&lt;br /&gt;Online there seemed to be a lot of apologizers out there, supporting Apples policies.  They argued that Apple was simply ensuring a quality experience.  The average person doesn't care how their car work, they just want it to run.  By only allowing repairs from certified technicians Apple could guarantee their customers didn't just take it to Joe mechanic and get screwed over.  (Incidentally, my mechanics name is Joe.)&lt;br /&gt;As if this wasn't enough, I also could only accessorize my car with products that Apple has licensed.  The cigarette lighter was even shaped differently, so none of my devices that would plug into a cigarette lighter would work in my car.  The gas intake was different too.  I noticed that many of the gas stations advertised that they sold 'Apple Go', which simply meant they had pumps that would fit in an iDrive.  It seemed that none of my standard car stuff worked in my iDrive.  The only way to even get music was synchronize it with your iTunes library.&lt;br /&gt;Of course, the Apple stores carried all the accessories that did work, but I wasn't really looking forward to replacing all the stuff I already owned.&lt;br /&gt;Even if your iDrive broke down, and you where going to take it to an Apple certified technician for repairs, you also had to get an Apple certified wrecker to come tow it.&lt;br /&gt;The outrage seemed obvious to me.  Here I was with an otherwise fantastic machine, but it had all of these artificial barriers placed on it.  The stated line was to "ensure the customer experience", but it seemed to me that it was just a way to funnel all the money through Apple.  Other people got it, but it seemed limited to other car geeks like me.  And even within our group there was a pretty strong fan-based who seemed to not care that their freedoms had been all but removed from their car.&lt;br /&gt;Stuck with the car I figured I would make the most of it.  I did purchase some extra accessories from Apple, and a few other certified vendors.  They where all pretty amazing.  One shaved my face for me on the way to work.  Another would show me meta-data about my surroundings, overlaying 3D information about points of interest on the windows.  Google came out with an application that would detect traffic problems and reroute you, but Apple rejected it.&lt;br /&gt;A year and a half later, back at the doctor's office, the news reported on Google's new Android engine, just after discussing reports of improvements in the rights for Russian citizens.  It was an engine built collaboratively with other manufacturers as a competitor to the iDrive.  The computer in the engine would be based off the Linux kernel.  A year after that Volvo released the first vehicle with the Android engine.  The reviews online gave it high marks, but many where saying it still didn't compare in quality to the iDrive.&lt;br /&gt;Finally a car called the Droid-Z was released.  A soon as I test drove the thing I knew it was time to ditch the iDrive.  I sold it on e-bay and immediately picked up my Droid-Z.  The default features that is shipped with where absolutely on par, or better, than the iDrive.&lt;br /&gt;Pumped, I drove to my buddies house again.  The first thing I did when he came out is pop open my hood.  The engine was still covered, but was being held down by eight nuts, which easily came off.  We immediately started hunting down all of the pieces and parts, figuring out what did what.  We drove it around again and fell in love with the experience of the Droid-Z.&lt;br /&gt;When I got home I went back out to the garage and dusted off all my old accessories.  Everything in the Droid-Z was standard and all my old gear had a use again.  I was in heaven.&lt;br /&gt;When I talk to others about why they should get and Android powered vehicle they don't usually understand what I'm getting out.  It seems the average person doesn't see the benefit of being able to buy any standard part, or take their vehicle to any mechanic they choose.  They don't see the outrage in being legally prohibited to getting to their engine.  They don't realize what a sad future the iDrive, now the iDrive 3, represents for the automotive industry.  And the worst part is seeing my fellow grease-head friends fall into the trap.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-1955709044518801943?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/1955709044518801943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2010/07/idrive-vs-android-engine.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/1955709044518801943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/1955709044518801943'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2010/07/idrive-vs-android-engine.html' title='iDrive vs. Android Engine'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-5425079701100187966</id><published>2010-03-16T13:56:00.000-04:00</published><updated>2010-03-16T13:56:14.099-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parenting'/><category scheme='http://www.blogger.com/atom/ns#' term='Athena'/><category scheme='http://www.blogger.com/atom/ns#' term='Aurora'/><category scheme='http://www.blogger.com/atom/ns#' term='Awesome'/><title type='text'>Tallahassee to Atlanta for TMBG</title><content type='html'>&lt;div style="text-align: justify;"&gt;It's been forever since They Might Be Giants came to Tallahassee. &amp;nbsp; I found out in December that they would finally be making an appearance in March. &amp;nbsp;I wanted to take my kids, who are fans of the three kids CD/DVDs they have put out. &amp;nbsp;I found out the minimum age was (I think) fourteen to get in.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I knew they did kids shows from time to time, so I looked at their other shows going on around the same time and located a kids show in Atlanta the following weekend.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="float: left;"&gt;&lt;a href="http://picasaweb.google.com/maxolasersquad/TheyMightBeGiantsConcertInTallahassee03032010#5444835469290702546"&gt;&lt;br /&gt;&lt;img height="180" src="http://lh3.ggpht.com/_SaNJz2jXUyg/S4_xAueFBtI/AAAAAAAA3TE/7aA-tfTmTOM/s320/They%20Might%20Be%20Giants%20Concert%2003-03-2010%20-%2018.jpg" width="320" /&gt;&lt;/a&gt;&lt;/span&gt;So the Tallahassee show as a lot of fun. &amp;nbsp;It was kind of weird seeing the crowd. &amp;nbsp;I first saw TMBG when I was in middle school, and I don't think there were too many people older than I am now at that show. &amp;nbsp;This time there where only a few people who looked like they where probably in high school.&lt;br /&gt;They even played the one song I was looking forward to, which is She's An Angel.&lt;br /&gt;They played a good number of music off of their kids album. &amp;nbsp;It was a good marker to see who was a parent in the crowd, as only few people could be seen singing along.&lt;br /&gt;Another really great thing about this concert is that both Kim and I were able to go ... TOGETHER. &amp;nbsp;It was awesome. &amp;nbsp;we never get time together to do anything that's just fun for the two of us. &amp;nbsp;I love going places with my kids, but it is nice for just Kim and I to do something awesome together every one in a while.&lt;br /&gt;The following Friday I got my Vanagon cleared out, and most of our stuff packed for the trip. &amp;nbsp;I packed enough food so that we would have to stop along the way either.&lt;br /&gt;One rather scary thing about this trip was that I had never driven my Vanagon more than around sixty miles outside of Tallahassee. &amp;nbsp;I was planning on driving there and back in the same day, an almost 600 mile trip.&lt;br /&gt;We took the &lt;a href="http://maps.google.com/maps?f=d&amp;amp;source=s_d&amp;amp;saddr=2716+Juncture+Dr,+Tallahassee,+FL+32305&amp;amp;daddr=31.3897529,-84.9239738+to:1099+Euclid+Ave+NE+Atlanta,+GA+30307&amp;amp;hl=en&amp;amp;geocode=FbVizgEd5LD6-imdVtezLmLsiDE8kNL1TSW-4Q%3BFTj43gEduynw-iknVhZI31LtiDH4pGPhbimPVw%3BFb4wAwIdKOj4-imDx3ZyqQb1iDFYDk9dlT3ebg&amp;amp;mra=mr&amp;amp;mrcr=0&amp;amp;sll=32.03602,-84.056396&amp;amp;sspn=4.511456,6.696167&amp;amp;ie=UTF8&amp;amp;ll=32.087229,-84.27063&amp;amp;spn=4.508934,6.696167&amp;amp;t=h&amp;amp;z=8&amp;amp;via=1"&gt;US27 route&lt;/a&gt; to avoid Interstates, and perhaps see some cool small towns.&lt;br /&gt;&lt;span style="float: left;"&gt;&lt;a href="http://picasaweb.google.com/maxolasersquad/TheGirls2010#5448542440096899458"&gt;&lt;br /&gt;&lt;img height="180" src="http://lh6.ggpht.com/_SaNJz2jXUyg/S50ce02doYI/AAAAAAAA3n0/r5d3TKv1P5A/s288/Atlanta%20trip%20to%20see%20They%20Might%20Be%20Giants%2003-03-2010%20-%2001.jpg" width="320" /&gt;&lt;/a&gt;&lt;/span&gt;The morning was cold, and the bus has no &amp;nbsp;heat, so I packed lots of blankets, which Aurora said didn't make her warm enough. &amp;nbsp;I had the car DVD player setup as well, and we started the trip with Teenage Mutant Ninja Turtles, Athena's pick.&lt;br /&gt;The van ran great on the way there, and the girls ate the sandwiches and apples I packed for them. &amp;nbsp;We made it the whole way stopping only for gas, and odd looks at the van from the locals.&lt;br /&gt;The van ran great the whole time, and was actually able to maintain speeds up to 70mph, when not going up a hill, which is pretty good for one of these vehicles.&lt;br /&gt;We arrived twenty minutes before the show started, to the discovery that the show was soled out. &amp;nbsp;I felt pretty dumb. &amp;nbsp;Reminder to self, don't drive the kids six hours away for a show you don't already have tickets for. &amp;nbsp;The lady at the box office told us to come back when the show started to see if there was availability. &amp;nbsp;Indeed there was and we had entry.&lt;br /&gt;The security guy made me go back to my car to leave the camera. &amp;nbsp;Note number two, keep camera in pocket when trying to get it into a show. &amp;nbsp;Other parents didn't have their camera on display upon entry and where snapping photos of their children and the band the whole time.&lt;br /&gt;They Might Be Giants where much more into this show than the one in Tallahassee. &amp;nbsp;There was a lot more energy on stage. &amp;nbsp;It was really cool to see a packed room with children and their parents singing and dancing along to TMBG. &amp;nbsp;As a function of parents who get their kids into good music, it was obvious most of the parents there where pretty awesome parents, which is something I can't say for most places I go to take my kids for children's events.&lt;br /&gt;Aurora was tired and sat down for the whole show. &amp;nbsp;Athena spent most of the times either dancing, or in my arms watching the band. &amp;nbsp;Towards the end of the show Athena made a friend and danced with her.&lt;br /&gt;The kids favorite part started during the song bed. &amp;nbsp;At the end of the line "and so directly to bed I go" a canon shot out papier-mâché over the audience. &amp;nbsp;The kids where really thrilled to catch the falling pieces of paper. &amp;nbsp;This happened a few more times throughout the show.&lt;br /&gt;&lt;span style="float: right;"&gt;&lt;a href="http://picasaweb.google.com/maxolasersquad/TheGirls2010#5448543479672276258"&gt;&lt;br /&gt;&lt;img height="180" src="http://lh6.ggpht.com/_SaNJz2jXUyg/S50dbVkjBSI/AAAAAAAA3pU/suMsFxR9Hcc/s288/Atlanta%20trip%20to%20see%20They%20Might%20Be%20Giants%2003-03-2010%20-%2011.jpg" width="320" /&gt;&lt;/a&gt;&lt;/span&gt;A sock puppet, called "The Avatars of They Might Be Giants" did a show and sang a couple of songs, which the kids thought was pretty funny too.&lt;br /&gt;After the show Flansburgh handed out stickers, which we all three got, and I followed up with receiving a high-five from Flans.&lt;br /&gt;Afterwards we grabbed some Greek food, and headed home. &amp;nbsp;The DVD player seemed to have broke itself while we were at the show, so there where no movies, or any other entertainment, for the drive back.&lt;br /&gt;Athena fell asleep first, and Aurora went out only later on in the night. &amp;nbsp;We got home around 11:30pm, and I was quite famished from the day.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-5425079701100187966?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/5425079701100187966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2010/03/tallahassee-to-atlanta-for-tmbg.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5425079701100187966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5425079701100187966'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2010/03/tallahassee-to-atlanta-for-tmbg.html' title='Tallahassee to Atlanta for TMBG'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_SaNJz2jXUyg/S4_xAueFBtI/AAAAAAAA3TE/7aA-tfTmTOM/s72-c/They%20Might%20Be%20Giants%20Concert%2003-03-2010%20-%2018.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-966366823736670919</id><published>2010-03-16T12:44:00.001-04:00</published><updated>2010-03-16T12:48:30.841-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Comic'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><title type='text'>Cell Phones</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_SaNJz2jXUyg/S5-2VmROn3I/AAAAAAAA3x0/SoFaNsPkV_4/s1600-h/Phone.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="228" src="http://2.bp.blogspot.com/_SaNJz2jXUyg/S5-2VmROn3I/AAAAAAAA3x0/SoFaNsPkV_4/s640/Phone.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Cell phones have created some weird social norms. &amp;nbsp;The most commonly brought up weird thing that people do with their cell phones, is use them while sitting on the toilet.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;A more annoying trait of cell phone addicts is how the people on their phone get precedence over anything happening in their immediate surroundings. &amp;nbsp;This can range to the fellow motorists on the road, or the person standing in front of them carrying on a conversation.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Today I was talking to a guy at work (who is an exceptionally nice person by the way) and he gets a phone call from a friend. &amp;nbsp;Our conversation immediately came to an end so he could talk to his friend on the phone. &amp;nbsp;A little perturbed, I drew up the above comic to make me feel better.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I come up with comic ideas somewhat frequently, but I rarely have the time to make them a reality before I forget the idea. &amp;nbsp;This one came to me during my lunch break.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-966366823736670919?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/966366823736670919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2010/03/cell-phones.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/966366823736670919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/966366823736670919'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2010/03/cell-phones.html' title='Cell Phones'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_SaNJz2jXUyg/S5-2VmROn3I/AAAAAAAA3x0/SoFaNsPkV_4/s72-c/Phone.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-8787815754787827582</id><published>2010-03-11T17:00:00.002-05:00</published><updated>2010-03-29T22:00:11.103-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computers'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Ubuntu 10.04 Lucid Lynx Alpha in VirtualBox with Guest Additions</title><content type='html'>Today I installed the latest alpha of Ubuntu 10.04 Lucid Lynx Alpha inside of VirtualBox. &amp;nbsp;After getting all of the updates I installed the VirtualBox Guest Additions. &amp;nbsp;Upon boot my screen flashed lots of fun colors and then told me that my display configuration was fubared.&lt;br /&gt;I booted up in low graphics mode and then searched for the answer, which I'm going to repeat here.&lt;br /&gt;After installing the guest additions you need to modify a file.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;gksudo gedit /usr/src/vboxvideo-3.1.4/vboxvideo_drm.c&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Replace line 90 with the following:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;#if defined(DRM_UNLOCKED) || LINUX_VERSION_CODE &amp;gt;= KERNEL_VERSION (2, 6, 33)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .unlocked_ioctl = drm_ioctl,&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;#else&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .ioctl = drm_ioctl,&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;#endif&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Finally, run the following command:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo /etc/init.d/vboxadd setup&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;So anyways, this got me as far as logging in without the graphics dying. &amp;nbsp;However, it looks like Compiz gets enabled and kills everything. &amp;nbsp;I'll update if I find a solution to this.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Source:&lt;/span&gt;&lt;br /&gt;&lt;a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/536929"&gt;https://bugs.launchpad.net/ubuntu/+source/linux/+bug/536929&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.virtualbox.org/ticket/6198"&gt;http://www.virtualbox.org/ticket/6198&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.virtualbox.org/changeset/27248"&gt;http://www.virtualbox.org/changeset/27248&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Edit: Bug 6198 is fixed as of VirtualBox 3.1.6.  To get it for Ubuntu add the VirtualBox PPA found at &lt;a href="http://www.virtualbox.org/wiki/Linux_Downloads" target="_blank"&gt;http://www.virtualbox.org/wiki/Linux_Downloads&lt;/a&gt; and run &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;sudo aptitude install virtualbox-3.1&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-8787815754787827582?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/8787815754787827582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2010/03/ubuntu-1004-lucid-lynx-alpha-in.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/8787815754787827582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/8787815754787827582'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2010/03/ubuntu-1004-lucid-lynx-alpha-in.html' title='Ubuntu 10.04 Lucid Lynx Alpha in VirtualBox with Guest Additions'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-8062449630051657072</id><published>2010-03-11T11:48:00.002-05:00</published><updated>2010-03-11T11:50:32.355-05:00</updated><title type='text'>One reason why web developers hate IE.</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_LJuAPqyUVas/S5kFX5CnVYI/AAAAAAAAACs/vnO3XvDQ7HQ/s1600/sputnik.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_LJuAPqyUVas/S5kFX5CnVYI/AAAAAAAAACs/vnO3XvDQ7HQ/s320/sputnik.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;Source: &lt;a href="http://blog.chromium.org/2010/03/does-your-browser-behave.html"&gt;http://blog.chromium.org/2010/03/does-your-browser-behave.html&lt;/a&gt;&lt;/small&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The image above graphs how well a browser conforms to the ECMA standard. &amp;nbsp;The ECMA standard defines how a browser should execute JavaScript code. &amp;nbsp;JavaScript is very important in the development in interactive web pages, and helps blur the lines between a web application and a desktop application.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The close a browser is to the middle, the more in line it is with the ECMA standard. &amp;nbsp;The closer a browser is to another browser, the more its JavaScript engine is like the other browser.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Conforming to standards is important to web developers because it means we can write code once and it will run anywhere that supports those standards. &amp;nbsp;When different browsers behave differently, it means we have to know what those differences are and code around them if we want to ensure our user-base can use our products regardless of platform.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Notice IE sitting way out there on the edge far away from everyone else. &amp;nbsp;This should give non-developers a good idea what the life of a web developer looks like. &amp;nbsp;When I write web applications, I do all my initial testing in Chrome. &amp;nbsp;Chrome has a lot of good developer tools built in that make troubleshooting easier. &amp;nbsp;Once I am done getting everything working right I fire up Firefox and make sure I don't have any missing or broken functionality. &amp;nbsp;I almost never do, so I then up Internet Explorer. &amp;nbsp;Things start getting really interesting at this point. &amp;nbsp;I have to start hunting down each problem, looking through the code, and hunt down what it is about my code that IE doesn't like and begin writing exceptions.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The problems with IE go well beyond how it implements JavaScript, but I won't get into that. &amp;nbsp;Make your web developers happy and use anything but IE. &amp;nbsp;The day we can stop coding for IE, or at least get IE on board with the rest of the team, web developers will be able to kick out awesome web applications much faster.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-8062449630051657072?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/8062449630051657072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2010/03/one-reason-why-web-developers-hate-ie.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/8062449630051657072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/8062449630051657072'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2010/03/one-reason-why-web-developers-hate-ie.html' title='One reason why web developers hate IE.'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LJuAPqyUVas/S5kFX5CnVYI/AAAAAAAAACs/vnO3XvDQ7HQ/s72-c/sputnik.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-6700470822638882579</id><published>2010-03-10T22:34:00.000-05:00</published><updated>2010-03-10T22:34:26.023-05:00</updated><title type='text'>Put Down the Hand Sanitizer, Part II</title><content type='html'>&lt;div style="text-align: justify;"&gt;I &lt;a href="http://maxolasersquad.blogspot.com/2009/09/want-to-protect-against-h1n1-put-down.html"&gt;wrote before&lt;/a&gt; about the&amp;nbsp;ineffectiveness&amp;nbsp;of hand sanitizers. &amp;nbsp;&lt;a href="http://www.slate.com/id/2245896/?from=rss"&gt;Slate has a new article&lt;/a&gt; reiterating in more detail why relying on hand sanitizers is not an effective way to fight off the flue, or H1N1.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Without getting into a lengthy post, I'll summarize. &amp;nbsp;If you want to prevent illnesses, wash your hands after using the restroom, before cooking, before eating, or any other sensitive situation as such. &amp;nbsp;If you have a need to ensure your hands are clean, wash for twenty seconds with soap and warm water. &amp;nbsp;Don't use hand sanitizers, wipes, or any other such cleansers unless it is absolutely the only thing you have available.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Lastly, eat the right foods and keep a positive attitude.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-6700470822638882579?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/6700470822638882579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2010/03/put-down-hand-sanitizer-part-ii.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/6700470822638882579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/6700470822638882579'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2010/03/put-down-hand-sanitizer-part-ii.html' title='Put Down the Hand Sanitizer, Part II'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-8905814378600050613</id><published>2010-03-10T22:02:00.000-05:00</published><updated>2010-03-10T22:02:58.620-05:00</updated><title type='text'>The American race</title><content type='html'>So this lady's blog is awash of right-wing fear mongering, but I do agree with her on this one. &amp;nbsp;She makes a simple point that race and nationality are not one and the same. &amp;nbsp;The post is at &lt;a href="http://michellemalkin.com/2010/03/09/my-race-is-american/"&gt;http://michellemalkin.com/2010/03/09/my-race-is-american/&lt;/a&gt;&lt;br /&gt;I have &lt;a href="http://maxolasersquad.blogspot.com/2008/06/not-politically-correct-technically."&gt;made this case before&lt;/a&gt;, and I really like her solution to this problem when answering the census, list your race as American. &amp;nbsp;There is no sense in only allowing white people to call themselves American, while leaving everyone of different races with a different name.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-8905814378600050613?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/8905814378600050613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2010/03/american-race.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/8905814378600050613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/8905814378600050613'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2010/03/american-race.html' title='The American race'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-1711544099492810958</id><published>2010-02-12T20:40:00.000-05:00</published><updated>2010-02-12T20:40:07.581-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>FLOSS-POS, IS4C and Bread &amp; Roses</title><content type='html'>&lt;div style="text-align: justify;"&gt;A new food coop has started up in town named &lt;a href="http://www.breadandrosesfoodcoop.com/"&gt;Bread &amp;amp; Roses&lt;/a&gt;. &amp;nbsp;I went to a few of their fund raisers, and was aware of the effort. &amp;nbsp;In late December they opened their doors in &lt;a href="http://www.railroadsquare.com/"&gt;Railroad Square&lt;/a&gt;. &amp;nbsp;They had a pretty sparse selection of goods for sale, but they have grown considerably in the little bit of time they &amp;nbsp;have opened.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;On the &lt;a href="http://tech.groups.yahoo.com/group/tlug/"&gt;TLUG group&lt;/a&gt; discussion someone mentioned that they were helping Bread &amp;amp; Roses come up with a Linux-based solution for their POS (that's point-of-sale) system. &amp;nbsp;I had it in my mind that I wanted to try to get Bread &amp;amp; Roses on the Linux path, and here was a direct offer to make it happen, so I agreed to show up at the next meeting.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It turned out the guy who posted it, Ray, was at an Ubuntu release party I had held a little bit ago.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;At first I tried &lt;a href="http://www.kde-apps.org/content/show.php/Lemon+POS?content=69945"&gt;Lemon POS&lt;/a&gt;, but it was written in Python as a desktop application, and after poking around the code wasn't sure if I would be able to bend it to my whims, or at all for that matter. &amp;nbsp;My knowledge in PHP, Javascript and other web technologies.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;After some more research I came across &lt;a href="http://www.wedge.coop/is4c/"&gt;IS4C&lt;/a&gt;, a POS software written for Linux machines by a consortium of IT guys supporting food coops. &amp;nbsp;It is written in PHP, and the demos on its website looked very&amp;nbsp;promising. &amp;nbsp;I installed the server and client on two&amp;nbsp;separate&amp;nbsp;virtual machines and started testing. &amp;nbsp;My initial impressions had me pretty excited. &amp;nbsp;Some more rigorous testing revealed some problems.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I displayed it for Justin and he identified a number of ways it did not cater to the Bread &amp;amp; Roses business model. &amp;nbsp;The great thing was that I had confidence that I could rewrite whatever I needed to do things the way we needed them to.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Aurora's grandfater, Stefan, donated a laptop and desktop to Bread &amp;amp; Roses. &amp;nbsp;After installing the server on the desktop and the client on the laptop I began making changes.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Looking around the IS4C website I noticed that there weren't any tools for distributed development. &amp;nbsp;No wiki, software repository, etc. &amp;nbsp;Essentially, none of me fixes, changes, or else where pushable back to the project head.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I hit up their &lt;a href="http://www.wedge.coop/is4c/bb/viewtopic.php?t=120"&gt;forum&lt;/a&gt; telling them I'd like to work with them to get&amp;nbsp;collaborative&amp;nbsp;tools setup. &amp;nbsp;My post went unanswered for some time. &amp;nbsp;As I kept making changes and fixing problems I decided to just fork the code in a way that would allow others to jump in and collaborate with me if they so wished.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Learning &lt;a href="http://git-scm.com/"&gt;git&lt;/a&gt;&amp;nbsp;has been on my radar for a while, so I decided to use this as an opportunity to start learning. I put the project up on &lt;a href="http://github.com/maxolasersquad/FLOSS-POS"&gt;github&lt;/a&gt; and start pushing my changes to the github repo. &amp;nbsp;I named the project FLOSS-POS, and posted my fork on the thread I published a month earlier.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;A few days later I started getting responses from people interested, and I have since got at least one person at the Wedge Coop making fixes that I have since been merging back into FLOSS-POS.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;One of the most important changes, that Bread &amp;amp; Roses needed, is the ability to have separate member pricing, instead of just percentage-based discounting. &amp;nbsp;I have also changed the default browser for accessing the application from &lt;a href="http://galeon.sourceforge.net/"&gt;Galeon&lt;/a&gt; to &lt;a href="http://www.google.com/chrome/"&gt;Google Chrome&lt;/a&gt;. &amp;nbsp;Chrome should allow us to take advantage of HTML5 awesomeness soon, on a browser that is open source and cross platform.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In the long term I would like to do a ground-up rewrite of the code. &amp;nbsp;I am leaning towards using this as an opportunity to learn something else that's been on my radar, and rewrite it using python+django.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I've began doing some initial ERDs of the new database structure, which should be more robust and, allowing for greater flexibility and more detailed reporting.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I'm pretty pumped about this project and am hoping to get an active community of volunteers assisting on this program. &amp;nbsp;I think there is a lot of opportunity for the FLOSS community to inject itself rather effectively in the POS industry, which is presently dominated by expensive, closed source solution that prey on vendor lock-in to drive out competition.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-1711544099492810958?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/1711544099492810958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2010/02/floss-pos-is4c-and-bread-roses.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/1711544099492810958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/1711544099492810958'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2010/02/floss-pos-is4c-and-bread-roses.html' title='FLOSS-POS, IS4C and Bread &amp; Roses'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-5106968150580544645</id><published>2010-01-28T09:16:00.000-05:00</published><updated>2010-01-28T09:16:38.687-05:00</updated><title type='text'>Nervous about teacher meeting</title><content type='html'>&lt;div style="text-align: justify;"&gt;Athena takes her time at everything she does. &amp;nbsp;It can often be really frustrating because she can hold everyone up as we wait for her to get moving along. &amp;nbsp;Being slow, and&amp;nbsp;meticulous&amp;nbsp;has been a trait of hers ever since she has been able to do anything for herself. &amp;nbsp;It can be quite frustrating, but it's something that, as her parent, I have learned to deal with.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;She takes this behavior to school with her work. &amp;nbsp;She takes longer than the other children to finish her assignments. &amp;nbsp;Her teacher has a policy that the kids cannot participate in free play until they have finished their work. &amp;nbsp;For Athena, this pretty much rules at free play for her. &amp;nbsp;This is something she has brought up as a concern for her, and as a result has concerned me. &amp;nbsp;Studies are&amp;nbsp;consistent in showing that free play is a very important part of a child's social, physical, and educational health. &amp;nbsp;Many schools have started increasing the amount of free time their children receive, and have been showing increases in good behavior and in test scores.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Last night Athena drew a picture on her homework for Kim. &amp;nbsp;It was Athena sitting at a table by herself, with children running around the table playing. &amp;nbsp;Kim said it broke her heart, and it did the same to me when she told me about it.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I had expressed concern over this before to Kim and told her I wanted to meet with the teacher about this. &amp;nbsp;Kim has cautioned me about this. &amp;nbsp;I think, as a teacher, she understands how difficult it can be for teachers to be bombarded with parents who think they know her job better than she does. &amp;nbsp;She talked me out of it.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; text-align: justify;"&gt;Today I e-mailed the teacher telling her that I would like to meet with her. &amp;nbsp;I think Athena's teachers is one of the more strict teachers. &amp;nbsp;She is also one of the oldest, meaning she has older fashioned views on education.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I understand that the teacher is trying to teach Athena how to complete work on time, and is also trying to stress the importance of completing work. &amp;nbsp;However, I think there are three major problems.&lt;/div&gt;&lt;div&gt;The first is that after months of using the technique of withholding free time, Athena continues to be slow and&amp;nbsp;meticulous, going over every detail of her work. &amp;nbsp;The teacher's strategy is clearly&amp;nbsp;ineffective&amp;nbsp;at reaching the desired goal. &amp;nbsp;I can't imagine how continuing a failed strategy is helpful to anyone.&lt;/div&gt;&lt;div&gt;The second is that Athena is already very&amp;nbsp;studious. &amp;nbsp;She loves learning and education. &amp;nbsp;She is always eager to learn new things. &amp;nbsp;She isn't lacking in education or studies. &amp;nbsp;Education is part of the culture of our household. &amp;nbsp;What she doesn't have enough of is play time with friends. &amp;nbsp;Removing free play with peers her age to make time for make studies serves no purpose. &amp;nbsp;She is being given extra time of something she is already immersed in, and taken away time for something she is not getting enough of.&lt;/div&gt;&lt;div&gt;Third, Athena's behavior of a slow&amp;nbsp;meticulous&amp;nbsp;worker is not necessarily bad. &amp;nbsp;In many ways I think she&amp;nbsp;inherits&amp;nbsp;much of that trait from me. &amp;nbsp;When other people prefer to quickly do something in a sloppy manner, I prefer to take my time out to do things right. &amp;nbsp;When we do homework with Athena was can sometimes get frustrated. &amp;nbsp;If her homework is to color in a picture, she will make each part of the picture a different color, and she has very specific reasons why something must be a certain color. &amp;nbsp;She will go real slow to make sure that she doesn't go out of the lines. &amp;nbsp;If she messes up she will often get really upset and feel that the whole thing is ruined. &amp;nbsp;This is just the person she is, and I don't think any amount of work is going to change it.&lt;/div&gt;&lt;div&gt;So anyways. &amp;nbsp;I'm pretty nervous about this meeting. &amp;nbsp;I don't like going to people and telling them they are doing their job wrong and they need to do things my way. &amp;nbsp;I don't expect her to receive what I have to say very well, and I expect that the meeting will ultimately be unproductive. &amp;nbsp;I hope I'm wrong.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-5106968150580544645?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/5106968150580544645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2010/01/nervous-about-teacher-meeting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5106968150580544645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5106968150580544645'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2010/01/nervous-about-teacher-meeting.html' title='Nervous about teacher meeting'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-5879541847253260651</id><published>2010-01-06T23:20:00.000-05:00</published><updated>2010-01-06T23:20:32.918-05:00</updated><title type='text'>Get ready West Coast.</title><content type='html'>&lt;div style="text-align: justify;"&gt;Kim and I are planning a trip to the west coast this summer. &amp;nbsp;We are going to start by dropping the kids off at Kim's parents in Sacrament and then camp at Yosemite Park.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Initially I just thought this would be cool, but as I look into the logistics of camping at Yosemite I'm realizing that it is: 1) More difficult to figure out how camping there works, and 2) Going to be completely amazing. &amp;nbsp;Of the thirteen camp grounds they have, seven will be open at the time we are planning to arrive (June 12th.) Of those seven, five take reservations. &amp;nbsp;Having a reservation is a must as I don't plan on showing up, only to realize all sites have been taken.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I'm having a difficult time picking the one that most interests me. &amp;nbsp;Ideally the one that has the fewer amenities and are the more secluded. &amp;nbsp;To me, the best camping is running out in the woods with a backpack, shovel and roll of toilet paper. &amp;nbsp;We won't be going quite that far, but I'd prefer to not be camping next to a Winnebago if I can help it.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The website warns that camp sites get reserved in minutes after reservations go live. &amp;nbsp;The earliest time to reserve for the time period we will be there is January 15th, so I've marked my calendar and asked Google to send me e-mail reminder the day before and day off reservations.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;After Yosemite Kim will go to her parents and I'm going to Seattle to spend a few days with my friend Michael Bassage-Glock. &amp;nbsp;I haven't actually called him yet to tell him, but I think I'll be getting on that soon. &amp;nbsp;I'd really like to take the train up there, but I'm afraid the trip might be crazy long and may just opt for flying if I have to. Actually I just checked and it appears that if I leave on the 17th at 12pm (their only departure to Seattle), then I will arrive at 9pm the next day, so the train might not be the best option.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;After a return to Seattle, at some point the whole family will make our way down to Apple Valley, CA to visit with my dad.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In all, this summer trip should rock harder than most anything I've ever done. &amp;nbsp;I'm quite looking forward to it.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-5879541847253260651?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/5879541847253260651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2010/01/get-ready-west-coast.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5879541847253260651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5879541847253260651'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2010/01/get-ready-west-coast.html' title='Get ready West Coast.'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-2883614835237150630</id><published>2010-01-02T23:37:00.001-05:00</published><updated>2010-01-02T23:53:31.777-05:00</updated><title type='text'>Saint George Island</title><content type='html'>&lt;div style="text-align: justify;"&gt;Kim' parents came to town last weekend with a reserved vacation house at Saint George Island. &amp;nbsp;Saturday, December 26th, we stayed our first night.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I was scheduled to make dinner that night, but a lot of&amp;nbsp;hiccups&amp;nbsp;blew my plans of making veggie stir-fry. &amp;nbsp;I had to settle for broccoli and rice, which wasn't all that great.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Sunday I went back home because I had to work. &amp;nbsp;I was supposed to get an application released to Beta before the new years, but we didn't quite get that done. &amp;nbsp;I was still able to get Thursday off, and Thursday a little after noon I drove back over to the island.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;When I got there everyone was crowded in the TV room playing Wii Fit. &amp;nbsp;Athena and Arianna gave me great big hugs. &amp;nbsp;Apparently, while I was gone Arianna was a stinker, and Kim was looking forward to passing off Arianna's behavior problems to me. &amp;nbsp;However, she was very good the whole rest of the time I was there.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://lh5.ggpht.com/_SaNJz2jXUyg/S0AIHxc13WI/AAAAAAAA03Q/KQ-qNbAaxBU/s1600/Saint%20George%20Island%202009%20-%2001-01-2010%20-%2003.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://lh5.ggpht.com/_SaNJz2jXUyg/S0AIHxc13WI/AAAAAAAA03Q/KQ-qNbAaxBU/s200/Saint%20George%20Island%202009%20-%2001-01-2010%20-%2003.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;About an hour after I arrived Scott's parents showed up too. &amp;nbsp;Kim and I had a long walk down the beach with Mike, Scott's dad. &amp;nbsp;We had a lot to talk about and it was very pleasant. &amp;nbsp;His parents are extremely nice, and even though it was the first time for all of us meeting them, they fit right in.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Apparently Scott's dad was excited that there were men there as he was looking forward to watching the game, however none of the men there where into football. &amp;nbsp;I was playing Wii with the girls when he walked into the TV room and said, "Who's into football." &amp;nbsp;We just kind of looked blankly at him and he realized that football wasn't going to happen and walked off kind dissapointed.. Kim mentioned to Athena that we would need to turn the Wii off soon so that he could watch football. &amp;nbsp;I told Kim that nobody ever turned off football so I could play Wii, so I wasn't going to turn off the Wii so others could watch football.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://lh3.ggpht.com/_SaNJz2jXUyg/S0AH4mEgvQI/AAAAAAAA01c/7eIUdPlH5zQ/s1600/Saint%20George%20Island%202009%20-%2012-31-2009%20-%2004.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://lh3.ggpht.com/_SaNJz2jXUyg/S0AH4mEgvQI/AAAAAAAA01c/7eIUdPlH5zQ/s200/Saint%20George%20Island%202009%20-%2012-31-2009%20-%2004.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;When I laid Arianna down to bed that Thursday night, a task that had apparently been hellish throughout the week, I got her to lay right down without any problems and she went to sleep. &amp;nbsp;I took the opportunity to revel in my own glory for the rest of the night.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;On New Years night I went up to Harry A's Bar with Scott, Katie,&amp;nbsp;Annmarie&amp;nbsp;and Tyson. &amp;nbsp;I was the designated driver since I don't really drink anyhow.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;When we go there Rob and Dawn, Sue's son and his wife, had been there quite a while and had reserved us a little corner at the bar. &amp;nbsp;On the TV was some car and motorcycle trick-show. &amp;nbsp;Right before countdown they struggled to find the New York ball-drop, but found it too late so there was no real countdown.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Later we headed home with plans to hang out by the pool, which where cast aside as people's desire to sleep overtook a night of hanging out. &amp;nbsp;When it was finally just Scott and I we decided to just turn in as well.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Friday, Steve showed me &lt;a href="http://maps.google.com/?ie=UTF8&amp;amp;ll=29.735294,-84.881077&amp;amp;spn=0,359.996516&amp;amp;t=h&amp;amp;z=19&amp;amp;layer=c&amp;amp;cbll=29.735375,-84.880935&amp;amp;panoid=CULO4nyE2PDPaeJa8dWkGw&amp;amp;cbp=12,160.04,,0,-2.23"&gt;where I could get some good oysters for cheap&lt;/a&gt;. &amp;nbsp;I got about thirty oysters for seven bucks. &amp;nbsp;Back at the house I ate those up raw. &amp;nbsp;We had some really good hot sauce Kim picked up for me in Saint Augustine a few months ago. &amp;nbsp;Some people were not into eating raw Oysters so Scott and I grilled the rest.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;That night Annmarie and Tyson made burritos with a little bit of everything else that had not been cooked yet. It was a good dinner for our final night, and I finished it off with the last of the uneaten oysters.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I think it was Friday night, but during that weekend Katie and Scott agreed to get married, which meant Chris was on cloud nine for the rest of the time.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This morning we all woke up and through all our stuff in the car. &amp;nbsp;Kim followed me over the bridge and we ate at a &lt;a href="http://www.urbanspoon.com/r/136/909022/restaurant/Florida/The-Hut-Restaurant-Eastpoint"&gt;little diner off of highway 98&lt;/a&gt;. &amp;nbsp;The food was good and the people where real nice.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://lh3.ggpht.com/_SaNJz2jXUyg/S0AIK-Ib-2I/AAAAAAAA09I/hdNwoqKl-5w/s1600/Saint%20George%20Island%202009%20-%2001-02-2010%20-%2002.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://lh3.ggpht.com/_SaNJz2jXUyg/S0AIK-Ib-2I/AAAAAAAA09I/hdNwoqKl-5w/s200/Saint%20George%20Island%202009%20-%2001-02-2010%20-%2002.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Kim drove home and I picked up a half-bushel of oysters. &amp;nbsp;I tried two places to find a non-Styrofoam&amp;nbsp;cooler, but nobody had what I wanted. &amp;nbsp;I ended up taking the bags off of the roof of the VW and putting the oysters up there.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Right before the Wakulla River I picked up two hitch-hikers. &amp;nbsp;They where on their way to the flea market. &amp;nbsp;I dropped them off at a friends house that is about two-miles from my neighborhood.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Back at home Kim and I unloaded everything and then took a nap. &amp;nbsp;When we got back up we put away more of our stuff. &amp;nbsp;I finally fixed a leaky water-faucet outside. &amp;nbsp;Then we headed up to Sue's for dinner with Chris and Steve. &amp;nbsp;We had pizza and Sue and I dined on some of the oysters.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Athena's ear had been bothering her that night. &amp;nbsp;During the toast to Katie and Scott, Athena was crying because her ear was hurting so bad. &amp;nbsp;I loaded her up while Kim said he goodbyes and we headed home.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Steve leaves for California very early in the morning, but Chris will be here until Wednesday.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-2883614835237150630?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/2883614835237150630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2010/01/saint-george-island.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/2883614835237150630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/2883614835237150630'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2010/01/saint-george-island.html' title='Saint George Island'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_SaNJz2jXUyg/S0AIHxc13WI/AAAAAAAA03Q/KQ-qNbAaxBU/s72-c/Saint%20George%20Island%202009%20-%2001-01-2010%20-%2003.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-6062831981417363726</id><published>2009-12-25T00:12:00.000-05:00</published><updated>2009-12-25T00:12:58.936-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Athena'/><category scheme='http://www.blogger.com/atom/ns#' term='Aurora'/><category scheme='http://www.blogger.com/atom/ns#' term='Christmas'/><title type='text'>Letters to Santa</title><content type='html'>The girls made these for Santa.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_SaNJz2jXUyg/SzRJmkcAR2I/AAAAAAAA0yE/XKTWFebMNeE/s1600-h/out.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_SaNJz2jXUyg/SzRJmkcAR2I/AAAAAAAA0yE/XKTWFebMNeE/s640/out.jpeg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_SaNJz2jXUyg/SzRJuJ2pGdI/AAAAAAAA0yM/HV-X6jyKHes/s1600-h/out0002.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_SaNJz2jXUyg/SzRJuJ2pGdI/AAAAAAAA0yM/HV-X6jyKHes/s640/out0002.jpeg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-6062831981417363726?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/6062831981417363726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2009/12/letters-to-santa.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/6062831981417363726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/6062831981417363726'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2009/12/letters-to-santa.html' title='Letters to Santa'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_SaNJz2jXUyg/SzRJmkcAR2I/AAAAAAAA0yE/XKTWFebMNeE/s72-c/out.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-408726595413906995</id><published>2009-12-10T06:55:00.001-05:00</published><updated>2009-12-10T08:09:33.637-05:00</updated><title type='text'>No Shaving in December</title><content type='html'>&lt;div style="text-align: justify;"&gt;This year I am participating in&amp;nbsp;&lt;a href="http://noshavingindecember.org/"&gt;http://noshavingindecember.org/&lt;/a&gt;. &amp;nbsp;Here is my progress.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;a href="http://2.bp.blogspot.com/_SaNJz2jXUyg/SyDhj4-4rdI/AAAAAAAA0h8/obBoduoB4Hg/s1600-h/David+12-10-2009+-+01.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_SaNJz2jXUyg/SyDhj4-4rdI/AAAAAAAA0h8/obBoduoB4Hg/s320/David+12-10-2009+-+01.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;Update: For those who are reading this and don't know what I'm talking about, read &lt;a href="http://blog.johnath.com/2009/11/29/nsid-2009/"&gt;this&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-408726595413906995?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/408726595413906995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2009/12/no-shaving-in-december.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/408726595413906995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/408726595413906995'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2009/12/no-shaving-in-december.html' title='No Shaving in December'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_SaNJz2jXUyg/SyDhj4-4rdI/AAAAAAAA0h8/obBoduoB4Hg/s72-c/David+12-10-2009+-+01.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-8799587997131647707</id><published>2009-11-16T22:48:00.000-05:00</published><updated>2009-11-16T22:48:57.581-05:00</updated><title type='text'>Computing as we will soon know it.</title><content type='html'>&lt;div style="text-align: justify;"&gt;If you want to know what computing will look like in the near future all you need to do is watch &lt;a href="http://www.ted.com/talks/pranav_mistry_the_thrilling_potential_of_sixthsense_technology.html"&gt;this&lt;/a&gt; video from TED.&amp;nbsp; It showcases Sixth-Sense technology.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Once this technology matures I believe we will interact with it through a pair of contact lense and an extremely small hearing aid.&amp;nbsp; This device will allow us to get all sorts of meta data about our surroundings and probably completely replace all of our traditional ways of interacting with computers.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;As we drive the road in front of us will literally light up in front of us, showing us how to get where we are going.&amp;nbsp; We will also always be aware of the speed limit and have access any other information about the roads.&amp;nbsp; For example, we may know that a deaf child lives up ahead, or there is a better way to our destination based on the traffic situation in the present city.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;While walking a nature trail we can get information about any relevant historical information, such as perhaps a famous explorer walked it hundreds of years ago, or find out about the plants and animals we see.&amp;nbsp; We could see which plants are edible and which are poisonous.&amp;nbsp; If we catch a fish we could immediately know if it is of legal size to keep.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;When meeting people we could look up their profile on the currently popular social networks through facial recognition.&amp;nbsp; We could then know that they are interested in certain topics you are also interested in and strike up a conversation.&amp;nbsp; Or you could meet someone at a bar and find out that they are a known sleaze bag, and then take them home.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The possibilities are endless, and the benefits can be enormous.&amp;nbsp; &lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-8799587997131647707?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/8799587997131647707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2009/11/computing-as-we-will-soon-know-it.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/8799587997131647707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/8799587997131647707'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2009/11/computing-as-we-will-soon-know-it.html' title='Computing as we will soon know it.'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-5950210381081136885</id><published>2009-11-15T15:10:00.001-05:00</published><updated>2009-11-15T15:10:48.908-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Scanning Problems in Ubuntu Karmic 9.10</title><content type='html'>&lt;div style="text-align: justify;"&gt;I went to scan in some pictures today with my new Karmic install and ran into problems. &amp;nbsp;When I went to scan I would get&amp;nbsp;"Failed to start scanner: Invalid argument" &amp;nbsp;Some Googling revealed that many people are experiencing broken scanning after upgrading to Karmic with various printers. &amp;nbsp;A little more searching revealed the solution. &amp;nbsp;I think that there is probably an even better solution, but this is how I got scanning to work.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;First I installed libsane-extras:&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;sudo aptitude install libsane-extras&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Next I edited saned.conf to enable the epson driver.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;gksudo gedit /etc/init.d/sane.d/dll.conf&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In this file I removed the # at the line that read #epson&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;To get the parameters for me scanner I ran:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;$ sane-find-scanner&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;# sane-find-scanner will now attempt to detect your scanner. If the&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;# result is different from what you expected, first make sure your&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;# scanner is powered up and properly connected to your computer.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;# No SCSI scanners found. If you expected something different, make sure that&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;# you have loaded a kernel SCSI driver for your SCSI adapter.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;found USB scanner (vendor=0x04b8, product=0x0839) at libusb:001:003&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;found USB scanner (vendor=0x0bc7 [X10 Wireless Technology Inc], product=0x0004 [USB Receiver]) at libusb:007:002&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;# Your USB scanner was (probably) detected. It may or may not be supported by&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;# SANE. Try scanimage -L and read the backend's manpage.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;# Not checking for parallel port scanners.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;# Most Scanners connected to the parallel port or other proprietary ports&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;# can't be detected by this program.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;# You may want to run this program as root to find all devices. Once you&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;# found the scanner devices, be sure to adjust access permissions as&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace; text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;# necessary.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here the line that read "found USB scanner (vendor=0x04b8, product=0x0839) at libusb:001:003" was the key. &amp;nbsp;These parameters needed to go in the epson drivers file.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace;"&gt;gksudo gedit /etc/init.d/sane.d/epson.conf&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I replaced the line that read "usb" to read "usb 0x4b8 0x0839" &amp;nbsp;Finally I just needed to restart the sane daemon.&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: monospace;"&gt;sudo /etc/init.d/saned restart&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After this scanning finally worked.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-5950210381081136885?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/5950210381081136885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2009/11/scanning-problems-in-ubuntu-karmic-910.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5950210381081136885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5950210381081136885'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2009/11/scanning-problems-in-ubuntu-karmic-910.html' title='Scanning Problems in Ubuntu Karmic 9.10'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-8232575458154413808</id><published>2009-11-12T21:14:00.000-05:00</published><updated>2009-11-12T21:14:08.839-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parenting'/><title type='text'>Being A Parent Is Hard</title><content type='html'>&lt;div style="text-align: justify;"&gt;Being a parent is hard. &amp;nbsp;The life of a parent is filled with meeting other people's needs, and neglecting many of his or her own.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Today's examples:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It seems I cannot go a morning where at least one of the girls doesn't have a major meltdown. &amp;nbsp;On the surface getting ready in the morning would appear to be a routinely trivial task. &amp;nbsp;The reality is that every morning is drama. &amp;nbsp;The hard thing for me to accept is that I have no control over this.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I try to make it as easy as I can. &amp;nbsp;I put Aurora and Athena in my bed, put on an episode of Pink Panther and completely dress the girls myself, and do their hair. &amp;nbsp;Pink Panther gives them a reason to open their eyes and stay awake as I dress them. &amp;nbsp;By the time I am done each girl is completely awake and dressed. &amp;nbsp;They have only two tasks to prepare for the day, brush their teeth and put on their shoes.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Without fail at least one girl will throw a major fit over at least one of &amp;nbsp;these tasks. &amp;nbsp;Usually more than one task involves a fit. &amp;nbsp;This morning it was Aurora and her shoes, and Athena had a slight problem with brushing her teeth. &amp;nbsp;Every morning Arianna has a big fit about us brushing her teeth. &amp;nbsp;Since I do everything else for all the girls, I make Arianna's teeth Kim's task.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;On the way to drop Arianna off at daycare a lady did not break in time and had to pull to the right of me to prevent from rear-ending me. &amp;nbsp;By the time she came to a complete stop half of her SUV was beside my van, effectively putting her nose in Arianna's back had she not stopped. &amp;nbsp;Then when the traffic started back up she pulled forward real fast and cut in front of me. &amp;nbsp;This lady just about put my baby in serious physical danger, and then used it as an opportunity to cut me off. &amp;nbsp;It's times like this I have to use mental will-power to not let road rage get the best of me.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Aurora has tennis practice on Tuesdays and Thursdays from 5 - 6. &amp;nbsp;I don't get off work until 4:30, and practice is on the other side of town, so Kim takes her almost all the time. &amp;nbsp;Today Kim called me and asked if I would do it. &amp;nbsp;I agreed, and she said she'd meet me at day care to give me the tennis racket from her car.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Not paying attention to the fact that Aurora needs to be there at 5:00 I get a call from Kim at 4:50 as I'm shutting down my computer reminding me that I completely messed up tennis practice for the day. &amp;nbsp;Aurora really looks forward to tennis practice and has been pretty upset in the past when we've had to miss it.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I felt really bad and wanted to make it up. &amp;nbsp;I was going to take her to the park but when I looked outside I realized it's that time of year when it begins getting dark really early. &amp;nbsp;Instead I headed up to Publix and bought some ice cream.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;It turned out Aurora was not as upset as usual, but she was happy to see that ice cream would be following dinner.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;As soon as I placed the ice cream in the freezer I made dinner, with only a little bit of room in between serving everyone I had a quick chance to actually eat myself.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;While I was eating Aurora had a major melt down because she's hates having to actually put work into doing homework (she is spoiled because pretty much everything tailored to someone her age is completely below her abiliites and is finished without effort.) &amp;nbsp;In stead of working hard she completely broke down yelling at people, being nasty to Kim, and slouching down kicking everything around her.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Next Judith called. &amp;nbsp;When Aurora spoke to her Judith told her that she should visit the Smithsonian Kids website, so we did that after dinner to help her calm down from homework.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Afterwards it was back to homework, which she finally finished and I knocked out the kitchen while Kim tended to the other two girls. &amp;nbsp;After the kitchen was done, and Arianna's lunch was packed, I read Arianna two books and put her to bed. &amp;nbsp;Kim, worn out and half asleep by this time read the other two girls their books while I took a shower.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Once out of the shower Kim was asleep with the two girls crawling all over her. &amp;nbsp;I then put them to bed, a process which takes about ten minutes as I talk to them and tuck them in. &amp;nbsp;Then Arianna declares she needs to go potty.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;When it was all said and done I woke up at 6:45am, it is now 9:00pm and I finally have a moment to myself.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;And such is my daily life. &amp;nbsp;Very little of my day was spent for me, and none of my day had any time for my wife. &amp;nbsp;It is no wonder so many parents do such a poor job. &amp;nbsp;It is so tempting to take shortcuts, like giving my children empty-calorie TV dinners, packing lunchables for lunch, yelling at them in stead of effectively working things out (actually there is more yelling going on at times than I'd like to admit), sitting them in front of a TV all afternoon, etc.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-8232575458154413808?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/8232575458154413808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2009/11/being-parent-is-hard.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/8232575458154413808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/8232575458154413808'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2009/11/being-parent-is-hard.html' title='Being A Parent Is Hard'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-3444344561076788226</id><published>2009-11-02T21:53:00.000-05:00</published><updated>2009-11-02T21:53:20.731-05:00</updated><title type='text'>Battlestar Galactica</title><content type='html'>&lt;div style="text-align: justify;"&gt;I just finished watching the entire season of the original Battlestar Galactica TV Show that aired in 1978. &amp;nbsp;The series started off rough with some sub-par acting and some frequent plot gaps. &amp;nbsp;The last five episodes where fairly solid and I was saddened when the final episode ended, knowing the show was canceled right as it was starting to peak in almost every aspect.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I would like to at some point watch the 1983 continuation. &amp;nbsp;It is not available online for free, though I may buy the entire season from Amazon as a download for $7 if I feel up to it.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I am now on to watching Start SG-1.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-3444344561076788226?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/3444344561076788226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2009/11/battlestar-galactica.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/3444344561076788226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/3444344561076788226'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2009/11/battlestar-galactica.html' title='Battlestar Galactica'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-5786435714523324097</id><published>2009-10-30T23:29:00.000-04:00</published><updated>2009-10-30T23:29:52.744-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='chromium'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Why Chrome isn't a flop</title><content type='html'>&lt;div style="text-align: justify;"&gt;There seems to be a good deal of belief that Google's Chrome browser is a flop and is likely to stay being a flop.&amp;nbsp; This afternoon I read &lt;a href="http://www.pcworld.com/article/181118/google_chrome_the_fast_browser_with_slow_adoption.html"&gt;Google Chrome: The Fast Browser With Slow Adoption on PCWorld&lt;/a&gt;.&amp;nbsp; The author goes through many reasons why Chrome is not in wide spread adoption, but ultimately misses the point of why Google developed Chrome.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Chrome is merely a means to an end.&amp;nbsp; Google's platform is the web.&amp;nbsp; The better the web platform is, the easier Google can make money.&amp;nbsp; Google doesn't care about web browsers or operating systems except for how they affect users getting online and using Google services.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Getting users online is their business model.&amp;nbsp; Any hindrance to this end is a hindrance to Google making money.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Web browsers have a lot of unrealized potential.&amp;nbsp; In fact, web browsers really don't do many of the things they should be doing.&amp;nbsp; This is why Google built Chrome.&amp;nbsp; They want to set the standard for which web browsers are judged, so they set out to build the best web browser there is.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;There are key design features of Chrome that hint to Google's real intentions with Chrome.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;First, Chrome is a child of a parent project named Chromium.&amp;nbsp; Chromium is an open source browser developed by Google.&amp;nbsp; Chromium can be modified by anyone and spun into their own browser.&amp;nbsp; Google spins Chromium into it's own Google branded browser named Chrome.&amp;nbsp; Anyone else could do the same, brand it with their logos and features and call it what they want.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Another key element of Chrome is its rendering engine.&amp;nbsp; In stead of writing a new rendering engine they plugged WebKit into their browser.&amp;nbsp; WebKit is an open source rendering engine, which is most notable for being used by Safari.&amp;nbsp; Chrome actively contributed to WebKit pushing forward new features of the latest web standards and optimizing it to be fast and flexible.&amp;nbsp; They then take these news improvements and push them into Chrome.&amp;nbsp; This way they are not only making Chrome a better browser that will push the web into the new age of online computing, but they are also pushing Safari, and every other browser or product that uses WebKit to display web pages, with them.&amp;nbsp; Despite a stable version of Chrome being available for the Mac, every Mac user benefits from Google's development of Chrome, which in turn helps push forward Google's business agenda.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Another key element to Google's release of Chromium is how it snaps into two other major projects of Google, namely Android and Chrome OS.&amp;nbsp; These are two Linux-based operating systems that Google is producing.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Android is currently available to T-Mobile customers and will soon be available to Verizon customers as well.&amp;nbsp; In the future more mobile carriers are set to join in carrying Android power mobile phones.&amp;nbsp; The Android mobile-phone operating system is designed with Internet connectivity in mind.&amp;nbsp; It presently uses Opera for its browser.&amp;nbsp; When the Linux version of Chrome goes live it is a sure bet that it will start shipping with Android, instantly making it a mainstream browser.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Chrome OS is a desktop operating system targeted for Netbooks.&amp;nbsp; Its key feature will be that all applications for it will be Internet applications.&amp;nbsp; Without a doubt Chrome OS will ship with the Chrome web browser.&amp;nbsp; The success of Chrome OS rides almost entirely on the ability to attract developers to build great applications for it that will entice consumers, the same way the wide availability of cool applications for the iPhone has made it an instant game changer in the mobile industry.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Last of all the open source nature of Chrome means that anyone else can freely and easily borrow any of the code and put it in their browser.&amp;nbsp; Google really doesn't care of anybody actually uses Chrome for their browser.&amp;nbsp; What they care about is pushing browsers forward.&amp;nbsp; If browsers move forward then better applications are built for the web.&amp;nbsp; If this happens people will be inclined to be on the web more, and people are more likely to use Google services or use the service of companies that utilize Google AdWords.&amp;nbsp; Essentially Google will do whatever it takes to get people online so they can make money.&amp;nbsp; And that is what Chrome is all about.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;You simply cannot measure the success of Chrome by how many people are using it.&amp;nbsp; As long as Chrome keeps raising the bar for what a browser can do&amp;nbsp; and that entices other browser makers to keep up, Google is making good on their investment in Chrome.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;That being said, I have been using the nightly Ubuntu builds of Chrome and it is in very very good shape.&amp;nbsp; It is fast, stable, secure and overall a pleasure to use.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-5786435714523324097?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/5786435714523324097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2009/10/why-chrome-isnt-flop.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5786435714523324097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/5786435714523324097'/><link rel='alternate' type='text/html' href='http://maxolasersquad.blogspot.com/2009/10/why-chrome-isnt-flop.html' title='Why Chrome isn&apos;t a flop'/><author><name>Jack David Baucum</name><uri>https://profiles.google.com/112112002891101502746</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-oeR4ZTVB3fY/AAAAAAAAAAI/AAAAAAABEXM/f53htYcK9CQ/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2160921736769720124.post-4367393430367865183</id><published>2009-10-23T12:52:00.001-04:00</published><updated>2009-10-23T12:55:04.858-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parenting'/><title type='text'>Children Acting Their Age</title><content type='html'>&lt;div style="text-align: justify;"&gt;Sometimes I say something silly to my children like, "You are eight,&amp;nbsp; you need to act like it."&amp;nbsp; Replace eight with the age of the child.&amp;nbsp; The silly thing about this is that when I say it they usually are acting their age, which happens to entail them doing something immature.&amp;nbsp; However my real message is, "You are not acting as mature as I want you to act and I would like you to start acting it."&amp;nbsp; I think my children receive the message with that understanding at\s well.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;If I am right then I am using the "act your age" words as a red herring to successfully convey a similar, but different message.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Do I go for accurately conveying my message or effectively conveying my message?&amp;nbsp; Being a parent is difficult for someone like myself who likes to overcomplicate what should be easy matters.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2160921736769720124-4367393430367865183?l=maxolasersquad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://maxolasersquad.blogspot.com/feeds/4367393430367865183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://maxolasersquad.blogspot.com/2009/10/children-acting-their-age.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2160921736769720124/posts/default/4
