Re: WiscWorlds app

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: WiscWorlds app

Howard Stearns
On Jul 7, 2006, at 9:47 AM, David Faught wrote:

> ...
>
> And yet another question:  I see in your announcement descriptions
> (and the recent Squeak mailing list) that the WiscWorlds app supports
> webcams.  What are the requirements for my PC to participate in this?
...

I don't know!  The DShowVideoDecoderPlugin.dll has passed through so  
many hands. Originally written by Yoshiki, and thence Clotho and Josh.
Our massive six-sigma Q/A process consisted entirely of me plugging  
in an old Intel USB Web cam and futzing with some sizes on the Squeak  
side until it worked (incorporated into the update stream).

Regardless of platform, the directions are:
1. Plug in a camera.
2. Start WiscWorlds.
3. From the menu, choose New->Video Camera Output.

The last of these makes your avatar carry a big TWindow over its  
head, facing away, with streaming video as the contents.
Subsequent uses of New->Video Camera Output cause additional TWindows  
to be created just in front of you, facing you. (Same feed. Only one  
camera supported per machine.)
As with any TWindow, these can be deleted with the 'x' button, or  
grabbed/dropped with the 'hand' button, or using the context menu  
(alt-left-click on windows).

You may want to select View->Overview in order to zoom out away from  
your avatar so that you can get at what is on your head.
You may want to use New->Mirror to see what you look like.

If you don't see live video, then it doesn't work. ;-)

By the way, New->Microphone Output does the obvious analogous thing,  
using a speaker mesh initially placed under the avatar's arm.  
However, in order to avoid feedback, you won't hear yourself, which  
makes testing a little problematic.

Reply | Threaded
Open this post in threaded view
|

Re: WiscWorlds app

