xmllint

This Linux tool is my new best friend. We get thousands of XML files from our clients for loading user, class, and enrollment information. Some of these clients customize our software or write their own software for generating the XML.

This means we frequently get oddities in the files which cause problems. Thankfully I am not the person who has to verify these files are good. I just get to answer the questions that person has about why a particular file failed to load.

The CE/Vista import process will stop if its validator finds invalid XML. Unfortunately, the error “An exception occurred while obtaining error messages.  See webct.log” doesn’t sound like invalid XML.

Usage is pretty simple:

xmllint –valid /path/to/file.xml | head

  1. If the file is valid, then the whole file is in the output.
  2. If there are warnings, then they precede the whole file.
  3. If there are errors, then only the errors are displayed.

I use head here because our files can be up to 15MB, so this prevents the whole file from going on the screen for the first two situations.

I discovered this in researching how to handle the first situation below. It came up again today. So this has been useful to catch errors in the client supplied files where the file failed to load.

1: parser error : XML declaration allowed only at the start of the document
 <?xml version=”1.0″ encoding=”UTF-8″?>

162: parser error : EntityRef: expecting ‘;’
<long>College of Engineering &amp&#059; CIS</long>

(Bolded the errors.) The number before the colon is the line number. The carat it uses to indicate where on the line an error occurred isn’t accurate, so I ignore it.

My hope is to get this integrated into our processes to validate these files before they are loaded and save ourselves headaches the next morning.

December Dilemma

From a CNN article, For Many, December’s a Dilemma by Joe Sterling (mentioned by Phillipe Copeland):

Navigating the Christmas season can be a challenge for the millions of people who don’t celebrate the holiday. Many acknowledge and sometime embrace the season’s customs, such as gift-giving and sending out greeting cards, while at the same time they are conscious of maintaining their own religious identities.

I will admit, when I was Catholic, Christmas was significantly easier. There was no conflict as I was wholly within the mainstream of others I knew. Choosing to become a member of the Bahá’í Faith didn’t significantly reduce the importance of Christmas for me. Bahá’í don’t celebrate Christmas with each other. Nor would we alienate those around us who choose to celebrate. Similarly, I would hope people don’t feel alienated when I fast in the

We still eat with family on Christmas Day. True, I no longer to to midnight or Christmas Day mass. My mother, who is also a Bahá’í stopped giving Christmas presents and only gave Ayyám-i-Há presents, a Bahá’í celebration in February just prior to our Fast and New Year. She does give presents to my brother and his wife who give and receive presents with their other family. I no longer expect Christmas presents or put up a tree, but that is okay.

Keep in mind Christmas as we celebrate it now, merges several holidays, making it convoluted. The primary one, the birth of Jesus, resonates with the Baha’i Faith. We recognize the station of Jesus and all his accomplishments. The Wiccan / Druidic winter solstice, Germanic Yuletide, the Roman Saturnia all are comingled into Christmas. As other faiths like Hinduism, Buddhism, Shinto, Islam, Judaism, and even Kwanzaa deal with the surrounding peoples celebrating Christmas, their traditions could trade in and out with Christmas. In the end, the sentiment of giving gifts is a good one, assuming one doesn’t go to excess.

The real dilemma ought to be what is the impact of gift giving. Joel Waldfogel, an economist, thinks receivers value gifts less than the giver, causing a loss in value to the economy, so he recommends gift cards. Several Bahá’ís and Christians I know donate to charities instead of gifts.

Integrating With Facebook

At least a couple years ago, I set up the Facebook Notes app to import this blog’s posts as notes. By setting this up, a number of friends have taking to commenting on my posts. I get far more comments on Facebook than I do here.

However, this was a horrible way to get traffic to this blog.

  1. All of the text and images go into Fb Notes. Nevermind the terms of service. People looking at my blog posts think I wrote it in Facebook. Unless they are observant enough to see “View Original Post” links in tiny text, they have no idea about the blog which was originally the point. When I cross post stuff to multiple blogs I make it obvious the other places it exists.
  2. Embedded videos get stripped from Fb Notes. Lately, I have been posting embedded TED Talks videos here. So I have to think about how to change my posts to accommodate Facebook.

