What’s the right format for CS Ebooks?

February 23, 2011 at 8:25 am 11 comments

This Chronicle piece about a new MIT Press book released using an ebook tool called “Scalar” interested me and got me spending time exploring EBook formats, seeking an answer to the question, “If we were going to do a good CS Ebook, one in which programming experimentation could be done from within the book, what format is most promising?” Scalar is not so interesting because you can only link to fixed digital media. I found Monocle much more interesting, because the content of pages can be defined with JavaScript, and so could include simulations and even a programming environment (a Lively Kernel?). I was disappointed and intrigued by the below comment — Sophie is considered a failure, but there’s a new Sophie in development?

The fate of Scalar, which has not yet been released to the public, also remains to be seen. Mellon had backed an earlier attempt to build multimedia-authoring software, called Sophie. The first version failed, says Bob Stein, a director of the Institute for the Future of the Book, who left the Sophie project after blowing through more than $2.5-million working on it. A second version is not usable now but may end up being the “holy grail,” he says.

“The easier you try to make an authoring environment, the harder it is to build it,” says Mr. Stein. “It’s easy to build an authoring environment that requires experts to use. It’s very hard to build an authoring environment that somebody can use after reading two pages of instructions.”

via Free ‘Video Book’ From Academic Press Challenges Limits of Scholarship – Technology – The Chronicle of Higher Education.

Entry filed under: Uncategorized. Tags: , .

Can focus on Video Games and Visual Effects enhance STEM education efficiency? HCI and Computational Thinking are Ideological Foes

