An ASP port of Cp2DB

I wanted to thank Ian Meinert for creating an ASP/SQL Server version of Cp2DB, my PHP/MySQL reporting solution for Adobe Captivate. He has documented his changes to the code in a series of blog posts:

I’ve gotten several requests in the past to create an ASP version of Cp2DB, so this should be of interest to many.

Popularity: 10% [?]

The Wrong Side of History

I’ve pretty much given up listening to the radio. Thanks to the iPhone and this gadget, my morning and afternoon commute is filled either with music or podcasts, my longtime favorites being This American Life, The Moth, and Philosophy Bites. But I happened to turn on the radio on my drive home Friday, and a story about Charleston was on NPR, so I gave it a listen.

I’m originally from Texas, but I lived long enough in Arkansas that I think of it as home, even though I’ve been in Charleston 1 for more than seven years. Arkansas has always had something of an identity complex. To anyone in the north who has even heard of it, it is a southern state. 2 To quite a few people in the deep south, it is too far west to really count as southern.

I have beautifully simple litmus test for southern states: any state that fought on the wrong side of the Civil War qualifies by that fact alone.

With the exception of a brief stint in Philadelphia, I’ve lived in the south my entire life. And that’s not entirely a bad thing. There are a lot of things I like about the south. 3 But one thing I’ve never liked about the south is what I think of as Civil War Denialism–a condition whose primary symptom is the inability to admit, whatever the extenuating circumstances, that the south was, in fact, on the wrong side in the Civil War and deserved to lose.

Admitting that the south was wrong to secede, and, even more importantly, to secede over slavery, isn’t to say that the north was some Utopia of racial equality, or that the Union’s motives were entirely pure. But about the core issue–the existence of slavery as a legitimate economic institution–there should be no confusion. Anyone who claims that the Civil War “wasn’t really about slavery,” a claim I’ve heard my whole life, hasn’t bothered to read the “Declaration of Immediate Causes which Induce and Justify the Secession of South Carolina from the Federal Union.” Was “states rights” and issue? Certainly it was. But so was human rights. Arguing over jurisdictions doesn’t change that, it just shifts the argument from the ethics of slavery the semantics of law, while failing to address the former. 4

The thing that struck me most about the NPR story was that the various defenders of the “good name” of their Confederate ancestors have such trouble admitting that those same ancestors were simply wrong about some things. The absurdity here is they were likely wrong about many things, from the most trivial of things to the most important. I’m willing to bet that these various sons and daughters of Civil War veterans would be unwilling to defend their ancestors’ point of view on most any other topic. So why feel the need when when it comes to this one?

I feel no need to agree with or, in those cases where I disagree, “respect” my ancestors’ opinions on any topic. They were their own people, trying to make sense of the times in which they lived. I’d no more ask them for advice on human rights than I would on dental hygiene. We’ve learned a lot about both since April 12, 1861.

Popularity: 13% [?]

Notes:

  1. I actually live in Mt. Pleasant, which is across the Cooper River from Charleston proper.
  2. The percentage of people outside of Arkansas who recognized it as a state rose exponentially when Bill Clinton became president.
  3. Whenever I start off a sentence like that, I always think of Quentin Compson, from William Faulkner’s novel Absalom, Absalom! I won’t be more specific for fear of spoiling the novel for those who haven’t read it.
  4. Ditto for the issue of tariffs, which had been a point of contention between north and south though these were actually on a downward trend when the south seceded.

Testing Captivate 5 with VMware Fusion 3

On the Adobe Captivate Forums, someone asked if Adobe Captivate 5 for Mac OS X could be used to capture Windows applications running via VMware Fusion 3. It was a good question, so I decided to give it a test.

In both cases, what you see here is raw output from a simple capture in demonstration mode, using Captivate’s default settings. The point here isn’t to show off my screencast production chops. The point is to compare raw output when capturing a virtualized app compared to a native one. I’ve kept the default slide duration (3 seconds), so you may have to pause here and there to really see what’s happening. I’ve also kept the default slide quality (low). Feel free to avail yourself of the audio on/off button on the playbar, as that typing sound effect can get a little tedious.

