History was made this weekend, by getting various Smalltalkers together from around the world to discuss Squeak, we had an opportunity to set and reflect on goals that we could pursue for the coming year. Sometimes we get buried in the details so it was refreshing to step back and address issues about the "Squeak out of the box experience" and get group cohesion about where Squeak should go.
These notes are rough and will be redone later in the coming week, by myself or other contributors as they see fit. For the purpose of posting information early before many Squeakers and Smalltalkers head to Camp Smalltalk in San Diego I've decide to make this information available as soon as possible. If I've made a mistake or missed a name or not correctly covered a topic please correct it, that's why it's on this Swiki. Please note that on Saturday most of the event was video taped, contact STP for information on obtaining a copy of the video.
So the story begins…
Early Saturday morning I appeared at Stephen Pope's house and found John Maloney and Dan Ingalls having breakfast with Stephen. Between toast & jam, discussion flew from concepts about stereo systems complete with mercury-shielded wire, to Jitter 3 and where was Squeak going. Then off to the University…
At roughly 9:30 Stephen Pope began the discussion with: Where should Squeak go, how should the weekend progress, should we build code? Show code problems? Watch and play? Should we have Birds of a Feather sessions so people could share what they are doing?
John Maloney suggest we do some demos today since Dan Ingalls wasn't going to be here on Sunday. From there we went forward to introduce the people present at the meeting. (As STP mentioned over the weekend we had 26 people attend.) I attempted to capture some information on each speaker, however they should review and change as they see fit. You can find that information here. Squeakers at Squeakend 00
The ability to deliver 'dead on delivery' application. Hey its just an application (shrink wrapped). You don’t know it's a Smalltalk application, pocket Smalltalk delivers a Palm OS application, not Smalltalk. That of course is the key requirement and item we need to work on.
The key points of our Saturday discussion follow:
The out of the box experience is raw. Downloading doesn't work because of the linefeed issue, much time and energy is take with this issue, we should have solved that years ago. Hitting the window title changes it, ARG!. Since it looks different it's difficult to deal with from a novice user viewpoint, flop out scroll bars, PLEASE. We need a way to give a good first user experience. However remember it's still a development environment, but is it? Don't confuse it with a simplistic environment. If we can get the environment 70% there from a look/feel viewpoint on a particular OS then people will be happy. Right now it's a very different UI experience, this was agreed to be a bad thing.
STP When Smalltalk was a little girl she thought she was an OS. Is that true today?
Scrollbars are weird: run away run away…Hey if the look and feel is wrong then the person having a casual look doesn't like it and won't put the effort in.
It was pointed out the Red Hat distribution process work, we could have a version for VM coders, one for learning, one for novices. Many are special purpose and the market has decided that the metaphor works. We can bundle platform specific stuff, and address issues of general tools and architectures by having different distros
JMM asked what is our target audience? Lots of us do business applications. What is the interface design, what are we attempting to do to attract people.
Some people don't care about native look at feel, an application gives an experience.
KDE and Gnome are X-Windows applications a pain to write, how do we capitalize on that. Lots of energy how to harness. We now have a large large list of things to do, what are our shared values, what's important to get Squeak going in the world? It's difficult to judge what the targeted people want.
We need to lockdown morphs for novices, nothing like getting the halos up when you don't understand what the heck they are. Safety out of the box is key, then allow the learner to open up the experience.
Debugger well sometimes you do something and your are history, can we fix that.
Coffee ensued…
STP gave a tour of the campus and the beach bluffs, the laid back California lifestyle.
(Pictures? Pictures? JMM: I saw some interesting Digital camera there, where do those pictures lie)
Neat Applications today? What can you do today, that we would want to do?
Applets (embedding in browsers) Flash hey don't forget that. ShockWave. Etc. Flash supports form etc, someone in the group admitted that they did Flash from within Visual Basic. Great way to do simple input without involving a specific tool's GUI builder.
Shell scripts, why not Squeak as a shell script. As mentioned we should have a VM that can run short scripts. Currently people use shell scripts from the command line, but Squeak would be better but no support for that yet..
What about Electronic device support, cameras etc. Ability to pull in material and manage from consumer devices. Need easy way to do plugins for that type of application.
Lots of stuff in the image, but no time to learn it, again an issue of time and energy.
What is Morphic? A dummy's guide to Morphic is needed. John Maloney was asked to contribute a chapter on Morphic to the book that is being constructed. For some people most of their experience is working to learn Morphic, then discovering that it is simpler than expected. For many of us with lots of Smalltalk experience we accept it, but for others its difficult to understand the original why, why things are done in a particular manner.
Tim pointed out there is some good material now on the web. There is interest for LearningWorks for Squeak but who has time to migrate the package. {takers} The primrose path starts here, but this all takes time. STP pointed out work he is doing on siren documentation and early user experience (later in the weekend he reviewed that with us). LearningWorks had active books, will someone port that?
It was suggested that Squeak should shipped locked down, then the user can jump to his knowledge level that allows him better experience Squeak. We should jump to Morphic directly this gives better experience, but it is slow… Could we make MVC a separate environment? Yes Dan pointed out MVC is mostly separate we could dispose of it.
(JMM 03/14/00 Ooops perhaps 'dispose of it' (MVC that is) is too an aggressive a term, seems I need to reword that. The thought was that MVC should be a separate project, and a decision is made to file it in and use it. MVC should NOT be the default offering. We did discuss having a 'kitchen sink' image where everything lurks to satisfy some developers that require all things ever created and used past and present. Yes we realize Morphic needs work to make it pleasant for us old VW programmers to use. I personally doubt MVC will ever disappear, so don't worry.)
Here is an opportunity to make changes to the environment and we should seize the opportunity and run with it to better the experience. {Key point to drop MVC or make it a file in, Key point to go with Morphic at the start}
Someone pointed out we could take an Envy image and read it and run it. This allows for porting to other platforms and different OS versions.
Could the top layers become Squeak? Say could we take VisualWorks window specs and translate to Squeak (yes that has been done).
John Sarkela mentioned a port.
JMM noted that browsers are a delivery tool, more integration is needed.
Dan pointed out that Morphic is just a delivery tool for the visual image. Under the cover it is MVC compatible, but of course there is more to allow animation.
MVC is accessible, Morphic is not, not a quick learning curve. Many people today still build MVC, that wasn't the vision, they should be doing Morphic.
Dan admits that Morphic started out as 10 methods now it is huge. This code creep was done by Squeak Central, yet! However someone could break out just that information into a new class to make it easier for people to learn. {JMM Sounds like a Squeak Central project to me}
Someone asked if there are two Morphic visions, two camps? Layout issues? What are the core protocols?
Maloney pointed out that scripting added another complication, he then offered to do a 1/2 hour demo on Morphic (loud applause). This follows later, {Maloney also offered to fixup my material on this and ensure it’s a good teaching tool.}
Sarkela wanted to know an effective way to build Books. Hey it's simple but again the curve is hard. For example Dan spent a month building the back to the future book,(mostly I suspect it was a feedback coding cycle for him), but it should now be simple to build books.
STP then tried to discuss where to go next. So much to learn, perhaps we could do tag team tool tricks. Mostly for other to learn something new since some of us don't have access to other very very experienced smalltalkers.
STP did a short poll of the group. It's amazing how many of us did punch tape, and punched cards. Does that date us?
Squeak-end or Squeak-Before.
Squeak? Why it's not called Smalltalk. Well Dan said because it was not political correct at the time at Apple to call it Smalltalk. But no words of wisdom why it's called Squeak. In fact at dinner your author attempted to grill Dan Ingalls on that topic and got nothing, perhaps a sly grin…
Maloney gave an example of Morphic
First how to find out how to make the default Text font bigger.
We guessed and use find font in a selector, then fell back to 600x800
{This should be easy we suspect it's there but no-one could find it}
Ok up to the Create research lab to see an demo from Dan Ingalls.
We got a 1024x768 projected image on acoustic tiles cool…
Dan brought up his OOPSLA demo.
{JMM OOPSLA notes are here}
The Back to the Future project, the ability to drop in a morph and have text flow around. Note black halo allows you to pick it up and move it around. The brown halo moves it around with the world so the surrounding Morph redraws to flow text around the Morphic you are moving.
The Sound input demo.
Setting the FFT rate, the spectrum, and to display the sonogram.
Night Over Bald Mountain
Disney Content
Play music, see music score.
Given a movie morph from Fantasia we need to connect the movie to the sound.
We drag a tumbnail of first frame to the music score. This starts the movie when the sound starts. We then stop the movie and grabbed a thumbnail from a point on the movie to match a particular point in the score. Now on playback it drops frames or extends the movie to match sound track. Currently it does not change the sound track. The group agreed that fiddling with the sound track would be a harder project.
The movie morph has comments about how to build a movie in the correct format.
Band of Bears Demo In this example we had some bear characters playing a band, along with a midi controller. This example was built used the scripting system. One of the features was that you can pick up a character and change his stereo pin by moving him left or right and move him back or to the foreground to change the volume, the character of course resizes.
Dan then showed a tool that allowed you to change the FM envelope for the player. The envelope editor only took a few methods it was mostly for free given some generous resuse, line vertices etc are already provided. For the keyboard diagram we internally places a bunch of morphs on the keyboard visual, then on mouse down we stop the current sound, then play the new sound for the pressed key.
Smalltalk 72 Demo
Dan did attempt to write a small program but was hampered by the fact that the 72 grammer is very very different and has some usage of iconic characters as command tokens.
Smalltalk-76 hopefully will be resurrected since it runs in 100k, has no browser.
Flash Graphics. Vector versus BitMaps
In the given example a pixmap of the character is 41064 bytes, the flash version is 1064 bytes.
If we resize the pixmap it gets bigger and looses resolution. The flash version gets bigger but provides great resolution
Someone pointed out that Smalltalk V is Smalltalk Vivarium (not Virtual) It was created to support Alan Kay's Vivarium work at Apple and had to run in a very very small memory footprint.
Alice Demo
Dan then went on to show a demo they are working on which takes advantage of Alice. He brought up what looked like a browser window and zoomed into a browser image, which changed into an Alice world with painting on the walls. We can change the wall textures via drag and drop. And of course add new pictures to the walls. The objective to allow you to customize the walls etc as your personal experience. Also set to music. The images are of course like, one of them was a browser to the source code for the project. Dan remarked that Alan Kay had taken this and created a personal picture library.
Although there is no hardware acceleration, response is ok. Andreas Raab is working on this, his work has changed frame updates from 1 to 2 a second to 40?
Someone noticed a artifact on the floor, Dan and other realized that it's the back of the browser window in our line of view. No collision detection so we can move through the walls. More of this is coming… In theory when we finish this then Disney will distribute via the network.
Disney's Stage One Plan Disney's plan for stage one is to have the project as the export unit and to work on it on a server basis. So you can save a project then distribute from a server. As someone pointed out a project on the wall could be from somewhere else, say a thumb nail. Animated? Yes. {JMM asked if the tumbnail could have a protocol and be intelligent, you've only got a few seconds to peak someone interest and if it's smart versus just being an image then you could do more}
Got to see some of CREATE (web views are where STP?) Pictures folks?. Also got to see the world class recording rooms. STP related that they had good expenditure on sound proofing and equipment the founding professor spend grant money on infrastructure versus computer equipment which goes obsolete from year to year.
Back to sorting the work.
John Sarkela
Shrinking the image is wrong, we need to start with a bare image, then grow it. The key idea of modular, or declarative Smalltalk to build an image of Smalltalk from nothing. The programming environment is full sized, but the running code's namespace is small. The trick is you work with a semantic version of the code and it runs in an environment separate from the image you are building the application in. {A keypoint was made that we start small and grow large, not the other way around. Dan Ingalls pointed out the paring scripts get broken each revision and repair is painful, a new way of thinking is needed)
4th estate has looked has looked at the ANSI Smalltalk stuff and built repository stuff and will soon release a system that allows you to declare a set of Smalltalk classes, and initialization information then build up an environment. Sarkela showed us this system later in the weekend. {I believe he said it was being open sourced}
Dan Ingalls points out that they have images that allow swap in/out of functionality. For example the current release can be swapped out to 1MB in size. As functionality is needed then it is swapped in.
Team V, Envy tools are needed to allow you to version stuff. Change sets are great, the dual change set is wonderful, we'll raise a toast to Ted and Scott for this functionality.
Closures: Rules for ansi, rules for squeak, don't match. This is something that needs to be fixed.
Tim Rowledge
Exceptions: Authors use them, followers don't.
Dan Ingalls said that Exceptions are in flux, Craig did one, the 4th estate did one. Squeak Central adopted the 4th estate one, but there are problems, non-local returns, a fix is coming in next VM. Not used everywhere. Both use stack stitching.
Steve Pair noted you can do a better job by marking the stack.
A short term decision was to adopt Craig Latta's fix. All this affects a Jitter implementation. A cleaner implementation should be done after JIT 3, perhaps using stack marking.
Debuggers/Browsers Why two, they should both be the same. Scott Wallace is looking at integrating the browser with the debugger, start with a raw object, then explore/create from there. Something is coming. If you want to work on it talk to Scott. Scott.Wallace@disney.com{Hint takers?}
However if we want to change the tools then this is a big job and a issue of freezing everything. Dan Ingalls pointed out Tim's VM work needed to be folded in, along with Jitter. Lots of critical low level work. Tim pointed out that most of the work with his VM was simple expect for one plugin. {JMM On Sunday Tim did review the plugable VM work, but your author was busy doing something else, Tim hopefully will relate more information}
Dan Ingalls pointed out discussion from a gathering like this is valuable. This can change direction from some of the original direction they were pursuing.
Native Threads Not easy, no reentrant VM. Do we need them. Smalltalk-X is great for this. Lots of multithreaded stuff can be made serial. However the issue is how do you do multiprocessor support! Running multiple images and share memory? JMM stated time is short, although machines are becoming multi-processor is that important to Squeak? Remember the first 10 minutes.
Someone pointed out there is work going on sharing resources between Squeak and other applications, ??? will post something on this later. This allows one to allow threads within a Squeak image talk to each other, simple but powerful. Works under Linux, should work for windows/Mac.
Prototypes:
Good or Bad? Some discussion.
Dan Ingalls pointed out that one day 10,000 people could suddenly want to try Squeak out. Gee we need to sort this out, what is the biggest bang for the buck. Tim R tried to reorganize our list of issues into:
Object Engine
Application Framework
User conveniences
Novice experience.
We need some authors! "A taste of Squeak" These aren't technical books, the target is different.
Dan Ingalls
Remote projects should allow you to link to content on the internet.
We need to clean up Squeak.org. We need to cleanup a release image. The user experience should be a good experience, you've only an hour to get a convert. If Squeak interest suddenly blooms then the PR is very important. If a bunch of tech writers for magazines want to spend a weekend reviewing Squeak then they should have a good experience. The Squeak Look and Feel should look mostly like stuff today. If they look unlike something today then a user is in terror.
Could we have a video, or a screen capture. Marketing material is important. Someone needs to assemble this and make it available. STP offered to build something for viewing. Tim R thought he could get Adele Goldberg to do it.
{Both these are action items guys JMM}
JMM suggest we should have a book "Fun with Squeak in 24 hours."
Dan Ingalls said all this is valuable
DVD is coming technology, CDROM quicktime, etc as light weight publication can drive heavy publication like O'Rilley.
Laurence Rozier then discussed where does Dan Shafer sit? Dan has lot of exposure as a speaker, has professionally interested in being an promoter for Squeak. But we need to address the first hour experience. If we can do the polish then we can get the exposure. So how should we proceed?
What does Dan Ingalls want to take home? The top layer isn't hard to do, but it makes little difference to the stuff under the covers, like callbacks, multi-threading. But it will make the user experience better. It should look like a marketing slide when opened. Dan is happy with were things were going in the Squeak-end.
{JMM think -> cake icing, worry about contents later, carrot, banana?}
It was aksed what is content size from a screen resolution? Disney does something like 342x512? to fit content into browser panel with advertising etc. Some discussion, no resolution? 1024768?
Marketing? Declare it a project. See who signs up.
{who}
JMM stated Gnome, need an interface to or from us.
Some pointed out lots of applications are just simple business stuff, they want a page form layout. Some trivial hooked up logic. Fabrik answers that.
At this point we retired for dinner. STP arranged for the entire group, plus some spouses to met for dinner were we all had a wonderful time for many hours til very late into the evening.
Did you know Dan has an interest in weather stations?