11 Comments Add your own

  • 1. Kieran Mathieson  |  February 23, 2011 at 9:24 am

    Interesting topic.

    Rather than a new system, another approach is to add modules to an existing system that already handles content delivery, user reporting, authentication, discussions, feeds, user groups, etc.

    An example. CoreDogs runs on Drupal. Pages are made with Textile (a static markup language) with JavaScript for some examples, plus the usual movies for screencasts and such.

    Students do exercises in the book, but it’s just a simple AJAXy text storage thing at the moment.

    (There’s also a feedback mechanism for each exercise, for individual discussions between students and instructors (or TAs or whomever). An open discussion thread for each exercise as well. But the students just enter plain text that isn’t executed automatically – yet.)

    Drupal’s input filter system lets you create new tags for authors that can insert anything into pages, including chunks o’ functionality. E.g., in CoreDogs:


    adds an exercise description (text, images, screencasts,…), a field for each user to enter a solution, hooks to the feedback and learning metrics systems, discussion area, etc.

    If anyone wants to experiment with authoring systems to support learning, it might be more efficient to use an existing system with a flexible architecture.


  • 2. Alan Kay  |  February 23, 2011 at 10:01 am


    Where did OS 101 disappear to? (Ans: it got slain around 1980 — and completely done in when the terrible architecture of the web browser appeared and was not rejected)

    One of the most basic ideas in systems design is to make modules that have minimal dependencies.

    So we can see that much of today’s way of doing applications both in and out of a browser violates this very strongly. This is particularly disastrous when there exists no good design for some need.

    However, we could pretend that the local OS is what it should be — which is a parsimonious program whose job it is to treat the hardware as a cache for safely running programs of any kind, and to allow communication between these programs (some of which may deal with the end-user via screen and pointing devices).

    Squeak is a case in point. It runs everywhere, and requires only a few thousand lines of code in a kind a template to get access to input events, to paint into display buffers, and to map its file system to the local one.

    And Squeak runs just the same within a browser as a plugin. It does not care whether the features of FireFox are different than IE, etc.

    Any computer scientists should be able to do this with their favorite system (or something is very wrong with our field).

    What are the bugs?

    First, the local OSs are so bad that SysAdmins are worried about allowing exe files to be downloaded and run. This is in spite of the fact that all modern processors have protected address spaces which allow confinement.

    The browser allows code to be downloaded, but is not set up like an OS, so things that need to be fast or different (particle systems or better graphics or even being able to produce sound for crying out loud!) which can easily be written and run safely are completely outlawed by the unsophisticated browser folks.

    But let’s suppose we could convince (say) Google to do the simple computer science needed to make this right.

    Now we have the possibility of wide-ranging experimentation in just what e-books should be for all purposes. And they will run everywhere safely.

    And we have finally gotten around several perniciously bad designs that have made both omniplatform and progress more difficult that necessary.

    Best wishes,


    • 3. gasstationwithoutpumps  |  February 23, 2011 at 11:00 am

      Alan, protected address spaces have little to do with it. Any time you give a program access to the file system, you open the door for all kinds of malicious code to do damage.

      Malicious code is a big problem these days, especially as things of enormous financial value (like credit card information) is stored on computers.

      Many of us would prefer to have crippled browsers and PDF viewers, in order to have safer systems. I think that adding javascript capability to Acrobat Reader is one of the most malicious things that Adobe ever did, ruining the PDF format as a relatively safe format for distributing documents.

      Security is not provided by simply putting programs in sandboxes (which is what your suggestions about the OS amount to), unless the sandboxes are really limited in their access to the web and the file system.

      • 4. Alan Kay  |  February 23, 2011 at 12:00 pm

        You might guess that I understand your file system issue …

        But that issue is not a necessary one, and that is my point.

        And you might guess that my suggestions were not about “simply putting programs in sandboxes” ….

        But once one has confinement, one can then think about how to allow safe access.

        This is not a good forum for explaining why ideas that were (and are) radical departures from standard OS dogma and insecurities actually work better.

        But two of the many old ideas that are not in common practice which would help greatly if they were used, are the idea of “capabilities” (some modern thinking and writing can be found here
        and “pseudotime”, which preserves world-lines of persistent objects.

      • 5. Mark Miller  |  February 23, 2011 at 10:55 pm

        Alan, protected address spaces have little to do with it. Any time you give a program access to the file system, you open the door for all kinds of malicious code to do damage.

        This sort of thinking strikes me as superstition that gets in the way of progress in computing. An idea that’s been around for many years, though it’s just a “traditional” idea, so it’s not terribly great, is the idea of user roles, and the restrictions that go with that, but it does accomplish something along the lines of containment (addressing your concern with files). This idea is used in today’s operating systems, but to varying degrees of success, depending on the whole system strategy (if that’s what one can call it), and what users are willing to learn about and accept. One of the flaws that has opened a “hatchway” for malicious hackers, even with this system in place, is the idea of being able to “impersonate” a different user role (with the legitimacy of a password, or taking advantage of a higher privileged user’s access), just for a little bit, to get something more privileged done. That in my mind is a flaw in the user roles idea, and is likely the source of some of the disasters you’ve seen or heard about.

        As computer scientists we should not be saying that an idea is bad and out of the question just because the current (bad) implementation of it allows bad things to happen. Of course the bad implementation should be rejected, but we should recognize that the bad implementation is not the full embodiment of the idea. It’s a bad rendition of it! The idea should be to try to identify the flaws and then see if something better can be created (maybe something better than the idea of user roles for security).

        I agree with you that the current filesystems are not that great, that today’s operating systems are not that great, and that Javascript is not that great. Each of these technologies are factors in what you expressed fear about. The answer shouldn’t be that we merely retreat into a limited sense of what computing can be (“crippled” as you put it) because what we’ve been *given* by limited thinkers sucks. The idea of files and environments that could be programmed used to not be threatening at all (except to newbies who were intimidated by machines). The reason they’ve become threatening is because the industry has merely added on to these ideas without realizing the implications of doing it. Most every security measure that’s been added on has been a reaction to a security threat made possible by these flawed designs, not a product of understanding what’s really in play. A better answer would be to reconsider what exists and try to come up with something better.

        In retrospect, I find it striking that CS, for the most part, has held itself as such a slave to the present, with very limited ideas.

  • 6. Mark Miller  |  February 23, 2011 at 9:34 pm


    I think you’re on to the right idea with Lively Kernel, or something like it. I think it would be great if CS e-books were in fact their own programming environment that could be modified by students. What would also be needed is a sophisticated “undo” facility that would not only undo changes to text, but also changes to state, so that if students royally mess up they can get back to something stable.

  • 9. Mark Guzdial  |  February 24, 2011 at 10:32 am

    I just found that the Sophie 2.0 project has a downloadable version: http://sophie2.org

  • 10. Tony Hursh  |  February 25, 2011 at 9:24 pm

    The .mobi format used on Kindle (and others) and the .epub format used in IBooks (and others) are really just HTML under another name. Conceptually there’s no reason they couldn’t include Javascript, Squeak plugins, or even this guy’s project to implement Smalltalk in Javascript.

    I doubt if the current ebook readers would “play” the active content, but it should work okay in a browser-based reader.

    Now I’m tempted to add a slug of active content to a .mobi and load it on my Kindle just to see what happens. 🙂

    • 11. Alan Kay  |  February 25, 2011 at 11:04 pm

      But for the “book” part of “e-book” why would anyone want to use any form of HTML, either for authoring or presentation?

      For example, one could easily make an e-book with powerful programming capabilities in the Lively Kernel, etc., using a much more WYSIWYG desktop publishing UI.

      If we could get Google to put their new version of Native Client on browsers other than Chrome (such as the widely installed FireFox) then we could make a really good e-book rather more like a “Dynabook” in its power and reach …






Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 10,186 other subscribers


Recent Posts

Blog Stats

  • 2,060,649 hits
February 2011

CS Teaching Tips

%d bloggers like this: