Showing posts with label rant. Show all posts
Showing posts with label rant. Show all posts

Monday, July 8, 2013

Write It Out

This one was sitting in the drafts folder for a week or two, then I saw this post on Twitter:

Years ago I had a boss who was my technical superior (he may still be). I used to pop in and out of his office, or try to, and ask questions. Most of them were silly, n00b questions.

He was nice, but busy. It didn't take me very long to "read" that. So I slowed down my pace of questions. I began to write things up via email so that he could respond when he the had time. I started to use forums as well. Then I found was directed to How To Ask Questions The Smart Way.

One of the things that became evident quickly is that I didn't always have to hit Send (email) or Submit (forum post), just the act of writing it out forced me to think through the issue and more often than not, I would figure out the answer on my own.

Flash forward five or six years and I started to receive all these questions, either in person or via chat. "Send me an email" was usually my response, especially if I was in the middle of something (see: Context Switching). I was happy to help, just not at that moment. With email, I could get to it when I got a break (or needed one).

One of my favorite people, Jason Baer, who has worked for RittmanMead for the last couple of years, took this to heart. We started working together in December of 2009 and he would pepper me with questions constantly. I could never keep up. "Email the question Jason."

I didn't realize it, but I started getting fewer and fewer emails/questions from him. He began to figure them out on his own. It seemed most of the time he had just missed something, other times he just figured out another way to do something.

Jason is a smart guy. I think I'm smart. Sometimes it's just easier to ask the question without thinking it through. In fact, I do that quite a bit on The Twitter Machine ™, especially those errors that I seem to know but just don't have the bandwidth to research (think DBA type questions). I believe the types of questions that should must be written down are those that deal with Approach (design, architecture, etc). Any of those ORA errors better come along with a link to the error code in the documentation and some proof that you've researched it a bit yourself...but then that's getting into How To Ask Questions The Smart Way.

Go out and practice. Next time you have a (technical) question for someone, anyone, write it down and see what happens.

Thursday, April 18, 2013

caveats

I always find myself putting an asterisk (if only mentally) next to certain statements. I shall now put all those statements here and link back.
  1. I don't know everything
  2. I'm not the best developer in the world, but I constantly work at getting better...
  3. If I make a statement about something, that's been my experience. Your results may vary.
  4. I am not a salesman.
  5. I do not work for <insert company name which I just pitched here>
That's it...for now.

Thursday, April 4, 2013

Fun with CHAR

I'm busy deriving file layouts from PL/SQL. Probably close to 100 file definitions...each of them slightly different, each of them defined in the code. Fun!

There are a mixture of types too, fixed width, csv, etc. Thankfully, I've read enough of the code now that it's relatively easy to figure out. The fixed width variety is what this is about though.

In much of the code, there's a type that's defined, something like this:
type my_record is record
(
  column_01 CHAR(10),
  column_02 CHAR(10),
  column_03 CHAR(10)
);
That's then used to receive assignments from incoming variables. I'll hardcode my variables for this exercise.
declare
  type my_record is record
  (
    column_01 CHAR(10),
    column_02 CHAR(10),
    column_03 CHAR(10)
  );
  l_rec my_record;
begin
  l_rec.column_01 := '1';
  l_rec.column_02 := '3';
  l_rec.column_03 := '6';
end;
Littered throughout those assignments though, are things like LPAD and RPAD. You're going to say, "well, yeah, if it's a number, you may want it right aligned or something." Fair enough. But I'm not talking about those, I'm talking about this:
  l_rec.column_01 := rpad( ' ', 10 );
  l_rec.column_02 := '3';
  l_rec.column_03 := RPAD( ' ', 10 );
Ostensibly, these columns once held data. Instead of forcing the client (application, business, whatever) to change their processing bit, the file was left the same. Makes sense.

Then I started to think about it...it's a CHAR. CHAR is already fixed width. To wit:
drop table t purge;

create table t
(
  x CHAR(10)
);

insert into t ( x ) values ( ' ' );
insert into t ( x ) values ( null );

select 
  rownum, 
  length( x ), 
  x
from t;

    ROWNUM  LENGTH(X) X        
---------- ---------- ----------
         1         10            
         2                       
I inserted a single space in the first record. It has a length of 10 despite only inserting a single character there.

So what's the purpose of those RPAD( ' ', 10 ) calls? I'm not sure.

