Skip to main content

Latest UI for Oracle Dev Gym

As some of you may know, we've been working on a new "skin" for plsqlchallenge.oracle.com, one that is more modern and responsive, and that makes it easier to quickly take a quiz.

The Oracle Dev Gym is still in an "early adaptor" state; you can take quizzes, including our weekly competitive quizzes, there. You can set up workouts and so forth. But we are not yet offering it as a day-by-day alternative to the "traditional" PL/SQL Challenge.

Here's a quick update:

1. The URL devgym.oracle.com is now configured, so you can more easily go directly to the Oracle Dev Gym (instead of going "through" the PL/SQL Challenge.

2. We've come up with a simpler, more immediate design for our home page. Rather than having to choose "Take a Quiz" from the home page, and then go through another layer of selection from there, the home page now offers immediate access to quizzes.

The previous home page:



The new home page:



To take a competitive, weekly quiz, click on Tournaments. 

Please give it a try and let us know what you think. 


Comments

  1. Hello Steven,

    As you know, I am very conservative in what relates to user interfaces, so, my first quick question is:

    Where is the quiz Library page ?

    This is THE page that I am using most over my many years in the PL/SQL Challenge, and I guess that this is probably the same for many players.

    I think that this page, with all its current functionality, should remain by all means as a separate entry on the home page menu.

    Taking quizzes by a chosen (or known) topic is nice for those who prepare for taking exams, but not exactly for those who want to train for the PL/SQL Challenge competitions themselves, where NOT knowing the topic before taking a quiz is the whole point.

    Thanks a lot & Best Regards,
    Iudith

    ReplyDelete
    Replies
    1. Iudith, I am a little confused. On the library page, you certainly do see the topic. Please give me a list of the ways that you use the library page. Part of our shift in the Dev Gym is to not make it so easy for people to find quizzes they've never taken and look it over BEFORE taking it. Seems to make sense to us that you take the quiz and then you can go exploring in all of its details.

      Delete
  2. Workouts gave me a privilege error

    ReplyDelete
  3. Hello Steven,

    the hardest thing was to find the results for quizzes other than those from last week (recently closed).
    "Gym history" might be an intuitive first step but it took a while before I found that I have to click on the circle in "Quiz Stats".
    This reminds me of my employer when new terminals for time registrations were introduced. No explanation how they should be used: "We thought people would simple try it out" :-)
    Later I found that your Help page has an entry that showed how to do it.

    At the "Take a Quiz" page some tiles show percentages like 10975% or 50700% in green with a check symbol. Does this mean that I have been 50700% correct :-)

    Regards
    Marcus

    ReplyDelete
    Replies
    1. Thanks, Marcus. We will take a look at making that information more accessible.

      As for 50700% correct - we are just trying to encourage people to take more quizzes. "Wow! Great job! 50700% You are a genius!"

      Or maybe it's a bug. Yep, I think it's a bug. Thanks!

      Delete
  4. Hello Steven,
    I am using the Library page to browse over ALL the quizzes
    of a chosen topic, displayed by their ending date.
    Also, I see immediately the quizzes that have new comments
    added.

    This is very convenient and easy to use.

    I think that playing quizzes and browsing through the quizzes
    thesaurus (yes, I am sure that it IS a thesaurus !)
    should be two different and separate activities.

    Looking at played quizzes, even without effectively playing
    is another very valuable way of learning.

    So, I would definitely NOT go for "hiding" the entire quiz list
    behind a random quiz being played ...

    In summary, if you want the menu to be very "action-focused",
    I would include entries like:
    - Library ( for the quiz library / learning )
    - Training ( for playing random quizzes )
    - Competing ( for playing the competitions )
    - Ranking ( for the different ranking reports )

    These are maybe the chronological phases that a new visitor
    of the site will follow.

    Regarding the quiz page itself:

    I just tried to play one or two quizzes and while playing
    I had a feeling of "losing context".
    Yes, it is true that we can open the question in a separate window, which is also available today, but probably rarely used.
    With the new interface, this will be A MUST, otherwise
    you should scroll too far away upwards for regaining the context,
    because of the "too much white space" spread between the choices.

    Ideally, while playing, I would have liked to see the quiz introduction on the left side and the choices on the right side,
    so that to see both in parallel, all the time.

    Regarding the quiz summary page:

    Though all the information does exist, now it is mandatory
    to press the different buttons at the top for seeing the different parts.
    I think that, just like today, seeing the whole information on a single page is more convenient, maybe in addition to navigating through the buttons to the different parts.

    Regarding the percentages that Markus mentioned:

    Seeing those huge numbers followed by a percent sign (%)
    did not make any sense for me, so I treated from the beginning
    as either a bug or a feature that I will probably never use ...

    As the old wolf that I am, and after so many years of playing,
    believe me, if you want to encourage people to take more quizzes,
    the best incentive is the Ranking list of the different competitions...


    As an overall impression, synthesized in a single word:

    The current site gives the feeling of a "site for techies",
    while the new one gives the feeling of a "site for fun".

    Well, everyone can call me anti-modern, I am old enough for
    that being ok with me :)

    I know that Oracle likes "red everywhere", but,
    as a personal preference, I like our current colors more.

    Maybe there is some psychology involved, which I cannot really explain.


    Thanks a lot & Best Regards,
    Iudith

    ReplyDelete
    Replies
    1. Thanks for your usual in depth, well thought out response, Iudith.

      One quick response to:

      "I think that, just like today, seeing the whole information on a single page is more convenient, maybe in addition to navigating through the buttons to the different parts."

      Easy enough. You will soon see "Show All" as the first tab - that's the full page view.

      I will go over your other ideas and see how to best proceed. Thanks!

      Delete
  5. Perhaps you can add a check that at least one answer is marked correct OR "No choice is correct" is chosen.

    And I would prefer to open each quiz in a new page when I'm at Tournaments. You can't do this because it's not a real link but a javascript:apex.submit

    ReplyDelete
    Replies
    1. Marcus, concerning: "Perhaps you can add a check that at least one answer is marked correct OR "No choice is correct" is chosen." I thought we DID do that. The submit answer button is disabled until something is checked. What am I missing?

      In terms of new page, I will check my JS pro on that one. :-)

      Delete
    2. Yesterday I checked one answer and unchecked it later. Seems that this bypasses the check.

      Delete
    3. I am completely unable to reproduce this. Perhaps next time you are taking a quiz, you could record a short video or gif showing the behavior, and send it to me? steven dot feuerstein at oracle dot com.

      Delete

