Friday, March 31, 2006
Totally free installation...
Ok, I’m supposed to be getting a dedicated T1 line installed today. Never mind that no one can tell me when they might show up. Never mind that no one can tell me if they are going to show up (you would think their dispatch system might have some clue – but no).
But the best part, I’m talking with the guy only to discover that the installation will take only a couple of seconds on their part. What I say – there is this big box of stuff that needs to be set up, configured and so on. “Oh, you do that part”. What? Where is the free installation I ask.
That is when he said – and I kid you not, I asked him to repeat it
Installation is completely free, as long as you do it yourself.
I’m not kidding. I had him say it a third time and asked him if he thought that sounded a bit strange.
Installation is completely free, as long as you do it yourself.
He didn’t find it strange. Then I said – at least I have weekend support, since the odds they get here before close of business today to let me configure it are slim to none – that is when I found out. “Well you have weekend support, except (except!) for this provisioning period. That is only 9-5 Monday through Friday. Other than that you have the exclusive 24x7 support package”.
Then he said “you should have gotten all of this from your sales guy”. Ouch.
Well, it’ll be interesting. Interesting to see if I get my connection today (I doubt it, seriously doubt it). Interesting to see that if I do – that I can provision it before 5pm (slim – to none). Interesting to see if they charge me for the service that I won’t be able to configure and or use until next Friday at the earliest (week of travel ahead – without my aircard since that is what we’ve all been sharing here at the house for internet connectivity since December!)
Installation is completely free, as long as you do it yourself.
Grumble, mumble, $#@$#! The devil is in the details…At least I've only been waiting 3 months for this completely free installation.
Wednesday, March 29, 2006
Wonder if they actually work. Really wonder what happens when I get up to walk away and totally forget that I’m wearing them – ripping my laptop out of the dock and onto the floor.
Maybe not such a good idea.
Burnout part two...
Eddie Awad wrote that this could be “blogger burnout” – could be, but I doubt it. Blogging should be something that is fun, enjoyable, and totally non-committal. You are free to either do it or not, as you see fit. With RSS feeds, no one needs to poll a blog by themselves, their news aggregator should do that for them. Although – not enough people use that – as evidenced by the fact that when I took a couple of days off – the hits on my blog did not go down in a large way. It would appear that people kept coming.
Did I experience burnout for a while? No, not really – there was just a 12 day period where I quite simply didn’t have anything to say (March 10th – March 22nd). And then all of a sudden I did. I still did my day job, asktom.oracle.com, a conference, a consulting gig, a user group, my daughters soccer tournament and so on. I was busy, had other things to do. The blog is a place I write for fun (if my teachers from high school ever saw me write those words “write for fun” they would not believe it) and if something else more relevant gets in the way – so be it.
So, I don’t think people are “burning out” as much as finding other priorities and things they need or want to do more.
For everyone that “turns off” however, two or three more seem to pop up. I’ve been enjoying some of the new ones and will continue to aggregate the old ones waiting for stuff to turn up.
Read that definition of burnout on the original blog entry. I don’t think people coming and going from the “blog space” is burnout:
burnout: The low moral or hopelessness stakeholders feel because of churn, overwork, unrealistic goals, and/or inadequate support. People stop trying because they feel like they've tried and failed, or their work is meaningless or unappreciated.
It is not meaningless, unappreciated, failed.
It should be a hobby – fun and personally meaningful. When it becomes something that you could stop doing because of burnout – that would mean you should have stopped a long long time ago.
Tuesday, March 28, 2006
Some inspirational quotes...
No great thing is created suddenly. —Epictetus (A.D.200)
How true – I agree with the sentiment expressed on that site as well (re: The McDonalds culture). “Hey, I’ve got 30 seconds – make me an expert”. I hear it all of the time – drives me nuts.
Anything good – anything really worth having or acquiring – will probably take a while. I spent six years in utter obscurity at my first job (well, I gained good visibility inside the company by the time I left) and another five years in Oracle (getting known inside Oracle technically – but not so known outside Oracle) before I came anywhere close to what I do now. Eleven years. It was really thirteen – that was when I started AskTom.
Good things take time.
Well done is better than well said. —Benjamin Franklin
Actions speak louder than words. Indeed.
Know thyself. —Socrates
How many of you out there like your job? Really like your job? I mean really really like your job. Why not?
And my personal all time favorite:
No matter where you go, there you are. – Buckarro Banzai (and others…)
I like it just because it is so obvious…
Monday, March 27, 2006
Odds and ends...
The other thing I stumbled on was this monitor. This one is definitely fake for now (brake all the rules) – but I could see it coming in the future. Imagine a resolution of 19,200x2,400. And all done via bluetooth (not). I would buy one. I’m very much into screen real-estate. My present to myself after my first book was published was a pair of 21” LCD monitors (1600x1200). They could be had for “not too much money” today but when I first bought them – well, let’s just say they cost more than my computer. But they’ve help up very well – I have one at work and one at home that I extend my laptop’s screen onto – so I have 1600x1200 next to 1680x1050. Not quite the 19,200x2,400 – but sufficient right now for working on.
Then, there was this. Sort of silly – but made me laugh anyway. That might be because I used water coolers in Effective Oracle by Design to describe how multiple freelists and freelist groups work! Using a water cooler to demonstrate raid parallels that nicely.
And lastly on a more or less serious note – a new blog to check out (as if there weren’t enough already). Dominic Delmolino has started a blog. I’ve known Dominic for a while (well, ever since he was regarded as a replication expert as noted in his blog entry). I’ve pointed directly to one of the blog entries of his that I liked in particular – “That’ll Teach Me”. It reminded me very much of my “Why Why is probably the Right Answer” short talk I give. Anyway – I’ve added him to my list of blogs to check out.
Friday, March 24, 2006
Cause and effect...
I really liked that example. Some of the ‘facts’ are really funny, like “More than 98 percent of convicted felons are bread users.”. That is likely very true, but not relevant. “More than 90 percent of violent crimes are committed within 24 hours of eating bread”, again true – but related? “Bread has been proven to be addictive. Subjects deprived of bread and given only water to eat begged for bread after as little as two days” – too funny.
But my personal favorite: “Most American bread eaters are utterly unable to distinguish between significant scientific fact and meaningless statistical babbling.”. Now that was awesome.
Now, since that was light and fluffy – you can also read this more serious paper. Cary Millsap forwarded that onto me a while ago. Thought provoking.
Thursday, March 23, 2006
My first really big presentation included a live demo with many moving pieces. Big time mistake – it crashed in a most spectacular fashion.
I’ve seen people make the biggest demo mistake of all times – hitting the “do it again and maybe it’ll work button” over and over and over and over (hit it once and have it fail – ok, hit it twice and have it fail – maybe. But that third and fourth time and beyond – sorry, you just lost me there). You need to be able to recover gracefully.
Anytime I go to “ad-hoc” something in response to a question – I tell the audience “we are no longer in demo land – we are in real life – this may or may not work”. Ad-hoc’ing a demo is like developing a new application – it may or may not work the first time around. My “demos” are my tested production systems. I have a special set of VM’s (virtual machines with VMWare) that I call my production instances. They are very carefully crafted and I don’t use them for anything but my demonstrations. Anytime I step out of them and use another environment (another VMWare machine – like the one I use to answer questions while on the road) – the demo’s invariably crash and burn. It just happened to me at the GOUG this week in fact! I was doing a live “AskTom” session and the question I received was most easily answered by example. I didn’t have my USB external disk plugged in so I just used my internal disk with my “answer questions” VM instances. They can be a mess since I just whip up examples and change things constantly. I started up the script and of course I immediately had name space conflicts to clean up (I really should be more original than to use T for tables, T_IDXn for indexes, P for procedures, F for functions and the dreaded V for views – htmldb (apex) users should understand why V is a really really utterly bad choice!). So I got the demo to work – but it was not as clean as it could be. Made a couple of jokes while cleaning up my schema to let the demo run – and then it did. (If it did not work the second time, I would have not gone for a third try)
At the same conference – I was watching another presenter, she was showing off Workflow. She got a question and ad-hoc’ed the response. Received a “404 Not Found” message during the process. Did not panic, went back – tried the process again, got the same error. Recovered gracefully – “it is just a demo, this is my laptop, not production, I won’t bore you by debugging this now” and explained what the process would be. Excellent. If you do live demos and ad-hoc them, the ability to gracefully recover and not get the “deer in headlights” panic setting in is crucial. Make a joke of it and continue.
I’ve always been skeptical of “large” demos I see on stage anyway. If we are looking at a graphical interface showing us stuff and just have to take it on faith that “stuff is really happening in the background” – I don’t see the point (might as well just screen cam it). I remember my manager back in 1995/1996 wanting to build “the coolest demo system ever”. We would run it like a production system – it would do thousands and thousands of transactions continuously, run parallel query – it would model an enterprise. I pointed out that to run such a “demo” system continuously would require staffing similar to running a “production” system in the same fashion (our demo systems are our production systems when we are on stage, think about that). I used the “chocolate world” analogy at that point. My thought was “this is a demo, it needs to work – it needs to work exactly the same every single time – it needs to work every single time – it needs to just work without any surprises whatsoever”. Chocolate world in Hershey park (near where I grew up – been there dozens of times) is a chocolate factory simulation. It demonstrates what they do in the factory. It is not a factory, it is a carefully crafted simulation of one. My concept for this demo system he wanted to build was “we should just get cardboard boxes, cover them with aluminum foil and blinking Christmas tree lights – those are the servers. Then explain how the software running on them would work in real life and show information from real systems”. Just like chocolate world. That to me is what a large scale demo should be about – trying to make it be 100% real, in an environment like you have when presenting (5 seconds to setup before hand – your laptop you use for “real life”) is a recipe for disaster.
Wednesday, March 22, 2006
We now return you to our regularly scheduled programming...
I spent the last couple of days at the GOUG. I spoke there two years ago and came back this year. They do a two day session with two or three concurrent tracks – plus two “entire group” sessions a day. I like the format – it works well. I did two of the entire group sessions plus one of the break outs. I was scheduled just to do the two entire group sessions but at 9:25pm Sunday night – as I was eating dinner (yes, of course – the flights in and out of Atlanta were delayed, late dinner) I received a call from the organizer David Scott. He was scheduled to do an Oracle XE talk the next day but just thought I might be interested in doing it. I think that really means he hadn’t finished his slides yet and was hoping I just might have something to say! So, I picked up that one as well – nothing like “just in time presentation preparation at 7am in the morning – which coincides with the current “last update time” on asktom:
Logical Reads vs Physical Reads 20 Mar 2006 7am …
The conference was quite good – I thoroughly enjoyed myself. It was good to meet old friends, make new ones, and get to know others better…
I stayed for half of day two just long enough to see Cary Millsap’s talk – it was well worth it. He said a lot of the same things I said the day before (always good to have continuity and agreement) – but using different examples, a different way to look at it. I really liked that – the consistency of the message and similar conclusions being reached, using different methods.
Speaking of user groups and conferences – Howard had a recent posting on that. I don’t really agree with his premise – I wish he would have attended and spoke at the conference. The user groups are a great venue for exchanging information and people are drawn to come to them not only are looking for technical information, but for the informal networking and yes – sometimes to meet someone they’ve interacted with “electronically” or have received advice from in the past on a forum, via email, whatever. The posting is an interesting read though as it generated quite a bit of commentary. In any case – I’ll keep attending the user group conferences as time permits. I’m a big fan of the infrastructure they represent.
Thursday, March 16, 2006
Thursday, March 09, 2006
Hotsos symposium 2006, day 3...
Hotsos Symposium day 3. I officially have lost my voice by the end of this day. Not entirely due to talking and talking, although that didn’t help. I’ve caught a cold…
Wednesday started far too early as I had the 8:30am speaking slot! It went well I thought though, it took precisely 60 minutes with good questions during the talk. That is two for two (as far as keeping on schedule). In fact, the schedule was kept to very well by all participants – that is a good thing.
I attended quite a few sessions – the first one after I gave mine was “How NOT to develop an Oracle Based Application” by Kerry Osborne. This one had me shaking my head in violent agreement with his 10 points (like “go ahead, build that ‘db independent layer’” and such). It was accurate, it was funny, it was good.
Then, I went to Toons Koppelaars two part presentation on Applied Mathematics for Database Practitioners. This was really neat. A very formal way to specify database constraints in a completely unambiguous fashion. I actually “got it” as I was able to recall much of my logic courses from college. He has a book coming out (that was being co-authored with Lex de Haan prior to his passing away) and I’ll be picking it up. This was one of the hi-lights of the conference for me.
Then I closed the day out with Cary’s “Capacity planning for Oracle” talk. I always enjoy his sessions – both for the technical content as well as the style. He and Jonathan (whose session I’ll be in all day today) have bits of “presentation style” that I try to steal myself.
Lastly, we did an Oaktable dinner. There was 18 of us (19 really). We had a place for Lex at the table:
Wednesday, March 08, 2006
Hotsos symposium 2006, day 2...
That last one was Wolfgang Breitling’s talk. I really enjoyed that one for the simple reason it is a method I follow myself. The crux of the matter is – you have a query that should perform better, you know it can. But the optimizer has generated the wrong plan (you know it did). Rather than just hinting it and fixing that one, sole query – you can try to figure out “why” (and hence fix an entire class of poorly performing queries in the process, instead of tuning by hand every single one). The premise: bad query plans result from incorrect cardinality estimates. If you want to “tune a query”, look to the estimated cardinality values (explain plan or v$sql_plan) and compare them to the actuals (row source operation in a TKPROF report, v$sql_plan_statistics). His approach, one I share, is to do that and then try to come up with a way to “fix it” – to get the optimizer to achieve the correct cardinality. It might be optimizer dynamic sampling, it might be setting/gathering more detailed statistics – but it will fix not only that particular query but an entire class of queries that might suffer from the same issue. I really liked this one.
Doug Burns and Eric Emrick also have nice write ups as well.
The other thing I like about some of these conferences – getting to meet people I only know “electronically”. Hotsos has been great for that year after year – I first met Jonathan Lewis in person here back the first year I came. This year I got to meet lots of new people, including David Aldridge:
Seen here with “Shrek” (you might recognize those names from this blog). You gotta like what David’s shirt reads “I make stuff up”.
Last night, Gary Goodman from Hotsos invited me to their customer dinner. They rented two limo’s and we all piled in. It reminded me vaguely of the caving experience – it was a long dark space that you had to crawl through. The limo was much much larger than the cave tunnels – and didn’t have all of the dirt.
Tuesday, March 07, 2006
Hotsos symposium 2006, day 1...
I got in late Sunday night – the flight attendant that should have been in Washington was stuck in NewYork – making our flight much delayed. So I missed the opening event on Sunday night – but was there bright and early on Monday for the kickoff of the week.
After Ray Lanes keynote – the technical sessions began. I attended my session first (of course) and it went pretty well. I like to say that giving a presentation for the first time (new material) must be a lot like a blind date. You don’t know how long it will actually last (do you have 30 minutes, or 90 minutes of material – or did you get lucky and have exactly one hours worth). You don’t know if you’ll have anything to say. You don’t know what is coming next (I usually talk about the next slides before I get them on screen with new material) and so on… But this one went well. Exactly 60 minutes, the demos all worked and the material flowed.
Then I attended David Kurtz’s talk on instrumentation in PeopleSoft applications. It was a good follow on to my talk which was just about instrumentation of applications in general. It was interesting to see what they had done (and it appears rather comprehensive, it definitely makes figuring out “where the time is being spent” in PeopleSoft much easier.
After that – time for lunch and then off to Julian Dykes inside RAC presentation. He had an excellent slide in there I’ll have to borrow – about how the buffer cache does a full scan. I knew the details, but his picture says it well. I guess sometimes a good graphic can be useful! He also had a nice analogy about how the buffer cache works in cache fusion compared to “kids bugging you for an ice cream”. I like analogies myself – they help me remember how things work conceptually. This one a good one – describing how locks are downgraded cross instance – but only if one of the instances really bugs the other one.
Then I switched my schedule and went to Dominic Delmolino’s talk “Optimization as an Organizational Discipline”. It was excellent – optimization (performance) must be a holistic thing – at all levels. I really like the stories he brings from his job – they drive the points home. The one story I took away is how a disconnect between the business and the technical people can lead to disaster (it ties in nicely with my “WHY WHY is probably the right answer” talk). One week – they were asked for an API that returned a set of customers that had purchased products and those products were set to expire soon (so they know who to email presumably – to give them a change to re-up their service). A little while later – they were asked for an API that dumped information about a product. No problem – easily done. No one asked “why”, just supplied it. Now – a short while later – there is this 8 hour long running process. What was it doing – it was using API one to get the list of people and then for every product calling API two to get the details. Brilliant (not). The simple fix – “just join”, run time massively decreased, new API, everyone happy. This is a good reason why “WHY” is probably the right answer.
Then the last session for the day was Cary’s “Lessons Learned, version 2006.3”. What I took away from this session: Cary was wrong. He described a mistake he made – that was corrected – and the story behind it. The point – we all make mistakes, don’t take things for granted, the obvious answer is sometimes right and sometimes wrong. We all make mistakes.
After that, we had the speaker panel (those are fun) and got some good questions. The day ended with a party – Margaritaville was the theme and fun was had by all.
Now for day two…
Sunday, March 05, 2006
Kathy Sierra has done it again!
The first entry on “Square One” talks about how focusing in on the basics is what makes superior performers – just that, superior performers. If you get the concepts and apply them consistently (and correctly) time after time after time – you are on your way. What are the fundamentals for database developers? I think I wrote many of them in this book. The database architecture, what the various bits of Oracle are (files, memory, processes) and how they interact. Sort of like understanding your operating system and how it functions for example. Locking and latching (extremely, hugely important – extremely, hugely ignored by far too many). Concurrency controls (perhaps the most important thing – but perhaps the most misunderstood – even by those with years and years of experience). Redo and undo – what they are, how they work together, how to minimize their generation under certain conditions, why “just turn it off” is not a smart statement to make. Tables, Datatypes, Partitioning, and so on. I refer to that book as “my concepts guide” (does NOT mean you should not read the real one! Just that if I had written the concepts guide, it might have looked like that book). Hopefully, this year I’ll get to finish my concepts guide with part two (that is the goal anyway).
I cannot tell you how many times I get questions like “where can I find the internals guide to Oracle, what the redo log file format is, the X$ table documentation, an inclusive list of all undocumented commands, etc….”. My answer is always “so, you’ve memorized the concepts guide – that is good, I haven’t completely done that myself”. They always say “well, no”. Sometimes I’ll ask them a list of questions about how Oracle works – things I consider “elemental”. Silence… That is when I tell them, forget the “mystic, magic, cool in theory internal stuff – learn and master the basics and you’ll blow way past someone who has learned a handful of really cool internal tricks”.
Master the basics – I still am. You don’t see me resorting to tons of internal tricks to demonstrate how Oracle works – you don’t need to. There are times for internals, but that is mostly in the realm of support (mostly).
The second article really resonated with me – “How to be an Expert”. I really liked the chart with the X-Axis labeled “Years or decades”. Years or decades – think about that. Too many people are looking for instant “expert status” and they try to obtain that by “cool internal stuff”. Thinking “If I know the internals and others don’t I’ll be better because I know something they don’t”. Problem with that theory is – someone like me will blow right past you with the fundamental basics. That is why these two articles by Kathy go together so well – master the basics and keep mastering them, and then incrementally improve (I’m never happy with my last cool SQL solution – always looking for a new, better way to do something) forever.
Like I frequently say “I learn something new about Oracle every day”. I’m looking forward to the Hotsos Symposium this week – I should learn a couple of new things. Some advanced, some basic. But if you look at my list on that blog entry – nothing “internal” really (Jonathan Lewis and his V$/X$ talk might be the closest I come to internals).
Yesterday, I didn’t really work with Oracle stuff. I went caving with my son. This is a shot of us at the end of the day (after 6 hours in the cave).
I did learn something new however – I learned I never want to do a 300 foot (American Football field length) belly crawl ever again – yet alone twice in one day. The passage was narrow both in height (my belly on the ground, my helmet and sometimes my back would hit the ceiling) and width (I could at points touch both walls with my hands. I found it to be an uncomfortable experience (uncomfortable doesn’t really describe it fully). When I popped out the other end after what seemed like an eternity – that was when I found out the only way back out of the cave was to belly crawl back the way we just came, well, I was not pleased. I don’t know which crawl was harder – the one on the way in when I didn’t really know when it was going to end – or the one on the way out when I did.
I have more bruises today than I’ve had in a long long time.
Wednesday, March 01, 2006
- 9:45 – well, obviously I’ll do my session. Thanks Cary for putting me dead FIRST, on two days. I am such a morning person so it is really no problem at all.
- 11am – I want to see David Kurtz’s presentation on “Peoplesoft: A properly instrumented Application”. It should go nicely as a follow on to my session.
- 1pm – I will probably go see Julian Dykes “Inside RAC”
- 2:15pm – I want to hear about “Analytic Function and Block (re)Visits”. Always looking for new ways to showcase analytics (they rock, they roll…)
- 3:30pm – Cary’s presentation (which will be yet another nice follow on to my own) on “Lessons Learned, Version 2006.3”
Then, apparently, it is “party time” for Monday night. Fortunately, I don’t have to wake up really early Tuesday to speak (no, that would be Wednesday I have to do that again, in case I didn’t mention it – Thanks Cary for giving me two speaking slots really really early in the morning).
- 8:30am – I want to check out Mark’s “Deadlock” presentation.
- 9:45am – Doug’s “Parallel” session.
- 11am – Wolfgang’s“Tuning by Cardinality Feedback” presentation looks good.
- 1pm – Hard call, but Larry’s title of “Combining the Chocolate of Technical Metrics and the Peanut Butter of Business Metrics” wins
- 2:15pm – This was really hard – I wanted to see both, but will likely choose Jonathan’s “V$ and X$”talk
- 3:30pm – “No, Cary, We're STILL not Tuning the Right SQL Statements”, but of course.
And then – an early night, for you see – Cary has scheduled me (did I thank him for that yet?) at 8:30 in the morning the next day…
- 8:30am (yes, 8:30am) - Performance Impact of the LOG ERRORS Clause in 10gR2
- 9:45am – I’ll likely pop into “How NOT to Develop an Oracle Based Application”
- 11am and 1pm – I’m intrigued by “Applied Mathematics for Database Practitioners, Part I: The Maths” and “Applied Mathematics for Database Practitioners, Part II: The Application”. So, I will check them out
- 2:15pm – Hard one again – but likely “How Many Slaves? (Parallel Execution and the Magic of Two)” by Doug
- 3:30pm (did anyone else notice that Cary has talks scheduled at the END of the day – at the nice hour of 3:30pm in the afternoon, whereas I appear to have, well, really early ones?) – I’ll probably skip Cary’s session to see what Tim Gorman has to say about “Using STATSPACK as a Performance Data Warehouse”
And then the show is over, but the training day begins. I did the training day last year and this year Jonathan Lewis is going to do it. I’ve been scheduled to go to his seminars at least 2 or 3 times in the past but had to back out at the last minute due to scheduling conflicts. This time – I hope to make it.
Speaking of Jonathan, Christopher Foot just reviewed his new book and the review is pretty good. You can read it here…
So, if you are going to Hotsos next week – see you there, I get in late Sunday night – all the better to get up really early and have the first session in the morning (thanks Cary!)