Le 2013-06-17 à 15:51, Johnny Miller <jlmil...@kahalawai.com> a écrit :

> Thank you Samuel, that's very interesting.  On something like editing a pages 
> document or a spreadsheet - do you think the browser sends every change to 
> the server where the document's "state" is maintained?  Or do you think it 
> builds the document locally and periodically sends the changes to the server? 
>  I haven't tried it yet - do you know if you can work with the iCloud 
> versions of iWork offline?

The app send request for almost every keystroke (and I would design it like 
this to make sure the cloud is up to date) but these does not seems to slow the 
UI. The requests are very fast, Safari list <50ms processing time. I tried to 
switch off the network with an open document and I received a warning but on 
network restoration, the app confirmed the changes where saved. This is the 
behaviour I expected. I did not tried to close the document editing window to 
check for persistent storage of these transactions but I do not expect it to 
work, I would qualify this as very hard, almost impossible to do right. Even 
handling network loss for a long period is probably not supported, especially 
if the document was edited somewhere else by the iCloud or standalone app.


> As a side note (OK complete tangent) I've been thinking a lot about Project 
> Wonder's Ajax framework and your comment kind of reminds me about an idea I 
> had for creating an ajax element component.  The ajax element would work like 
> the ajax slider where every change (even keystroke) sends a async request to 
> the server to update the bound object with the new value.  Then the ajax 
> element could broadcast a custom event to the other objects in the browser 
> that it's value has changed.  Other ajax elements like ajax update containers 
> could subscribe for that event and when they receive it initiate their own 
> request to the server to see if their value has changed.  This way Wonder 
> could imitate the bidirectional communication that you see in other 
> frameworks i.e. http://montagejs.org/docs/data-binding.html

My personal opinion on web app developpement is biased by the kind of app I 
tend to build where the data integrity is mandatory. I think it is better to 
use one way or the other but not both at the same time. The Wonder Ajax stuff 
works very well and allows to add smoothness to a web UI but keep all the logic 
on the server side. It is more familiar for us and limit the change to the view 
of the app. More complex Ajax stuff can be used but always as a UI widget. For 
internal app with controlled networks, I think it works quite well, the latency 
can be optimized with dedicated link or QoS. For large scale public apps, the 
user experience may vary a lot because network condition are not stable and 
this may create a support problem.

Sproutcore, Cappuccino, GWT and other javascript app frameworks are a very 
different beast, they are meant to build complete app that run in a browser and 
all require a server side for data storage and retrieval. The easy way is to 
open CRUD rest on all entities and put all the logic on the javascript app with 
all the security risks involved. None of these offer a real integration with a 
rich server side like Wonder. You need to build your server side app and design 
a protocol usually based on Rest. If you need the logic on the server side, you 
need to write and maintain it for client and server. The upside is these allows 
to create app with a very native like functionality without the network latency 
problem (all requests are async) but with a high price, probably at least 2-3 
times the efforts for complex apps.

Anyway, like everything, there is no universal solution, only compromises. The 
targeted users, their number and the complexity of the app may dictate 
difference solutions. It is even possible to build a public app with less 
functions using a javascript app framework with a Wonder Rest backend that is 
managed by a Wonder Ajax or MOTools based UI by users from controlled networks.

Samuel