The only reason I even began to think about it was that I ran across one type set up with VARCHAR data types. There it makes sense, using RPAD I mean. With the CHAR field, it's a waste of typing IMO. Perhaps it was just for readability...who knows?

Monday, March 25, 2013

Analysis Tools...

I've taken on an effort to port a custom data integration (PL/SQL, Java, etc) application.

In that regard, I'm doing a fair amount of analysis right now. So I need help finding two tools:
1. A tool that will allow me to map (visually or otherwise) a single data point from source to target(s). I typically use Excel. It's easy to use and available everywhere. Where it falls apart, slightly, is that a single data point may have one or more middle steps (i.e. not target) and one or more targets. I think I want something like this:



Keep in mind though, I have potentially hundreds of columns in a system with thousands upon thousands of...

A couple of people have suggested using an ETL tool like Informatica, Pentaho or ODI. Yes. But I don't see it yet. Besides, I don't want to map to actually do something...most of the conversion has already been done and I'm picking it up at a particular step (near the beginning). What's missing is that mapping document that I want to create for everything...but that's another story.

2. I want to to look at a view and know where those stupid unaliased columns are sourced from. A very, very basic example:
SELECT
  hs.column_1,
  hs.column_2,
  add.address_line_1,
  var_value_01,
  var_value_02
FROM
  big_table hs,
  address_table add,
  other_random_table ran
WHERE hs.address_id = add.address_id
  AND hs.random_id = ran.random_id
VAR_VALUE_01 and VAR_VALUE_02, why don't you have aliases? Why did your developer neglect you so? Why can't every single developer just remember that someone, someday, will have to look at their code? Please? Pretty please? Or did you know it would be me and thus you did it on purpose? If so, I'm not talking to you again.

Anyway, it doesn't take me very long to figure where those columns are sourced from. What if there are 10's of those in a view with 100's of columns? Yes, not enjoyable. What if there are many views just like this that you have to analyze? Yes!

Data Dictionary?!

Not yet. DBA_TAB_COLUMNS? Nope. Come on! It's got to be there somewhere...when you compile a view Oracle checks to make sure everything is a-ok right? Doesn't it store that information somewhere? It must!. I took to Twitter, naturally, and Steve Karam, aka @OracleAlchemist found this possible gem:


I'm also requesting a feature in SQL Developer...or, trying to anyway. Back channels of course.

I've done this kind of analysis in the past, but it is usually a one off, so there never seemed to be a need to make it repeatable. Now, there is a need. A giant need. If you've got any ideas for me, let me know...

Tuesday, March 19, 2013

dbms_output.put_line

I've been scratching my eyes out lately trying to reverse engineer some lots of PL/SQL.

One thing I've seen a lot of is calls to dbms_output.put_line. Fortunately, I've seen some dbms_application_info.set_module and other system calls too. But back to that first one.

1. When I used dbms_output, I would typically only use it in development. Once done, I would remove all calls to it, test and promote to QA. It would never survive the trip to production.
2. Typically, when I used it in development, I would tire of typing out d b m s _ o u t p u t . p u t _ l i n e so I would either a, create a standalone procedure or create a private procedure inside the package, something like this (standalone version).
CREATE OR REPLACE
PROCEDURE p( p_text IN VARCHAR2 ) 
IS
BEGIN
  dbms_output.put_line( p_text );
END p;
Easy. Then, in the code, I would simply use the procedure p all over the place...like this:
  l_start_time date;
  l_end_time date;
begin
  l_start_time := sysdate;
  p( 'l_start_time: ' || l_start_time );

  --do some stuff here
  --maybe add some more calls to p

  l_end_time := sysdate;
  p( 'l_end_time: ' || l_start_time );

end;
Since the procedure is 84 characters long, I only have to use the p function 4 times to get the benefit. Yay for me...I think. Wait, I like typing.

Wednesday, July 27, 2011

Things That Are The Devil

I can't remember the first time I was introduced to the term, I'm guessing it was via The Waterboy and Mama Boucher:

