[Pharo-project] Smalltalk Labs Browser
Just stumbled on this very interesting seaside-based browser via James's blog: http://code.google.com/p/smalltalklabsbrowser -- View this message in context: http://forum.world.st/Smalltalk-Labs-Browser-tp3022069p3022069.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
Very nice video. Also note that there is a complete AJAX based OmniBrowser view for the web (OB-Web), that brings the complete OB toolset including all refactoring tools to the web for over 4 years now. No web-based development UI really took off in the past decade, so I wonder if this is really what people need? Also I am not sure how well the traditional Smalltalk browsers convert to the web? Clamento takes a different approach, see <http://clamato.net/>. Lukas On 1 November 2010 13:32, Geert Claes <geert.wl.claes@gmail.com> wrote:
Just stumbled on this very interesting seaside-based browser via James's blog: http://code.google.com/p/smalltalklabsbrowser
-- View this message in context: http://forum.world.st/Smalltalk-Labs-Browser-tp3022069p3022069.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
-- Lukas Renggli www.lukas-renggli.ch
Hi, a really cool thing that Christoph is currently writing is the browser for blogs http://smalltalklabs.tumblr.com/post/1423578261/smalltalk-labs-browser-for-b... (soon on pharocasts :) Laurent Laffont Pharo Smalltalk Screencasts: http://www.pharocasts.com/ Blog: http://magaloma.blogspot.com/ On Tue, Nov 2, 2010 at 10:14 AM, Lukas Renggli <renggli@gmail.com> wrote:
Very nice video.
Also note that there is a complete AJAX based OmniBrowser view for the web (OB-Web), that brings the complete OB toolset including all refactoring tools to the web for over 4 years now. No web-based development UI really took off in the past decade, so I wonder if this is really what people need?
Also I am not sure how well the traditional Smalltalk browsers convert to the web? Clamento takes a different approach, see <http://clamato.net/>.
Lukas
On 1 November 2010 13:32, Geert Claes <geert.wl.claes@gmail.com> wrote:
Just stumbled on this very interesting seaside-based browser via James's blog: http://code.google.com/p/smalltalklabsbrowser
-- View this message in context:
http://forum.world.st/Smalltalk-Labs-Browser-tp3022069p3022069.html
Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
-- Lukas Renggli www.lukas-renggli.ch
Lukas, On 02 Nov 2010, at 10:14, Lukas Renggli wrote:
Also note that there is a complete AJAX based OmniBrowser view for the web (OB-Web), that brings the complete OB toolset including all refactoring tools to the web for over 4 years now. No web-based development UI really took off in the past decade, so I wonder if this is really what people need?
How do I load and start OB-Web ? Thanks, Sven PS: BTW, congratulations on the PhD !
How do I load and start OB-Web ?
1. Download a recent Pharo image with OB loaded, e.g. <http://hudson.lukas-renggli.ch/job/Development/lastSuccessfulBuild/artifact/...>. 2. Evaluate the following script to load Kom and OB-Web: Gofer new squeaksource: 'KomHttpServer'; package: 'DynamicBindings'; package: 'KomServices'; package: 'KomHttpServer'; load. Gofer new renggli: 'omnibrowser'; package: 'JSON'; package: 'OB-Web'; load. 3. Start the application by evaluating: OBKomHttpService startOn: 9090 4. Open the URL http://localhost:9090 in Safari or FireFox (make sure not to block popups). The code should mostly work, I recently fixed all the tests. However keep in mind that it hasn't been used in the past 4 years and that it does not support some "newer" OB features like the button bar and the new completion and multiselect dialogs. Lukas -- Lukas Renggli www.lukas-renggli.ch
On 02 Nov 2010, at 18:57, Lukas Renggli wrote:
The code should mostly work, I recently fixed all the tests. However keep in mind that it hasn't been used in the past 4 years and that it does not support some "newer" OB features like the button bar and the new completion and multiselect dialogs.
I got it working with your instructions. I seems a little rough in terms of error handling and feedback, but it is very impressive. It is quite surprising that this is not a Seaside web app. I also wonder why web based IDE's did not catch on, maybe you were to early here. It kind of feels like it should somehow work. WebVelocity is another example (it is not the right aproach IMO, but it feels reasonably solid). The current cloud hype fits very well with a web based IDE. Sven
The code should mostly work, I recently fixed all the tests. However keep in mind that it hasn't been used in the past 4 years and that it does not support some "newer" OB features like the button bar and the new completion and multiselect dialogs.
I got it working with your instructions. I seems a little rough in terms of error handling and feedback, but it is very impressive.
This is all Colin's code, I only fixed it to make it work with the latest code base. To me it serves as a verification that the OB metamodel remains independent of the view code.
It is quite surprising that this is not a Seaside web app.
At the time this was written Seaside just came up with AJAX support.
I also wonder why web based IDE's did not catch on, maybe you were to early here. It kind of feels like it should somehow work.
I was already working with a web based IDE's in 2000 (Zope). It was a horrible experience, and it still is one today. People obviously moved to other frameworks: Django, Rails, ... and in my case Seaside.
The current cloud hype fits very well with a web based IDE.
This is true, but then again cloud service providers do not promote web based IDEs either. Lukas -- Lukas Renggli www.lukas-renggli.ch
Lukas Renggli wrote:
Also note that there is a complete AJAX based OmniBrowser view for the web (OB-Web), that brings the complete OB toolset including all refactoring tools to the web for over 4 years now. No web-based development UI really took off in the past decade, so I wonder if this is really what people need?
I hadn't heard of OB-Web, I should have a look at it. Sven Van Caekenberghe wrote:
WebVelocity is another example (it is not the right aproach IMO, but it feels reasonably solid). The current cloud hype fits very well with a web based IDE.
WebVelocity may feel solid but I reckon the user experience sucks. I haven't been able to look at SeaBreeze which is supposed to be another example. Lukas Renggli wrote:
Also I am not sure how well the traditional Smalltalk browsers convert to the web? Clamento takes a different approach, see <http://clamato.net/>.
Clamato looks pretty cool! I agree that porting the traditional Smalltalk IDE to the web doesn't really make sense, but with web apps becoming more powerful I can really see potential here :) -- View this message in context: http://forum.world.st/Smalltalk-Labs-Browser-tp3022069p3024348.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
On Tue, Nov 2, 2010 at 6:57 PM, Lukas Renggli <renggli@gmail.com> wrote:
How do I load and start OB-Web ?
1. Download a recent Pharo image with OB loaded, e.g. <http://hudson.lukas-renggli.ch/job/Development/lastSuccessfulBuild/artifact/...>.
2. Evaluate the following script to load Kom and OB-Web:
 Gofer new   squeaksource: 'KomHttpServer';   package: 'DynamicBindings';   package: 'KomServices';   package: 'KomHttpServer';   load.  Gofer new   renggli: 'omnibrowser';   package: 'JSON';   package: 'OB-Web';   load.
