More GSoC ideas wanted, 3 days left ....

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

More GSoC ideas wanted, 3 days left ....

Janko Mivšek
Dear Pharoers,

Ideas are slowly coming, 14 so far, but this is way below the 30+ in
previous years. So, stretch your brain, come with some more ideas, which
will be interesting for potential students and of course useful for our
community. Students you are again welcome to propose such idea by your
own. One student idea for now!

Ideas so far: http://gsoc2013.esug.org/ideas

To propose an idea just respond to this post by fulfilling this idea
template:

  Title:

  Level: (beginner, intermediate, advanced)

  Possible mentor: (if already known)

  Possible second mentor: (if already known)

  Description

  Technical Details

  Benefits to the Student

  Benefits to the Community

Best regards
Serge and Janko,
your this year GSoC admins


--
Janko Mivšek
Aida/Web
Smalltalk Web Application Server
http://www.aidaweb.si

Reply | Threaded
Open this post in threaded view
|

Re: More GSoC ideas wanted, 3 days left ....

Guillermo Polito

  Title: VM simulator in Pharo

  Level: advanced

  Possible mentor: Esteban Lorenzano

  Possible second mentor: Guillermo Polito

  Description: The VM simulator is a very useful tool when it comes to understand the VM behavior and debugging. However, it does not work in Pharo since long time due to API changes in the core of the system. This project is about bringing the simulator back to life in Pharo to enhance the VM debugging activities.

  Technical Details: The VM simulator must be ported (or better adapted) and supported by tests.

  Benefits to the Student:
  - learn a VM architecture using a higher level language such as Slang to build a VM
  - understand how several VM components work by debugging and testing them

  Benefits to the Community: The community will have a tool to debug the VM and be able to evolve it easily.


On Tue, Mar 26, 2013 at 12:36 PM, Janko Mivšek <[hidden email]> wrote:
Dear Pharoers,

Ideas are slowly coming, 14 so far, but this is way below the 30+ in
previous years. So, stretch your brain, come with some more ideas, which
will be interesting for potential students and of course useful for our
community. Students you are again welcome to propose such idea by your
own. One student idea for now!

Ideas so far: http://gsoc2013.esug.org/ideas

To propose an idea just respond to this post by fulfilling this idea
template:

  Title:

  Level: (beginner, intermediate, advanced)

  Possible mentor: (if already known)

  Possible second mentor: (if already known)

  Description

  Technical Details

  Benefits to the Student

  Benefits to the Community

Best regards
Serge and Janko,
your this year GSoC admins


--
Janko Mivšek
Aida/Web
Smalltalk Web Application Server
http://www.aidaweb.si


Reply | Threaded
Open this post in threaded view
|

Re: More GSoC ideas wanted, 3 days left ....

stephane ducasse
In reply to this post by Janko Mivšek
Janko

Can you put andrei chis and nicolas passerini for Debugger improvment projects.
I know that alexandre should propose a couple of topics around roassal.

I could come up with a couple of other topics.
Here is one:


> Ideas so far: http://gsoc2013.esug.org/ideas
>
> To propose an idea just respond to this post by fulfilling this idea
> template:
>
>  Title:
        Better rewriting rule tool


>  Level: (beginner, intermediate, advanced)
        Intermediate

>  Possible mentor: (if already known)
        Stephane Ducasse

>  Possible second mentor: (if already known)
        Andre Hora
>
>  Description
        The refactoring browser is based on a powerful rewrite engine which transforms AST.
        However it is quite cumbersome to write rewrite rules. There is a need to build a tool to help
        programmers defining their own transformation.

>  Technical Details
>
>  Benefits to the Student
        learning AST
        learning AST transofrmation
        learning AST pattern matching
        User interface definition

>  Benefits to the Community
        A tool that is cruelly missing.


>
> Best regards
> Serge and Janko,
> your this year GSoC admins
>
>
> --
> Janko Mivšek
> Aida/Web
> Smalltalk Web Application Server
> http://www.aidaweb.si
>


Reply | Threaded
Open this post in threaded view
|

Re: More GSoC ideas wanted, 3 days left ....

drush66
In reply to this post by Janko Mivšek
On Tue, Mar 26, 2013 at 12:36 PM, Janko Mivšek <[hidden email]> wrote:
To propose an idea just respond to this post by fulfilling this idea
template:


Title: libev integration in Pharo image and VM 

Level: advanced

Possible mentor: ?

Possible second mentor: ?

