ORACLENERD
 
Monday, August 18, 2008
  Day 15...
So I think I'm going through the Depression stage of The Five Stages of Grief. Actually, I don't really follow that (in order anyway). I think I have 2 stages of Acceptance. I Accepted the situation as it was on the same day (maybe that was numbness?). I just thought things would work out sooner than they have. No worries though, I'll bounce back soon enough!

I've had three interviews so far. The first (consisting of two) was for a data architect position with a local company. I was referred via a friend. I received word last week that I did not get it. I had a little hope that they might give me a go, but out philosophical differences were too great. Essentially, I'm a data-centric person, they were more software (MVC) oriented. I don't think the two positions are mutually exclusive, but I couldn't sell them on it. A bit of religiousity there I think.

Second was a phone interview for an APEX position in New York. One, I would have been able to go to New York for the first time and two, I would be working with APEX again (consistently anyway). I got bumped because I don't have experience with web services. The extent of their web services was the authentication. Isn't it just like calling a function or something? Seriously, how hard could that be? Anyway...

Third was today. Went pretty well I think. I'll know more later this week.

My sleeping habits have gone to shit. My son got a Wii for his birthday last month and I stay up until all hours playing. I bowled a perfect game tonight in fact! This is why I haven't played video games since Intellivision.

I'll end on a good thought. Today was the first day of school for both the kids and when I got home, I got a rousing ovation from them (always nice). We've had a great time the past couple of weeks.

So I lay down for a nap...and you know when you go to relax your body so you can sleep? I relaxed my facial muscles (I have a tendency to grind my teeth), I realized I was smiling...very cool.

Labels: ,

 
Friday, May 30, 2008
  I've Got a New Job!
Woohoo!

(Internal Dialog)
I will talk to them before writing anything about them.
I will talk to them before writing anything about them.
I will talk to them before writing anything about them.
I will talk to them before writing anything about them.
I will talk to them before writing anything about them.
I will talk to them before writing anything about them.
I will talk to them before writing anything about them.
I will talk to them before writing anything about them.
I will talk to them before writing anything about them.

*This post was approved by my wife. ;)

Labels: ,

 
Thursday, May 29, 2008
  Blogging Safely Part II
Man, I just have too much time on my hands.

I've debated whether I should write about the specifics of my termination. Yes. No. Yes. No. Alright, no.

After counsel from a few fellow bloggers (how cool is that? A built in support group!), I've decided against it. If I were independently wealthy (read: not dependent on a salary), I might.

I am also trying to take the high-road, trying to have some class I guess.

The more I sit around the worse I feel about it too. It is/was a humbling experience.

Yes, I was ready (and looking) to leave. But to be walked out of the building is not fun (though many thought I was just playing another prank). I wish it had not happened that way.

I do have my own opinions and I will voice them, but when a decision is made, I usually just shut my mouth and either live with it or look for a new job (if I totally disagree). Many people view this as arrogance I believe. That I am not open to new ideas. That is most definitely not the case.

(can you say rambling?)

So, if you blog and haven't read my previous post on Blogging Safely, do it now. Something good must come out of this.

Discuss blogging with your employer. See if they have guidelines on blogging. If not, err on the side of caution.

Thanks to everyone for your support. It reminds me of the support I received last year at this time when my daughter fell ill. Now I have a virtual family!

Labels: , ,

 
Wednesday, May 28, 2008
  Blogging Safely
Jake from AppsLab left a link in the comments to my previous post, Lessons Learned. The link was to an article about Mark Jen, who was fired from Google after 11 days for blogging.

It got me curious as to what was out there, so below is a list of links that point to either "safe blogging" articles or those that were fired for blogging about their company.

Lessons Learned From Google Blogger Who Got Fired - 5 lessons here. #5 is, "Don't make the same mistake twice."

Of Blogging and Unemployment - a former Microsoft employee gets the sack.

Delta employee fired over blog sues company

Fired simply for having a blog

Beware if your blog is related to work

Have a blog, lose your job?

Avoid getting fired for blogging

Warning: Your clever little blog could get you fired

How to Blog Safely (About Work or Anything Else)


Or you can just google it.

Back to lessons learned, I'll speak with management or HR at my next company to see if they have guidelines. If not, I'll err on the cautious side and not mention anything.