Bobby Boucher: [after Reading A Question About Benjamin Franklin] Ben Franklin
Young Bobby Boucher: [Flashback To Bobby's Childhood] Mama, When Did Ben Franklin Invent Electricity?
Mama Boucher: That's Nonsense, I Invented Electricity. Ben Franklin Is The Devil!

There's a thread on Google+ related to my last post, Managing Database Entries (tnsnames.ora) that rekindled the word for me.

Today I posted something to the effect on Twitter. I've decided to start adding things I would consider The Devil, in Mama Boucher's terms, here.

Cary Millsap is The Devil. Why? A year or 2 ago he posted a link on Twitter about why we don't need to double-space anymore after a period. Each and every time I go to double-tap the space bar, I think of that post and curse Cary appropriately.

Triggers are probably The Devil. Rarely have I seen them implemented in a halfway decent manner. Usually, they're used as some work-around because someone was too lazy to update their PL/SQL...or just couldn't figure out a way to accomplish their goal without them (say, like removing direct INSERT/UPDATE/DELETE privileges on the source table...?).

From that last post, tnsnames.ora can be The Devil.

I would say that commas in front of the line are The Devil.

My friend Jason Baer is The Devil. Go to 2:40 in:



That's all I have for now.

What do you consider The Devil?

Update
Me. I can think of at least 47 people who believe I am The Devil. Man...how could I forget something like that.

Tuesday, July 26, 2011

Managing Database Entries (tnsnames.ora)

For the past 18 months or so I've been arguing that if you would just manage your tnsnames.ora file, things would be much easier. I'm talking about through your various SDLC environments, DEV --> QA --> PROD.

This is true for tools like OBIEE.

In OBIEE, you can use the OCI client and specify your tnsname entry for a particular connection. Of course you'll still have to change the password for the connection, but you'll never be at risk of accidentally connecting to the wrong database.

Guess what? My worst case scenario occurred.

Here's what I have suggested; use a generic name for your connection. Let's say TESTING. How it works right now is we have one for each environment, TESTING_DEV, TESTING_QA and TESTING_PROD.

Each server has a tnsnames.ora file with every single connection.

For OBIEE, that means not only changing the password for each environment, but changing the DNS (TNS) entry as well.

Only bad things can come from this.

(I realize there are much more sophisticated ways of managing this, OID (I believe) for instance, but that's outside the scope).

So what happened?

Last week I built out an Informatica PowerCenter server which connected to the Dev database. Following that, I wrote up the instructions, including the particulars of my installation.

The next person up the chain, installing the QA software, read it literally.

Guess what happened?

The Dev server got borked because they used the Dev connection information and all the configuration stuff (technical term) got messed up.

Guess what else?

I get to rebuild the dev machine.

I would contend that the QA server should only have an entry for the QA database...that way this type of thing would never occur. If we had used a generic name for the database, say TESTING, I wouldn't be working tonight.

Something to think about when you end up managing, not only multiple servers, but multiple "platforms" as well.

Tuesday, July 19, 2011

Oracle Mix + Suggest-a-Session

A little over a month ago, I saw this tweet from Neil Kodner (@neilkod).



That links to this set of data on github (using gist?).

The data gets interesting the further down you go.

Annoying, yes, but no big deal.

I was then off to KScope for a week of fun.

This weekend, I decided to open up Google Reader for the first time in, well, a long time. Scanning through my Oracle folder, I found the little gem.

Data Science Fun with the OOW Mix Session Voting Data

That was written by Greg Rahn (@gregrahn) on June 23rd, 6 days after Neil's post.

On July 1st, the winners were announced on the Oracle Mix blog.

A little tidbit from Greg's post that Bex (see below) quoted as well:
-- number of users who voted for exactly one author
+---------------------------+
| users_voting_for_1_author |
+---------------------------+
| 828 |
+---------------------------+

-- number of voters who voted for every session by a given author
-- and total # of votes per voter is the same # as sessions by an author
+-------------------------------------------------+
| users_who_voted_for_every_session_of_an_author |
+-------------------------------------------------+
| 826 |
+-------------------------------------------------+
Yikes.

I think it's safe to say that Greg's analysis predicted the outcome.

It's also...unfortunate.

Which brings me to this post by Brian 'Bex' Huff today, Has Oracle MIX "Suggest-A-Session" Jumped the Shark???

I'm thankful that Bex wrote this up because, quite honestly, I was scared...to rock the boat I guess.

This conversation needs to take place. I don't believe anything was done illegally, but I think it broke the "spirit" of the rules that were set up.

I'm all for using Twitter, your blog, whatever ("whatever" gets us into trouble) to get people to vote for your stuff; but this seemed to go to far.

Bex has some suggestions for changing the rules over there, check out his piece and chime in.

Tuesday, July 12, 2011

The Value of Reflection

I'm not talking about meta-programming, I'm talking about taking time removed from a situation (work in this case) to consider what you have done, what you have learned and what you want to do.

I was struck by this last night, this morning really, in a discussion with a stalker...I mean friend over IM.

I was describing something I wanted to do in the RPD (OBIEE) and his reponse was, WTF are you thinking? (nicely, of course).

It was then that I realized that I had not taken the time to reflect on my last 2 years.

There are a number of reasons for this.
1. I've been really busy (a good thing)
2. I've been working from home.

Being busy is a no-brainer. Most of us go through periods where we work a lot, that's me. I'm thankful for that, especially in light of my time just before this run started. Things were...not so settled. I've also got a family to support and a daughter who requires more (time, attention and money) than the average child.

During the time when life wasn't so stable, I was full of rants and opinions about how things should be. It's because I had a lot of free time to think.

Working from home is different as I am learning. I've been home (from work) for over 8 months now. I spend all my time in front of the computer. I rarely just sit around.

Sitting in front of the computer all day long occupies my mind and prevents me from reflecting. Perhaps it is distraction? As Jake mentions in that article:

even worse with unread counts, the most heinous weapon in the psychological warfare armory an app can use to ruin your productivity.

Or maybe I just haven't learned yet to step away for a little while. A few weeks ago, I was spending my lunch hour on the bike, I felt great but even better, I allowed myself to step away for a mere hour. Verboten!

So I'm going to take some time in the next couple of weeks to step away; "it's OK Chet, the world will not fall apart while you are away."

Hopefully it will give me the needed time to reflect on what I have done...

Thursday, June 23, 2011

The Podcast

Last year at OOW I met one Mr. Christian Screen from The Art of Business Intelligence.

We've managed to keep in touch over that time and about a month ago he asked if I'd be interested in doing a podcast with him.

What? You want me to talk? Sure! I love to talk!

After some back and forth, we finally settled on a date and time...

Christian did a great job with the sound, I don't sound as scary as I normally do.

Here are some highlights:
- I managed to say "America's Wang" in reference to Florida within the first 5 minutes. I probably need a new joke, I seemed to have said that a lot last year at OOW.
- I talk about how John Piwowar (@jpiwowar) p0wned oraclenerd with 4 posts (out of 727).
- Data Scientists: This was a topic Christian brought up. I've read a little bit about the term, hopefully I'll pick up some more of it in the near future.
- I did not talk about Gwen Shapira's "Faxing" comment.
- OBIEE 10g vs 11g
- I'm sure I mentioned Jake (@jkuramot) in there too, possibly a kidney reference.
- I almost forgot, I got to mention Oracle's Person of the Year (OPY award?), again (not sure if that will get old to me).

Hopefully I didn't get myself into too much trouble.

You can listen to the podcast here.

Wednesday, June 22, 2011

OBIEE + WLS

Something I've been thinking about for quite some time, I think I'm ready to jot them down.

In 10g, anyone with a laptop, free space and time could spin it up. That's awesome for people that want to learn the tool. It's awesome to get things up and running quickly.

The problem though, as I see it, it allows people like me to become "server" admins.

Let's couch it in DBA terms.

I can perform many DBA activities; install the database (now on Linux!), create tablespaces, etc. The basics. What I can't do, or lack right now, is the ability to plan for the future size and growth. I'm sure if I sat down for a little while and thought about it, I could come up with a semi-decent plan, but...

You need production DBAs, no, you want production DBAs doing this work (or at least someone with a fair amount of experience in this arena). My reasoning? I lack that experience of "what could go wrong" because I've never been tasked with, "this is your database, keep it running 24x7x365."

I live in a dream world where I (think) know everything that could go wrong. I don't.

With 11g and the WebLogic Server integration, I see a split beginning.

Now, I know a little bit about a lot of different things (kind of like my DBA skills), but the deeper I get into WLS, the more I realize I don't know much.

A recent episode involving security and SSO configuration has taken a trip through Oracle Virtual Directory (OVD), Oracle Access Manager (OAM) and a bunch of other things I know little about. Am I expected to be an expert in all these things as well? Sure, I'm curious and want to learn as much as I can, but is that a reasonable thing to expect? To me, that sounds like an Identity Management person.

Performance. Where do I even start? Apache seems relatively easy to manage, it screams on my single user system. I've never seen high volumes of traffic consequently I haven't had to build out a server farm. WLS is beastly. There are so many moving pieces, it's tough to know where to start. Is it OPMN, the node managers or is it the BI Server?

I think this is where the split will occur.

You will see a greater delineation of duties in the future. The development side, RPD (mappings), BI Publisher and Analysis (formerly Answers) and the Administrative side, which will handle making sure the server is tuned to peak capacity, SSO works correctly and it's sized appropriately for a given environment.

This is especially true when more and more products get released on the Fusion Middleware (FMW) platform...admin duties will fall to a sysadmin type.

That's my though, not especially well written...in my brain, it sounds great, on the screen, not so much.

San Dimas High School football rules!

Wednesday, March 2, 2011

Why I Virtualize

I made the permanent switch to Ubuntu almost 2 years ago. I haven't looked back.

While I don't believe it is quite ready for prime time, it gets close with every release. By prime time, I of course mean, will I have to support it. I have tried to talk my parents into it, but only half-heartedly; I know I'll have to do more than I already do.

Since I started using Ubuntu I have also been using VirtualBox extensively. Originally, it was just for work, i.e. no one seems to allow the easy integration of linux distros onto their network. I say that based on just my experience, which is not extensive. There are also certain work related tools that only run on Windows.

Here's the short list of tools that I use that require Windows:
- GoToMeeting - I love the tool, from a collaboration perspective. I hate that I have to use Windows to use it. Fortunately, I always have 1 or more Windows VMs up and running.
- Neoview Management Tools - this doesn't matter much anymore, but it was one of the original reasons.
- Quicken - I haven't moved to the cloud version yet. I probably will. Soon.

Wow. I think that might be it. Cisco VPN used to be a reason until I found vpnc. That's really not too bad. I could be down to 1, GoToMeeting. I did find that Adobe has a product that is OS independent, pretty sure it uses Flash. Definitely a future consideration...

I don't game, at all, so I have no need for Windows there.

The reason I virtualize? Compartmentalization.

Here's why:
  1. Last year, while on site at a client, my Windows VM got corrupted. I was back up and running within 2 hours. If that had been my host system, I am sure it would have taken much, much longer. I only put the software on the VMs that I need. Nothing more, nothing less. Windows Office. Notepad++. WinMerge. SQL Developer. Maybe a few others specific to the client.

    I don't store any data on the VMs, I use Shared Folders and write to my host disks. If I lose one, no big deal.
  2. Single Unit of Work. I can create a VM with an Oracle database, one with OBIEE, one with Subversion and a Wiki (ok, not a single unit of work, whatever). Since the purchase of my new computer, this is my reality. If I lose one of those VMs, I don't lose all the work I put into them. I just rebuild the one I need. Annoying, yet. Catastrophic, no.

    If I built a single system with all of these components, tools, etc, the loss of my computer would be catastrophic, even with the best backup policy in the world.
  3. Finally, there was last night's incident. I have a large VM (12 GB RAM allocated, 4 processors) for this medicaid database I am putting together. I had a 20 GB OS partition. At some point, VirtualBox decides to write that RAM to disk, all 12 GB of it. Space available: 0 (zero) bytes. I couldn't do anything. OpenOffice kept telling me I had no more space to auto-save, had to kill it. This even after I pointed 99% of the settings files away from the OS partition.

    I tried symbolic links. I was successful with the Desktop, but nothing else. I tried, very unsuccessfully to point /dev/shm, /dev/pts, /var/run and /var/lock to a different location. If I had a better understanding of how the OS works, it might not have been a big deal, but for me...

    Since you can't expand a partition (please don't tell me you can), I decided to just wipe the host OS and re-partition my drives appropriately. Total time* to get everything back up and configured? 3 hours. VirtualBox was easy, pull in the vdi files, create a new VM and voila, everything is back to normal.
Those are my reasons for virtualizing. I suspect those of you who use VMWare, VirtualBox or any other virtualization tool for a living might have different or better reasons. Please share.

* Total Time = Does not include the fact that the first USB Flash Drive I was using didn't work properly. I spent 4+ hours trying to get GParted to work to no avail. Research pointed to the possibility of using a different one. I went to BestBuy, bought a new one and everything went smooth. By the way, to add to this frustrating day, my battery died at BestBuy. Awesome.

Sunday, July 25, 2010

Where's Waldo?

The oraclenerd edition.

I think this is the longest stint I have gone without posting since I started, almost 3 weeks now.

It's not that I don't have anything to say...you know better than that. I've actually been super busy.

I've been in Chicago (Rosemont actually) for the past 2 weeks and will be there for the next 4. This follows 8 weeks at home. I guess it all evens out in the end. The client has been awesome in regards to my travel, knowing our situation with Kate, and I'm very appreciative of this...but it's crunch time and I probably should be on-site.

I did 90% of the metadata work, bringing in a colleague late in the game to help offload some of the work. This also means I am at the center of just about every question about the data. I've had a lot of help, especially from some new team members (client side) who came from the DW world. Their research and knowledge of the systems has helped me out tremendously.

Just about any work I do I do at night, when it's quiet. In the office, I am rarely at my desk...which is another reason I have been so quiet here and on Twitter. I do have a cool new phone, the HTC Incredible, but I've hardly learned how to use that thing yet. After lunch on Wednesday...well, actually, during lunch on Wednesday, I was on a conference call on APEX and SSO (yes, outside my current job duties, but I love APEX so want to see it successful) walking back to the office. That led me to hitting up David Peake, the Principal Product Manager for APEX (who lives just 1.5 hours from Chicago) who then pointed me towards Anton Nielsen of C2Consulting for his knowledge in implementing SSO with APEX. I finally passed on Anton's name to the client as I didn't want to be a bottleneck.

The next 3 hours I found myself in meetings or at someone's desk answering questions. I finally sat down at 4. It's fun interacting, but exhausting.

Oh, and the client has definitely learned that they shouldn't let me out of my cage too often. After 8 weeks at home, I was a chatterbox.

Anyway, the initial deployment is on Monday and we will be rolling out fixes shortly after that. Not the ideal of course, but it is what it is.

Hopefully soon, I'll be able to post something informative or at least somewhat interesting. I did finish up my NQQuery.log parser, I just haven't had a chance to do anything with it yet.

Monday, June 21, 2010

Why I Love Email

This has been on my mind for...a long time. It was accelerated by John Piwowar's sharing of this article on Coding Horror about voice recognition.

Mr. Famous Piwowar

I could really care less about voice recognition, the thing that I got from the article, is that most people understand the written word better than the spoken word. In particular, this passage hit home:

In my experience, speech is one of the least effective, inefficient forms of communicating with other human beings. By that, I mean...
  • typical spoken communication tends to be off-the-cuff and ad-hoc. Unless you're extremely disciplined, on average you will be unclear, rambling, and excessively verbose.
  • people tend to hear about half of what you say at any given time. If you're lucky.
  • spoken communication puts a highly disproportionate burden on the listener. Compare the time it takes to process a voicemail versus the time it takes to read an email.
Say it again!

One of my colleagues is super-bright, Ivy league educated...but I don't understand a word he's saying sometimes. We do joke back and forth that it's my measly state school education holding me back, but it is a real problem, for me. I've been working with him so that we can meet somewhere in between, but it's difficult. He uses a lot of 3 syllable words and my brain just can't handle that.

When he writes, it's better...but there's still a gap. I won't blame him for all of it. :)

I've had the problem in the past...one of my former Arch Nemesis(es?) sat right next to me, but could barely speak a word of English (no, it's not what you think). The running joke in the company was that this person had their own special brand of English (not American English either). The writing however, was slightly better.

