ketty | 6 Feb 14:36 2007
Picon

0.5 step closer to OCaml Summer of Code

Hi, i have finaly started thinking about my application to the OCaml
Summer thingy (about time!). There used to be a page on the demexp
wiki with a lots of suggestions and ideas for future improvements but
i can't find it anymore, is it gone?

Anyway, regarding my application, this is what i can think of of the
top of my head:

Webclient
• make layout separate from content. (css etc)
• compare implementations using different web technologies (ocsigen,
plain ocamlnet, more?)
• implement delegation (this needs the server to implement it first ^^)
• basic filtering (posibly with help of special server)
• persistent user data
• persistent meta data
• improve usability
• various missing features (like no support for setting date limit
when creating question)

Server
• support for multiple voting algorithms (i dont know how easy this
would be for me, but it is very important for aktivdemokrati.se so if
no one else is gonna look at it i will have to do it eventually...)

Open questions
• Modification of allready running questions? Wanted not wanted? I
think i would be usefull as long as its easy to notify old voters.
• Deletion of questions (and tags..)?
• Changing date limit of question? (it will be important for
(Continue reading)

Felix HENRY | 6 Feb 17:10 2007
Picon

Re: 0.5 step closer to OCaml Summer of Code

Hi Ketty!

On 2/6/07, ketty <kattlachan <at> gmail.com> wrote:
Hi, i have finaly started thinking about my application to the OCaml
Summer thingy (about time!). There used to be a page on the demexp
wiki with a lots of suggestions and ideas for future improvements but
i can't find it anymore, is it gone?

There's a wishlist here but some of the wishes are for long-term only or may be obsolete:
http://demexp.org/en/doku.php?id=future_wishes
http://demexp.org/en/doku.php?id=list_of_next_features

• Modification of allready running questions? Wanted not wanted? I
think i would be usefull as long as its easy to notify old voters.

I do not think that this should be a priority since the number of users
is limited, and they probably do not mind at this stage. So I would say
"not wanted".


...

That looks like a list random somewhat unrelated features to me... I
would like my application to look coherent and not just like a list of
random improve this and that items... (and then i could put everything
i could not make look coherent in an appendix of miscellaneous things
i expect to do on the way ^^)


What we lack the most at the moment is the web client. Using a web client has a lot
of consequences on other items you mention (data persistence etc.). If you look
for a something to give coherence to your proposal, I would put the web client aspect
at the top of the list and subordinate all other aspects to it (if it makes sense).

All the best,

   Felix


_______________________________________________
Demexp-dev mailing list
Demexp-dev <at> nongnu.org
http://lists.nongnu.org/mailman/listinfo/demexp-dev
David MENTRE | 6 Feb 20:21 2007

Re: 0.5 step closer to OCaml Summer of Code

Hello Ketty,

I agree with Félix comments: the web client is heartly desired and
should structure your proposal around it.

BTW, you should read the FAQ before writing your proposal: 
  http://osp2007.janestcapital.com/faqs

ketty <kattlachan <at> gmail.com> writes:

> Webclient
> • make layout separate from content. (css etc)

Obviously. Basic separation is needed. No need right now for
sophisticated theming technology.

> • compare implementations using different web technologies (ocsigen,
> plain ocamlnet, more?)

And Gerd's WDialog, even if I'm not fond of it. Ocsigen seems the most
interesting web framework on the paper.
See also :
  http://demexp.org/en/doku.php?id=web_client_development_framework#comparison_of_ocaml_frameworks

Comparison should be quickly done and not be the main goal of the
project. 

> • implement delegation (this needs the server to implement it first
> ^^)

I'm taking care of the server side (well, one day ;-).

Having it on the client side would be great.

> • basic filtering (posibly with help of special server)

Ability to go to a given question, to have an URL specific to a question
or a vote on question (like demexp:// URLs for the hard client). Ability
to use the basic tag hierarchy. 

> • persistent user data

You mean, things like the saving of voted and seen questions? This is
needed. 

> • persistent meta data

?? I haven't understood.

> • improve usability

Yes. Should work *without* Javascript (even if Javascript can obviously
be used to *enhance* user interface).

> • various missing features (like no support for setting date limit
> when creating question)

Yes, ability of limit date could be useful. I don't thing this is a very
difficult point.

Other points:

 * Should work with Apache over SSL (a no brainer for all OCaml's web
   framework);

 * Preferably, no need for SQL database. We can extend the server to
   store information if needed. Maybe for some transient cross-page
   information, a small daemon would be needed (Gerd is using a Unix
   daemon with RPC for this);

 * Should be compilable into native code;

 * Code should be commented in a literate style. ;-)

> Server
> • support for multiple voting algorithms (i dont know how easy this
> would be for me, but it is very important for aktivdemokrati.se so if
> no one else is gonna look at it i will have to do it eventually...)

I don't think supporting several voting algorithms would be an
issue. The main issue is to define a clean network protocol and extend
the XML file format accordingly.

> Open questions
> • Modification of allready running questions? Wanted not wanted? I
> think i would be usefull as long as its easy to notify old voters.

I haven't understood: what do you want to modify exactly? If this is the
question title, this is currently impossible without modifying deeply
the code.

> • Deletion of questions (and tags..)?

Same as above, the questions and tags cannot be removed (questions can
only be hidden).

Tags can be renamed however.

> • Changing date limit of question? (it will be important for
> aktivdemokrati.se that this is possible in some form, it is related to
> the special voting algorithm thingy)

If this is important to you, I have no objection to it. We will
certainly need to define the security around that feature (who can
change the limit date?).

> That looks like a list random somewhat unrelated features to me... I
> would like my application to look coherent and not just like a list of
> random improve this and that items... (and then i could put everything
> i could not make look coherent in an appendix of miscellaneous things
> i expect to do on the way ^^)

:-)