Labels: , ,

 
  Lessons Learned
I was let go yesterday. Many thought that it was another one of my pranks...which was funny. Following are my lessons learned from my time there:

1. Get express written permission about what you can (if anything) and cannot blog about.
2. Not everyone is your friend.
3. Not everyone will like you...just because.
4. Some people will not hesitate to throw you under the bus.
5. Big companies might not be the place for me.
6. Big companies are full of many motivated and talented people.

I learned a great deal in the year and a half. My family and I moved from Gainesville to Tampa and it was the best decision we've made so far.

I was exposed to data warehousing which was a challenge to say the least. To spend a week trying to figure out the best way to move data was an interesting exercise.

I was exposed to big company politics which was fun.

Overall my experience there was positive. I learned a great deal both personally and professionally. I met and hope to retain many good friends and I will miss all of them dearly.

Labels: , , ,

 
Thursday, April 17, 2008
  Failed Deployments: An Index
Since there seem to be so many now, I'm creating this index page to track them. Enjoy!

The Countdown Timer - a brief not on the origin of the countdown timer adorning my site.

Good Day to Worse Day - This is the day that the countdown timer was first started.

DELETEng an entire production table.

Blowing up the Rate Application.

Labels: , , ,

 
Sunday, March 30, 2008
  Failed Deployment...
236 Days
20 Hours
48 Minutes
30 Seconds

I hate making mistakes but I've made another one. My streak ends almost 237 days from my previous one.

Something so silly too.

In our source system, data was been double loaded somehow. So we decided on a surgical delete. A total of 7 DELETE statements needed to be run; 4 on the source system and 3 on the target system.

The source system went off without a hitch. I babysat the re-load of the source tables and was ready to have our load jobs run in our target system.

What's this? It ran in half the time?! How's that possible?

I pulled up our logs to find that zero rows were loaded into one of our tables. There should have been 45 Million plus.

I started to run down the possible causes:
1. Did the job we have in the scheduler that TRUNCATEs our persistent staging tables run? Nope.
2. Did I fail to instruct the DBAs correctly in the critical CR? Nope. Instructions look good.
3. Next to the logs, it ran fine on Saturday morning but not Sunday morning. What happened yesterday?
4. Ah yes, my CR. Open up the script...nothing out of the ordinary...and then I saw it.

On our target system, we use work tables to pre-generate a keys. It makes things a heck of a lot faster and removes the need for PL/SQL lookups in SQL (no, we don't have incremental builds yet).

So the work table needs to be DELETEd from first based on the keys from the first:

DELETE FROM some_key_table a
WHERE EXISTS ( SELECT NULL
FROM the_main_table
WHERE business IN ( 'TTT', 'TTR' )
AND dateof = TO_DATE( '24-MAR-08', 'DD-MON-YY' )
AND my_key = a.my_key );

OK, no funny business there.

Then I DELETE from the main table:

DELETE FROM the_main_table a
WHERE EXISTS ( SELECT NULL
FROM the_main_table
WHERE business IN ( 'TTT', 'TTR' )
AND dateof = TO_DATE( '24-MAR-08', 'DD-MON-YY' ) );

As I look at it I wonder WTH I was thinking using an EXISTS clause on the main table. That's the source.

But do you see what I missed?

See it yet?

OK, I left out the "AND my_key = a.my_key" from the inner query. Obviously a stupid approach, but it would have worked. The best way to do it is to just get rid of the EXISTS clause:

DELETE FROM the_main_table a
WHERE business IN ( 'TTT', 'TTR' )
AND dateof = TO_DATE( '24-MAR-08', 'DD-MON-YY' ) );

Live and learn, live and learn...

Labels: , , ,

 
Monday, November 26, 2007
  Oops I've Done it Again
By it, I mean I've sent another rant to my CIO. Here's my first one that I sent to Dratz before starting my own blog.

Fortunately, we've developed a bit of a rapport. I still should not do this type of thing on a holiday when it could be days before I hear back...it just makes my mind wander and wonder if I will have a job come Monday.

Update


I still have a job...I really need to stop this.

Labels: , ,

 
Tuesday, September 18, 2007
  Zero Day is NOT Upon Me
I got a brief reprieve today, I guess.

