Creature of Habit

I can be pretty scatterbrained. Time has a way of whizzing past when engaged in some activity. Creating and adhering to a schedule makes being where I need to be easier and less stressful.

Pre-smartphone, I set Google calendar to send me SMS notifications to give me a heads up about meetings or appointments. If I my dream job allowed me to just sit in front of my computer all day might, I would not have needed this. Unfortunately, at the time back-to-back meetings were fairly common for me. Once I got my first smartphone, the amount of notifications in my calendar bloomed. My life is a world of notifications about what to do when.

Most importantly I try to organize my environment such that I will have what I need when I need it. For example, I have five gym bags with a change of clothes, so I can toss several in the car and have them when I go to the gym after work.

Failing to have a bag probably means I will skip the gym. Going home to change means I get distracted. Plus, I am not too keen on the gym location closer to home than halfway between home and work.  I dither which I want to visit and probably end up getting an early dinner instead.

I use a similar strategy for everything else.

  • Bills I need to pay sit in a spot so I walk past them when I enter, leave, or go to do something.
  • Things I need to take to work are placed in front of the door, so I cannot open it without moving them.
  • Keys and wallet and work laptop stay in specific places.
  • Coats go next to the door.
  • The next load of laundry I need to do gets stacked in the room. I have hamper bags for each load so I toss them into right place at the time.

All this organization is because I know left to my own habits there would be chaos. My personality leads to entropy, so I have to work at creating systems to establish order in my life. The better I allow the systems to work, the fewer the stumbles and gotchas. That said, the order often falls apart into disarray, so the systems have to be simple enough to restore.


Tracking Specific File Use

CE/Vista Reports and Tracking displays summaries of activity. If an instructor seeks to know who clicked on a specific file, then Reports and Tracking falls down on the job.

Course Instructor can produce a report of the raw tracking data. However, access to the role falls under the Administration tab so people running the system need to make a user specifically to enroll themselves at the course level to get the reports. (Annoying.)

Instead the administrators for my campuses pass up to my level of support requests to generate reports. For providing these I have SQL to produce a report. This example is for users who clicked on a specific file. Anything in bold is what the SQL composer will need to alter.

set lines 200 pages 9999
col user format a20
col action format a32
col pagename format a80

clear breaks computes
break on User skip 1
compute count of Action on User

select tp.user_name "User", "Action",
      to_char(tua.event_time,'MM/DD/RR HH24:MI:SS') "Time",
      NVL(,'--') "PageName"
  from trk_person tp, trk_action ta, trk_user_action tua,
      trk_page tpg, learning_context lc
  where = tua.trk_person_id
    and = tua.trk_action_id
    and tua.trk_page_id = (+)
    and tua.trk_learning_context_id =
    and = 1234567890
    and like '%filename.doc%'
  order by tp.user_name,tua.event_time


  • User aka tp.user_name – This is the student’s account.
  • Action aka – This is an artifact of the original script. You might drop it as meaningless from this report.
  • Time aka tua.event_time – Day and time the action took place.
  • PageName aka – Confirmation of the file name. Keep if using like in a select on this.


