[Esug-list] GSoC Project Proposal: Morphic for Amber, Looking for mentor
me at matthiasspringer.de
Fri Apr 26 16:25:16 EDT 2013
I'm a computer science student studying in Potsdam, Germany, in the 6th
semester (take a look at my profile on the ESUG GSoC website,
http://gsoc2013.esug.org/matthias-springer/biography) and want to
propose a GSoC project. I'm looking for a mentor. I know that it's
already late but I started working on this project just some weeks ago.
Regardless of whether you would be willing to participate as a mentor,
I'd like to know if this project is something you're interested in and
what features are most important for you. I'd like to hear about your
Amber is a Smalltalk implementation running in a web browser. It is
methods. It is also possible to render HTML code in a Seaside-like way.
But in contrast to Seaside, Amber has the advantage that the whole
Smalltalk VM runs inside the browser. Code written in Amber can be
automatically filed out to the hard disk (using a NodeJS server running
in the background).
My proposal is to reimplement parts of the Morphic framework in Amber.
This would have several advantages.
- Existing Squeak/Pharo/... applications that use the Morphic framework
can be ported to Amber easily.
- GUI applications can be developed more easily. For complex GUI
libraries like ExtJS. But I think, when someone decides to use Amber, we
can assume that the this person is also fairly familiar with the Morphic
framework. This makes Amber even more interesting. Furthermore, more
people might decide to use Smalltalk.
- GUI applications can be written entirely in Smalltalk, without
- We can easily provide advanced programming tools like multiple class
browser windows and OmniBrowser.
My vision is to provide a fully-featured Smalltalk programming
environment running in the browser that provides all features that are
offered by Squeak/Pharo (class browsers, Monticello, ...). I think not
all of this can be done in the scope of a GSoC project but providing a
Morphic implementation would be the first step. Having multiple class
browsers and all the other components (inspect, debugger; this already
exists in Amber) in a seperate window (instead of tabs) would already be
I'm currently working on porting a very small part of the Morphic
framework to Amber, in order to get Dale Henrichs' tODE
(https://github.com/dalehenrich/tode) working in Amber. I already
implemented some basic Morph classes like "Morph", "SystemWindow",
"TextMorph" and "SimpleButtonMorph", but only very basic methods that
are needed by tODE (see
Here's some technical stuff about how my current implementation works.
- All morphs need to be rendered as HTML DOM elements.
- Morphs are rendered using "HTMLCanvas" and "Widget", both classes are
provided by Amber.
- Morphs are rendered inside a div container, submorphs can be added by
adding the submorph's div container to the owner's div container and
setting its position and so on.
- Not all HTML tags can be reused. For instance, the HTML text box/text
area does not support text with different text formats (color, emphasis,
...). I had to reimplement text areas for editable "TextMoprh"s with DOM
- I use JQuery and JQuery UI intensively for DOM manipulations and
events. JQuery is already integrated in Amber and can be used from
Smalltalk code (but I had to implement some additional helper functions).
A proposal on how to get started and structure the project.
- 1st week: think about architecture (how to do the rendering, ...),
class structures (e.g. which Morph classes are needed) and choose some
existing Squeak/Pharo applications that use an important/representative
subset of Morphic.
- Next weeks: implement Morphic classes in order to get the Squeak/Pharo
applications running (start with an easy one).
- Half-time: basic Morphic functionality should be working. Begin
implementing more advanced Morphic classes for getting a class browser
running. We have to think about whether to port an existing class
browser or to reuse parts of the current Amber class browser (atm, I
don't know if it's even implemented in Smalltalk). When we decide to
port an existing class browser, we have to take into account that Amber
Similar previous work: The Lively Kernel (http://www.lively-kernel.org/)
Smalltalk). I want to do this in Amber.
I'm looking for a mentor for the GSoC 2013. Ideally, the mentor has a
good understanding of the Morphic framework and maybe even HTML,
Matthias Springer * me at matthiasspringer.de * +49-1577-3814255
Student B.Sc. IT-Systems Engineering (Hasso-Plattner-Institut)
Stahnsdorfer Straße 144c, 14482 Potsdam
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 4471 bytes
Desc: S/MIME Kryptografische Unterschrift
More information about the Esug-list