[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-25 21:37:25
Message-ID: e6aee9e0903251437w1355736ft90217a25d70a30ff () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Hello everybody,
I wrote a proposal about the PlasMate project: here it is the link
http://socghop.appspot.com/document/show/user/diego_casella/plasmate_proposal
and I also attached a pdf file.
The following is a plain text version of the proposal, let me know your
opinions!

  *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 idealplatform for Plasma

development and customization.

If these goals are reached before the final deadline, 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;

* 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;

** appname.h* and *appname.cpp – *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 “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?t
<http://techbase.kde.org/index.php?title=Development/Tutorials/Plasma/Theme>itle=Development/Tutorials/Plasma/Theme
                
.<http://techbase.kde.org/index.php?title=Development/Tutorials/Plasma/Theme>

 If selected Resume Project “From History” or “From Path”, PlasMate will
automatically load the project.


 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,
 <http://techbase.kde.org/Development/Tutorials/Plasma/GettingStarted#Testing_the_Applet>and
 here<http://techbase.kde.org/Development/Tutorials/Plasma/GettingStarted#Testing_the_Applet>
 <http://techbase.kde.org/Development/Tutorials/Plasma/GettingStarted#Testing_the_Applet>
 http://techbase.kde.org/Development/Tutorials/Plasma/DataEngines#Testing ,
<http://techbase.kde.org/Development/Tutorials/Plasma/GettingStarted#Testing_the_Applet>if
 the developer wants to test his app, 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 distribute, a useful
“Create Package” button will create a tar.gz-ed copy of the files, ready to
be shared with the community.

 As mentioned before, an useful utility is supporting git to save and load
projects on a remote server; I'll be happy to add this feature if there is
some time left !

*Tentative Timeline:*

According with the GSOC timeline, the timeline is the following:

* 7 June: provide a fully funcionally interface

* 13 July: in the mid term evaluation period, PlasMate will be able to have
a nice editor, and will able to update his hidden files and build apps.
* 17 August: PlasMate will be able to package projects, importing other
projects. 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 problems :-)

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/
<http://www.dei.unipd.it/%7Erobocup/>~robocup/<http://www.dei.unipd.it/%7Erobocup/>)
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 everybody,<br>I wrote a proposal about the PlasMate project: here it is the \
link <a href="http://socghop.appspot.com/document/show/user/diego_casella/plasmate_pro \
posal">http://socghop.appspot.com/document/show/user/diego_casella/plasmate_proposal</a><br>
 and I also attached a pdf file.<br>The following is a plain text version of the \
proposal, let me know your opinions!<br><br>


	<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
	<title></title>
	<meta name="GENERATOR" content="OpenOffice.org 3.0  (Linux)">
	<style type="text/css">
	&lt;!--
		@page { margin: 2cm }
		P { margin-bottom: 0.21cm }
		A:link { so-language: zxx }
	--&gt;
	</style>

<p><strong>Name:</strong></p>

<p>	Diego “[Po]lentino” Casella<br><br>
</p>
<p><strong>Email Address:</strong></p>

<p>	<a href="mailto:polentino911@gmail.com">polentino911@gmail.com</a><br><br>
</p>
<p><strong>Freenode IRC Nick:</strong></p>
<p>	[Po]lentino</p>
<p><br>
</p>
<p><strong>Location (City, Country and/or Time Zone):</strong></p>
<p>	Montebelluna, Italy CET</p>
<p><br>
</p>
<p><strong>Proposal Name:</strong></p>
<p>	PlasMate – An editor for Plasmoids, DataEngines and Themes.</p>
<p><br>
</p>
<p><strong>Motivation for Proposal / Goal:</strong></p>

<p>	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.</p>

<p>	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</p>

<p>	file/feature or	makes a remarkable changes on his project. This can distract \
developer from his real aim: create good code for his needs.</p>

<p>	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.</p>

<p>	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</p>
<p>	containing a basic class definition/implementation when a new
project has been started.</p>


<p>	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 idealplatform for Plasma</p><p>development and customization.</p>

<p>	If these goals are reached before the final deadline, I think
will be useful to <i>add support for some revision control system</i>, like git; this \
will enchance team work !!</p>

