-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Quick summary of a long email: I have a couple of months free, which I am thinking of spending writing or helping write some classes that let me treat Squeak as smart paper. To me, this seems related to BookMorph and its subclasses and rewrites, how Projects are treated, and how people give presentations using Squeak. Right now, I am looking for other people who care about this idea or have requirements that should affect the solution, related code that already exists, and collaborators. I don't have set requirements or design notes yet but will send them here for review when I (hopefully we by then) do.
Several things have been bouncing around in my head lately: - - I recently resumed work on an application with a tabbed interface which I wrote a couple of years ago. Back then, I rewrote a subset of BookMorph and TabbedPalette to support this since they weren't doing what I wanted and were too crufty for my refactoring skills at the time, but lately I've been thinking about Ned Konz' exhortation to extend others' existing packages vs. write new ones from scratch. - - Also a few years ago, I gave a presentation of an early version of this tool using a StackMorph. It was frustrating to set up despite the very useful tutorial, and very embarrassing when the floating controls disappeared on the second slide, so I couldn't advance to my demo. I see a couple of new options on SqueakMap (one of which is also a BookMorph rewrite) now. - - I've been using OneNote on my Tablet PC, which is a neat concept and is better than the other alternatives I've tried, but doesn't actually do everything I want (plus it's giving in to the Man). - - My computer is not yet as useful to me as a piece of paper, yet it could be so much more!
So, I took a deep look at BookMorph (and a shallow look at its rewrites, other presentation software, and the Projects stuff). It seems clunky in places, yes, but there are several really excellent concepts buried in there: - - A page/slide/project. That is, a laid out collection of morphs and behavior that you want to look at/experience together. - - Conscious navigation between pages, including transition effects and sounds. - - Different interfaces for this inter-page navigation: thumbnails, tabs, button controls. - - Navigation on a page: zoom, scroll. - - Templates for pages/slides. That is, a similar layout for several pages, with different data in each. - - Nested pages.
I'd like to see one, consistent underlying library that uses these concepts to support presentations, notebooks, tabbed interfaces, HyperCard-like stacks, and projects. I want to be able to easily create presentations and interfaces that work smoothly and that I really like, or at least that nobody has to gripe about.
Here's my plan: - - Identify related existing code. - - Identify potential users, opinionated folks :) & collaborators. - - Write up some requirements & design notes, and have whoever cares look them over. - - Refactor, implement or whatever based on the design notes.
Existing code I know of so far: - - BookMorph, its subclasses & friends - - SlideshowMorph on SqueakMap (with tests, w00t!) - - Slide Auditor on SqueakMap - - Spiral on SqueakMap - - InternalThreadNavigationMorph & other stuff in MorphicExtras-Navigation - - Projects & World-related stuff
If I missed your code, I'm sorry. Please let me know. If you haven't released it yet, I would be very grateful if you were willing to do so, or send me a copy of your working notes/current code/draft.
Potential users: - - Folks giving presentations. Based on searches of SqueakMap, conversations about presentation software on squeak-dev, code authors and general scuttlebutt, this includes Stephane Ducasse, Joshua Fein, Bob Arning, Ned Konz, Craig Latta, Lex Spoon, Andreas Raab, and Alan Kay. - - OneNote users. Dunno who this includes beyond me and Ron Teitelbaum but I'm sure there are more of us out there. - - Folks writing tabbed or other page-like interfaces. So far this includes at least me and Cees de Groot. - - Possibly, all Squeak users if the projects & world stuff is really part of this. Looking at the Project stuff might be a second step. What do you think? - - Did I miss anybody in the above categories? Sorry, and please let me know if so. - - Do any other uses leap to your mind?
I'll start on the requirements by listing what the existing code seems to be trying to accomplish. If you have requirements beyond this, especially if you are one of the people listed (or who I should have listed) above, please holler.
Thanks for listening, if you made it this far, and I'd love to hear your thoughts.
Brenda