As Félix said, the web client is very important to us, so I would
structure your proposal around it.

For example, you could propose something like "Writing of a web client
for demexp server suitable to the AktivDemokrati.se and Democratic
Experience needs".

I would then list:

 * The features imperatively needed (basically features currently
   available in the hard client);

 * Optional features (maybe put this part at the end of the document).

I would also add (in no particular order):

 * A very short introduction on the usefullness of such an interface as
   to help to develop a tool suitable for direct democracy in countries,
   firms, communities (if a success, it would extend the visibility of
   OCaml);

 * Overview of basic design, testing, ... (see FAQ). For the design, you
   could start from the complete set of tasks a user or admin would need
   (propose a question, tag it and make it public, browse over
   questions, vote on a given question). Then you could refine that
   description into a set of web pages and there underlying logic. You
   could then propose a set of modules (code architecture) that
   implement needed web pages and application logic;

 * The main goal is to have a usable interface with reasonnable
   speed. No fancy features. No bells and whistles. But a sound ground
   on which we could built for several years.

I'm going to take care of the server side when extensions/modifications
would be needed.

> What i feel most exited about is implementing the webclient again and
> again using different technologies. (yes i know, my sence of fun is a
> bit twisted :)
> But i dont know how productive such work would be considered...

Yes, maybe a fully usable web client would be useful. ;-) And once you
have a basic one, you'll can be assured that a lot a feature requests
and interesting development would flourish. :-)

Best wishes,
d.
--

-- 
GPG/PGP key: A3AD7A2A David MENTRE <dmentre <at> linux-france.org>
 5996 CC46 4612 9CA4 3562  D7AC 6C67 9E96 A3AD 7A2A
ketty | 7 Feb 13:44 2007
Picon

Re: 0.5 step closer to OCaml Summer of Code

Hi, thank you for your many comments, i have lots to think about ^^

> Ability to go to a given question, to have an URL specific to a question
> or a vote on question (like demexp:// URLs for the hard client). Ability
> to use the basic tag hierarchy.

Allready ready implemented (although somewhat bulky).

> > • persistent user data
>
> You mean, things like the saving of voted and seen questions? This is
> needed.

Yes.

> > • persistent meta data
>
> ?? I haven't understood.

I am thinking about things like references to forums and other pages.
Just like the url that is currently associated with each answer
alternative, but it should not be limited to the creator of the
question (other people should be able to add links at a later stage),
and links could also be general to a question (not tied to a
particular answer)... Such things could be implemented in a eneral way
in the server, but if they are not it will need to be handled in an
ad-hoc fashon in the client.

> > • improve usability
>
> Yes. Should work *without* Javascript (even if Javascript can obviously
> be used to *enhance* user interface).

Yes it currently uses javascript but does not make extensive use of it
(it usualy reloads the page on every click). Since we probably will
have a version using javascript in either case we should probably make
it work in a more ajax-like way (and of course have a clean
javascript-less version too)

>  * Should work with Apache over SSL (a no brainer for all OCaml's web
>    framework);

It allready worked last time i tested.

>  * Code should be commented in a literate style. ;-)

This is the hard part :)

> > • Modification of allready running questions? Wanted not wanted? I
> > think i would be usefull as long as its easy to notify old voters.
>
> I haven't understood: what do you want to modify exactly? If this is the
> question title, this is currently impossible without modifying deeply
> the code.

The most usefull part would be adding and removing alternatives. (Of
course there are problems that needs to be addressed in each case, but
i think it would be worth it)

> > • Deletion of questions (and tags..)?
>
> Same as above, the questions and tags cannot be removed (questions can
> only be hidden).
>
> Tags can be renamed however.

Is there a technical problem, or is it just that no one has considered
it necesary?
_______________________________________________
Demexp-dev mailing list
Demexp-dev <at> nongnu.org
http://lists.nongnu.org/mailman/listinfo/demexp-dev
Frederic Lehobey | 7 Feb 14:10 2007
Picon