It's not just limited to email either, IM will suffice since you can save that stuff and read it again later.

It's also not a CYA (cover your ass) thing...it's just that, well, people don't communicate very well. I'm probably guilty of this as well. I am not extremely disciplined (in spoken word) and I have a tendency to go (way) off topic (like telling dirty jokes). Email/IM are perfect.

There's also the added (CYA) bonus of having it there to digest later, perhaps multiple times, which I often do. I'll flag a particular important email and reread it 10s of times.

Is this unacceptable to you? Should you be able to come up to me and just say, hey Chet, I need such and such, and assume you are done with it?

Thursday, June 3, 2010

OBIEE: Gotcha #3

I received this wonderfully informative error this evening:

Promotion of checkout lock on Value to exclusive failed.

Value[nQSError: 36006] Promotion of checkout lock on Value to exclusive failed.

Lacking an Oracle Support login...I ventured to Google. Just like the error, it was wonderfully uninformative.

Log files?

Nothing.

This halted all development for me. Not all, I could make one change, check it in (save) and then I would get that error again. Wonderful.

From what I could piece together, and this is the purest form of speculation, it had something to do with naming.

I had a Physical database named "LOV"
I had a couple of columns (different tables) in another database with the same name.
These were all combined into one subject area.
Therefore that had to be the issue.

