Saturday, June 26, 2010

ODTUG 2010 - Back in DC after 4 years

In 2006 I went to ODTUG Kaleidoscope for the first time... it was also in Washington DC and in the exact same hotel! It was also my first visit to the US, so it's a memory I'll never forget.
I already blogged in 2006, so it's nice to see what I had to say at that time ;-) (and the World Cup was also going on!)

Now we are four years later and I'm back where my "Oracle Conferences journey" started.


Time goes so fast... four years ago I was a visitor/participant. Now I've a booth with my company and am presenting almost every day...

WC2010 - DGTournament - Next Round

So far the World Cup 2010 was a bit unpredicted. Teams like France and Italy I expected to go through, but they didn't. That it's difficult to predict the right autcome of a football game is reflected in the stats at DG Tournament.

The next round is starting now, so don't forget to do your bets again!

Wednesday, June 23, 2010

APEX 4.0 goes production

It's finally there... the day we all waited for :-)

You can download APEX 4.0 production release at this very moment.

Friday, June 18, 2010

Sites up again

We are back in business :-)

We also upgraded our systems, so it should run even smoother...

My sites temporarily down

Just a quick note that I'm aware of the problems with my sites e.g. dgtournament.com, apexblogs.info, ...

It's a server issue and we are looking into it.
It should be working again soon.

Thanks for your patience.

Wednesday, June 16, 2010

APEX 4.0 Websheets - Behind the scenes

Tomorrow during my presentation about Team Collaboration in APEX 4.0, I'll talk about Websheets. While I was going over my presentation again I came accross two things I thought are interesting.

The first; if you want to search in SQL Workshop for the Websheets table, you want to type APEX$ as they all start with that. However if you type APEX$ in the search it doesn't find the tables. To find the tables you have to escape the $ sign, so your search becomes "APEX\$", then SQL Workshop finds the tables.

Secondly, when you have a closer look at the columns, it's commenly known there are 50 date, 50 numbers and 50 varchar2 columns. But I didn't notice before, there is also a Geocode column in the definition of the table. The last weeks I'm involved in a project that uses Geocodes, so I find it interesting to see there's already something in Websheets for that...

Monday, June 14, 2010

CD APEX 4.0: Feedback feature and Team Development

This blog post is part of a series posting "Count Down to APEX 4.0 Public Release" (click on link to view history).

In the previous posts we imported our application (and database objects) in APEX 4.0, ran the Advisor to check if the application didn't have any errors and upgraded some components like charts, validations etc. to their new equivalent in APEX 4.0.

We still have some javascript errors in our application and we should now open page by page and see if we have any issues or if we can make better use of the APEX 4.0 features.

We could take a piece of paper to write down all the changes we want to make to the app or use tools like Jira, Fogbugz and many others. Instead I'm going to use the Feedback features of APEX 4.0 in combination with Team Development. This allows me to have a structured plan of the changes I want to make.

We'll create a new (special) page, called the Feedback Page.

We can change the attributes of this page, but we'll just go with the defaults for now.
That's all you have to do to enable feedback for your application. Now people can tell you what they like, don't like and want improved... all that information will appear in the Team Development section of APEX 4.0.

The wizard created a new page and an entry in the navigation bar (which you find in Shared Components). So you can manually do these steps too.


As I already included the Navigation Bar in my custom look and feel of DG Tournament, I literally didn't have to do anything else. I just got the Feedback button (link), which if you click on you get a popup to enter feedback information.

As a default you get the above items on your page, but you can add that like you wish.
The Feedback Type can be off: General comment, Enhancement Request or Bug.

If you look at the Page Process of the Feedback Page you will see the apex_util.submit_feedback package is used to get the data into Team Development.


The most right-side button is Feedback. When we click on that we see a dashboard of all the feedback for the applications in this workspace.


As you can see I entered 3 feedback comments, but I didn't treat the comments yet.
I can now convert the feedback into a bug, a to do entry or a feature.

We'll click on the Feedback tab and see all of the feedback. You have different views of this feedback, you can see open, closed or all and can see the feedback in Extended or Basic modus.


From this screen you click on a Feedback entry


You update the feedback entry and can change the status etc.

That is how I would go forward. I would let people test our migrated application and ask to enter their comments as Feedback. I, as a developer, would do the same. It gives me (and project manager and other developers for larger projects) and the customers insight in what has to be done and we can properly plan.

I didn't touch the Milestones, Features, To-Dos and Bugs, but it's worth to have a look at that aswell. It's all in Team Development.

Saturday, June 12, 2010

WC2010 - DGTournament - hot

Looking at the statistics you just know something happened yesterday... Yes! The World Cup 2010 started... it looks like people are competitive and care about their ranking ;-)


Three people betted the correct score of the first two games!
This is the top 3 so far at DG Tournament, all with equal points:
- Marco Gralike
- Szabolcs Horai
-
Thomas Tomm

Concerning my bets... I almost had it right, but France didn't score and Mexico scored against... so 0 points. Hopefully my next bets are a bit better :-)

Friday, June 11, 2010

