Wish list open for your wishes

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Wish list open for your wishes

Janko Mivšek
Dear all,

We are in Christmas time, a time for wishes, so, what are you wishes for
new features in Aida in forthcoming year?

Validation is one part, let we discuss that in already open thread, what
else?

Let me start for warming up: my first wish is to make a unified channel
of communication between server and browser via JSON messages for both
Ajax and WebSocket, to update any element on the page just by calling "e
update".

And even more, when some domain object changes, all their observers
(Apps or Widgets) update immediatelly, on all browsers observing that
domain object at that moment, everywhere on the world. A Comet on
stereoids therefore and a nice extension of Iliad markDirty idea.

Now is your turn...

Janko


--
Janko Mivšek
AIDA/Web
Smalltalk Web Application Server
http://www.aidaweb.si
_______________________________________________
Aida mailing list
[hidden email]
http://lists.aidaweb.si/mailman/listinfo/aida
Reply | Threaded
Open this post in threaded view
|

Re: Wish list open for your wishes

FDominicus
Janko Mivšek <[hidden email]> writes:

> Dear all,
>
> We are in Christmas time, a time for wishes, so, what are you wishes for
> new features in Aida in forthcoming year?
>
> Validation is one part, let we discuss that in already open thread, what
> else?
I suggestes somethign along accepter/presenter, validation could be part
of the acceptor part. It should be avoided (IMHO) to just hope for
validation case-by-case. I think attaching it to the to be displayed
objekt, right from the start is crucial.

>
> Let me start for warming up: my first wish is to make a unified channel
> of communication between server and browser via JSON messages for both
> Ajax and WebSocket, to update any element on the page just by calling "e
> update".
+1

>
> And even more, when some domain object changes, all their observers
> (Apps or Widgets) update immediatelly, on all browsers observing that
> domain object at that moment, everywhere on the world. A Comet on
> stereoids therefore and a nice extension of Iliad markDirty idea.
I'm not sure about it but about introducing Events in the run. I posted
some ideas about it in a prior mail. I know it sound lame, but Common
Lisp has something build-into it's CLOS system there are before, after,
around methods.

Just take the validations a good place for it is in a
#beforeValidation
or
#onValidation

I know it sound lame again, but I think the "success" of Access is
because of this events. Like everything it can be misused, but it is
helpful if applied well. It keeps the cod managable and you can step in
if need be... I can not even think of one other way on how to achieve
that, maybe callbacks?

Regards
Friedrich

--
Q-Software Solutions GmbH; Sitz: Bruchsal; Registergericht: Mannheim
Registriernummer: HRB232138; Geschaeftsfuehrer: Friedrich Dominicus
_______________________________________________
Aida mailing list
[hidden email]
http://lists.aidaweb.si/mailman/listinfo/aida
Reply | Threaded
Open this post in threaded view
|

Re: Wish list open for your wishes

solar_sea
In reply to this post by Janko Mivšek
Hi,
What I'll be really happy to see is more documentation for Aida.
Anything would do - a handbook of common usage, a screen cast or even
an in-code help book with the new help system in Pharo.
Stanislav Paskalev



2010/12/16 Janko Mivšek <[hidden email]>:

> Dear all,
>
> We are in Christmas time, a time for wishes, so, what are you wishes for
> new features in Aida in forthcoming year?
>
> Validation is one part, let we discuss that in already open thread, what
> else?
>
> Let me start for warming up: my first wish is to make a unified channel
> of communication between server and browser via JSON messages for both
> Ajax and WebSocket, to update any element on the page just by calling "e
> update".
>
> And even more, when some domain object changes, all their observers
> (Apps or Widgets) update immediatelly, on all browsers observing that
> domain object at that moment, everywhere on the world. A Comet on
> stereoids therefore and a nice extension of Iliad markDirty idea.
>
> Now is your turn...
>
> Janko
>
>
> --
> Janko Mivšek
> AIDA/Web
> Smalltalk Web Application Server
> http://www.aidaweb.si
> _______________________________________________
> Aida mailing list
> [hidden email]
> http://lists.aidaweb.si/mailman/listinfo/aida
>
_______________________________________________
Aida mailing list
[hidden email]
http://lists.aidaweb.si/mailman/listinfo/aida
Reply | Threaded
Open this post in threaded view
|

Re: Wish list open for your wishes

Damir Horvat-2
Stanislav Paskalev wrote:
> Hi,
> What I'll be really happy to see is more documentation for Aida.
> Anything would do - a handbook of common usage, a screen cast or even
> an in-code help book with the new help system in Pharo.

I'll second this one.

Damir
_______________________________________________
Aida mailing list
[hidden email]
http://lists.aidaweb.si/mailman/listinfo/aida
Reply | Threaded
Open this post in threaded view
|

Re: Wish list open for your wishes

Herbert König
In reply to this post by Janko Mivšek
Hi Janko,

I haven't even checked your latest version (hope I'll make it this
year), but..

JM> Now is your turn...

I like your proposal and I'm curious how you'll end up implementing
it.

I have several WebGrids where a click selects something and updates
some parts of the page. This adds a (several?) lengthy AjaxUpdater(s)
to every cell in the table which usually only differ in the element id
which is sent by the updater. These make up the biggest part of the
HTML of the grid.

When you do this JSON extension could you make it so, that only one
Javascript function is built and that each cell only contains an
single function call like in:
onClick = "updateFunc1('idxxx')";  to call this function with its ID.

