<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Disqus - Latest Comments for John Flack</title><link>http://disqus.com/people/d5291c2e7f43f3246c6a0ed6d30ed99e/</link><description></description><language>en</language><lastBuildDate>Tue, 31 Mar 2009 08:47:16 -0000</lastBuildDate><item><title>Re: Everything New is a Swimming Pool</title><link>http://theappslab.disqus.com/everything_new_is_a_swimming_pool/#comment-2546248</link><description>In some ways, it is a good thing that ideas get blocked at every turn.  It weeds out all but the most passionate inventors and thinkers, people who won't take no for an answer.  It forces them to think it out more thoroughly, and to come up with answers for every objection.  Some good ideas die before getting a good hearing, but it is also a good way to kill bad ideas.  But when the obstacles get too big or too artificial, sometimes you have to take your good idea someplace else.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Wed, 12 Sep 2007 09:24:35 -0000</pubDate></item><item><title>Re: More on Workspace Design</title><link>http://theappslab.disqus.com/more_on_workspace_design/#comment-2546349</link><description>Joel Spolsky has an article on his observations about the way to get the best out of software developers.  Read it at &lt;a href="http://www.joelonsoftware.com/articles/FieldGuidetoDevelopers.html" rel="nofollow"&gt;http://www.joelonsoftware.com/articles/FieldGui...&lt;/a&gt;.  In his opinion, going from a cube farm to an open design is a step in the wrong direction.  I'm inclined to agree.  I have a semi-private office that I share with someone whose schedule overlaps mine by only four hours a day.  Yet I'd gladly trade my semi-private with a window for a truly private office, even windowless.  I want to be able to close my door and shut out the rest of the world when I'm concentrating hard on a tricky piece of code.  I used to be in a cube, and it was worse - very hard to get anything done.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Fri, 05 Oct 2007 13:49:56 -0000</pubDate></item><item><title>Re: AppsLab FAQ: How Do I Start a Community?</title><link>http://theappslab.disqus.com/appslab_faq_how_do_i_start_a_community_58/#comment-806029</link><description>I'm glad that you said to join an existing community if there is one.  I have a problem with both Oracle Mix and Oracle Wiki - each has forums.  That would be good, if not for the fact that OTN already had excellent and active forums.&lt;br&gt;&lt;br&gt;Say I want to ask a question, and get the advice of the best experts I know.  Where should I ask it?  On Mix?  On the Wiki?  On OTN?  On all three?  Asking the same question in more than one place is considered rude, almost spam-like.  Say I am willing to answer questions.  Which forums should I monitor?  Answering questions is not my primary job - I do it because I want to help, and because I consider it a fair trade for all the questions that I've had answered.  I cannot afford the time to read ALL the forums.&lt;br&gt;&lt;br&gt;I wish that you and Justin and whoever monitors the Wiki for Oracle would get together and create ONE set of forums, and share them.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Thu, 03 Jul 2008 08:35:57 -0000</pubDate></item><item><title>Re: http://theappslab.com/2008/12/04/what-makes-ui-good/</title><link>http://theappslab.disqus.com/thread_548/#comment-4203246</link><description>I'm not a Mac owner or a regular user of Macs, but my son and one of the project managers I work for have Macs that I have to troubleshoot occasionally.  Like the default configuration of Ubuntu, Macs want you to do most of your system administration through your non-privileged user id.  Well, not totally non-privileged, but the main user of the machine should have the privilege you need.  To execute commands as root, you just preface the command with "sudo".  You will be prompted to confirm with your password.  You can continue to issue "sudo" commands for a period of time without giving the password again.  If you MUST actually login as root, you can use "sudo passwd root" to change root's password.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Fri, 05 Dec 2008 09:17:21 -0000</pubDate></item><item><title>Re: Requiem for the Computer Lab</title><link>http://theappslab.disqus.com/requiem_for_the_computer_lab/#comment-7673787</link><description>I was at UVA in the early 70's.  The computer lab (only one for the College of Arts and Sciences, probably one or two more in the School of Engineering) was filled with keypunch machines, and you would hand a pack of punch cards through a window to be run.  Results in one or two hours - guaranteed, except at the end of the semester.  Only people taking a programming class ever went there.  Papers were written on a portable typewriter.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Tue, 31 Mar 2009 08:47:16 -0000</pubDate></item><item><title>Re: 15 Reasons Why Books Have Problems</title><link>http://awads.disqus.com/15_reasons_why_books_have_problems/#comment-3658590</link><description>&lt;p&gt;Almost any work of fiction that I want to read is available in a small portable paperback format.  Technical books are the problem:  too big, fat and heavy.  I would love to have them small and portable.  I know that many are available in electronic form, but there isn't a single good electronic book reader device on the market.  Cheap Laptops are too big and small light laptops are too expensive.  Besides, a laptop is overkill if all I want to do is read a book.  PDA screens are too small.  When someone finally comes out with a light inexpensive e-book reader, with a screen as large and readable as a good quality paperback - I'll buy.  If it can do double duty as a PDA - all the better.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Mon, 22 May 2006 08:30:04 -0000</pubDate></item><item><title>Re: links for 2006-06-30</title><link>http://awads.disqus.com/links_for_2006_06_30/#comment-3658659</link><description>&lt;p&gt;I'm sorry, but I think Don Burleson's list of worst practices is far from the truth.&lt;/p&gt;&lt;br&gt;&lt;p&gt;Normalization is not just for saving space and preventing duplicate data.  It is a basic step that you MUST take to fully understand your data and your system requirements.  It is essential for a flexible and easy to modify database.  For instance, I have a database with physician names and addresses.  I put the name and one address in a table.  Now I am tasked to allow the entry of more than one address for a physician.  Yes, I could add a second set of address fields, but what if we need to add a third address?  What I should have done is normalize, and put the addresses in a separate table.&lt;/p&gt;&lt;br&gt;&lt;p&gt;Can normalization be overdone?  Possibly, but at least take your data to 3rd normal form, and if you decide to denormalise from there, know WHY you are doing it, what you expect to gain, AND what you will lose.  That said, I am highly in favor of giving developers denormalised VIEWs of your normalised TABLES, with INSTEAD OF triggers to do the proper updates behind the scenes.  This makes sure that the joins are written well, and that updates are unlikely to deadlock.&lt;/p&gt;&lt;br&gt;&lt;p&gt;Which leads me to:  Writing good SQL in your applications, plus updating statistics and having the right indexes is far more effective for database performance than tuning database initialization parameters.  My experience tells me that, yes, improving an init.ora parameter can improve performance, but not orders of magnitude better performance.  Tuning the SQL, and the database structures that support the SQL can give orders of magnitude better performance.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Fri, 30 Jun 2006 11:34:26 -0000</pubDate></item><item><title>Re: Where Are You Women Bloggers?</title><link>http://awads.disqus.com/where_are_you_women_bloggers/#comment-3658899</link><description>&lt;p&gt;I have spoken at school career days several times, and I always tell stories of Lady Ada Lovelace and Admiral Grace Hopper.  I want the girls (and the boys too) to know that women have been involved in IT from the beginning.  But it is too bad that it is a man telling them this.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Tue, 31 Oct 2006 10:16:48 -0000</pubDate></item><item><title>Re: Bart&amp;#8217;s Punishment For Asking Dumb Questions</title><link>http://awads.disqus.com/bart8217s_punishment_for_asking_dumb_questions/#comment-3658935</link><description>&lt;p&gt;I rarely tell people to read the fine manual, and when I do, I tell them which manual to read and will often point them at the chapter.  The main reason I will do it, is that sometimes the question reveals a basic lack of understanding that is hard to give in less text than is in the manual.  A forum or mailing list is a great way to get information that can be delivered in a few paragraphs.  But when you need more than that, only the manual, or a good book will do.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Fri, 17 Nov 2006 11:05:34 -0000</pubDate></item><item><title>Re: links for 2006-12-08</title><link>http://awads.disqus.com/links_for_2006_12_08/#comment-3658972</link><description>&lt;p&gt;Nulls may be a problem to relational purists, but they are a practical neccessity for designing real systems for real people.  The fact is that some values are in fact unknown.  Will you prevent entry of the values that are known, just because some of the values are not known?  And yes, nulls have their quirks (I wish that null=null), but the smart developer understands how nulls work and takes them into account.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Fri, 08 Dec 2006 10:52:45 -0000</pubDate></item><item><title>Re: links for 2007-02-09</title><link>http://awads.disqus.com/links_for_2007_02_09/#comment-3659016</link><description>&lt;p&gt;Good old maildemo!  I've been recommending that one to people for several years.  I've looked at UTL_MAIL for Oracle 10g, and it can do the basics, but it can't beat maildemo if your needs are at all complex.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Fri, 09 Feb 2007 15:54:58 -0000</pubDate></item><item><title>Re: The Case of Better Readable Code</title><link>http://awads.disqus.com/the_case_of_better_readable_code/#comment-3659047</link><description>&lt;p&gt;That's a good argument for automated code formatting, Dave.  I can reformat your code to look the way that I find most readable.  Eddie - I use the code formatter that comes with TOAD - looks like it is the same one you use with SQL Navigator - interesting, but not surprising - both tools are from Quest.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Wed, 14 Mar 2007 12:45:57 -0000</pubDate></item><item><title>Re: 3 Useful SQL*Plus Tips</title><link>http://awads.disqus.com/3_useful_sqlplus_tips/#comment-3659093</link><description>&lt;p&gt;I'd never seen the Q quoting mechanism, thanks for pointing it out.  I've written some generators and gotten SO confused quoting quotes.  I wrote some helper functions - one, oddly enough, is called Q, and simply puts single quotes around any string.  So instead of: 'title:=''My Title'';'  I write 'title:='||q('My Title')||';'  This looks more complicated in the example, but when you have lots of this stuff, it winds up more readable.  I also use REPLACE a lot.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Mon, 26 Mar 2007 10:05:05 -0000</pubDate></item><item><title>Re: Oracle People Wiki, Mark Your Spot</title><link>http://awads.disqus.com/oracle_people_wiki_mark_your_spot/#comment-3659415</link><description>I tried to add myself to the map, but within minutes, Dan Norris came along and moved me to Illinois.  I have nothing against Illinois, but I've only been there once.  I live and work in Northern Virginia.  So I moved my marker back where it belongs, but it now had Dan's information on it.  I'm going to leave it alone and see if Dan makes the marker his own.  Then I may try to add a marker for me.&lt;br&gt;&lt;br&gt;That is a major problem with the current state of the art in Wikis - they let users wipe out each other's changes.  No transaction locking.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Wed, 28 Nov 2007 08:43:31 -0000</pubDate></item><item><title>Re: Guess How Many Database Editions Oracle Has</title><link>http://awads.disqus.com/guess_how_many_database_editions_oracle_has/#comment-3659423</link><description>Oracle Lite isn't included because it doesn't have the same base code as the other Oracle editions that you mentioned.  It is really another database product altogether, but with some capabilities that let you use it with a mainstream Oracle edition, like the ability to link to Oracle to get a snapshot and merge changes with the source table in Oracle.  Think of it like Oracle RDB or Oracle TimesTen.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Thu, 06 Dec 2007 08:21:19 -0000</pubDate></item><item><title>Re: Quick Posts from Twitter - 2007-12-18</title><link>http://awads.disqus.com/quick_posts_from_twitter_2007_12_18/#comment-3659439</link><description>Congratulations, new citizen!</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Thu, 27 Dec 2007 08:08:04 -0000</pubDate></item><item><title>Re: Twitter Updates for 2007-12-27</title><link>http://awads.disqus.com/twitter_updates_for_2007_12_27/#comment-3659442</link><description>You just went at the wrong time of year.  My two sons and I went before ODTUG Kaleidoscope last June, and it was busy, but by carefully using the timed entry tickets, we rarely waited more than 15 minutes for anything.  And we never waited for a restroom.  I went one October and got on any ride I wanted with NO waiting.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Fri, 28 Dec 2007 08:25:38 -0000</pubDate></item><item><title>Re: Now We Know What TOAD Means</title><link>http://awads.disqus.com/now_we_know_what_toad_means/#comment-3659500</link><description>Fortunately, you can turn off any tabs you don't want to see, or you can change to a tree-style display.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Fri, 15 Feb 2008 10:38:15 -0000</pubDate></item><item><title>Re: Oracle SQL and PL/SQL Bad Practices Document</title><link>http://awads.disqus.com/oracle_sql_and_plsql_bad_practices_document/#comment-3659511</link><description>I've done both PL/SQL APIs to do DML and views with instead of triggers.  The PL/SQL APIs are mostly generated by Oracle Designer and used for Designer Web PL/SQL application generation.  We wrote our own APIs for a few applications and had a major problem with the ones we wrote because they use a parameter for every column in the associated table.  This quickly becomes a maintenance nightmare - adding a new column means that you have to change EVERY module that calls the API.  If you are going to write an API, Designer's format is better - two parameters that are PL/SQL records, the first a data record, the second a record with a boolean for each column telling whether to use this value in the DML.&lt;br&gt;&lt;br&gt;But what I really prefer is views with Instead of triggers.  You get all of the benefit of using an API, but you can use any tool that expects to be updating a table.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Mon, 10 Mar 2008 09:38:14 -0000</pubDate></item><item><title>Re: The Lazy Developer’s Way to Populate a Surrogate Key</title><link>http://awads.disqus.com/the_lazy_developeras_way_to_populate_a_surrogate_key/#comment-3659545</link><description>Of course, Brian's innovation re-opens you to the problem you were trying to solve by writing the trigger.  We have triggers like Brian's, but we have a procedure to re-set the sequence to one higher than the maximum PK.  We run it any time we insert rows with developer specified PKs - this is mostly when we do an import from data that already has PKs that we want preserved because we are also going to insert rows into a table with an FK that references the PK.&lt;br&gt;&lt;br&gt;As for triggers - I have a different opinion from Eddie - I LIKE to hide logic in triggers.  That way developers can screw up their applications, but they CAN'T screw up the database.  And it isn't really hidden - SQL Developer or TOAD shows you what triggers are there.  I comment the heck out of them so you know WHY they are there.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Wed, 21 May 2008 08:01:23 -0000</pubDate></item><item><title>Re: Cool Undocumented OVERLAPS Predicate</title><link>http://awads.disqus.com/cool_undocumented_overlaps_predicate/#comment-3659553</link><description>For many years I have had an OVERLAP_CNT(start_date1 date, end_date1 date, start_date2 date, end_date2 date) function in my CMP package, which is available on my website. This returns a 1 if the date range represented by the first two dates overlaps the date range represented by the second two dates, and a 0 if it does not. This allows you to use it in a sum() to count how many rows have an overlapping date range, or a where clause.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Fri, 13 Jun 2008 08:09:37 -0000</pubDate></item><item><title>Re: XML Goodness in SQL - Part 1</title><link>http://awads.disqus.com/xml_goodness_in_sql_part_1/#comment-3659557</link><description>I don't know how I missed HTTPURIType.getxml in the Oracle docs.  It makes dealing with REST web services like the Google Maps API geocoder much easier.  I'd been using UTL_HTTP, getting the data in pieces as a CLOB, then casting it as an XMLTYPE.  This skips all that stuff.  Thanks for pointing it out.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Wed, 16 Jul 2008 09:05:09 -0000</pubDate></item><item><title>Re: How good are our passwords?</title><link>http://talkingidentity.disqus.com/how_good_are_our_passwords/#comment-18611863</link><description>I think you hit the nail on the head - the difference between MySpace and corporate accounts is "too many passwords".  Teens have a MySpace account, one or two e-mail accounts, and maybe one or two other web accounts requiring passwords.  Most of my users have at least two e-mail accounts, several database accounts, maybe one account on a server, plus several web accounts.  Fortunately for us, our corporate LAN and e-mail uses the same passwords, as do most SQL Server accounts.  For us IT folks it is far worse - I need passwords to the "oracle" account, and sometimes the "root" account on six servers, plus passwords to SYS and SYSTEM on my Oracle databases, plus passwords to some other schemas.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Flack</dc:creator><pubDate>Fri, 15 Dec 2006 12:49:19 -0000</pubDate></item></channel></rss>