Saturday, January 30, 2010

Make Money Blogging

Yeah, it's pretty much a futile effort, but hey, I've been paid by Google.



Only 430 posts. I think that puts me at less than $0.40 a post. 28 months would come out to less than $4 a month.

Wednesday, January 27, 2010

OBIEE: ORA-12154 could not resolve connect identifier

I'm playing around with OBIEE using the SH schema (sample schema). I've imported the tables successfully, created the logical and presentation layer when I decided to change the driver from ODBC 3.5 to the OCI driver. When I went to run a simple report to test the Times dimension, I received this:

Answers ORA-12154

OK, no worries.

I tried to update the row count through the Administration tool and got this:

Administration Tool ORA-12154

Barnacles.

So I begin to troubleshoot. First though, here's the setup.

OS: Windows Vista Ultimate
Database: 10gR2 (local)
OBIEE: 10.1.3.4 (local)

There is no other Oracle software running on the machine.

First I went to Google. Nothing really exciting there, but it did remind me of the OBIEE forums (which I posted to for the first time yesterday). So I did a search there.

Reading through a couple of posts confirmed what I had done.
1. tnsping my local database. Check.
2. Connect to the local database via SQL*Plus. Check.
3. Check environment variables. TNS_ADMIN is setup to point to my one and only tnsnames.ora file on the machine.

Hold up...what about the PATH variable? I've seen before, in my millions of local installations in Windows, where the order of paths will affect how certain things work. Here's what mine looked like (hard returns added for readability):
C:\oracle\bin;
C:\OracleBI\server\Bin;
C:\OracleBI\web\bin;
C:\OracleBI\web\catalogmanager;
C:\OracleBI\SQLAnywhere;
C:\Program Files\Java\jdk1.6.0_17\bin;
%SystemRoot%\system32;
%SystemRoot%;
%SystemRoot%\System32\Wbem
Hmmm...I wonder if having the database path first is causing this? Why would it though? OBIEE doesn't have it's own tnsnames.ora...so it shouldn't, right? I moved c:\oracle\bin behind the final OBIEE path. Guess what? I was able to connect.

