127 karma · joined May 26, 2008
Haskell has exceptions [1].
If a change in a datatype forces you to update 1000s of LoCs, you are doing something wrong.
EDIT: Okay, I can see the point. The linked ticket http://hackage.haskell.org/trac/ghc/ticket/5624 gives a better motivation: being able to load a module that doesn't type check in GHCI and view inferred types, and, maybe, invoke some isolated functions. But why not just limit it to GHCI, though?
And, FFS, would SPJ and Co. please stop breaking core libraries and tools with minor releases? We had to wait for cabal-install to be ported for 7.2 and 7.4 for a couple of months, at least. Why have the bloody Haskell-Platform if you can't keep up with the compiler releases.
[1] J. B. Wells. "Typability and type checking in the second-order lambda-calculus are equivalent and undecidable." In Proceedings of the 9th Annual IEEE Symposium on Logic in Computer Science (LICS), pages 176–185, 1994. (Shamelessly copied from Wikipedia)
* I like LaTeX/beamer for the declarative style. If I need a two-column layout on my slide, I just type it in and it works. If I need to reveal parts of the slide step-by-step, I just type in \pause and it works. Also, I rarely need to adjust the font sizes etc.: the defaults are just sensible, if not outright beautiful. And, also, custom themes and goodies like the progress indicators are great (see the Singapore theme).
* I like Impress for the fact that I have a fine grained control over a layout, should I need a something that goes beyond a columns/rows layout. Also, I can import and resize graphics without pain (in LaTeX it takes time). Also, I have more choice of animations, but adding them is very time consuming. Finally, I don't need to rebuild the slides after the tiniest change as with LaTeX.
The HTML/SVG/CSS/JS seemed to have a potential to offer the best of both worlds, but the scaling problem (as described above) was throwing me back. In the process I've written down a list of features for my dream presentation tool:
* beautiful typography
* flexible layout: I should be able to specify the layout declaratively (e.g. two columns and a header, or a header, block of text and a table) with the tool figuring out the rest (font sizes, margins, etc) or fine-tune it manually where I can specify the font sizes and positions of every element
* themes and widgets (progress indicators, timers, slide numbers etc)
* should be easy to embed pictures and diagrams with scriptable animations (SVG+JS seems to be ideal for it, and I've used Inkscape for a while). The animations should be: rotation, translation, resizing, showing/hiding, change of color and zooming (the latter one being the only thing that I'm missing in both LaTeX and PowerPoint/Impress).
* being able to edit the presentation on the fly. I don't want to rebuild the slides every time I fix a typo.
Yep, I've used LaTeX/beamer for quite some time. It's great for some things (not only math, but really any advanced text formatting and layout and some simple animations) and awful for others (graphics, mostly). PowerPoint, on the other hand, allows you more fine-grained control over layout, and is more graphics/diagram-friendly -- but having to do everything with a mouse is kind of daunting. I'd rather type everything in, let the system lay it out for me and then correct what doesn't look good.
And also some loose bits of advice from me:
* 10 minutes is not enough to present "all the material in your paper". 30 minutes is not enough either. So, don't even try. Even if you talk fast enough, the audience won't get it. I'd expect 10 minutes be enough for a high-level overview of the paper, but if you can include just one bit of technical information which you think is the most valuable bit, that would be brilliant.
* reading from slides is an atrocity, so don't.
* and having too much text on the slides isn't cool either (the same applies to bullet lists, unless you absolutely have to). If you do, expect many people not to listen to you while they are reading the slides. So, only include large bodies of text if it's some code. And even then, format it nicely (color helps, but don't rely on it to convey useful information).
* "pictures are worth a thousand words"... unless they are badly drawn. But a good picture is a great alternative to large bodies of text.
* practice your talk, especially if you haven't given many of them. That makes huge difference in how well you perform. And remember, a technical talk is still a performance.
* if you are worried that your mind would go blank once you take the stage, hard-script the beginning of your presentation and read from the paper. Eventually, you will warm up and won't need it anymore, but it's great to quickly overcome stage fright and the like (helped me a great deal).