battis.net and I'm all out of bubble gum…

So, I’ve spent the last few days wrestling with a curriculum unit that an outside consultant built. In PowerPoint. On Windows. And which we have been trying to set up in such a way that we can share the interactive document with students. Who are using Macs. And, perhaps, without asking each student to download a ~200MB file to use it.

I have learned and grown much in the process. And have discovered that Microsoft PowerPoint 2008 does an execrable job of exporting PowerPoints as web pages (it does an execrable job of doing a lot of other things too, but we can talk about that at another time). Here are the key fixes that I made to the exported web page and supporting files so that the presentation would fundamentally work (all of this was done using regular expressions in TextMate):

  1. I stripped out all of the fancy Javascript calls that PowerPoint inserted as links to navigate from one slide to another. It turns out that a simple HREF to the actual page’s HTML file works (and the JavaScript Does Not.)
    Find:

    (href=")[^"]*(slide\d{4,4}.htm)[^"]*(")

    Replace with:

    $1$2$3
  2. The export to web page takes all of the already URL-encoded links in the PowerPoint and reencodes them, rendering them useless. I stripped off the second encoding.
    Find:

    (%)25([a-fA-F0-9]{2,2})

    Replace with:

    $1$2
  3. Finally, because the links were built in Windows and then URL-encoded, all of the Windows-style paths needed to be turned into POSIX paths for use on the web.
    Find:

    %5[cC]

    Replace with:

    /

At this point, in an average PowerPoint, most of the damage has been fixed and things more or less work. However, the curriculum unit that we were working with also linked to external Word documents (hence some of the Windows-style path issues above). This meant I had a few more fixes along the way that are worthy of note:

  1. I replaced the links to Word documents with links to the corresponding PDF files (and script I used generated PDF files with .doc.pdf extensions and I didn’t bother to fix that).
    Find:

    (href="[^"]*docx?)(")

    Replace with:

    $1.pdf$2
  2. These links to external documents open in the same frame as the slideshow. Which defeats the purpose of the slideshow being a navigational tool. So I redirected all of the new PDF links to a new window in the browser. As the hyperlinks are broken across two lines in the HTML source code, this took two steps.
    1. Find (changing {{name of Links & Sources folder}} to the, well, actual name of the Links & Sources folder):
      (href="((http://)|({{name of Links & Sources folder}}))[^"]*")\n

      Replace with:

      $1
    2. Find (modifying as noted above):
      (href="((http://)|({{name of Links & Sources folder}}))[^"]*"\starget=")_top(")

      Replace with:

      $1_blank$5

September 24th, 2009

Posted In: Educational Technology, How To

Tags: , , , , , , , , , , ,

Shelly Blake-Pock just posted a question on his blog about teaching math in a paperless environment (in fact, since I started gearing up to respond, he’s posted some follow-ups as well).

Last year, wearing my math teacher hat (nominally given to me as a member of the Math & Computer Science department — normally only worn on the most formal occasions), I got involved in a project with my department trying to work with our students to develop a mathematical Wikipedia. The idea was that kids would write up their mathematical knowledge for the younger students and their classmates, creating a review site focused on what the students thought was important to know about the material we were covering in class.

The big idea was that this would push the students to both reflect on what they knew (as they worked to articulate it for less experienced students) and take part in some independent learning (as they researched their topics to figure out how to write them up). It wasn’t really a rousing success, for a number of reasons, not the least of which was that the kids were assigned topics (rather than selecting their own) and ended up mostly parroting their textbook into the wiki. There wasn’t any real collaboration or peer-review going on, at least not in a really critical sense (“Why did you explain it the way the text book does? I didn’t get it then and I don’t get it now… do you get it?”)

However, Brian Lester and I got excited about the idea of how one would pursue this project from a mechanical standpoint: how would you post mathematics in an editable, readable and shareable way on the web? We went through a number of permutations, but the solution that I think contains all of the desired mechanical qualities is this: use MathML. There’s a handy [take-a-deep-breath-this-is-about-to-be-a-lot-of-jargon] Javascript ASCII-to-MathML translator library online from Peter Jipsen at Chapman University. It works really well: you type in text as you would on a calculator and it gets typeset as you would see it in a professionally printed text. And you can go back and edit it.

MathML requires a plug-in for Internet Explorer 7 (no idea about 8, but I’ll bet it still needs the plug-in), but Firefox can read and parse MathML natively. Peter Jipsen has links to some helpful fonts to download to make it all look a little nicer, but they’re truly optional. Once it’s set up on your server, you just include a magic incantation at the beginning of the page to invoke the translator, type in your calculator equations, and whamm-o: pretty equations!

Now, this only handles equations on the web. We didn’t get to graphs or diagrams in our experiments last year. But I can tell you where I would look for graphs — Google has an embeddable chart generator that might work. I hope there are other similar tools.

Again, all this is with the stated goal of readable, editable, shareable mathematics online. This doesn’t address doing the exploratory work: this is the write-up and reflection after the exploration. Without a tablet, I’m not convinced that one can do general mathematical work on a computer. And with a tablet, I’d add FluidMath (still in beta, I think) to the list of must-have applications.

August 4th, 2009

Posted In: Educational Technology, How To

Tags: , , , , , , , , , , , , , ,

I just saw two articles with in the space of ten minutes: one on the substantial/frustrating/obscenity-inducing work behind building web sites compatible with different web browsers (and, because A List Apart is so cool, another matching article on the same topic) and another on converting API interface hooks into a filesystem.

What, I hear you cry, is the connection here? While I would not describe myself as a professional web developer, I have spent a shocking amount of time fighting with the variance and vagrancies of different web browsers over the past ten years. Perhaps I’m a glutton for punishment, perhaps it’s something more pathological (at one point, in an earlier edition of this blog, I had a post that was basically a permanent shooting -of-the-bird at JavaScript as a technology).

I passionately believe that the development approach of the major browser developers has been sloppy at best and at worst an example of poor design and implementation. Browser releases that break existing web sites (or that are flagrantly incompatible with either standards or other major browsers) are not supportive of an open and free flow of information (and design).

That said, the article on the Accessibility Filesystem is a fascinating example of a piece of software that is so well-designed and open that it is compatible with innovative, unexpected and bizarrely wonderful new applications. Being able to browse the interface components of my running applications as though it were a filesystem? How cool is that!?! And check out the other Fuse plugins. It’s a neat technology with a lot of interesting applications in search, organization and possibly even data visualization.We need more Fuse and less browser skirmishing.

January 23rd, 2008

Posted In: Educational Technology

Tags: , , , , , , ,

css.php