Or not. Who knows?

How did I fix it?

Shutdown the BI Server, opened up the RPD in read-only mode, did what I had to do and saved it...no error. Sweet.

Fired up the BI Server, opened up the RPD...you can only open this in read-only mode. WTF?

Let's try this again.

Shutdown.

Start.

Login. Success!

I almost followed the universal Windows rule of rebooting 3 times...almost.

Wednesday, June 2, 2010

Thank You?

More of a rant than anything.

I once teamed up with a co-worker to collect all the crazy-long email signatures people use. I think the longest we ever collected was around 10 lines, complete with pictures (a logo) and an alphabet soup of titles earned. Email address was included...which I still have a hard time figuring out why. Perhaps someone will print it? I guess those people still exist.

Anyway, the other day I noticed this (not the first time, just the first time I thought to write about it...plus, I have nothing else useful to say so maybe this will clear the bit of block I am having right now).
Thank You,

First Name Last Name
Title
Phone Number(s)
Thank You? Is that just to save time and keystrokes as Sten Vesterli [twitter|blog] notes:

Sten Vesterli

I understand the efficiency part...but what if there is no actual "Thanks" required? Just seems a bit...weird to me.

I will end my email communiques with one of the following:
* Thanks
* Regards (probably a UK influence there)
* Sincerely