This will speed up the initial page load even if the JSON for each
update only contains the cell contents of the grid.

For the WebSlider (scriptaculous) and AidaCharts this function would
need an additional parameter to return the slider value or the
coordinates clicked in a chart. One parameter is enough as it may be a
JSON object.

I've implemented this for the conventional Ajax update and it helped a
lot for the speed of Ajax updates.

Another concern:
Imagine a WebGrid as a view on a big collection. You never want to
send the whole collection to the browser but you want a slider beside the
WebGrid to navigate the whole collection.

Right now I'm struggling to implement this for the onChange event of
the slider. User moves slider which represents the whole collection
(think Excel). When the mouse button is released the few lines which
are displayed in the grid are Ajax updated. Nothing happens during slider
movement.

I have no idea how it could be made feasible to implement that for the
onSlide event due to the sheer amount of network traffic. Even it's
only JSON coming back the latencies would make this a "delayed"
experience.

As usual you'll be much faster implementing things than me.
As I think a slider would be a useful addition to WebGrid
I mention it now.


Cheers,

Herbert                            mailto:[hidden email]

_______________________________________________
Aida mailing list
[hidden email]
http://lists.aidaweb.si/mailman/listinfo/aida
Reply | Threaded
Open this post in threaded view
|

Docs (was Re: Wish list open)

Janko Mivšek
In reply to this post by Damir Horvat-2
On 16. 12. 2010 18:43, Damir Horvat wrote:
> Stanislav Paskalev wrote:
>> What I'll be really happy to see is more documentation for Aida.
>> Anything would do - a handbook of common usage, a screen cast or even
>> an in-code help book with the new help system in Pharo.
>
> I'll second this one.

Yes, documentation, the biggest problem of Smalltalk projects in general...

But now with 6.x stabilizing in all new features which came with
tree-like control flow and wigets in 6.0, also with a noew project on
the way, we can actually at least review existing docs and write some more.

One already underway is a simple example of CRUD app with all Aida
patterns and best practices included, an app which Friedrich started
(Tan). This one could end up as a very useful one to show Aida's most
used patterns in action.

Some more screencasts would be also desirable, anymore willing to build one?

Best regards
Janko

--
Janko Mivšek
AIDA/Web
Smalltalk Web Application Server
http://www.aidaweb.si
_______________________________________________
Aida mailing list
[hidden email]
http://lists.aidaweb.si/mailman/listinfo/aida
Reply | Threaded
Open this post in threaded view
|

Event notification (Wish list)

Janko Mivšek
In reply to this post by Herbert König
On 16. 12. 2010 19:33, Herbert König wrote:

> I have several WebGrids where a click selects something and updates
> some parts of the page. This adds a (several?) lengthy AjaxUpdater(s)
> to every cell in the table which usually only differ in the element id
> which is sent by the updater. These make up the biggest part of the
> HTML of the grid.
>
> When you do this JSON extension could you make it so, that only one
> Javascript function is built and that each cell only contains an
> single function call like in:

> onClick = "updateFunc1('idxxx')";  to call this function with its ID.

This is actually a good and doable idea, maybe extended a bit to cover
any event:

 <a href="/somelink" id="id17" onClick: "notifyEvent('click', 'id17')">

Because Aida as a statefull web framework has all needed state to act on
such event notification on server, this is something to be implemented
easily.

> This will speed up the initial page load even if the JSON for each
> update only contains the cell contents of the grid.

Yep, specially if browser sends that notification on WebSocket channel,
which has only two bytes overhead, comparing to Ajax HTTP request, which
has 500-1000 bytes, that is 200-500 times more!


Best regads
Janko


--
Janko Mivšek
AIDA/Web
Smalltalk Web Application Server
http://www.aidaweb.si
_______________________________________________
Aida mailing list
[hidden email]
http://lists.aidaweb.si/mailman/listinfo/aida
Reply | Threaded
Open this post in threaded view
|

WebGrid slider ( Wish list)

Janko Mivšek
In reply to this post by Herbert König
On 16. 12. 2010 19:33, Herbert König wrote:

> Another concern:
> Imagine a WebGrid as a view on a big collection. You never want to
> send the whole collection to the browser but you want a slider beside the
> WebGrid to navigate the whole collection.
>
> Right now I'm struggling to implement this for the onChange event of
> the slider. User moves slider which represents the whole collection
> (think Excel). When the mouse button is released the few lines which
> are displayed in the grid are Ajax updated. Nothing happens during slider
> movement.
>
> I have no idea how it could be made feasible to implement that for the
> onSlide event due to the sheer amount of network traffic. Even it's
> only JSON coming back the latencies would make this a "delayed"
> experience.
>
> As usual you'll be much faster implementing things than me.
> As I think a slider would be a useful addition to WebGrid
> I mention it now.

I agree,just that this is quite hard to implement, also from usability
standpoint.

What about simply adding a "More..." link on the bottom of the grid?
Clicking it will extend a grid with another batch of rows. Or simply,
when you scroll to the end of the grid, it is automatically extended.

This is much simpler to implement and is more and more common around the
web, like for instance on Twitter.  Mobile apps also use that approach.

Best regards
Janko



--
Janko Mivšek
AIDA/Web
Smalltalk Web Application Server
http://www.aidaweb.si
_______________________________________________
Aida mailing list
[hidden email]
http://lists.aidaweb.si/mailman/listinfo/aida