wingolog

fold, xml, presentations

11 July 2007 4:56 PM (guile | svg | presentations | xml | fold | org mode | emacs | jornadespl)

Good afternoon, world. I have a bit to write about; we'll see how much of it manages to escape my brain into this page.

fold, xml, presentations

To recap a bit, I've been trying to avoid powerpoint-style applications, especially OpenOffice. OpenOffice is good for some people but it hurts my brain.

After poking about for a while, I decided to make presentations with SVG graphics, with each layer being one slide. I made presentations in Inkscape, and then wrote a tool (in Guile) to split the SVG file into layers, and then make a PDF out of that.

However, the process was not satisfying: it was too hard to enter in the text, and I always had to think about alignment. I wanted to be able to make an SVG presentation programmatically. It turns out that the what has become the standard Scheme XML manipulation combinator, pre-post-order, is not well-suited to performing layout operations.

This is because pre-post-order effectively maps across XML child elements instead of single-threadedly passing a layout seed through the operation. So I started looking how to recast pre-post-order as an extended tree fold (foldts from Oleg's SSAX paper). I wrote up the results in a paper that I submitted to SFP 2007, Applications of Fold to XML Transformation. We'll see if it gets accepted, it's a bit of an odd endeavor.

Of course, the next time I gave a presentation, I would have to figure out how to use the algorithms that I had worked on, otherwise it would be wasted effort. The occasion was the Jornades del Programari Lliure last week in Girona. Following a recommendation by a kind commenter, I decided to write the presentation in Emacs' Org Mode, then transform its XML export into the presentation language that I defined, then use the algorithms that I presented to transform that into SVG. After the presentation, I cleaned up the scripts I had, and packaged them into a library that I just released, Guile-Present.

Guile-Present is OK. You can write your presentation in Emacs, with all of the fluidity that comes with plain text:

# -*- mode: org; fill-column: 34 -*-
#+TITLE: Medios de (re)producción: GStreamer

* Plan

GStreamer: Multimedia para todos

@fluendo.com: Qué es lo que
estamos haciendo

* GStreamer

** ¿Qué es GStreamer?

 * Una librería multimedia y un
   conjunto de plugins

Then, just run org-to-pdf-presentation on your org file, and you have a PDF ready to present (example; example in english). The PDF output is clean but not pretty. I hope to improve that in the future (read: the next time I give a presentation). I also need to fix some rendering bugs in the HTML documentation, but time is with me these days.

10 responses

  1. Tobias says:

    The Link to the last PDF is wrong. Its jornadespl-en.pdf and not jornadaspl-en.pdf.

  2. dr d says:

    and how can this be extended to include LaTeXy like formulas?

  3. yosch says:

    Neat approach. I like using http://code.100allora.it/pdfcube or http://keyjnote.sourceforge.net/ for the added eye-candy and usability effects.

  4. Marius Gedminas says:

    Have you ever tried MagicPoint?

  5. Rob says:

    Thanks for the links yosch! Keyjnote looks awesome.

  6. wingo says:

    Tobias: links fixed, thanks :)

  7. phineas gage says:

    Maybe I just don't see it, but what does this have to do with sailing?

  8. YO YO says:
  9. Pranshu Kharkwal says:
  10. ADIL says:

    River map of United statesRiver map of United statesRiver map of United statesRiver map of United statesPrintable calendar 2017Printable calendar 2017Printable calendar 2017
    print usa calendars print usa calendars printable templete calendars printable templete calendars printable templete calendars printable templete calendars tenplete printable calendars tenplete printable calendars tenplete printable calendars tenplete printable calendars tenplete printable calendars free printable calendars free printable calendars free printable calendars free printable calendars

    printable calendars printable calendars printable calendars printable calendars printable calendars printable calendars printable calendars printable calendars printable calendars printable calendars printable calendars printable calendars printable calendars printable calendars

    printable calendars printable calendars printable calendars printable calendars 2017 printable calendars 2017 printable calendars print free calendars printable calendars templeteprintable calendars templete printable calendars templete

    This is an excellent post i seen.I have to thanks to you to share it. It is really what I wanted to see hope in future you will continue for sharing such a excellent post.

Leave a Reply