Monday, November 22, 2010

Change panelGroupLayout to use <table> instead of <div>

As most of us know that ADF by default is converting most of its containers to <div>, but sometimes there is a need to work with <table>, let us see how to do that:

It is very simple, we will use three styles  table, table-row, and table-cell. Let us suppose that we have the following ADF faces code


    <af:panelGroupLayout>
        <!-- some controls goes here -->
    </af:panelGroupLayout>
    <af:panelGroupLayout>
        <!-- some controls goes here -->
    </af:panelGroupLayout>
</af:panelGroupLayout>



We need to convert it to a table with two rows and on column, so it will be


<af:panelGroupLayout inlineStyle="display:table;">
    <af:panelGroupLayout inlineStyle="display:table-row;">
        <af:panelGroupLayout inlineStyle="display:table-cell;">
            <!-- some controls goes g -->
        </af:panelGroupLayout>
    </af:panelGroupLayout>
    <af:panelGroupLayout inlineStyle="display:table-row;">
        <af:panelGroupLayout inlineStyle="display:table-cell;">
            <!-- some controls goes g -->
        </af:panelGroupLayout>
    </af:panelGroupLayout>
</af:panelGroupLayout>



Note if you used layout property for panelGroupLayout with value equal to Horizontal, it will be converted to able but you will not have full control over it where cells will be generated automatically and you cannot add styles to them.

Wednesday, November 10, 2010

ADF: Images in CSS not displayed with IE

I am currently working on a portal project in Saudi Arabia using WebCenter. I have created my own skin and styles, and in the last days I was developing on Fedora linux so I tested my work on Firefox and Chrome. After deployment, I got surprised that images not displayed.

The issues was that I was using styles like the following:


background-image: url("../images/logo.png")repeat-x; 



but while debugging on Internet Explorer, I found that the style is not existing within the css class (not being served to Internet Explorer). To fix it, you have switch to the following


background-image: url(../images3/Center.png);
background-repeat: repeat-x;



it took from me time, to find the problem, world of css :D

Tuesday, November 9, 2010

Somali pirates & Nintendo

There is a study made about Management based on Somali Pirates and Taliban (insurgents in Afghanistan), you can read more about it in the article from economist.



What is interesting for me is the comparison between Somali pirates strategy in attacking ships and strategy Nintendo in penetrating gaming market and competing companies like Microsoft.

Also Taliban strategies is very interesting for me in project management, and how companies can have small teams taking quick decisions without returning to management and doing micro-management. They don't wait for long-term approvals.

I liked it and I wanted to share it with you.

Oracle UCM 11g clustered (continued)

I forgot to mention two things about clustering in my previous post.

- After creating a domain on the first physical machine, and you want to transfer the configuration to the other physical machine, do the following:

On the first machine

$ cd /u01/oracle/middleware/user_projects/domains/
$ ../../wlserver_10.3/common/bin/pack.sh -managed=true -domain=my_domain -template=my_domain.jar template_name="my_domain"
$ scp my_domain.jar oracle@node2.mydomain.com:/u01/oracle/middleware/user_projects/domains

on the second machine

$ cd /u01/oracle/middleware/user_projects/domains/
$ ../../wlserver_10.3/common/bin/unpack.sh -domain=my_domain -template=my_domain.jar

Note, when configuring weblogic machine on linux,  it is better to use Unix Machine (you can accept the defualts)

- Now you have UCM clustered on two machines, so what about load balancing? you have several options like using another weblogic instance to do load balancing, but in my case I used apache HTTP server for doing that (this was because I wanted to minimize licenses required)

To do load balancing
- Download weblogic plugin for Apache from http://www.oracle.com/technetwork/middleware/ias/downloads/wls-plugins-096117.html
- Ensure that Apache is up and working on the server
- Extract the plugin in a directory on  your server
- add the following to httpd.conf (I assume here we are installing on linux)


#Weblogic Proxy Plugin
LoadModule weblogic_module /root/wlsplugin/lib/mod_wl.so

#Weblogic Proxy Plugin

SetHandler weblogic-handler
WebLogicCluster node1.mydomain.com:16200,node2.mydomain.com:16200


I hope you will have a good picture about how to accomplish that

Friday, November 5, 2010

Oracle UCM 11g clustered

One of the biggest advantages we got with UCM 11g is that it is being hosted inside Weblogic Application Server. That allows us to create a clustered UCM without big efforts and in my opinion it doesn't need any expert to do that.

I think most of you guys remember clustering with UCM 10g, it was really silly :)

In next lines I will explain to you how to do that, but I will assume that you installed Weblogic Server 10.3.3,  Oracle ECM 11g, and middleware home is "/u01/oracle/middleware":


- $ cd /u01/oracle/middleware/Oracle_ECM1/common/bin
- $ ./config.sh
- Create new weblogic domain (or use an existing one if you have)



- Configure domain to support UCM, IBR, and Site Studio



- Name the new domain in this case I named it for demonstration my_domain



- Add the Weblogic admin password



- Choose Production environment



- Configure database connection information, if you are using Oracle database 11gR2 you will gain major feature which using one host name (scan name) and DNS will automatically will take care of load balancing and failover for RAC nodes.



- Next choose the following to configure clustered nodes for UCM and IBR



- Accept the default for the admin server



- In the managed servers page, you will have by default UCM_server1 and IBR_server1, we will add two other managed servers UCM_server2 and IBR_server2



- Next will create two clusters one for UCM and one for IBR



- Under UCM cluster we will add UCM managed servers and under IBR cluster we ill add IBR managed servers



- Next will add two Machines representing two physical machines, and they responsible for communicating with Node Managers on the two nodes we have here



- Add the managed servers and admin server to the Weblogic machines



- Next we can see the UCM cluster is automatically configured to support the required libraries and applications



- JDBC and the other required services is configured automatically



- At the end accept the configurations and you will have a ready UCM cluster on two nodes



The remaining part here is to have a shared storage like SAN for storing vault and weblayout repoistories, in this case also you need to have OS file system cluster. On linux you can use Oracle File System Cluster for doing that.

Oracle Referring my blog

Guys I am really sorry for not posting from weeks in my blog.

I was searching for things in Oracle Website and I got my surprised that Oracle is referring to my blog WoW, I didn't how it was helpful for other, and this really is very big responsibility on  me.


I read a book called "A leader who has no title", it explains an important thinking methodology which is "to lead, you don't need a title or a position or a company, start by yourself and work harder. Then everything you need will be in your hands, and everyone will appreciate your efforts and work."

If you are targeting money or a big position in a company, you will lose your focus and you will not be special. Myself, I am always asking myself If I am in the same long queue like others or I left the queue and trying to find some shortcut. By the way If I didn't find the shortcut, I will not be sad, earnings are always higher.

One last thing, I am not Oracle employee, or working in a multinational first class company. Currently I am freelancer trying to depend on myself.

Start by yourself,, don't look at others.

First use of Ajax terminology

From days I was watching a TV program about history of the flush toilets and its contribution in civilization. I got surprised when they said that one of the first flush toilets invented in 1596 by Sir John Harington called Ajax :) 


So Ajax has a big role in civilization advancement, but I don't know why he called the flush toilet Ajax.