Supported

(This is an post I wrote back in November but didn’t publish…. Until now. Have fun!)

Mitigated speech gets a lot of use by people trying not to offend. All too often, people who have been hurt because of mitigated speech question what isn’t being told as though the omission or gaps are intentionally deceptive.

What are or are not supported browsers came up again. The trick here is the mitigated speech used with the levels of support. I assume the intent is clarity.

  • Certified – supported with complete testing done.
  • Compatible – supported with some testing done.
  • Provisional – supported with some testing done before official release.

Certified is taken as supported by all parties. Compatible and Provisional are interpreted as not supported because the complete testing has yet to be done. I think Blackboard’s intent was to mark them as supported but qualify how customers might encounter issues due to not fully testing. This means Blackboard is interested in learning about the problems encountered in order to address them.

At least that is my interpolation. Mmmmmm the Kool-Aid is good.

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.

Me Social Media

Dan Schultz doesn’t like Facebook or Twitter because they are too focussed on individual expression rather than the community.

That may be because he is using them wrong. I liked photography as a kid, but I didn’t know any photographers. Flickr happened to come into my life just after I bought my first digital camera. My participation in photography exploded. Not because I had a way to post my photos but because I had a way to find other local photographers for mutual encouragement. Even better was forming local groups to encourage people to meet. The value of Flickr is developing the community.

Worldwide Photowalk Panorama

Similarly, I got into Twitter because my community, peers at other universities running the same software as myself, were seeking help there. Any place with answers to the problems we face, which is where people with the answers are watching, is where we go. Twitter was the place to get the attention of the right people not a forum like phpBB. (There are already lots of email lists.) My other community, people using the software I run are also on Twitter. I’ve resolved issues for many clients by finding their public complaints and offering solutions. When my focus changed away from using Twitter for the community is when I stopped liking Twitter.

Personally, I have yet to find much sense of community in the phpBB, Google Wave, and Ning. So I find it strange these are the exemplars of community applications. They seem fractured so one finds dozens of groups to covering the same interest. Sometimes this is because some moderator upset a portion of the community with draconian behavior causing people to form an alternative community. Bad blood exists for a while. Other times people set up a new community unaware others exist.

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?)

TED Talk: Taryn Simon

My favorite quote from Taryn is, “Photography threatens fantasy.” Disney uses intricate interior design, photography, and video to construct fantasy. Advertisements, magazines, weddings, and portraits are about showing others the ideal instead of the reality. Have you seen the Dove Evolution video? (This one has music and singing by a Baha’i musician Devon Gundry.) What about the Ralph Lauren photo?

Reality bites. Hard.

(See Taryn Simon photographs secret sites on the TED site)

TED About this talk: Taryn Simon exhibits her startling take on photography — to reveal worlds and people we would never see otherwise. She shares two projects: one documents otherworldly locations typically kept secret from the public, the other involves haunting portraits of men convicted for crimes they did not commit.

Also: Taryn on Charlie Rose, Discomfort Zone (Telegraph)

Useful User Agents

Rather than depend on end users to accurately report the browser used, I look for the user-agent in the web server logs. (Yes, I know it can be spoofed. Power users would be trying different things to resolve their own issues not coming to us.)

Followers of this blog may recall I changed the Weblogic config.xml to record user agents to the webserver.log.

One trick I use is the double quotes in awk to identify just the user agent. This information is then sorting by name to count (uniq -c) how many of each is present. Finally, I sort again by number with the largest at the top to see which are the most common.

grep <term> webserver.log | awk -F\” ‘{print $2}’ | sort | uniq -c | sort -n -r

This is what I will use looking for a specific user. If I am looking at a wider range, such as the user age for hits on a page, then I probably will use the head command to look at the top 20.

A “feature” of this is getting the build (Firefox 3.011) rather than just the version (Firefox 3). For getting the version, I tend to use something more like this to count the found version out of the log.

grep <term> webserver.log | awk -F\” ‘{print $2}’ | grep -c ‘<version>’

