Welcome to the Blackboard Learning System

New WebCT (DeadCT) logoFrom the September 2006 Edition of the Blackboard Academic Bulletin, Blackboard has officially announced the renaming of the Suite of WebCT products to become the Blackboard Learning System. They now have logos (see right).


This change was hinted at during the WebCT IMPACT! Conference

More specifically...

Before After
WebCT Vista Blackboard Learning System Vista Enterprise License
WebCT Campus Edition (Institution License) Blackboard Learning System CE Enterprise Ltd License
WebCT Campus Edition (Focus License) Blackboard Learning System CE Basic License

In addition a new product will be coming called Blackboard Learning System CE Enterprise License


As promised, these changes will take effect after upgrading to Service Pack 1 for Application Pack 1

More detailed information can be found here (PDF).

Definition: Gtextplanation

G text pla na tion [jee tekst spluh-ney-shuhn]
-noun

1. A Google Talk conversation with a friend or co-worker with the sole purpose of having to explain the custom status message you are currently using.

[Origin: 2006; Middle New Hampshire; from GTalk (Google Talk) + Text + Explanation]

Google Talk, GTalk, Gtextplanation

ApEx: Parent-Child Select lists and onChange Submitting

Within ApEx (Oracle Application Express), it is easy to create select lists that auto-populate based on the selection of a prior select list.

In this example, lets setup two select lists. The first will determine what populates the second, and the second submits with both entries. This could be good for selecting a record based on a two-key (or primary-secondary key) table/view. (You could use DML to then popualte a form given you know your record.)

Create the first select list as a select list with redirect. Setup the LOV with a SQL query to select the distinct possibilities of the primary key. Remember that LOV queries in ApEx require selecting two things...the select list display and its corresponding value. Here are the steps (with examples)

From a page definition screen

  1. Click the icon to add a new item
  2. Choose select list and click Next
  3. Choose Select List with Redirect and click Next
  4. Name your item and click next
  5. Add Null Text (like 'Select ID') and a null value (like -1)
  6. then make your LOV Query
  7. select distinct class.name n, class.id d
    from owner.class
    order by 1

  8. Provide a Label and click Next
  9. Click the Create button