So, I discovered some friends who are also photographers on Facebook use an app called NetworkedBlogs. (They are Flip!Photography, Invisible Green Photography, and Stylized Portraiture.) Once configured, this app will post to my and friends’ (on my behalf) Facebook Walls a link to my wall. The format of the posts look similar to when a link is posted, such as a thumbnail.

The setup is also fairly easy. Enter the location, description, category, and email for your blog. Prove it is yours whether by having others verify it belongs to you or placing code on the site. Finally, go to “Feed Settings” link and click “Auto-publish to personal profile”.

I am hopeful this solves my problem. If so, then I have another blog to setup. (Someone asked to buy that domain. I guess I asked too much for it?)

2nd Blackboard Blog

A blog without comments to me isn’t a blog. Blog posts are about stimulating discussion, so the comments are most important feature. Content without feedback is a publicity or news story not a blog. So Blackboard Blogs at educateinnovate.com isn’t really a blog.

Steve Feldman, Bb performance engineer, had the first Blackboard Inc blog with Seven Seconds. He mysteriously stopped last fall. 🙁

Ray Henderson, new Bb President for Learn, has a blog. Read this introduction post. He specifically wants discussion and dialog. Someone at Blackboard who understands The Cluetrain Manifesto? I am hopeful this is a sign of positive change.

Smart Boys

George and I talked about this some last night.

Nature vs Nurture… I tend to think of both as bottlenecks for human development. The debate about which does more to me makes as much sense as debating which is better for a web application: Apache or MySQL? Both are involved and affect the end results. The debate should be about how to leverage the synergy of both, but that is another blog post.

We humans have 46 chromosomes. 23 from each parent which come in pairs. Males have an XY pair. Females have an XX pair. Brain Rules was the first I’ve read that ~1500 brain-related genes are on the X and ~100 on the Y (and losing ~5 every million years). So the X chromosome is quite important for determining brain development.

For boys, the one X they have comes from the mother. Girls inherit an X chromosome from both her mother or father. To set up the strong potential of great genes for boys, look to women who are really intelligent. That tells you there is a 50% shot for the boy to get a good X. If both of the woman’s parents are intellectuals, even better.

Be smart about it though… Don’t make an IQ score for the parents part of a prenuptual agreement.

My mother has occasionally said things I enjoy remind her of her father. That’s a biased sample. 
🙂

Cross-Seeding the Clouds

There is a good post on backing up a PLE or really anything created in the cloud. The danger of working in the cloud is the site disappearing like Ma.gnolia recently. When the data is important, such as for teaching a class, this is huge.

So the advice to have additional copies elsewhere is good. Is it the only way? I like the concept of cross-posting better than backup and restore to alternative sites. Instead of regular exports and imports, as the data is generated in multiple places at the same time. Think of it as an near instantaneous export and import to minimize the loss.

Perhaps more opportunities for cross-posting would make the Interweb a safer place for our data.

Most Wired Teacher

“Who is the most wired teacher at your college?” (A Wired Way to Rate Professors—and to Connect Teachers)

Although the university runs workshops on how to use Blackboard, many professors are reluctant, or too busy, to sit through training sessions. Most would prefer to ask a colleague down the hall for help, said Mr. Fritz.

Professional support is too intimidating, cold, careless. Support fixes the problems of others who created problems for themselves:

  • choices made in software to use
  • configuration choices
  • mistakes logic in processing

The concept of identifying the professors who most use the system is a good one. We already track the amount of activity per college or university in the University System of Georgia. The amount of data (think hundreds of millions of rows across several several tables)  would make singling out the professors a very long running query. Doesn’t mean it is a bad idea. Just don’t think it is something we would do with Vista 3. We probably could with Vista 8 which uses a clean database.

I’d like to see two numbers:

  1. Number of actions by the professor
  2. Number of actions by the all classes the professor teaches

Ah, well, there are lots of other reports which need to be done. Many more important than this one. 

Some questions from the article: “Will colleges begin to use technology to help them measure teaching? And should they?” At present, to create such reports, IT staff with database reporting or web server skills are needed. Alternatively, additonal applications like Blackboard Outcomes System can provide the data. The real problem is the reliability and validity of the data. Can it really be trusted to make important decisions like which programs or employees are effective.

Course Management Systems are Dead!

