Tuesday, February 26, 2008

My Good Deed

Those of you who have keen eyes have noticed that I've added a new link in my favorite blogs section. I've stumbled upon Aviad's blog this week when I've encountered a problem while upgrading my EBS database to 10g. Actually that's the second time I encounter this blog, the first time was when Steven Chan mentioned it in his "Notable Apps Blogs" list. This first time I was just proud to see an Israeli in Steven's list and didn't linger too much in the blog (although it did strike me as quite an impressive blog).
The second time, even after I've discovered the specific problem I had on my hands wasn't mentioned in the blog (although many others were), I did some more thorough browsing. The guy really does excellent job, his blog might have saved me a lot of time if I was aware of it before.
Anyway, this blog inspired me to stop complaining for at least one post and share some useful information, the issue I had looks like a good place to start.

As mentioned, I'm in the process of upgrading my EBS(11i) database from a 9.2.0.5 database to a 10.2.0.3 database. During the upgrade phase (after the database software is already installed) I've encountered an "ORA-12631: Username retrieval failed" error message. The problem, apparently, was that I didn't have a listener up and running. Having a listener up might seem very basic to some of you, but I was working with my own upgrade notes that were compiled based two successful upgrades. More than that, DBUA starts the database on its own and I'm pretty sure it did the same thing with the listener on my previous attempts. I don't really know what was wrong this time but I did get back to the original notes by Oracle to see if I might have misinterpreted something.
There's definitely some confusion here: Note 362203.1 (EBS upgrade note) orders the stopping of any existent listener while the database upgrade document (not EBS related) mentions the need to create a new listener using NetCA if I don't already have a listener. So, does the upgrade manual mean I should have some listener up? And if so, why does the EBS note tells me to stop all listeners?
Again, if the stopped listener was indeed the issue, I'm sure there was some more sophisticated way to phrase the error message.

Well, had some bitterness in my post after all.
At least this might be useful to someone.

Saturday, February 16, 2008

Power To The Numbers

Our IT department (which I'm part of) has an internal Sharepoint based Wiki, our aspiration is to make it, as Wikipedia is, the place you start from when looking for information. It's supposed to include all kinds of information: general technological issues like how to install a VM, more specific issues like how to change the infrastructure for an IAS and even not work related topics like take aways to stay away from.
We're not at all there yet, and thinking about it I'm not sure we'll ever really get there. I can think of a several reasons:

1. A Wiki page is not really that good a replacement for a real document, a Wiki page can contain summarized information and maybe a link to the original document, but unless you have trouble finding the document, you don't really have a reason to look in the Wiki in the first place.
When looking for some arbitrary subject on the internet it's not always trivial to find a good document about it, so you use Wikipedia. In an IT department when looking for a documented issue it's simpler to just look for the document, since whoever documented the issue have probably written a document even if he wrote about it in the Wiki as well, and as mentioned, documents are better.

2. Specific issues like the mentioned example are too specific since they often address only one person, the one who wrote them down. Sure, people can forget and get replaced but still a document will do the job just as well.

3. The main reason as I see it.
A Wiki exemplifies the egg or chicken paradox. For people to use Wiki you obviously have to have some content, but for people to add content they usually have to consider the Wiki a source of information people use, not much point in writing something if nobody reads it.
Well, Wikipedia DOES work.
But let's say you have a blank new Wikipedia. Right, according to my assumption no one will
write anything, but after all, IT IS the internet. Even if one of every one thousand users writes something you get plenty of data, so now a higher percentile of the population is willing to donate their knowledge and so you get a plague-like effect where people use Wikipedia, find what they were looking for and add their own insights.
Now, lets get back to our department of about 30 people. Sure, we did write some pages at the beginning and even had a "Wiki week" in which we tried to add as much new content as possible, but as long as it's easier to ask the guy over the table or just browse for the right document, the Wiki usage seems pretty artificial. I've written some pages in our Wiki but I can't think of a situation where I'll actually think about looking there for answers.
That's why I'm trying to make the trainee to document everything he learns in the Wiki, this actually achieves some goals, first, as a newbie he has a better sense for what should be documented, second that's a good way to create a sort of a "training Wiki" and third it makes him go over what he have learned - everybody's in gain.

On the optimistic side, maybe it'll just take time, maybe in several years our Wiki WILL be considered a central source for information.
We'll just have to wait and see.

Friday, February 8, 2008

Syntax Confusion

There are many programming languages, each has it's strengths and weaknesses. And it's own syntax. I don't really understand what is it good for. Sure, each language has it's unique features, a strongly-typed language will have different syntax from a weakly-typed language, but I'm not talking about this "advanced" stuff, I'm talking about the very basics. And no better way to show what I mean than an example:
You already know I'm not a programmer, but I write PL/SQL code for the application, cmd and Perl scripts for administration purposes and this last semester I took Computer Vision and Image Processing courses and had a lot of assignments to implement in Matlab. Four languages, four different ways to write a comment. At some point I got confused with all the '%','#','--' tags (REM stands out more clearly), is this really necessary? Why should there be three(!) different ways to write a simple "else if" statement? Ok, let's say "elseif" somehow simplifies parsing, but "elsif"?! That's really ridiculous, it just looks like someone was trying to prove his creativity.

Why won't some standardization organization decide on how the basic syntax (comments, loops, if-then-else statements) should look like, and make - I don't really know how those things work - the vendors to have the next versions of their compilers to support the standard (unfortunately, backward compatibility is inevitable here)?

I don't really know if my idea is in any way feasible but this syntax confusion can get very... well, confusing.

Friday, February 1, 2008

Life According to Pinball

Since my days as a B.Sc. student I have the habit of playing pinball while doing assignments or studying for a test, no, I'm not saying I'm solving questions with one hand and hitting the ball with the other.
It's just that after solving a hard question or completing a test I have the urge to somehow "reward" myself, having a snack works as well but it's a bit more fattening. So when I want some short break (after all I have more questions to answer) I turn to pinball(Windows pinball). Well, I admit playing spider solitaire for the same purpose but pinball has a big advantage: after playing for a while it's possible to play mostly with your instincts letting your mind wonder around and sometimes creating a jogging-like effect, that's actually how I got the idea for this bizarre post.
I also think that pinball can be pretty educational. I'm not kidding (well maybe I'm not THAT serious).
Here are some lessons that I think can be taught playing pinball:

1. Think well about your options before leaping to the extreme solution.
Imagine the next situation: the ball is descending quickly and it seems like it's going for the middle (and your Center Post is not on), the reflex of most people is just to hit hard and fast with both flippers, WRONG! (at least most of the times). From my experience the best options are either to stay cool and it might be that the ball WILL hit one of the flippers or hitting only with one flipper hopefully diverting the ball onto the second flipper (remember, if you hit with both flippers the second flipper isn't there to catch the ball).

2. Timing is everything.
This one is pretty trivial in pinball, it's not enough to do the right thing, sometimes you must have perfect timing. It's not enough to hit the ball, if you're after the Reflex Award (and maybe completing the launching mission) you have to be very precise.

3. Live the now.
It doesn't matter if you've messed up the first two balls, you might still break a top score with you're third ball. And vice versa, scoring 10 mil. with your first ball doesn't guarantee you anything about your next two balls.