Howard Stearns
[cc'ing croquet dev list because it is a GOOD question]

On Jul 7, 2006, at 12:09 PM, Kyle Hamilton wrote:

> Okay.  Now, the Stupid Clueless Newbie Question of the Year (pending
> lack of more stupid and clueless question in the rest of the year) is
> this:
>
> I have an installation of Squeak, within which I've set all my
> development tools the way that I like them.  How do I bootstrap
> Croquet into it?  (and WiscWorlds, for that matter?)
>
> -Kyle H

answer: you don't.

The Croquet SDK is an infrastructure-level toolset that could have  
been built on lots of platforms (Python, Lisp, etc.) but happens to  
have been built on Squeak.

If one were really... insane... one could create a different runtime  
on a completely different platform, which would inter-operate with  
other Croquet peers (each on different platforms) as a wire-protocol.

Your interest is apparently in the other direction -- using Croquet  
with all your other favorite Squeak stuff.  I'm not a Squeak expert,  
but I don't see any reason that this couldn't be done in principle.  
However, as a practical matter -- with no political connotation  
intended -- it isn't a priority to make Croquet compatible with  
everything else in Squeak.

[As I understand it, there isn't any requirement that ANY Squeak  
project be simultaneously compatible with all other Squeak projects.  
There are technical issues with trying to do so on a large scale in  
Squeak: namespaces issues, "fragile base class" problem, etc.  
(Spoken as dyed-in-the-wool Lisp guy.)]

So, for example, the Croquet image has $_ mean underscore by default,  
which means that a lot of Squeak packages won't load. (You can change  
this with
Preferences enable: #allowUnderscoreAssignment.)  Also,  Croquet is  
moving towards Tweak (wrt Morphic and MVC). Squeak may be moving  
towards Tweak, too, but has difference considerations in doing so  
than does Croquet.

As a consequence of all this, the SDK 1.0 beta is available as an  
image/changes/vm/sources. Opening a Monticello browser within the  
image does reveal several packages that make up the image, and you're  
welcome to use those, but don't expect, e.g., Andreas and DAS to drop  
everything to help you unwind some dependency.

[If I were more of a Squeak jock, I might be able to tell you how to  
save out projects and preferences from your favorite image in a way  
that they can be applied to the Croquet image.]

WiscWorlds is a prototypical application build on the SDK.  For the  
time being, it isn't a priority for it to be compatible/transferrable  
to anything outside the image it came in. In fact, the WiscWorlds  
installer does a bad thing on Windows: by default (you can turn it  
off at installation time) the installer will register a "SqueakOCX  
Control" and "application/x-squeak-source" Web browser plugin that  
uses the WiscWorlds version of the Squeak machinery.  We haven't been  
making sure that this is compatible with whatever other squeakland  
plugin you may have.

>
> On 7/7/06, Howard Stearns <[hidden email]> wrote:
>> On Jul 7, 2006, at 9:47 AM, David Faught wrote:
>>
>> > ...
>> >
>> > And yet another question:  I see in your announcement descriptions
>> > (and the recent Squeak mailing list) that the WiscWorlds app  
>> supports
>> > webcams.  What are the requirements for my PC to participate in  
>> this?
>> ...
>>
>> I don't know!  The DShowVideoDecoderPlugin.dll has passed through so
>> many hands. Originally written by Yoshiki, and thence Clotho and  
>> Josh.
>> Our massive six-sigma Q/A process consisted entirely of me plugging
>> in an old Intel USB Web cam and futzing with some sizes on the Squeak
>> side until it worked (incorporated into the update stream).
>>
>> Regardless of platform, the directions are:
>> 1. Plug in a camera.
>> 2. Start WiscWorlds.
>> 3. From the menu, choose New->Video Camera Output.
>>
>> The last of these makes your avatar carry a big TWindow over its
>> head, facing away, with streaming video as the contents.
>> Subsequent uses of New->Video Camera Output cause additional TWindows
>> to be created just in front of you, facing you. (Same feed. Only one
>> camera supported per machine.)
>> As with any TWindow, these can be deleted with the 'x' button, or
>> grabbed/dropped with the 'hand' button, or using the context menu
>> (alt-left-click on windows).
>>
>> You may want to select View->Overview in order to zoom out away from
>> your avatar so that you can get at what is on your head.
>> You may want to use New->Mirror to see what you look like.
>>
>> If you don't see live video, then it doesn't work. ;-)
>>
>> By the way, New->Microphone Output does the obvious analogous thing,
>> using a speaker mesh initially placed under the avatar's arm.
>> However, in order to avoid feedback, you won't hear yourself, which
>> makes testing a little problematic.
>>
>>


Reply | Threaded
Open this post in threaded view
|

Re: WiscWorlds app

Bert Freudenberg-3
In reply to this post by Howard Stearns
Am 07.07.2006 um 21:23 schrieb Howard Stearns:

