This article is Introduction to APEX.
What is Application Express?
It is formerly called HTML-DB, a web-based RAD tool which resides in Oracle database. Using browser based user interface and limited programming experience, you can build a complete data-centric web application in a very fast development cycle.
From the end user’s perspective, the deployed applications require only a browser and
access to an Oracle database running Application Express.
What are the uses of APEX?
1. Builds professional looking web applications that are both fast and secure.
2. Runs on and lives in Oracle database. APEX framework and meta data are stored in Oracle tables.
3. It is FREE. No licensing required.
4. Fast learning curve for developers to build application.
5. Deployment of application is as simple as 'Export and Import' if hard coded references of values that change between environments are avoided.
6. Lot of scope for customization of application look and feel.
7. Scalable for high user volume. AskTom, former Oracle Metalink (before migrated to Flash version) and many applications are built using APEX.
8. Can be configured to use Oracle SSO and EBS fnd user repository.
Who uses APEX?
If you are running on oracle database and you want to build rich web application with reports, forms, charts, drill downs and dashboards with limited Java experienced developers in a short time frame, Oracle APEX is the most likely candidate for consideration.
How APEX Architecture works?
APEX is installed on Oracle database (above 9.2 version), starting from Oracle 11g it comes pre-installed with the database. It is comprised of meta data in tables, pl/sql code and extensive JavaScript APIs.
The URL request from the browser is translated into appropriate APEX PL/SQL call by either Oracle HTTP Server (Apache) with mod_plsql plugin or Embedded PL/SQL Gateway. This varies by the type of APEX installation on oracle database. After the data is processed, results are relayed back to browser as HTML. This cycle happens each time user request or submit a page. The application session state is maintained in database tables.
APEX installation can be done in two ways. DBAs are more concerned about it than developers. But this determines how the URL is translated. I will talk about it in next article.
Oracle HTTP Server
In this three-tier configuration, mod_plsql in Oracle HTTP Server acts a broker between client web browser and server database.
For each URL that is processed, mod_plsql either uses a database session from its connection pool, or creates a new session on the fly and pools it. For mod_plsql to invoke the appropriate database PL/SQL procedure in a URL-processing session, you must first configure a virtual path and associate that path with a Database Access Descriptor (DAD).
A DAD is a named set of configuration values that specify the information necessary to create a session for a specific database and a specific database user/password. This includes the database service name and the Globalization Support setting (for example, language) for the session.
Embedded PL/SQL Gateway
This is a classic client-server architecture where embedded PL/SQL gateway provides the Oracle database with a Web server and also the necessary infrastructure to create dynamic applications. The embedded PL/SQL gateway runs in the XML DB HTTP server in the Oracle database and includes the core features of mod_plsql, but does not require the Oracle HTTP Server powered by Apache. Inclusion of the embedded PL/SQL gateway simplifies the
architecture and eliminates the middle tier entirely.
Oracle HTTP Server is known and proven technology, it has been used for Self Service applications.
No.
What is current version available?
APEX 3.2 is released a couple of weeks back.
What are skills required for APEX Developers?
SQL, PL/SQL are essential. HTML, CSS and JavaScript are good to have skills to understand and customize look and feel (themes, templates, .... ).
Where to learn and get hands on APEX?
There are multitude of sites dedicated to APEX. apex.oracle.com allows anyone to request for free APEX account to build applications or run packaged applications.
Follow the below steps for creating account in apex.oracle.com
- Go to apex.oracle.com and click 'sign up for account' link below Login button.
- Fill administrator information. This user will have all rights to create new users and manage their accounts.
- Enter workspace name (For Ex: XX-APEX). Workspace is dedicated area where you develop applications. A workspace is attached to one or more database schemas. In a typical development environment, you might create a single workspace for all
your developers to share. - Enter name of database schema and its space allocation.
- Fill justification and complete by confirming the request.
- You will get email once the request is approved. Oracle administrator do great job to approve your request as soon as they can. (Usually few hours ... latest a day).
- After clicking on approval link, you get another email with userid/password.
- Then you are set on login on apex.oracle.com and run sample application under Application Builder.
I will cover different aspects of APEX in next article.
Finally APEX or OAF or ADF?
Some healthy debates are going on choice of these existing new technologies. APEX embeds business logic and presentation together in oracle database. It has bunch of bugs to be fixed ... for that matter every technology evolves over time. APEX is fast growing platform for RAD. The number of OTN threads and APEX developers in APEX OTN discussion forum gives a fair idea of amount of work going in APEX. Though a quarter of them use APEX with EBS.
If you want to follow Model-View-Controller (MVC) design pattern and have Java / J2EE resources at hand, OAF or ADF is a better choice. With OAF, you can use EBS security model, DFFs etc.
APEX doesn't replace OAF, it's highly productive, wizard driven development and deployment and easy to use navigation cannot go unnoticed.
Comments
Thanks,
Suresh
Yes. APEX can be used to report on Apps tables or views, create forms to insert/update data using APIs, integrate with BI Publisher or web services.
If your organization uses Oracle SSO, APEX can use it as well. Otherwise, you need to create custom authentication scheme to validate APEX user against FND users. The custom function calls fnd_web_sec.val idate_login function to validate apex user.
Hope that answers your question. APEX is highly productive tool to create web applications for EBS.
Kishore
this really sounds great ..... we are using SSO ;D
Currently I am developing pages using OAF for End user of Oracle application. So using APEX can we do the same? or how is it differ from OAF
Hope you tutorial cover more considering on Oracle Apps ....And I will nice if you start as Anil with Installation of tool also...
Cheers .... thanks for your effort !!!!!!!!!
Sure sh
You mentioned its free. So how will get one account for our Organization?
Thanks,
Suresh
APEX application or APEX engine must be registered as partner application with Oracle AS SSO Server, to authenicate user with
SSO. If you choose this approach, your application will not use an integrated login page. Instead, when a user accesses your application in a new browser session, the Application Express engine redirects to the Single Sign-On login page. After the user is
authenticati on by SSO, the SSO components redirect back to your application, passing the user identity and other information to the Application Express engine. The user can then continue to use the application until they log off, terminate their browser session, or until some other session-termina ting event occurs.
I've not done installation of APEX in our environment. http://download.oracle.com/docs/cd/E14373_01/install.32/e13366/toc.htm URL will help you in the process. We use APEX for financial reporting on Oracle Apps reporting (BI) database. Coming to your question on APEX or OAF, the decision depends on various factors.
1. What is the scope of your custom pages? Are you building a custom application/mod ule or a few pages? In APEX, you cannot utilise DFF/KFF, security rules of Apps.
2. I suggest you to invest some time in architecturing APEX for your environment ... you want to use HTTP Server of current EBS environment or a different HTTP Server? If you want to use APEX for reporting, you wouldn't need to run forms server/concurre nt manager to HTTP Server (if it is different to EBS HTTP Server).
APEX is installed in different database schema, so managing synonyms and grant access on apps tables or views has to be considered.
3. How many users access your application? Tuning your SQL queries which you use in your application is crucial for performance. Better to use views. Create views in apps schema and synonyms to them in apex schema.
4. If you have java environment already setup for OAF, stick to OAF. Because you cannot extend OAF pages using APEX. Their architecture is completely different. If you are building a custom module or looking for reporting alternative, APEX is a choice for agile development.
Once you have architecture charted down and have environment setup, APEX is very useful tool and it doesn't take long to appreciate its power.
Kishore
apex.o racle.com is only for learning the tool and doing prototypes. You can get free account for yourself by clicking on 'sign up for an account' link. Please follow instructions in the article. You can download apex 3.2 from otn, install it in your organization, develop application and use it without any licensing. But for BI Publisher integration with APEX report printing, you would require license.
Refer Metalink note 761836.1 for installation steps. For more details on apex license, log a SR with oracle support.
Kisho re
I am currently trying to integrate APEX with 11i and trying to mimic the features of discoverer (like drilldown reports, reports with multiple workbooks etc.,) in APEX.
Any help will be much appreciated.
T hanks and Regards
Justin
In APEX, for creating drill downs you define column link on report column to link it to another page. You can imitate multiple workbooks in discoverer by creating multiple pages or multiple regions in a page and conditionally displaying them based on various items.
Please post a specific question or any issue you stuck with.
Kishore
Here are some good examples for APEX. The following link has all the tutorials drilldown reports (using Link), Master Detail Reports
You can download the sample data from the same link and start working with examples.
http://download.oracle.com/docs/cd/E10513_01/doc/appdev.310/e10497/toc.htm
OBE'S
http://www.oracle.com/technology/products/database/application_express/html/obes.html
Here are some good examples for APEX. The following link has all the tutorials drilldown reports (using Link), Master Detail Reports
You can download the sample data from the same link and start working with examples.
http://download.oracle.com/docs/cd/E10513_01/doc/appdev.310/e10497/toc.htm
OBE'S
http://www.oracle.com/technology/products/database/application_express/html/obes.html
I have installed Oracle APEX with background of Oracle XE database and Oracle Application Server.
But after installation, when i access http://localhost:8080 I get the login page but when i provide the username, password and workspace and click submit,
It is not going to next page. Kindly guide me with any installation document or sceen shots
What is the URL you are using for login? Go to Start > All Programs > Oracle Database 10g Express Edition > Go To Database Home Page, for login page URL. Do you see invalid login message after you enter username/passwo rd?
For step-by-step installation of APEX on XE, see the below link.
http://www.scribd.com/doc/5456221/Stepbystep-guide-to-install-Oracle-APEX-on-XE-on-Windows
Kishore
Thank you for your efforts.
In Oracle HRMS, we have a concept called Security Profiles that provides/restri cts user access to the applications. Can we use it in APEX?
Regards
Raghu
You cannot utilize Oracle HRMS Security Profiles to restrict information in APEX, as APEX security architecture is different from EBS. Though you can write a function using Security Profile API or Join Security profile tables, while writing SQL query for displaying HR information in APEX.
Kishore
Thank you for the information. I will be shortly creating an Portal Application with FND_USER authentication and HRMS Security Profiles. I'm trying to figure out which tool would be a best one to use, either APEX or OAF or Web Center/ADF. I know there are some java work involved in OAF and ADF. I'm not much into Java, but I could if i needed.
I see you are doing a good job in APEX and digging more and more day by day. Did you came across something that you felt that APEX is not supporting it yet like you had mentioned KFF, DFF or Security Profiles.
Any information would be highly appreciated.
R egards
Raghu
I have another question on APEX. Could we be able to deploy the APEX application/pag e in Oracle Apps server like we do for OAF? Like we attach it to a Form Function which in turn attached to the Responsibility?
Regards
Raghu
APEX runs in Oracle database, there are small gaps in integration of APEX with Oracle EBS. Honestly I have not come across any articles on APEX using EBS security model, KFF/DFF. APEX is not replacement to OAF. Future releases of Oracle EBS will be built on OAF/ADF. Having said that high usability and productivity of APEX cannot be ignored for the scenarios where seamless integration with Oracle EBS is not required.
Comi ng to your custom portal requirement, does DFF/KFF requirement necessary for a custom application? They can be created as text fields and that information can be inserted/update d for DFF Attribute columns in Oracle EBS tables using APIs. APEX can use FND_USER for authentication when custom function is created. It is covered in article http://apps2fusion.com/at/kr/394-test-html-comments-section. For HRMS security profiles, you can create your database view using HRMS security profile tables to restrict users accessing data they are not supposed to view. Before considering APEX, comptemplate on
1. Whether your environment is already setup for OAF development? How much effort you can afford to architect or setting up environment for new technology like APEX?
2. How fast your application has to be delivered? APEX is faster than anything I've ever used for Oracle EBS.
3. How much traffic you are expecting for your application?
4. APEX heavily uses JavaScript for different events, Page Page Rendering etc., Does your client workstations enable JavaScript? What browsers they use?
5. Do you have resources with Java, J2EE and XML skillsets if you go with OAF? APEX developers can be more productive in lesser time with just SQL knowledge. Though JavaScript and CSS skillset would become necessary in building rich UI.
I would give APEX a short. You would definitely appreciate it in no time.
For thoughts on OAF vs ADF, Steven Chan's article http://blogs.oracle.com/stevenChan/2007/06/oa_framework_or_adf.html summaries sticking to OAF as long as you build applications for Oracle EBS.
Thanks
Ki shore
Everyth ing about APEX resides in database. You wouldn't have to deploy it on Oracle AS. But when you install APEX, you need to architect it to use HTTP Server or Embedded PL/SQL Gateway (resides in database). For calling apex application/pag e for Oracle EBS menu function, check this article http://www.oracle.com/technology/products/database/application_express/pdf/extend_oracle_applications_11i.pdf
Kishore
Thank s for the detailed information. So it means that the APEX will reside on the Oracle EBS database or will it reside on a separate database and access the Oracle EBS database through PL/SQL Functions?
Bas ically I do not wanted to get stuck on the middle of the development. So I'm trying to gather as much information as I could.
Regards
Raghu
Regards
Raghu
Where does APEX reside is part of Architecture consideration? You can choose either to
* Install APEX on same database as Oracle EBS and utilize Oracle Application Server as HTTP server for APEX.
* Install APEX on separate database than Oracle EBS. You may use same Oracle AS of EBS or separate AS for APEX HTTP Server. In this case, you would require to create database links in APEX database to access Oracle EBS database objects.
My article on database links will walk through the steps. http://apps2fusion.com/at/kr/393-how-to-access-oracle-apps-ebs-tablesviews-in-apex
Which approach to follow is merely a choice than a requirement. Discuss with your DBAs on your pros and cons of each approach.
Kish ore
We are planning to create an application in APEX. I need to know how do we go about creating a custom login.I have my Users and Passwords in a database table.I want to authenticate the users through this table instead of using the standard apex creadentials.
A ny help regarding this will be appreceiated.
~Thanks in advance
Priyank a
Plea se refer to article http://apps2fusion.com/at/kr/394-test-html-comments-section
If you are planning to default login page (101) and using authentication based on custom table, you can create custom authentication function as done in the article. In the function, validate username and password against your custom table.
If you want to create custom login page, then it should have username, password fields along with login button. Check default login page (101) to mimic its processes under login button.
Thanks
Kishor e
Can you please share your views or document, regarding to accessing Oracle APEX application (i.e. Developed form/report) from any Oracle EBS responsibility.
Also migration process for developed objects(i.e. Form/report) from one instance to another instance.
I look forward to hearing from you.
Many thanks,
Pankaj
Please check the section Linking directly to Apex Forms and Reports from Applications 11i Menus in below document.
http://www.oracle.com/technology/products/database/application_express/pdf/Extend_Oracle_Applications_11i.pdf
Kishore
While I am trying to Application Migration Project Details in
Type Select Column
only Access Type is is coming
no Form Type is Coming.
So How I could do it so that i will upload my oracle forms compiled xml file in project
WBR
M anoj
Tozi
I vae installed the Apex on XE database. Every thing is working fine. But prior to installation , when to goto database home page I was able to login using SYS and see the menu for managing datbase and its object. But after the apex installation I am only ble tro see the apex login page where I can only login with apex admin not from sys. Is there any way or url to see the database homepage as well as apex home page.
Thanks in advance
Upendra
Is apex better or easier than pl/sql web toolkit. Does not wizards sometime force limitation instead of writing code.
can i migrate a ppower builder app to APEX and integrate it with pl/sql web toolkit application.
A PEX sounds so easy that customers may not need a developer after that. Is not it bad for developer job.
thanks,
My requirement is to fetch the details from the different databases schemas and populate data in fron end.....Is it possible with APex
Please reply ASAP
thanks
k artheek
I m new to apex . I need some video tutorials for apex,from where I can get it.
If i need your help urgently how can i contact you ?? :)
start to end.
for a marvelous post and a all round entertaining blog (I
also love the theme/design), I don't have time to read through it all
at the minute but I have saved it and also included your
RSS feeds, so when I have time I will be back to read much more,
Please do keep up the superb work.
facts, that's really fine, keep up writing.
I like to write a little comment to support you.
I do not know who you are but definitely you're going to a famous blogger if you aren't
already ;) Cheers!
And i am glad reading your article. But wanna remark on few general things, The
web site style is ideal, the articles is really great : D.
Good job, cheers
And he actually bought me lunch because I stumbled
upon it for him... lol. So allow me to reword this....
Thank YOU for the meal!! But yeah, thanks for spending
some time to discuss this issue here on your blog.
I'll go ahead and bookmark your site to come back later on.
All the best
just like to say thank you for a marvelous post and a
all round interesting blog (I also love the theme/design), I don't have time to browse it all at the minute but I have saved it
and also included your RSS feeds, so when I have time I will be back to read a great deal more, Please do keep up the excellent job.
well glad to share my know-how here with colleagues.
Keep it up!
I am hoping to see the same high-grade blog posts by you later on as well.
In truth, your creative writing abilities has inspired me
to get my own site now ;)
however I had to ask. Does operating a well-establishe d website
such as yours take a massive amount work? I am
completely new to operating a blog however I do
write in my diary on a daily basis. I'd like to start
a blog so I can easily share my own experience and feelings online.
Please let me know if you have any recommendations or tips for new aspiring bloggers.
Appreciate it!
and reporting! Keep up the terrific works guys I've
included you guys to blogroll.
capable of in fact get helpful data regarding my study and knowledge.
website with us so I came to give it a look. I'm definitely enjoying the information.
I'm bookmarking and will be tweeting this to
my followers! Superb blog and terrific style and design.
and the viewers are actually sharing fastidious thoughts.
But, think about this, suppose you added a little information? I mean, I
don't wish to tell you how to run your blog, but suppose you added something to maybe grab a person's attention? I mean Introduction to Oracle Application Express is kinda plain. You might glance at Yahoo's home page and see how they create article titles to get
people to click. You might add a related video or a related
pic or two to grab people interested about everything've written. Just my opinion,
it could bring your posts a little bit more interesting.
It seems that you are doing any distinctive trick.
Moreover, The contents are masterwork. you have done a magnificent process
in this matter!
an established blog. Is it very difficult to set up
your own blog? I'm not very techincal but I can figure things out pretty fast.
I'm thinking about making my own but I'm not sure where to begin. Do
you have any tips or suggestions? Cheers
for? you make running a blog look easy. The whole glance of your web site is fantastic, as neatly as the content!
I have read stuff from. I appreciate you for posting when you have the opportunity,
Guess I'll just bookmark this site.
thats why i have read it completely
subject? I'd be very grateful if you could elaborate a little
bit more. Appreciate it!
I was wondering your situation; many of us have developed some nice procedures and we are looking
to swap solutions with other folks, why not shoot me an e-mail if interested.
It was helpful. Keep on posting!
how to make your site mobile friendly? My web site looks weird
when browsing from my iphone. I'm trying to find a theme or plugin that might be able to fix this
issue. If you have any suggestions, please share. Thanks!
made here.
your post's to be exactly what I'm looking for.
Would you offer guest writers to write content for you
personally? I wouldn't mind publishing a post or elaborating on some
of the subjects you write with regards to here. Again, awesome blog!
I bookmarked it.
and I'm inspired! Extremely useful info specifically the closing
part :) I handle such information a lot. I was seeking this certain info for a long time.
Thanks and good luck.
used to be good. I do not recognise who you are however definitely you're going to a famous blogger when you aren't already.
Cheers!
marvelous.
further news.
writing i thought i could also make comment due to this sensible
post.
it contains priceless Information.
up for the great information you have got here on this post.
I am coming back to your blog for more soon.
just shared this useful information with us. Please keep us informed
like this. Thanks for sharing.
efforts and I am waiting for your next write ups thank
you once again.
Many of them are rife with spelling issues and I in finding
it very bothersome to inform the reality however I will certainly come back again.
pace is incredible. It sort of feels that you're doing any unique
trick. Furthermore, The contents are masterwork. you have performed a great process in this topic!
Do you have any tips on how to get listed in Yahoo News?
I've been trying for a while but I never seem to get there!
Thank you
breakfast coming over again to read further news.
love to gain knowledge of more and more.
Did you make this website yourself or did you hire someone to do it for you?
Plz respond as I'm looking to create my own blog and would
like to find out where u got this from. thanks a lot
to be running off the screen in Ie. I'm not sure if this is a format issue or something to do with internet browser compatibility but I thought I'd post to let you know.
The design and style look great though! Hope you get the problem solved soon. Many thanks
before but after going through a few of the posts I realized it's new to me.
Anyhow, I'm certainly delighted I stumbled upon it and I'll be book-marking it
and checking back regularly!
how can i subscribe for a blog web site? The account aided me a applicable deal.
I were a little bit acquainted of this your broadcast
offered bright clear concept
about! Bookmarked. Kindly also seek advice from my
web site =). We may have a link exchange agreement among us
Is anyone else having this problem or is it a issue on my end?
I'll check back later and see if the problem
still exists.
new weblog or even a weblog from start to end.
use WYSIWYG editors or if you have to manually code
with HTML. I'm starting a blog soon but have no coding skills
so I wanted to get guidance from someone with experience.
Any help would be greatly appreciated!
off the screen in Chrome. I'm not sure if this is a formatting issue or something to do with browser compatibility
but I figured I'd post to let you know. The layout look great though!
Hope you get the problem solved soon. Kudos
a user in his/her mind that how a user can know it.
Therefore that's why this piece of writing is amazing.
Thanks!
something which I think I would never understand. It seems too complicated and very broad for me.
I am looking forward for your next post, I will try to get the hang of it!
What might you suggest about your put up that you simply made
some days in the past? Any certain?
browsing through some of the post I realized it's new to me.
Anyways, I'm definitely delighted I found it and I'll be bookmarking
and checking back frequently!
It's pretty worth enough for me. In my view, if all site owners
and bloggers made good content as you did, the web will be a lot
more useful than ever before.
The clarity for your put up is simply cool and that i could think you are knowledgeable in this subject.
Well with your permission allow me to clutch your feed to keep
up to date with imminent post. Thanks 1,000,000 and please
keep up the rewarding work.
details.
when i read this piece of writing i thought i could also create comment due to this brilliant article.
smartly as with the format to your blog. Is that this a paid topic or did
you customize it yourself? Either way stay up the excellent high quality writing,
it is uncommon to look a nice blog like this one today..
Do you have any tips on how to get listed in Yahoo News?
I've been trying for a while but I never seem to get there!
Appreciate it
but your sites really nice, keep it up! I'll go ahead and bookmark your website to come back down the road.
All the best
I will bookmark your blog and check again here regularly.
I am quite sure I will learn many new stuff right here!
Good luck for the next!
My last blog (wordpress) was hacked and I ended up losing many months of hard work
due to no backup. Do you have any solutions to stop
hackers?
significant infos. I'd like to peer extra posts like this .
the web page, that's what this web page is providing.
day along with a mug of coffee.
few of the pictures aren't loading properly.
I'm not sure why but I think its a linking issue. I've tried it in two different web browsers and both
show the same outcome.
with your views on this web site.
get helpful information regarding my study and knowledge.
A theme like yours with a few simple tweeks would really
make my blog stand out. Please let me know where you got
your design. Bless you
actual effort to generate a great article… but what can I say… I procrastinate a
whole lot and don't manage to get nearly anything done.
difficulty understand it, Thanks a lot.
amusement account it. Look advanced to far added agreeable from you!
However, how can we communicate?
Would you be interested in trading links or maybe guest writing a blog
article or vice-versa? My blog goes over a lot of the same topics as yours and I
feel we could greatly benefit from each other.
If you're interested feel free to send me an email.
I look forward to hearing from you! Awesome blog by the way!
and that is also happening with this post which I am reading here.
articles. I'll bookmark your weblog and take a look at again right here
regularly. I am rather sure I will learn lots of
new stuff right here! Best of luck for the next!
is also happening with this paragraph which I am reading at
this place.
Several of them are rife with spelling issues and
I in finding it very bothersome to tell the reality nevertheless I
will definitely come back again.
I've book-marked it for later!
Great site, stick with it!
Your web site provided us with valuable info to work on. You've
performed a formidable process and our entire community will probably be thankful
to you.
going to convey her.
Im really impressed by your blog.
Hey there, You have done a great job. I'll certainly digg it and individually suggest to my friends.
I am sure they will be benefited from this web site.
I mean, what you say is valuable and all. Nevertheless think
of if you added some great visuals or video clips to give your posts more,
"pop"! Your content is excellent but with images
and clips, this website could definitely be one of the greatest in its field.
Awesome blog!
I never found any interesting article like yours. It is pretty worth
enough for me. In my opinion, if all site
owners and bloggers made good content as you did, the web will be much more useful than ever
before.
It's a very easy on the eyes which makes it much more pleasant
for me to come here and visit more often. Did you hire
out a developer to create your theme? Exceptional
work!
Do you have any suggestions on how to get listed in Yahoo
News? I've been trying for a while but I never seem to get there!
Cheers
here, I am truly enjoying by these.
user in his/her mind that how a user can understand it.
Therefore that's why this article is great.
Thanks!
of this paragraph, while I am also eager of getting
familiarity.
RSS feed for comments to this post