[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    PlasMate Proposal - an editor for Plasmoids, DataEngines and Themes
From:       Diego Casella <polentino911 () gmail ! com>
Date:       2009-03-29 13:22:22
Message-ID: e6aee9e0903290622k7ade1d71x8e52967e1b899dd0 () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Hello guys,
after few days on in-depth studying, I released this new version of my
PlasMate proposal described below, and also available here:
http://socghop.appspot.com/document/show/user/diego_casella/plasmate

I hope you can consider it quite detailed,
Best regards

Diego.
______________________________________________________________________________________ \
___________________________________________________________________________________

Name:
    Diego “[Po]lentino” Casella

Email Address:
    polentino911@gmail.com

Freenode IRC Nick:
    [Po]lentino

Location (City, Country and/or Time Zone):
    Montebelluna, Italy ( CET )

Proposal Name:
    PlasMate – An editor for Plasmoids, DataEngines and Themes.

Motivation for Proposal / Goal:
    I've created some plasmoids in order to learn how they works, and I was
startled when I realized that there was no application to make easier their
development. In fact, the developer has too many things
    to do: setting-up a correct .desktop file, including correct entries
into CmakeLists.txt file, and upgrade them everytime he adds a new
file/feature or makes a remarkable changes on his project.
    This can distract developer from his real aim: create good code for his
needs.The editor I want to create, will automatically do these basic things,
but also much more,allowing the developer to focus onto
    his coding work.PlasMate will automatically set up and upgrade all the
files I mentioned everytime the developer creates or adds a new
file/resource, and builds some source and header files containing a
    basic class definition/implementation when a new project has been
started.
    In addition, PlasMate will also be able to create DataEngine and Theme
projects, with similar features mentioned for Plasmoid project management;
this will make it the ideal platform for Plasma development and
customization.
    I think will be useful to add support for some revision control system,
like git; this will enchance team work !!
    An other important goal for PlasMate is simplicity: the user interface
must be clean and intuitive, so less-skilled coders could be involved and
encouraged to use it.

Implementation Details:
    At Startup, PlasMate displays a Dialog and the developer can select
three options:
        * Start a New Plasmoid Project;
        * Start a New DataEngine Project;
        * Start a New Theme Projetc.
    In addition, other two option are provided:
        * Resuming an existing Project ( from PlasMate history );
        * Resuming an existing Project from Path ( when the project is not
listed in the history app, for example if a developer send its project to an
other ).

    Next, a new dialog will pop-up; the developer will insert the following
entries:
        * Author name and e-mail;
        * Title of the project;
        * Language ( C++, python, ruby .. );
        * Category, version and license;
        * The destination folder.
    After that, if selected “Create New Plasmoid” or “Create New
DataEngine”, PlasMate will populate the folder with the following files:
        * plasma-applet-appname.desktop – filled with the fields specified
previously;
        * Depending on the language selected, for example C++, create
appname.h and appname.cpp files. These files are filled with a basic
implementation of appname class, and declarations of
          constructor, destructor and, above all, the init() method which is
the entry point for the plasmoid. It can be specified also some useful
methods like createConfigurationInterface(), so developer knows
          which methods needs to be implemented. It also append the macro
K_EXPORT_PLASMA_APPLET() in the end of the appname.h header file.
CmakeLists.txt – initialized with the appname and
          including appname.h/cpp. If selected Python, create a folder
appname/content/code and a file called main.py with a basic impementation
for __init__ method. Similar things for other languages like
          ruby or javascript.
    If selected “Create New Theme”, a folder called themename will be
created and filled with directories, following the structure described here
http://techbase.kde.org/index.php?title=Development/Tutorial
    /Plasma/Theme . A Theme is essentially a structured folder tree
containing svg images, so it is useful to enable dran'n drop feature to
PlasMate, in order to add images and rename them to match the
    desired structure composition. It will also available a text editor to
create ColorScheme files.
    If selected Resume Project “From History” or “From Path”, PlasMate will
automatically load the project.
    An interesting feature to implement is a git integration, wich basically
implements functions like init, clone, commit, diff, fetch,checkout, branch,
add, bisect and some others command previously
    decided with mentor.

    The main window is composed of a QtreeWiev widget, used to manage the
project files; this widget will only displays source code and folders added
by developer, because other file like
    appname.desktop, CmakeFiles.txt and other folders and files created by
cmake aren't in developer's interest. If mentor agrees, that widget will
support drag and drop, so coder can drag sources code in
    his app, and PlasMate will update hidden files according to the type.
    After that widget, it will be the main editor and below it, a konsole
shell useful to keep trace of compiling errors and other useful stuff.
Writing a new editor is not the purpose of this proposal; so I want to
    talk with Kate or Kdevelop developers in order to use their source code
to embed a useful editor. As regards Konsole, I think to integrate it using
KParts.
    However, there is an issue to solve: as described here,
http://techbase.kde.org/Development/Tutorials/Plasma/GettingStarted#Testing_the_Applet,
 and here http://techbase.kde.org/Development/Tutorial
    /Plasma/DataEngines#Testing , if the developer wants to test his app,
written in C++ , he must install the binaries or libs under the /lib
directory, and this is not a good idea in my opinion, because the
    directory could be mucked up if performing multiple installations. So a
further work will consists on talking with plasma developers, and find a way
to bypass this limitation.

    When the app, the engine or the theme is ready to be distributed, a
useful “Create Package” button will create a zipped copy of the files, ready
to be shared with the community. I think to use plasmagik
    sourcecode as reference for this feature, because it work pretty well,
in order to embed a simple package manager.

Tentative Timeline:
    According with the GSOC timeline, during the Community Bonding Period,
I'll study in-depth plasmagik sourcecode, specific package structure specs
for plasmoids, data engines and themes, and start
    with coding the editor structure.
    After that period, this could be an estimated timeline:
        * 7 June: provide a fully funcionally interface
        * 13 July: in the mid term evaluation period, PlasMate will be able
to have a working editor, and will able to update his hidden files and
build/package apps.
        * 17 August: PlasMate will be able to package projects, importing
other projects, manage project with git. Lots of bug-fixing and writing a
good documentation
    Note: this timeline is highly aproximative; a more realistic one will be
discussed with the mentor, according wiht the emerging difficulties and
developers needs.

Do you have other obligations from late May to early August ?:
    Well, until June I attend some university courses; however I have about
4/5 hours free per day, so i can apply without  roblems :-)
    I want to inform mentors that, from monday to friday, I can join the irc