Neither of my two deployments are going through tomorrow, so I have two more weeks to go until another opportunity to screw something up. ;)

Speaking of which...
I watch SpongeBob Squarepants quite a lot with a 5 year old boy in the house. I was watching this episode the other day where Patrick (the starfish and best buddy to SpongeBob) found out his parents were coming over to visit him.

He was not very happy as his parents treated him like he was stupid. SpongeBob told him that he would help out by acting even dumber than Patrick thus making Patrick actually look smart. The act worked, but too well. Patrick, even out of earshot of his parents, kept cracking stupid jokes at the expense of SpongeBob. This resulted in SpongeBob getting mad and reminding Patrick that he was only acting stupid to help him out.

Since I put my sign up (not counting my counter up top, no one here gives me a hard time) everyone has consistently beat me up over it. Today was it for me. Yes, I brought it on myself with the sign and all that, but I'm through with it. My boss mentioned that if I had to reset my sign that I wouldn't really be there to do so as I would have been escorted out the door (he didn't say this in a mean-spirited way...he might be right next to me) and unable to reset.

I started practicing how I would answer questions about my firing in my next interview.

Interviewer: "So, why did you get fired?"
Me: "Well, I screwed up production a couple of times."
Interviewer: "How did you do that?"
Me: "The first time I deployed code from development to production."
Interviewer: "Really?! Why did you have access to production?"
Me: "..."
Me: "On the second occurence, I deployed a bug into production; I changed a non-requirement driven piece of code"
Interviewer: "What about QA? Didn't they do regression testing?"
Me: "..."

I felt a little better.

I've have never been happy about my mistakes, I tried to "man-up" and own them; perspective and context are good things though. I should learn from my mistakes and correct the behavior that led to them, that's all I can really do.

Labels: , ,

 
Thursday, September 13, 2007
  The Chicken Almost Came Home to Roost
We have a daily meeting with the Business concerning the current, long running project. This is the one I have screwed up a couple of times.

I have a scheduled deployment next week, mainly just performance improvements. I've managed to get this down from 10-12 hours to 7-8.

At the end of the meeting, the Business questions the need for the performance improvements - we're re-architecting my solution in parallel because mine was just a conversion from SAS (yuk!) - as we'll be live in just 2 months with the new one.

Obviously, I know why they're thinking that.

IT, me, can't be trusted to do it right. Since I've, umm...screwed up a couple of times. Why do this if it's not broken?

I just hung my head low, I knew, and I couldn't really argue with them. I had no ground to stand on. Our PM said that he'd take it back to our manager and let them know.

I went to lunch and thought about this blog entry I would be writing.

I got back from lunch and my PM informed me that this would be going into production...the Business' big boss, Miss VP, said so.

Woohoo! Someone has some semblance of confidence in IT (me)!

I've done everything I could to make sure that I didn't do something silly. We had a peer code review to compare the most recent build against that which was in production. My unit tests were much more thorough. I worked with QA to get them to look at specific points. Let's just hope all goes well.

This is a big test for me. Either I pass and gain some credibility back or fail and lose my job. Wish me luck!

Labels: , ,

 
Tuesday, September 11, 2007
  The Good Manager
I read Lewis Cunningham's article today What Keeps you at your Job?

This is something I think about quite often. I am in a very chaotic, immature organization currently. The process to deploy code changes about every other day and of course non of it is documented. Then there's the fact that I had complete control at my previous job, I was the DBA, Architect, Web Developer and Designer (suck at that), and most importantly Database Developer. I had a very good manager who just literally let me run wild (within reason of course).

For me, that was a perfect situation. I felt I was under-utilized at my previous job and that was the perfect opportunity to flex my muscles. I learned a great deal there and I am forever thankful for that.

One of the big reasons I took my current job was because of the chaos and the immaturity of the IT organization. There are countless opportunities to help shape the future, to build the foundation. I'd also get to experience life in the for-profit corporate world where performance is rewarded financially. There's also significant room to advance relatively quickly compared to more established environments.

I have learned things on the technical side, but far and away my biggest gain in knowledge is in how to do software development in a team environment and the peculiar politics of a company.

I have my manager to thank for that. He is a former military officer who attended one of the military academies. He has worked in our industry for a number of years and is our subject matter expert on the financial side of things.

To me, those are all terrific qualities. When I've screwed up, he tells me; usually though, he asks me questions so that I will come to the realization. He's been an outstanding leader and most importantly (to me anyway), a teacher.

If he ever decided to leave, I might just have to follow him.

Labels: , ,

 
  The Countdown Timer
So I found a handy little countdown timer from this site so that I can replicate my hand made sign in my cube. This all stems from a previous incident.

Now I'll have a reminder at work and on the blog not to touch that which is out of scope.

Labels: , ,

 
Wednesday, August 29, 2007
  Humor in the Workplace
In an effort to deal with my recent screwup (one of two recent ones), I decided to try and laugh at it a bit.

Our organization is very young and since the on-boarding of our new CIO, our directive has been to stabilize current processes. In that regard, the VP who heads up the Infrastructure team has placed placards on his office window signifying the number of days one or another system has been up with no interruption in service.

I ran into him in the hallway and suggested he put one up for me too, "Days since Chet 'messed' up Production code." He got a hearty laugh out of that.

I've always been able to laugh at myself, if not immediately, then soon after. So I put up a hand made sign in my cube that read the same thing; I'm at 21 days. Hopefully it will remind me as I'm pouring through code not to touch that which is out of scope with the current requirements. That was my mistake on both occurences.

It's definitely a talking piece and hopefully people can laugh at it (as I can...sortof), but it will be a constant reminder to me as well.

Labels: , ,

 
Wednesday, August 22, 2007
  Good Day to Worse Day
Today I got the opportunity to have lunch with my CIO.

A few weeks ago I sent him a manifesto, which I would now classify as more of a philosophy. He kept promising me he would articulate a response via email. Being the CIO of a Fortune 400 company, I figured he had better things to do than to write out an email to me. So I offered him up a trade, lunch in exchange for the email. Surprisingly, he agreed.

Today was the day but I fully expected him to cancel; surely something else would come up. Nothing did, but he did move it back by 15 minutes.

Down to the cafeteria we went (I was really hoping to go out to lunch, just to get a ride in his Porsche Gemballa). We sat in a booth and started talking. We discussed everything from my group (excellent group of people, talented and fun), using MySQL databases for one-off projects (I was for putting them in a single Oracle database), to the state of our current OLTP application (crud).

He mentioned user-defined fields (OLTP) and I told him about one instance where someone in our company created those in an internal application. I didn't say anything at the time because it was not in my group and I didn't want to call someone out for something I thought was wrong. He told me I should have, that it would be in the best interests of the company. Then he said something that I have heard him say in our All-Hands meeting, "Let me be the one that makes the wrong decision."

That sealed the deal for me. I have liked him and what he has done since he got here, but that one comment told me that he took his job as leader seriously. I was thoroughly impressed.

So that was the good (great) part of the day. I felt great because our CIO listened to me prattle on for an hour and listened to me. He even used one of my analogies (well, not mine really) in his management meeting a short time later.

Now on to the worse part.

The application I have been working on for the last few months required an Emergency Fix (EFIX) because they had detected a bug. I realized quickly that I was the culprit. Something that had worked previously was changed by me in an effort to re-factor the code. It wasn't broken. There was no specific business requirement to re-factor it, I just did it...and screwed it up. The ironic part is I had just sent out an article to my co-workers about discipline making good developers.

I told this to the Business folks, what I had done; and apparently I hadn't earned any brownie points with them because they escalated it to my boss and VP. Which of course had to go to the CIO as well...

I definitely screwed up. There's no way around that. I know better than that. Oh well. It was certainly a lesson in humility. I'm just thankful I still have a job...

Labels: , , ,

 
Google



How To
Parallel Processing: DBMS_JOB
SAS: Create Dataset From Oracle Table
Instrumentation: DBMS_APPLICATION_INFO
DBMS_CRYPTO

Popular
AppDev vs DataDev
Code Style Index
Better than Tom Kyte?
Good Day to Worse Day

Archives
August 2007 / September 2007 / October 2007 / November 2007 / December 2007 / January 2008 / February 2008 / March 2008 / April 2008 / May 2008 / June 2008 / July 2008 / August 2008 /


 

Powered by Blogger

Aggregated by OraNA