[Seaside] Summer of code Application

Pedro Del Gallego pedro.delgallego at gmail.com
Sat Mar 17 20:07:27 UTC 2007


Hi,

I'm a student and i want apply to the Summer of code. I wrote an
application. It would be nice to have some feedback from the
community. Before i post in the official google webapp.

Any comment or advices will be really appreciate

I also attachment  a copy in txt with this mail.

Thanks.

----------------------------------------------------------------------------------------------------------------
                                              Application
----------------------------------------------------------------------------------------------------------------
Name       : Seaside and Sails
URL idea  : http://wiki.squeak.org/squeak/5952
Student    : Pedro Del Gallego Vida.

-----------------------------------  Seaside and Sails
-----------------------------------

 ========= Abstract : =========

  This project will provide, by the end of the summer, a tool that
bring a structure generation to Seaside. This piece of software
enhance Seaside  with generetors tools, commands and conventions that
help programmers to develop CRUD-style web applications in Seaside in
a much faster approach. Other of the goals of this project is create
an extensible code generator that provide the infrastructure to
develop custom generator easily

The approach is the Structure generation vs the code generation.

   *  one-step creation of components, including models and views.
(probably using Magritte)
        - The model
        - The view with the four basic operation method.
Create/read/update/delete (CRUD), list and style mehotd,
        - The database scheme

   * Easy creation of tests: using Sunit
         - unit tests
         - functional tests
         - performance tests

   * To easily connect to persistence layers, create the basic
features for CRUD operation in the model. (probably using glorp)
        - basic find behavior.

   * Help int the deploy application generating a set of commands that :
        - Start the server.              // WAKom startOn: 9090.
        - Register the application       // registerAsApplication:
        - ....

   * Only database Configuration of this tool will be necessary. Code
convention over code configuration.

========= Benefits for The Seaside Community =========

   Seaside will be powered by a structure code generation. It will
accelerate the development cycle, supporting generation for models,
views, test, and allowing the user to design and implement custom
generators.

  While a new framework has a shallow learning curve for Java, JSP,
PHP, Python guys, Seaside is much, much different.  Structure
generation drastically lowers the learning curve by teaching the
conventions through code instead of documentation.

 ========= Development plan  =========

  1 Research (1st week)
     * Identify the best practices, code conventions and structure
convention of a Seaside application
     * Identify the common manual task in a Seaside development cycle
     * Identify Smalltalk idioms
     * Define the commons action in all the task (create a class,
define methods, ...)

  2 Implement the kernel classes, with only basic features. (2nd week)

  3 Integrate Magritte with the kernel of the framework to generate
the views  (·rd week)

  4 Integrate Sunit with the Kernel framework to generate unit test (4th week)

  5 Implements connectors to the database. (Using glorp)  (5th week)

  6 implements helpers to deploy the application  (6th week)

  7 Adding Generator class loaders.(6th week)

  8 Implementation of user intefaces (commands for the workspace) (7th week)

  9 Extensive testing (Unit Testing)(8th week)

  10 Documentation and tutorial. (8th week)

 ========= Basics generators class hierarchy  =========

     ---|
        |--  BaseGenerator
        |    |
        |    |-- ApplicationGenerator
        |    |   |
        |    |   |-- seasideAppGenerator
        |    |
        |    |-- TaskGenerator
        |    |   |
        |    |   |-- ModelGenerator
        |    |   |
        |    |   |-- ViewGenerator
        |    |   |
        |    |   |-- TestGenerator
        |    |
        |    |--
        |    |
        |
        |-- scriptsDeployGenerators
        |
        |--
        |
        |--  gen // a command line (workspace) for the generators.



 ========= Related programming techniques :  =========

* Reflection.
* Metaprogramming.
* Structure code generation.

 ========= Related  frameworks: =========

* SUnit
* Magritte

 ========= About me: =========

  I am 28 y.o., and I am 5th year student of Computer Science at
Universidad de Granada, Spain. I'll graduate in about 9 month. My
interests are virtual machines, web technologies, object-oriented
systems, functional languages and many other things.

  Currently I combine my education in UGR with work in software
company in Hamburg, Germany. My current duty is Ruby/Rails
development. My graduate work in university is dedicated to applying
Latente Semantic Indexing to natural languages processing.

  I also have extensive experience in the Linux-Tomcat-Java-Struts
architecture, having written code for one of the biggest world car
manufacturers , among other projects.

  My relevant skills include proficiency in C, Java, Lisp, Ruby the
standard GNU development tools (gcc, automake, etc.), Java tools
(Xdoclet, ant, maven), CVS/SVN, and a host of other smaller languages
and tools. I've been involved in the open source community for a
while. I help to build and configurate http://javahispano.net Gforge
(sourceforge) site for the Java spanish spoken community.


 ========= Motivation and interests: =========

  Why I want to take part in it... I'll be honest. I saw Seaside at
the first time, when I read a post "on smalltalk blog" comparing Rails
vs Seaside a month ago. I was surprise about this new way to develop
web application. And I liked it.

  I spend the last year working with rails. I wrote custom generators
and rake task for my employer. I love ruby/rails tools, like
rails_generators system or rake, and the way they reduce the time i
spend in front of the IDE.

So, I think, I can do this task.

 ========= Available time:  =========