Description: libev (http://software.schmorp.de/pkg/libev.html) is high performance event loop library
helps handling large number of concurrent connections and sources of async events. It has been used 
for a long time as networking library of Node.js. To be used in Pharo suitable interface in image and quite
possibly in VM would be needed.

Technical Details: It would be necessary to find suitable and efficient non delaying way to transfer callbacks from libev to 
process in smalltalk image. One path suggested by Elliot Miranda was to investigate Multi threaded VM and see if some
of its functionality can be used as is or as a base for further development.

Benefits to the Student: Getting in depth understanding of event driven frameworks and inbterfacing to Smalltalk virtual machine

Benefits to the Community: Having efficient event driven library available in Smalltalk would open possibility of writing efficient
servers in Smalltalk that can handle large number of concurrent connections.

Davorin Rusevljan




Reply | Threaded
Open this post in threaded view
|

Re: More GSoC ideas wanted, 3 days left ....

drush66
In reply to this post by Janko Mivšek
On Tue, Mar 26, 2013 at 12:36 PM, Janko Mivšek <[hidden email]> wrote:
To propose an idea just respond to this post by fulfilling this idea
template:



Title: Amber CouchApp framework

Level: medium

Possible mentor: ?

Possible second mentor: ?

Description: CouchApps, are javascript HTML applications which use CouchDB as backend, but also get served directly from CouchDB
server. Purpose of this project would be to provide means that such applications can be developed easily with Amber Smalltalk.

Technical Details: Currently Amber uses WebDav interface to store source code. This should be overridden to store it into the couchdb.
Proper way of including of all amber generated javasciprt files should also be found. 

Benefits to the Student: Getting to know development process of CouchDB  and Amber Smalltalk applications

Benefits to the Community: Amber CouchApps would be very simple to deploy and provide combined powers of Smalltalk and CouchDB


Davorin Rusevljan

Reply | Threaded
Open this post in threaded view
|

Re: More GSoC ideas wanted, 3 days left ....

Esteban A. Maringolo
In reply to this post by drush66
drush66 wrote
On Tue, Mar 26, 2013 at 12:36 PM, Janko Mivšek <[hidden email]>wrote:
Title: libev integration in Pharo image and VM

Description: libev (http://software.schmorp.de/pkg/libev.html) is high
performance event loop library
helps handling large number of concurrent connections and sources of async
events. It has been used
for a long time as networking library of Node.js. To be used in Pharo
suitable interface in image and quite
possibly in VM would be needed.

...

Benefits to the Community: Having efficient event driven library available
in Smalltalk would open possibility of writing efficient
servers in Smalltalk that can handle large number of concurrent connections.
Having an efficient event loop would give us a great tool to handle concurrent connections in a evented manner. Doing those with blocks and objects will be a pleasure.

But please consider Node.js is using libuv now (https://github.com/joyent/libuv), as a common layer for most platforms.

Regards
Reply | Threaded
Open this post in threaded view
|

Re: More GSoC ideas wanted, 3 days left ....

Paul DeBruicker
In reply to this post by Janko Mivšek
I have two not well thought out ideas for projects. This is the first:

On 03/26/2013 04:36 AM, Janko Mivšek wrote:
>  Title:
>
Create a package that integrates the Unicode Common Locale Data
Repository (CLDR) into Squeak/Pharo

>   Level: (beginner, intermediate, advanced)
>
Beginner?
>   Possible mentor: (if already known)
>
>   Possible second mentor: (if already known)
>
I could help out (or not) but may be someone better to lead.
>   Description
>
See: http://cldr.unicode.org/

The CLDR is a maintained set of locale specific information for use in
programs.  Creating a package that integrates it into Squeak & Pharo
would help with i18n and l10n for the platforms.  It would be preferable
to be able to load a limited number of locales rather than the whole
thing into every image.  We would probably benefit from having a Fuel
based data repo somewhere that can access the updated and interpreted
standards.

>   Technical Details
>
The CLDR is constantly edited and updated and published as a spec and
set of XML files.  Those files would need to be regularly downloaded and
parsed to create a publicly available


>   Benefits to the Student
>
Work with international standards, web services, wider knowledge of the
affects of the actions of politicians and history.  umm.


>   Benefits to the Community
Being able to properly interpret, compare, and format currencies, dates,
times, inside their images.

Reply | Threaded
Open this post in threaded view
|

Re: More GSoC ideas wanted, 3 days left ....

Paul DeBruicker
In reply to this post by Janko Mivšek
This is the second of two not well fleshed out ideas.

On 03/26/2013 04:36 AM, Janko Mivšek wrote:
>   Title:
>
Implement Fast Byzantine Paxos in Slang


>   Level: (beginner, intermediate, advanced)
>

Advanced

>   Possible mentor: (if already known)
>
>   Possible second mentor: (if already known)
>

I am willing to help out but I'm sure there's someone better as I don't
know slang or how to go about implementing Paxos. yet.

>   Description
>
Paxos (https://en.wikipedia.org/wiki/Paxos_%28computer_science%29) is a
framework for solving consensus in a network of unreliable processors.
A python implementation is available here: http://openreplica.org/

>   Technical Details
>
Could just port ConCoord (the openreplica.org's backend) from Python to
Slang rather than starting from scratch.

>   Benefits to the Student
>
Learn Smalltalk, Slang. Implement something hard.

>   Benefits to the Community
With enough images you can just persist everything in the image and each
image can be a reasonable size.

Reply | Threaded
Open this post in threaded view
|

Re: More GSoC ideas wanted, 3 days left ....

drush66
In reply to this post by Esteban A. Maringolo
On Wed, Mar 27, 2013 at 12:36 AM, Esteban A. Maringolo <[hidden email]> wrote:

Having an efficient event loop would give us a great tool to handle
concurrent connections in a evented manner. Doing those with blocks and
objects will be a pleasure.

But please consider Node.js is using libuv now
(https://github.com/joyent/libuv), as a common layer for most platforms.


Yes, good point, maybe we could leave it open and just title item "Event loop library integration"

Davorin

Reply | Threaded
Open this post in threaded view
|

Re: More GSoC ideas wanted, 3 days left ....

Janko Mivšek
In reply to this post by Paul DeBruicker
Hi Paul,

Can you continue describing your idea so that one will grasp the
essentials without needing to open first the Wikipedia links. Idea looks
promising, just not clarified yet enough. I'm pretty user you can
continue evolving it by yourself.

Best regards
Janko

Dne 27. 03. 2013 17:39, piše Paul DeBruicker:

> This is the second of two not well fleshed out ideas.
>
> On 03/26/2013 04:36 AM, Janko Mivšek wrote:
>>   Title:
>>
> Implement Fast Byzantine Paxos in Slang
>
>
>>   Level: (beginner, intermediate, advanced)
>>
>
> Advanced
>
>>   Possible mentor: (if already known)
>>
>>   Possible second mentor: (if already known)
>>
>
> I am willing to help out but I'm sure there's someone better as I don't
> know slang or how to go about implementing Paxos. yet.
>
>>   Description
>>
> Paxos (https://en.wikipedia.org/wiki/Paxos_%28computer_science%29) is a
> framework for solving consensus in a network of unreliable processors.
> A python implementation is available here: http://openreplica.org/
>
>>   Technical Details
>>
> Could just port ConCoord (the openreplica.org's backend) from Python to
> Slang rather than starting from scratch.
>
>>   Benefits to the Student
>>
> Learn Smalltalk, Slang. Implement something hard.
>
>>   Benefits to the Community
> With enough images you can just persist everything in the image and each
> image can be a reasonable size.
>
>

--
Janko Mivšek
Aida/Web
Smalltalk Web Application Server
http://www.aidaweb.si

Reply | Threaded
Open this post in threaded view
|

Re: More GSoC ideas wanted, 3 days left ....

Juan Pablo Sandoval
In reply to this post by Janko Mivšek


2013/3/26 Janko Mivšek <[hidden email]>
To propose an idea just respond to this post by fulfilling this idea
template:

Gadget (the inspector)


Level: Intermediate

Possible mentor:  Juan Pablo Sandoval Alcocer

Possible second mentor: Alexandre Bergel

Description:


Understanding how an application behaves at runtime requires adequate tools. However, MessageTally, the standard Smalltalk code profiler, is very limited in the kind of analyzis it can carry out. Spy (a profiler framework) is an attempt that has been made in the past, however Spy suffers from poor design, typically forcing profilers to contain a heavy dose of duplicate code.


In this project, we plan to produce Gadget, a portable, open and flexible profiling platform.  Hapao [1], Kai [2] and Rizel [3] will be migrated from Spy to Gadget.


Gadget will not only provide features to measure code coverage, time consumption, snapshot comparison, but will provide tools to monitor memory consumption.


All these features will provide to Pharo developers the tools to create domain specific profilers and reuse the features of different implemented profilers in Gadget.


Technical Details:


In this project the student will:

- define and implement a profiler metamodel.

- learn and implement instrumentation and/or sampling techniques.

- migrate three profilers from Spy to Gadget.


Benefits to the Student:


The student will (i) address performance problems; maintainability, design and evolution issues. (ii) get a better understanding of the executing environment of Pharo; (iii) learn reflection and dynamic analysis basics.


Benefits to the Community:


- Have a new open-source profiler framework with a smooth implementation of the feedback and experience from the community.

- Allow the community to develop new profilers on top of Gadget which are easier to implement and maintain.

 

Reply | Threaded
Open this post in threaded view
|

Re: More GSoC ideas wanted, 3 days left ....

Paul DeBruicker
In reply to this post by Janko Mivšek


On 03/27/2013 10:30 AM, Janko Mivšek wrote:

> Hi Paul,
>
> Can you continue describing your idea so that one will grasp the
> essentials without needing to open first the Wikipedia links. Idea looks
> promising, just not clarified yet enough. I'm pretty user you can
> continue evolving it by yourself.
>
> Best regards
> Janko
>

Sure I'll give it a shot, but caveat emptor:

> Dne 27. 03. 2013 17:39, piše Paul DeBruicker:
>> This is the second of two not well fleshed out ideas.
>>
>> On 03/26/2013 04:36 AM, Janko Mivšek wrote:
>>>   Title:
>>>
>> Implement Fast Byzantine Paxos in Slang
>>
>>

Paxos is a system for ensuring consensus across a network of processors
(e.g. multiple images on multiple computers or cpus on the same
hardware).  Fast Byzantine Paxos is Paxos extended to ensure reliability
in the face of arbitrary failures among processors, lying from
processors, collusion among more than once lying processor, etc. Fast
Byzantine Paxos is just a version of Byzantine Paxos that omits a step
seemingly trading network latency for additional CPU work.  But I'm not
sure of the tradeoffs.


>>>   Level: (beginner, intermediate, advanced)
>>>
>>
>> Advanced
>>
>>>   Possible mentor: (if already known)
>>>
>>>   Possible second mentor: (if already known)
>>>
>>
>> I am willing to help out but I'm sure there's someone better as I don't
>> know slang or how to go about implementing Paxos. yet.
>>
>>>   Description
>>>
>> Paxos (https://en.wikipedia.org/wiki/Paxos_%28computer_science%29) is a
>> framework for solving consensus in a network of unreliable processors.
>> A python implementation is available here: http://openreplica.org/
>>

My basic understanding is that among a set of images (technically
"processors" but I'm going to use image because it seems more relevant
here) you construct a quorum.  That quorum calculates and agrees on a
response to a client request.  The quorum survives and is the unit of
computation but the individual images inside it change in make up and
number through time as images and machines die and come back.  The
quorum maintains and replicates the state among its member images.  The
images in the quorum can at any time assume at least one of 5 roles
(client, acceptor, proposer, learner, leader) for that quorum and most
play all but leader all the time. The images can participate in more
than one quorum.    There is only one 'leader' per quorum (but the
leader can be any image in the quorum and is 'elected' by the quorum
members) and sends messages to others in the quorum to process.  I'm not
sure of the gory details but the client sends a request to the quorum,
the quorum processes it, and sends back the one agreed upon response
regardless of how many machines are in the quorum that fail or fail to
respond during the computation. Paxos describes all the intra process
communication that needs to take place to ensure that the quorum
provides reliable responses to requests in the face of hardware and
network failures.  Implementing it in Slang would potentially make it
faster than in image (guessing) because C and it could be a plugin.

>>>   Technical Details
>>>
>> Could just port ConCoord (the openreplica.org's backend) from Python to
>> Slang rather than starting from scratch.
>>

It is my understanding that implementing Paxos from scratch and covering
all corner cases and failure modes is very very hard. Probably also
confusing. Sorry I don't know more but here's a zip of the papers I've
collected that describe ways and issues around implementing it:
http://dl.dropbox.com/u/4460862/paxos-papers.zip



>>>   Benefits to the Student
>>>
>> Learn Smalltalk, Slang. Implement something hard.
>>

Also build a robust distributed Smalltalk system.


>>>   Benefits to the Community
>> With enough images you can just persist everything in the image and each
>> image can be a reasonable size.
>>
>>
>

Other benefits include making a (hardware, network) failure resistant
server Smalltalk process

Reply | Threaded
Open this post in threaded view
|

Re: More GSoC ideas wanted, 3 days left ....

NorbertHartl
In reply to this post by Paul DeBruicker
Wow! That is something I just researched a few days before and think it would be really helpful for distributed stuff

Just want to say

Norbert

Am 27.03.2013 um 17:39 schrieb Paul DeBruicker <[hidden email]>:

> This is the second of two not well fleshed out ideas.
>
> On 03/26/2013 04:36 AM, Janko Mivšek wrote:
>>  Title:
> Implement Fast Byzantine Paxos in Slang
>
>
>>  Level: (beginner, intermediate, advanced)
>
> Advanced
>
>>  Possible mentor: (if already known)
>>
>>  Possible second mentor: (if already known)
>
> I am willing to help out but I'm sure there's someone better as I don't
> know slang or how to go about implementing Paxos. yet.
>
>>  Description
> Paxos (https://en.wikipedia.org/wiki/Paxos_%28computer_science%29) is a
> framework for solving consensus in a network of unreliable processors.
> A python implementation is available here: http://openreplica.org/
>
>>  Technical Details
> Could just port ConCoord (the openreplica.org's backend) from Python to
> Slang rather than starting from scratch.
>
>>  Benefits to the Student
> Learn Smalltalk, Slang. Implement something hard.
>
>>  Benefits to the Community
> With enough images you can just persist everything in the image and each
> image can be a reasonable size.
>

Reply | Threaded
Open this post in threaded view
|

Re: More GSoC ideas wanted, 3 days left ....

Andrei Chis
In reply to this post by Janko Mivšek
A short idea for a GSoC project to improve the debugger.

Cheers,
Andrei


-----------------------------------------------------------------------------------------------------------

Title: Improving the inspection of expressions in the debugger

Level: beginner/intermediate

 Possible mentor: Andrei Chis

 Possible second mentor: Nicolas Passerini, Tudor Girba

 Description:

The debugger is a central tool in any programming language, as it
helps developers understand the dynamic behaviour of applications.
Furthermore, in Smalltalk, it can also be used to write code and thus
extend applications while they are running.

One important aspect that is missing in the current Pharo debugger, is
the ability to view the value of intermediate expressions involved in
method calls. For example consider the call:
        ^ self doSomething: (anArray at: 2) with: aStream next onlyIf:
aCondition isValid.
In order to view the values of the expressions  (anArray at: 2),
(aStream next) and  (aCondition isValid) we have to directly go into
the actual method call. Furthermore, viewing the return value can be
more difficult, if we do not store it into a variable.

The goal of this project is to add support for exploring these kind of
expressions by using dedicated widgets. For example, one alternative
might be adding pseudo variables into inspectors, while another might
consist in using popups that display these values for any expression
selected in the editor.

Technical Details:
The student will have to understand how the debugger works, and will
have to familiarise himself with the new debugging infrastructure.
Also, he'll have to look into at least a framework for building UIs
(Spec/Glamour).

Benefits to the Student:
He will get a deep understanding of how debugging is done, on how the
debugger works and he'll also interact with a framework for building
UIs.

Benefits to the Community:
The community will bet a better debugger,  in which values passed and
returned by methods could be easily explored using different widgets.

-----------------------------------------------------------------------------------------------------------

On Tue, Mar 26, 2013 at 12:36 PM, Janko Mivšek <[hidden email]> wrote:

> Dear Pharoers,
>
> Ideas are slowly coming, 14 so far, but this is way below the 30+ in
> previous years. So, stretch your brain, come with some more ideas, which
> will be interesting for potential students and of course useful for our
> community. Students you are again welcome to propose such idea by your
> own. One student idea for now!
>
> Ideas so far: http://gsoc2013.esug.org/ideas
>
> To propose an idea just respond to this post by fulfilling this idea
> template:
>
>   Title:
>
>   Level: (beginner, intermediate, advanced)
>
>   Possible mentor: (if already known)
>
>   Possible second mentor: (if already known)
>
>   Description
>
>   Technical Details
>
>   Benefits to the Student
>
>   Benefits to the Community
>
> Best regards
> Serge and Janko,
> your this year GSoC admins
>
>
> --
> Janko Mivšek
> Aida/Web
> Smalltalk Web Application Server
> http://www.aidaweb.si
>

Reply | Threaded
Open this post in threaded view
|

Re: More GSoC ideas wanted, 3 days left ....

S Krish
In reply to this post by Esteban A. Maringolo

SmalltalkOpenCL

https://www.khronos.org/opencl/

Level: Advanced

Possible mentor:  TB Indentified

Possible second mentor: TB Indentified


Description:


Build the interface from Pharo to OpenCL. This will automatically provide a great opening for Pharo to work with the underlying OpenCL libraries for effective use of multi CPU cores and across GPU's. Infact a Apache Hadoop like capability to do a map reduce can also be leveraged that will make it immensely beneficial for the enterprise stakeholders. Sometimes the very capability does exist is more important than the actual utilization in deciding the use of technology in enterprise units.

( This along with a proper interface to MQ / MQ like messaging interface will be a great platform for enterprise computing )

Technical Details:


In this project the student will:

- define and implement an interface to the OpenCL C library

- work on porting some existing samples to Pharo Smalltalk


Benefits to the Student:


The student gains a huge understanding of the current trends in parallel programming of modern processors across various hardwares.


The student should have good understanding and grasp of C / C++ as well ability to work FFI in Pharo Smalltalk.


Benefits to the Community:


- An interface to an industry standard platform for parallel programming


On Wed, Mar 27, 2013 at 5:06 AM, Esteban A. Maringolo <[hidden email]> wrote:
drush66 wrote
> On Tue, Mar 26, 2013 at 12:36 PM, Janko Mivšek &lt;

> janko.mivsek@

> &gt;wrote:
> Title: libev integration in Pharo image and VM
>
> Description: libev (http://software.schmorp.de/pkg/libev.html) is high
> performance event loop library
> helps handling large number of concurrent connections and sources of async
> events. It has been used
> for a long time as networking library of Node.js. To be used in Pharo
> suitable interface in image and quite
> possibly in VM would be needed.
>
> ...
>
> Benefits to the Community: Having efficient event driven library available
> in Smalltalk would open possibility of writing efficient
> servers in Smalltalk that can handle large number of concurrent
> connections.

Having an efficient event loop would give us a great tool to handle
concurrent connections in a evented manner. Doing those with blocks and
objects will be a pleasure.

But please consider Node.js is using libuv now
(https://github.com/joyent/libuv), as a common layer for most platforms.

Regards



--
View this message in context: http://forum.world.st/More-GSoC-ideas-wanted-3-days-left-tp4678354p4678494.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.


Reply | Threaded
Open this post in threaded view
|

Re: More GSoC ideas wanted, 3 days left ....

melkyades
In reply to this post by Janko Mivšek
Are we still on time for the party?

Title:  Smalltalk Native-Code Debugger.
Level: Intermediate.
Possible mentor:  Guido Chari.
Possible second mentor: Javier Pimás.

Description:

Smalltalk is a powerful environment for software developing. It allows the development of high-level abstractions, and it is highly dynamic and reflective, which promotes analyzing and changing objects at run-time. Debuggers are essential tools, particularly in Smalltalk because they allow developers to understand a program as well as to find and fix defects as they are running.

Debugging native applications, on the other hand, is very hard. Many native applications can't be developed using high level abstractions. Furthermore, as they consist of native-code, debugging them requires understanding and modification of very low-level operations on raw memory at run-time [1], and also a close interaction with the operating system [2][3]. 

Using Smalltalk to control and debug low-level code would be a great aid in the native-code development process. It would allow not only to control programs status and trace, but also to easily develop a myriad of high-level tools that analyze and modify native-code as it runs.


Technical Details:

There are many different kinds of debuggers, and many mechanisms are already mature for implementing features in them[4]. Warp[5] is a recently born project to implement on Pharo a wrapper for the PTrace system call, the essential operating system debugging API. With the addition of already existing powerful high-level tools for low-level programming, as NativeBoost[6] and Waterfall[7], this project will allow to have a native debugger interface for any process from a Smalltalk image, and create a complete ecosystem for Native-Code developing from Smalltalk.

The first steps will include understanding the ptrace system call, and about x86 instructions coding and decoding. This can be done by completing the wrapper of ptrace, which consists of only one function with many different functionalities and improving the disassembler for x86 binary code. After this the student will be able to develop tools for aiding in native-code debugging, like a specialized inspectors and debuggers for watching the value of variables, adding breakpoints, watchpoints, modifying memory and code.


Benefits to the Student:

* gain experience in high-level and low-level programming.
* learn about how debuggers work under the hood
* gain experience on the usage and development of a complete Smalltalk native-code development toolchain.
* learn about native-code assembling and disassembling  

Benefits to the Community:

* Lately, there has been more and more evidence that high-level written software for low-level development is starting to succeed. Smalltalk provides an ideal platform for exploring this domain because of its powerful reflective capabilities. NativeBoost already promotes lot of new possibilities for working dynamically on the Pharo environment with complex low-level tasks. More tools for having a complete and outstanding tool-chain are needed and the native debugging interface is one of the most prominent and promising.

* A native-code debugger will help Smalltalk VM and low-level programmers, because it will leverage all their Smalltalk programming skills into low-level programming. It could even bring closer non-VM programmers to VM code, as it would remove a barrier of entrance to VM programming.

* Having a fully working native-code debugger would be a killer app that can attract lots of low-level developers to Smalltalk, specially Virtual Machine and C/C++ programmers.


Cheers,
Guido and Javier. 

[4] How debuggers work: algorithms, data structures, and architecture, Jonathan B. Rosenberg, ISBN: 0-471-14966-7




On Tue, Mar 26, 2013 at 8:36 AM, Janko Mivšek <[hidden email]> wrote:
Dear Pharoers,

Ideas are slowly coming, 14 so far, but this is way below the 30+ in
previous years. So, stretch your brain, come with some more ideas, which
will be interesting for potential students and of course useful for our
community. Students you are again welcome to propose such idea by your
own. One student idea for now!

Ideas so far: http://gsoc2013.esug.org/ideas

To propose an idea just respond to this post by fulfilling this idea
template:

  Title:

  Level: (beginner, intermediate, advanced)

  Possible mentor: (if already known)

  Possible second mentor: (if already known)

  Description

  Technical Details

  Benefits to the Student

  Benefits to the Community

Best regards
Serge and Janko,
your this year GSoC admins


--
Janko Mivšek
Aida/Web
Smalltalk Web Application Server
http://www.aidaweb.si




--
Lic. Javier Pimás
Ciudad de Buenos Aires
Reply | Threaded
Open this post in threaded view
|

Re: More GSoC ideas wanted, 3 days left ....

Camillo Bruni-3
thanks guys for writing this down!
I didn't have the power anymore :(

On 2013-03-29, at 02:34, Javier Pimás <[hidden email]> wrote:

> Are we still on time for the party?
>
> *Title:*  Smalltalk Native-Code Debugger.
> *Level*: Intermediate.
> *Possible mentor:*  Guido Chari.
> *Possible second mentor:* Javier Pimás.
>
> *Description:*
>
> Smalltalk is a powerful environment for software developing. It allows the
> development of high-level abstractions, and it is highly dynamic and
> reflective, which promotes analyzing and changing objects at run-time.
> Debuggers are essential tools, particularly in Smalltalk because they allow
> developers to understand a program as well as to find and fix defects as
> they are running.
>
> Debugging native applications, on the other hand, is very hard. Many native
> applications can't be developed using high level abstractions. Furthermore,
> as they consist of native-code, debugging them requires understanding and
> modification of very low-level operations on raw memory at run-time [1],
> and also a close interaction with the operating system [2][3].
>
> Using Smalltalk to control and debug low-level code would be a great aid in
> the native-code development process. It would allow not only to control
> programs status and trace, but also to easily develop a myriad of
> high-level tools that analyze and modify native-code as it runs.
>
>
> *Technical Details:*
>
> There are many different kinds of debuggers, and many mechanisms are
> already mature for implementing features in them[4]. Warp[5] is a recently
> born project to implement on Pharo a wrapper for the PTrace system call,
> the essential operating system debugging API. With the addition of already
> existing powerful high-level tools for low-level programming, as
> NativeBoost[6] and Waterfall[7], this project will allow to have a native
> debugger interface for any process from a Smalltalk image, and create a
> complete ecosystem for Native-Code developing from Smalltalk.
>
> The first steps will include understanding the ptrace system call, and
> about x86 instructions coding and decoding. This can be done by completing
> the wrapper of ptrace, which consists of only one function with many
> different functionalities and improving the disassembler for x86 binary
> code. After this the student will be able to develop tools for aiding in
> native-code debugging, like a specialized inspectors and debuggers for
> watching the value of variables, adding breakpoints, watchpoints, modifying
> memory and code.
>
>
> *Benefits to the Student:*
>
> * gain experience in high-level and low-level programming.
> * learn about how debuggers work under the hood
> * gain experience on the usage and development of a complete Smalltalk
> native-code development toolchain.
> * learn about native-code assembling and disassembling
>
> *Benefits to the Community:*
>
> * Lately, there has been more and more evidence that high-level written
> software for low-level development is starting to succeed. Smalltalk
> provides an ideal platform for exploring this domain because of its
> powerful reflective capabilities. NativeBoost already promotes lot of new
> possibilities for working dynamically on the Pharo environment with complex
> low-level tasks. More tools for having a complete and outstanding
> tool-chain are needed and the native debugging interface is one of the most
> prominent and promising.
>
> * A native-code debugger will help Smalltalk VM and low-level programmers,
> because it will leverage all their Smalltalk programming skills into
> low-level programming. It could even bring closer non-VM programmers to VM
> code, as it would remove a barrier of entrance to VM programming.
>
> * Having a fully working native-code debugger would be a killer app that
> can attract lots of low-level developers to Smalltalk, specially Virtual
> Machine and C/C++ programmers.
>
>
> Cheers,
> Guido and Javier.
>
> [1] http://mikecvet.wordpress.com/2010/08/14/ptrace-tutorial/
> [2]
> http://www.ee.ryerson.ca/~courses/coe518/LinuxJournal/elj2002-103-ptrace1.pdf
> [3]
> http://www.ee.ryerson.ca/~courses/coe518/LinuxJournal/elj2002-104-ptrace2.pdf
>
> [4] How debuggers work: algorithms, data structures, and architecture,
> Jonathan B. Rosenberg, ISBN: 0-471-14966-7
> [5] http://smalltalkhub.com/#!/~melkyades/Warp
> [6] https://code.google.com/p/nativeboost/
> [7] http://smalltalkhub.com/#!/~mate/Waterfall
>
>
>
>
> On Tue, Mar 26, 2013 at 8:36 AM, Janko Mivšek <[hidden email]>wrote:
>
>> Dear Pharoers,
>>
>> Ideas are slowly coming, 14 so far, but this is way below the 30+ in
>> previous years. So, stretch your brain, come with some more ideas, which
>> will be interesting for potential students and of course useful for our
>> community. Students you are again welcome to propose such idea by your
>> own. One student idea for now!
>>
>> Ideas so far: http://gsoc2013.esug.org/ideas
>>
>> To propose an idea just respond to this post by fulfilling this idea
>> template:
>>
>>  Title:
>>
>>  Level: (beginner, intermediate, advanced)
>>
>>  Possible mentor: (if already known)
>>
>>  Possible second mentor: (if already known)
>>
>>  Description
>>
>>  Technical Details
>>
>>  Benefits to the Student
>>
>>  Benefits to the Community
>>
>> Best regards
>> Serge and Janko,
>> your this year GSoC admins
>>
>>
>> --
>> Janko Mivšek
>> Aida/Web
>> Smalltalk Web Application Server
>> http://www.aidaweb.si
>>
>>
>
>
> --
> Lic. Javier Pimás
> Ciudad de Buenos Aires


Reply | Threaded
Open this post in threaded view
|

Re: More GSoC ideas wanted, 3 days left ....

hilaire
In reply to this post by Janko Mivšek
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: More GSoC ideas wanted, 3 days left ....

stephane ducasse
In reply to this post by S Krish
would be cool to have that bridge :)
using NB :)

Stef

On Mar 28, 2013, at 5:27 PM, S Krish <[hidden email]> wrote:

SmalltalkOpenCL
https://www.khronos.org/opencl/

Level: Advanced
Possible mentor:  TB Indentified
Possible second mentor: TB Indentified

Description:

Build the interface from Pharo to OpenCL. This will automatically provide a great opening for Pharo to work with the underlying OpenCL libraries for effective use of multi CPU cores and across GPU's. Infact a Apache Hadoop like capability to do a map reduce can also be leveraged that will make it immensely beneficial for the enterprise stakeholders. Sometimes the very capability does exist is more important than the actual utilization in deciding the use of technology in enterprise units.

( This along with a proper interface to MQ / MQ like messaging interface will be a great platform for enterprise computing )

Technical Details:

In this project the student will:
- define and implement an interface to the OpenCL C library
- work on porting some existing samples to Pharo Smalltalk

Benefits to the Student:

The student gains a huge understanding of the current trends in parallel programming of modern processors across various hardwares.

The student should have good understanding and grasp of C / C++ as well ability to work FFI in Pharo Smalltalk.

Benefits to the Community:

- An interface to an industry standard platform for parallel programming

On Wed, Mar 27, 2013 at 5:06 AM, Esteban A. Maringolo <[hidden email]> wrote:
drush66 wrote
> On Tue, Mar 26, 2013 at 12:36 PM, Janko Mivšek &lt;

> janko.mivsek@

> &gt;wrote:
> Title: libev integration in Pharo image and VM
>
> Description: libev (http://software.schmorp.de/pkg/libev.html) is high
> performance event loop library
> helps handling large number of concurrent connections and sources of async
> events. It has been used
> for a long time as networking library of Node.js. To be used in Pharo
> suitable interface in image and quite
> possibly in VM would be needed.
>
> ...
>
> Benefits to the Community: Having efficient event driven library available
> in Smalltalk would open possibility of writing efficient
> servers in Smalltalk that can handle large number of concurrent
> connections.

Having an efficient event loop would give us a great tool to handle
concurrent connections in a evented manner. Doing those with blocks and
objects will be a pleasure.

But please consider Node.js is using libuv now
(https://github.com/joyent/libuv), as a common layer for most platforms.

Regards



--
View this message in context: http://forum.world.st/More-GSoC-ideas-wanted-3-days-left-tp4678354p4678494.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.



Reply | Threaded
Open this post in threaded view
|

Re: More GSoC ideas wanted, 3 days left ....

S Krish
Yes, Squeak already has a work done on OpenCL.. need to check that out and see if NB can replace the bridge done there.


On Sun, Mar 31, 2013 at 5:51 PM, stephane ducasse <[hidden email]> wrote:
would be cool to have that bridge :)
using NB :)

Stef

On Mar 28, 2013, at 5:27 PM, S Krish <[hidden email]> wrote:

SmalltalkOpenCL
https://www.khronos.org/opencl/

Level: Advanced
Possible mentor:  TB Indentified
Possible second mentor: TB Indentified

Description:

Build the interface from Pharo to OpenCL. This will automatically provide a great opening for Pharo to work with the underlying OpenCL libraries for effective use of multi CPU cores and across GPU's. Infact a Apache Hadoop like capability to do a map reduce can also be leveraged that will make it immensely beneficial for the enterprise stakeholders. Sometimes the very capability does exist is more important than the actual utilization in deciding the use of technology in enterprise units.

( This along with a proper interface to MQ / MQ like messaging interface will be a great platform for enterprise computing )

Technical Details:

In this project the student will:
- define and implement an interface to the OpenCL C library
- work on porting some existing samples to Pharo Smalltalk

Benefits to the Student:

The student gains a huge understanding of the current trends in parallel programming of modern processors across various hardwares.

The student should have good understanding and grasp of C / C++ as well ability to work FFI in Pharo Smalltalk.

Benefits to the Community:

- An interface to an industry standard platform for parallel programming

On Wed, Mar 27, 2013 at 5:06 AM, Esteban A. Maringolo <[hidden email]> wrote:
drush66 wrote
> On Tue, Mar 26, 2013 at 12:36 PM, Janko Mivšek &lt;

> janko.mivsek@

> &gt;wrote:
> Title: libev integration in Pharo image and VM
>
> Description: libev (http://software.schmorp.de/pkg/libev.html) is high
> performance event loop library
> helps handling large number of concurrent connections and sources of async
> events. It has been used
> for a long time as networking library of Node.js. To be used in Pharo
> suitable interface in image and quite
> possibly in VM would be needed.
>
> ...
>
> Benefits to the Community: Having efficient event driven library available
> in Smalltalk would open possibility of writing efficient
> servers in Smalltalk that can handle large number of concurrent
> connections.

Having an efficient event loop would give us a great tool to handle
concurrent connections in a evented manner. Doing those with blocks and
objects will be a pleasure.

But please consider Node.js is using libuv now
(https://github.com/joyent/libuv), as a common layer for most platforms.

Regards



--
View this message in context: http://forum.world.st/More-GSoC-ideas-wanted-3-days-left-tp4678354p4678494.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.