only during in the evening and night because administrators in my university
blocked all the IM and IRC protocols, so I have to came
    back home in order to connect and become online!
    So don't worry about thinking that I want to leave the project, because
I spend my free time on reading documents in techbase.kde.org and writing
continually pieces of code.

About Me :
    Well, as I said at the beginning of this proposal, my name is Diego, I'm
23, and I'm attending the major of Automation Engineering at University of
Padova. I started using linux since october 2004, when
    my university career started, first with Debian and after few months
with Ubuntu Breezy.
    I joined for about a year, in 2006, a team called “Artisti Team” (
http://www.dei.unipd.it/ ~robocup/ ) aimed to take part to the Humanoid
League Robocup.
    After this experience, I partecipated on some courses like Algorithm
Optimization, Data Structure 2 in order to improve my knowledge on software
engineering.
    In the meanwhile, I started to learn QT usage to create custom
applications.


[Attachment #5 (text/html)]

Hello guys,<br>after few days on in-depth studying, I released this new version of my \
PlasMate proposal described below, and also available here:<br><a \
href="http://socghop.appspot.com/document/show/user/diego_casella/plasmate">http://socghop.appspot.com/document/show/user/diego_casella/plasmate</a><br>
 <br>I hope you can consider it quite detailed,<br>Best \
regards<br><br>Diego.<br>_____________________________________________________________ \
____________________________________________________________________________________________________________<br>
 <br>Name:<br>    Diego “[Po]lentino” Casella<br><br>Email Address:<br>    <a \
href="mailto:polentino911@gmail.com">polentino911@gmail.com</a><br><br>Freenode IRC \
Nick:<br>    [Po]lentino<br><br>Location (City, Country and/or Time Zone):<br>  \
Montebelluna, Italy ( CET )<br><br>Proposal Name:<br>    PlasMate – An editor for \
Plasmoids, DataEngines and Themes.<br><br>Motivation for Proposal / Goal:<br>    \
I&#39;ve created some plasmoids in order to learn how they works, and I was startled \
when I realized that there was no application to make easier their development. In \
fact, the developer has too many things<br>  to do: setting-up a correct .desktop \
file, including correct entries into CmakeLists.txt file, and upgrade them everytime \
he adds a new file/feature or makes a remarkable changes on his project.<br>    This \
can distract developer from his real aim: create good code for his needs.The editor I \
want to create, will automatically do these basic things, but also much more,allowing \
the developer to focus onto<br>  his coding work.PlasMate will automatically set up \
and upgrade all the files I mentioned everytime the developer creates or adds a new \
file/resource, and builds some source and header files containing a<br>    basic \
class definition/implementation when a new project has been started.<br>  In \
addition, PlasMate will also be able to create DataEngine and Theme projects, with \
similar features mentioned for Plasmoid project management; this will make it the \
ideal platform for Plasma development and customization.<br>  I think will be useful \
to add support for some revision control system, like git; this will enchance team \
work !!<br>    An other important goal for PlasMate is simplicity: the user interface \
must be clean and intuitive, so less-skilled coders could be involved and encouraged \
to use it.<br> <br>Implementation Details:<br>    At Startup, PlasMate displays a \
Dialog and the developer can select three options:<br>        * Start a New Plasmoid \
Project;<br>        * Start a New DataEngine Project;<br>        * Start a New Theme \
Projetc.<br>  In addition, other two option are provided:<br>        * Resuming an \
existing Project ( from PlasMate history );<br>        * Resuming an existing Project \
from Path ( when the project is not listed in the history app, for example if a \
developer send its project to an other ).<br> <br>    Next, a new dialog will pop-up; \
the developer will insert the following entries:<br>        * Author name and \
e-mail;<br>        * Title of the project;<br>        * Language ( C++, python, ruby \
                .. );<br>        * Category, version and license;<br>
        * The destination folder.<br>    After that, if selected “Create New \
Plasmoid” or “Create New DataEngine”, PlasMate will populate the folder with the \
following files:<br>        * plasma-applet-appname.desktop – filled with the fields \
                specified previously;<br>
        * Depending on the language selected, for example C++, create appname.h and \
appname.cpp files. These files are filled with a basic implementation of appname \
class, and declarations of<br>          constructor, destructor and, above all, the \
init() method which is the entry point for the plasmoid. It can be specified also \
some useful methods like createConfigurationInterface(), so developer knows<br>  \
which methods needs to be implemented. It also append the macro \
K_EXPORT_PLASMA_APPLET() in the end of the appname.h header file. CmakeLists.txt – \
initialized with the appname and<br>          including appname.h/cpp. If selected \
Python, create a folder appname/content/code and a file called main.py with a basic \
impementation for __init__ method. Similar things for other languages like<br>  ruby \
or javascript.<br>    If selected “Create New Theme”, a folder called themename will \
be created and filled with directories, following the structure described here <a \
href="http://techbase.kde.org/index.php?title=Development/Tutorial">http://techbase.kde.org/index.php?title=Development/Tutorial</a><br>
  /Plasma/Theme . A Theme is essentially a structured folder tree containing svg \
images, so it is useful to enable dran&#39;n drop feature to PlasMate, in order to \
add images and rename them to match the<br>    desired structure composition. It will \
also available a text editor to create ColorScheme files.<br>  If selected Resume \
Project “From History” or “From Path”, PlasMate will automatically load the \
project.<br>    An interesting feature to implement is a git integration, wich \
basically implements functions like init, clone, commit, diff, fetch,checkout, \
branch, add, bisect and some others command previously<br>  decided with \
mentor.<br><br>    The main window is composed of a QtreeWiev widget, used to manage \
the project files; this widget will only displays source code and folders added by \
developer, because other file like<br>  appname.desktop, CmakeFiles.txt and other \
folders and files created by cmake aren&#39;t in developer&#39;s interest. If mentor \
agrees, that widget will support drag and drop, so coder can drag sources code in<br> \
his app, and PlasMate will update hidden files according to the type.<br>  After that \
widget, it will be the main editor and below it, a konsole shell useful to keep trace \
of compiling errors and other useful stuff. Writing a new editor is not the purpose \
of this proposal; so I want to<br>    talk with Kate or Kdevelop developers in order \
to use their source code to embed a useful editor. As regards Konsole, I think to \
integrate it using KParts.<br>  However, there is an issue to solve: as described \
here, <a href="http://techbase.kde.org/Development/Tutorials/Plasma/GettingStarted#Tes \
ting_the_Applet">http://techbase.kde.org/Development/Tutorials/Plasma/GettingStarted#Testing_the_Applet</a>, \
and here <a href="http://techbase.kde.org/Development/Tutorial">http://techbase.kde.org/Development/Tutorial</a><br>
  /Plasma/DataEngines#Testing , if the developer wants to test his app, written in \
C++ , he must install the binaries or libs under the /lib directory, and this is not \
a good idea in my opinion, because the<br>    directory could be mucked up if \
performing multiple installations. So a further work will consists on talking with \
plasma developers, and find a way to bypass this limitation.<br> <br>    When the \
app, the engine or the theme is ready to be distributed, a useful “Create Package” \
button will create a zipped copy of the files, ready to be shared with the community. \
I think to use plasmagik<br>    sourcecode as reference for this feature, because it \
work pretty well, in order to embed a simple package manager.<br> <br>Tentative \
Timeline:<br>    According with the GSOC timeline, during the Community Bonding \
Period, I&#39;ll study in-depth plasmagik sourcecode, specific package structure \
specs for plasmoids, data engines and themes, and start<br>  with coding the editor \
structure.<br>    After that period, this could be an estimated timeline:<br>        \
* 7 June: provide a fully funcionally interface<br>        * 13 July: in the mid term \
evaluation period, PlasMate will be able to have a working editor, and will able to \
                update his hidden files and build/package apps.<br>
        * 17 August: PlasMate will be able to package projects, importing other \
projects, manage project with git. Lots of bug-fixing and writing a good \
documentation<br>    Note: this timeline is highly aproximative; a more realistic one \
will be discussed with the mentor, according wiht the emerging difficulties and \
developers needs.<br> <br>Do you have other obligations from late May to early August \
?:<br>    Well, until June I attend some university courses; however I have about 4/5 \
hours free per day, so i can apply without  roblems :-)<br>    I want to inform \
mentors that, from monday to friday, I can join the irc only during in the evening \
and night because administrators in my university blocked all the IM and IRC \
protocols, so I have to came<br>  back home in order to connect and become \
online!<br>    So don&#39;t worry about thinking that I want to leave the project, \
because I spend my free time on reading documents in <a \
href="http://techbase.kde.org">techbase.kde.org</a> and writing continually pieces of \
code.<br> <br>About Me :<br>    Well, as I said at the beginning of this proposal, my \
name is Diego, I&#39;m 23, and I&#39;m attending the major of Automation Engineering \
at University of Padova. I started using linux since october 2004, when<br>  my \
university career started, first with Debian and after few months with Ubuntu \
Breezy.<br>    I joined for about a year, in 2006, a team called “Artisti Team” ( <a \
href="http://www.dei.unipd.it/">http://www.dei.unipd.it/</a> ~robocup/ ) aimed to \
take part to the Humanoid League Robocup.<br>  After this experience, I partecipated \
on some courses like Algorithm Optimization, Data Structure 2 in order to improve my \
knowledge on software engineering.<br>    In the meanwhile, I started to learn QT \
usage to create custom applications.<br> <br><br>



>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic