Friday, June 23, 2006

Back in Belgium...

Before we took the flight back home, we went to the Washington (National) Zoo. I took a lot of pictures, especially the apes I liked most! ;-) You find the last pictures I took in the USA here.

The Washington Dulles airport is so big, but we finally managed to get in the plane. I'm currently writing this story on seat 34B in a Boeing 767.
When you think about it, it's now 3 o'clock in the night/morning in Belgium. I suppose I'll be tired when I'll arrive!
Although I'll really miss the States, I'm happy to see my girlfriend again. I had a nice time in the States, when she stayed alone in Belgium and prepared our marriage...

To end my trip, these're my last words: "Thanks ODTUG! DC, I'll always keep you in my heart!"


Thursday, June 22, 2006

ODTUG - P5: APEX, SQL Developer, Winning presentations

I regret it's already Wednesday! The last day at ODTUG!
It was my first time I visited the US and also my first time at this conference. I must say I really liked to be in the States. If I describe my first impressions of the US; nice and friendly people, everything is thought in *big* terms, 1/2l drinks refillable, too good and too big portions of food, I love DC.

I also want to make my complements to the board of ODTUG! This seminar was excellent; a lot of high level presentations, friendly and helpful people, a conference for "the best" of the world...

Here're the latest seminars I followed:

1. Use Google Maps in APEX by Michael Snyder
We got a detailed explanation how you can integrate Google Maps with APEX. I found it a good and clear presentation. You can find more information (whitepaper, example) about the application here.

2. SQL Developer by Sue Harper
Sue gave us a quick overview of SQL Developer and also showed the new features. She also told that Oracle will keep investing in this product and that they really listen to us. The more we say we would like to have in SQL Developer, the more it will be likely this feature will become available. Especially the plugins are useful, as this means that you can do almost everything with the product, just add another plugin with the feature you want. The only problem today is that there'ren't a lot of plugins (yet).
A next release of SQL Developer (1.1) will become available last half of CY 2006. Version 1.2 is foreseen for first half of CY 2007.
These're the features we may expect in v1.1:
- Increase basic functionality
- Update object browsing and navigation
- Increase search capabilities
- Increase SQL and PL/SQL editing support
- Add file based PL/SQL support
Features for later versions:
- Visual Query builder
- Version Control support
- Increased Explain plan support
- Developer related tuning capabilities
- Visual Data modeling

3. Giving winning presentations by Rich Niemiec
This was the second presentation I followed of Rich and it was for the second time excellent!
Here're some of the things he said:
- Great presentations are painful to build
- Care about your audience
- Use visuals to get them to remember
- Teach to multiple levels and repeat things
- You'll do great things if you care!

4. You can't do THAT with a browser! by Scott Spendolini
Scott gave us some demo's of following cool things you can add to your APEX application:
- Ajax Select List
- Ajax Memory List
- Enhanced HTML Editor; integrating the FCK Editor
- PDF Report
Ajax is really cool, it gives you a better UI experience and extend the HTML language greatly, but there're also some drawbacks: the development time is higher, more code, so more bugs and compatibility issues with different browsers and more security issues.
How you can integrate the FCK Editor can be found in the APEX forum, Guido Zeelen created a step-for-step guide.
The PDF Report that Scott showed us, was made with PL/PDF. He also told us that XML Publisher can be a good choice too. More information about both methods to generate PDF documents can you easily find on the net.

5. Integrating Oracle APEX with eBusiness Suite by Scott Spendolini
For this session I was the ambassador. This means that you introduce the speaker, supply the hands-outs, get the feedback forms and see that everything runs smooth.
I was proud I could introduce Scott. I was lucky to follow his presentations and had several chats with him, so I could know him a bit better. He's a great guy!

6. An extra session - Panel to discuss APEX by Michael Hichwa, Oracle APEX VP and Scott Spendolini
The Vice President of Oracle, Michael Hichwa, gave us more information about the new features in v2.2 and v3.0 which would normally become available in Feb. 2007.
Some of the features we may expect:
- a page export functionality (cross workspace)
- possibility to cach pages
- integration with XML Publisher
- drag-and-drop feature
- better clientside validations
- more integration with AJAX.

I suppose I don't need to tell you anymore I really adore APEX. Although I work already for several years with APEX, I hope I can spend more time with the tool. I didn't have any professional project so far which was *pure* APEX. I use APEX a lot in my freetime and I promote it with every client I come with.