Benelux APEX 4.0 day - 20 places left

Just a quick note to say there are 20 places left for the Benelux APEX 4.0 day on Thursday.
Great speakers, great topics, great audience... and a full day about APEX 4.0!

WC2010 - DGTournament - Prices to win

I've the pleasure to announce we have some prices to win after all ;-)
You find the prices on the Rankings page of DG Tournament.


Today the World Cup 2010 starts, so if you didn't bet yet, you have a few hours left!
Registering on DG Tournament stays open (it has been open for over the last 4 years), so if you missed the first matches, you can still try to catch up with the others.

At the end I'm happy I enabled the World Cup 2010 football on DG Tournament, as it's way more exciting now ;-) I even bought the EA Sports game of the World Cup 2010! Not sure when I've time to play, but I already played it once in the weekend, and it's a very nice game.


Good luck to everybody! And that the best may win!

Thursday, June 10, 2010

CD APEX 4.0: Utilities - Upgrade Application

This blog post is part of a series posting "Count Down to APEX 4.0 Public Release" (click on link to view history).

In the previous posts we imported our application (and database objects) in APEX 4.0 and ran the Advisor to check if the application didn't have any errors.

As I said yesterday, we are going again to Utilities, but this time we click on the "Upgrade Application" button (second left from the bottom).


The following screen displays the available upgrade types along with the number of objects that can be upgraded. This is the fastest way to make use of the latest features of APEX 4.0 and do a bulk upgrade of the different components (new features).

E.g.
- you can replace the old date picker with a new one
- if a value can't be null, that can be specified native in APEX 4.0, so we won't need to add an extra validation in (like we had to do in APEX 3.x). That is what they mean with the first (Update Value Required Item attribute to Yes)
- enabling a lot of new features for the Interactive Report
- upgrade all your charts (based on Anychart 3) to the new charting engine in APEX 4.0 (Anychart 5)
- ...

So we click on the candidate objects count to review the candidates. First I clicked on the Date Picker upgrade link

We select the ones we want (check box in front of the records) and click the Upgrade button.
It will come back if it successfully upgraded the components.


We can now do the same for the other types. So click on the Upgrade Application Summary link in the breadcrumb (or you can select another type from the drop down), you'll see that the ones that are already upgraded won't appear anymore.

The only thing I would be aware of, is if you used a workaround against a problem (e.g. the Lov's null), you need to make sure you undo that before/after you migrate.

Finish them all and you are ready for the day again... you see the updated app in APEX 4.0 here.

Yesterday Roel knew the answer what my topic of today was going to be... you have an idea what I'll do next? You have more options now, no? ;-)

Almost time for the World Cup - don't forget your bets in DGT

Only one day left and the World Cup 2010 football is kicking off!

Currently 259 people are trying to predict the games on DG Tournament.
You can still play with us, but you have to be quick ;-)

Some people said they couldn't bet on the games. In 99% of the cases this is due to the fact the World Cup 2010 is not selected in their profile. So login and go to Your Profile and make sure that in "Your tournament subscriptions" you selected "World Cup 2010", then click on the Apply Changes or Update Subscription button.


Good luck... and have fun!

Wednesday, June 09, 2010

CD APEX 4.0: Verifying imported application

This blog post is part of a series posting "Count Down to APEX 4.0 Public Release" (click on link to view history).

Yesterday we imported our application in APEX 4.0. The import went fine, but we had some errors with the script in Supporting Objects.

So today I looked at the errors and fixed them were appropriate (mostly data issues). I used the SQL Data Workshop in APEX 4.0 to load the data manually. One issue I found was to import blob content. As you can upload your own picture in DG Tournament, this gets stored into a blob column. Also the image for the teams are stored in the database. But SQL Workshop or SQL Developer are not able to generate a script for that, so you will have to use SQL Loader or a custom PL/SQL procedure to get them loaded. I didn't do that yet.


Now that I'm happy with the back end, the first thing I want to try is run the application and see if it works... Click here and see how the DG Tournament application looks like in APEX 4.0.

So not bad at all... but not completely perfect either. E.g. we get a javascript error on the first page. Looking into that error is for another day.

Now I'm going to use a new feature of APEX 4.0: the Advisor. The Advisor will look at my application and tell me what is not correct. Cool he!?

In the navigation bar we click on the Application Utilities icon


We get to a page with a lot of nice utilities. It's not my goal to explain all of them in this blog post, but I'll use one, the Advisor. So we click on the Advisor button (bottom left).

We want to leave the default checks like that and click on the Perform button. As you can see the Advisor will check for Errors, Performance, Security etc.

We'll keep that running for some time. Depending the size of the application it can take seconds or minutes. Finally there are the results... It looks like I've some things to look at!


In APEX 4.0 I'm using the Advisor constantly. Whenever I finish a page I let the Advisor run for that page. Whenever I want to do a release I run the Advisor for the full application.
It would be nice if we could get this Advisor to run every night and get the outcome by mail the next morning. I didn't look yet if there's an API available to do this now, but a few people, including myself, mentioned this at EA1.

