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 learning_context.name 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 = settings_description.id
and settings.learning_context_id = learning_context.id
and learning_context.type_code in (‘Server’,’Domain’, ‘Institution’,’Campus’,’Group’)
order byĀ learning_context.name, 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 settings_description.name 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Ā settings.idĀ 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.

TED Talk: Picking apart the puzzle of racism in elections

By Nate Silver

A less than convincing point… The list of states with voters reporting a racial bias only well matches the Obama-Clinton difference map because Nate draws the audience to the states he’s picking on: Arkansas, Louisiana, Tennessee, Kentucky, and West Virginia (5 hits). He totally ignores the strong race bias in South Carolina, Alaska, Missouri, or Indiana didn’t translate into more votes (4 false negatives). Also Wyoming and Oklahoma both had no reported racial bias and voted more against Obama (2 false positives).

Recovering Pictures

William borrowed my camera to go on his honeymoon. He also lost the photos with a poorly timed crash & drive reformat. So he wants to borrow the card and recover the data. Thankfully I have not used the camera since he returned it despite thinking I should.

Luckily I ran across A Computer Repair Utility Kit You Can Run From a Thumb Drive.Ā 

I didn’t like the setup of PhotorecĀ as it runs through the command line. Navigating the tree was confusing at best. It did recover 1,166 photos / 3.62GB for me.

Not trusting a single method, I also triedĀ Recuva. That worked a little better. It reported 1,395 files found. However, 177 were unrecoverable. Getting 1,218 pictures / 3.78GB back was 52 / 160MB better than Photorec. Though many of the “recovered” pictures just say: Invalid Image. Maybe they really are Raw?

While trying to useĀ Restoration, it crashed the first time. Not sure why. It was fine the next time, though it only found 4 photos.

Filename: Photorec doesn’t restore files with anything like the original name. Recuva and Restoration do.

Meta Data: OSes and image editors know about the EXIF data in pictures. All the Photorec pictures have date taken. Most of the Recuva pictures do. Guess I could see if only 52 pictures are missing the EXIF? That might explain why Photorec lost some of them.

All in all, it was an fun experiment. I am not curious how these stack up against of the proprietary software? Why pay $40 when these are better?

How Not To Break a Frame

Correct:

<script language=”Javascript” type=”text/javascript”>
if (top != self)
{
top.location = window.location;
}
</script>

Incorrect:

<script language=”Javascript” type=”text/javascript”>
if (top != self)
{
top.location = “/webct/urw/lc18361011.tp0/logonDisplay.dowebct”;
}
</script>

The problem with incorrect is the address used here is not the address in the location bar.Ā  The one in the location bar has the values required to login. Instead I get something which causes users to be unable to login. Example: So we send someone to http://westga.view.usg.edu. They get redirected to another address in which we provide the glicid, insId, and insName. Correct breaks the frame and gives the browser back the same address. Incorrect breaks the frame and gives the browser back a different, non-functional address. Bad. Bad. Bad.

WebCT Vista 3 used the Correct JavaScript which just passes back the address used. Blackbord Vista 8 for some reason changes what worked to Incorrect.

Yay for first day of classes.
šŸ™

UPDATE 1:

It gets better… Bb Vista’s Custom Login and Institution List pages are unaffected (aka use the Vista 3 style JS). Only going to the generated logon page, loginDisplay.dowebct, has the issue.

Christmas Blog Post 2008

Last night I read Uncle Bill’s Christmas letter. He mailed it, but he apparently doesn’t have my postal address so I got the electronic version. Woohoo! His letter recaps the year for his family. Do any of you have such a tradition? Or a family member who does? Oddly my blog doesn’t provide much basis as it is devoid of personal information.

So here goes….

Family

Mom went off to Houston in January to consult with one of the best doctors in the country about a health issue. How things fell into place to allow her to get better amazed me daily. I got to grandparent sit for a week where I madeĀ Nannie tell stories so I could post them on Youtube. šŸ˜€

William marriedĀ Nicole,Ā his high school sweetheart. I finally have a sister. It rained on us briefly, so if you are into superstitions, that means either: 1) kids, 2) money, or 3) good luck.

I met Dad’s girlfriend, Sally, this year. She is definitely very nice. I’m happy with the match.

Friends

My only New Year’s Resolution for 2008 was to read 25 books this year. I completed that goal back in October. I’m thinking for 2008 to do a similar resolution. This time I’ll count up the number of pages and set a goal to read 20% more pages.

Some fellow Flickr users started an Athens Flickr Meetup. I’m hoping this is something to continue in 2009 as the weather improves. (Though who knew Georgia would be 20 degrees Farenheit above normal in December?)

RingsAdrianne and Britt asked me to be the photographer for their wedding. I spent hoursĀ looking at professional photographer portfolios for ideas about what I should capture. You see, while I do have a camera, I had never really taken photos at a wedding. Heck, few people invite me to weddings, so I was a little unclear what happens. In the end, I think it all turned out pretty well. Adrianne is happy. So I am happy. Working in computers became a profession because it was a hobby. Maybe photography will end up the same in the end?Ā Posted 840 photos to Flickr this year. Started freelovephotography.com to show off my photography.

Las Vegas in July? Dumb. Star Trek: The Experience made my geeky heart soar.
NCC-1701-DNCC-1701-D @ ST: TXP