I also hope to share more of my knowledge in the APEX community. Currently I'm speaking with the APEX development team to improve the WC 2006 application and put it as a sample application on Source Forge. The board of ODTUG also asked me if I was interested to give a presentation next year and write something for the ODTUG magazine. Next year is still far away, but I'll do my best to create something and hopefully it will be good enough to be accepted!

I'm happy I followed ODTUG. I knew a lot people from the internet (forums, blog, mail). When you've the chance to meet them in real life is great! Our (IT) world is really small, so you should cherish your network!

So, back to that day. After saying everybody goodbye we went to ChinaTown, but it wasn't that impressive as I imagined... we also had some food and drinks in an English pub. There I saw a parasol of Belgium, even stronger, from Leuven, the place where I live! The world is small...

The pictures of the day you can find here.

Tuesday, June 20, 2006

ODTUG - P4: PL/SQL Testing, Web development

I'll not blog a lot of technical things from the sessions I followed on Tuesday, only an overview. My good friends of AMIS will post some info about these sessions.

After being for four days in the States (Washington) I'm a bit tired. The other days I woke up at 6 o'clock after having a bad sleep... but today I slept till 7.50! Nevertheless I was more tired than before, so no fitness today.

After having my breakfast and being on the photo with the Dorsey brothers (Paul and Roger, great people btw) I followed following sessions:

1. Six Steps to Unit Testing Happiness by Steven Feuerstein
This was an excellent presentation of the PL/SQL guru. He stressed that testing should be done in the very beginning. You should write your test plan and tests before you do the actual coding.
He showed the latest tool he created to test a PL/SQL application, Qute, now bought by Quest Software, but his version is also available free of charge! If you like more an Open Source flavor of testing software, you can look at utPLSQL (also written by S.F. some years ago).
Six simple steps to unit testing:
1. Describe fully the required functionality of the program.
2. Elaborate the test cases for the program
3. Define the header of the program
4. Build test code that implements all test cases
5. Write the program unit
6. Test, debug, fix, test, debug, fix, ...

2. No, Carry, We're STILL Not Tuning the Right Stuff by Mogens Norgaard akà Moens Longballs Nogood
This presentation will be "bloged" by Alex of AMIS. Mogens talked about the evolution of tuning. The whole presentation was blended with humor. You just need to know him, or seen him once to understand what a great guy he it! Well done Mr. Nogood!

3. Oracle's Advanced Analytics in the Database by Bob Haverstrob
Data Mining... analytical functions... it was all about that. I don't have real experience in the Data Mining area, so I didn't understand everything he was doing. This presentation wasn't my favorite one, I suppose there'll be somebody else blogging about it.

4. Web Services Reality Check: A Practical Guide to using Webservices today by Tugdual Grall
This presentation gave an overview of the evolution of the technology behind webservices. He also explained the difference in SOAP and REST. A demo with JDeveloper showed that it isn't that difficult to create or use a webservice.

5. Quick Web Development Using JDeveloper 10g by Matt Topper
I read the notes of this presentation which I found really interesting. I only went for 1 min. to this presentation as I was really tired from all the information of the other sessions, the match England-Sweden was busy too. ;-) Next to that I'll probably won't use JDev in the near future. But I was interested to see the notes to have a thought about the evolution in this area, as I made an application with JDev 4 years ago...

6. Building Robust Applications in a Database-Centric Way by Toon Koppelaars
Again an excellent presentation! My congratulations Toon!
I completely agree with Toon to put as much as possible in the database. If this is the case, all the latest technologies are just UI's (User Interfaces). If you use .NET, PHP, JAVA or APEX, it doesn't really matter as by every means you connect to the database, the logic to get the required data is the same (for ex. via an API). All business and data logic are in the database and reachable via an API, so if next year a XYZ technology comes out, it's easy to use it.
A lot of people try to create an application that is database independent. But that's just the biggest mistake they can make, as the database is the more stable and robust part of the whole. A database changes not that frequently, as you compare it with the latest technology. At the moment AJAX is hot, maybe in 3 years it will be PSV ;-) Oracle will always be the same...

In the evening we had a nice party with some great food and nice music. The Capitol Steps were the surprise of the evening. They gave a show, including singing, dancing, but most of the time making (political) jokes. There was one sketch with a geek... really funny, even as a not-American I laught a lot!

The pictures of the day you can find here.

