(sending on behalf of Paolo Bonzini, who runs this year's Smalltalk GSoC)
Hi folks,
ESUG, the European Smalltalk User Group, is applying for this year's Google Summer of Code. As you probably know, the Summer of Code provides the opportunity to fund students to work during the summer on Smalltalk. Please reply to this email (be sure to use "Reply to all") if you have ideas you would like to propose.
Please include a summary of the project and links to web pages that can help prospective students to write their application. Please also include the following information:
- if applicable, other dialects that you would be willing to mentor this project for
- the skill level
- name of the mentor(s), email addresses, and possibly any IRC network/channel/nickname where they can be found.
Thanks for contributing to ESUG's Summer of Code application!
- Bert -
Hi all,
I would propose the following projects for GSoC:
--------------------------------------------------------------------------------------------------------------
1. Acceptance Test Framework
Acceptance tests support developers not only in checking entire requirements but also show customers that their system works as expected. As these customers often have no knowledge about the Smalltalk programming language, business-readable domain-specific languages (like Cucumber) help them to understand which requirement is tested. For example, an acceptance test can look like follows:
Given an authenticated user When he clicks on the logout button Then the system starts over with the welcome page
As part of this project, students should implement such a domain-specific language for acceptance tests in Smalltalk and integrate it into the Squeak IDE. Furthermore, they should connect the new acceptance tests with frameworks such as Morphic or Seaside.
Website: http://cukes.info/
Skill: Advanced Mentor: Michael Perscheid (michaelperscheid@googlemail.com)
--------------------------------------------------------------------------------------------------------------
2. Smalltalk Likely Invariants with Daikon
"Daikon is an implementation of dynamic detection of likely invariants; that is, the Daikon invariant detector reports likely program invariants. An invariant is a property that holds at a certain point or points in a program; these are often seen in assert statements, documentation, and formal specifications. Invariants can be useful in program understanding and a host of other applications.”
In this project, students should implement a mapping from the Smalltalk programming language to the Daikon invariant detector. Furthermore, they should integrate detected likely invariants as automatically generated contracts as part of our test-driven fault navigation and so further enhance the debugging experience in Squeak.
Website: http://plse.cs.washington.edu/daikon/ http://michaelperscheid.de/projects/index.html#testDrivenFaultNavigation
Skill: Advanced in Smalltalk and Java Mentor: Michael Perscheid (michaelperscheid@googlemail.com)
--------------------------------------------------------------------------------------------------------------
Best regards, Michael
On 11.02.2014, at 18:03, Bert Freudenberg bert@freudenbergs.de wrote:
(sending on behalf of Paolo Bonzini, who runs this year's Smalltalk GSoC)
Hi folks,
ESUG, the European Smalltalk User Group, is applying for this year's Google Summer of Code. As you probably know, the Summer of Code provides the opportunity to fund students to work during the summer on Smalltalk. Please reply to this email (be sure to use "Reply to all") if you have ideas you would like to propose.
Please include a summary of the project and links to web pages that can help prospective students to write their application. Please also include the following information:
if applicable, other dialects that you would be willing to mentor this project for
the skill level
name of the mentor(s), email addresses, and possibly any IRC network/channel/nickname where they can be found.
Thanks for contributing to ESUG's Summer of Code application!
- Bert -
--- Dr.-Ing. Michael Perscheid michaelperscheid@googlemail.com
Hi, I would like to propose the following projects:
========================================================================== Project name: Implementing Etoys on Amber
Description: The objective of this project is the implementation of a subset of Etoys features on top of Amber Smalltalk. This subset should at least include a basic version of the halos, viewer, and script editor. To develop the graphical user interface, several libraries can be used, for example: Morphic on Athens [1], morphic.js [2], KinecticJS [3], etc. The student would need to decide which of these is more suitable for the task. This project would have an enormous impact on Etoys users by allowing them to work and share their projects directly in the browser without installing any plugin. [1] http://m-sp.org/gsoc2013/demo/amber-athens/morphic.html [2] http://chirp.scratchr.org/dl/experimental/JsMorphic/morphic.html [3] http://kineticjs.com/
Skill level: Intermediate
Possible mentors: - Ricardo Moran (richi.moran@gmail.com) - Gonzalo Zabala (gzabala@gmail.com) ========================================================================== Project name: Etoys touch UI
Description: The objective of this project is to adapt the Etoys user interface for touch gestures such as rotate, scale, and such. Currently, Etoys is very dependent on the user to interact with Morphs with the cursor. Given the popularity of multitouch devices this represents a severe disadvantage. Bert Freudenberg has done some initial work adapting the Squeak Virtual Machine and Morphic to support multitouch events [1]. As he stated, the UI would need to be improved (or maybe even redesigned from scratch) before we can deliver this to kids. In this project we don't propose the complete redesign of Etoys UI (which we think it would take more than 3 months to complete) but at least a new implementation of Morphic interaction that takes into account multitouch gestures. [1] http://croquetweak.blogspot.com.ar/2010/06/squeak-etoys-on-ipad.html
Skill level: Intermediate Possible mentors: - Gonzalo Zabala (gzabala@gmail.com) - Matías Teragni (matias.teragni@gmail.com) ========================================================================== Project name: Physical Etoys plugins
Description: Currectly, Physical Etoys is dependent on a number of external libraries to interact with different hardware platforms. To do this, Physical Etoys uses FFI bindings, which represents a security issue. To solve it we propose the implementation of this FFI bindings as VM plugins. The student would need to learn how to compile Etoys VM and Slang in order to implement the plugins.
Skill level: Intermediate Possible mentors: - Matías Teragni (matias.teragni@gmail.com) - Gabriela Arévalo (gabriela.b.arevalo@gmail.com) ========================================================================== Project name: Physical Etoys XO bundle
Description: The objective of this project is to finish the bundling of Physical Etoys as a Sugar activity for the XO computers. The student will need to make sure all Physical Etoys modules work correctly in Linux and specifically on the XO laptop. This would involve porting some libraries, dealing with platform-specific issues and wrap all the necessary files in an Activity bundle.
Skill level: Intermediate Possible mentors: - Gabriela Arévalo (gabriela.b.arevalo@gmail.com) - Ricardo Moran (richi.moran@gmail.com) ==========================================================================
Best regards, Richo
On Tue, Feb 11, 2014 at 2:03 PM, Bert Freudenberg bert@freudenbergs.dewrote:
(sending on behalf of Paolo Bonzini, who runs this year's Smalltalk GSoC)
Hi folks,
ESUG, the European Smalltalk User Group, is applying for this year's Google Summer of Code. As you probably know, the Summer of Code provides the opportunity to fund students to work during the summer on Smalltalk. Please reply to this email (be sure to use "Reply to all") if you have ideas you would like to propose.
Please include a summary of the project and links to web pages that can help prospective students to write their application. Please also include the following information:
- if applicable, other dialects that you would be willing to mentor this
project for
the skill level
name of the mentor(s), email addresses, and possibly any IRC
network/channel/nickname where they can be found.
Thanks for contributing to ESUG's Summer of Code application!
- Bert -
1. Make Etoys work on SqueakJS
Increasingly, there are systems that do not support web browser plugins, or that even disallow installing certain software without "jailbreaking". Even if the system would support it, some administrators disallow installing of custom plugins. This presents a problem for Squeak/Etoys [1] which is used in schools world-wide, but cannot be installed on more and more systems. The single commonly supported runtime system is HTML5 + Javascript. SqueakJS [2] is a Squeak VM running on top of Javascript, on various platforms.
In this project, a student would extend SqueakJS to be able to run an Etoys image. It should provide an experience similar to running the Squeak Plugin VM in a web browser: load a project from a URL and allow uploading modified projects. The initial version does not need to be very performant, speed optimizations can be done when we have a working system.
Level: advanced Skills required: JavaScript, Smalltalk
Mentor: Bert Freudenberg bert@freudenbergs.de
[1] http://squeakland.org/ [2] http://bertfreudenberg.github.io/SqueakJS/
===================================================================
2. Port Squeak/Etoys to Chrome OS
Many schools are buying Chromebooks [1] because they are cheap and easy to maintain. Squeakland [2] has gotten multiple requests to make Etoys work on these machines. The best way to do this is running a Squeak VM via Native Client [3].
Yoshiki Ohshima started such a VM port [4] demonstrating the feasibility. His sources are available on github. They need to be updated to work with a current NaCl SDK, and a portable VM must be built (PNaCl). It needs to be tested on actual Chrome book hardware as well as a Chrome browser on PCs. Support for downloading and uploading projects must be implemented so it can be used as a direct replacement for the Squeak browser plugin.
Level: medium Skills required: C, Smalltalk
Mentors: Yoshiki Ohshima yoshiki.ohshima@gmail.com Bert Freudenberg bert@freudenbergs.de
[1] http://en.wikipedia.org/wiki/Chromebook [2] http://squeakland.org/ [3] https://developers.google.com/native-client [4] http://lists.squeak.org/pipermail/vm-dev/2011-May/007991.html
- Bert -
Thank you, Bert!
On Sun, Feb 16, 2014 at 8:07 AM, Bert Freudenberg bert@freudenbergs.de wrote:
Mentors: Yoshiki Ohshima yoshiki.ohshima@gmail.com
I would highly prefer to use Yoshiki.Ohshima@acm.org instead of the gmail address as the contact address.
Etoys [1] is pre-installed on millions of OLPC XO-Laptops worldwide [2]. Running under Sugar [3] (the XO's Linux-based UI) it provides collaboration support for class rooms: students can send scripted objects to each other to easily combine their work.
In a non-Sugar system (Mac, Windows, regular Linux) this collaboration support is not readily available. The code is there, but to use it students would have to manually enter IP addresses, because the discovery protocol relies on Sugar's "presence service".
To a user this should look very simple: She pops up a window which lists all the other Etoys users nearby, so she can choose one to connect to. Then the two can exchange messages and objects. The latter part is already there, what is needed is the discovery of other users.
The task would be to make the collaboration work on a wider range of systems. One approach would be using the Telepathy framework [4] which is underlying Sugar's presence service (and in fact this would help Sugar, since they have phased out the PS and are using Telepathy directly). This should work easily under Linux, and might be portable to other platforms. Another advantage of this approach would be that Sugar users can collaborate with non-Sugar users, and across network boundaries (NAT etc).
Alternatively, a simple broadcast-based protocol could be created. The advantage would be that it would work identically on all platforms and not require system support. It may, however, be less robust and general than what Telepathy provides. It might also interfere with other network services. Also, collaboration between Sugar- and non-Sugar users might be problematic. The simplicity of this approach may outweigh the disadvantages, though.
Level: medium to advanced depending on approach
Skills: Smalltalk, Networking (plus DBus and cross-platform development if using Telepathy)
Mentor: Bert Freudenberg bert@freudenbergs.de
[1] http://squeakland.org/ [2] http://laptop.org/ [3] http://sugarlabs.org/ [4] http://telepathy.freedesktop.org/
This would be great!
Cheers, Karl
On Wed, Feb 19, 2014 at 10:40 AM, Bert Freudenberg bert@freudenbergs.dewrote:
Etoys [1] is pre-installed on millions of OLPC XO-Laptops worldwide [2]. Running under Sugar [3] (the XO's Linux-based UI) it provides collaboration support for class rooms: students can send scripted objects to each other to easily combine their work.
In a non-Sugar system (Mac, Windows, regular Linux) this collaboration support is not readily available. The code is there, but to use it students would have to manually enter IP addresses, because the discovery protocol relies on Sugar's "presence service".
To a user this should look very simple: She pops up a window which lists all the other Etoys users nearby, so she can choose one to connect to. Then the two can exchange messages and objects. The latter part is already there, what is needed is the discovery of other users.
The task would be to make the collaboration work on a wider range of systems. One approach would be using the Telepathy framework [4] which is underlying Sugar's presence service (and in fact this would help Sugar, since they have phased out the PS and are using Telepathy directly). This should work easily under Linux, and might be portable to other platforms. Another advantage of this approach would be that Sugar users can collaborate with non-Sugar users, and across network boundaries (NAT etc).
Alternatively, a simple broadcast-based protocol could be created. The advantage would be that it would work identically on all platforms and not require system support. It may, however, be less robust and general than what Telepathy provides. It might also interfere with other network services. Also, collaboration between Sugar- and non-Sugar users might be problematic. The simplicity of this approach may outweigh the disadvantages, though.
Level: medium to advanced depending on approach
Skills: Smalltalk, Networking (plus DBus and cross-platform development if using Telepathy)
Mentor: Bert Freudenberg bert@freudenbergs.de
[1] http://squeakland.org/ [2] http://laptop.org/ [3] http://sugarlabs.org/ [4] http://telepathy.freedesktop.org/ _______________________________________________ etoys-dev mailing list etoys-dev@squeakland.org http://lists.squeakland.org/mailman/listinfo/etoys-dev
squeak-dev@lists.squeakfoundation.org