I use the learning context id ( aka because in my multi-institution environment, the same name of a section could be used in many places. This id ensures I data from multiple sections.

The tricky part is identifying the file name. HTML files generally will show up as the name of in the title tag (hope the instructor never updates it). Office documents generally will show as the file name. Here are a couple approaches to determining how to use (aka

  1. Look at the file in the user interface.
  2. Run the report without limiting results to any Identify out of the results the name you wish to search and use: = ‘page name

Most tracked actions do have a page name. However, some actions do not. This SQL is designed to print a “–” in those cases.

TED Talk: Dangers of Serotonin

He’s associated damage to the temporal lobe with psychopathic killers. The epigenetic effects, brain damage, and environments appears to be an MAOA variant on the X chromosome with experiencing violence around 3 years old.

Males only get the X from their mother. Men are much more likely. Girls get one X from mother and one from father which dilutes. Bathing the brain in serotonin too early makes the brain insensitive to the calming serotonin later.


TED Jim Fallon: Exploring the mind of a killer

The LMS is So Web 1.5

The claims Blackboard’s Learn 9 provides a Web 2.0 experience has bothered me for a while now. First, it was the drag-n-drop. While cool, that isn’t Web 2.0 in my opinion. A little more on track is the claim:

The all-new Web 2.0 experience in Release 9 makes it easy to meaningfully combine information from different sources. The Challenges Are Real, But So Are the Solutions

Integrating with a social network like Facebook is a start, but again, in my opinion, it still isn’t Web 2.0.

So, what is Web 2.0? I did some digging. I think the Tim O’Reilly approach meets my expectation best. He quotes Eric Schmidt’s “Don’t fight the Internet.” as well as provide his own more in depth.

Web 2.0 is the business revolution in the computer industry caused by the move to the Internet as platform, and an attempt to understand the rules for success on that new platform. Chief among those rules is this: Build applications that harness network effects to get better the more people use them. (This is what I’ve elsewhere called “harnessing collective intelligence.”) Web 2.0 Compact Definition: Trying Again

Users expect a site on the Internet to meet their needs or they eventually move on to a site which does. There are so many web sites out there providing equivalent features to those commonly found in an LMS. There is the danger of irrelevance. This is why every LMS company or group strives to continually add new features (aka innovating). The bar continually gets raised, so LMS software continually needs to meet this higher standard.

Tim additionally provides some other rules which you can see at the above link.

When an LMS reachs the point where the resources of the Internet helps people learn, then it will be a Web 2.0. As long as an expert or leader imparts knowledge on students, the LMS is still something different than Web 2.0. Sorry…. The irony? This is exactly what Michael Wesch and PLE advocates preach.

Preserving CE/Vista Settings

I’ve been asked for notes about this a few times. So here’s a blog post instead.

A coworker is working on scripting our updates. We lost the Luminis Message Adapter settings in applying the patch to the environment we provide to our clients. Fortunately, those settings are maintained by us not our clients. So I pushed those settings back very easily. Unfortunately, it points to the need to capture the settings for the potential purpose of restoring the settings.

In Oracle databases, this is pretty easy. As the schema user, run the following. It does some intentional things. First, we have multiple institutions, so the breaks make identifying which institution easier. Second, the same label for multiple forms gets confusing, so I am sorting by setting description id under the theory these ids are generated at the time the page is created, so the same tools will float together. (The last modified time stamp is probably unnecessary, I used it in an earlier version and left it just in case Vista for whatever reason added a new setting for the same label instead of modifying the existing one.) This can be spooled both before and after the upgrade. Use diff or WinMerge to compare the versions. Anything lost from the before version should be evaluated for inclusion adding back to the settings.

col lc_name format a50
col setting_value format a80
col label format a80
col lock format 999
col child format 999

clear breaks computes
break on lc_name skip 1

select lc_name, settings_description.label, settings.setting_value,
settings.locked_flag “lock”, settings_description.inheritable_flag “child”
from learning_context, settings, settings_description
where settings.settings_desc_id =
and settings.learning_context_id =
and learning_context.type_code in (‘Server’,’Domain’, ‘Institution’,’Campus’,’Group’)
order by, settings.settings_desc_id

An example of the multiple forms issue is external authentication. CE/Vista provides an LDAP (A) and an LDAP (B). The settings_description.label for both is contextmgt.settings.ldap.source. The for both is source. It looks like each of the two identical labels has a different settings.settings_desc_id value depending on whether it is A or B. To me it seems lame to use the same label for two different ids.

The most vulnerable parts of the application to lose settings during an update are the System Integration settings. A mismatched Jar on a node will wipe all the settings associated with that Jar.

However, I can see using this to capture the settings as a backup just in case an administrator or instructor wipes out settings by mistake. Yes, this is scope creep. Create a backup of the settings table to actually preserve the settings.

create table settings_backup_pre_sp2hf1 tablespace WEBCT_DATA as select * from settings;

Contexts: As a server admin, I maintain certain settings and push those down. Each client has control over some other settings and may push those down from the institution context. Maybe some are creating division and group admins? Maybe some instructors are changing things at the course or section levels. I may end up capturing everything?

Restoration: The whole purpose of preserving the settings is to restore them later. There are a couple methods in theory:

  1. Providing the settings to a human to re-enter. The labelling issue makes me question the sanity of trying to explain this to someone.
  2. Update the database directly would just need ensure it is the right location. Maybe dump out the settings in the format of an update command with labels on each to explain the context? Ugh.

If settings were not so easily lost, then this would be so much easier.

View: Another table of interest is the settings_v view. (Redundant?) The only reason I don’t like this view is it reports the values for every learning context which makes reporting off it much, much longer. For example, the encryption key for a powerlink is listed 8 places in settings/settings_description and 18,769 places in settings_v.

Better CE/Vista Web Server Log

Some support tickets are more easily solved by knowing both user behavior and environment. An often helpful piece of information is what web browser they used. To add this, shut down the cluster, edit /VISTA_HOME/config/config.xml to include the cs(User-Agent), and start the cluster. This line will need to appear for every node. At startup, the nodes will download a new copy of the file.

<elf-fields>date time time-taken c-ip x-weblogic.servlet.logging.ELFWebCTSession sc-status cs-method cs-uri-stem cs-uri-query bytes cs(User-Agent) x-weblogic.servlet.logging.E LFWebCTExtras</elf-fields>

cp config.xml config.xml.bak
sed -s s/bytes x-/bytes cs(User-Agent) x-/g config.xml.bak > config.xml

Probably this could be edited in the Weblogic 9.2 console. I haven’t looked yet.

Having the Life

I really don’t like this question.

If you could inhabit the body of any famous person for one week, who would you choose and why?

The intent probably is more to have someone else’s life. However, the way the question is stated, I really would not get to have that person’s life… Just be in that body. I am me. They are they. Their life is based on their responses to their environment. My responses to their environment will be different.  Let’s say I pick a Nobel Laureate. Now I have these completely foreign responsibilities I know nothing about handling. Unless I pick someone with a similar life to mine (no fun), inhabiting anyone else’s body would be a nightmare not a dream.

Yeah, I am overthinking the question.

Probably this is because I cannot think of another life I would really like to live other than my own for a week. I like it. It is mine.

Blind Not Insane

The National Federation of the Blind is upset about a movie portraying people who are blind as behaving badly.

Pyyhkala, 36, of Boston, said he has read the book and seen parts of the film. He said his grievances stem from the film’s potential to sway public attitude about blindness. He said the movie exacerbates stereotypes and gives false information to uninformed viewers. [Link] (Since starting this post now requires a login?)

I haven’t seen the film or read the book, but the trailer for the films shows the people being put into quarrantine for a medical epidemic where people go blind. Stories generally portray people as acting incompetent and fearful when they are trapped in an unfamiliar situation. The whole point is to create an environment whereby a person, the hero or heroine, who is the bright light of reason and to whom everyone else appeals can rise to the challenge.

Blindness happens to use people who are blind, most likely because a the author was trying to be creative and use something readers would find new. Jose Saramago: “Stupidity doesn’t choose between the blind and the non-blind.” [Link]

Chris Danielsen, a national federation spokesman, said while he understands that the film plays on the public’s fear of sudden blindness, the idea that loss of sight is equal to incompetence and immorality is “outrageous” and “vicious.” Everyday tasks like getting dressed and using the bathroom do not become impossible if a person loses their sight, Danielsen said.

Works of fiction do not depict reality. Otherwise… they would not be fiction. Stop giving movies more meaning than they actually have. Otherwise, you give them power they didn’t already have.

The Catholic Church’s opposition to the Golden Compass made me read the book and go see the movie (latter was awful). I wouldn’t have cared otherwise. Denouncing it made me wonder what they had to fear from something so silly as a book and movie. After seeing the trailer, I wasn’t interested in Blindness. After reading about the opposition, I am interested. I don’t have much luck with movies from books lately, so I may go book first.

Forcing Weblogic’s Config.xml

Let’s nevermind why I am working on this in the first place. Namely…

  1. the Blackboard Learning Environment Connector introduced using the hostname and port for applet URLs in Vista 8 Blackboard,
  2. Blackboard dropped WebCT’s support for using a different port for an application when behind a load balancer.
So we found out we could use port 443 as the SSL listen port because we terminate SSL on the load balancer, Weblogic would not bind to port 443, but the Vista application would be tricked into displaying to the end user what we wish.
In the past week, we have put the correct config.xml in place multiple times and found it reverts back to an older version with the port we don’t want. The first time, I was lazy and did not shut down the Weblogic admin server because… well… that was the lazy practice I had used in Weblogic 8.1 and had not had a problem. My shell record shows it was correct then. Within hours it wasn’t correct anymore.
So, we found a few things…
  1. a copy of the config.xml is stored WEBCTDOMAIN/servers/domain_bak/config_prev/,
  2. all files in WEBCTDOMAIN/config/ are pushed to the nodes,
  3. to change this value in the Weblogic console requires turning on a feature to bind to the SSL listen port.
Additionally, we think research into this would show Weblogic stores this information in memory. It will then write changes it makes to the file back to disk on the admin node (destroying our change). Managed nodes will then pick up the change.
The latest shot at this is to purge the #1 and #2 on both the admin server and managed nodes, put the right file in place on the admin nodes, and see if it reverts again.
So now I’ve got to write a script to periodically check if the nodes have the wrong listen port and email us should it change.

MH Operations

We have been getting these messages for months. Some good folks at Blackboard have caused them to stop for a while, but they just resume. Probably it is multiple cases of the same issue.

LDAP Issues: Dear Valued Customer, The MH Operations team has determined that your MH application server(s) are not able to communicate with your local LDAP server infrastructure. Please notify your TSM when LDAP service is available so that we can confirm that there are no other issues with your hosted Blackboard environment.

The last time, alerts for Valdosta State’s Transaction System (a different product than we run) were being sent to us. A DBA for Vista was listed as a technical contact for TS which she doesn’t run or even know she was considered a technical contact. No one working with TS at Valdosta State had been getting these alerts. So they were excited at the prospect of knowing when there was a problem! I put Blackboard in touch with the people at Valdosta.

In a way, I understand my organization is involved in purchasing the licensing. However, Blackboard needs to do a better job of making sure their customers are informed.

  1. Put the name of the affected product in the notice.
  2. Put the name of the affected URL or IP in the notice.
  3. Put the name of the customer’s organization in the notice.