1. What do Object Oriented programs, JavaScript spaghetti callbacks, Prolog predicates, and Haskell Monads all have in common? Regardless of what programming language you employ it all boils down to Control, more or less of it. Simplicity and complexity arise respectively from principled and unprincipled wielding of Control. While this talk will deliver no conclusions it will hopefully give us all something to think about the next time we sit down to write some Control.

    # vimeo.com/68320417 Uploaded 580 Plays 0 Comments
  2. This is the presentation I gave about Emacs Org-mode for the GNU Hackers meeting in Paris, august 2011. Thanks to Ludovic Courtès for his kind invitation, to the audience for the nice questions and to IRILL/Jason Self for providing these videos. Check all presentations and videos out here:


    The first 8 minutes are a general introduction of Org-mode, similar to the one I gave in FOSDEM.

    From there, I do a small interactive demonstration of basic Org features: headlines, TODO keywords, agenda views, clocking tasks and clock reports, properties, HTML, LaTeX, OpenDocument Format exports, tables, Babel source code manipulation, etc.

    Demonstration is done using Emacs 23.3 and Org 7.7 and no configuration at all.

    The presentation ends up with "The OrgFather" -- see lumiere.ens.fr/~guerry/theorgfather.html

    Have fun!

    # vimeo.com/30721952 Uploaded 8,692 Plays 0 Comments
  3. The schism between static and dynamic languages has been long and bitter. Static types provide performance, safety, and intelligent IDE assistance. Dynamic languages are simpler and make it easier to use polymorphism and metaprogramming. I observe that in dynamic application frameworks like Rails the essential uses of polymorphism and metaprogramming occur (or could occur) during an initialization phase of the program. For example, generating classes for an Object Relational Mapping. Accordingly I demonstrate a language that is dynamic during an initial phase and then static henceforth. Initialization is performed by a bounded partial evaluation that computes all types, instantiates all generics, and executes all metaprogramming. What remains after this partial evaluation is a statically type-checked runtime. A notable (but perhaps orthogonal) feature is that types are implicit, never being mentioned within the language syntax or error messages. This approach may unite much that is good in both static and dynamic programming.

    # vimeo.com/74314050 Uploaded 5,963 Plays 6 Comments
  4. Organizing Functional Code for Parallel Execution; or, foldl and foldr Considered Slightly Harmful

    Guy L. Steele, Jr.; Sun Microsystems

    International Conference on Functional Programming (ICFP)
    Edinburgh 2009

    # vimeo.com/6624203 Uploaded 15.7K Plays 3 Comments
  5. This tutorial explains what live.path, live.object, and live.observer do and how to use them.

    # vimeo.com/6800100 Uploaded 14.3K Plays 11 Comments



Programming using C++

Browse This Channel

Shout Box

Heads up: the shoutbox will be retiring soon. It’s tired of working, and can’t wait to relax. You can still send a message to the channel owner, though!

Channels are a simple, beautiful way to showcase and watch videos. Browse more Channels.