I had two sessions this Oracle World , well I had a session and I helped out on another.
Sessions (Helper)
The session I helped out with a bit was Mark Drake's Oracle Application Express and Oracle XML Database: A Match Made in the Database. This session had it's beginning's way back at Web2.0 Expo where Mark and I shared a demo booth. XMLDB has a standard sample/demo called XFILES which is a simple yet full featured file management system using all XMLDB features. But it requires using a java server and is kinda slow , well I think it's slow but I might be biased.
So I was like hey Mark! you should build this in APEX since we are both built in features of the database. And lo and behold the his session was born. I helped on and off with building the demo application , and it was a big learning experience, both with the features XMLDB provides as well as were APEX does not leverage them well, something we will be working on improving.
Mark at OOW asked if I could sit in so if there was any specific APEX questions, and hey I'm a people person so of course I said yes. The session was very well attended with many people in the audience already familiar with APEX and/or XMLDB. Mark covered the basics of XMLDB and I quickly went over APEX basic's and then it was all demo.
I really think the application demo and explanation of how things were created was a hit, it showed the power of XMLDB as well as how APEX can leverage it's features directly out of the databasey. Just the number of hands that came up with people saying things like
- Hey I just built that a month a go and yours is cooler.
- Hey I need to build that in the near future and these are great ideas.
- Hey can I have that application?
shows that this session hit a sweet spot. A couple things I got from this is that people like that APEX can directly leverage built in database features and want more of it easier, and secondly I need to really make time to clean up that XFILES application so it can be a packaged application.
Sessions (Mine)
My session was titled Web 2.0 using Oracle Application Express and was pretty well attended , especially since I was up against two other APEX sessions at the end of the day. I like my sessions slide light , demo heavy and with audience participation . Luckily I didn't rewrite my whole demo and slides the day my session as I'm known to do though I was editing right up till the end.
My presentation had two parts.
A technical part that expected people to know or at least have knowledge of APEX and it's built in javascript framework already. During this part of the session I went over features in APEX that were used to build Interactive reports. It goes something like this, in Interactive Reports we have this feature, and this is how it was built
...code ensues...
I like this format since it shows at a low level way how to build features but leaves it up to the developers how they want to leverage it.
I also stress using the proper debugging tools when building client side features , specifically Firefox with Firebug , though I did point out that newer versions of other browsers are also getting these features. Basically if your using a browser that doesn't give you proper error message IE 6/7 among others DO NOT use it for development, your making it harder on yourself and wasting time.
You download my application from here to mess around with.
The second part of my presentation is the real fun part where I get to talk about upcoming features in APEX. So after showing my safe harbor slide , the one that keeps me out of trouble with the boss's , I was able to go over features that we are working on for future release's.
Improvements to the base functions $x() $v() $s() which are the base functions when dealing with page items.
Namespacing of our javascript libraries so that we play nice with other third party javascript libraries.
The use of chaining in our javascript library so that javascript is more compact and reusable.
And finally and my favorite!
Though I've hinted to people off and on for awhile we will be including in the base jQuery library in our next release! It's all signed of and everything and I'm busy rewriting our code to leverage jQuery underneath, one of the reason's it's been tough for me to get these posts out.
In my next post I will go over how the inclusion of jQuery effect's APEX. It's both a bigger and yet smaller change than you might think
So I'm going through my example application updating different examples new APEX 3.1 features, as I work through them I'll be posting examples of changes.
So the first one are the changes to the basic example for illustrating Ajax using an OnDemand Process.
Javascript
One of the biggest changes , and one of my favorites , is that in older versions of APEX to pass a value to on OnDemand Process in most cases you would need a application level item that was only used for that purpose , this is no longer needed.
This new functionality is illustrated on line 4 where the global variables x01 gets the value of the textarea to post to the process. There are 10 global variables x01 - x10 , and a few others, so you can pass around quite a few values at once, more in later post.
There are a couple calls to $v('ITEM_NAME') which given an item name returns you the value of the given item.
And $s('ITEM_NAME','Some Value') which given an item name and a value set the value of that item.
* These both work with most the basic item types and will be extended support all item types.
OnDemand Process (SimpleExample)
On line 4 of the OnDemand Process is take getting the value of the global variable. The global variables are only available for that Ajax call and do not get saved into session state.
Simple changes to be sure but they allow for much more generic javascript and easier integration across different application's
And then one of the boss's asked to see it after reading about it, and thought it was pretty nice and said I should post it. I'm a little rough around the edges with the whole vidcasting/vblogging thing , nothing a little practice won't fix, but I had alot of fun doing it and am planning on more of them in the future.
So here it is in all it's grainy Google video goodness.
If you want to watch the higher definition version you can download from here but on Windows I can only get it to run using vlc , my favorite cross platform video player.
I did the whole thing on Linux and the programs I used, while lacking a little polish, were very easy to use.
recordmydesktop
ffmpeg
pitivi
And finally as an OOW note , John and Dimitri , I like my beers tall , cold and plentiful :)
#1 - The first rule of Tag Cloud is, you do not talk about Tag Cloud.
0 comments Posted by Carl Backstrom at 1:11 PMActually the first rule is probably require user login.
So I've been watching the usage on my tagging functionality, and it's not quite what I was hoping for. While I know people were applying and adding tags there was significant amount of people that were applying and adding tags just any old page, probably just to see the nifty AJAX effect I'm sure ;).
So I'm turning off the user initiated tagging, and going with an administrative tagging setup, which is basically just me adding them. I'm actually going to replace my breadcrumbs with this since I think it will be more useful.
User entered tags would work great if I required login to my application and then people could tag pages with personal tags that only they could see. And then the tag package could create tag weights based on that compared against the administered tags.
I will be allowing for voting on tags to change their weights on page but you can only vote on tags the administrator has entered.
Anyway I should have PL/SQL package that can be plugged into any APEX application to provide tagging functionality next week. I'm thinking I might make a package that contains the tagging/rating/comments functionality into ones package , configurable of course.
If course there is always my regular 40 hour to think of but this is much funner ;)
Well I haven't bought into the whole Web 2.0 thing, I'm not talking about the technology part of course. I think AJAX and new RIA features are here to stay. They are excellent tools in the toolkit. I'm talking about the social networking part, I've signed up on services like facebook and such but mostly I have people that are already my friends and I have IM or email contact already, and really don't see the need to add random people but hey maybe it's just me, plus some of the hype is really starting to remind me of Web 1.0.
BUT!! I am sold on tagging, I think it's one of the most important ways of dealing with the flood of data I collect, I'm an avid del.icio.us user now , thanks Tyler , and want to tag everything. I want private tags for me and public tags for outside consumption,
I want to tag my dog , good dog or bad dog, I want to tag my nephew mohawk or sans mohawk.
Plus and most importantly I'm really pushing to include tagging into this.
So in the spirit of this , and as a simple testbed, I built a very simple tagging mechanism for the examples on my sample application.
I'm still working all the kinks especially with how I deal with weighting of tags but so far I'm pretty happy with the result.
When I'm finished this will make an nice addition to the examples on my application and hopefully help people find things they need easier. I think it's much more useful than the breadcrumbs which I will probably be removing soon.
Since I don't require logins you could game the system by voting for tags multiple times or even put in ....... lets just say nonsensical tags, but I'll be administering it since I want it to be useful people.
Well have at it.
http://apex.oracle.com/pls/otn/f?p=11933:136