Dear Squeakers and Tweakers,
I have been charged with building a website for a creative arts group, and I have to say I am fed up with the web, web2.0, AJAX, even Seaside (sorry avi) and all the rest. Its a long story I have been coding javascript in a little gizmo called TiddlyWiki for a year or so to try and do something a little clever with Web Browsers as a client, to be honest its hard work. This week I was looking at Laszlo a fairly cool tool (though on the same day I found a book about Laszlo son of Dracula which didn't bode well). In Laszlo you throw together an XML file which reflects the structure of your UI, the sort of thing you would do with a drag and drop GUI builder 15 years ago, sprinkled with some javascript for defining behaviours, and pop your data into a second XML file. This text file collection is requested by your browser which (when developing) hits a Java Tomcat serverlet which churns compilers for a minute or so to produce a swf file that will run on a flash plugin (but it doesnt bother to use any features of flash it just wants the renderer and vm). Within 1 day I find that Laszlo cant tile a graphic as a background and I hunt around and find it has a draw canvas that implements part of the Web Hypertext Application Technology Working Group spec for drawing. I looked at this spec and the future of the humble browser looks ominous, complicated is not the word for it. In this whole venture all I am thinking is What a mess! Then I found Tweak, and loaded a squeak image - as you do - and lo, we launch pretty quickly dont we, compare that with mozilla or acrobat and I am on a 500Mhz box remember the old days? All I want is to draw a picture, display some text, and share it with my friends. It would be nice if that text was familiar to my friends and you could click on things the way they are used to, but thats all I am asking for. A bit of user interactivity might be nice. So... what would it take to simply take squeak and present it in such a way as to be familiar to the average web browser user. Take a look a Tweak, Large fonts and we are almost there, some form of text layout engine, have text with inlined images and widgets. We are so close to having something useable but we never quite make it. thoughts anyone? Keith ___________________________________________________________ All new Yahoo! Mail "The new Interface is stunning in its simplicity and ease of use." - PC Magazine http://uk.docs.yahoo.com/nowyoucan.html |
Keith Hodges wrote:
> Dear Squeakers and Tweakers, > > I have been charged with building a website for a creative arts group, > and I have to say I am fed up with the web, web2.0, AJAX, even Seaside > (sorry avi) and all the rest. > > Its a long story I have been coding javascript in a little gizmo called > TiddlyWiki for a year or so to try and do something a little clever with > Web Browsers as a client, to be honest its hard work. This week I was > looking at Laszlo a fairly cool tool (though on the same day I found a > book about Laszlo son of Dracula which didn't bode well). In Laszlo you > throw together an XML file which reflects the structure of your UI, the > sort of thing you would do with a drag and drop GUI builder 15 years > ago, sprinkled with some javascript for defining behaviours, and pop > your data into a second XML file. This text file collection is requested > by your browser which (when developing) hits a Java Tomcat serverlet > which churns compilers for a minute or so to produce a swf file that > will run on a flash plugin (but it doesnt bother to use any features of > flash it just wants the renderer and vm). Within 1 day I find that > Laszlo cant tile a graphic as a background and I hunt around and find it > has a draw canvas that implements part of the Web Hypertext Application > Technology Working Group spec for drawing. I looked at this spec and the > future of the humble browser looks ominous, complicated is not the word > for it. In this whole venture all I am thinking is What a mess! > > Then I found Tweak, and loaded a squeak image - as you do - and lo, we > launch pretty quickly dont we, compare that with mozilla or acrobat and > I am on a 500Mhz box remember the old days? > > All I want is to draw a picture, display some text, and share it with my > friends. It would be nice if that text was familiar to my friends and > you could click on things the way they are used to, but thats all I am > asking for. A bit of user interactivity might be nice. > > So... what would it take to simply take squeak and present it in such a > way as to be familiar to the average web browser user. Take a look a > Tweak, Large fonts and we are almost there, some form of text layout > engine, have text with inlined images and widgets. We are so close to > having something useable but we never quite make it. > > thoughts anyone? |
Dear Brad,
I am getting psyched up to do this, Its going to be a quest, a rally call, I think time and effort spent seeing if I can deliver a squeak hosted web page will be time well spent. Heck I dont care if my users have to load a plug in, if I just pause to think about it I just hate the web architecture that much. These new technologies dont even have rotation in their base rendering engine, I just took the trash can for a 360 degree spin just to remind me how good it feels and working in a code browser rotated at 33 degrees just because you can do it and no one else can! Step 1, I discovered Text Tool in tweak, and it works! Bliss Step 2, find some more fonts, X11 Fonts are there in SqueakMap, could use some more though. Step 3, lets go get that Squeakland plug in.... Keith ___________________________________________________________ All new Yahoo! Mail "The new Interface is stunning in its simplicity and ease of use." - PC Magazine http://uk.docs.yahoo.com/nowyoucan.html |
In reply to this post by Brad Fuller
> have you thought about the Squeakland plugin and starting there?
There seems to be little that the Squeakland plugin can't do relative to the various other web options. Its only flaw is its lack of ubiquity. ===Blake=== |
In reply to this post by Keith Hodges-2
We are trying to do this with Sophie, building books you can interact
with, then publishing to a http server, then reading the book from the http server in a Sophie authoring/reader application. As pointed out you could do this in a browser plugin, but that's a more complicated solution since that environment is complex (plugin, vm, security etc) and sometimes broken like on the macintel environment at the moment. I'll point to some older movies we made, and at the moment we're quite busy gearing up for an alpha release. http://www.geeksrus.com/sophie/Welcome.html Lastly, we noticed that via quicktime integration we can enter a URI for the quicktime readable media, local or remote and get streaming video/audio which makes it feasible to playback movies/ audio from the server in a usable manner, quicktime and a fast internet connection makes this quite transparent. On 25-May-06, at 6:10 PM, Keith Hodges wrote: > > So... what would it take to simply take squeak and present it in > such a > way as to be familiar to the average web browser user. Take a look a > Tweak, Large fonts and we are almost there, some form of text layout > engine, have text with inlined images and widgets. We are so close to > having something useable but we never quite make it. > > thoughts anyone? > > Keith -- ======================================================================== === John M. McIntosh <[hidden email]> 1-800-477-2659 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ======================================================================== === |
In reply to this post by Blake-5
[hidden email] wrote:
>> have you thought about the Squeakland plugin and starting there? >> > > There seems to be little that the Squeakland plugin can't do relative to > the various other web options. Its only flaw is its lack of ubiquity. > > ===Blake=== > I started but cant seem to get the plugin to work at all as yet following the instructions on squeakland. I am on Windows 2000 with IE6 Firefox 1.5 Johns Sophie videos look cool. anyone got any ideas about how to get the squeakland plugin working (even with 3.8 image perhaps or whatever VM tweak is using) Keith ___________________________________________________________ All new Yahoo! Mail "The new Interface is stunning in its simplicity and ease of use." - PC Magazine http://uk.docs.yahoo.com/nowyoucan.html |
In reply to this post by keith1y
Somewhere Avi had a Seaside demo where he presented the Squeak desktop as a graphic to the web browser. Clicking on the graphic in the browser sent the click through to Squeak so you could browse through your Squeak environment. No text entry, dragging, or animation. Perhaps not too hard to add those with javascript libraries.
On 5/25/06, Keith Hodges <[hidden email]> wrote: Dear Brad, |
Multi-user would be a problem in such an environment to resolve as well.
On 5/26/06, Darius Clarke <[hidden email]> wrote:
|
Darius Clarke wrote:
> Multi-user would be a problem in such an environment to resolve as well. Yeah, how does that work? I know nothing about it, but it would seem that it wouldn't. > > On 5/26/06, *Darius Clarke* <[hidden email] > <mailto:[hidden email]>> wrote: > > Somewhere Avi had a Seaside demo where he presented the Squeak > desktop as a graphic to the web browser. Clicking on the graphic > in the browser sent the click through to Squeak so you could > browse through your Squeak environment. No text entry, dragging, > or animation. Perhaps not too hard to add those with javascript > libraries. > > > ------------------------------------------------------------------------ > > > |
In reply to this post by Darius Clarke
Check out
http://www.logowiki.net
which was done by several of us, including Avi, Colin Putney, myself, etc. This uses the Pier wiki, but the Logo interpreter is all done in JavaScript, so the Logo part of the pages is WYSIWYG and does not require editing modes. This could be done for Etoys as well (with a fair amount of extra work).
Cheers, Alan At 06:55 AM 5/26/2006, Darius Clarke wrote: Somewhere Avi had a Seaside demo where he presented the Squeak desktop as a graphic to the web browser. Clicking on the graphic in the browser sent the click through to Squeak so you could browse through your Squeak environment. No text entry, dragging, or animation. Perhaps not too hard to add those with javascript libraries. |
In reply to this post by johnmci
John M McIntosh wrote:
We are trying to do this with Sophie, building books you can interact with, then publishing to a http server, then reading the book from the http server in a Sophie authoring/reader application.Can you explain this a bit more? Will the user have a squeak image? And, then would they download a "book" via something akin to Squeakmap? (where the Book Repository (the Squeakmap) is a repo of books the user can browse and "install" a selected book into the image?) How do you see this architecture? Does the user interact with the book locally? brad
--
Brad Fuller Sonaural Audio Studio +1 (408) 799-6124 Hear us online www.Sonaural.com See me on O'Reilly |
Likely they'll have a Sophie Image, or perhaps a Tweak image with
Sophie loaded. Because of how the Sophie Storage plug-able backend logic works a Sophie Book can come in three forms. a) A zip file with perhaps a folder containing video/audio media data b) A flatten directory containing many files which are video/audio and other data plus xml describing the Sophie objects needed to build the book. c) A networked version which technically is a flattened directory (b) For file based books it's a simple matter of opening the Sophie document using the *native* file dialogs, or double-clicking. For network based books you just supply a URL that points to the Sophie Manifest file hosted by a HTTP Server, data is downloaded from the server as needed to render pages (then cached), and quicktime makes streaming media transparent, mind for the mpeg plugin it needs to download the entire media file first, unless someone has time to fiddle with the plugin for it to understand streaming as an option. The Sophie WebSite is still being worked on, perhaps there will be a central registry of books and their URLs, visionary input is always welcome. Sophie Books can be embedded (fully contained) in a containing Sophie Book, or be link to via other books, mind finding those books when externally linked is an interesting issue. Actions can be assigned to object, for mouse over, down, up, etc... That allows you then to manipulate other object in the book and or link to URIs At some point the user should be able to markup (text, markers, indicators, stickies) books he/she is reading and also be able to send that information to other people for review, did we mention this is a lot of work... Phase II will consider a Sophie Server which has more integration capabilities than what an HTTP server would give, details are non- existent since we have not consider yet what this will be. On 26-May-06, at 12:10 PM, Brad Fuller wrote: > John M McIntosh wrote: >> We are trying to do this with Sophie, building books you can >> interact with, then publishing to a http server, then reading the >> book from the http server in a Sophie authoring/reader application. > Can you explain this a bit more? Will the user have a squeak image? > And, then would they download a "book" via something akin to > Squeakmap? (where the Book Repository (the Squeakmap) is a repo of > books the user can browse and "install" a selected book into the > image?) > How do you see this architecture? Does the user interact with the > book locally? > > brad -- ======================================================================== === John M. McIntosh <[hidden email]> 1-800-477-2659 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ======================================================================== === |
In reply to this post by keith1y
Keith Hodges wrote:
> Dear Brad, > > I am getting psyched up to do this, Its going to be a quest, a rally > call, I think time and effort spent seeing if I can deliver a squeak > hosted web page will be time well spent. Heck I dont care if my users > have to load a plug in, if I just pause to think about it I just hate > the web architecture that much. These new technologies dont even have > rotation in their base rendering engine, I just took the trash can for > a 360 degree spin just to remind me how good it feels and working in a > code browser rotated at 33 degrees just because you can do it and no > one else can! > > Step 1, I discovered Text Tool in tweak, and it works! Bliss > Step 2, find some more fonts, X11 Fonts are there in SqueakMap, could > use some more though. > Step 3, lets go get that Squeakland plug in.... you go the "plugin" route, or if that doesn't satisfy your needs, where you go next. thanks for keeping us informed, brad |
In reply to this post by Keith Hodges-2
I sympathize. In my day job I'm charged with building an app for use
by data entry clerks who are used to command line/curses interfaces. We want to make a more unified UI but all web prototypes have proven unsatisfactory. My hack at it is to build an app using wxPython that talks to back end via http. This is because the user base is mouse adverse and keyboard centric and this is hard to do in a browser. -Todd Blanchard On May 25, 2006, at 6:10 PM, Keith Hodges wrote: > Dear Squeakers and Tweakers, > > ........ > > thoughts anyone? > > Keith > > > > > > > > > > ___________________________________________________________ All new > Yahoo! Mail "The new Interface is stunning in its simplicity and > ease of use." - PC Magazine http://uk.docs.yahoo.com/nowyoucan.html > |
In reply to this post by keith1y
Hi Keith,
If you do not mind your clients having to download a plugin, the Squeak plugin is definitely very interesting. But I have to say for some reason, (probably explainable by humankind simplicity :) ) using anything that users have to "install" is a huge hurdle. I completely agree with your sentiment about beeing fed up with the web (http protocol mostly, inability of browser to install applications dynamically, current business fixation on "it has to be web-based", etc) - at this point there are very few technologies that bypass this at least in some sense, Javascript because it's "part of" every browser environment, and Flash Player because it is "bundled" with most browsers, maybe a few more. It is all about delivery, and it would be nice to subvert the "current web paradigm" and make it to mass-deliver the next thing that will eventually kill it :). So maybe, to start with, all of us should use Squeak Plugin on our home pages :) Have fun, Milan On 2006 May 25 21:43, Keith Hodges wrote: > Dear Brad, > > I am getting psyched up to do this, Its going to be a quest, a rally > call, I think time and effort spent seeing if I can deliver a squeak > hosted web page will be time well spent. Heck I dont care if my users > have to load a plug in, if I just pause to think about it I just hate > the web architecture that much. These new technologies dont even have > rotation in their base rendering engine, I just took the trash can for a > 360 degree spin just to remind me how good it feels and working in a > code browser rotated at 33 degrees just because you can do it and no one > else can! > > Step 1, I discovered Text Tool in tweak, and it works! Bliss > Step 2, find some more fonts, X11 Fonts are there in SqueakMap, could > use some more though. > Step 3, lets go get that Squeakland plug in.... > > Keith > > > > > > > ___________________________________________________________ > All new Yahoo! Mail "The new Interface is stunning in its simplicity and > ease of use." - PC Magazine http://uk.docs.yahoo.com/nowyoucan.html |
In reply to this post by Keith Hodges-2
Keith,
Regarding the Squeak Plugin: From what I remember, you just run the installation, (it will create a desktop shortcut but that is not important), then you go, in a browser, to a site that has a pr file, for example: http://squeakland.org/ click on "Kids play" in the image map in the middle, then, on top, on "Etoys", then any of the images, e.g. "Ted's Ocean". You may have to hit "Browser Reload" for the first time. Let me know if you still have problems, describe the steps you did and what the problem is,, and I will try to help, Milan PS: As I said I believe having the Plugin widespread is important, so I want to help anyone who wants to use it On 2006 May 25 22:45, Keith Hodges wrote: > [hidden email] wrote: > >> have you thought about the Squeakland plugin and starting there? > > > > There seems to be little that the Squeakland plugin can't do relative to > > the various other web options. Its only flaw is its lack of ubiquity. > > > > ===Blake=== > > I started but cant seem to get the plugin to work at all as yet > following the instructions on squeakland. I am on Windows 2000 with IE6 > Firefox 1.5 > > Johns Sophie videos look cool. > > anyone got any ideas about how to get the squeakland plugin working > (even with 3.8 image perhaps or whatever VM tweak is using) > > Keith > > > > > > ___________________________________________________________ > All new Yahoo! Mail "The new Interface is stunning in its simplicity and > ease of use." - PC Magazine http://uk.docs.yahoo.com/nowyoucan.html |
In reply to this post by Brad Fuller
[Squeakzilla subtitle: The dinosaurs did die out you know]
> be interested to know how your progress goes with your project. If > you go the "plugin" route, or if that doesn't satisfy your needs, where > you go next. > > thanks for keeping us informed, > > brad This is a muse...a dream... or a rant... take it as you will. (p.s. I am now a carer as my day job so I don't really know what I am talking about since I have been out of touch with coding and particularly squeak for a while so do feel free for correct me or update me if you want to) Since everyone is doing scary specs these days. ( http://www.whatwg.org/ this site is what motivated me to thingk this way!) I think the first step is to informally spec out the desired solution a bit. If we do this spec and it looks worthwhile then perhaps Todd could get some VCs (see his blog) to pay for it to be coded by September when I need this website to go live ;-) Plug-in looks like the only way: We could do a thin client (like the Avi demo mentioned earlier) in which case there are plug-ins for the likes of VNC available. This would not handle multi-media at all well so given that I want to piggy back this into the browser world the plug in route looks like the only viable way. The aim could eventually be to be able to dump the browser container using some native widgets (thus saving several hundred Mb of memory/disk useage, and lots of CPU cycles), but I guess thats a way off. Instead the browser (mozilla etc) is sufficiently "extensible/hackable" that we can probably wangle whatever we need through their hooks. Ubiquity: The lazslo people have targeted the flash plugin as a runtime in order to get ubiquity, and now they are targeting DHTML, impressive I have to say, but IMHO its still hard work, and in the last three days of getting my head around the tutorials I seem to spend half my time hunting through the bug reporter and filing bug reports. I think that the firefox missing plugin search should help us a lot with the ubiquity issue, and since we all have broadband these days we don't mind the odd 30 Mb download. Now if we can get a few vm carrying Apps released into Application space (sophie?), ubiquity might not be so difficult after all, Acrobat managed it with a basic file viewer app after all, and Seaside could be distibuted as a webserver, CMS platform, to get the vm onto servers. Is the vm in any linux distros as standard? Half the stuff I load when I install linux I never even look at, so it shouldn't be hard to get distributed if we really try hard enough. (does the linux kernal need a vm?) Of course the whole idea of spoon is that at some point the size of the distribution could be quite small, and easier to sneak in to places. Goals: 1. Antidote to the feature bloat hotch potch technology collage that the web web2 is threatening us with and the plethora of learning curves. [The web has a several models, and several versions of models and standards, and versions of standards, with their formats markup, editors, validators, etc for storing data statically on filesystems, data transport to load it into a browser, a second model of the static data, now dynamic, in the browser, the DOM, and a vm with scripting environment to manipulate the DOM, and dare I say it a third model in the internal rendering engine. Instead of all of these different bits, lets have one model and one (or 2) vm(s) with one scripting engine and renderer all working together in a seamless homogeneous manner.] 2. Say no to static text files, say no markup languages, say no to XML, just use binary data wherever possible and direct manipulation wherever possible. If data models are hierarchical and nodes have attributes then its the same as xml anyway. 3. The result should look like the users familiar web world. Flash worlds are usually based upon a fixed sized display area. Documents can be long vertically and scroll down. Support both. (Laslo and flex are both Flash bound and so they dont feel quite right for this project) for this to work we need to escape the plug-in box, or at least look as though we do. Implementation Ideas: Serverside: Expect to have Seaside/Kom on the serverside, Seaside is looking to play in an AJAX world and our client will just be the ultimate AJAX client (the same as Laszlo is aiming to be). Seaside has or can do all of the authentication and session, keep alive connections and server push type stuff that we might need. Of course if we know that our servers are going to be squeak we can optimize many things. Compressed data transport at a minimum. For example Lazslo uses their Tomcat serverlet to compile xml file that defines the app and serve the resulting swf flash file, they also use the server as a proxy for accessing many web services. I think the reason for this is that the plug in security model only allows contact with the originating server machine. We could use the server to pass messages to our plugin container if the direct pipe is not available (I haven't checked yet) We could similarly use the server to proxy other services (e.g MySql, SqueakMap etc). The server will be able to supply resources updates etc that the client might need, e.g. it could be a font server, or updated plugin server. Clientside: Say no to cookies. Have a file area for plugin use and an OODB for persistent client side data. It might seem a bit heavyweight but I am sure I can think of some useful uses for it. Would it be possible to have a "no-save" policy like hypercard, in which disk based data "persisting" is transparent, and so abruptly leaving a web page and returning to it potentially allows us to return to the same state easily, just like when you are filling in a web form and you hit the back button the fields that you filled in are still there. The onunload browser event could help us persist relevant state automatically. Clientside Display: No markup just an object model and direct manipulation. Aim to recreate most of the browser display functionality and scriptability without the overhead of parsers etc. The first problem is the browser scroll bars, we could hide them and provide our own, or use theirs and handle their events to scroll our display region. The second option will allow us to be compatible with themed browsers, and looks to be the best bet (as long as we don't have to route the scroll events via the server) (note: In the section below we are not trying to rewrite Mozilla here, just put together enough components to be able to look like Mozilla - remember no parsing of HTML just direct manipulation and assembly of components. You can do the parsing of HTML if you want to but I dont) Panels can provide the equivalent of html divs, they can be manually positioned via handles in the (tweak) project builder or automatically positioned by your choice of AlignmentMorph type container. The standard paragraph flow of a typical web document would be provided by vertical alignment container. Within this container simple components can provide many of the paragraph based display elements, e.g. <ul> <ol>, paragraph border, paragraph background/pattern/pic/shading, before/after spacing, and I guess a table component goes without saying. We would need a richtext control, one which can provide a rectangular paragraph style presentation, and this may double as a styled editable text field (bye bye wiki syntaxes of the world). A second variant of the richtext control would be the equivalent of an html span element, a run of text over one or more lines within its container up to the next component, and/or the ability to insert a component inline as part of the text run. Support mouse over, and onclick actions (drag n drop too?) on bits of text and components. Some links would need to be routed to the browser container in order to hit a normal "Mesozoic" web page. Some links would visually turn the page within our view in order to simulate visiting other web pages within a site which may or may not need to hit the server to retrieve more content. If the progress path though a site is predicable then the client may prefetch the next page in anticipation. The idea that web pages and markup should be content as opposed to presentation is foundational to the way the web has evolved and what markup languages are all about. In a web app, our display component collection is likely to be a view on some form of abstract data model anyway, so if we need a different view on our data then we just build an alternative presentation. If our presentation has been authored in the project builder then we might want to use this content on its own outside of its presentation. We could ask the component tree to serialise itself into Xml if we wanted to and manipulate it from there, but we dont want to. In MVC, MVP style why not just treat this "document" as a Model and whatever use we have for this data, we build Views and Presenters that pull the data they need out of our model, through various queries. We can annotate the original model with node ids etc to make this easier, we could even emulate XPath functionality on our model since we are expecting our display components to be hierarchical. Now doing it this way we get something that XML cant do out of the box, not only can we pull data out of our model, but we can put it directly back in as well. I remember one of the web frameworks out there sucked in its designers html template into an object model, then the coders write code to manipulate that model into a form that included the hooks the coders needed. Then a code gen tool, generated code that would stream out the completed final html file (fast!). The important bit that made all of this work was to have the data in a live usable tweakable model. So I figure if we only have our data in this live tweakable useable form, then we win. The other thing about XML and the markup languages is that we loose the idea of data elements having behaviour, ie. none of the elements are objects. Our "squeak-dom" components may potentially be objects too, or might be given aspects that allow them to function as objects in other contexts. Stylesheets: All of the components that are used in the model should be skinnable, through setting attributes and thus configurable via a programmatic interface. A stylesheet is a script that trawls through the model and applies non-default styling to the elements it finds. E.g. If you find a list component with attribute flashy defined then change its bullet graphic to this one. Thus to support this stylesheet method each component attribute (including extents and positioning) will need a default value, a user supplied value, and a stylesheet applied value. Thus it should be possible to easily revert a stylesheet and apply another one. I better get some sleep, I have 11 hours washing up to do tommorow! Feedback welcomed, am I crazy or should we try it? Keith ___________________________________________________________ All new Yahoo! Mail "The new Interface is stunning in its simplicity and ease of use." - PC Magazine http://uk.docs.yahoo.com/nowyoucan.html |
Keith Hodges wrote:
> [Squeakzilla subtitle: The dinosaurs did die out you know] >> be interested to know how your progress goes with your project. If >> you go the "plugin" route, or if that doesn't satisfy your needs, where >> you go next. >> >> thanks for keeping us informed, >> >> brad > This is a muse...a dream... or a rant... take it as you will. (p.s. I > am now a carer as my day job so I don't really know what I am talking > about since I have been out of touch with coding and particularly > squeak for a while so do feel free for correct me or update me if you > want to) > > Since everyone is doing scary specs these days. ( > http://www.whatwg.org/ this site is what motivated me to thingk this > way!) I think the first step is to informally spec out the desired > solution a bit. > > If we do this spec and it looks worthwhile then perhaps Todd could get > some VCs (see his blog) to pay for it to be coded by September when I > need this website to go live ;-) > Plug-in looks like the only way: > > We could do a thin client (like the Avi demo mentioned earlier) in > which case there are plug-ins for the likes of VNC available. This > would not handle multi-media at all well so given that I want to piggy > back this into the browser world the plug in route looks like the only > viable way. The aim could eventually be to be able to dump the browser > container using some native widgets (thus saving several hundred Mb of > memory/disk useage, and lots of CPU cycles), but I guess thats a way > off. Instead the browser (mozilla etc) is sufficiently > "extensible/hackable" that we can probably wangle whatever we need > through their hooks. > > Ubiquity: > > The lazslo people have targeted the flash plugin as a runtime in order > to get ubiquity, and now they are targeting DHTML, impressive I have > to say, but IMHO its still hard work, and in the last three days of > getting my head around the tutorials I seem to spend half my time > hunting through the bug reporter and filing bug reports. I think that > the firefox missing plugin search should help us a lot with the > ubiquity issue, and since we all have broadband these days we don't > mind the odd 30 Mb download. Now if we can get a few vm carrying Apps > released into Application space (sophie?), ubiquity might not be so > difficult after all, Acrobat managed it with a basic file viewer app > after all, and Seaside could be distibuted as a webserver, CMS > platform, to get the vm onto servers. Is the vm in any linux distros > as standard? Half the stuff I load when I install linux I never even > look at, so it shouldn't be hard to get distributed if we really try > hard enough. (does the linux kernal need a vm?) Of course the whole > idea of spoon is that at some point the size of the distribution could > be quite small, and easier to sneak in to places. > > Goals: > 1. Antidote to the feature bloat hotch potch technology collage that > the web web2 is threatening us with and the plethora of learning curves. > [The web has a several models, and several versions of models and > standards, and versions of standards, with their formats markup, > editors, validators, etc for storing data statically on filesystems, > data transport to load it into a browser, a second model of the static > data, now dynamic, in the browser, the DOM, and a vm with scripting > environment to manipulate the DOM, and dare I say it a third model in > the internal rendering engine. Instead of all of these different bits, > lets have one model and one (or 2) vm(s) with one scripting engine and > renderer all working together in a seamless homogeneous manner.] > > 2. Say no to static text files, say no markup languages, say no to > XML, just use binary data wherever possible and direct manipulation > wherever possible. If data models are hierarchical and nodes have > attributes then its the same as xml anyway. > > 3. The result should look like the users familiar web world. Flash > worlds are usually based upon a fixed sized display area. Documents > can be long vertically and scroll down. Support both. (Laslo and flex > are both Flash bound and so they dont feel quite right for this > project) for this to work we need to escape the plug-in box, or at > least look as though we do. > > Implementation Ideas: > > Serverside: Expect to have Seaside/Kom on the serverside, Seaside is > looking to play in an AJAX world and our client will just be the > ultimate AJAX client (the same as Laszlo is aiming to be). Seaside has > or can do all of the authentication and session, keep alive > connections and server push type stuff that we might need. Of course > if we know that our servers are going to be squeak we can optimize > many things. Compressed data transport at a minimum. For example > Lazslo uses their Tomcat serverlet to compile xml file that defines > the app and serve the resulting swf flash file, they also use the > server as a proxy for accessing many web services. I think the reason > for this is that the plug in security model only allows contact with > the originating server machine. We could use the server to pass > messages to our plugin container if the direct pipe is not available > (I haven't checked yet) We could similarly use the server to proxy > other services (e.g MySql, SqueakMap etc). The server will be able to > supply resources updates etc that the client might need, e.g. it could > be a font server, or updated plugin server. > > Clientside: > > Say no to cookies. Have a file area for plugin use and an OODB for > persistent client side data. It might seem a bit heavyweight but I am > sure I can think of some useful uses for it. > Would it be possible to have a "no-save" policy like hypercard, in > which disk based data "persisting" is transparent, and so abruptly > leaving a web page and returning to it potentially allows us to return > to the same state easily, just like when you are filling in a web form > and you hit the back button the fields that you filled in are still > there. The onunload browser event could help us persist relevant state > automatically. > > Clientside Display: > > No markup just an object model and direct manipulation. Aim to > recreate most of the browser display functionality and scriptability > without the overhead of parsers etc. The first problem is the browser > scroll bars, we could hide them and provide our own, or use theirs and > handle their events to scroll our display region. The second option > will allow us to be compatible with themed browsers, and looks to be > the best bet (as long as we don't have to route the scroll events via > the server) > > (note: In the section below we are not trying to rewrite Mozilla here, > just put together enough components to be able to look like Mozilla - > remember no parsing of HTML just direct manipulation and assembly of > components. You can do the parsing of HTML if you want to but I dont) > > Panels can provide the equivalent of html divs, they can be manually > positioned via handles in the (tweak) project builder or automatically > positioned by your choice of AlignmentMorph type container. The > standard paragraph flow of a typical web document would be provided by > vertical alignment container. Within this container simple components > can provide many of the paragraph based display elements, e.g. <ul> > <ol>, paragraph border, paragraph background/pattern/pic/shading, > before/after spacing, and I guess a table component goes without > saying. We would need a richtext control, one which can provide a > rectangular paragraph style presentation, and this may double as a > styled editable text field (bye bye wiki syntaxes of the world). A > second variant of the richtext control would be the equivalent of an > html span element, a run of text over one or more lines within its > container up to the next component, and/or the ability to insert a > component inline as part of the text run. > Support mouse over, and onclick actions (drag n drop too?) on bits of > text and components. Some links would need to be routed to the browser > container in order to hit a normal "Mesozoic" web page. Some links > would visually turn the page within our view in order to simulate > visiting other web pages within a site which may or may not need to > hit the server to retrieve more content. If the progress path though a > site is predicable then the client may prefetch the next page in > anticipation. > > The idea that web pages and markup should be content as opposed to > presentation is foundational to the way the web has evolved and what > markup languages are all about. In a web app, our display component > collection is likely to be a view on some form of abstract data model > anyway, so if we need a different view on our data then we just build > an alternative presentation. If our presentation has been authored in > the project builder then we might want to use this content on its own > outside of its presentation. We could ask the component tree to > serialise itself into Xml if we wanted to and manipulate it from > there, but we dont want to. In MVC, MVP style why not just treat this > "document" as a Model and whatever use we have for this data, we build > Views and Presenters that pull the data they need out of our model, > through various queries. We can annotate the original model with node > ids etc to make this easier, we could even emulate XPath functionality > on our model since we are expecting our display components to be > hierarchical. Now doing it this way we get something that XML cant do > out of the box, not only can we pull data out of our model, but we can > put it directly back in as well. > > I remember one of the web frameworks out there sucked in its designers > html template into an object model, then the coders write code to > manipulate that model into a form that included the hooks the coders > needed. Then a code gen tool, generated code that would stream out the > completed final html file (fast!). The important bit that made all of > this work was to have the data in a live usable tweakable model. So I > figure if we only have our data in this live tweakable useable form, > then we win. > > The other thing about XML and the markup languages is that we loose > the idea of data elements having behaviour, ie. none of the elements > are objects. Our "squeak-dom" components may potentially be objects > too, or might be given aspects that allow them to function as objects > in other contexts. > > Stylesheets: All of the components that are used in the model should > be skinnable, through setting attributes and thus configurable via a > programmatic interface. A stylesheet is a script that trawls through > the model and applies non-default styling to the elements it finds. > E.g. If you find a list component with attribute flashy defined then > change its bullet graphic to this one. Thus to support this stylesheet > method each component attribute (including extents and positioning) > will need a default value, a user supplied value, and a stylesheet > applied value. Thus it should be possible to easily revert a > stylesheet and apply another one. > > I better get some sleep, I have 11 hours washing up to do tommorow! > > Feedback welcomed, am I crazy or should we try it? > > Keith I sure like your enthusiasm! I don't know how to respond to most of your ideas because I don't understand your fundamental goal. Can you explain? I'll tell you my basic idea: I want to be able to provide multimedia content, as well as code to manipulate this content ,to individual desktops where the content, and the code (I guess we could call it a "project") is served on demand from an external server. For full programmability, I was considering looking at the possibility of having a squeak "plugin" that provided the basics of multimedia deployment to the user. So, why couldn't an image be created that had the mechanisms for multimedia/application deployment sitting on a PC, housed in a browser, all the time conversing with an external server? Is this something you were thinking about? brad |
Dear Brad,
I think my "fed up with the web" goal would be to take everything that you see in a firefox browser and simply be able to recreate it in squeak, only (dreaming slightly) the plug in would be a "tea-spoon" (lol) dynamically syncing with anything it needs to reify live objects from the "serving-spoon" which have been placed by direct manipulation and wysiwyg editing. No markup no cookies and no more web, I think we might manage better fonts too. Can anyone tell me how much of the plugin api is supported by the squeak plug in? I know that it can make server requests and file requests via the host browser, and the documentation that I found says that streaming is not supported data is passed en-block. Is integration with javascript possible? My ultimate personal goal is to recreate www.tiddlywiki.com which might explain why I am currently tinkering with Pier. This may seem hypocritical of me, but Pier is one of the first wiki's that is not entirely web bound because of magritte. of course everything is possible if you beleive Keith ___________________________________________________________ Inbox full of spam? Get leading spam protection and 1GB storage with All New Yahoo! Mail. http://uk.docs.yahoo.com/nowyoucan.html |
Keith Hodges wrote:
> Dear Brad, > > I think my "fed up with the web" goal would be to take everything that > you see in a firefox browser and simply be able to recreate it in > squeak, only (dreaming slightly) the plug in would be a "tea-spoon" > (lol) dynamically syncing with anything it needs to reify live objects > from the "serving-spoon" which have been placed by direct manipulation > and wysiwyg editing. No markup no cookies and no more web, I think we > might manage better fonts too. Why can't you use seaside if you want a browser with live syncing (have you seen Diego's Asteroids? http://lists.squeakfoundation.org/pipermail/seaside/2006-May/007570.html a video of it: http://astares.blogspot.com/2006/05/comet-implementation-for-seaside-web.html > > Can anyone tell me how much of the plugin api is supported by the squeak > plug in? I know that it can make server requests and file requests via > the host browser, and the documentation that I found says that streaming > is not supported data is passed en-block. Is integration with javascript > possible? Where did you find the documentation? I wonder why streaming is not possible. Do you know if the npsqueak source is available? > > My ultimate personal goal is to recreate www.tiddlywiki.com which might > explain why I am currently tinkering with Pier. This may seem > hypocritical of me, but Pier is one of the first wiki's that is not > entirely web bound because of magritte. that seems very doable with Pier as a starting point. |
Free forum by Nabble | Edit this page |