> [cc'ing croquet dev list because it is a GOOD question]
>
> On Jul 7, 2006, at 12:09 PM, Kyle Hamilton wrote:
>
>> Okay.  Now, the Stupid Clueless Newbie Question of the Year (pending
>> lack of more stupid and clueless question in the rest of the year) is
>> this:
>>
>> I have an installation of Squeak, within which I've set all my
>> development tools the way that I like them.  How do I bootstrap
>> Croquet into it?  (and WiscWorlds, for that matter?)
>>
>> -Kyle H
>
> answer: you don't.

Different answer: you could, but it's slightly more work than just  
taking the Croquet image and customizing it with your preferred dev  
tools.

You can see the steps involved in bootstrapping Croquet from a 3.8  
image by looking into the "Homebase.image" in the download's  
"deployment" folder. I'll copy the steps here for reference:

[-------------------------------- Homebase  
-------------------------------------]
Construction:
[x] Started with http://isqueak.impara.de/webdav/iSqueak-3.8-6665.zip
[x] Updated all packages from http://source.impara.de/iSqueak
[x] Upgrade Squeakmap to 2.1
[x] Load Kernel and Morphic from http://squeaksource.com/ToolBuilder
[x] Update MC, MCC, PI from http://source.impara.de/mc
[x] Load Network-HTML and Scamper from SqueakMap
[x] Load Network-URI from http://source.impara.de/iSqueak
[x] Load Balloon3D from SqueakMap
[x] Load Games from SqueakMap
[x] Load VMMaker from SqueakMap
[x] Load YAXO from SqueakMap
[x] Load http://www.impara.de/~andreas/Tweak/3.8/preload.zip
[x] Misc Fixes:
        [x] Unload nsTileGame extension
        [x] Move classes from System-Compiler to Compiler-*
[x] Rename Graphics-Tools to GraphicsTools
[x] Rename Graphics-External to Balloon3D-External
[x] Unload Balloon3D
        [x] Smalltalk removeKey: #WonderlandConstants
        [x] DataStream initialize.
        [x] TheWorldMenu removeObsolete
        [x] FileServices removeObsolete
[x] Rename Games-Sokoban to Morphic-Games-Sokoban
[x] Dissolve Morphic-Games package
[x] Make up new Games package
[x] Dissolve NsTileGame
[x] Dissolve PackageInfo
[x] Integrate MethodProperties
[x] Integrate PlusTools patches
[x] Integrate CompiledFutures
[x] Integrate http://source.squeakfoundation.org/Balloon packages
        [x] Dissolve Morphic-Balloon
        [x] Dissolve Morphic-TrueType
[x] Integrate UIManager/ToolBuilder fixes
[x] Recompile the entire system
        [
                Smalltalk allClasses do:[:cls| cls compileAll]
                        displayingProgress:'Recompiling'.
        ].
[x] Clean up old CompiledMethods:
        [
                WeakArray restartFinalizationProcess.
                MethodChangeRecord allInstancesDo:[:x| x noteNewMethod: nil].
                Delay startTimerInterruptWatcher.
                WorldState allInstancesDo:[:ws| ws convertAlarms; convertStepList].
                ExternalDropHandler initialize.
                ScrollBar initializeImagesCache.
                SokobanMorph initFields.
                Vocabulary initialize.
                Smalltalk garbageCollect.
                GradientFillStyle initPixelRampCache.
                (CompiledMethod allInstances
                        reject:[:cm| cm hasNewPropertyFormat]) inspect.
        ].
[x] Clean up obsolete behaviors
        [
                Smalltalk obsoleteBehaviors inspect.
        ]
[x] Update from http://hedgehog.software.umn.edu:8888/Homebase/ 
install.mcm

[x] Fix fonts:
        StrikeFont allInstancesDo:[:aFont|
                | glyph underline arrowChar |
                arrowChar := Character value: 16r8F.
                glyph := aFont characterFormAt: $_.
                "save arrow glyph to arrowChar codepoint"
                ((glyph copy: (0@aFont ascent corner: glyph extent)) isAllWhite
                        and: [(aFont characterFormAt: arrowChar) isAllWhite])
                                ifTrue: [aFont characterFormAt: arrowChar put: glyph].
                "make underscore glyph"
                glyph fillWhite.
                underline := aFont ascent + 1.
                glyph fillBlack: (1@underline extent: glyph width-1@1).
                aFont characterFormAt: $_ put: glyph.
        ].

[x] Remove previous change sets:
                ChangeSet allInstances do:[:cs|
                        cs == ChangeSet current
                                ifFalse:[ChangeSet removeChangeSet: cs]].
[x] Remove empty categories:
        Smalltalk allClassesDo:[:cls|
                cls organization removeEmptyCategories.
                cls class organization removeEmptyCategories.
        ].
        SystemOrganization removeEmptyCategories.
[x] Clean out Undeclared:
                Undeclared removeUnreferencedKeys
[x] Clean out current change set

[x] Define new version:
        SystemVersion newVersion: 'Croquet1.0beta'.
        SystemVersion current highestUpdate: 0.
[x] Install update stream:
        Utilities updateUrlLists removeAll: Utilities updateUrlLists asArray.
        Utilities updateUrlLists add:
                #('Hedgehog updates'
                        #('hedgehog.software.umn.edu/croquet/Hedgehog/'))

[x] Condense sources:
        [
                Smalltalk condenseSources.
        ].

[ ] Verify sane sources:
        [
                CompiledMethod allInstances do:[:cm|
                        "cm getSourceFromFile ifNil:[self halt: cm who printString]."
                        cm timeStamp ifNil:[self halt: cm who printString].
                        cm methodNode ifNil:[self halt: cm who printString].
                ] displayingProgress: 'Verifiying source code'.
        ].
[-------------------------------- Tweak  
-------------------------------------]
[ ] Load http://hedgehog.software.umn.edu:8888/Tweak/install.mcm
        --- Preparations ---
        [ ] Scripting-Preload
        [ ] Scripting
        [ ] Islands
        --- Core Components ---
        [ ] Tweak-Preload
        [ ] Tweak-Hacks
        [ ] Tweak-Text-HTML
        [ ] Tweak-Compiler
        [ ] Tweak-Core-Proto
        [ ] Tweak-Core-Object
        [ ] Tweak-Costume
        [ ] Tweak-Basic
        [ ] Tweak-Maker
        [ ] Tweak-Platforms
        [ ] Tweak-Widgets
        [ ] Tweak-Morphic
        --- Tweak Extras ---
        [ ] Tweak-Tiles
        [ ] Tweak-Tools
        [ ] Tweak-Skins
        [ ] Tweak-Painter
        [ ] Tweak-Updates
        [ ] Tweak-DevTools
        [ ] Tweak-Explain
        [ ] Tweak-ToolBuilder
        --- Tweak ProjectBuilder ---
        [ ] Tweak-ProjectBuilder
        [ ] Tweak-Tests

[-------------------------------- Hedgehog  
-------------------------------------]

[ ] Load http://hedgehog.software.umn.edu:8888/hedgehogRC/install.mcm
        --- Preparations ---
        [ ] 3DTransform
        [ ] OpenGL
        --- Core components ---
        [ ] Croquet-Misc
        [ ] Croquet-Kernel
        [ ] Croquet-Router
        [ ] Croquet-Contacts
        [ ] Croquet-Copier
        [ ] Croquet-Objects
        [ ] Croquet-Demo
        [ ] Croquet-Window
        [ ] Croquet-Islands
        [ ] Croquet-Harness

[-------------------------------- Contributions  
-------------------------------------]

[ ] Load http://hedgehog.software.umn.edu:8888/Contributions/install.mcm
        --- Standard demos ---
        [ ] HedgeHacks-Morphic
        [ ] HedgeHacks-Painter
        [ ] HedgeHacks-Spreadsheet
        [ ] HedgeHacks-MPEG
        [ ] HedgeHacks-3Body
        [ ] HedgeHacks-BFD
        --- Minnesota demos ---
        [ ] OpenAL
        [ ] MenuUI
        [ ] Chat
        [ ] Vehicles
        [ ] TerrainBuilder
        [ ] SailingMorph

[-------------------------------- Final Tweaks  
-------------------------------------]

[ ] Remove previous change sets:
                ChangeSet allInstances do:[:cs|
                        cs == ChangeSet current
                                ifFalse:[ChangeSet removeChangeSet: cs]].
[ ] Remove empty categories:
        Smalltalk allClassesDo:[:cls|
                cls organization removeEmptyCategories.
                cls class organization removeEmptyCategories.
        ].
        SystemOrganization removeEmptyCategories.
[ ] Clean out Undeclared:
                Undeclared removeUnreferencedKeys
[ ] Clean out current change set

- Bert -