With my name, "chet" following a couple of lines below.

It's not that much extra typing, for me. I'm in the 70 WPM range...and maybe that's where the difference is. Who knows?

Just needed to get this off the chest.

Wednesday, May 19, 2010

NULL In Psychology

This morning we participated in a planning session for Kate's future.

They are trying to label her with "Intellectual Disability." Of course we pushed back on the issue, we know Kate is smart.

The school psychologist said she tested Kate twice for IQ and the results of those tests indicate that the label does fit. Asking questions about this, apparently Kate didn't really participate in these tests. We know she has behavioral "problems" which means she's just stubborn, probably like her mother, because I am most definitely not stubborn.

She's currently receiving Occupational, Speech and Behavioral therapies, in school and privately.

Anyway, the psychologist went on to suggest that Kate's IQ was at or around 70. We both balked.

So if Kate didn't truly participate (i.e. cooperate), how in the hell can she have a score? It sounds like NULL, or unknown, to me.

The psychologist then dropped the big bomb, "Kate's IQ is 70."

...

...

Really? How do you get that if she didn't participate (cooperate)? How can the absence of value be a value?

I'm usually the first to accept Kate's shortcomings...I hope that she will live a perfectly normal life such as you and I, but I am not oblivious to the fact that she may need help. What I will not accept is the unproven fact that she is "Intellectually Disabled."