Back to the app, now it's time to verify the recommendations of the Advisor and adapt accordingly.

Tomorrow I'll use another exciting feature which you also find in Application Utilities (screenshot on this page)! Anybody wants to do a guess which feature I'll use?

Tuesday, June 08, 2010

DG Tournament update (4): Interactive Calendar

I just added the posibility to view the calendar of the World Cup 2010 in different ways.


I created an Interactive Report, so you are able to do anything you want.
E.g. you can search for your favorite team, see the games per group etc.

I try to listen to what you are all saying ... I think I implemented all features now which where asked before, so if you have new ones ... ;-)

One thing on my todo is to get the Map working again and representing up-to-date data. A couple of years ago I integrated Google Map v2, but today there's already a v3, so I would like to get that in there instead.

CD APEX 4.0: Import APEX 3.2 app in 4.0

This blog post is part of a series posting "Count Down to APEX 4.0 Public Release" (click on link to view history).

Yesterday we took an export of our application and included the script to create the database objects and data in the Supporting Objects of APEX.

So the only thing we need to do now is importing our application in APEX 4.0.
In the Application Builder click on the Import button and select the exported file.

The file will import into the APEX Repository.

Next we have to install the application, so click the Next button.
Select the parsing schema and how you want the Application Id assigned to it. Finally click the Install button which will install the application into your workspace.


When the installation of the application is finished, the wizard won't stop yet, as we have Supporting Objects included in the export file. So the wizards asks if you want to install these Supporting Objects as well. As we need the database objects and some data we click Next and make sure the Yes option is selected.

We get a confirmation message which asks if we are sure we want to go further with the install, so click Install.

The wizard comes back with the result of the install of the Supporting Objects.

In my case I got a few errors. When you click on the Install Summary button you can review the outcome.


Most of the errors were data related. It's a pity SQL Developer wasn't able to produce me a "correct" sql which just works.

In this case I prefer to build a new script, delete my objects in APEX 4.0 and rerun the script for creating the database objects. You don't need to install the full application again, as that was successfully installed. You can just upload your new file to SQL Workshop and run it from there.

To get data or database object from one database to another I prefer the methods in this order
  1. datapump when possible (in my case I can't use it as I don't have direct access to the database of apex.oracle.com)
  2. separate scripts for database objects and data
  3. depending the size of the script upload to Supporting Objects or run manually
    (for really big data sets you can't use APEX to upload your data)
So whenever you finished with the database objects and loading the data we can go further with real APEX 4.0 features... but that is for tomorrow.

Monday, June 07, 2010

CD APEX 4.0: Prepare application for upgrade

This blog post is part of a series posting "Count Down to APEX 4.0 Public Release".

So let's start with preparing our application to move to APEX 4.0. As you probably will create a test instance with APEX 4.0 where you try your production application before "going live", I'm going to do the same. I'll use apex.oracle.com as my test instance of APEX 4.0.

The first thing I have to do, is to package my current application (APEX 3.2), so I can quickly go from my current server and install it on the APEX 4.0 test server.

I'll make use of the Supporting Objects feature in APEX to include all my database objects and data with my application (just like you have with a packaged application).

But before I can use it, I need a sql script with all my database objects and data. To get such a script I'll use SQL Developer (or you might already have the scripts in Subversion or so).

In SQL Developer I go to Tools - Export Database and I'll follow the wizard to include all my objects.


The final step will show you an overview of the objects it will include in the script.
Click the Finish button and wait for the script to generate.


Next you can upload this script into the Supporting Objects section of APEX.


In the Installation Scripts section you should see something like this

Next you can take an export of your application.

Save the file somewhere because tomorrow we are going to import it into APEX 4.0.
So stay tuned...

Count down to APEX 4 Public Release

As the APEX Development team took the last step (upgrade of apex.oracle.com) in the production release of APEX 4.0, we can start to count down for the public release!

So I made a bet with myself... Every day till the public release of APEX 4.0 I'll blog about another new feature!

The way I'll do it, is simple: I'll migrate the DG Tournament application to APEX 4.0. DG Tournament is an existing application I originally wrote in 2006 and upgraded along the years with the new versions of APEX.

What do I hope to show you?
  • how to move from APEX 3.2 to APEX 4.0
  • show new ways of doing your development
  • rewrite existing (custom) functionalities by making use of build-in APEX 4.0 features
  • incorporate new features
I've no idea how much longer the public release will take, but there are over 170 new features in APEX 4.0, so I should be fine on that side. But maybe they will be really fast in shipping this release and I won't have enough time to get the app migrated... Time will tell...

Sunday, June 06, 2010

DG Tournament update (3): Groups and Prices

I changed the Profile page in DG Tournament, so you can add a Group against your name.


I also changed the Bet Rank page so the group, location and country is included now.
You can also search on your group or break on it with the interactive rank page.


If you want to give something to the winner, you can sponsor the bets and in exchange you get your logo/name/link on the rankings page. It's all for fun, but with some prices we boost the adrenaline even a bit more ;-)

If you didn't do your bets yet, do it today as there are only 5 days left! 170 people already did...