Re: 0.5 step closer to OCaml Summer of Code

Hi,

On Wed, Feb 07, 2007 at 01:44:57PM +0100, ketty wrote:
> Hi, thank you for your many comments, i have lots to think about ^^

Thanks for your efforts.

> >> • Deletion of questions (and tags..)?
> >
> >Same as above, the questions and tags cannot be removed (questions can
> >only be hidden).
> >
> >Tags can be renamed however.
> 
> Is there a technical problem, or is it just that no one has considered
> it necesary?

Well, it is somewhat a feature. We have not designed nor implemented
ways to hide or rewrite history.  :-)

Best regards,
Frédéric
ketty | 7 Feb 14:24 2007
Picon

Re: 0.5 step closer to OCaml Summer of Code

On 2/7/07, Frederic Lehobey <Frederic.Lehobey <at> free.fr> wrote:
> Well, it is somewhat a feature. We have not designed nor implemented
> ways to hide or rewrite history.  :-)

I'm thinking of it more like a way to specify that something is
obsolete. Data needent actually be deleted (it might be kept (but not
normaly shown) on server, or it might be moved to an archive server or
something).
I guess this is what the hidden attribute on questions is for? I would
like to have a hidden attribute for tags also in that case :)
And if obsolete information is to be archived (and freeing up space on
main server) there need to also be a way to really delete information.
Frederic Lehobey | 7 Feb 14:49 2007
Picon

Re: 0.5 step closer to OCaml Summer of Code

Hi,

On Wed, Feb 07, 2007 at 02:24:53PM +0100, ketty wrote:
> On 2/7/07, Frederic Lehobey <Frederic.Lehobey <at> free.fr> wrote:
> >Well, it is somewhat a feature. We have not designed nor implemented
> >ways to hide or rewrite history.  :-)
> 
> I'm thinking of it more like a way to specify that something is
> obsolete. Data needent actually be deleted (it might be kept (but not
> normaly shown) on server, or it might be moved to an archive server or
> something).
> I guess this is what the hidden attribute on questions is for? I would

Yes, precisely.  :)  (It is not really deeply 'hidden'.)

> like to have a hidden attribute for tags also in that case :)

I am not sure I see what you mean. (Hide tags? What for? Mmmm. For the
interface, maybe... but it could be a different mechanism specific to
the client.)

> And if obsolete information is to be archived (and freeing up space on
> main server) there need to also be a way to really delete information.

I am eager to see the time when we will really need this (if we ever
will).  :)

Best regards,
Frédéric
ketty | 7 Feb 15:00 2007
Picon

Re: 0.5 step closer to OCaml Summer of Code

On 2/7/07, Frederic Lehobey <Frederic.Lehobey <at> free.fr> wrote:
> I am not sure I see what you mean. (Hide tags? What for? Mmmm. For the
> interface, maybe... but it could be a different mechanism specific to
> the client.)

Let's say you make a typo when you add a new tag. Or you add a tag and
it later becomes apparent that it was actually a quite confusing and
not very usefull tag.
Frederic Lehobey | 7 Feb 15:07 2007
Picon

Re: 0.5 step closer to OCaml Summer of Code

Hi,

On Wed, Feb 07, 2007 at 03:00:55PM +0100, ketty wrote:
> On 2/7/07, Frederic Lehobey <Frederic.Lehobey <at> free.fr> wrote:
> >I am not sure I see what you mean. (Hide tags? What for? Mmmm. For the
> >interface, maybe... but it could be a different mechanism specific to
> >the client.)
> 
> Let's say you make a typo when you add a new tag. Or you add a tag and

Than you can already change and correct the tag (existing feature).

> it later becomes apparent that it was actually a quite confusing and
> not very usefull tag.

Then you remove such a confusing tag from the questions already
carrying it (no need to delete the tag).

Best regards,
Frédéric
ketty | 7 Feb 15:31 2007
Picon

Re: 0.5 step closer to OCaml Summer of Code

On 2/7/07, Frederic Lehobey <Frederic.Lehobey <at> free.fr> wrote:
[...]
> Than you can already change and correct the tag (existing feature).
[...]
> Then you remove such a confusing tag from the questions already
> carrying it (no need to delete the tag).

Yes, i see that what i realy need to do is correct a design issue in
the client. Currently when you browse for questions you are presented
with a list of all tags (even if no question is using them)q And the
procedure to introduce a new tag is to first add it to the list of
tags (and then you can later use it on a question) - this has the
consequence that allthough you could hide unused tags when browsing
they need to be shown when tagging questions.
I should at least hide unused tags while browsing, but if new tags are
inroduced when tagging questions instead of in a contextless void,
then unused tags can be hided also when tagging. (and there could be a
small button or something to show all tags if needed)

So i guess everything is in order here (appart from the fact that it
is not implemented ^^)

Gmane