ODTUG - P3: APEX Q&A, 10g Security & Tuning

The real start shot is given at ODTUG today (Monday). A lot of interesting parallel sessions during the day... it's a pity that I *must* choose!

My first session: Oracle Application Express (HTMLDB) Panel (Moderator: Scott Spendolini)

This was an interactive session about APEX. We could ask questions to a team of four persons: Scott Spendolini, Michael Snyder, Greg Jarmiolowski and Patrick Cimolini. They all had different kind of experience using APEX. Most experienced, of course, was Scott.

The audience was very lively! Here're some of the questions which get fired:

1. Is APEX a toy or is it a real development environment?
They all agreed that APEX is a real development environment and serious business. From little to big application. Scott Spendolini: "The creation of Metalink in APEX says it all. Oracle would never create something so big if it would disappear..."
Michael Snyder from CASEtech also explained what they have been doing in their firm. They redeveloped all their forms applications in APEX.

2. How much effort does it take to learn APEX?
Patrick Cimonline from Cayman Islands Government told about what he did with his team (some COBOL developers). In no time they worked with APEX! You can read more about this on Scott's Blog.
Scott told a good one too! The record to build an application is 15 minutes! Basically an Oracle sales consultant went to a customer, were he took a specific Excel of them and put that in APEX. The client immediate said, Ok, let it there - it was production -.

3. A comment from the audience that some "Error Messages" in APEX aren't yet translated in other languages.
To make the APEX dev team aware of it, we all should log about it in Metalink, the more the better!

4. APEX in production? And what are the security issues?
Take attention:
- to not display debug information
- to lock development down for developers - in prod - (= do a "run-only" deployment)
- http before firewall, db after
- redirect admin login to workspace screen
- secure session state (url)
- Use best practices
Depends on application; secure or not, internal or not
VPD, SSL, ...

5. Are there some best practices for APEX?
Here're some things you can look at:
- business rules in packages instead of anonymous rules
- simple validation via APEX, complex validation through packages
- use of updateable views
- bp of forms can be used for APEX
The data model is really important. APEX is about 90% preparation and 10% painting!!

6. How to work with Reports in APEX?
There's a whitepaper available of Scott (see OTN).

7. What about a version control system in/together with APEX?
You can do an export of your application and put it into cvs.
Scott makes an export every day of his schema/workspace via an automatic script (example how to do it on OTN and APEX studio, search for window job). Next to that, as everything is in the database you can use your backup strategy for ex. once a week taking a cold backup.

8. On the ODTUG website how does the download of the docs work.
Store the blob's in your own schema/tables and use the standard functionality of APEX.

9. What about PDF's in APEX?
Some possibilities:
- PL/PDF: good; cheap, pl/sql no Oracle AS needed, but contra; pl/sql api, a lot of code, no gui to develop the layout...
- Reports,
- 3rd Party reporting tool. I use for ex. CutePdf
- XML Publisher, see speech of Mark Rittman on ODTUG
- It's foreseen that Oracle will include something to create pdf's in the 3.0 release.

10. What about really big projects... Do you use a methodology? or Way of working?
Apparently at Oracle they had some discussions about including a sort of cvs... but they decided not to do it as it would be too complicated.
You should have good understandings with each other and communicate. In APEX you can use for ex. Page locks to prevent working on the same pages.
In version 2.2 or 3.0 there'll probably be some more features (cross application page export etc.)

11. What about the hype round Fusion?
The choice between using Java or PL/SQL depends on your inhouse talent. Webservices for ex. are also possible with pl/sql.

12. % of using PL/SQL packages, standard APEX, custom features (javascript, css)?
Depends on project and customer.

13. XML? XPath - not out of the box
This should be improved, but it's already possible to do it yourself. There 'll be a talk about this later on at ODTUG. (Google MAP - xml + javascript)

14. Interface improvements?
in 3.0 AJAX (drop down column etc.)

15. Why APEX?
In the news was something about a stolen laptop. In the Access app were some important personal information (of more than 10.000 persons!). This shows again that you should use something else for critical applications! I'm saying... APEX for ever!! But hey, I'm completely Oracle minded ;-)

I also followed some other sessions...

There was the scary presentation of Donald Burleson about Oracle 10g Privacy Security Auditing Techniques. Don explained very well, with lots of tonation, what could go wrong... The part, I found was missing, were the solutions to handle all these threads!
I suppose it's in one of his books (he gave some away for free, but I didn't have the luck to get one).