In the beginning of the project (to the end of June), I will be
somewhat limited by school - our semester ends by the end of May,
followed by one month reserved for exams. During that time, I will
spend some time learning and doing exams, so I cannot commit myself
into this project fully during June. But I am sure I will be able to
find time. After that, I will have 2 months holiday that I plan
spending fully for the project. Maybe, I will go for one week
vacation, but I assume I would work on this project even on this
vacation, so it would not interfere with project development much.

-- 
-------------------------------------
Pedro Del Gallego

Email              :   pedro.delgallego at gmail.com
-------------- next part --------------
 -----------------------------------  Seaside and Sails   -----------------------------------

 ========= Abstract : =========

  This project will provide, by the end of the summer, a tool that bring a structure generation to Seaside. This piece of software enhance Seaside  with generetors tools, commands and conventions that help programmers to develop CRUD-style web applications in Seaside in a much faster approach. Other of the goals of this project is create an extensible code generator that provide the infrastructure to develop custom generator easily

The approach is the Structure generation vs the code generation.

   *  one-step creation of components, including models and views. (probably using Magritte)
        - The model
        - The view with the four basic operation method. Create/read/update/delete (CRUD), list and style mehotd,
        - The database scheme

   * Easy creation of tests: using Sunit
         - unit tests
         - functional tests
         - performance tests

   * To easily connect to persistance layers, create the basic features for CRUD operation in the model. (probably using glorp)
        - basic find behavior.

   * Help int the deploy application generating a set of commands that :
        - Start the server.              // WAKom startOn: 9090.
        - Register the application       // registerAsApplication:
        - ....
  
   * Only database Configuration of this tool will be necesary. Code convention over code configuration.
  
========= Benefits for The Seaside Community ========= 

   Seaside will be powered by a structure code generation. It will accelerate the development cycle, supporting generation for models, views, test, and allowing the user to design and implement custom generators.

  While a new framework has a shallow learning curve for Java, JSP, PHP, Python guys, Seaside is much, much different.  Structure generation drastically lowers the learning curve by teaching the conventions through code instead of documentation.

 ========= Development plan  =========

  1 Research (1st week)
     * Identify the best practices, code conventions and structure convention of a Seaside application
     * Identify the common manual task in a Seaside development cycle                
     * Identify Smalltalk idioms
     * Define the commons action in all the task (create a class, define methods, ...)

  2 Implement the kernel classes, with only basic features. (2nd week)
 
  3 Integrate Magritte with the kernel of the framework to generate the views  (??rd week)

  4 Integrate Sunit with the Kernel framework to generte unit test (4th week)

  5 Implements connectors to the database. (Using glorp)  (5th week)

  6 implements helpers to deploy the application  (6th week)

  7 Adding Generator class loaders.(6th week)

  8 Implementation of user intefaces (commands for the workspace) (7th week)

  9 Extensive testing (Unit Testing)(8th week)

  10 Documentation and tutorial. (8th week)

 ========= Basics generators class hierarchy  =========
    
     ---|
        |--  BaseGenerator
        |    |
        |    |-- ApplicationGenerator
        |    |   |
        |    |   |-- seasideAppGenerator
        |    |
        |    |-- TaskGenerator
        |    |   |
        |    |   |-- ModelGenerator
        |    |   |
        |    |   |-- ViewGenerator
        |    |   |
        |    |   |-- TestGenerator
        |    |
        |    |--
        |    |
        |
        |-- scriptsDeployGenerators
        |
        |--
        |
        |--  gen // a command line (workspace) for the generators.
         
                

 ========= Related programming techniques :  =========

* Reflection.
* Metaprogramming.
* Structure code generation.

 ========= Related  frameworks: =========

* SUnit
* Magritte
 
 ========= About me: =========

  I am 28 y.o., and I am 5th year student of Computer Science at Universidad de Granada, Spain. I'll graduate in about 9 month. My interests are virtual machines, web technologies, object-oriented systems, functional languages and many other things.

  Currently I combine my education in UGR with work in software company in Hamburg, Germany. My current duty is Ruby/Rails  development. My graduate work in university is dedicated to applying Latente Semantic Indexing to natural languages processing.

  I also have extensive experience in the Linux-Tomcat-Java-Struts architecture, having written code for one of the biggest world car manufacturers , among other projects.

  My relevant skills include proficiency in C, Java, Lisp, Ruby the standard GNU development tools (gcc, automake, etc.), Java tools (Xdoclet, ant, maven), CVS/SVN, and a host of other smaller languages and tools. I've been involved in the open source community for a while. I help to build and configurate http://javahispano.net Gforge (sourceforge) site for the Java spanish spoken community.


 ========= Motivation and interests: =========

  Why I want to take part in it... I'll be honest. I saw Seaside at the first time, when I read a post "on smalltalk blog" comparing Rails vs Seaside a month ago. I was surprise about this new way to develop  web application. And I liked it.

  I spend the last year working with rails. I wrote custom generators and rake task for my employer. I love ruby/rails tools, like rails_generators system or rake, and the way they reduce the time i spend in front of the IDE.

So, I think, I can do this task.

 ========= Available time:  =========

In the beginning of the project (to the end of June), I will be somewhat limited by school - our semester ends by the end of May, followed by one month reserved for exams. During that time, I will spend some time learning and doing exams, so I cannot commit myself into this project fully during June. But I am sure I will be able to find time. After that, I will have 2 months holiday that I plan spending fully for the project. Maybe, I will go for one week vacation, but I assume I would work on this project even on this vacation, so it would not interfere with project development much.


More information about the seaside mailing list