I'm not sure exactly why this happened, I wasn't able (or was just too lazy) to find the exact reason in the forums (I'm sure Christian or Robin will leave me a note), but it worked. Yeah for me.

Monday, January 25, 2010

OBIEE: Tooltips in Answers

The title was OBIEE: Hack The Gibson...I didn't hack the Gibson nor I am I 733t.

But I did manage this little trick.

answers tooltip

I have involved myself in a situation where we don't change the column names in either the logical or presentation layer. Instead, we use a database (Oracle) table and pull in the values using a row-wise repository variable.

I won't get into all that, but I will demonstrate the basics.

First off, in the Administration tool, open up the properties of a column, I'm using PROD_NAME from the SH schema PRODUCTS table.

Check the "Custom display name" and just leave the default value. Then enter in some text into the Description box...doesn't matter what it is.

column presentation properties

You can see that the text I put into the Description box matches that in the tooltip from Answers.

Now comes the fun part, where the real hacking begins.

There are 2 parts to get this accomplished:
1. You need to add the reference to the javascript file
2. You need to change the javascript function used by OBIEE to accomodate the call

Neither one of those is easy...especially so for the uninitiated.

I'll start with #2. Looking at the page source for that frame, I found a bunch of javascript references. Of particular note was treeutility.js. Once I found the file which is located in <BI_HOME>/oc4j_bin/j2ee/home/applications/analytics/analytics/res/b_mozilla

At approximately line 1359 you'll see this:
strBuf.append(this.getSelectHtml() + " title='" + saw.encodeHTMLAttrValue(this.getToolTip()) + "'>"
I know enough to be dangerous naturally.

The BoxOver javascript call is pretty simple, you just need to add "parameters" to the title attribute.

Something along the lines of:
header=[Description] body=[some text goes here]
So just add those to the javascript function above and let OBIEE, with it's call to saw.encodeHTMLAttrValue(this.getToolTip()), do its work.

Now the fun part, how do you get that reference to the javascript file to show up? This is how you normally reference a javascript file in HTML
<script language="JavaScript" src="res/b_mozilla/browserdom.js"></script>
How to add that to the template is the hard part (for me anyway).

I "grepped" the source code in the <BI_HOME> for treeutility.js. I got 3 hits back:
<BI_HOME>\web\msgdb\messages\deliverstemplate.xml
<BI_HOME>\web\msgdb\messages\commonuitemplates.xml
<BI_HOME>\web\msgdb\messages\criteriatemplates.xml

Despite the stern warnings not to edit those files, I monkeyed with them anyway. Wherever I found the reference to treeutility.js, I added another line referencing boxover.js. Stopped the BI Server and BI Presentation Server, cleared the browser cache and restarted.

Nothing.

After searching the OBIEE forums, I found a link to these (HTML) documents which talked about changing the styles and skin for the Presentation layer. In particular, this one.

To make a really, really, really long story short, I added a file to the customMessages folder (which I had to create) underneath my language (l_en), called custommessages.xml.

customMessages folder

The contents of that folder are as follows:
<?xml version="1.0" encoding="utf-8"?>
<WebMessageTables>
<!--WebMessageTable lang="en-us" system="CriteriaTemplates" table="Messages">
<WebMessage name="kuiFunctionSelectorHead">
<HTML><script language="javascript" src="/analytics/res/b_mozilla/boxover.js"/></HTML>
</WebMessage>
</WebMessageTable>
<WebMessageTable name="deliversTemplates" translate="no">
<WebMessage name="kuiDeliversIBotEditorHead">
<HTML><script language="javascript" src="/analytics/res/b_mozilla/boxover.js"/></HTML>
</WebMessage>
</WebMessageTable>
<WebMessageTable lang="en-us" system="CommonUITemplates" table="Messages">
<WebMessage name="kuiBrowserDialogHead">
<HTML><script language="javascript" src="/analytics/res/b_mozilla/boxover.js"/></HTML>
</WebMessage>
</WebMessageTable-->
<WebMessageTable lang="en-us" system="TreeViewSys" table="Messages">
<WebMessage name="kmsgTreeImageMap">
<HTML><script language="JavaScript" src="res/b_mozilla/boxover.js"/></HTML>
</WebMessage>
</WebMessageTable>
</WebMessageTables>
Note that the first 3 attempts are commented out, so I only really need that last WebMessageTable entry.

One thing I still need to resolve though, is that my bullet points disappeared (first screenshot above). But...I got what I needed and I can tinker a bit more to get the desired results.

Before doing this on your production system, please ensure that you are allowed to modify the supplied javascript files. The custommessages.xml file follows the guidelines set forth, so I think that's safe, just not sure about the javascript.

Saturday, January 23, 2010

The Long Drive Home

So I am starting to understand why people who travel don't have a lot of time.

For the past 3 weeks I have driven back and forth to Greenville, SC, a round trip of 1200 miles. That's 600 miles on Sunday and 600 miles on Thursday. My record so far is 7 hours and 45 minutes, approximately 75 MPH.

Tomorrow I will be flying and will be there in 1.5 hours. Much better.

My reasoning for driving is multi-fold:
1. I'm not in the habit of flying thus maintain a tad bit of fear at the prospect. I know it's not rational...
2. 4 trips in a month comes out to about $3,000, I can't float that kind of money now. Driving saves me about $400 a week in air travel and about $250 a week in car rental. Driving costs about $120 round trip in gas.
3. Driving pays. Current federal rate is 0.55/mile. 1200 miles = $660. Subtract that from $120 and I am ahead $540. Multiply that by 4 weeks and I'm at about $2,000.

One thing I did not take into account is the exhaustion factor. When I get home, I don't want to do a thing and just dread Sunday creeping up. Despite having a driving buddy coming home this past Thursday, I slept pretty much all day Friday. Today I was a slug too. I'm not much use to my kids in that state.

So I'm going to fly. I nice early morning flight won't bother me much as I will still be too tired to think too much about being scared. Perfect. Sucks that I have to leave so early in the morning, but what can you do?

I still can't float the money to do this every week, so I'm going to try and rotate the schedule, fly, drive and beg for a week of remote work to ease the burden.

Any tips or tricks for traveling out there? I'm using TripIt, which is nice to keep everything in one place. What else?

Monday, January 18, 2010

OBIEE: Connect to Remote RPD

There is occasion were you will not have physical access to the machine which hosts your RPD.

How to connect?

First create a new ODBC Data Source, you can find that in Control Panel --> Administrative Tools



Choose the System DSN tab



Click on Add



Then select the BI Server driver



You'll be prompted with this:



For name enter "remote_rpd", for server, select the location of your other server, in my case, it's XP



Enter the username and password to the remote RPD (if you haven't changed anything, it's Administrator/Administrator)



Go ahead and accept the defaults



You should now see "remote_rpd" in your list of data sources



Finally, open up your BI Administration tool and you should see "remote_rpd" in your list



Enter the password and voila! You are in.

Friday, January 15, 2010

Random Things: Volume #12

Driving
The last 2 weeks I have been driving back and forth to Greenville, SC. Round trip at 1200 miles. I leave Sunday at noon and return on Thursday night at 10. Yesterday I couldn't keep my eyes open, despite 2 5 hour energy drinks and a bottle of Mountain Dew. Had to pull over for a nap.

Consulting
I have to say being a consultant is fun for a number of reasons.
1. I get to meet a lot of different people.
2. I get to experience different IT shops and how they work.
3. I don't necessarily have to prove myself every single time.
4. I get to eat out more often

It's also bad for a number of reasons.
1. Time away from family.
2. I get to eat out more often
3. I get to eat out more often

I definitely need to find a routine. Next week should allow me to begin that search as I will be the only one (from my company) there...temptation(s) (read: eating out) is reduced by 100%.

The hotel I originally stayed at had a stationary bike. The second one did not. I'm trying to get back into the first, but they're booked. My charm wasn't enough to convince them to open up a room...but they did say I could use their gym.

Work
I'm currently working with OBIEE metadata (rpd) and reporting (presentation services). Soon to be extending that to OBIA, the pre-built DW/BI solutions for EBS, PeopleSoft and JD Edwards.

It's difficult for me to stay out of the database though. I constantly want to push as much as I can into it.

The good thing is that I am getting serious exposure to the complete lifecycle of data. OLTP --> ETL --> DW --> Reporting

(Completely) Random
I continue to be amazed at the amount of help available out there...you just need to find it. My old friend Tom was helping me out earlier this week. Kellyn has offered to help me out with something else. Christian has promised to send me his NexusOne (ok, I have to send it to him after I receive it...maybe)

I love the 'tubes.

Wednesday, January 13, 2010

Ubuntu and Cisco VPN

As a consultant I often have to VPN into a client's network and do some work. Up until today, I wasn't aware of a Cisco client for Ubuntu (9.10), so I would fire up my Windows Vista Ultimate VM, install Cisco and log in.

Only Windows Vista Ultimate doesn't play very nicely with the older versions of the Cisco VPN client (pre 5.0). Naturally (stop laughing), I found my old version of Windows XP, booted it up, installed Cisco and connected. Fun huh? It's amazing how resourceful we can be sometimes...

I had to deal with this because I "lost" my Windows image today. By lost I mean I couldn't recover it. I'm still not sure what happened, but it was some kind of invalid or incomplete multibyte or wide character error. The image just disappeared. I tried changing my LANG variable to en_US, but that didn't seem to do any good. I'm not really sure what happened.

Anyway, I found vpnc and began to try and connect. That's no easy task for the likes of me (as you well know).

Just running vpnc, I was prompted for the following:
chet@cdj-laptop:~$ vpnc
Enter IPSec gateway address: vpn.oraclenerd.com
Enter IPSec ID for vpn.oraclenerd.com: something
Enter IPSec secret for something@vpn.oraclenerd.com:
Enter username for vpn.oraclenerd.com: chet
Enter password for chet@vpn.oraclenerd.com:
vpnc: unknown host `vpn.oraclenerd.com'
I guessed at the first 2, username and password are no brainers...even for me.

So I looked at the help file.

OK.

gateway? that's vpn.oraclenerd.com
id? defined as your group name. I opened up the connection properties of the Cisco client and found the group name, NERDVPN

and then in the help file there are 2 options for the group password, one in clear text and one obfuscated...but it said "config file only"
  (configfile only option) 
your group password (cleartext)
conf-variable: IPSec secret

(configfile only option)
your group password (obfuscated)
conf-variable: IPSec obfuscated secret
So I created a file .vpnconfig and put it in the root directory (I was just testing). Here are the contents:
IPSec gateway vpn.oraclenerd.com
IPSec ID NERDVPN
IPSec obfuscated secret ASDFLKJUW3ROUOIUALKJQAEWROIR3379273AFJI;LKQJ3E
Xauth username chet
Then I ran
root@cdj-laptop:/home/chet# vpnc /.vpnconfig
Enter password for chet@vpn.oraclenerd.com:
VPNC started in background (pid: 3702)...
Voila! I'm connected. Time to do some work.

Note that I did this as root. I'm still figuring out the security aspects of Linux so I'll leave that part up to you. I'd rather not advise you to
chmod ugo+rwx / -R
many of you would be very angry with me for suggesting such a thing...

Sunday, January 10, 2010

Dynamic Single Row Query

Once in awhile doing analysis, I'd like to see the count from each table, just to get an idea of how much data I am working with. Of course this doesn't measure width, but it is a metric.

Of course I could go through and write a SELECT COUNT(*) from every table, that works if there are like 4 tables. Anything more and...well it sucks.

Yes, I could gather stats on the schema and then reference NUM_ROWS, but this is an occasion where I don't have the necessary privileges.

I've been trying to do this for years, with no luck, until yesterday. Typically I would do something like this:
DECLARE
l_count INTEGER;
l_sql VARCHAR2(200);
BEGIN
FOR i IN ( SELECT table_name
FROM dba_tables
WHERE owner = 'SYSTEM' )
LOOP
l_sql := 'SELECT COUNT(*) INTO :1 FROM SYSTEM.' || i.table_name;
EXECUTE IMMEDIATE l_sql USING l_count, i.table_name;
dbms_output.put_line( i.table_name || '-' || l_count );
END LOOP;
END;
/
Which would of course would give me this:
DECLARE
*
ERROR at line 1:
ORA-01745: invalid host/bind variable name
ORA-06512: at line 10
Only now did I realize a fatal flaw with that...I was trying to bind the variable into the string, which would obviously never work.

For whatever reason, this time I decided to research it. I came across Flavio Cassetta's site and this post, SQL Error: ORA-01745: invalid host/bind variable namI'll skip a few iterations and get to the final product (because I went through this exercise on Friday night and quite honestly, don't remember all the permutations).
SET SERVEROUTPUT ON

DECLARE
l_count INTEGER;
l_table VARCHAR2(61);
BEGIN
FOR i IN ( SELECT table_name
FROM dba_tables
WHERE owner = 'SYSTEM' )
LOOP
l_table := 'SYSTEM.' || i.table_name;
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM ' || l_table INTO l_count;
dbms_output.put_line( l_table || '-' || l_count );
END LOOP;
END;
/

...snip
SYSTEM.LOGMNR_USER$-0
SYSTEM.LOGMNR_OBJ$-0
SYSTEM.LOGMNR_DICTIONARY$-0
SYSTEM.LOGMNR_DICTSTATE$-0
SYSTEM.OL$NODES-0
SYSTEM.OL$HINTS-0
SYSTEM.OL$-0

PL/SQL procedure successfully completed.
Done.

Thursday, January 7, 2010

EBS Oracle VM Templates

OK, now I am angry.

The other day I emailed the Steven Chan, he's the Senior Director at Oracle in Applications Technology Integration, Oracle E-Business Suite Development, about The EBS Challenge. Just a courtesy thing, I wasn't sure if he had seen it or not.

Well, today he wrote me back...

And what did he tell me?

He told me about two recent, and by recent I mean December...you know...about the time I started this whole saga of installing EBS, posts of his.

Actually, I'm not sure who I am more made at, him or John. I suppose I could excuse Steven since we have never interacted before...but John? Are you telling me John didn't know about this? John knew the pain I was going through just to create the stupid 300 GB VDI. John knew!

I can come to no other conclusion than John purposely tortured me. I hate you now John.

Alright...that might be a little harsh. Wait...no, it's not harsh at all. Yes it is.

If you don't feel like going through this exercise yourself, here is the easy way out:

--E-Business Suite 12.1.1 Templates for Oracle VM Now Available
--Using Oracle VM with Oracle E-Business Suite Virtualization Kit

Thanks John...we're not friends anymore. :)

Monday, January 4, 2010

EBS Install Guide - Part 4

By John Piwowar [ blog | twitter ]

This is the fourth and final post in the "Installing E-Business Suite" series, where we'll take a quick look at the GUI. As with the command line interface, going into deep detail would take more time and space than is practical, but I'll try to present some of the high points. I'll close with a final list of useful references for EBS administrators, and then return you to you regularly scheduled oraclenerd programming. Thanks again, Chet!

Part 1 --> Part 2 --> Part 3 --> Part 4

The Navigator
After logging in to Oracle Applications (you remember that from the end of Part 2, right?), you'll be presented with the Navigator. Depending on the responsibilities granted to your user, the length of the list in the left column of the Navigator will vary. When connected as SYSADMIN, you'll most often be interested in the "System Administrator" and "System Administration" responsibilities. Clicking a responsibility will populate the center column of the Navigator with the functions assigned to that responsibility, and clicking one of those functions will take you to that function, either in the HTML interface or the Forms interface. As shown in the screenshot below, the small icons next to the links indicate whether a link will launch Oracle Forms or just take you to another HTML page. To the right of the two Navigator columns is the list of Favorites, which can be especially handy if you've been granted a lot of responsibilities and can't be bothered to remember which responsibility provides your most frequently-used functions.



The SYSADMIN user offers access to a wide variety of responsibilities and functions, particularly in the Vision instance. As you might expect, SYSADMIN also has "superpowers:" some responsibilities offer expanded functionality only to the SYSADMIN user. If you're interested in seeing what a more common, but still fairly powerful, user looks like, you can log in as one of the following users: MFG, OPERATIONS, SERVICES, MRC, or HRMS. These users are seeded in the Vision instance with the password 'welcome'.

The forms interface
EBS has been evolving to use a more HTML- and Javascript-based UI, but a large proportion of the end-user functionality (and some crucial administrative functions) are presented via Oracle Forms. When you click on a link for a function that is handled by forms, Java will launch the Forms interface for you. It really, really helps in this case to be running on a supported Java+Browser+Operating System combination (Linux users take note: Oracle does not currently plan to certify Linux desktop OS versions to run EBS clients). In addition, make sure that you've either disabled your browser's popup blockers, or added your EBS server to your popup blocker's whitelist, otherwise Forms may fail to launch and you might mistakenly conclude that they're broken. Here's a quick demo of the start of the Forms interface, so you know what to expect. I chose the "System Profile Options" form for convenience, not because it's super-important...though it's certainly a normal amount of important:

Click appropriate link in the Navigator (or, as in this case, the Favorites list...yay, laziness!). A new browser window or tab will open, displaying a Forms servlet launcher. Depending on your browser's security settings, you may be asked a few questions about whether you want your EBS server to be allowed to communicate with your browser. I've found Safari to be particularly persnickety about this.



One of the browser windows (or tabs) that will open during the launch of Forms contains a "Do not close this window" warning. Hint: they're not kidding. Make sure it stays open for the duration of your Forms session.



After a bit of waiting and spawning those extra browser windows, you should get a view of the Forms interface. It'll probably try to take over all of your screen real estate (at least it does on my laptop), so it'll be impossible to miss:



A few things to note:
  • The Forms function you selected may be specific enough to require a series of sub-forms, in which case you'll see parent forms open underneath.
  • As with the web interface, there's a Navigator form, with all of the functions available to the current responsibility. If you select the Navigator form, the little "top hat" icon will become active, and you can switch to a new responsibility.
  • You can bask in the warm, comfortable nostalgia of desktop-app-like "File, Edit, Tools, etc" menu system.
  • If you use the Navigator to select a function that is HTML-based, you'll be popped back out into your browser. It might come as a surprise the first few times, but you'll get used to it. ;-)
  • If you close the Navigator window, you'll be asked to confirm that you want to exit Oracle Applications
Diagnostics
Oracle makes it easy to collect a lot of diagnostic information about the various EBS applications modules and tech stack components. A lot of the diagnostic test output can be packaged up and shipped to Oracle Support to support SR resolution. I've also been able to resolve issues on my own using Diagnostics that I might otherwise have had to open an SR to resolve, which makes the Diagnostics a clear timesaver. Access Diagnostics from either the "Application Diagnostics" responsibility or the "Diagnostics" link at the top of the Oracle Applications home page. Using the responsibility is a bit more straightforward.



I'll spare you a long, screenshot-laden walkthrough of Diagnostics, but you'll find that there are over 280 applications to choose from, each with its own set of tests. The applications AD (Applications DBA), FND (Application Object Library), and SYSTEM_TEST (HTML platform) are probably the most immediately interesting to you at this point. For fun, run the EBusinessSecurity test group under FND and see what holes are left open in a default system. :-)

OAM: Oracle Applications Manager (OAM)
I'm sure I'll lose a lot of "street cred," assuming I've ever had any, for extolling the virtues of a GUI-and-dashboard-based administration interface, but Oracle Applications Manager is pretty nifty. Come to think of it, maybe I'll lose cred just for using a word like "nifty." Oh well. OAM is available to users granted the System Administrator or System Administration responsibility. Access individual OAM functions from those responsibilities, or start at the Dashboard to begin exploring its functionality.



OAM can quickly display the overall health of your system, lets you change some Apps configuration options, provides facilities to report on applied EBS patches and analyze new ones, manage the various moving parts that comprise the Workflow system, and much more. Click around for a bit; they've packed a lot in there:



I should note that OAM and the Diagnostics utilities discussed above are part of the base Oracle Applications system, included as part of standard EBS licensing. OAM should not be confused with the Oracle Applications Management Pack for Grid Control, which is a separately-licensed product.

Standing on the shoulders of giants
Okay, that's a wrap! Thanks for sticking through to the end; I'll leave you with one last list of reference material. If you want to dig further into learning about EBS, here are some useful resources and blogs. I'm bound to miss a lot here, but you won't go very wrong starting with this list:
  • First and foremost, if you aren't following Steven Chan's blog, you are doing yourself a huge disservice. Steven and his blogging team are are all heavily involved in the Applications Technology and Applications Technology Integration groups at Oracle. They will keep you up to date on the evolution of the Oracle Applications tech stack "as it happens," with certification announcements, discussions of advanced features and configurations, and pointers to interesting EBS whitepapers. If you've ever tried to navigate the labyrinth of Oracle's certification matrix, you'll recognize that Steven's list of certifications for the EBS tech stack components alone is worth a visit to his blog. Steven also maintains a list of Apps-related blogs, both within Oracle and in the broader community.
  • The OTN EBS forums are an invaluable resource for getting answers to your EBS questions. Most of the time, it seems like Oracle Ace Hussein Sawwan is holding the entire show together with his encyclopedic knowledge and crazy My Oracle Support skills. There are a lot of very helpful regulars there to pick up the slack when Hussein steps out for dinner, too (I'm not convinced that he sleeps). The EBS on Linux, EBS R12 Install/Upgrade, and EBS Technology General Discussion forums are a good place to start.
  • Atul Kumar's Online Apps DBA blog covers a wide variety of topics related to the technical side of Oracle Applications, including the integration of a wide variety of Oracle products with EBS, and more "real-world" deployment scenarios than this installation guide provides. It seems like there isn't an Oracle product this dude hasn't installed; it's pretty impressive.
  • Eddie Awad's famous OraNA service has an "Applications and Apps Technology" subcategory, and you'll see some interesting tidbits come through there.
  • Ben Prusinski, Oracle Ace and RAC expert, has recently ventured into the realm of Apps DBA work, and many of his recent blog posts have covered R12-related topics.

Sunday, January 3, 2010

The Costs and Benefits of Enterprise Technology

My technology chops lag a bit behind the writers and readers of this blog. While I am taking the Piwowar EBS challenge along with Chet, Floyd and others, my day to day activities are more focused on trying to blow hot air onto the frozen middle of enterprise technology management. Chet recently retweeted a good question that got me thinking, reading and (now) writing. The question was:

RT: @brhubart

That post linked to a super article called Upper Mismanagement from The New Republic. It discusses how many executives, having risen up from finance instead of operational backgrounds, are probably incapable of leading American manufacturing today.

We see many of those same problems in IT. Those leaders who come from a finance background tend to be focused on showing the money (or the savings), while the technical leadership are just as focused on innovative technology. That often leaves the more operational business folks hanging in between, trying to keep the business going - doing more with less.

One problem seems to be that the wrong people are making the decisions - for the wrong reasons. This is an organizational problem: the right people are not in the right place. Technical, financial, and business folks all need to work together to create the solutions that will best advance the organizational mission. Too great a focus on any of those areas will potentially endanger the goals of the others. Jake spoke to part of this divide in his OOW 08 presentation (slide 9):

Jake Kuramoto's 2008 OOW Presentation

What about solutions?

In a recent seminar on financial management for IT, we worked with Intel's Business Value Index model. When you have a few minutes, read this white paper: IT@Intel White Paper Using an IT Business Value Program to Measure Benefits to the Enterprise. I'll provide the first line as a teaser:
Intel's IT business value (ITBV) program has shifted our IT investment decision making process to a customer-focused, data-driven model that demonstrates the impact of IT on Intel’s bottom line.
Yes! Right on! Isn't that what we all do?! I'd argue that if we all did this even half as well as Intel we wouldn't have as many questions about "finance killing IT" or "IT costing too much" or "IT not serving business needs."

I encourage all of us to read this paper. It explains how Intel's model "works by evaluating IT investments along three factors: IT business value, impact on IT efficiency, and the financial attractiveness of an investment." I love how they are ranked.

The key to the success of the Intel model seems to be accurate measurement of all three factors. Cost is frequently measured, but not always accurately. How often have you seen a solution implemented without provisions for its total cost? IT efficiency is measured less often. Business value is typically implied in requirement gathering, but I often see operational metrics missing once a solution goes into production. One example comes from a business intelligence project I am working on. In all of our work to help our business owners develop KPIs, we came up short on defining those metrics that would indicate how well IT was performing. See a good post from CIO magazine on developing metrics for IT.

So, if it is easy and obvious to do the right thing around measuring the benefits of IT to the enterprise, why is it not done consistently? I used to think it was just me, or just my organization, or just my industry (Higher Education and Research). Since I have been in school and doing a bit of consulting, though, I find my peers in all industries are singing the same tune. Perhaps one answer is implied in the New Republic article referenced earlier in this post. Perhaps we are not preparing ourselves and those around us to take the lead in this area.

Here is a good recent publication from my industry highlighting the shifting roles in IT leadership. I would argue it is not that different in other industries. Nor would I argue that any of this is new. Here is a similarly good recent publication from the CIO Executive Council called the State of the CIO 2010. I also recently read some great old school management principles from IBM's heyday. They are enjoyable and still applicable. Check out especially the "IBM management principles and practices" and the "Quintessential quotes."

Please find the comments if you love or hate any of the resources I've included. Please also drop a comment if you have an answer to the question of "will 'show me the money' kill IT?"

Thank you @oraclenerd and @brhubart for getting me thinking, reading, and writing. Now I can shed the slacker tag for a spell and get back to my work on the Piwowar EBS challenge (I am still on hardware and OS, ugh).

Ted [ linkedin | twitter ] is Vice President for Communications at the Higher Education User Group, MBA and MSIS student at the Johns Hopkins University, Director of Administrative Systems at MICA, and slacker at badgerworks.

My EBS Install Saga - Part II

Finally!

Finally!

After just a little over a month, I've finally gotten this stupid thing installed. Read a bit of my prior trials and tribulations here.

Cost
In total, I believe this cost me about $250.
  • $80 - 320 GB Hard Drive which I didn't use for this install (but meant to)
  • $100 - 1 TB hard drive which I did use for this exercise.
  • $70 - Amazon EC2 usage. Most of the $70 is because I used a 26 ECU machine (8 dual core CPUs, 64 GB RAM)
The EC2 expenses are high mostly because I spent more time connecting and such than actually doing any work. When you have a powerful machine, work is easy (and justifiable). I could download a 1.5 GB file in 3 seconds...well, it seemed like 3 seconds. Plus, I was learning how it all worked.

As far as disk space goes, I didn't have any. Maybe a total of 300 GB to start spread on 3 different disks.

Now I need one of those big ass workstations so I can actually work with this software. Sadly, as I have priced them out, I can't get under $4K. Anyone from HP or Dell (or Apple) reading? Wanna give me one of your workstations? I'll blog about it...a lot.

Instructions
I followed John's instructions to the letter. I received the same error screen as he did

error screen

Checked the logs as instructed, found the problem
error while loading shared libraries: 
libdb.so.2: cannot open shared object file: No such file or directory
The only errata I've found is that mine was a 32 bit system and not a 64 bit system...but who cares? It works.

I followed his instructions to create the symbolic link...I would never in a million years been able to figure that out.

I'm fortunate to have used the 9i and 10g Oracle Application Server and OC4J extensively in the past, I just need to figure out where everything is located.

Resources
My goal is 2 fold
  1. Create a test environment with EBS, OBIEE and OBIA
  2. Prove (or disprove) a theory about integration with APEX I have
That means I need to have room (memory) to run another VM. Not for APEX, but for the OBIEE/DW space.

Very first thing I did was go into the database init file. I changed the sga_target from 1G to 512M and I changed the pga_aggregate_target from 1G to 512M.

Next up, I'll be trimming some of the memory allocation for the OC4J instances...but not yet. I'm just going to bask in the glow of finally getting this thing done.

I'll also read up Part 3 of John's Install Guide and Part 4 will be coming out this week, probably tomorrow afternoon.

John, you are the man! Thanks!

2009 - In Review

Crazy year...but that seems to be the norm. Is crazy my normal? I wouldn't be suprised.

Numbers
  • 289 - Number of posts this year.
    • 37 - September had the highest number of posts.
    • 18 - February - lowest
    • 24 - Average posts per month
    • 76 - Number of days not covered by a post. In reality though, there were numerous occasions where I posted 2 or more times.
  • 439 - Number of posts it took to get to the magical $100 mark with Google AdSense. I don't even want to do the math on that. BTW, I reached the $100 mark on December 28, 2009. Here's to perseverance.
  • 94,998 - Pageviews according to Google Analytics
  • 66,313 - Visits according to Google Analytics
  • 465,963 - Page Requests according to my web server (GoDaddy)
  • 1,015,934 - Server Requests according to my web server
I'm not sure what the disparity is between the web server stats and Google Analytics. I tend to put more faith into Google Analytics though. (Of course seeing that 1 million is cool, even if it is only server requests).

Pretty Pictures
Here's a screenshot from my Google Analytics page...in July, I hit 5,000 Visits for the first time

july analytics

I'm still not real clear what happened here

wtf?

That was a 2,000 visit jump. I originally thought it had to do with my shameless pining to go to OOW 09...but that was late August, early September.

And to give you an idea of the progression since I started

wow!

The 2,000 hit jump is much more dramatic in that picture.

Guest Authors

Back in July (well, technically in May), I opened up the blog to guest authors. Mainly I wanted to give people of all experiences an opportunity to try out their writing skills...to see if they would like it. I didn't exclude established bloggers though. Of the 5 who participated, 4 already had blogs and 1 had been considering it.
I know Ted's got one (almost) ready for posting and I'm trying to talk Jeff Haynes and Brad Tumy into doing guest spots as well.

Thanks to all of you who participated...I can't say that enough.

So I hope you enjoyed 2009 as much as I did. I'm not sure how long I can keep this up...it's a lot of work. I think it's worth it though.