Just needed to get this off my chest. Pardon the intrusion...go about your day now.

Tuesday, May 18, 2010

Exadata and The Apocalypse

Fresh off the heels of my meandering thoughts on Exadata. I now bring you my thoughts on the future state of database development.

In a word, it's gonna suck.

Just as more memory, faster CPUs and the other hardware improvements over the years...actually, that's what Exadata is. Let me try that again.

You think most database development sucks now, just wait until Exadata becomes commonplace. Why worry about design or good coding practices when you have brute force?

In a private conversation the other day, I compared it to the effect Windows has had on the populace (myself included), making us computer dumb. It's not always a bad thing; as the computer revolution wouldn't be where it is today without Windows because it gave idiots like me a low barrier to entry.

I see more frustration in my future, not less because of Exadata. Toad will reign supreme as hordes of developers write horrible queries...and get away with it.

I see less emphasis on the fundamentals if using THE Database Machine.

I said it above...brute force.

Why bother tuning up front when you have something that powerful?

Why bother tweaking the design when you have something that powerful?

Just drop it in and run. Exadata will cope just fine.

Thankfully, this won't happen soon, because the cost of Exadata is (perceived to be) so high. I will argue that in another rant I'm sure.

As the volume of data grows, there will be a point at which you must start to tune and contemplate a good design.