3. Start the application by evaluating:
 OBKomHttpService startOn: 9090
4. Open the URL http://localhost:9090 in Safari or FireFox (make sure not to block popups).
The code should mostly work, I recently fixed all the tests. However keep in mind that it hasn't been used in the past 4 years and that it does not support some "newer" OB features like the button bar and the new completion and multiselect dialogs.
Lukas
Hmm, I must try that with PharoKernel :-) -- Pavel
-- Lukas Renggli www.lukas-renggli.ch
Well, it can be loaded into PharoKernel (with Gofer) using this script. Menus currently don't work and if you save the image, the startUp fails (I'm not sure if it is PharoKernel related error) Object subclass: #MenuIcons instanceVariableNames: '' classVariableNames: 'Icons TranslatedIcons' poolDictionaries: '' category: 'OmniBrowserCompatibilityLayer'! Gofer new squeaksource: 'KomHttpServer'; package: 'DynamicBindings'; package: 'KomServices'; package: 'KomHttpServer'; load. Gofer it wiresong: 'ob'; package: 'OmniBrowser'; load. Gofer new renggli: 'omnibrowser'; package: 'JSON'; package: 'OB-Web'; package: 'OB-Standard'; load. MCFileBasedRepository flushAllCaches. MCDefinition clearInstances. Smalltalk garbageCollect. ! !OBBrowser methodsFor: 'accessing' stamp: 'cwp 6/4/2006 00:36'! addPanel: aPanel aPanel ifNotNil: [ panels add: aPanel. aPanel browser: self]. ! ! !OBKomHttpService methodsFor: 'as yet unclassified' stamp: 'pk 11/2/2010 22:44'! processError: anError | msg | msg := String streamContents: [:s | s nextPutAll: thisContext stack size asString; cr. " rep nextPutAll: ((thisContext stack copy at: 12) tempsAndValues ) asString; cr." thisContext stack copy withIndexDo: [:stck :i | [s nextPutAll: i asString; space; nextPutAll: stck asString; cr] ifError: [:er | s nextPutAll: er asString; cr]]]. ^ HttpResponse basicNew status: #serverError; contentType: MIMEDocument contentTypePlainText; contents: ((anError class name, ': ', anError messageText), String cr, msg) readStream; yourself! ! !OBCodeBrowser class methodsFor: 'configuration' stamp: 'lr 8/15/2010 15:31'! annotationPanel ^ nil! ! !OBCodeBrowser class methodsFor: 'configuration' stamp: 'lr 8/15/2010 15:31'! buttonPanel ^ nil! ! OBKomHttpService startOn: 8000. (Delay forSeconds: 10000) wait.
Menus currently don't work
That seems to be a problem I also saw yesterday in a full Pharo image.
Gofer it  wiresong: 'ob';  package: 'OmniBrowser';  load.
Load 'OmniBrowser' from the same repository you load 'OB-Web' and 'OB-Standard'. The code in Colin's repository does not work in Pharo and is highly outdated.
Gofer new renggli: 'omnibrowser'; package: 'JSON'; package: 'OB-Web'; package: 'OB-Standard'; load.
-- Lukas Renggli www.lukas-renggli.ch
Hi Lukas, On Wed, Nov 3, 2010 at 8:19 AM, Lukas Renggli <renggli@gmail.com> wrote:
Menus currently don't work
That seems to be a problem I also saw yesterday in a full Pharo image.
With your version of OmniBrowser the menus work well. Thanks -- Pavel
Gofer it  wiresong: 'ob';  package: 'OmniBrowser';  load.
Load 'OmniBrowser' from the same repository you load 'OB-Web' and 'OB-Standard'.
The code in Colin's repository does not work in Pharo and is highly outdated.
Gofer new  renggli: 'omnibrowser';  package: 'JSON';  package: 'OB-Web';  package: 'OB-Standard';  load.
-- Lukas Renggli www.lukas-renggli.ch
As the culprit behind SL Browser I'll add my 2 cents here :) Nice to see some discussion about this here, although I'm still living a bit in fear about someone actually taking a look at the code and getting a heart attack because I turned his favorite language into an abomination ^^ Avi Bryant's Clamato is really nice. Clamato was one of the things that convinced me to check out Smalltalk. SL Browser will have a mini view a bit like Clamato that sits on top of the website you are developing so that you can see changes without having to switch between windows all the time. I don't think web based IDEs will replace Smalltalk IDEs any time soon, at least not Squeak and Pharo. Morphic has it's drawbacks but using it in a development environment just makes so many things possible that make your life easier as a developer that you would miss out on in a web based IDE (at least until the Lively Kernel gets into a usable state). I want to turn SL Browser into a web based IDE and I want you to be able to develop your complete website/web app from start to finish in it, but I wouldn't myself recommend doing this. I just want the option. My use case would be to write only parts of my website with it. I think it's rather nice that I would be able to develop my website in Pharo, and then being able to continue working on it wherever I am, with whatever tools I have available. "Got an iPad? Suits me! An iPhone? Well, typing is a bit hard on there but then I'm just going to solve this tough problem where I mainly need to think instead of typing code anyway. I think I want to try out Haiku OS again. Oh no, Pharo doesn't work on Haiku.. Doesn't matter, I'll just use the web IDE." (just for completeness sake, there's actually a Squeak 3.6 or something like that working on Haiku) And I also have to stress the point that doing SL Browser is mainly a learning exercise for me. I saw the WABrowser in Seaside and thought hey, it could be fun to write something like that with a bit more features as my first Smalltalk app to get the hang of Smalltalk (and Seaside in the process). Before that I had only written a small tool to convert subtitle files into a human readable text file to help me with doing the voice overs for Pharocasts ^^ If people use SL Browser I'll be really glad that I was able to provide something useful to the Smalltalk community, if they don't that's fine with me too since I still achieved my goal of learning more about Smalltalk. I wasn't able to get OB-Web working with the instructions, nothing happens when I click the link to open the browser, so I can't say anything about that one, but it sure does sound interesting. Cheers, Chris -- View this message in context: http://forum.world.st/Smalltalk-Labs-Browser-tp3022069p3024541.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
On Tue, Nov 2, 2010 at 10:14 AM, Lukas Renggli <renggli@gmail.com> wrote:
Very nice video.
Also note that there is a complete AJAX based OmniBrowser view for the web (OB-Web), that brings the complete OB toolset including all refactoring tools to the web for over 4 years now. No web-based development UI really took off in the past decade, so I wonder if this is really what people need?
May be not a full featured IDE. But I used a web code browser for Seaslides (see http://picasaweb.google.com/lh/photo/uZxVgeeGwSOMW86-QeHbSQ?feat=directlink) which is basically a WABrowser subclass + Bespin (now Skywriter) so it has at least one usage :). I've just discovered http://www.ymacs.org/ (demo http://www.ymacs.org/demo/) and it seems a web browser can be a good candidate as a portable IDE. It may be easier today to experiment with GUI in a Web Browser than in Morphic. Laurent Laffont
Also I am not sure how well the traditional Smalltalk browsers convert to the web? Clamento takes a different approach, see <http://clamato.net/>.
Lukas
On 1 November 2010 13:32, Geert Claes <geert.wl.claes@gmail.com> wrote:
Just stumbled on this very interesting seaside-based browser via James's blog: http://code.google.com/p/smalltalklabsbrowser
-- View this message in context:
http://forum.world.st/Smalltalk-Labs-Browser-tp3022069p3022069.html
Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
-- Lukas Renggli www.lukas-renggli.ch
On Wed, Nov 3, 2010 at 9:19 AM, laurent laffont <laurent.laffont@gmail.com> wrote:
On Tue, Nov 2, 2010 at 10:14 AM, Lukas Renggli <renggli@gmail.com> wrote:
Very nice video.
Also note that there is a complete AJAX based OmniBrowser view for the web (OB-Web), that brings the complete OB toolset including all refactoring tools to the web for over 4 years now. No web-based development UI really took off in the past decade, so I wonder if this is really what people need?
May be not a full featured IDE. But I used a web code browser for Seaslides (see http://picasaweb.google.com/lh/photo/uZxVgeeGwSOMW86-QeHbSQ?feat=directlink ) which is basically a WABrowser subclass + Bespin (now Skywriter) so it has at least one usage :). I've just discovered http://www.ymacs.org/ (demo http://www.ymacs.org/demo/ ) and it seems a web browser can be a good candidate as a portable IDE. It may be easier today to experiment with GUI in a Web Browser than in Morphic. Laurent Laffont
SeasideXUL (http://code.google.com/p/seasidexul/) is a kind of web GUI too. Shame on me that I'm not able to move this project on now :-) This projects show us that more attention should be paid to OmniBrowser because it is a good framework that enables to build full IDE on various GUI technologies. -- Pavel
Also I am not sure how well the traditional Smalltalk browsers convert to the web? Clamento takes a different approach, see <http://clamato.net/>.
Lukas
On 1 November 2010 13:32, Geert Claes <geert.wl.claes@gmail.com> wrote:
Just stumbled on this very interesting seaside-based browser via James's blog: http://code.google.com/p/smalltalklabsbrowser
-- View this message in context: http://forum.world.st/Smalltalk-Labs-Browser-tp3022069p3022069.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
-- Lukas Renggli www.lukas-renggli.ch
Hi, I would also like to point out Glamour, an engine for building browsers. It is similar in intent with OmniBrowser in that it models the interaction independently from the rendering, but it aims to go further and model complex interactions. If you want to get an idea about it, here is a small tutorial example: http://www.themoosebook.org/book/internals/glamour/glimpse If you want to play with it, you can: - load it in a PharoDev 1.1: Gofer new squeaksource: 'Glamour'; package: 'ConfigurationOfGlamour'; load. (Smalltalk at: #ConfigurationOfGlamour) perform: #loadDefault - or get it from the nightly built Moose image: http://hudson.moosetechnology.org/job/moose-latest-dev/lastSuccessfulBuild/a... Here is an example of a browser (in this case, only readonly) that is available on the web (best seen with Firefox). We use to browse the code meta-model we use in Moose: http://online.moosetechnology.org/moose/metaBrowser The same code can be seen by executing "MooseMetaBrowser open" in a Moose image. Cheers, Doru On 3 Nov 2010, at 10:36, Pavel Krivanek wrote:
On Wed, Nov 3, 2010 at 9:19 AM, laurent laffont <laurent.laffont@gmail.com> wrote:
On Tue, Nov 2, 2010 at 10:14 AM, Lukas Renggli <renggli@gmail.com> wrote:
Very nice video.
Also note that there is a complete AJAX based OmniBrowser view for the web (OB-Web), that brings the complete OB toolset including all refactoring tools to the web for over 4 years now. No web-based development UI really took off in the past decade, so I wonder if this is really what people need?
May be not a full featured IDE. But I used a web code browser for Seaslides (see http://picasaweb.google.com/lh/photo/uZxVgeeGwSOMW86-QeHbSQ?feat=directlink ) which is basically a WABrowser subclass + Bespin (now Skywriter) so it has at least one usage :). I've just discovered http://www.ymacs.org/ (demo http://www.ymacs.org/demo/ ) and it seems a web browser can be a good candidate as a portable IDE. It may be easier today to experiment with GUI in a Web Browser than in Morphic. Laurent Laffont
SeasideXUL (http://code.google.com/p/seasidexul/) is a kind of web GUI too. Shame on me that I'm not able to move this project on now :-)
This projects show us that more attention should be paid to OmniBrowser because it is a good framework that enables to build full IDE on various GUI technologies.
-- Pavel
Also I am not sure how well the traditional Smalltalk browsers convert to the web? Clamento takes a different approach, see <http://clamato.net/>.
Lukas
On 1 November 2010 13:32, Geert Claes <geert.wl.claes@gmail.com> wrote:
Just stumbled on this very interesting seaside-based browser via James's blog: http://code.google.com/p/smalltalklabsbrowser
-- View this message in context: http://forum.world.st/Smalltalk-Labs-Browser-tp3022069p3022069.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
-- Lukas Renggli www.lukas-renggli.ch
-- www.tudorgirba.com "Every thing has its own flow."
participants (7)
-
Geert Claes -
HaiColon -
laurent laffont -
Lukas Renggli -
Pavel Krivanek -
Sven Van Caekenberghe -
Tudor Girba