I have yet to see many CE/Vista URIs with the names of web browsers. So these are the most common versions one would likely find (what to grep – name – notes):

  1. MSIE # – Microsoft Internet Explorer – I’ve seen 5 through 8 in the last few months.
  2. Firefox # – Mozilla Firefox – I’ve seen 2 through 3.5. There is enough difference between 3 and 3.5 (also 2 and 2.5) I would count them separately.
  3. Safari – Apple/WebKit – In searching for this one, I would add to the search a ‘grep -v Chrome’ or to eliminate Google Chrome user agents.
  4. Chrome # – Google Chrome – Only versions 1 and 2.

Naturally there many, many others. It surprised me to see iPhone and Android on the list.

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

Output

  • User aka tp.user_name – This is the student’s account.
  • Action aka ta.name – 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 tpg.name – Confirmation of the file name. Keep if using like in a select on this.

Considerations

I use the learning context id (lc.id aka learning_context.id) 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 tpg.name (aka trk_page.name).

  1. Look at the file in the user interface.
  2. Run the report without limiting results to any tpg.name. Identify out of the results the name you wish to search and use: tpg.name = ‘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.

Turnitin.com

I’m surprised I have not blogged here about the student lawsuit against Turnitin.com? An anti-plagiarism service, Turnitin has students or faculty members upload papers into the database. By comparing new papers to the database, it gives ratings as to whether it is likely a student plagiarized.

Now the search goes out for any student who has a paper that’s being held by TurnItIn that they did not upload themselves. Students Settle with TurnItIn

In theory I could be someone in this situation. Back in 2005, a coworker asked my mother if someone by my name was related to her. This coworker was taking some classes at the university I attended. Turnitin had threw up a cautionary flag on the Originality Report because it was somewhat similar to something with my name on it. The problem is this product came into use at the university after the time I was a student. So I never submitted anything to it. The department from which I got my degree kept a copy of my papers (many submitted by email) and used this product at the time.

Another possibility is this tidbit about the product: Over 11 Billion Web Pages Crawled & Archived. I was actively blogging before and at the time of the incident. Assuming it could identify my name out of all that content, this match could have come from my blogging.

When I contacted Turnitin about this back in 2005, they told me I would have to remove my paper. I re-explained that I didn’t submit the paper. So Turnitin explained that whoever did put the paper in the system would have to remove it. The guy acknowledged the difficulty of the situation in identifying who posted it.

Booing at Beckham

Sports are entertainment. Some watch it for the feats. Some like discussing tactics. Some just want to see scores. Some love the bloopers (aka mistakes).

The second you feel a sports player seen on television wronged you by a decision on or off the field (or court), it is time to turn off said TV. Even at the stadium when you feel the need to yell something at a player, stop. Just stop.

  1. When you get angry you are the one who lost.
  2. Deciding which team to play had nothing to do with pleasing or angering the audience. Getting angry over being irrelevant is not good for health.

Entertainment is about enjoyment. When it makes you angry, try another form of entertainment.

Racial Profiling

Walking home from the bus in high school, I saw police cars and officers in front of my house. Their presence made me extremely apprehensive. The only little assurance was my father talking to the officers. Someone broke into the house and stole some of our stuff.

We felt violated. Our own home was unsafe.

At the time however, the people with guns with a tendency to keep their hands near them were much more threatening than some anonymous teen who wanted some quick cash.

Police officers are the good guys.

Take this scenario:

  1. You’ve spent almost a full day on a plane or in airports flying from Shanghai to Boston so you are extremely jet-lagged.
  2. (SUGGESTED ADDITION) You picked up the flu while in China (remember Avian Bird Flu?).
  3. Your front door won’t open when you get home, so you end up gaining access to the house from the back door. Eventually with help you do get it opened.
  4. While calling someone to come fix the door, a police officer shows up to question you about being the owner of the house. (Let’s ignore that Harvard owns it. You just reside there.)

This is like Alexander and the Terrible, Horrible, No Good, Very Bad Day: “Nothing at all was right.” Except… This state of mind was interpreted by the police officer this way:

“From the time he opened the door it seemed that he was very upset, very put off that I was there in the first place,” Sergeant Crowley told the station, WEEI. “Not just what he said, but the tone in which he said it, just seemed very peculiar — even more so now that I know how educated he is.” NYT

This seems like the perfect opportunity to ask questions about Dr. Gates’ day to establish something of a rapport to ascertain why he might be so upset. It’s not so peculiar when the context is known. I bet if all this had been placed in context at the time, then this would not be front page news.