Just like Windows though, the bar will be lower. That scares me. I've had plenty of problems over the past couple of years, professionally speaking. Plenty of arguments. When oraclue was my DBA, you could get away with murder, because he could figure out a way to tune bad statement n.

Looking at the bright side, my future will full of excitement. I'll just have new things to bitch about.

Tuesday, April 6, 2010

Greg Rahn's Pithy Tweets

Today I was reminded, via some Direct Messages with Greg Rahn [blog|twitter], about some of his more...incisive tweets. In our discussion, I described them as pithy; after confirming the definition, it was apropos.

concise and full of meaning; "welcomed her pithy comments"; "the peculiarly sardonic and sententious style in which Don Luis composed his epigrams...
source
Precisely meaningful; forceful and brief; Concise and full of meaning; Tersely cogent; Of, like, or abounding in pith
source
pithiness - conciseness: terseness and economy in writing and speaking achieved by expressing a great deal in just a few words
source

I guess tweets and their brief nature is the definition of pithy...

I've been threatening to keep a page for his pithy tweets and I've finally gotten around to it.
There are some meetings where I'd love to implement the Twitter 140 character limit. Some people talk so much and say so little.
source
That's a very ignorant statement. FUD! RT @Storagezilla: @daniel_eason ...but the SAN isn't the bottleneck it's RAC locking that kills I/O.
source
He then goes on to have fun with @storagezilla...I'll leave that for you to find.
Note to co-workers: It's probably best to put your mis-printed Turbo Tax forms in the Secure Document Destruction Bin. Ya think?!?!?
source
I'm always amazed people can make database performance recommendations not having analyzed any database performance data about the problem.
source
@CaryMillsap It's just that it works best to do experimentation *before* implementation. The hindsight method: mess it up early...
source
The metaphor I used the other day on this topic: If your golf game sucks, would buying the most expensive clubs change that? Probably not.
source
The amount of performance left on the table is often orders of magnitude larger than any dbms platform could possibly provide.
source
It's depressing that so many IT shops invest so much in evaluating database platforms but fail to invest in engineering good data design.
source
@merv: Sybase IQ just delivered a record non-clustered TPC-H. [This "record" is only non-clustered + Linux + x86. Nice filter criteria!]
source
Experienced a page from the book of @mnorgaard today: We Do Not Use Our Brains. Doing so would make us look bad and that would not be good.
source
What I learned today: Never argue with an idiot. They will bring you down to their level and beat you with experience.
source
One can't load data into a database faster than it can be delivered from the source. Database systems must obey the laws of physics!
source
They told me I can not say "Listen to me now and believe me later" nor "You would think that would be the best way, but you'd be wrong"...
source
Of course there are more and of course Mr. Rahn is not the only one out there with fun and pithy tweets...but I found them fun and funny so I thought I would share. You can follow Mr. Rahn here.

Monday, March 29, 2010

RDBMS + NoSQL Articles

There seem to be a whole lot of these running around lately. So I'm going to post the ones I know of here and update it as I find new ones. If you know of any, let me know and I'll post them here.

Somewhat related are the ones posted here:

Application Developers vs Database Developers
Application Developers vs. Database Developers: Part II
The "Database is a Bucket" Mentality
-->Everything is a Bit Bucket by Michael O'Neill
---->The Case for the Bit Bucket by Michael Cohen

Here are some of the ones rolling in:

Getting Real about NoSQL and the SQL-Isn't-Scalable Lie by Dennis Forbes
Getting Real about NoSQL and the SQL Performance Lie by Dennis Forbes
I Can't Wait for NoSQL to Die by Ted Dziuba
-->Not Everyone Using noSQL is a Rails-Lovin’ Ass-Clown by m3mnoch (h/t Mr. Cohen)
-->Why NoSQL Will Not Die by Stephan Schmidt (h/t Mr. Cohen)
My Thoughts on NoSQL by Eric Florenzano
Social Media Kills the Database by Bradford Stephens
NoSQL vs. RDBMS: Let the flames begin! by Joe Stump
-->Responding to Joe Stump on the NoSQL Debate by Dennis Forbes

NoSQL vs. RDBMS: Apples and Oranges? by Mike Kavis
Mike seems to be advocating the use of NoSQL type products for the larger datasets, i.e. data warehouses.
Oracle inspires an open source NoSQL tea party by Dana Blankenhorn
Is it Oracle's fault?
Mapping The NoSQL Space by Gwen (Chen) Shapira