The Birth of Asktom
I'l like to thank Kelli Wiseth and the Oracle magazine staff of 2000 for getting it all going in the beginning.
The genesis of Asktom is this usenet posting from 1999. Someone posted the concept of updating the Oracle data dictionary directly – something no one, expert, professional, newbie, whatever should suggest under any circumstances. Something goes horribly wrong and support tells you to do it – OK. But for any other reason, sorry, but no. The thread on usenet was asking about how to rename a column, before that feature was introduced (8i was the current release at the time of that posting, rename column was 9i).
There was a simple answer (two of them). One was the answer I always gave – create a view, this is what views are for. You can reorder columns, you can rename them, you can do whatever you want – all with a view. The other was a new idea. There is a drop column – you can add new column, update it and null out the old, drop the old. (Neat thing, if you goto the thread view by clicking on the thread title, you can see that Jonathan Lewis and I gave exactly the same answers, always made me feel good to see that).
Well, someone followed up with “what do you think about updating sys.col$?”. I, definitely having an opinion on this, said “I think it is a hugely *BAD* terrible idea. Words cannot describe how bad it could be.”. In an offline talk – I discovered the concept for the idea came from…. Oracle.com – Oracle.com/oramag to be exact. It was in a user contributed ‘tip’. I got in touch with the editor at the time, Kelli Wiseth (she left Oracle for a while and came back, left again... See this for an ongoing example of her work). Turned out they had no one vetting the material supplied, they just assumed it was “ok”. Given that I definitely had some feelings about that – they asked me if I would mind doing that. I agreed. I would accept or reject the tips for each print copy of the magazine and the online edition.
Over the next couple of weeks/months, it came to light that they got questions in addition to tips from readers all over the world. They had no method of answering the questions and couldn’t really do anything with them. Kelli asked me if I would like to take a peek at some and the concept of Asktom was born in 2000. The very first question ever asked and answered is available here. As you can see the format has changed a little over time, but the concept is the same.
In conjunction with the print column, we took the Asktom online in February/March of that year as well. It started as a perl application running on OTN that used email. A reader would come to the form, type in a question, hit submit and it would end up in my inbox. That lasted about 6 weeks. When I started coming in to work and having 40 or more questions in my email – that concept ended. I had no way to control the influx of questions, I had no way to turn it off when I didn’t have the time.
So, that was when the machine ‘asktom.oracle.com’ (also known back than as osi.oracle.com, OSI stood for Oracle Service Industries, the name of the division I worked in. I ran the web servers and databases for that divisions internal and external systems.) was born. I wrote by hand Asktom "version 1.0". It was a “black and blue” color scheme (wish I had kept a static page or two, the wayback machine on the internet archives doesn’t have a copy from early 2000) and had about 4 or 5 pages. I used PL/SQL (of course) and at the time “owarepl” , a pre-cursor to both webdb’s lightweight listener and mod_plsql.
Shortly thereafter, the people that originally wrote webdb were off doing a new thing – the thing that became HTML DB. When it was almost ready for prime time (way before we would even think about letting it outside of Oracle), Joel Kallman offered to prove that it could work by rewriting asktom in this tool. Since I had all of the API’s done – the API’s to save a question, update a question, ask for more information from the person submitting the question and so on – this would be a test of the pre-HTML DB environment to build a user interface and handle all of the security, navigation and so on. We blossomed from basically 5 pages to over 40 today simply because of this switch. There is no way I would have by hand coded 40+ pages – there would be features we would not have without HTML DB.
In the early days, I used to get 5,000 or so views a week. Today I get about 80,000 to 120,000 views a day from about 15,000 unique IP addresses per day. In the last month, well over 2,000,000 page views from over 100,000 unique IP addresses. It is hard to say how many people that 100,000 represents given that some people use more than one IP address (dhcp at work/home) and firewalls make large communities of users look like the same IP.
If you are interested, here are my hit counts for the last 17 months
TRUNC(TIM COUNT(*) COUNT(DISTINCTIP_ADDRESS)
--------- ---------- -------------------------
01-DEC-03 806320 32192
01-JAN-04 884535 35273
01-FEB-04 968818 34761
01-MAR-04 1242763 60635
01-APR-04 1322224 68658
01-MAY-04 1213422 72447
01-JUN-04 1597191 92343
01-JUL-04 1453072 79602
01-AUG-04 1544078 84743
01-SEP-04 1870786 101935
01-OCT-04 1752753 104764
01-NOV-04 2608425 104638
01-DEC-04 1749504 112242
01-JAN-05 2190787 118164
01-FEB-05 2499986 130210
01-MAR-05 2126486 134406
01-APR-05 1691208 115697
So that's it, that is the story behind the story. I'm still violently opposed to anyone suggesting to update the dictionary without support sitting there with them for any reason. I compare doing so to deliberately putting a virus on your machine. It might not hurt you today, but maybe a year from now when you upgrade and the dictionary corruption affects you for the first time... Whenever I see such a "tip", I go way out of my way to try and get rid of it, erase it. I've spent many hours getting rid of said "tips". They keep popping up in the strangest places.