Create the second select list as a a select list with submit. Again, create it as a LOV with a SQL query. This time, the SQL query will query for all records given the first key is satisfied (value retireved form the first menu. Again, we'll branch to the submit.

  1. Click the icon to add a new item
  2. Choose select list and click Next
  3. Choose Select List with Submit and click Next
  4. Name your item and click next
  5. Add Null Text (like 'Select Name') and a null value (like -1)
  6. then make your LOV Query
  7. select chair.name n, chair.id d
    from owner.chair, owner.class
    where class.id = chair.class_id
    and chair.id = :P2_CLASSNAME
    order by 1

  8. Provide a Label and click Next
  9. Click the Create button

Finally, create the branch. Select which page you wish to go to, passing the appropriate values.

  1. Click the icon to add a new branch
  2. Choose On Submit: Before Computation (Before Computation, Validation, and Processing)
  3. Choose Branch to Page or URL
  4. Select recipient page
  5. Set these Items (values from the two pull down lists will go to two fields (that can be hidden if desired) on the page you are branching to
  6. Click Next
  7. Click Create Branch

That's the bare bones process. Since the form will only submit onChange, you may wish to have a submit button as well in case you wish to edit the same item twice in a row (session will keep the pulldown entries as they were).

Getting off the ApEx island: Database links

Much of the beauty of ApEx is its ability to take non-Oracle data and create secure applications based on that newly secured data. However, for as good the training/tutorial material is (including 'The Book'), no mention was ever made on how to link to Oracle databases not located within the ApEx world, leaving me to worry that ApEx (and more importantly, its data) was on an island.

This, thanks to Laurianne, was solved with only a little digging. You can link to other oracle databases by creating a database link. To do so:

From the Home page

  1. Click the SQL Workshop icon
  2. Click the Object Browser icon
  3. Click the Create button
  4. Choose database link
  5. Give it a name, schema, password,hostname.IP,port, and SID
  6. Click the create button

It can then be accessible to you in your everyday SQL commands by appending '@linkname' to the tables you are selecting from

For example, if you created a database link in ApEx called personLink, and it linked to your oracle table (or view) called 'personnel' table you could incorporate it into ApEx by typing

select * from personnel@personLink
where ...

...and ApEx just got a whole lot better fo me!

ApEx, application express, oracle application express, html-db, database links

Great WebCT CE6 SQL commands

Returns: All courses a student is enrolled in, their status and instructor
Input: webct_id

select p.webct_id,lc.id,lc.name,lc.description,lc.source_id,rd.name,m.status_flag,m.delete_status,p2.webct_id
from webct.learning_context lc, webct.PERSON p, webct.member m, webct.role r, webct.role_definition rd,
webct.learning_context lc2, webct.PERSON p2, webct.member m2, webct.role r2, webct.role_definition rd2
where lc.id = m.learning_context_id
and m.person_id = p.id
and r.member_id = m.id
and rd.id = r.role_definition_id
and p.webct_id = 'username'
and lc.id = lc2.id
and lc2.id = m2.learning_context_id
and m2.person_id = p2.id
and r2.member_id = m2.id
and rd2.id = r2.role_definition_id
and rd2.name = 'SINS'
order by lc.source_id;

-----------------------------------------------------------

Returns: All enrollments in a class for all roles
Input: source_id

select p.webct_id,lc.id,lc.name,lc.description,lc.source_id,rd.name,m.status_flag,m.delete_status,p2.webct_id
from webct.learning_context lc, webct.PERSON p, webct.member m, webct.role r, webct.role_definition rd,
webct.learning_context lc2, webct.PERSON p2, webct.member m2, webct.role r2, webct.role_definition rd2
where m.person_id = p.id
and lc.id = m.learning_context_id
and r.member_id = m.id
and rd.id = r.role_definition_id
and lc.source_id = 'source_id'
and lc.id = lc2.id
and lc2.id = m2.learning_context_id
and m2.person_id = p2.id
and r2.member_id = m2.id
and rd2.id = r2.role_definition_id
and rd2.name = 'SINS'
and p.webct_id not like '%webct_demo%'
order by rd.name, p.webct_id;

-----------------------------------------------------------

Returns: All enrollments in a class for all roles
Input: course name (AB-1234-01); term code

select p.webct_id,lc.id,lc.name,lc.description,lc.source_id,rd.name,m.status_flag,m.delete_status,p2.webct_id
from webct.learning_context lc, webct.PERSON p, webct.member m, webct.role r, webct.role_definition rd,
webct.learning_context lc2, webct.PERSON p2, webct.member m2, webct.role r2, webct.role_definition rd2
where m.person_id = p.id
and lc.id = m.learning_context_id
and r.member_id = m.id
and rd.id = r.role_definition_id
and lc.name like 'coursename%'
and lc.source_id LIKE '%termcode'
and lc.id = lc2.id
and lc2.id = m2.learning_context_id
and m2.person_id = p2.id
and r2.member_id = m2.id
and rd2.id = r2.role_definition_id
and rd2.name = 'SINS'
and p.webct_id not like '%webct_demo%'
order by rd.name, p.webct_id;

WebCT, Campus Edition 6, CE 6, SQL, enrollments, classes, databases

Google Talk emoticons (stand alone application)

As has been prevoiusly noted, our colleagues have become increasingly reliant on Google Talk as a means of not only direct communication, but also indirect communication.

However, one thing that is also fun is playing with the emoticons Google Talk provides. Apparently, the talk feature with the GMail browser interface has a large set, but the stand-alone application (even the newest version) only appears to support a subset of these emoticons.

Whenever I or a friend of mine notice a new emoticon, it often spawns a flurry of emoticon attemps -- some of which work, and some that do not. Here's what I have discovered. Any combination of one item from each of the three columns should yield a highlightable face. (so far 36 combinations)

Acceptable components
eyes noses mouths
: (none) )
; - (
B |
P
D
O (Shift-O)

I expect that I have missed some and that subsequent upgrades that will bring more -- especially since the other GTalk version has more, so please add real (and appropriate) ones, and I will update the table. Also, none of the symbols translate.

Google, Google Talk, GTalk, emoticons, stand-alone

Helpful vi commands

These commands helped us split a large file into two smaller components.

To create a split screen:
:split filename (the second screen will fill with either a new file or existing file, depending on whether or not the filename exists or not)

To find out what line you are on:
Ctrl-g

To perform a multi-line cut to that line:
:1 (gets you to the beginning of the cut-worthy text
Ndd (N=number of lines you wish to cut)

To switch between the windows:
Ctrl-ww

To past the multi-line cut:
p

vi, vim, find line, multi-line cut, split screen

WebCT CE 6 Service Pack Upgrades!!! Items to consider

A quick warning for anyone who is currently using the Luminis Message Broker as a conduit for getting your Banner SIS data into your CE6 instance...jot down your LMB info as you will not have it after your Service Pack (both 2 and 3) upgrades.

The settings are found on (log in as your institutional administrator):
Administration Tab
Utilities Sub-Tab
Settings Link
SCT Integration - Luminis Message Broker Link

The fields that will clear

  • LMB Server Name
  • LMB user name
  • LMB password

Likely you have these fields memorized, but you should look at them after your service pack upgrades to ensure they are set accurately and that you are still connected.

8/9/06 SP3 upgrade also changed/reset perm's on siapi.sh, a powerful command used oftentimes by more than root (which is who likely owns it in your instance). If you were used to having non-root access to the siapi.sh command, then someone with root access will need to set it back.

Also, if you are intregrated via the Luminis Message Broker (LMB), then likely your GlcId and username/password fields were cleared or altered at the serveradmin level.

WebCT, Campus Edition 6, CE 6, Service Pack, SP, upgrades, Luminis Message Broker, LMB, issues, GlcId

Book: Easy Oracle HTML-DB (Cunningham & Crotty)

HTMLDBBOOKBeing new to ApEx, and to a lesser extent, databases in general, my bud Jon lent me a copy of the above book. We decided to take it for a spin, and our first task was to actually get an instance of ApEx up and running. This is what much of chapters 1 and 2 do, and according to our resident Seux-DBA Scott, it is well worth it. It was installed quickly, and an odd bug forced a patch to be installed (tracked down quickly onlne) and has since worked like a dream.

The next several chapters effectively take you through the process of creating workspaces and accounts, and then takes you into right into application building. The book is accompanied with an Online "Code Depot," which while it has the scripts needed to create some rudimentary tables in which to work, somtimes needed a little tweaking on copy/paste and most sql blocks of code were in a larger file instead of being in individual files as you might think as you go through.

In these chapters you do some interesting work, and I hope to benefit down the road by being able to either look at the book as a reference or literally at the work I did, but I have to admit the book might have led me through a little too directly. This is not necessarily a criticism of the book, but that my learning style is such that I often found myself just going through the steps...time will tell how much I really learned.

There is a clear demarkation at about chapter 10 where the book goes from directing you to being much more broad and nebulous -- talking more vaguely about what can be done...I liken it to the baby bird that just got shoved out of the nest. For this reason, I did not continue too deeply into the second half of the book as I felt I now need real and institutionally relevant work. I therefore reserve the right to add to this if my work finds me rushing back ot the book in the future.

All in all I strongly recommend this book for anyone considering starting with this product regardles of prior experience. It serves as an installation guide, tutorial, and reference. It may have its quirks, but all books do, and that should not stop you.

ApEx, application express, oracle application express, html-db, book, easy oracle html-db, cunningham, crotty, burleson

Deep-dish Chicago-style pizza in New Hampshire?

Quality ZaNot quite, but a while back the Food Network program Unwrapped featured regional foods that could be shipped to just about anywhere. One of these such locations was Chicago, and they featured deep-dish pizzas from Lou Malnati's Pizzeria (Availble at http://www.tastesofchicago.com/).

Being from Chicago myself, I know Lou Malnati's pizza and have eaten in a couple of the restaurants.

Aside: I am actually from the suburb of Elgin, but when you live as far away as New Hamspshire as I do, it is easier to stretch the truth, but a helpful hint -- do not tell a real Chicago native that you are from Chicago when you are really from the 'burbs!

The fact that Lou Malnati's classic Chicago-style deep-dish pizzas can be purchased and delivered anywhere in the United States, and I live 900+ miles from the Windy City, only made my experience with this program inevitable. And God bless my Mom, who finally made it happen!

I write this for my few friends up here in the Northeast who have never had the pleasure of tasting the true Chicago-style deep-dish pizza. You can not let your life slip by without doing this at least once!

Of course by now you know that I whole-heartedly enjoyed this pizza. However, I will temper this with two facts. 1) If you live in Chicago, go to the restaurants (Gino's, Lou's, whatever) -- it will be better than these. 2) It's pricey. 2 pizzas go for about $50; 4 for $70, and yoou will likely only feed 2-3 people per pizza.

But when you are as far away as I am, it is definitely a special treat. There are two things that make the Chicago-style deep-dish pizza unique -- the massive, crispy, buttery crust, and the upside-down-tomatoes-over-the-cheese arrangement. These pizzas certainly deliver on both counts -- with instructions that are very straight-forward. The sausage are better than the cheese, and these are the two options you have.

I should mention that this service also ships Carson's ribs and Eli's Cheesecake, among others, but the pizza is the prize.

Enjoy!