I also followed the presentation of Rich Niemiec about Tuning Oracle 9i/10g using Statspack! I found it a really good presentation: clear, nice overview, good slides, lots of detail in the hands-outs, digestible information, evolution of B/ESTAT - Statspack - AWR - OEM & ADDM etc.

But I'm more a DBA (or something between a DBA and a DEV, I call myself a DBA4DEV), maybe for some developers it was too complicated, but I find that they should know this too!

The last presentation of today for me was Application Development Tuning Best Practices.
Personally I didn't like this presentation, as I don't believe that you've some "best practices" in app dev tuning which you should follow every time! It depends on what you're doing...
Maybe I'm a scientist... there're some good articles on the site of Tom Kyte about "rules of thumb" etc.

I found it a beautiful day with lots of interesting things to learn!
The pictures of Monday are here.

Monday, June 19, 2006

ODTUG - P2: AM4DP, Reception, (SS+ME+SF)

What I did on Sunday...

Before noon, I did some XML hands-on sessions. Just like the 10g Dev NF session of the day before, it was too basic for me. But it was a fine refresh of the things I already knew.

At noon I tried to watch the Brazil game, but in the US they had some satellite problems, so it was a bit a pain! The burger I eat was way too much! These portions in America are so *big*!!

In the afternoon I saw a really interesting and high-level presentation by Toon Koppelaars. The title says it all "Applied Mathematics for Database Professionals/Practitioners (AM4DP)".
It was a high level session, braked in three parts:

1. The Maths: Mathematical concepts; do you recognize the symbols on the picture?
This was about defining the logic (predicates and proposition, logical connectives, quantification and rewrite rules) and setting the theory (predicative specification, (set) Functions, Powerset and Generalized product)

"Logic is an analytical theory of the art of reasoning whose goal is to systematize and codify principles of valid reasoning whose goal is to systematize and codify principles of valid reasoning. It has emerged from a study of the use of language in argument and persuasion and it is based in the identification and examination of those parts of language which are essential for these purposes." -- Robert Stoll, Set Theory And Logic, Dover Pub., 1963

2. The Application: Apply concepts to the data model (including integrity rules)
Set theory and logic can be used to model databases. Modeling databases = modeling data integrity constraints (attribute values sets, tuple constraints, table constraints, database constraints and transaction constraints)

3. The Real World: implement the data model and guidelines for a strategy
So how did Oracle implement all this? Does this ring a bell: tables, check constraints, primary, unique and foreign keys, ...

I learned that I must think about a lot more than I did before when I'm creating a database model!
Database modeling = constraint modeling: it's all applied logic and theory (non-ambiguous) and constraint implementation!

After the BI summit, where Mark Blog'd about, we had a welcome reception! Although we only got two drink coupons, it was fun ;-) You could easily speak with all the famous "Oracle" people. I really liked the chats with Scott S., Steven F., Mogens N., Roger D. and the Danish and AMIS guys.

In real world we (Scott Spendolini, me, Steven Feuerstein) look better than on the (original) picture ;-) It's my camera that's not doing it's job very well, so I made it b/w.

The pictures of Sunday you find here.

Sunday, June 18, 2006

ODTUG - P1: Visiting DC

Today was the first "real" day. With the time difference I had difficulties to sleep, so at 6 a.m. I went for some fitness. I met Paul Dorsey from Dulcian. He was the main speaker at ODTUG today. I was a bit embarrassed I didn't know him right away. He 's all into development and he wrote some books.

This day you could choose between a symposium about web architecture (different talks about soa, etc.) and some hands-on labs.
After having a breakfast I choose to have some hands-on training "Oracle 10g New Development Features". For me it was just a refresh of what I already knew. We saw some new features of SQL, PL/SQL and some other not related stuff.

At the end of the day I saw the guys of AMIS arriving in the hotel. After having a little chat with them I decided to investigate the center of Washington D.C. - some sight seeing if you want -
Here're some pictures of the things I visited.

I didn't include comments on the pictures, if you've some questions on them, just put a comment here... You'll see some pictures of the hotel, conference, my dinner and some remarkable things (for me, being a Belgian).

Saturday, June 17, 2006

ODTUG - P0: Flight to Washington

After an eight hour flight we (Borkur, a colleague and friend of me, and I) finally arrived at the Washington D.C. airport. After another two hours security by-pass and looking for our luggage we got a cap to the hotel where ODTUG will start.