<p style="font-style: normal;">	An other important goal for PlasMate is \
<i>simplicity</i><span style="font-style: normal;">: the user interface must be clean \
and </span>intuitive, so less-skilled coders could be involved and encouraged to use \
it.</p> <p style="font-style: normal;"><br></p>
<p><strong>Implementation Details:</strong></p>
<p>	At Startup, PlasMate displays a Dialog and the developer can
select three options:</p>
<p>* Start a New Plasmoid Project;</p>
		<p>* Start a New DataEngine Project;</p>
		
	* Start a New Theme Projetc.
<p>	In addition, other two option are provided:</p>
<p>* Resuming an existing Project ( from PlasMate history );</p>* 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>


	<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
	<title></title>
	<meta name="GENERATOR" content="OpenOffice.org 3.0  (Linux)">
	<style type="text/css">
	&lt;!--
		@page { margin: 2cm }
		P { margin-bottom: 0.21cm }
		A:link { so-language: zxx }
	--&gt;
	</style>

<p style="margin-bottom: 0cm;">Next, a new dialog will pop-up; the
developer will insert the following entries:</p>
<p>* Author name and e-mail;</p>
		<p>* Title of the project;</p>
		<p>* Category, version and license;</p>
		
	* The destination folder.
<p>	After that, if selected “Create New Plasmoid” or “Create
New DataEngine”, PlasMate will 	populate the folder with the
following files:</p>
<p>* plasma-applet-<i>appname</i>.desktop – filled with the
		fields specified previously;</p>
		<p><i>* appname.h</i> and <i>appname.cpp – </i><span style="font-style: \
normal;">These  files are filled with a basic implementation of </span><i>appname
		class, </i><span style="font-style: normal;">and declarations of 
		constructor, destructor and, above all, the </span><i>init()</i><span \
style="font-style: normal;">  method which is the entry point for  the plasmoid. It \
can be  specified also some useful methods like
		</span><i>createConfigurationInterface(),</i><span style="font-style: normal;">
		so developer knows which methods needs to be implemented. It also
		append the macro </span><i>K_EXPORT_PLASMA_APPLET()</i><span style="font-style: \
normal;">  in the end of the appname.h header file.</span></p>
		
	* <span style="font-style: normal;">CmakeLists.txt –
		initialized with the </span><i>appname</i><span style="font-style: normal;">
		and including </span><i>appname.h/cpp</i><span style="font-style: normal;">.</span>
<p style="font-style: normal;">	</p>

<p><span style="font-style: normal;">	If selected “Create New
Theme”, a folder called </span><i>themename </i><span style="font-style: \
normal;">will be created and filled with directories, following the
structure described here
<a href="http://techbase.kde.org/index.php?t">http://techbase.kde.org/index.php?t</a></span><a \
href="http://techbase.kde.org/index.php?title=Development/Tutorials/Plasma/Theme"><span \
style="font-style: normal;"><span style="text-decoration: \
none;">	</span></span></a><a \
href="http://techbase.kde.org/index.php?title=Development/Tutorials/Plasma/Theme"><span \
                style="font-style: normal;">itle=Development/Tutorials/Plasma/Theme
.</span></a></p>
<p style="font-style: normal; text-decoration: none;">	</p>
<p style="font-style: normal; text-decoration: none;">	If selected
Resume Project “From History” or “From Path”, PlasMate will
automatically 	load the project.</p>
<p style="font-style: normal; text-decoration: none;"><br>
</p>

<p>	The main window
is composed of a QtreeWiev widget, used to manage the project files;
this <span style="font-style: normal;"><span style="text-decoration: none;">widget
</span></span><i><span style="text-decoration: none;">will only
displays source code and folders added by developer</span></i><span \
style="font-style: normal;"><span style="text-decoration: none;">, because other \
file</span></span></p>

<p style="font-style: normal; text-decoration: none;">	like
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</p>
<p style="font-style: normal; text-decoration: none;">	drag sources
code in his app, and PlasMate will update hidden files according to
the type.</p>




<p style="font-style: normal; text-decoration: none;">	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.</p>