Post a Comment

Popular posts from this blog

Running out of PGA memory with MULTISET ops? Watch out for DISTINCT!

A PL/SQL team inside Oracle made excellent use of nested tables and MULTISET operators in SQL, blending data in tables with procedurally-generated datasets (nested tables).  All was going well when they hit the dreaded: ORA-04030: out of process memory when trying to allocate 2032 bytes  They asked for my help.  The error occurred on this SELECT: SELECT  *    FROM header_tab trx    WHERE (generated_ntab1 SUBMULTISET OF trx.column_ntab)       AND ((trx.column_ntab MULTISET             EXCEPT DISTINCT generated_ntab2) IS EMPTY) The problem is clearly related to the use of those nested tables. Now, there was clearly sufficient PGA for the nested tables themselves. So the problem was in executing the MULTISET-related functionality. We talked for a bit about dropping the use of nested tables and instead doing everything in SQL, to avoid the PGA error. That would, however require lots of wo...

How to Pick the Limit for BULK COLLECT

This question rolled into my In Box today: In the case of using the LIMIT clause of BULK COLLECT, how do we decide what value to use for the limit? First I give the quick answer, then I provide support for that answer Quick Answer Start with 100. That's the default (and only) setting for cursor FOR loop optimizations. It offers a sweet spot of improved performance over row-by-row and not-too-much PGA memory consumption. Test to see if that's fast enough (likely will be for many cases). If not, try higher values until you reach the performance level you need - and you are not consuming too much PGA memory.  Don't hard-code the limit value: make it a parameter to your subprogram or a constant in a package specification. Don't put anything in the collection you don't need. [from Giulio Dottorini] Remember: each session that runs this code will use that amount of memory. Background When you use BULK COLLECT, you retrieve more than row with each fetch, ...

PL/SQL 101: Three ways to get error message/stack in PL/SQL

The PL/SQL Challenge quiz for 10 September - 16 September 2016 explored the different ways you can obtain the error message / stack in PL/SQL. Note: an error stack is a sequence of multiple error messages that can occur when an exception is propagated and re-raised through several layers of nested blocks. The three ways are: SQLERRM - The original, traditional and (oddly enough) not currently recommended function to get the current error message. Not recommended because the next two options avoid a problem which you are unlikely  to run into: the error stack will be truncated at 512 bytes, and you might lose some error information. DBMS_UTILITY.FORMAT_ERROR_STACK - Returns the error message / stack, and will not truncate your string like SQLERRM will. UTL_CALL_STACK API - Added in Oracle Database 12c, the UTL_CALL_STACK package offers a comprehensive API into the execution call stack, the error stack and the error backtrace.  Note: check out this LiveSQL script if...