The flight 951 (Brussels - Washington DC) with United was fine, although after a few hours it got bored. I just read some books and watched some parts of the movies United was playing. That was something new for me; a chair with a screen in... I could even adapt the volume, channel and what I wanted to see! The food was correct.

It's nice warm in Washington, after a little meal we went for a walk. There were a lot of people walking, some were running... I must admit that Washington D.C. is a living city, just like were I come from (Leuven, although it's not as famous as DC).

Oh yes, there's a 6h time difference in Washington compared to Belgium and Germany (World Cup!). At the moment it's 21h20 in Washington, but it's already late night in Belgium (3h20). That means I'm already awake for some time ;-)

Tomorrow ODTUG starts, I'll try to post some notes on my blog.
Pictures you can find here.

Thursday, June 15, 2006

Source of WC 2006 APEX app

I created a new zip file with the latest release of the World Cup 2006 application (v2).
You can download it here. I also submitted it to APEX Studio.

Please, don't abuse your insights, now you have the source code, to hack the online betting! If you see some security flaws, please tell me!
I made this source available to show you how I made the application... You'll see that there's a lot more into the application than you see online. Certain pages are only accessible via the admin user.

You're free to adapt it... I hope you sent me also the improved version.
If you'll use it in a production environment, I hope I get some money too! ;-)

Feel free to post your comments.

Tuesday, June 13, 2006

APEX and Full Exp/Imp DB

Today I had to create a new database, exactly as an other one.
APEX was installed on that (source) database, so I was curious to see if it would work on the target as well... and yes it almost did work!

To reproduce what I did:
1. Take a full export of source database
2. Create new database and do a full import into that database
3. Recompile all invalid objects (in $ORACLE_HOME/rdbms/admin - SQL>@utlrp)
4. Test APEX (after changing/adding DAD if necessary)

My APEX didn't work correctly... I saw that there were some invalidated packages.
To correct APEX, these are the grants the invalid packages needed (grant by sys):
>grant execute on SYS.DBMS_LOCK to flows_020000;
>grant execute on SYS.DBMS_FLASHBACK to flows_020000;
>grant execute on SYS.DBMS_SYS_SQL to flows_020000;

I also needed to change the password of my workspace users (admin, ...) to be able to login again.
You can also create a new admin user by following script:

    alter user FLOWS_020000 account unlock; (as system)
    -> connect to the FLOWS_020000 user and run this procedure
    p_user_name => 'admin2',
    p_email_address => '',
    p_web_password => 'admin2') ;
    alter user FLOWS_020000 account lock; (as system)

Now everything is up-and-running again! APEX is great!

Saturday, June 10, 2006

WC2006 - First games played

Everything went fine yesterday evening...
After putting in the score, the rank changed like foreseen, although I had hoped for a better position ;-)

I just got the latest stats of Jes; the visitors/hits of the WC2006 app are going up again.

John Scott (Jes) published a nice article about the "Tom Kyte" effect we got and how we made our application more scalable.

Here're some other links to articles writing about the APEX WC2006 application:

Friday, June 09, 2006

Only 30 minutes left!

The WC2006 APEX application has a lot of success! We had a hugh increase in visitors just after the post on Tom Kyte's Blog!

At the moment 310 people are registered...

Following new features are included in the WC2006 application:

  • view the "play time" in the prefered (your) time zone
  • latest news
  • pictures for stadia
  • mail function, your rank will be mailed to you if that flag is enabled in your profile
  • you can predict the minute of the first goal scored in the finale, this is done to define the winner in case of people having the same score (in the rank)
  • some other minor changes
I wish you all good luck with your bets!!

Sunday, June 04, 2006

Update WC 2006 APEX app

After the success of the first version of the World Cup 2006 APEX application, I got infected by the "APEX-bug" (= couldn't stop using APEX anymore) and the last couple of days I have tried to put some more APEX features in the WC 2006 application.

The following features are now included:

  • use of webservices to get information about the World Cup
  • custom login mechanism (based on the login of the APEX forum application)
  • authentication and authorization schemes
  • custom themes/templates/lay-out
  • use of translations (only country names)
  • next to that the application is now hosted on a production environment, thanks to Jes of ShellPrompt
  • there're also new graphics included (so don't worry about copyright), thanks to Kristel of G&G Design
But that's not all!! The application allows betting! And you can win prizes with it!
So check it out now! The new application can be found at