<p style="font-style: normal; text-decoration: none;"><span style="font-style: \
normal;"><span style="text-decoration: none;">	However, there is an issue to solve: \
as described here,  </span></span><a \
href="http://techbase.kde.org/Development/Tutorials/Plasma/GettingStarted#Testing_the_ \
Applet">http://techbase.kde.org/Development/Tutorials/Plasma/GettingStarted#Testing_the_Applet</a><a \
href="http://techbase.kde.org/Development/Tutorials/Plasma/GettingStarted#Testing_the_Applet">, \
<span style="font-style: normal;"><span style="text-decoration: \
none;"></span></span></a><a \
href="http://techbase.kde.org/Development/Tutorials/Plasma/GettingStarted#Testing_the_Applet"><font \
color="#000000"><span style="font-style: normal;"><span style="text-decoration: \
none;">and here</span></span></font></a><a \
href="http://techbase.kde.org/Development/Tutorials/Plasma/GettingStarted#Testing_the_Applet"><span \
style="font-style: normal;"><span style="text-decoration: none;"> \
</span></span></a><a \
href="http://techbase.kde.org/Development/Tutorials/Plasma/DataEngines#Testing">http://techbase.kde.org/Development/Tutorials/Plasma/DataEngines#Testing</a><a \
href="http://techbase.kde.org/Development/Tutorials/Plasma/GettingStarted#Testing_the_Applet">
 , </a>if the developer wants to test his app, 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.<br>
</p>

<p style="font-style: normal; text-decoration: none;">	When the app,
the engine or the theme is ready to be distribute, a useful “Create
Package” button will
create a tar.gz-ed copy of the files, ready to be shared with the
community.</p>
<p style="font-style: normal; text-decoration: none;">
</p>

<p style="font-style: normal; text-decoration: none;">	As mentioned
before, an useful utility is supporting git to save and load projects
on a remote server; I&#39;ll be
happy to add this feature if there is some time left !</p><br>

<p><strong>Tentative Timeline:</strong></p>
<p>	According with the GSOC timeline, the timeline is the following:</p>
<p>* 7 June: provide a fully funcionally interface</p>
		<p>* 13 July: in the mid term evaluation period, PlasMate will be
		able to have a nice editor, and will able to update his hidden
		files and build apps.</p>
		
	* 17 August: PlasMate will be able to package projects,
		importing other projects. Lots of bug-fixing and writing a good
		documentation

<p>	Note: this timeline is highly aproximative; a more realistic one
will be discussed with the mentor, according wiht the emerging difficulties and \
developers needs.</p>
<p><br><br>
</p>
<p><strong>Do you have other obligations from late May to early
August ?</strong>:</p>

<p>	Well, until June I attend some university courses; however I have
about 4/5 hours free per day, so i can apply without problems :-)</p>


<p>	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 <br></p>
<p>protocols, so I have to came back home in order to connect and
become online! <br></p>
<p>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.</p><p><br></p> <p><strong>About Me :</strong></p>
<p style="margin-bottom: 0cm;">	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.</p>
<p style="margin-bottom: 0cm;">	I started using linux since october
2004, when my university career started, first with Debian 	and after
few months with Ubuntu Breezy.</p>
<p style="margin-bottom: 0cm;">	I joined for about a year, in 2006, a
team called <i>“Artisti Team”</i>  (
<a href="http://www.dei.unipd.it/">http://www.dei.unipd.it/</a><a \
href="http://www.dei.unipd.it/%7Erobocup/"><span style="text-decoration: \
none;">	</span></a><a href="http://www.dei.unipd.it/%7Erobocup/">~robocup/</a> ) \
aimed to take part to the <i>Humanoid League Robocup</i>.</p> <p \
style="margin-bottom: 0cm;">	After this experience, I partecipated on some courses \
like Algorithm Optimization, Data 	Structure 2 in order to improve my knowledge on \
software engineering.</p> <p style="margin-bottom: 0cm;">	In the meanwhile, I started \
to learn QT usage to create custom applications.</p>
<br>

--0016e64c39dc3811a20465f84e46--


["Proposal_PlasMate.pdf" (application/pdf)]

>> 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