<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="http://feeds.feedburner.com/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Radio Free Tooting</title><link>http://radiofreetooting.blogspot.com/</link><language>en</language><managingEditor>noreply@blogger.com (APC)</managingEditor><lastBuildDate>Wed, 23 Jul 2008 21:52:24 -0500</lastBuildDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">244</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><description></description><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/RadioFreeTooting" type="application/rss+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><item><title>Variant on ORA-27101 error</title><link>http://radiofreetooting.blogspot.com/2008/07/variant-on-ora-27101-error.html</link><category>error</category><category>Oracle</category><author>noreply@blogger.com (APC)</author><pubDate>Tue, 15 Jul 2008 12:55:49 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-5856665988456981283</guid><description>A funny from a system test server today, which is being refreshed.  The database is up and the &lt;code&gt;oracle&lt;/code&gt; account can login through SQL*Plus without a hitch.  However, when we attempt to connect through the OPS$ accounts, via &lt;code&gt;sudo&lt;/code&gt;, we get the following error:&lt;pre&gt;ERROR:&lt;br /&gt;ORA-01034: ORACLE not available&lt;br /&gt;ORA-27101: shared memory realm does not exist&lt;br /&gt;SVR4 Error: 2: No such file or directory&lt;/pre&gt;The first thought which occurs is the ORACLE_SID is wrong but it is not.  Although the answer does lie in the &lt;code&gt;.profile&lt;/code&gt; as it is the ORACLE_HOME which is wrong.  The &lt;code&gt;oracle&lt;/code&gt; account has an ORACLE_HOME of &lt;code&gt;/u01/app/oracle/products/9.2.0&lt;/code&gt; and the other accounts have  &lt;code&gt;/u01/app/oracle/product/9.2.0&lt;/code&gt;.  Subtle, eh?&lt;br /&gt;&lt;br /&gt;I think the difference occurred because Oracle was originally installed on this server at an earlier version and then subsequently upgraded, whereas the &lt;code&gt;.profile&lt;/code&gt; files were copied from a server which had had a greenfield installation of Oracle 9iR2.  The default path suggested by DBCA is definitely &lt;code&gt;app/oracle/product/n.n.n&lt;/code&gt; and has been for quite a while.  I don't know where the &lt;code&gt;/products/&lt;/code&gt; variant originated; judging by the relative number of Google hits, &lt;code&gt;/product/&lt;/code&gt; is the industry standard.  Perhaps it didn't always used to be.</description></item><item><title>Log Buffer: #104: a Carnival of the Vanities for DBAs</title><link>http://radiofreetooting.blogspot.com/2008/07/log-buffer-104-carnival-of-vanities-for.html</link><category>performance</category><category>MySQL</category><category>DB2</category><category>PostgreSQL</category><category>Database</category><category>Oracle</category><category>Data Model</category><category>MSSQL</category><category>Blog</category><author>noreply@blogger.com (APC)</author><pubDate>Fri, 04 Jul 2008 12:23:59 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-1378996605255902992</guid><description>Today, 4th July, is Independence Day.  I know this because Tech Republic has sent me an e-mail of special Independence Day offers.  Only not that special, as the list seems to be the same list of offers they mailed for Father's Day.  At least that made sense: after all, nothing says "You're the best dad in the world" quite like a gift of the &lt;i&gt;Administrator's Guide to TCP/IP&lt;/i&gt;  But what sort of patriot celebrates Independence Day by settling down with &lt;i&gt;IT Professional's Guide to Policies and Procedures, Third Ed&lt;/i&gt; instead of fireworks, corn dogs and "light tasting" beer?  Probably the sort of patriot who reads Log Buffer, so I'd better get on with it.&lt;br /&gt;&lt;br /&gt;Staying with the Independence Day theme &lt;a href="http://www.dbms2.com/"&gt;Curt Monash&lt;/a&gt; picks up on a humourous press release from  &lt;a href="http://www.dbms2.com/2008/07/03/declaration-of-data-independence-humor/"&gt;data warehouse appliance vendor Dataupia&lt;/a&gt;.  It's in the form of a Declaration of Data Independence and is probably funnier if you're American. &lt;br /&gt;&lt;br /&gt;In the UK there have been rumours that the government is planning a giant database to track all our telephone and internet activity.  On the BCS blog &lt;a href="http://www.bcs.org/server.php?show=ConBlog.4" title="Unqualified Remarks Blog"&gt;David Evans&lt;/a&gt; skips the ethical dimensions and looks at &lt;a href="http://www.bcs.org/server.php?show=ConBlogEntry.517" title="Will the Communications Act launch Big Brother's Big Database?"&gt;some of the practical considerations.&lt;/a&gt;  However, the most pertinent point is made by Matthew in the comments: "How many days after the launch of the Big Brother Database ... do you think it will be before someone loses a disk or backup tape full of its contents?"&lt;br /&gt;&lt;br /&gt;I'm just an Oracle person, which according to &lt;a href="http://avatraxiom.livejournal.com/"&gt;Max Kanat-Alexander&lt;/a&gt; means I suffer from &lt;a href="http://avatraxiom.livejournal.com/85796.html" title="Oracle-itis"&gt;Oracle-itis&lt;/a&gt;.  Apparently symptoms include not being able to recognise the difference between NULL and an empty string, and thinking that one thousand items is a sensible limit for an IN clause.  Kevin Closson posted a suitably withering response in his &lt;a href="http://kevinclosson.wordpress.com/2008/07/02/little-things-doth-crabby-make-part-v-oracle-professionals-have-no-experience-beyond-oracle-didnt-you-know-that/" title="Oracle professionals have no experience beyond Oracle didnt you know that"&gt;series on things which doth crabby make&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Anyway, doing the Log Buffer has given me - with the assistance of David Edwards and Google - with some exposure to other databases and other ways of doing things.  For instance, &lt;a href="http://www.postgresonline.com/" title="PostgreSQL OnLine"&gt;Leo Hsu and Regina Obe&lt;/a&gt; wrote about &lt;a href="http://www.postgresonline.com/journal/index.php?/archives/59-How-to-Inherit,-Unherit-and-Merge-Inherit.html" title="How to Inherit, Unherit and Merge Inherit"&gt;inheriting tables in PostgreSQL&lt;/a&gt;.  This is quite a neat idea.&lt;blockquote&gt;"lets say you developed a timesheet app for an organization and each department insisted on having their own version of the app and each along with the basic fields needed to track some additional ones of their own. Then higher forces came in and said &lt;i&gt;I need to know what everyone is doing, but I don't need to see all that other crap they keep track of..&lt;/i&gt; Two options come to mind - create a bunch of views that union stuff together or institute a round-up-the-children-and-adopt-them program."&lt;/blockquote&gt;In Oracle the only option would be the view (possibly of the materialized kind).  Off the top of my head I can't recall a case where I could have used this but it's definitely the sort of capability it's nice to have in your back pocket. &lt;br /&gt;&lt;br /&gt;Another intriguing idea which has no parallel in Oracle is the MySQL Sandbox.  This is a framework for testing features of different versions of MySQL without jeopardising our primary environment.  Its developer, Giuseppe Maxia, &lt;a href="http://datacharmer.blogspot.com"&gt;The Data Charmer&lt;/a&gt; announces that &lt;a href="http://datacharmer.blogspot.com/2008/07/mysql-20-has-been-released.html"&gt;MySQL Sandbox 2.0 has been released&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;Regardless of which database you use performance is always an issue.  &lt;a href="http://www.depesz.com/index.php"&gt;Hubert Lubacewski&lt;/a&gt; has a offers a technique for identifying who is is &lt;a href="http://www.depesz.com/index.php/2008/07/02/whowhat-is-trashing-db-performance/"&gt;trashing the performance of your PostgreSQL database&lt;/a&gt;.   &lt;a href="http://arjen-lentz.livejournal.com/"&gt;Arjen Lentz&lt;/a&gt; posts a MySQL script for &lt;a href="http://arjen-lentz.livejournal.com/122399.html"&gt;finding useless indexes&lt;/a&gt;.  The problems are the same, but the metrics are very different from the ones I'm used to in Oracle: "The query returns all indexes in a db where the cardinality is lower than 30% of the rows, thus making it unlikely that the server will ever use that index." Peter Zaitsev on &lt;a href="http://www.mysqlperformanceblog.com/"&gt;the MySQL Performance Blog&lt;/a&gt; discusses the importance of identifying &lt;a href="http://www.mysqlperformanceblog.com/2008/06/26/web-site-optimization-frontend-and-backend/#more-421" title="Web Site Optimization: FrontEnd and BackEnd"&gt;where the bottlenecks are&lt;/a&gt;.  There's no point in a web developer tweaking CSS or JavaScript if the real problem lies in the database access layer: "get real numbers for your application before you decide."  Ken Downs , &lt;a href="http://database-programmer.blogspot.com/"&gt;the Database Programmer&lt;/a&gt;, has some general SQL advice &lt;a href="http://database-programmer.blogspot.com/2008/06/database-performance-web-layer.html" title="Database Performance: The Web Layer"&gt;on designing your web application's data model. &lt;/a&gt;  Mr Oracle Index himself, &lt;a href="http://richardfoote.wordpress.com/"&gt;Richard Foote&lt;/a&gt;, gives us his &lt;a href="http://richardfoote.wordpress.com/2008/07/03/3-steps-to-performance-tuning-working-class-hero/"&gt;3 Steps To Performance Tuning&lt;/a&gt;.   &lt;br /&gt;&lt;br /&gt;Transaction management is one of those things which varies considerably from product to product.  Many Oracle practioners still think MySQL doesn't have transaction management.  This is a canard Pythian's own &lt;a href="http://www.pythian.com/blogs/author/murphy"&gt;Keith Murphy&lt;/a&gt; lays to rest by writing on &lt;a href="http://www.pythian.com/blogs/1104/innodb-transactional-characteristics" title="InnoDB Transactional Characteristics"&gt;transactions in InnoDB&lt;/a&gt;.  In a related post covering &lt;a href="http://www.pythian.com/blogs/1101/transaction-basics-and-acid" title="Transaction Basics and ACID"&gt;transaction basics&lt;/a&gt; says he may write further pieces on "the major storage engines and their transactional characteristics".  I presume he means the different MySQL storage engines but I think there's scope for a series which covers all the different database products.  &lt;br /&gt;&lt;br /&gt;For instance, nested transactions in SQL Server strikes me as asking for trouble.  Which is why &lt;a href="http://sqlblog.com/blogs/kalen_delaney/default.aspx" title="SQL blog"&gt;Kalen Delaney&lt;/a&gt; rails against the loss of &lt;a href="http://sqlblog.com/blogs/kalen_delaney/archive/2008/06/29/why-i-still-need-sysprocesses.aspx" title="Geek City: Why I still need Sysprocesses"&gt;the Sysprocesses.open_tran column&lt;/a&gt; in the SQL Server 2005 metadata.  &lt;blockquote&gt;"Sysprocesses contains a columns called open_tran which reflects the transaction  nesting of each session. If a session issues four BEGIN TRAN commands, with no COMMITs or ROLLBACKs, their session will have an open_tran value in sysprocesses of 4. Any open_tran value greater than 0 might mean that a transaction is holding locks and blocking other processes, or it might be keeping the transaction log from being cleared. If you ever notice open_tran values in higher than 2 or 3, it's a pretty good indication that a developer doesn't know much about SQL Server transaction management."&lt;/blockquote&gt;Back to Pythian where &lt;a href="http://www.pythian.com/blogs/author/sheeri"&gt;Sheeri Cabra&lt;/a&gt; reviews &lt;a href="http://www.pythian.com/blogs/1086/reviewing-monyog" title="Reviewing MONyog"&gt;MONyog, a GUI monitoring tool for MySQL&lt;/a&gt;.  Overall she is favourably impressed: "MONyog is the best out-of-the-box GUI monitoring tool for MySQL that I have seen.”  Although she does have reservations about its logging.  Personally I think the name is a mistake: it sounds too much like something out of H P Lovecraft.  &lt;br /&gt;&lt;br /&gt;Some Oracle stuff now.  &lt;a href="http://prodlife.wordpress.com/" title="I’m just a simple DBA on a complex production system"&gt; Chen Shapira, the not-so-simple DBA&lt;/a&gt; puts her Statistics degree to good use by building &lt;a href="http://prodlife.wordpress.com/2008/07/01/just-return-any-random-row/" title="Just Return Any Random Row"&gt;a custom aggregation function that will return a random salary&lt;/a&gt; using Oracle's Data Cartridge extensibility features.&lt;blockquote&gt;"The main challenge was to make the aggregation truly random....Suppose I have three rows. The way aggregation works, I first take two rows and flip a coin to pick one. Now I have a current value - and I have to take the third row and decide if I want to keep the current value or the new one. I can’t flip the coin again - because if the third row has 50% chance to be selected, this means the first and second rows only have 25% chance each. Not fair. So I need to give the third row 1/3 chance, and the current value 2/3."&lt;/blockquote&gt;On &lt;a href="http://www.oracle-base.com"&gt;Oracle Base, Tim Hall&lt;/a&gt; demontrates the long-overdue &lt;a href="http://www.oracle-base.com/articles/11g/CaseSensitivePasswords_11gR1.php" title="Case Sensitive Passwords in Oracle Database 11g Release 1"&gt;support for case-sensitive passwords&lt;/a&gt; which Oracle have introduced in 11g. &lt;br /&gt;&lt;br /&gt;Oracle has acquired the IKAN tool CWD4ALL and they're going to use it to give SQL Developer a decent modelling support capability.   I would have though there would be more excitement about this in the blogosphere (certainly the ODTUG Designer listerserver has been cock-a-hoop) but only &lt;a href="http://daust.blogspot.com"&gt;Dietmar Aust&lt;/a&gt; seems to have &lt;a href="http://daust.blogspot.com/2008/07/database-modeling-support-in-sql.html" title="Database modeling support in SQL Developer"&gt; picked it up&lt;/a&gt;.  Perhaps hardly anybody cares about modelling, in which case TOAD's marketshare is safe.  &lt;br /&gt;&lt;br /&gt;Last week I was judging abstracts for the UKOUG 2008 Conference, and there were three submissions for sessions on best practices in programming with ApEx.  &lt;a href="http://www.pythian.com/blogs/author/alex"&gt;Alex Gorbachev&lt;/a&gt; (Pythian, again) shows why these talks are necessary with an example of &lt;a href="http://www.pythian.com/blogs/837/how-oracle-follows-good-database-development-standards%E2%80%A6-not" title="How Oracle Follows Good Database Development Standards… NOT"&gt;poor SQL taken from the official Oracle documentation&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Lot's of people are asking questions.  &lt;a href="http://blogs.lessthandot.com/index.php/DataMgmt/" title="Data Management"&gt;SQLDenis&lt;/a&gt; asks rhetorically &lt;a href="http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/sybase-iq-is-a-columnar-database-why-sho"&gt;Sybase IQ Is A Columnar Database, Why Should I Care?&lt;/a&gt;&lt;blockquote&gt;"What does this mean? This mean that the data is stored in columns and not in rows. Inserts are slower that a traditional row based database but selects are many times faster (up to 50 times). The good thing about this technology is that the SQL looks the same, the only difference is that the data is stored in a different way."&lt;/blockquote&gt; Robert Hodges at &lt;a href="http://scale-out-blog.blogspot.com/"&gt;The Scale-Out Blog&lt;/a&gt; wants to know, &lt;a href="http://scale-out-blog.blogspot.com/2008/07/whats-your-favorite-database.html"&gt;what's your favorite database replication feature?&lt;/a&gt;  Call me shallow, but it's not a topic to which I'm given much thought.  I can tell you my five all-time top favourite cover versions instead.&lt;br /&gt;&lt;br /&gt;Meanwhile &lt;a href="http://www.lifeaftercoffee.com" title="Life After Coffee"&gt;Jon Emmons&lt;/a&gt; poses the question &lt;a href="http://www.lifeaftercoffee.com/2008/06/30/ever-wonder-what-your-dbas-really-do/"&gt;Ever wonder what your DBAs really do?&lt;/a&gt;.  It turns out there's more to the job than drinking coffee, swearing at developers and losing the backup tapes.  Who knew?&lt;br /&gt;&lt;br /&gt;Of course, DBAs have plenty of reasons to swear at developers.  In &lt;a href="http://crazydba.blogspot.com/2008/06/extreme-makeover-database-edition.html" title="Extreme Makeover - Database Edition"&gt;Extreme Makeover - Database Edition&lt;/a&gt; CrazyDBA shows us his scars from a SQL Server version upgrade:&lt;blockquote&gt;"Saturday morning, migrating from "old prod" to "new prod". We finish up during the afternoon. On Sunday evening (yes, more than 24 hours later), we are notified that the system is not performing properly. We double check things on our end and everything seems to be working, well, except that the duration for some queries have gone from three seconds on "old prod" to twelve minutes on "new prod". Ouch. Our team investigates a bit further and escalates the issue to the (sleeping) onsite team, who pick up their research on Monday morning.&lt;p&gt;What do we do first on Monday morning? Well, we go to the new test system and run the query. It takes eight minutes. Turns out development is slow as well. Surely someone noticed this during testing, right?"&lt;/blockquote&gt;Er, wrong.  &lt;br /&gt;&lt;br /&gt;&lt;a href="http://sqlblog.com/blogs/rick_heiges/default.aspx"&gt;Rick Heiges&lt;/a&gt; asks &lt;a href="http://sqlblog.com/blogs/rick_heiges/archive/2008/07/03/it-s-q3-where-is-sql-server-2008.aspx"&gt;It's Q3 - where is SQL Server 2008?&lt;/a&gt;  To make him happy (and Mr CrazyDBA even happier), according to &lt;a href="http://statisticsio.com/Home/tabid/36/Default.aspx" title="statisticsio"&gt;Jason Massie &lt;/a&gt; there's a rumour that &lt;a href="http://statisticsio.com/Home/tabid/36/articleType/ArticleView/articleId/173/SQL-Server-2008-to-ship-next-week.aspx" title="SQL Server 2008 to ship next week?"&gt;SQL Server 2008 is due to ship next week&lt;/a&gt; (or this week if you're reading after the weekend). &lt;br /&gt;&lt;br /&gt;From the new releases to some ancient history.  &lt;a href="http://it.toolbox.com/blogs/db2zos" title="Getting the Most out of DB2 for z/OS and System z"&gt;Willie Favero&lt;/a&gt; comments on &lt;a href=" http://it.toolbox.com/blogs/db2zos/nice-article-about-db2s-25th-birthday-last-month-25748" title="Nice article about DB2's 25th birthday last month"&gt;an article about DB2's 25th birthday&lt;/a&gt; from Information Week.  It's interesting to see what counted as a new feature in those days: &lt;i&gt;"You could dynamically add tables or change tables without taking the system down. It doesn't take much imagination now to see this was a huge leap forward," recalled Don Haderle, chief architect of DB2.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Back to the future.  Over at the &lt;a href="http://it.toolbox.com/people/lewiscunningham/"&gt;IT Toolbox&lt;/a&gt; Lewis Cunningham has his head in the clouds.  Or rather Cloud.  This is &lt;a href="http://it.toolbox.com/blogs/oracle-guide/whos-who-in-cloud-databases-25712" title="who's Who In Cloud Databases"&gt;a neat summation of all the main players in Cloud databases&lt;/a&gt;.   Cloud computing is a rather attractive idea, but I think there is some way to go before it is a practical solution for business.  Web access is still far from pervasive or guaranteed, and as the Register pointed out this week, there are still &lt;a href="http://www.theregister.co.uk/2008/06/25/att_cloud_computing_dirty_secret/" title="Utility computing's 'dirty little secret'"&gt;some kinks in the business model to iron out&lt;/a&gt;.   Lewis describes Amazon as the 800lb gorilla in the cloud space (stratosphere?) and the Register also has &lt;a href="http://www.theregister.co.uk/2008/06/26/amazon_trumpets_web_services/"  title="Amazon thinks Cloud will conquer Man by 2010"&gt;a good piece explaining Amazon's interest in the technology&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;In his Data Migration blog &lt;a href="http://www.bcs.org/server.php?show=ConBlog.5"&gt;Johny Morris&lt;/a&gt; (no, not that one) invites us to consider the benefits of meetings, &lt;a href="http://www.bcs.org/server.php?show=ConBlogEntry.513" title="Data Migration - and socialised knowledge"&gt;in this case Data Quality Rules meetings&lt;/a&gt;: "Use them not just instrumentally to solve the issues in front of you but also to build the team that jointly will have uncover all the knowledge hidden in the organisation."   Exactly the sort of benefit which will be hard to realise when we are all working in the Cloud and never visit the office.&lt;br /&gt;&lt;br /&gt;Finally, nothing to do with databases but I'm sure relevant to us all (at least those who are still office bound), &lt;a href="http://blogs.techrepublic.com.com/10things/?p=374" title="Tech Republic 10 things"&gt;Suzanne Thornberry&lt;/a&gt; at Tech Republic writes about &lt;a href="http://blogs.techrepublic.com.com/10things/?p=374" title="10 IT health risks — and how to combat them"&gt;the health risks IT professionals run&lt;/a&gt;.  These include such things as eye strain, bobblehead syndrome and seated immobility thromboembolism (SIT), which is like DVT only worse.  So stop reading this and go do  something more healthy instead!&lt;br /&gt;&lt;h2&gt;Postscript&lt;/h2&gt;&lt;br /&gt;The Log Buffer is a community activity facilitated by Pythian.  &lt;a href="http://www.pythian.com/blogs/about-log-buffer/" title="About Log Buffer"&gt;Find out more.&lt;/a&gt;</description></item><item><title>Installing Oracle 10g on Ubuntu Hardy Heron</title><link>http://radiofreetooting.blogspot.com/2008/06/installing-oracle-10g-on-ubuntu-hardy.html</link><category>Linux</category><category>Oracle</category><category>Ubuntu</category><author>noreply@blogger.com (APC)</author><pubDate>Tue, 15 Jul 2008 06:10:13 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-6273625807847431142</guid><description>I'm now working in a client site.  One of the differences is that each development desktop bears a smug "Ubuntu - Linux for human beings" sticker. This is the first time I have really tangled with Linux.  I'm not going to risk &lt;a href="http://www.theregister.co.uk/2008/04/14/linux_manual/" title="The missing five-minute Linux manual for morons"&gt;the wrath of Verity Stob&lt;/a&gt; by detailing my journey into the heart of the penguin. But I thought it would be worthwhile documenting my experiences with installing Oracle 10gR2 on Ubuntu 8.04 (AKA Hardy Heron).&lt;br /&gt;&lt;br /&gt;Ubuntu is touted as a user-friendly flavour of Linux, and certainly the graphical desktop is welcoming to people used to Windows.  However things get pretty gnarly pretty quickly as soon as you want to do anything off piste.  And Oracle is not supported on Ubuntu ( the supported distros are Suse, RHEL, Asialux and Oracle's own Unbreakable Linux) things go very off piste indeed. In the absence of official documentation we're thrown on the resources of the internet.  There is lots of information out there - the sort of people who love Linux are the sort of people who love the web - but it is often written with a presumption of familiarity in Linux.  In amongst the shedloads of helpful advice there are opaque sentences such as this): "to install lesstif2 you will need to use 'Adept' to enable the universe repository or edit /etc/apt/source.list" (unfairly quoting Todd Trichler out of context).   I know I should have devoted myself to studying the Linux architecture before I started but I really needed to install Oracle &lt;i&gt;now&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;The first guide Google turned up was &lt;a href="www.spazidigitali.com/media/Oracle_su_ubuntu.pdf" title="Download PDF"&gt;Luca Mearelli's Installazione di Oracle 10g su Ubuntu Linux&lt;/a&gt; which as you might have guessed is written in Italian.  I found this quite distracting as anything in that language sounds like opera.&lt;blockquote&gt;&lt;b&gt;&lt;i&gt;Madame Butterfly.&lt;/i&gt;  Act 2.  Scene 1.&lt;/b&gt;Whilst she awaits the return of Lt Pinkerton Koko-chan amuses herself by installing Oracle on different Linux distros.  She sings the aria &lt;i&gt;Impostazione dei parametri del kernel&lt;/i&gt;.&lt;/blockquote&gt;It was the setting of kernel parameters which drew me up short.  There was no explanation (and even if there had been, my Italian would not have been up to translating it).  Should I be changing kernel values on the say-so of a random Google hit?&lt;br /&gt;&lt;br /&gt;So I surfed a bit more and found &lt;a href=" http://www.pythian.com/blogs/968/installing-oracle-11g-on-ubuntu-804-lts-hardy-heron "&gt;Installing 11g on Ubuntu Hardy Heron&lt;/a&gt; by Pythian's Augusto Bott.  This article is so good that it has been ripped off by plagiarising sites.  Augusto's guide included the same changes to the same kernel parameters as Luca's guide but it included explanations (through a link to his earlier article about installing Oracle 11g on Ubuntu Feisty Fawn).  Although he wrote his guide for 11g it works just as well for 10g.  There were still a few things which caused me some puzzlement and I will discuss those below.&lt;br /&gt;&lt;br /&gt;I wasted a lot of time trying to install  64-bit Oracle (because we have 64-bit desktops).  I could download it and run the Installer but I couldn't get OUI to link the database packages.   The problem is:&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;  INFO: /usr/bin/ld: skipping incompatible &lt;br /&gt;/u01/app/oracle/product/10.2.0/db_2/lib/libsql10.a&lt;br /&gt; when searching for -lsql10&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;After a couple of hours fruitlessly downloading further packages I gave up and tried 32-bit, which worked first time without a hitch.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Annotations for Augusto Bott's guide&lt;/h2&gt;&lt;br /&gt;Step 3 applied because I was installing on the Ubuntu desktop.  The gotcha is in the innocuous statement "You will have to restart your Xserver for this change to take effect."  The Ubuntu desktop environment is X so the simplest way of doing this is to logout and login again.  However I only discovered this fact after I issued the following command in a terminal window:&lt;pre&gt;sudo /etc/init.d/gdm stop&lt;/pre&gt;Theoretically this should have just dumped me out to a text-mode command prompt.  It didn't quite work  that way so I had to resort to a hard reboot.  Incidentally, another way to get out of the graphical environment is &lt;code&gt;ALT+CTRL+F1&lt;/code&gt; while &lt;code&gt;ALT+CTRL+F7&lt;/code&gt; gets you back again. &lt;br /&gt;&lt;br /&gt;In Step 8 the wise man will take a backup of these files just in case.  The suggested values seem to be common across all the install guides I read, so I trusted them :)  Given that I was only installing locally I didn't bother setting the network parameters.&lt;br /&gt;&lt;br /&gt;Step 9 is the actual install of the software.  Oracle's Universal Installer is a Java applet, which is why we need to change the X Windows settings. If you have trouble with this step first make sure you have done Step 3 properly.  However I still got the OUI-10025 message.  More Googling threw up this piece of voodoo, which solved the problem:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;clarkea@clarkea-desktop:~$ export DISPLAY=:0.0&lt;br /&gt;clarkea@clarkea-desktop:~$ sudo su - oracle&lt;br /&gt;Your account has expired; please contact your system administrator&lt;br /&gt;su: User account has expired&lt;br /&gt;(Ignored)&lt;br /&gt;oracle@clarkea-desktop:~$ export DISPLAY=:0.0&lt;br /&gt;oracle@clarkea-desktop:~$ xhost +&lt;br /&gt;access control disabled, clients can connect from any host&lt;br /&gt;oracle@clarkea-desktop:~$&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;If &lt;code&gt;xhost&lt;/code&gt; or &lt;code&gt;xclock&lt;/code&gt; works then you can run OUI.&lt;br /&gt;&lt;br /&gt;The OUI wizard is slightly different in 10g.  In particular it doesn't prompt for ORACLE_BASE and it defaults the paths to hang off your $HOME directory.  You may want to change the location to &lt;code&gt;/u01/app&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;For me the actual install and linking process did not take nearly as long as Augusto suggests it will.  Obviously our machines are a lot more powerful than his :)&lt;br /&gt;&lt;br /&gt;Finally, if you apply the scripts Augusto suggests you will need to change the paths to point to 10.2.0 instead of 11.1.0.&lt;br /&gt;&lt;br /&gt;To apply the 10.2.0.4 patch you just need to repeat the process.&lt;br /&gt;&lt;h2&gt;Further References&lt;/h2&gt;&lt;br /&gt;&lt;a href="http://www.pythian.com/blogs/549/installing-oracle-11g-on-ubuntu-linux-704"&gt;Augusto's earlier article on installing on Ubuntu Feisty Fawn&lt;/a&gt; (which has some additional explanation of the parameter tweaking) &lt;br /&gt;&lt;br /&gt;&lt;a href="http://download.oracle.com/docs/cd/B19306_01/relnotes.102/b15659/toc.htm" title="Oracle documentation"&gt;Oracle Release for 10gR2 on Linux note&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.oracle.com/technology/pub/articles/smiley_10gdb_install.html " title="OTN Whitepaper"&gt;Oracle Install Guide for RHEL4 and SLES9&lt;/a&gt;</description></item><item><title>Sun push the thread envelope</title><link>http://radiofreetooting.blogspot.com/2008/06/sun-push-thread-envelope.html</link><category>Oracle</category><category>chip</category><category>licencing</category><author>noreply@blogger.com (APC)</author><pubDate>Wed, 25 Jun 2008 07:57:40 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-4348037482465012336</guid><description>According to The Register &lt;a href="http://www.theregister.co.uk/2008/06/23/sun_niagara_k2/" title="an El Reg exclusive"&gt;the next iteration of Sun's Niagara chip will have 16-cores and 16 threads per core &lt;/a&gt;.  Apart from the mind-boggling number of threads which will become available in an eight socket 1U rack, the licensing implications are a bit of a facer for Oracle.  Soon a server with a single chip in it could incur a sixteen CPU license. At least at the moment if customers  don't want to pay Oracle's multi-core fees they have the option to &lt;a href="http://www.theregister.co.uk/2007/11/15/ellison_audience_smack_down/" title="EL Reg on Ellison at OOW2K7"&gt;tear out some chips&lt;/a&gt;.  But that's not an option with Niagara 3.  Can Oracle seriously maintain a policy of selling licenses in bundles of sixteen?</description></item><item><title>UKOUG DE SIG 10-JUL-2008: the Agenda agenda</title><link>http://radiofreetooting.blogspot.com/2008/06/ukoug-de-sig-10-jul-2008-agenda-agenda.html</link><category>UKOUG</category><category>DESIG</category><category>Oracle</category><category>Presenting</category><author>noreply@blogger.com (APC)</author><pubDate>Mon, 09 Jun 2008 07:58:38 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-6746925970112177882</guid><description>A while back I was discussing the difficulty of assembling a SIG agenda with a fellow chair. He had recently taken over his SIG and had been expecting to find a long list of volunteer speakers. He was disappointed by the reality, which is - alas - scraping around to get presenters. I was relieved it's not just the Development SIG with this problem. There's just over four weeks to go before the next SIG and I still have only three confirmed speakers, although I am confident of getting at least one more.&lt;br /&gt;&lt;br /&gt;There are a number of different sources for speakers. The obvious one is Oracle itself. Every SIG has an Oracle buddy (strictly speaking they're called Ambassadors but the "buddy" tag stuck). Our buddy is the redoubtable &lt;a href="http://groundside.com/blog/GrantRonald.php" title="Grant's blog"&gt;Grant Ronald&lt;/a&gt;, who is a Group Product Manager in Oracle's Tools Division, which makes him the go-to man for Forms and JDeveloper. For the upcoming SIG Grant will be presenting on Oracle ADF 11g: New Declarative Development Features for Fusion . This will be an opportunity to see whether JDeveloper is yet approaching the productivity which Forms has offered us for more than fifteen years. Grant will also be giving us a brief overview of the new features in Forms 11g.&lt;br /&gt;&lt;br /&gt;Oracle Consulting also provide us with speakers. It's a good place to get information on the newer Oracle products and technology. I'm still waiting for David Richards, the SIG's Consulting contact, to get back to me, but he usually comes up with the goods. &lt;br /&gt;&lt;br /&gt;We do get offered sessions from vendors. I think it is an important function of the SIG to bring relevant products to the notice of our audience. But we have had feedback that people don't like sales-oriented presentations, particularly at SIGs because the single stream means there's no choice. This is why I am especially grateful to Peter Sechser from PITSS for offering a wholly technical presentation on turning an older Forms application into a SOA application which isn't a sales pitch for their &lt;a href="http://www.pitss.com/en/index.htm" title="The PITSS website"&gt;PITSS.CON product&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Another, largely theoretical, source is people - actual users - who have volunteered to present. Unfortunately we get almost no such offers. I'm not quite sure why this is, but I suspect it is related to the reason why we get lower attendance compared to the DBA SIGs. Apart from anything else, the smaller audience represents a smaller pool of potential speakers. Then again, perhaps developers are just shyer than DBAs.&lt;br /&gt;&lt;br /&gt;My final option is to phone a friend - or at least e-mail people whose blogs I like. In previous years I have buttonholed Rob Baillie and Tim Hall. This year's victim is &lt;a href="http://www.oracle-developer.net/" title="Adrian's website"&gt;Adrian Billington&lt;/a&gt;, who will be presenting on pipelined functions in PL/SQL. Adrian is a knowledgeable practitioner of PL/SQL so I'm hoping to learn lots from this one. I also approached another Oracle ACE for a presentation: I've still got my fingers crossed but I fear this one's going to fall through.&lt;br /&gt;&lt;br /&gt;Putting the agenda together is a tough task, I try to balance the topics between the firm favourites (i.e. Forms) and the new (Java, ApEx). I like to include at least one unfamiliar topic in the mix (PHP, .Net, Rules Engines). But most of all I think it is my duty to ensure that we have presentations from different sources: I could easily have five sessions from Oracle employees but it is meant to be a User Group, not a branch of Oracle marketing. &lt;br /&gt;&lt;br /&gt;So, if you're an Oracle developer based in the UK please come to the SIG. It's in &lt;a href="http://www.ukoug.org/calendar/show_event.jsp?id=3363 " title="the UKOUG website" &gt;Blythe Valley Park (near Solihull) on July 10th 2008.&lt;/a&gt; It's open to all comers (it's just more expensive to get in if your organisation doesn't have a UKOUG membership). But also, please consider presenting at the SIG. I admit it's not as glamorous as the annual conference but it is still a worthwhile and rewarding experience. If you are interested please contact &lt;a href="mailto:julius@ukoug.org?subject=I would like to present at the DE SIG"&gt;Julius Kisielius&lt;/a&gt; at the UKOUG office.</description></item><item><title>Hanging around</title><link>http://radiofreetooting.blogspot.com/2008/06/hanging-around.html</link><category>process</category><category>Design</category><category>Requirements</category><author>noreply@blogger.com (APC)</author><pubDate>Tue, 10 Jun 2008 02:50:48 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-1960821252357288193</guid><description>I've just come back from holiday in Kos. One of the modern challenges of going away is figuring out how to hang up a pair of trousers in the hotel wardrobe. This apparently simple task has become more complicated because of the replacement of old-fashioned hook hangers with two-part security hangers. The hook hangers could be easily removed from the rail in order to facilitate the hanging of clothes. With the new hangers we have to disengage the frame from the closed loop. In this hotel the connection was a ball-and-socket arrangement which required a technique like that required by those &lt;a title="Science-Centered blog on the Steady Hand Game" href="http://sciencecentered.blogspot.com/2007/04/steady-hand-game-also-known-as-buzz.html"&gt;buzzing wire steady-hand games at school fairs&lt;/a&gt;. The equivalent of the dreaded buzz is your trousers slipping off the frame and falling in a heap on the wardrobe floor. It is particularly difficult in a crammed wardrobe (my wife is a firm believer in "way too many" being better than "too few" when it comes to packing holiday clothes).&lt;br /&gt;&lt;br /&gt;As a hotel guest, my user requirements for a clothes hanger are: &lt;ol&gt;&lt;li&gt;hanging my trousers; &lt;li&gt;simple to use.&lt;/li&gt;&lt;/ol&gt;However, guests are not the only stakeholders. The hotel owners also have a set of requirements: &lt;ol&gt;&lt;li&gt;allow guests to hang their trousers; &lt;li&gt;discourage guests from taking hangers home.&lt;/li&gt;&lt;/ol&gt;Clearly the first requirements on both stakeholders' lists are in alignment. But whilst the hook hanger satisfies the guest's second requirement it doesn't satisfy the owner's second requirement. Whereas the closed loop hanger meets the owner's second requirement but fails to meet the guest's. In situations like this, when two requirements clash it is usual for the customer's requirement - the bill payer - to trump the user's requirement.&lt;br /&gt;&lt;br /&gt;And that's why almost universally hotels now have security hangers in their wardrobes.  At least in this situation the user's top requirement - hanging my trousers - has been implemented in a convenient fashion. The hotel could just have provided a wardrobe rail and told us to bring our own clothes hangers (i.e. as a self-service application).</description></item><item><title>Idle thoughts of a idle coder</title><link>http://radiofreetooting.blogspot.com/2008/05/idle-thoughts-of-idle-coder_02.html</link><category>process</category><category>programming</category><category>Oracle</category><author>noreply@blogger.com (APC)</author><pubDate>Tue, 17 Jun 2008 06:35:02 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-87812420704999188</guid><description>Brian Tkatch has launched a thread on the PL/SQL forum about enhancements to SQL which would just basically save some typing: &lt;a href="http://forums.oracle.com/forums/message.jspa?messageID=2498773#2498773" title="OTN PL/SQL forum"&gt; Things i wish SQL supported. The lazy man's list&lt;/a&gt;.  This is quite a revealing thread, because it is always interesting to see what shortcuts people would like to take.  It's a bit like peeking inside the medicine cabinet in other people's bathrooms (not that I would ever do that).  &lt;br /&gt;&lt;br /&gt;My personal wish is for:&lt;br /&gt;&lt;pre&gt;select * {-empno} from emp;&lt;/pre&gt;&lt;br /&gt;That is, select all columns from the EMP table except EMPNO.  This would be particularly useful for querying tables with BLOB columns in SQL*Plus.   &lt;br /&gt;&lt;br /&gt;As the thread as grown it has turned into a discussion of SQL theory ("conceptually, (using Venn diagrams) the tables/views are the circles, and the predicates define in what way the circles overlap") which requires too much concentration.  The thread was supposed to be about laziness!&lt;br /&gt;&lt;br /&gt;The patron saint of programmer laziness is &lt;a href="http://www.oreilly.com/catalog/prkunix/excerpt/PWPMch01.html" title="Programming with Perl Modules: Chapter 1"&gt;Larry Wall, the inventor of Perl&lt;/a&gt;:&lt;blockquote&gt;"The virtues extolled for Perl programmers are laziness, impatience, and hubris. Together, these admirable characteristics have led to the creation and use of many publicly accessible Perl modules. Because of laziness, programmers would rather write modules than repeat a procedure over and over (and would rather use modules written by other people than write new code from scratch). Because of impatience, programmers write consolidated code that is flexible enough to anticipate their future needs. And because of hubris, programmers share their triumphs with the rest of the Perl community and continually tweak their modules until they're the best they can be." &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The problem with proactive laziness is that it can be hard to estimate how much effort will be saved later by putting in some extra effort now.  Plus, writing automating utilities and code generators can just be a seductive form of procrastination.  It feels like work but we aren't moving forwards.  In the end we spend so much time sharpening the axe that we never get around to cutting down the tree.  So the trick is to only automate the things we know it will be worth automating.  This means doing something the plain way at first.  Only when we get to the second or third cut'n'paste should we consider whether we need a parameterised module instead.  The important thing is to automate early, in order to derive the maximum return on the work.&lt;br /&gt;&lt;br /&gt;I am currently practicing cut'n'paste programming in a test data generator.  I could refactor my code to drive off an array but re-editing my package to populate a collection will be a PITA.  I should  have done it some time ago, but I failed to realise just how many additional datasets I was going to need.  At this point the ROI on the automation is quite small.  So I have chosen to continue paying the find/copy/edit tax rather than spending half a day to figure out a better way of doing things.  In the long run I will have expended more effort but in the meantime I keep making progress towards the main goal.&lt;br /&gt;&lt;h2&gt;Update&lt;/h2&gt;&lt;br /&gt;Over on the Artima site Jeremy Meyer has written an article on &lt;a href="http://www.artima.com/weblogs/viewpost.jsp?thread=232401" title"Jeremy Meyer's blog"&gt;Why it is better to be lazy&lt;/a&gt;.</description></item><item><title>Esprit de cores</title><link>http://radiofreetooting.blogspot.com/2008/04/esprit-de-cores.html</link><category>Oracle</category><category>chip</category><category>licencing</category><author>noreply@blogger.com (APC)</author><pubDate>Wed, 30 Apr 2008 08:56:40 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-5607946565571039920</guid><description>Oracle-L has been hosting &lt;a href="http://www.freelists.org/archives/oracle-l/04-2008/msg00900.html" title="John Thompson's original post"&gt;an interesting thread on migrating to another (cheaper) DBMS&lt;/a&gt;.  It seems like the company in question has not targeted a specific product yet, they just want a cheaper one.  The entire thread has much to recommend it but I would like to highlight &lt;a href="http://www.freelists.org/archives/oracle-l/04-2008/msg00946.html"&gt;Mark Brinsmead's analysis of the definition of 'processor'&lt;/a&gt; in the Oracle License and Services Agreement, because it complements &lt;a href="http://radiofreetooting.blogspot.com/2008/04/core-blimey.html" title="Core blimey!"&gt;my post on licensing multi-core servers&lt;/a&gt;.&lt;blockquote&gt;"[The OLSA] certainly adds a new wrinkle to SE licensing that I had not noticed until just now.  Probably a lot of IT professionals, few IT managers, and even fewer lawyers, know the difference between a 'chip' and a 'carrier'.  What's more, how many people *know* when they are purchasing a system with quad-core X86 'CPUs' whether the carriers in that system contain a single chip with 4 cores, 2 chips with two cores each, or four single-core chips. It makes little difference when purchasing the hardware (well, okay, it might make more than you think), but it can make a *huge* difference to your license costs and compliance."&lt;/blockquote&gt;</description></item><item><title>Core blimey!</title><link>http://radiofreetooting.blogspot.com/2008/04/core-blimey.html</link><category>Linux</category><category>Oracle</category><category>chip</category><category>licencing</category><author>noreply@blogger.com (APC)</author><pubDate>Tue, 29 Apr 2008 11:43:34 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-1382277500041645451</guid><description>The Register reports on the &lt;a href="http://www.theregister.co.uk/2008/04/24/sun_oracle_t2/"  title="Sun chum Oracle pushes database buyers to IBM"&gt;latest developments in Oracle's multi-core licensing policy&lt;/a&gt;:&lt;blockquote&gt;"Oracle, we hear, is charging a factor of .75 for Sun's T2 and T2+ systems even though they're running at about the same speed as the T1s. The major difference with the new chips is their support for more threads and the fact that the T2+s can go into multi-socket servers making them more useful for, er, databases. And by 'more useful' here we mean 'useful at all' since no one in their right mind would have thrown the older T1 systems at Oracle.&lt;br /&gt;&lt;br /&gt;The .75 T2 factor comes as quite a shock to Sun customers who have upgraded their hardware only to have the Oracle tax man come along and tell them that the solid price/performance they were expecting via the hardware will be eroded via the software."&lt;/blockquote&gt;Of course Oracle is entitled to price its licences however it wants.  But trebling the fees for customers who move to a different server with the same number of cores as their old kit doesn't seem like the best way to maintain loyalty.   It also alienates Sun, who have previously used the favourable licensing terms to sell T1 boxes.&lt;br /&gt;&lt;br /&gt;I disagree with Ashlee Vance's conclusion that Oracle's licensing policy will drive customers into the arms of IBM.  If you're going to take the pain of moving to a new DBMS and if licensing costs are the main driver then free is a lot more attractive than DB2, no matter how sane IBM's fee structure.  In his blog Sun CEO Jonathan Schwartz recounts &lt;a href="http://blogs.sun.com/jonathan/entry/freedom_s_choice" title="Freedom's Choice"&gt;a pertinent story &lt;/a&gt; from a recent visit to a large commercial institution:&lt;blockquote&gt;"We had just closed the acquisition of MySQL, so before I wrapped up, I asked, 'And would you like a quick update on the newest addition to our family, MySQL?'&lt;br /&gt;&lt;br /&gt;The CIO responded categorically with 'we don't run MySQL, we run [name withheld to protect the proprietary].' The CISO said, 'We can't just let developers download software off the net, you know, we've got regulation and security to worry about.' The CTO smiled. Everyone else appeared to be sitting on their hands. I was going to leave it at that. Thanks for the business.&lt;br /&gt;&lt;br /&gt;Until a (diplomatically) assertive Sun sales rep piped up, 'Um... no, I connected with a buddy of mine over at MySQL, and had him check - you've downloaded MySQL more than 1,300 times in the last twelve months.'&lt;br /&gt;&lt;br /&gt;After a profoundly awkward silence, one of the individuals from their internal development team piped up, 'Actually, everybody uses it. Why bother hassling with license agreements when MySQL's got you covered. We're stoked you bought them.'"&lt;/blockquote&gt;  As we all know, purchasing decisions are frequently made on the basis of which product is the most cost-effective rather than which product is the best.  The danger for Oracle is that Sun's purchase of MySQL lends the free database a lot more credibility than it had before.  If Oracle won't give Sun any more sweetheart deals then Sun has more reason to start trumpeting the price-performance advantages of running MySQL on their new multi-core boxes.  Oracle has made a lot of play about the benefits of free when it adopted Linux as its OS of choice.  So it's not like it doesn't understand the allure.  Which is probably why Oracle has restricted the price gouging to the Enterprise Edition licences whilst the Standard Edition is charged per socket.   The jump from the SE feature set to MySQL is probably a lot less daunting than the equivalent jump from EE.  &lt;br /&gt;&lt;H2&gt;Footnote&lt;/h2&gt;&lt;br /&gt;Over at the Service Architecture - SOA blog Steve Jones considers the implications of the Register article for &lt;a href="http://service-architecture.blogspot.com/2008/04/software-licensing-in-virtual-world.html"&gt;Software licensing in a virtual world&lt;/a&gt;.&lt;br /&gt;&lt;h2&gt;Footnote #2&lt;/h2&gt;&lt;br /&gt;At the time of writing, the &lt;a href="http://www.oracle.com/corporate/pricing/faq.html"&gt;Multi-Core Processors - Impact on Oracle Processor Licensing&lt;/a&gt; document hurls an 404 error.  This may indicate that Oracle are updating it to reflect the new chip sets.&lt;br /&gt;&lt;h2&gt;Footnote #3&lt;/h2&gt;&lt;br /&gt;Also worth a read is the Register's recent interview with &lt;a href="http://www.theregister.co.uk/2008/04/27/shuttleworth_microsoft_yahoo/page2.html" title="Ubuntu man says Microsoft's about to 'swallow a hand-grenade'"&gt;Mark Shuttleworth&lt;/a&gt;, Ubuntu's rentaquote-in-chief.  Amongst other things he makes this prediction about Oracle's Unbreakable Linux strategy:&lt;blockquote&gt;"Oracle will find themselves in a position where, if this business is successful or strategically important to them, they will need to fork or buy Red Hat. They will do one of those things within three to five years."&lt;/blockquote&gt;.</description></item><item><title>Jean Prouvé: The poetics of the technical object</title><link>http://radiofreetooting.blogspot.com/2008/04/jean-prouv-poetics-of-technical-object.html</link><category>process</category><category>software engineering</category><category>architecture</category><category>Design</category><author>noreply@blogger.com (APC)</author><pubDate>Fri, 18 Apr 2008 04:41:44 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-6295360604371434226</guid><description>I confess I had never heard of &lt;a href="http://www.iht.com/articles/2006/09/24/features/design25.php" title="International Herald Tribune article"&gt;Prouv&amp;#233;&lt;/a&gt; before I came across this exhibition at &lt;a href="http://www.designmuseum.org/" title="Design Museum homepage"&gt;London's Design Museum&lt;/a&gt; but the title grabbed me.  If I had have known how &lt;a href="http://www.dezeen.com/2007/12/09/jean-Prouve&amp;#233;-at-the-design-museum/" title="Some images of the exhibition from the De Zeen magazine"&gt;interesting and relevant&lt;/a&gt; Prouv&amp;#233; was I would not have left it to the last minute to go.  I think he's not better known outside of France because he mainly worked on municipal projects.  &lt;br /&gt;&lt;br /&gt;He never formally trained as an architect; so although he did work on the design of buildings, his is not the name which tends to be associated with them.  His most iconic designs are chairs.  But these are chairs for university halls of residence, works canteens and classrooms, not the sort of chairs which grace Notting Hill living rooms.&lt;br /&gt;&lt;br /&gt;Although he came from an artistic background Prouv&amp;#233; started out as an artisanal blacksmith in 1919.  He quickly moved from wrought ironwork into steel and aluminium, but he always remained rooted in the practice of working with materials.  He designed through trials and testing of concepts.  &lt;blockquote&gt;"...one should not sketch out utopian projects, because evolution can only result from practical experience."&lt;/blockquote&gt;This commitment to evolution is demonstrated by a display of &lt;a href="http://www.architonic.com/4100544" title="picture of one version of the Standard Chair"&gt;Standard Chairs&lt;/a&gt;, variations on a theme produced by Prouv&amp;#233;'s workshop over the course of two decades.  The basic shape and configuration of Chair No.305 is not markedly different from Chair No.4.  There are minor tweaks, and there are variations in material: wood, steel or aluminium, plain or lacquered. The biggest adaptation was &lt;a href="http://www.architonic.com/4102309" title="picture of a compressible Standard Chair"&gt;the collapsible Standard Chair&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As an artisan and then a factory owner he understood the properties of wood and metal and their appropriate usages.  Designers and architects more driven by the need to appear avant garde tended to get carried away with the thrill of new materials and  looking modern.  Prouv&amp;#233; appreciated that good design had to come from functional success: no matter how striking it looks, a chair is no good if it is not comfortable to sit in.  An example is the Solvay table, which is made of wood bolted together with lacquered steel.  The engineering of the table is not hidden, it is part of the aesthetic, but neither is it fetishised.&lt;br /&gt;&lt;br /&gt;Prouv&amp;#233; was a early adopter of the concept of design patterns.  He assembled a dictionary of structures which could be reused in different situations and scales.  The crutch - a asymmetric Y shape - which supports the roof of the Pump House at Evian re-appears in the design of an armchair.  He devised a roof made of single curved pieces of steel.  These shells were light enough for two men to slot them together.  At a larger scale this shape could be rested on the ground to form vaulted halls.  One favourite shape, a elongated pentagon, appears repeatedly in his work: as the back legs of the Standard Chair, as the legs of various tables, in the cross-section of a table top, even as the handles of a sideboard. &lt;br /&gt;&lt;br /&gt;I tend to be wary of attempts to draw parallels between our industry and branches of engineering or architecture, as these strike me as attempts to lend software development a spurious sense of discipline.  Just calling it "software engineering" does not make writing a program as rigourous an activity as building a motorway flyover.  However, with his commitment to iteration, re-use, modification and adaptation, and his championing of practice over theory it is hard not to regard Jean Prouv&amp;#233; as the Godfather of Extreme Programming.&lt;br /&gt;&lt;h2&gt;There's more&lt;/h2&gt;&lt;br /&gt;The other exhibition at the Design Museum featured lots of modern work.  One of the most striking exhibits was a chair "sketched" by a Japanese design house called FRONT.  Their designers have developed a mechanism for designing furniture through motion capture and then rendering the designs using extruded plastic.  Unlike Prouv&amp;#233;'s work you probably wouldn't want to sit on the chair or rest a cup of coffee on the table &lt;a href="http://www.youtube.com/watch?v=8zP1em1dg5k" title="'Sketch Furniture by FRONT' on YouTube"&gt;but the process is fascinating to watch&lt;/a&gt;.</description></item><item><title>Big zips</title><link>http://radiofreetooting.blogspot.com/2008/04/big-zips.html</link><category>Oracle</category><category>patch</category><author>noreply@blogger.com (APC)</author><pubDate>Fri, 04 Apr 2008 06:13:21 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-8491839167997448836</guid><description>I have just downloaded the database 10.0.2.4 patch for Windows 32bit.  It is a zip file which  weighs in at a cool 1,034,080,256 bytes.  Opening it up reveals a single directory called Disk1.  Well I suppose it's one way of maintaining the fiction that Oracle installs fit on a single disk.  This is the first time I have come across a patch which is too big to fit on a CD-R.   It's a pain, because DVD burners are not yet standard kit and certainly all our servers still just have CD drives.</description></item><item><title>Comparing CHAR values</title><link>http://radiofreetooting.blogspot.com/2008/03/comparing-char-values.html</link><category>Oracle</category><category>SQL</category><author>noreply@blogger.com (APC)</author><pubDate>Mon, 31 Mar 2008 07:09:45 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-247089567860836891</guid><description>Here is a table with a single row of data.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SQL&gt; create table my_tab (c2 char(2))&lt;br /&gt;  2  /&lt;br /&gt;&lt;br /&gt;SQL&gt;  insert into my_tab (c2) values ('Y ')&lt;br /&gt;  2  /&lt;br /&gt;&lt;br /&gt;1 row created.&lt;br /&gt;&lt;br /&gt;SQL&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Which of the following queries will match that row?&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;select * from my_tab where c2 = 'Y'&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;select * from my_tab where c2 = 'Y '&lt;br /&gt;/&lt;br /&gt;&lt;br /&gt;select * from my_tab where c2 = 'Y  '&lt;br /&gt;/&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;If you said all three you get a cigar (providing you live in a jurisdiction where such infernal devices are still permitted).  &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SQL&gt; select * from my_tab where c2 = 'Y';&lt;br /&gt;c2&lt;br /&gt;--&lt;br /&gt;Y&lt;br /&gt;&lt;br /&gt;SQL&gt; select * from my_tab where c2 = 'Y ';&lt;br /&gt;c2&lt;br /&gt;--&lt;br /&gt;Y&lt;br /&gt;&lt;br /&gt;SQL&gt; select * from my_tab where c2 = 'Y  ';&lt;br /&gt;c2&lt;br /&gt;--&lt;br /&gt;Y&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The reason is due to Oracle's rules for comparing blank-padded datatypes.  If the two values are of differing sizes Oracle pads the smaller variable with the requisite number of blank spaces.  Obviously &lt;a href="http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96540/sql_elements2a.htm#54959" title="Oracle 9i SQL Ref - Datatype Comparison Rules"&gt;it is documented&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;On the whole I think this is a boon - CHAR columns are a pain in the neck at the best of times, without having to worry unnecessarily about additional RPAD calls.  This is unfortunate if you are relying on 'Y ' being different to 'Y'; but if your application depends on trailing spaces for data integrity then you probably have bigger problems.</description></item><item><title>Hacking a pacemaker</title><link>http://radiofreetooting.blogspot.com/2008/03/hacking-pacemaker.html</link><category>Security</category><category>SF</category><author>noreply@blogger.com (APC)</author><pubDate>Fri, 14 Mar 2008 12:40:43 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-688203313439440069</guid><description>In the last few days I have read a couple of pieces which quote &lt;a href="http://speechification.com/2008/03/04/talk-of-the-nation-the-science-in-science-fiction/" title="Speechification blog on 'The Science In Science Fiction'"&gt;the William Gibson dictum&lt;/a&gt; "the future has already arrived, it’s just not distributed evenly".  Confirmation that we are indeed living in a science-fiction story arrived today in the shape of a message on the Full Disclosure list: &lt;a href="http://seclists.org/bugtraq/2008/Mar/0162.html"&gt;hacking a pacemaker&lt;/a&gt;.  Security researcher Gadi Evron cites a report in the &lt;a href="http://www.nytimes.com/2008/03/12/business/12heart-web.html?_r=1&amp;oref=slogin "&gt;NYT&lt;/a&gt;.&lt;blockquote&gt;" The threat seems largely theoretical. But a team of computer security researchers plans to report Wednesday that it had been able to gain wireless access to a combination heart defibrillator and pacemaker.&lt;br /&gt;&lt;br /&gt;They were able to reprogram it to shut down and to deliver jolts of electricity that would potentially be fatal . if the device had been in a person. In this case, the researcher were hacking into a device in a laboratory. "&lt;/blockquote&gt;What a great way to assassinate somebody....</description></item><item><title>Code quality metrics</title><link>http://radiofreetooting.blogspot.com/2008/03/code-quality-metrics.html</link><category>WTF</category><category>standards</category><category>Humour</category><category>software engineering</category><category>programming</category><author>noreply@blogger.com (APC)</author><pubDate>Wed, 12 Mar 2008 04:01:48 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-2374147437091356711</guid><description>Whenever two or three developers gather together they will argue over the best tool for editing code.  Once they've chewed the spearmint out of that they will commence a heated discussion on ways to measure code quality.  But I think &lt;a href="http://www.osnews.com/story/19266/WTFs_m" title="Cartoon on OS News"&gt;this cartoon by Thom Holwerda &lt;/a&gt;pretty much nails it.</description></item><item><title>Ellison on hostile acquisitions</title><link>http://radiofreetooting.blogspot.com/2008/03/ellison-on-hostile-acquisitions.html</link><category>Oracle</category><category>acquistions</category><category>Larry Ellison</category><author>noreply@blogger.com (APC)</author><pubDate>Tue, 11 Mar 2008 12:10:26 -0500</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-6255884631386378516</guid><description>&lt;a href="http://fakesteve.blogspot.com/2008/03/larry-gets-blamed-for-everything.html" title="Larry gets blamed for everything"&gt;Fake Steve Jobs&lt;/a&gt; links to &lt;a href="http://www.nytimes.com/2008/03/11/business/11sorkin.html?_r=2&amp;scp=1&amp;sq=sorkin+ellison&amp;st=nyt&amp;oref=slogin&amp;oref=slogin" title="Hostility Has Its Rewards"&gt;a piece in the New Yorks Times by Andrew Ross Sorkin&lt;/a&gt; on Larry Ellison's thoughts about the recent spate of hostile acquisitions (many of them by Oracle).  Larry demonstrates his knack for a well-turned line.  I have never worked for Big Red so I am not in a position to comment on his assessment of Oracle's friendliness.  But he has a very sound view of sales and marketing people:&lt;br /&gt;&lt;blockquote&gt;“What makes you think that engineers are happier, for example, working at PeopleSoft rather than at Oracle?” he asked. “Who says it’s unfriendly?”&lt;br /&gt;&lt;br /&gt;The people who are most likely to scream and moan about an acquisition are the marketing people and salespeople — who, by the way, are the most dispensable, he said.&lt;/blockquote&gt;</description></item><item><title>What... is your favourite colour?</title><link>http://radiofreetooting.blogspot.com/2008/03/what-is-your-favourite-colour.html</link><category>careers</category><category>OTN forum</category><category>Humour</category><category>Oracle</category><author>noreply@blogger.com (APC)</author><pubDate>Thu, 06 Mar 2008 07:08:06 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-4361733920767248529</guid><description>Yesterday somebody called Pradeep posted&lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=625338"&gt; a question in the OTN PL/SQL forum asking for careers advice&lt;/a&gt;.  He is a VB programmer working in a Microsoft code factory (in India I would guess).  He wanted to know what the Oracle job market was like, because he wanted thinking of training as an "oracle developer".  &lt;br /&gt;&lt;br /&gt;The reaction from some of the forum regulars was dismissive.  Here is a sample:&lt;blockquote&gt;"There are so many career/job opportunities in IT that to ask on a forum like this for  career direction advice is just ... Well, just not a good idea.&lt;/blockquote&gt;&lt;br /&gt;But put yourself in Pradeep's position. (Note the following is an extrapolation: I don't really know his circumstances). A combination of the commoditization of IT and outsourcing has produced software sweatshops, where you, the developer equivalent of a sharecropper, churn out code chunks to be assembled into systems elsewhere.  It's repetitive, stultifying and without much room for personal growth.  Even if you do hear of a better job you know you are surrounded by dozens of other sharecroppers who stand just as much chance of getting it as you.  &lt;br /&gt;&lt;br /&gt;So Pradeep has thought to himself, Oracle is a famous company but he doesn't know anybody who works as an Oracle developer.  That means he is going to face much less competition for any Oracle job which might arise.  You might find this optimistic but it is thinking outside of the box.  He then shows further initiative by posting a question about Oracle careers on the OTN forums.  Because he thinks that the people who answer questions there will be helpful - which they are - and they will have the relevant knowledge - they all have careers in Oracle development.&lt;br /&gt;&lt;br /&gt;What he hadn't anticipated was that quite so many people regard the PL/SQL forums as a suitable place for rehashing Monty Python jokes and discussing antiquated programming languages but not for offering careers advice.  It's a funny old world.</description></item><item><title>Openness: CMG's unsecret sauce</title><link>http://radiofreetooting.blogspot.com/2008/03/openness-cmgs-unsecret-source.html</link><category>careers</category><category>openness</category><author>noreply@blogger.com (APC)</author><pubDate>Thu, 06 Mar 2008 11:43:38 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-5019190928485123511</guid><description>The CMG Wake last Friday was a lot of fun.  Estimates have placed attendance at around the 700 mark, which made&lt;a href="http://www.beerintheevening.com/pubs/s/15/1536/Knights_Templar/Chancery_Lane" title="Beer in the Evening page for The Knights Templar"&gt; the pub&lt;/a&gt; extremely crowded and rather noisy.   &lt;br /&gt;&lt;br /&gt;Whilst queuing at the bar I got talking to someone who left the company in 1987.  He put his finger on the unique thing about CMG.  He now lectures in Business Studies and cites CMG as an example of openness in business.  In CMG everything was open: the personal files hung in open cabinets in the office.  You could read anyone's file - from their job application form to their latest staff appraisal.  Yes, including salary.&lt;br /&gt;&lt;br /&gt;That's the bit which gets people.  When Brian Behlendorf talked about &lt;a href="http://radiofreetooting.blogspot.com/2006/10/oow2k6-freebie-frenzy.html" title="My Blog on Open World 2006"&gt;introducing open source principles in general working practices at OOW2K6&lt;/a&gt; one of the questions afterwards was whether such openness, if taken to its logical extreme, would result in everybody knowing how much everybody else earns.  &lt;br /&gt;&lt;br /&gt;Well, why not?  Partly it's just embarrassment - many people would rather discuss their medical conditions or their bedroom fantasies than their pay-packet.  But the main objection seems to be "I wouldn't want my colleagues to know how much I earn".  The objectors are presuming that they earn more than their co-workers.  I think some of those people would be very interested to discover that all their colleagues get paid more than them.  And they'd want to know why.&lt;br /&gt;&lt;br /&gt;The accepted wisdom in CMG was that open salaries promoted fairness: the management couldn't play favourites because anybody could ask them "How come Joe Soap gets paid 10K more than me?" and have to provide an answer.  In practice there were probably all sorts of anomalies - especially in pay rates across different divisions - but it &lt;i&gt;felt&lt;/i&gt; fair.  I know people who work in law firms and finances houses where discussing your salary with co-workers is a disciplinary offence.  Most companies aren't that fierce but very few companies are as open as CMG was.&lt;br /&gt;&lt;br /&gt;I don't think openness was the only thing which made CMG special, but it was one of the reasons why so many people feel affection for the company, even if they did stop working for it over twenty years ago.   Although I'm sure the promise of a free bar helped too.&lt;br /&gt;&lt;h2&gt;Update: 06-MAR-2008&lt;/h2&gt;&lt;br /&gt;Currently &lt;a href="http://www.dilbert.com/comics/dilbert/archive/images/dilbert2008611220306.gif" title="Dilbert archives"&gt;Dilbert has an amusing take on payroll secrecy&lt;/a&gt;.  I think this link will eventually break, so get it whilst it's hot :D</description></item><item><title>Better late than never</title><link>http://radiofreetooting.blogspot.com/2008/03/better-late-than-never.html</link><category>performance</category><category>Oracle</category><author>noreply@blogger.com (APC)</author><pubDate>Tue, 04 Mar 2008 11:28:12 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-6433895197608814609</guid><description>There is a new white paper on OTN called &lt;a href="http://www.oracle.com/technology/products/bi/db/10g/pdf/twp_bidw_optimizer_10gr2_0208.pdf" title="Oracle white paper (PDF)"&gt;Upgrading from Oracle Database 9i to 10g: What to expect from the Optimizer&lt;/a&gt;.   I am working on a 9i project which is considering upgrading to 10g (quite possibly the last such in the world) so I think we'll find it useful.  Of course, it might also be helpful to people who have already done the upgrade and are experiencing performance problems in their new environment.</description></item><item><title>Farewell to CMG</title><link>http://radiofreetooting.blogspot.com/2008/02/farewell-to-cmg.html</link><category>careers</category><category>logica</category><category>Community</category><author>noreply@blogger.com (APC)</author><pubDate>Thu, 06 Mar 2008 11:44:02 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-1717911803751745661</guid><description>Thirteen years ago tomorrow I joined a consultancy company called CMG.  When I went for the interview I'd never heard of it but the interview process impressed me.  Fortunately things worked out well and I've been with the company ever since.  In 2003 we merged with another consultancy, Logica, to become LogicaCMG.  Until Wednesday, when the name was reverted back to Logica.&lt;br /&gt;&lt;br /&gt;This makes sense in many ways.  More people had heard of Logica than had heard of CMG, although the separate companies had been of equivalent size.  And it was a bit of a mouthful - even I had taken to calling us plain Logica.  But it is a sad moment.  CMG was a special sort of company; people define themselves by the fact that they worked for CMG, even if they left the company years ago.  And that's why several hundred ex-CMGers - because we are all ex-CMGers now - are descending on a pub in London to mark the passing of the name in the traditional CMG style.  Cheers!</description></item><item><title>The Guru's burden</title><link>http://radiofreetooting.blogspot.com/2008/02/gurus-burden.html</link><category>Humour</category><category>Community</category><author>noreply@blogger.com (APC)</author><pubDate>Wed, 20 Feb 2008 09:18:02 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-8774844494901891989</guid><description>Those of us who answer questions in forums or add a comment to a blog will recognise the truth of &lt;a href="http://xkcd.com/386/" title="Duty calls"&gt;this cartoon from the ever-reliable &lt;code&gt;xkcd&lt;/code&gt; comic&lt;/a&gt;.</description></item><item><title>Data modelling and other dying arts</title><link>http://radiofreetooting.blogspot.com/2008/02/data-modelling-and-other-dying-arts.html</link><category>careers</category><category>Oracle</category><category>Data Model</category><category>SQL</category><author>noreply@blogger.com (APC)</author><pubDate>Thu, 06 Mar 2008 11:44:23 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-3561342226617983508</guid><description>Martin Widlake sent me an e-mail after last months UKOUG Unix SIG:&lt;blockquote&gt;"At my presentation at the UKOUG Unix SIG yesterday I suggested that formal design was almost dead, replaced with organic design and asked if anyone still used ERDs. No one did. Not one.&lt;br&gt;This kind of bothered me. Does it mean that just ERDs are dead? Or that a room full of DBAs is a room full of people who do not do systems design (I am just as shocked by that if it is true)? Or maybe formal design is a dead concept."&lt;/blockquote&gt;There's two points here.  The first, the utter lack of DBAs who do data modelling tasks, doesn't surprise me in the slightest.  This is the nature of the modern DBA's job.  Production DBAs look after live systems: they don't design them.   Increasingly people are becoming DBAs straight out of college.  These guys have never worked as developers and probably never will.  The older geezers, who followed the more traditional route of starting out as programmers and progressing into the DBA role, probably haven't worked on development projects in years.  &lt;br /&gt;&lt;br /&gt;Also the IT landscape has changed.  Even ten years ago many organisations had one or at most a handful of databases.  It was possible for a DBA to be responsible for a single database; knowing its purpose and its value to their organisation was part of the job description.  These days it is not uncommon to find DBAs working in teams looking after dozens even hundreds of databases. Furthermore the production DBA may well work for a different company (i.e. an outsourcer), possibly in a different continent from the users.  Their relationship with the databases they administer is mediated through SLAs and ITIL compliant procedures.  So they have little incentive and even less time to appreciate the databases under their care.  Indeed, given the prevalence of Sarbanes-Oxley and similar pressures, production DBAs will be increasingly encouraged to remain in ignorance.  A production DBA is somebody who knows the metadata of everything and the business purpose of nothing.&lt;br /&gt;&lt;br /&gt;Of course, there are DBAs who do work on development projects.  They are often combine the role with that of being a developer, especially on smaller projects.  They often get called database engineers rather than DBAs.  And production DBAs tend to regard database engineers as being developers not "proper" DBAs.  I have been a database engineer on sites where I wasn't allowed the SYSTEM or SYS passwords for my project's &lt;i&gt;development&lt;/i&gt; database.  I would bet that everybody who goes to the Unix SIG is a production DBA.   &lt;br /&gt;&lt;br /&gt;The second question is whether &lt;i&gt;anybody&lt;/i&gt; uses entity relationship diagrams, or more broadly, whether anybody still does logical data modelling.  I can't answer this one from personal experience.  I've been on a data warehouse project for four years now: I only deal in existing schemas.  Even when I have done design it has been for ETL infrastructure and similar, so I have leapt straight to physical tables.  As I started out with SSADM I do feel a bit guilty about this.  Although I must say I haven't exactly missed drawing Entity Life History diagrams.&lt;br /&gt;&lt;br /&gt;Anecdotally, there does seem to be a general decline in the practice of data modelling.  There were hardly any presentations on modelling at the last UKOUG conference or at Open World 2007.  The Modelling and Design is one of the smaller UKOUG SIGs.  The ODTUG Designer listserver has flurries of activity but since Oracle announced the death of Designer it has - understandably - experienced a major drop in traffic.  There are occasional questions about data modelling in the OTN forums, but these are frequently from students rather than practitioners.  It is depressing to consider that the most commonly referenced data model seems to be the fundamentally flawed &lt;a href="http://tonyandrews.blogspot.com/2004/10/otlt-and-eav-two-big-design-mistakes.html" title="Tony Andrews's blog"&gt;Entity-Attribute-Value&lt;/a&gt;.  My last piece of circumstantial evidence is that the Oracle blogosphere rarely features posts about data modelling.  The only blog I know which regularly discusses data modelling is &lt;a href="http://database-programmer.blogspot.com/2007/12/database-skills-complete-contents.html" title="Database Skills: Complete Contents"&gt;The Database Programmer&lt;/a&gt; and even Ken Downs only talks about tables.  &lt;br /&gt;&lt;br /&gt;Of course people are doing system design.  There's lots of design about but I would guess that it all happens in UML.  So the majority of logical data modelling these days produces class models rather than ERDs.  The physical database design stage is much more likely to consist of ORM than mapping entities to tables.  Now that's not the sort of party you invite a DBA to, because you just know they're going to glower in the corner, drinking heavily and muttering to themselves.  So the mappings and the  database design will be done by middle-tier developers.  Our communal prejudices tell us this is unlikely to produce a correct and peformant database design, not least because projects which use such an approach tend to make a fetish of database agnosticism and platform independence.  So in the long run we might see a resurgence in data modelling, as part of the tool set for rescuing poorly performing class models.&lt;br /&gt;&lt;br /&gt;As a tangent, Dominic Delmolino observed in &lt;a href="http://www.oraclemusings.com/?p=90" title="Re-GROUP BY"&gt;a recent blog&lt;/a&gt; that&lt;blockquote&gt;"many of the people I’ve been interviewing seem to be taken aback by a few simple SQL questions, telling me that DBA’s (sic) don’t do SQL."&lt;/blockquote&gt;Again, why is this surprising?  SQL knowledge is going the way of data modelling for production DBAs.  There is a whole raft of GUI administration tools - Quest Spotlight, BMC Patrol, Embarcadero, OEM, etc - whose sole purpose is to allow DBAs to monitor and manage large numbers of databases without using the command line and without knowing SQL.  Again this is inevitable given the landscape I described above.  Old skool DBAs - the ones who started out managing a single database - will have accreted a personal library of SQL scripts, shell scripts and utilities which do all these things.  But people starting out now will probably find themselves operating in shops with dozens of databases and no time to roll their own tools.  If they are lucky there will be an old lag to pass on some skills and some scripts; more likely there will be a shrink-wrapped GUI tool.  Besides, remember that Oracle Enterprise Manager was introduced in Oracle7: it is perfectly feasible for somebody to describe themselves as an experienced DBA who has never administered a database in any other way.</description></item><item><title>Scoping with SQL Types</title><link>http://radiofreetooting.blogspot.com/2008/02/scoping-with-sql-types.html</link><category>SQL TYPE</category><category>Oracle</category><category>SQL</category><author>noreply@blogger.com (APC)</author><pubDate>Thu, 07 Feb 2008 07:36:02 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-5031061323057952288</guid><description>The scoping rules for function calls are quite clear.  Given a package with a function which has the same name as a standalone function, another function in that package will call the packaged function not the standalone one:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SQL&gt; create or replace function toto &lt;br /&gt;  2      return varchar2 &lt;br /&gt;  3  as&lt;br /&gt;  4  begin&lt;br /&gt;  5      return 'TOOTING';&lt;br /&gt;  6  end toto;&lt;br /&gt;  7  /&lt;br /&gt;&lt;br /&gt;Function created.&lt;br /&gt;&lt;br /&gt;SQL&gt; create or replace package a as&lt;br /&gt;  2      function toto return varchar2;&lt;br /&gt;  3      function tata return varchar2;&lt;br /&gt;  4  end a;&lt;br /&gt;  5  /&lt;br /&gt;&lt;br /&gt;Package created.&lt;br /&gt;&lt;br /&gt;SQL&gt; create or replace package body a as&lt;br /&gt;  2      function toto return varchar2 &lt;br /&gt;  3      as&lt;br /&gt;  4      begin&lt;br /&gt;  5          return 'KANSAS';&lt;br /&gt;  6      end toto;&lt;br /&gt;  7      function tata return varchar2 &lt;br /&gt;  8      as&lt;br /&gt;  9      begin&lt;br /&gt; 10          return 'We''re not in '||toto||' anymore';&lt;br /&gt; 11      end tata;&lt;br /&gt; 12  end a;&lt;br /&gt; 13  /&lt;br /&gt;&lt;br /&gt;Package body created.&lt;br /&gt;&lt;br /&gt;SQL&gt; select a.tata from dual&lt;br /&gt;  2  /&lt;br /&gt;TATA&lt;br /&gt;-----------------------------------&lt;br /&gt;We're not in KANSAS anymore&lt;br /&gt;&lt;br /&gt;SQL&gt; &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The rules apply the same way if we're working with an object rather than a package ....&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SQL&gt; drop package a&lt;br /&gt;  2  /&lt;br /&gt;&lt;br /&gt;Package dropped.&lt;br /&gt;&lt;br /&gt;SQL&gt; create or replace type a as object (&lt;br /&gt;  2      attr1 varchar2(20)&lt;br /&gt;  3      , member function toto return varchar2&lt;br /&gt;  4      , member function tata return varchar2&lt;br /&gt;  5  ) NOT FINAL;&lt;br /&gt;  6  /    &lt;br /&gt;&lt;br /&gt;Type created.&lt;br /&gt;&lt;br /&gt;SQL&gt; create or replace type body a as &lt;br /&gt;  2      member function toto return varchar2 &lt;br /&gt;  3      as&lt;br /&gt;  4      begin&lt;br /&gt;  5          return attr1;&lt;br /&gt;  6      end toto;&lt;br /&gt;  7      member function tata return varchar2 &lt;br /&gt;  8      as&lt;br /&gt;  9      begin&lt;br /&gt; 10          return 'We''re not in '||toto||' anymore';&lt;br /&gt; 11      end tata;&lt;br /&gt; 12  end;&lt;br /&gt; 13  /&lt;br /&gt;&lt;br /&gt;Type body created.&lt;br /&gt;&lt;br /&gt;SQL&gt; set serveroutput on&lt;br /&gt;SQL&gt; declare &lt;br /&gt;  2      my_a a := new a('KANSAS');&lt;br /&gt;  3  begin&lt;br /&gt;  4      dbms_output.put_line(my_a.tata);&lt;br /&gt;  5  end;&lt;br /&gt;  6  /&lt;br /&gt;We're not in KANSAS anymore&lt;br /&gt;&lt;br /&gt;PL/SQL procedure successfully completed.&lt;br /&gt;&lt;br /&gt;SQL&gt; &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;However, there is a gotcha: the scoping rules do not work that way when our type  inherits from a super-type....&lt;br /&gt;&lt;PRE&gt; &lt;br /&gt;SQL&gt; create or replace type b under a (&lt;br /&gt;  2      overriding member function tata return varchar2&lt;br /&gt;  3  );&lt;br /&gt;  4  /    &lt;br /&gt;&lt;br /&gt;Type created.&lt;br /&gt;&lt;br /&gt;SQL&gt; create or replace type body b as &lt;br /&gt;  2      overriding member function tata return varchar2 &lt;br /&gt;  3      as&lt;br /&gt;  4      begin&lt;br /&gt;  5          return 'We''re not in '||toto||' anymore!!!';&lt;br /&gt;  6      end tata;&lt;br /&gt;  7  end;&lt;br /&gt;  8  /&lt;br /&gt;&lt;br /&gt;Type body created.&lt;br /&gt;&lt;br /&gt;SQL&gt; declare &lt;br /&gt;  2      my_b b := new b('KANSAS');&lt;br /&gt;  3  begin&lt;br /&gt;  4      dbms_output.put_line(my_b.tata);&lt;br /&gt;  5  end;&lt;br /&gt;  6  /&lt;br /&gt;We're not in TOOTING anymore!!!&lt;br /&gt;&lt;br /&gt;PL/SQL procedure successfully completed.&lt;br /&gt;&lt;br /&gt;SQL&gt; &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The solution is quite straightforward: use the SELF keyword to make the scope explicit.&lt;br /&gt;&lt;pre&gt; &lt;br /&gt;SQL&gt; create or replace type body b as &lt;br /&gt;  2      overriding member function tata return varchar2 &lt;br /&gt;  3      as&lt;br /&gt;  4      begin&lt;br /&gt;  5          return 'We''re not in '||SELF.toto||' anymore!!!';&lt;br /&gt;  6      end tata;&lt;br /&gt;  7  end;&lt;br /&gt;  8  /&lt;br /&gt;&lt;br /&gt;Type body created.&lt;br /&gt;&lt;br /&gt;SQL&gt; &lt;br /&gt;SQL&gt; declare &lt;br /&gt;  2      my_b b := new b('KANSAS');&lt;br /&gt;  3  begin&lt;br /&gt;  4      dbms_output.put_line(my_b.tata);&lt;br /&gt;  5  end;&lt;br /&gt;  6  /&lt;br /&gt;We're not in KANSAS anymore!!!&lt;br /&gt;&lt;br /&gt;PL/SQL procedure successfully completed.&lt;br /&gt;&lt;br /&gt;SQL&gt; &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I admit I am not clear about the rules for using SELF.  Sometimes it is compulsory, sometimes it is optional.  So it's just easier to always include it whenever we reference anything inside a type body.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;NB: &lt;/span&gt;I ran these tests on 9.2.0.6, if that makes any difference.</description></item><item><title>GROUP BY</title><link>http://radiofreetooting.blogspot.com/2008/02/group-by.html</link><category>Oracle</category><category>Community</category><author>noreply@blogger.com (APC)</author><pubDate>Wed, 06 Feb 2008 11:54:16 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-1426689393620785299</guid><description>In a &lt;a href="http://radiofreetooting.blogspot.com/2008/02/networking-fatigue.html" title="Networking fatigue"&gt;comment on my previous piece&lt;/a&gt; Justin K asks "isn't it nice to have choices?".  Well it depends.  If you don't like carrots then a menu which offers you a choice of carrots or french beans is nice.  But choice is one of those weasel words beloved of politicians&lt;a href="#fn1"&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt;.  Politicians promise parents the right to choose a school for their children; but what we actually want is just one local school with decent academic standards and no metal detectors at the school gates.&lt;br /&gt;&lt;br /&gt;So the multiplicity of Oracle Web2.0 sites is not an automatic good.  It will lead to the duplication of effort and a dilution of impact.  We went through the same cycle of grief a few years ago with forum sites. On the one hand nobody wants to repeatedly write the same things in several different places.  On the other hand people want to participate.  And yet if we pour all our efforts into one site and it's not the one everybody else has chosen our endeavours will be wasted.  Absence of choice makes life so much easier.&lt;br /&gt;&lt;br /&gt;Still, I don't want to be negative about this.  So I've set up&lt;a href="http://www.oraclecommunity.net/group/OtnForumRegulars" title=" OTN Forum Regulars group page"&gt; a group for OTN Forum Regulars&lt;/a&gt; on OracleCommunity.net.  Perhaps I'll see some of you there.&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;sup&gt;&lt;fn id=fn1&gt;1.   Not that I'm accusing Justin of being a politician or a weasel.</description></item><item><title>Who needs SQL injection?</title><link>http://radiofreetooting.blogspot.com/2008/02/who-needs-sql-injection.html</link><category>WTF</category><category>Security</category><category>software engineering</category><category>Oracle</category><category>SQL</category><author>noreply@blogger.com (APC)</author><pubDate>Wed, 06 Feb 2008 11:55:17 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-7490929015805396142</guid><description>I - probably like many of you - thought the prevention of SQL injection (the passing of additional SQL statements through the parameters of dynamic SQL calls) was the low hanging fruit of web app security.  Not at all.  &lt;a href="http://thedailywtf.com/Articles/Not-Exactly-AJAX.aspx" title="Not Exactly AJAX"&gt;This latest post from The Daily WTF&lt;/a&gt; really takes database (in)security to another level.</description></item><item><title>Networking fatigue</title><link>http://radiofreetooting.blogspot.com/2008/02/networking-fatigue.html</link><category>Oracle</category><category>Community</category><author>noreply@blogger.com (APC)</author><pubDate>Wed, 06 Feb 2008 11:55:46 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-13000143.post-7748492708205854976</guid><description>Recently here's been a whole bunch of Web2.0 initiatives in the Oracle space.  &lt;br /&gt;&lt;ul&gt;&lt;a href="https://mix.oracle.com/"&gt;Oracle Mix&lt;/a&gt;&lt;br /&gt;&lt;a href="http://wiki.oracle.com/?t=anon"&gt;Oracle Wiki&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/oracle"&gt;Oracle Twitter feed&lt;/a&gt;&lt;br /&gt;&lt;a href="https://oracleopenworldconnect07.leveragesoftware.com/default.lev"&gt;Open World Connect&lt;/a&gt;&lt;br /&gt;&lt;a href="http://oracleappslab.com/2008/01/07/orablog-tag/"&gt;the notorious blog tagging epidemic&lt;/a&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Plus all the other sites like &lt;a href="http://www.linkedin.com/"&gt;LinkedIn&lt;/a&gt;.  And now Eddie Awad has create &lt;a href="http://www.oraclecommunity.net/"&gt;an Oracle Community site&lt;/a&gt;, a kind of Facebook it's okay to like.  &lt;br /&gt;&lt;br /&gt;I have signed up for Oracle Community but I'm really not sure whether I'll use it much.  We've gone from almost nothing apart from OFF TOPIC threads in the forums to a plethora of sites in a few  months.   A man doesn't have to be Howard Rogers to feel that this is getting out of hand.  There's a tremendous amount of overlap between all these sites and the purpose of each site isn't completely clear.  Oracle Wiki seems to consist mainly of people redacting the documentation.  Oracle Mix struck me as both over-engineered (lots of different things it could do) and under-engineered (impossible to find anything on the site); perhaps its purpose has become clearer now but I must admit the site navigation was so flawed I stopped visiting.  &lt;br /&gt;&lt;br /&gt;I will be interested to see whether Oracle Community keeps going after the initial spike of registrations and page customisation.  There is an obvious need for some better form of communication between Oracle enthusiasts than adding comments to blog posts or forum threads but which doesn't require giving out personal contact details to all and sundry.  Perhaps Oracle Community is the one.  &lt;br /&gt;&lt;h2&gt;Postscript&lt;/h2&gt;&lt;br /&gt;Just after I signed up I read this article on The Register about &lt;a href="http://www.theregister.co.uk/2008/01/31/myspace_fb_comscore_drop/"&gt;Facebook fatigue&lt;/a&gt;.  It's worth a read.</description></item></channel></rss>