First Test: Microsoft Word 2010 running on a Windows XP (SP3) virtual machine in VMware Fusion 3 on Mac OS X (10.5.8/Leopard):

Word 2010 via VMware Fusion 3

Second Test: iWork Pages ’09 running on Mac OS X (10.5.8/Leopard):

iWork Pages ’09, natively

The comparison shows some useful things. First, Adobe Captivate 5 was able to capture actions in Word 2010 even though it had to navigate through VMware Fusion’s virtualization layer to do it. That’s impressive. The mouse was captured as a separate object, just like it always is, which means you can reposition or hide it in post-production (which has always been one of my favorite features of Adobe Captivate).

On the down side, none of the highlight boxes were properly positioned, and quite a few extraneous text captions (a.k.a. “callouts”) were added, saying “click the Windows XP Professional window.” So, clearly, there were times when Captivate couldn’t determine what to name an interface element. If I were going to do a real project this way, I’d probably disable automatic highlights and text captions and just add my own manually, as that would, on the whole, be less trouble than repositioning and/or deleting all of these.

So, the answer to the question that prompted this post is a qualified yes. Adobe Captivate 5 can, in fact, capture apps running in guest operating systems in VMware Fusion 3, but the raw results of such captures will require more post-production cleanup than you might like.

Popularity: 13% [?]

PropertySetter, Version 1

I finished a new Adobe Captivate 5 widget: PropertySetter.

Popularity: 10% [?]

Who needs an LMS anyway?

About a decade ago, I was introduced to the weird world of Learning Management Systems (LMSes). I needed a way for students to submit assignments instructors. The students were in an enrichment program for six weeks each summer, but during the regular school year, they needed a receive and submit work periodically. A colleague at the college was kind enough to tour us through an early version of WebCT, an LMS which some departments used for distance education. This colleague, who was also admin of the system, was nice enough to make us some accounts so we could try it out.

The app itself was an ugly mess of Perl scripts. User experience wasn’t even an afterthought. I liked it so little that I rolled my own solution with PHP/MySQL. All I really needed was a online method for posting assignment descriptions, submitting assignments to instructors, and maintaining an online grade book. I can’t remember the details of my implementation, but it served its purpose and people were happy with it.

WebCT got bought out by Blackboard. It is now a ugly mess of Java, rather than Perl. I use it to teach an online class, and I like it little better now than I did ten years ago. A person could learn a lot about good design by studying the obvious gaffs and shortcomings of Blackboard, or at least the version of Blackboard that is really just a rebranded version of WebCT.

Luckily, these days, there are plenty of ways to shuttle files around. Lectures needn’t live in the walled garden of an online course shell. Google Docs, iWork.com, Acrobat.com, and plenty of other services can be used for read-only document sharing. I already use YouTube for videos rather than muck with uploading them to the LMS. So publishing content is the easy part.

There are really only a few things that Blackboard does well enough, though even these could be improved upon. It integrates with student information systems, which means student access to the appropriate shells is managed centrally and, to some extent, automatically. It also provides a framework for creating an administering web-based assessments (read: quizzes, exams) and recording the performance on them to a course grade book. The tools Blackboard provides for creating quizzes are terrible, and they’re saved in some proprietary format, even though quizzes, being structured data, would be simplistic to implement in XML.

The other thing it handles, though not particularly well, is a method for time-stamping assignments students turn in and denying them the ability to turn in past a cutoff date (and flagging those that are late but not past the cutoff date). It handles this functionality very badly, but it’s better than trying to do it via email. There’s surely a better solution, but it would likely involve me having to set up accounts for the students (or having them create their own), which would be too much overhead, since they already have accounts on the LMS.

So, except for those bits of functionality, I think I’m done with LMS. Even though I’ve spent a lot of time crafting XHTML/CSS lectures that Blackboard won’t manage to screw up, I’m going to create new content in iWork Pages and publish it to iWork.com. Then I can just have a one-page outline in the LMS that links out to the content.

I picture an LMS of the future that is made up of loosely coupled components: one for document distribution, one for assessment, one for file shuttling. It probably already exists, though maybe not in the most robust form. It needn’t be a huge, jack-of-all-trades-but-master-of-none solution, which is what we have at present.

Popularity: 11% [?]