On Tue, Feb 23, 2010 at 16:54, Vincent Massol <[email protected]> wrote:
>
> On Feb 23, 2010, at 2:49 PM, Thomas Mortagne wrote:
>
>> On Tue, Feb 23, 2010 at 14:08, Vincent Massol <[email protected]> wrote:
>>>
>>> On Nov 25, 2009, at 11:25 AM, Thomas Mortagne wrote:
>>>
>>>> On Wed, Nov 25, 2009 at 10:26, Vincent Massol <[email protected]> wrote:
>>>>>
>>>>> On Nov 25, 2009, at 10:15 AM, Jerome Velociter wrote:
>>>>>
>>>>>> On 11/25/09 10:11 AM, Jerome Velociter wrote:
>>>>>>> On 11/24/09 7:07 PM, Sergiu Dumitriu wrote:
>>>>>>>> On 11/23/2009 10:43 AM, Vincent Massol wrote:
>>>>>>>>>
>>>>>>>>> On Nov 23, 2009, at 10:40 AM, Thomas Mortagne wrote:
>>>>>>>>>
>>>>>>>>>> I just found that we have a "ajax" URL parameter already. It's
>>>>>>>>>> put in
>>>>>>>>>> the context in XWikiAction so we could check for it in statistics.
>>>>>>>>>>
>>>>>>>>>> WDYT about reusing it ?
>>>>>>>>>
>>>>>>>>> What is this URL param doing? The name doesn't sound very
>>>>>>>>> explicit to
>>>>>>>>> tell not to log stats...
>>>>>>>>
>>>>>>>> Currently it prevents in some cases returning the full response. For
>>>>>>>> example, the /cancel/ action normally redirects to view, which in
>>>>>>>> turn
>>>>>>>> renders the entire page. An AJAX request just wants to trigger the
>>>>>>>> cancel action, and doesn't care for the response at all. Not going
>>>>>>>> through the rendering engine is a good performance boost.
>>>>>>>>
>>>>>>>> It's not used for every request done through AJAX, since it must be
>>>>>>>> added manually.
>>>>>>>
>>>>>>> In the long run, I don't like too much this solution, since it forces
>>>>>>> developers to be aware of that and to add the ajax=1 to all their
>>>>>>> AJAX
>>>>>>> requests. Using a different action for service like /service/
>>>>>>>
>>>>>>> Jerome
>>>>>>>
>>>>>>> sounds more natural, and easier to learn.
>>>>>>
>>>>>> Read:
>>>>>>
>>>>>> "Using a different action for service like /service/sounds more
>>>>>> natural,
>>>>>> and easier to learn.
>>>>>
>>>>> "service" doesn't mean much IMO  but +1 for a different action on the
>>>>> longer run. Note that WCAG complains about URL with query string (for
>>>>> readability reason) so this solves this problem too.
>>>>
>>>> Adding an action is not that difficult if everyone is agree to go the
>>>> action way now...
>>>
>>> Answering again since we need to move on. My current feeling:
>>>
>>> * Using a new action or passing a parameter to identify a query that 
>>> shouldn't be logged (through a URL parameter) sounds the same kind of 
>>> complexity to me.
>>> * That said I'm +0 for a new view action (I hope there are no other actions 
>>> required though)
>>> * I keep maintaining that the need to not log something should be 
>>> independent of the action called and thus even if we had a new action we 
>>> can also add a URL parameter to prevent stats logging. "logstats=0|1" 
>>> sounds good to me. We could easily make the new view action set the 
>>> parameter.
>>
>> For this one the question is: do we want to allow a user to do
>> whatever he wants and be invisible from statistics point of view. I
>> still don't think so. Whatever we think about that it's not a minor
>> change.
>
> The same can be said of the action.... Instead of using view you'd use 
> viewinternal or whatever the name and not get the stats logged....

No it's not the same, it only apply to view where your proposal apply
to anything.

>
> And it's not one action that needs to be added but as many as there are 
> existing actions in order to be complete since we could not want to have 
> stats logged for the edit action too, save action, preview action, etc.

As i said we don't have any use case for something else that internal
view queries. I really don't see why we would want to hide a
modification from client side.