Heh. Blackboard Vista is headed for a brick wall? Who knew?

7. Course Management Systems are Dead! Long Live Course Management Systems! Proprietary course management systems are heading for a brick wall. The combination of economic pressures combined with saturated markets and the maturing stage of the life cycle of these once innovative platforms means that 2009 may well be the year of change or a year of serious planning for change. Relatively inexpensive and feature-comparable open source alternatives combined with some now learned experience in the process of transition from closed to open systems for the inventory of repeating courses makes real change in this once bedrock of education technology a growing possibility. As product managers and management view these trend lines, I think we might see incumbent players make a valiant effort to re-invent themselves before the market drops out from underneath them. Look for the number of major campuses moving (or making serious threats to move) from closed systems to open ones to climb in the year ahead. The Year Ahead in Higher Ed Technology

It is true the big player in proprietary CMS / LMS / VLE software has lagged in innovation for quite a while. Remember though Blackboard bought WebCT and kept around the other product while hemorrhaging former WebCT employees. That alone kept them extremely busy not to lose every customer they bought. The next version, Blackboard 9 should be available soon. That is the litmus test for their future success.

Bb9 is a newer version of Academic Suite, aka Classic. There is no direct upgrade path from CE / Vista to Bb9. There is a Co-Production upgrade path where one can run both versions side-by-side with a portal interface to access either version without having to login again. Content still has to be extracted from the old and placed in the new. (Since we are running Vista 3 and Vista 8 side-by-side now, this doedsn’t give me warm fuzzies.) This was the upgrade path some WebCT and Blackboard clients took getting from Vista 3 to 4 only to find Vista 4 was junkware. Similarly, those leaving CE4 for CE6 were frustrated by the move. So, I would predict:

  1. Those on Classic 8 now will go to Blackboard 9 ASAP.
  2. Smaller colleges on CE 8 who through turnover no longer have the people burned by the CE4->CE6 migration will probably move to Blackboard 9 this summer prior to Fall.
  3. Smaller colleges on CE 8 who still remember will migrate after AP1 (maybe a year after Bb9 release).
  4. Larger colleges on CE or Vista 8 will move some time between AP1 and AP2.
  5. Consortia groups like GeorgiaVIEW, Utah State System, or Connecticut State University System will wait and see.

That last group doesn’t take change easily. They have the nimbleness of a Supertanker cargo ship.

I am still waiting for the tweets about Moodle and Sakai, the open source alternatives, to change from in general “X sucks, but at least its not Blackboard.” to “X is the best there is.” If “at least its not Blackboard” is the only thing going for the software, then people will stay where they are to see where things go. There needs to be compelling reasons to change.

Unfortunately the cries of the students and the faculty in the minority are not enough. Most people are happy enough. They can accomplish the important things. They get frustrated that IT took the system down, data center power issues, network issues, or a performance issue. None of which go away by picking FOSS.

More IMS Import Headaches

I got this error while trying to run an XML IMS import using the WebCT / Blackboard CE/Vista siapi.sh script…

A unit of type Institution cannot have a unit of type Campus as a child.

Guess being on vacation last week spaced my neurons. Normally, I ignore Blackboard errors as meaningless. This time I listened to the error and sent myself off in the wrong direction trying to figure out what was wrong with the typevalue element of the XML was wrong. Typevalue defines the level of the context. So while my level was set to 30 in the XML, for some reason it must be ignoring it, right?

Wrong! The problem was really that the relationship.sourcedid.source was set to “DBA IMS IMPORT USG_COL” instead of “DBA SIAPI Import USG_COL”. So it was unable to find the parent object. So the error makes no sense to me now.

Can I have my two hours back?

Open Response To Bb ACSS

17. What is the single most important thing Blackboard can do to create a better client experience for your institution?

Provide successful workarounds or bug fixes to the identified issues in a timely manner. A timely manner means within 5 days to the user and 180 days to me. By the end of 5 days, the affected users have given up on ever getting a solution. We know we have lost that user ever giving us the benefit of the doubt about our service again. We only keep the ticket open in hopes of preventing the same issue from happening to another user and losing them as well.

All you other Blackboard customers out there. What did you put here? Or any of the other freeform answers. If you didn’t get to do the survey, then what would you have liked to put there?