> 
> Sorry to go off on a tangent like that but it's been what I've been thinking 
> about this weekend and I haven't had anybody to discuss it with ;)
> 
> Best,
> 
> Johnny
> 
> 
> On Jun 17, 2013, at 4:34 AM, Samuel Pelletier <sam...@samkar.com> wrote:
> 
>> The are many javascript libraries in the source, the credits part list 
>> Jison, Sizzle, BinaryAjax, Javascript EXIF Reader, Prototype, jQuery, 
>> Sproutcore and yui.
>> 
>> For the server part, the Ajax url are not like WO urls. For such a large 
>> scale and very specialized deployment they probably have something very 
>> optimized for fast response with async server side processing of the 
>> validation and save to persistent storage. This way, you can batch many 
>> small transactions into a single IO intensive process. Almost every 
>> keystrokes create a request like google apps.
>> 
>> Samuel
>> 
>> Le 2013-06-16 à 15:25, Johnny Miller <jlmil...@kahalawai.com> a écrit :
>> 
>>> Sproutcore?
>>> 
>>> 
>>> 
>>> On Jun 16, 2013, at 6:29 AM, Ramsey Gurley <ramseygur...@gmail.com> wrote:
>>> 
>>>> I'm gonna go out on a limb and say, something closed source that they have 
>>>> no plan to ever share with us :-)
>>>> 
>>>> On Jun 16, 2013, at 9:04 AM, Stavros Panidis wrote:
>>>> 
>>>>> Well, what is the technology Apple uses for iWork for iCloud?
>>>>> 
>>>>> Stavros Panidis
>>>>> 
>>>>>> ------------------------------
>>>>>> 
>>>>>> Message: 7
>>>>>> Date: Sat, 15 Jun 2013 08:54:28 -0700
>>>>>> From: Chuck Hill <ch...@global-village.net>
>>>>>> To: Baiss Eric Magnusson <bmagnus...@comcast.net>
>>>>>> Cc: WebObjectsDev <webobjects-dev@lists.apple.com>
>>>>>> Subject: Re: Can WOWODC folks make this happen some day
>>>>>> Message-ID: <1b9c50e3-f156-4538-baf2-e70a736a4...@global-village.net>
>>>>>> Content-Type: text/plain; charset=windows-1252
>>>>>> 
>>>>>> I, for one, see no value in Obj-C WebObjects.  Server side, Java is 
>>>>>> where its at.
>>>>>> 
>>>>>> Chuck
>>>>>> 
>>>>>> 
>>>>>> On 2013-06-15, at 8:09 AM, Baiss Eric Magnusson wrote:
>>>>>> 
>>>>>>> Interesting discussion,
>>>>>>> 
>>>>>>>     <http://kevinlawler.com/objective-c>
>>>>>>> 
>>>>>>> I would like it if WO went back to Objective-C. Eclipse is not 
>>>>>>> happening.
>>>>>>> 
>>>>>>> 
>>>>>>> ----
>>>>>>> Baiss Eric Magnusson
>>>>>>> Cascade Web Design
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
>>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>>> https://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net
>>>>>>> 
>>>>>>> This email sent to ch...@global-village.net
>>>>>> 
>>>>>> -- 
>>>>>> Chuck Hill             
>>>>>> Executive Managing Partner, VP Development and Technical Services
>>>>>> 
>>>>>> Practical WebObjects - for developers who want to increase their overall 
>>>>>> knowledge of WebObjects or who are trying to solve specific problems.    
>>>>>> http://www.global-village.net/gvc/practical_webobjects
>>>>>> 
>>>>>> Global Village Consulting ranks 13th in 2012 in BIV's Top 100 Fastest 
>>>>>> Growing Companies in B.C! 
>>>>>> 
>>>>>> Global Village Consulting ranks 44th in 25th annual PROFIT 500 ranking 
>>>>>> of Canada’s Fastest-Growing Companies by PROFIT Magazine!
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> Do not post admin requests to the list. They will be ignored.
>>>>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
>>>>> Help/Unsubscribe/Update your Subscription:
>>>>> https://lists.apple.com/mailman/options/webobjects-dev/ramseygurley%40gmail.com
>>>>> 
>>>>> This email sent to ramseygur...@gmail.com
>>>> 
>>>> 
>>>> _______________________________________________
>>>> Do not post admin requests to the list. They will be ignored.
>>>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
>>>> Help/Unsubscribe/Update your Subscription:
>>>> https://lists.apple.com/mailman/options/webobjects-dev/jlmiller%40kahalawai.com
>>>> 
>>>> This email sent to jlmil...@kahalawai.com
>>> 
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
>>> Help/Unsubscribe/Update your Subscription:
>>> https://lists.apple.com/mailman/options/webobjects-dev/samuel%40samkar.com
>>> 
>>> This email sent to sam...@samkar.com
>> 
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/webobjects-dev/jlmiller%40kahalawai.com
>> 
>> This email sent to jlmil...@kahalawai.com
> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to