>
> Thanks
> -Vincent
>
>>> * Re the question on how the stats code will get access to that parameter, 
>>> yes, it could be put in the context (it could be retrieved from the request 
>>> URL but it' not a good idea to become dependent on the environment).
>>
>> That's one of the main difference between action solution and
>> parameter solution: you don't have anything do here with action
>> solution because statistics module simply don't know about this action
>> and don't listen to it so it's not the same kind of complexity. With
>> parameter solution you need to introduce two new API (the parameter
>> and the context value) that should be taken into account everywhere
>> where action is just a kind of plugin.
>>
>>> * I'd be +0 to reuse the ajax param too although in the longer run I'd 
>>> prefer to introduce a "logstats" param since not wanting to log some stats 
>>> shouldn't be related to ajax specifically. It's a more general use case.
>>
>> The only good point about this one is that we don't introduce anything
>> new publicly but apart from this i don't like it very much. It does
>> not cover properly our use case, we don't want to avoid statistics for
>> an ajax query that would delete an object for example, that's a valid
>> user action (done using ajax but still a user action).
>>
>>>
>>> WDYT?
>>
>> So to summarize IMO the action solution is the safest and easiest
>> solution for the use cases we currently have which are internal
>> queries (mostly ajax).
>>
>>>
>>> Thanks
>>> -Vincent
>>>
>>>>> Thanks
>>>>> -Vincent
>>>>>
>>>>>> Jerome"
>>>>>>
>>>>>>>>
>>>>>>>>> I think I'd prefer a more explicit param.
>>>>>>>>>
>>>>>>>>> Thanks
>>>>>>>>> -Vincent
>>>>>>>>>
>>>>>>>>>> On Thu, Nov 19, 2009 at 12:04, Thomas Mortagne
>>>>>>>>>> <[email protected]>    wrote:
>>>>>>>>>>> On Thu, Nov 19, 2009 at 11:36, Vincent Massol<[email protected]>
>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> On Nov 19, 2009, at 11:26 AM, Thomas Mortagne wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> On Thu, Nov 19, 2009 at 08:50, Vincent Massol<[email protected]
>>>>>>>>>>>>>>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Nov 18, 2009, at 5:16 PM, Thomas Mortagne wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Since we introduce document footer informations view
>>>>>>>>>>>>>>> statistics
>>>>>>>>>>>>>>> are
>>>>>>>>>>>>>>> store several time for the same user view of a page.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> See http://jira.xwiki.org/jira/browse/XWIKI-4590
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> The issue is that theses tabs are loaded asynchronously in
>>>>>>>>>>>>>>> ajax
>>>>>>>>>>>>>>> and
>>>>>>>>>>>>>>> make a call using view action.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Here are some solutions:
>>>>>>>>>>>>>>> 1/ introduce a new action "viewinternal", "service" or
>>>>>>>>>>>>>>> anything
>>>>>>>>>>>>>>> else
>>>>>>>>>>>>>>> that would be a "view" action without UI and not taken into
>>>>>>>>>>>>>>> account by
>>>>>>>>>>>>>>> statistics (that register for "view" action events)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> +0
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> 2/ pretty much the same thing that 1/ but based on a URL
>>>>>>>>>>>>>>> parameter
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> +1
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> This is much better to me since:
>>>>>>>>>>>>>> * Stats are a transersval concern, not related to the view
>>>>>>>>>>>>>> action
>>>>>>>>>>>>>> especially. I'm pretty sure we can imagine use cases where we
>>>>>>>>>>>>>> don't
>>>>>>>>>>>>>> want to register stats for actions other than view
>>>>>>>>>>>>>> * The way I'd like to implement the actions later on (xwiki-
>>>>>>>>>>>>>> actions
>>>>>>>>>>>>>> module) is to have action pipelines and this "saving stats"
>>>>>>>>>>>>>> action
>>>>>>>>>>>>>> will be implemented as a post-action that would be injected
>>>>>>>>>>>>>> after the
>>>>>>>>>>>>>> main actions. Thus only this post action will need to check
>>>>>>>>>>>>>> the
>>>>>>>>>>>>>> parameter which will be transparent to the other actions, thus
>>>>>>>>>>>>>> providing a good separation of concern.
>>>>>>>>>>>>>
>>>>>>>>>>>>> So you want statistics module to go look at URL parameters ?
>>>>>>>>>>>>
>>>>>>>>>>>> I said the opposite actually: it's the action that should do
>>>>>>>>>>>> this.
>>>>>>>>>>>> Right now (current code) we could just have the view action
>>>>>>>>>>>> check
>>>>>>>>>>>> for
>>>>>>>>>>>> the param.
>>>>>>>>>>>
>>>>>>>>>>> And do what, put something in the context ? The statistics module
>>>>>>>>>>> will
>>>>>>>>>>> still receive a "view" action event. It has to check something.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>> How would
>>>>>>>>>>>>> you name this parameter ?
>>>>>>>>>>>>
>>>>>>>>>>>> Some proposals:
>>>>>>>>>>>> - "stats=true|false" (or 0|1 to follow the current "tradition")
>>>>>>>>>>>> - "logstats"
>>>>>>>>>>>>
>>>>>>>>>>>>> Also i really don't like that ajax calls use the standard view
>>>>>>>>>>>>> action
>>>>>>>>>>>>
>>>>>>>>>>>> Can you explain? I don't see the problem.
>>>>>>>>>>>
>>>>>>>>>>> "view" action is supposed to be a user view of a document, ajax
>>>>>>>>>>> calls
>>>>>>>>>>> are retrieving structured informations from a service located
>>>>>>>>>>> in a
>>>>>>>>>>> page most of the time so they have to explicitly tweak the URL to
>>>>>>>>>>> remove the UI, indicate they want plain renderer... and so get
>>>>>>>>>>> something that has nothing to do with what "view" action is
>>>>>>>>>>> supposed
>>>>>>>>>>> to be.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks
>>>>>>>>>>>> -Vincent
>>>>>>>>>>>>
>>>>>>>>>>>>> so the "viewinternal" action is needed anyway IMO.
>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> 3/ use an additional AJAX request similar to a google
>>>>>>>>>>>>>>> analytics
>>>>>>>>>>>>>>> call
>>>>>>>>>>>>>>> to record statistics
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> -1
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>>> -Vincent
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> As i said in jira I'm against 3/
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> 2/ seems too big for a URL parameter to me and it makes
>>>>>>>>>>>>>>> statistics
>>>>>>>>>>>>>>> depends on URL parameters where 1/ fix the issue without
>>>>>>>>>>>>>>> touching
>>>>>>>>>>>>>>> anything in the statistics module
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> +1 for 1/
>>>>>>>>>>>>>>> +0 for 2/
>>>>>>>>>>>>>>> -1 for 3/
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>> Thomas Mortagne
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>



-- 
Thomas Mortagne
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to