Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #45511 > unrolled thread

Future standard GUI library

Started byBeinan Li <li.beinan@gmail.com>
First post2013-05-18 10:03 -0400
Last post2013-05-28 16:19 -0700
Articles 17 on this page of 57 — 16 participants

Back to article view | Back to comp.lang.python


Contents

  Future standard GUI library Beinan Li <li.beinan@gmail.com> - 2013-05-18 10:03 -0400
    Re: Future standard GUI library Kevin Walzer <kw@codebykevin.com> - 2013-05-18 11:32 -0400
    Re: Future standard GUI library Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-05-18 21:25 +0000
    Re: Future standard GUI library llanitedave <llanitedave@veawb.coop> - 2013-05-18 20:01 -0700
      Re: Future standard GUI library Kevin Walzer <kw@codebykevin.com> - 2013-05-19 08:57 -0400
    Re: Future standard GUI library Wolfgang Keller <feliphil@gmx.net> - 2013-05-22 15:42 +0200
      Re: Future standard GUI library Chris Angelico <rosuav@gmail.com> - 2013-05-23 00:24 +1000
        Re: Future standard GUI library llanitedave <llanitedave@veawb.coop> - 2013-05-22 19:31 -0700
          Re: Future standard GUI library Fábio Santos <fabiosantosart@gmail.com> - 2013-05-23 07:43 +0100
          Re: Future standard GUI library Chris Angelico <rosuav@gmail.com> - 2013-05-23 16:48 +1000
          RE: Future standard GUI library Carlos Nepomuceno <carlosnepomuceno@outlook.com> - 2013-05-23 09:58 +0300
          Re: Future standard GUI library Chris Angelico <rosuav@gmail.com> - 2013-05-23 17:03 +1000
          RE: Future standard GUI library Fábio Santos <fabiosantosart@gmail.com> - 2013-05-23 08:08 +0100
        Re: Future standard GUI library Wolfgang Keller <feliphil@gmx.net> - 2013-05-23 17:41 +0200
          Re: Future standard GUI library Chris Angelico <rosuav@gmail.com> - 2013-05-24 01:51 +1000
            Re: Future standard GUI library Wolfgang Keller <feliphil@gmx.net> - 2013-05-26 19:43 +0200
              Re: Future standard GUI library Roy Smith <roy@panix.com> - 2013-05-26 14:16 -0400
                Re: Future standard GUI library Wolfgang Keller <feliphil@gmx.net> - 2013-05-27 17:31 +0200
                  Re: Future standard GUI library Michael Torrie <torriem@gmail.com> - 2013-05-27 11:13 -0600
                  Re: Future standard GUI library Chris Angelico <rosuav@gmail.com> - 2013-05-28 08:21 +1000
                    Re: Future standard GUI library Roy Smith <roy@panix.com> - 2013-05-27 19:10 -0400
                      Re: Future standard GUI library Chris Angelico <rosuav@gmail.com> - 2013-05-28 17:11 +1000
                        Re: Future standard GUI library 88888 Dihedral <dihedral88888@gmail.com> - 2013-05-28 02:40 -0700
                    Re: Future standard GUI library Denis McMahon <denismfmcmahon@gmail.com> - 2013-05-28 01:01 +0000
              RE: Future standard GUI library Carlos Nepomuceno <carlosnepomuceno@outlook.com> - 2013-05-26 21:32 +0300
                Re: Future standard GUI library Wolfgang Keller <feliphil@gmx.net> - 2013-05-28 19:26 +0200
                  Re: Future standard GUI library Michael Torrie <torriem@gmail.com> - 2013-05-28 12:16 -0600
                  RE: Future standard GUI library Carlos Nepomuceno <carlosnepomuceno@outlook.com> - 2013-05-29 00:17 +0300
                  Re: Future standard GUI library Chris Angelico <rosuav@gmail.com> - 2013-05-29 17:20 +1000
              Re: Future standard GUI library Chris Angelico <rosuav@gmail.com> - 2013-05-27 04:56 +1000
              Re: Future standard GUI library Michael Torrie <torriem@gmail.com> - 2013-05-26 13:41 -0600
                Re: Future standard GUI library Roy Smith <roy@panix.com> - 2013-05-26 15:45 -0400
                  Re: Future standard GUI library Michael Torrie <torriem@gmail.com> - 2013-05-26 15:13 -0600
                  Re: Future standard GUI library Grant Edwards <invalid@invalid.invalid> - 2013-05-28 15:40 +0000
                Re: Future standard GUI library Wolfgang Keller <feliphil@gmx.net> - 2013-05-27 17:22 +0200
                  Re: Future standard GUI library Michael Torrie <torriem@gmail.com> - 2013-05-27 11:16 -0600
                    Re: Future standard GUI library Wolfgang Keller <feliphil@gmx.net> - 2013-05-30 18:40 +0200
                      Re: Future standard GUI library Chris Angelico <rosuav@gmail.com> - 2013-05-31 02:53 +1000
                        Re: Future standard GUI library Chris Angelico <rosuav@gmail.com> - 2013-06-02 06:46 +1000
                          Re: Future standard GUI library Wolfgang Keller <feliphil@gmx.net> - 2013-06-12 22:28 +0200
                            Re: Future standard GUI library "Frank Millman" <frank@chagford.com> - 2013-06-13 11:32 +0200
                              Re: Future standard GUI library Wolfgang Keller <feliphil@gmx.net> - 2013-06-14 17:18 +0200
                                Re: Future standard GUI library Chris Angelico <rosuav@gmail.com> - 2013-06-15 03:00 +1000
                                  Re: Future standard GUI library Wolfgang Keller <feliphil@gmx.net> - 2013-06-15 14:25 +0200
                                    Re: Future standard GUI library Chris Angelico <rosuav@gmail.com> - 2013-06-15 23:26 +1000
                            Re: Future standard GUI library Chris Angelico <rosuav@gmail.com> - 2013-06-14 00:04 +1000
                            Re: Future standard GUI library "Frank Millman" <frank@chagford.com> - 2013-06-14 07:39 +0200
                            Re: Future standard GUI library Chris Angelico <rosuav@gmail.com> - 2013-06-14 19:10 +1000
                            Re: Future standard GUI library "Frank Millman" <frank@chagford.com> - 2013-06-14 11:36 +0200
                        Re: Future standard GUI library Wolfgang Keller <feliphil@gmx.net> - 2013-06-01 20:18 +0200
                          Re: Future standard GUI library Terry Jan Reedy <tjreedy@udel.edu> - 2013-06-01 17:52 -0400
              Re: Future standard GUI library Ian Foote <ian@feete.org> - 2013-05-26 22:02 +0100
              Re: Future standard GUI library Chris Angelico <rosuav@gmail.com> - 2013-05-27 08:09 +1000
          Re: Future standard GUI library Grant Edwards <invalid@invalid.invalid> - 2013-05-23 20:37 +0000
            Re: Future standard GUI library Wolfgang Keller <feliphil@gmx.net> - 2013-05-28 19:28 +0200
              Re: Future standard GUI library Grant Edwards <invalid@invalid.invalid> - 2013-05-28 18:25 +0000
                Re: Future standard GUI library 88888 Dihedral <dihedral88888@gmail.com> - 2013-05-28 16:19 -0700

Page 3 of 3 — ← Prev page 1 2 [3]


#47927

From"Frank Millman" <frank@chagford.com>
Date2013-06-13 11:32 +0200
Message-ID<mailman.3177.1371115993.3114.python-list@python.org>
In reply to#47843
"Wolfgang Keller" <feliphil@gmx.net> wrote in message 
news:20130612222819.2a044e86ab4b6defe1939a04@gmx.net...
>
> But could it be that you have never seen an actually proficient user of
> a typical "enterprise" application (ERP, MRP, whatever) "zipping"
> through the GUI of his/her bread-and-butter application so fast that
> you can not even read the titles of windows or dialog boxes.
>
> Obviously, this won't work if the client runs on this pathological
> non-operating system MS (Not Responding), much less with "web
> applications".
>
[...]
>
>>
>> On a LAN, with a proper back-end, I can get instant response from a
>> web app.
>
> I have been involved as "domain specialist" (and my input has always
> been consistently conveniently ignored) with projects for web
> applications and the results never turned out to be even remotely usable
> for actually productive work.
>

Hi Wolfgang

I share your passion for empowering a human operator to complete and submit 
a form as quickly as possible. I therefore agree that one should be able to 
complete a form using the keyboard only.

There is an aspect I am unsure of, and would appreciate any feedback based 
on your experience.

I am talking about what I call 'field-by-field validation'. Each field could 
have one or more checks to ensure that the input is valid. Some can be done 
on the client (e.g. value must be numeric), others require a round-trip to 
the server (e.g. account number must exist on file). Some applications defer 
the server-side checks until the entire form is submitted, others perform 
the checks in-line. My preference is for the latter.

I agree with Chris that on a LAN, it makes little or no difference whether 
the client side is running a web browser or a traditional gui interface. On 
a WAN, there could be a latency problem. Ideally an application should be 
capable of servicing a local client or a remote client, so it is not easy to 
find the right balance.

Do you have strong views on which is the preferred approach.

Thanks for any input.

Frank Millman


[toc] | [prev] | [next] | [standalone]


#48162

FromWolfgang Keller <feliphil@gmx.net>
Date2013-06-14 17:18 +0200
Message-ID<20130614171807.0a3c848f2be0ffdbd1b50813@gmx.net>
In reply to#47927
> I share your passion for empowering a human operator to complete and
> submit a form as quickly as possible. I therefore agree that one
> should be able to complete a form using the keyboard only.

This is not just about "forms", it's about using the entire application
without having to use the mouse, ever.
 
> Do you have strong views on which is the preferred approach.

Use a decent database RAD desktop (non-web) GUI application framework
which uses client-side application logics. "Validation" of input will
then be essentially instantaneous. Unless you run the client on that
pathological non-operating system MS (Not Responding), obviously. I've
posted a corresponding list of frameworks available for Python multiple
times already on this group:

using PyQt (& Sqlalchemy): 
Qtalchemy: www.qtalchemy.org 
Camelot: www.python-camelot.com 
Pypapi: www.pypapi.org 

using PyGTK: 
Sqlkit: sqlkit.argolinux.org (also uses Sqlalchemy) 
Kiwi: www.async.com.br/projects/kiwi 

using wxPython: 
Gui2Py: code.google.com/p/gui2py/
Dabo: www.dabodev.com 
Defis: sourceforge.net/projects/defis (Russian only) 
GNUe: www.gnuenterprise.org 

Server-roundtrips required for simple user interaction are an absolute
non-starter for productivity applications. No matter whether in a LAN
or WAN. If you want a responsive application you have to de-centralise
as much as possible. Perfect solution would be if Bettina Kemme's
Postgres-R was available for production use, then even the persistence
could run locally on the client with asynchronous replication of
all clients ("peer to peer").

Sincerely,

Wolfgang

[toc] | [prev] | [next] | [standalone]


#48183

FromChris Angelico <rosuav@gmail.com>
Date2013-06-15 03:00 +1000
Message-ID<mailman.3318.1371229213.3114.python-list@python.org>
In reply to#48162
On Sat, Jun 15, 2013 at 1:18 AM, Wolfgang Keller <feliphil@gmx.net> wrote:
> Server-roundtrips required for simple user interaction are an absolute
> non-starter for productivity applications. No matter whether in a LAN
> or WAN. If you want a responsive application you have to de-centralise
> as much as possible.

Okay... how long does a round-trip cost? Considering that usability
guidelines generally permit ~100ms for direct interaction, and
considering that computers on a LAN can easily have sub-millisecond
ping times, it seems to me you're allowing a ridiculous amount of time
for code to execute on the server. Now, granted, there are systems
that suboptimal. (Magento, a PHP-based online shopping cart system,
took the better part of a second - something in the order of 700-800ms
- to add a single item. And that on reasonable hardware, not a
dedicated server but my test box was certainly not trash.)

For a real-world example of a LAN system that uses a web browser as
its UI, I'm using the Yosemite Project here. It consists of a
single-threaded Python script, no scaling assistance from Apache, just
the simplest it can possibly be. It is running on three computers:
yosemite [the one after whom the project was named], huix, and
sikorsky. I used 'time wget http://hostname:3003/airshow' for my
testing, which involves:

* A DNS lookup from the local DNS server (on the LAN)
* An HTTP query to the specified host
* A directory listing, usually remote
* Building a response (in Python)
* Returning that via HTTP
* Save the resulting page to disk

Since I'm using the bash 'time' builtin, all of this is counted (I'm
using the 'real' figure here; the 'user' and 'sys' figures are of
course zero, or as close as makes no odds - takes no CPU to do this).

The files in question are actually stored on Huix. Queries to that
server therefore require a local directory listing; queries to
sikorsky involve an sshfs directory listing, and those to yosemite use
NetBIOS. (Yosemite runs Windows XP, Huix and Sikorsky are running
Linux.)

My figures do have one peculiar outlier. Queries from Sikorsky to
Yosemite were taking 4-5 seconds, consistently; identical queries from
Huix to Yosemite were more consistent with other data. I have no idea
why this is.

So, the figures! Every figure I could get for talking to a Linux
server (either Huix or Sikorsky) was between 7ms and 16ms. (Any
particular combination of client and server is fairly stable, eg
sikorsky -> sikorsky is consistently 8ms.) And talking to the Windows
server, aside from the crazy outlier, varied from 22ms to 29ms.
Considering that the Windows lookups involve NetBIOS, I'm somewhat not
surprised; there's a bit of cost there.

That's the entire round-trip cost. The queries from Sikorsky to
Yosemite involve three computers (the client, the server, and the file
server), and is completed in under 30 milliseconds. That still gives
you 70 milliseconds to render the page to the user, and still be
within the estimated response time for an immediate action. In the
case of localhost, as mentioned above, that figure comes down to just
8ms - just *eight milliseconds* to do a query involving two servers -
so I have to conclude that HTTP is plenty fast enough for a UI. I have
seen a number of desktop applications that can't beat that kind of
response time.

There, thou hast it all, Master Wilfred. Make the most of it. :)

ChrisA

[toc] | [prev] | [next] | [standalone]


#48291

FromWolfgang Keller <feliphil@gmx.net>
Date2013-06-15 14:25 +0200
Message-ID<20130615142502.2043f2e939d8e54e133dec24@gmx.net>
In reply to#48183
> Okay... how long does a round-trip cost?

With a protocol that wasn't made for the purpose (such as HTTP) and all
that HTML to "render" (not to mention javascript that's required for
even the most trivial issues) - way too long.

> Considering that usability guidelines generally permit ~100ms for
> direct interaction, 

That's "generous".

A proficient user with a responsive application can easily outpace that.

100ms is definitely a noticeable lag. Even I feel that and I don't use
touch-typing to use the GUI. 50ms might not be noticeable, but I don't
have the skills myself to test that.

> (Magento, a PHP-based online shopping cart system, took the better
> part of a second - something in the order of 700-800ms
> - to add a single item. And that on reasonable hardware, not a
> dedicated server but my test box was certainly not trash.)

That's not a question of hardware. Just like with MS (Not Responding).
 
> That's the entire round-trip cost. The queries from Sikorsky to
> Yosemite involve three computers (the client, the server, and the file
> server), and is completed in under 30 milliseconds. 

I am talking about applications that actually do something. In my case,
database applications. A PostgreSQL transaction is supposed to take at
most 25ms to complete (anything above is generally considered an issue
that needs to be solved, such as bad SQL), *server-side*. That leaves
you another 25ms for the entire network protocol (the pgsql protocol,
whatever it is, was designed for the purpose, unlike HTTP) *and* the
client-side application logic, including the GUI "rendering".

Qt is already quite sluggish sometimes, don't know why. GTK and
wxPython "feel" swifter, at least on an actual *operating* system. MS
(Not Responding) is definitely incapable to allow applications anything
remotely close to "responsiveness". Minute-long lockups with frozen
cursor are "normal".

> That still gives you 70 milliseconds to render the page to the user,

Forget that.

25ms for client-server (pgsql) network protocol, client-side
application logic *and* GUI.

With a "web" application that would have to include "application
server"-side application logic, *and* generation of HTML (and
javascript), *and* HTTP protocol *and* HTML "rendering" *and*
client-side javascript.

Won't work.

Sincerely,

Wolfgang

[toc] | [prev] | [next] | [standalone]


#48294

FromChris Angelico <rosuav@gmail.com>
Date2013-06-15 23:26 +1000
Message-ID<mailman.3376.1371302774.3114.python-list@python.org>
In reply to#48291
On Sat, Jun 15, 2013 at 10:25 PM, Wolfgang Keller <feliphil@gmx.net> wrote:
>> Okay... how long does a round-trip cost?
>
> With a protocol that wasn't made for the purpose (such as HTTP) and all
> that HTML to "render" (not to mention javascript that's required for
> even the most trivial issues) - way too long.

You keep saying this. I have yet to see actual timings from you.

>> Considering that usability guidelines generally permit ~100ms for
>> direct interaction,
>
> 100ms is definitely a noticeable lag. Even I feel that and I don't use
> touch-typing to use the GUI. 50ms might not be noticeable, but I don't
> have the skills myself to test that.

Okay, so let's talk 50ms then. We can handle this.

>> That's the entire round-trip cost. The queries from Sikorsky to
>> Yosemite involve three computers (the client, the server, and the file
>> server), and is completed in under 30 milliseconds.
>
> I am talking about applications that actually do something. In my case,
> database applications. A PostgreSQL transaction is supposed to take at
> most 25ms to complete (anything above is generally considered an issue
> that needs to be solved, such as bad SQL), *server-side*. That leaves
> you another 25ms for the entire network protocol (the pgsql protocol,
> whatever it is, was designed for the purpose, unlike HTTP) *and* the
> client-side application logic, including the GUI "rendering".

No problem. Again taking *actual real figures*, I got roughly 35-40tps
in PostgreSQL across a LAN. That's around about the 25ms figure you're
working with, so let's use that as a baseline. My benchmark was
actually a durability test from work, which was done on two laptops on
a gigabit LAN, with the database server brutally powered down in the
middle of the test. Each transaction updates a minimum of two rows in
a minimum of one table (transaction content is randomized some). So
that's 25ms for the database, leaving us 25ms for the rest.

> 25ms for client-server (pgsql) network protocol, client-side
> application logic *and* GUI.
>
> With a "web" application that would have to include "application
> server"-side application logic, *and* generation of HTML (and
> javascript), *and* HTTP protocol *and* HTML "rendering" *and*
> client-side javascript.
>
> Won't work.

I've demonstrated already that with basic hardware and a simple Python
HTTP server, network, application logic, and generation of HTML, all
take a total of 8ms. That leaves 17ms for rendering HTML. Now, getting
figures for the rendering of HTML is not easy; I've just spent fifteen
minutes researching on Google and playing with the Firebug-like
feature of Chrome, and haven't come up with an answer; so it may well
be that 17ms isn't enough for a full page load. However, I would say
that the matter is sufficiently borderline (bearing in mind that you
can always use a tiny bit of JS and a DOM change) that it cannot be
called as "Won't work"; it's what Mythbusters would dub "Plausible".

Of course, if you're trying to support MS IE, there's no way you'll
guarantee <50ms response time. This is all predicated on having at
least reasonably decent hardware and software. But using either the
100ms figure from common usability guidelines [1] [2] [3] or your more
stringent 50ms requirement [4], it's certainly entirely possible to
achieve immediate response using AJAX.

I've worked with real figures, hard numbers. You keep coming back with
vague FUD that it "won't work". Where are your numbers? And like Sir
Ruthven Murgatroyd, I fail to see how you can call this impossible in
the face of the fact that I have done it.

ChrisA

[1] http://www.nngroup.com/articles/response-times-3-important-limits/
[2] http://usabilitygeek.com/14-guidelines-for-web-site-tabs-usability/#attachment_719
[3] http://calendar.perfplanet.com/2011/how-response-times-impact-business/
[4] Can you provide a link to any study anywhere that recommends 50ms?

[toc] | [prev] | [next] | [standalone]


#47965

FromChris Angelico <rosuav@gmail.com>
Date2013-06-14 00:04 +1000
Message-ID<mailman.3197.1371132261.3114.python-list@python.org>
In reply to#47843
On Thu, Jun 13, 2013 at 7:32 PM, Frank Millman <frank@chagford.com> wrote:
> I am talking about what I call 'field-by-field validation'. Each field could
> have one or more checks to ensure that the input is valid. Some can be done
> on the client (e.g. value must be numeric), others require a round-trip to
> the server (e.g. account number must exist on file). Some applications defer
> the server-side checks until the entire form is submitted, others perform
> the checks in-line. My preference is for the latter.

It's not either-or. The server *MUST* perform the checks at the time
of form submission; the question is whether or not to perform
duplicate checks earlier. This is an absolute rule of anything where
the client is capable of being tampered with, and technically, you
could violate it on a closed system; but it's so easy to migrate from
closed system to diverse system without adding all the appropriate
checks, so just have the checks from the beginning.

In terms of software usability, either is acceptable, but do make sure
the user can continue working with the form even if there's latency
talking to the server - don't force him/her to wait while you check if
the previous field was valid. I know that seems obvious, but
apparently not to everyone, as there are forms out there that violate
this...

ChrisA

[toc] | [prev] | [next] | [standalone]


#48065

From"Frank Millman" <frank@chagford.com>
Date2013-06-14 07:39 +0200
Message-ID<mailman.3251.1371188363.3114.python-list@python.org>
In reply to#47843
"Chris Angelico" <rosuav@gmail.com> wrote in message 
news:CAPTjJmo+fWsCD3Lb6s+zmWspKzzk_JB=pbcvfLBZjGCFxvM9HA@mail.gmail.com...
> On Thu, Jun 13, 2013 at 7:32 PM, Frank Millman <frank@chagford.com> wrote:
>> I am talking about what I call 'field-by-field validation'. Each field 
>> could
>> have one or more checks to ensure that the input is valid. Some can be 
>> done
>> on the client (e.g. value must be numeric), others require a round-trip 
>> to
>> the server (e.g. account number must exist on file). Some applications 
>> defer
>> the server-side checks until the entire form is submitted, others perform
>> the checks in-line. My preference is for the latter.
>
> It's not either-or. The server *MUST* perform the checks at the time
> of form submission; the question is whether or not to perform
> duplicate checks earlier. This is an absolute rule of anything where
> the client is capable of being tampered with, and technically, you
> could violate it on a closed system; but it's so easy to migrate from
> closed system to diverse system without adding all the appropriate
> checks, so just have the checks from the beginning.
>

In my case, it is either-or. I do not just do field-by-field validation, I 
do field-by-field submission. The server builds up a record of the data 
entered while it is being entered. When the user selects 'Save', it does not 
resend the entire form, it simply sends a message to the server telling it 
to process the data it has already stored.

> In terms of software usability, either is acceptable, but do make sure
> the user can continue working with the form even if there's latency
> talking to the server - don't force him/her to wait while you check if
> the previous field was valid. I know that seems obvious, but
> apparently not to everyone, as there are forms out there that violate
> this...
>

I plead guilty to this, but I am not happy about it, hence my original post. 
I will take on board your comments, and see if I can figure out a way to 
have the best of both worlds.

Frank


[toc] | [prev] | [next] | [standalone]


#48097

FromChris Angelico <rosuav@gmail.com>
Date2013-06-14 19:10 +1000
Message-ID<mailman.3276.1371201035.3114.python-list@python.org>
In reply to#47843
On Fri, Jun 14, 2013 at 3:39 PM, Frank Millman <frank@chagford.com> wrote:
>> It's not either-or. The server *MUST* perform the checks at the time
>> of form submission; the question is whether or not to perform
>> duplicate checks earlier. This is an absolute rule of anything where
>> the client is capable of being tampered with, and technically, you
>> could violate it on a closed system; but it's so easy to migrate from
>> closed system to diverse system without adding all the appropriate
>> checks, so just have the checks from the beginning.
>>
>
> In my case, it is either-or. I do not just do field-by-field validation, I
> do field-by-field submission. The server builds up a record of the data
> entered while it is being entered. When the user selects 'Save', it does not
> resend the entire form, it simply sends a message to the server telling it
> to process the data it has already stored.

Ah, I see what you mean. What I was actually saying was that it's
mandatory to check on the server, at time of form submission, and
optional to pre-check (either on the client itself, for simple
syntactic issues, or via AJAX or equivalent) for faster response.

As a general rule, I would be inclined to go with a more classic
approach for reasons of atomicity. What happens if the user never gets
around to selecting Save? Does the server have a whole pile of data
that it can't do anything with? Do you garbage-collect that
eventually? The classic model allows you to hold off inserting
anything into the database until it's fully confirmed, and then do the
whole job in a single transaction.

But if you want to use a "wizard" approach, where the user enters one
thing and then moves on to the next, that can work too. It gets clunky
quickly, but it can be useful if the early responses make the
subsequent questions drastically different.

ChrisA

[toc] | [prev] | [next] | [standalone]


#48103

From"Frank Millman" <frank@chagford.com>
Date2013-06-14 11:36 +0200
Message-ID<mailman.3281.1371202588.3114.python-list@python.org>
In reply to#47843
"Chris Angelico" <rosuav@gmail.com> wrote in message 
news:CAPTjJmq_m4y0UXXt3JqYThJj9CKbsvp+Z2PGF5v_31xLrgfr4Q@mail.gmail.com...
> On Fri, Jun 14, 2013 at 3:39 PM, Frank Millman <frank@chagford.com> wrote:
>>
>> In my case, it is either-or. I do not just do field-by-field validation, 
>> I
>> do field-by-field submission. The server builds up a record of the data
>> entered while it is being entered. When the user selects 'Save', it does 
>> not
>> resend the entire form, it simply sends a message to the server telling 
>> it
>> to process the data it has already stored.
>
> Ah, I see what you mean. What I was actually saying was that it's
> mandatory to check on the server, at time of form submission, and
> optional to pre-check (either on the client itself, for simple
> syntactic issues, or via AJAX or equivalent) for faster response.
>
> As a general rule, I would be inclined to go with a more classic
> approach for reasons of atomicity. What happens if the user never gets
> around to selecting Save? Does the server have a whole pile of data
> that it can't do anything with? Do you garbage-collect that
> eventually? The classic model allows you to hold off inserting
> anything into the database until it's fully confirmed, and then do the
> whole job in a single transaction.
>

The data is just stored in memory in a 'Session' object. I have a 
'keep-alive' feature that checks if the client is alive, and removes the 
session with all its data if it detects that the client has gone away. 
Timeout is configurable, but I have it set to 30 seconds at the moment.

The session is removed immediately if the user logs off. He is warned if 
there is unsaved data.

Frank


[toc] | [prev] | [next] | [standalone]


#46670

FromWolfgang Keller <feliphil@gmx.net>
Date2013-06-01 20:18 +0200
Message-ID<20130601201817.55d3361dda93dac387a9eab6@gmx.net>
In reply to#46509
> > A GUI that can not be used without taking the ten fingers off the
> > keyboard is indeed entirely unusable for any half-proficient
> > screenworker. And anyone doing actual productive screenwork every
> > day for more than just a few months will inevitably (have to) get
> > proficient (unless completely braindead).
> 
> My ten fingers stay on my keyboard, which looks somewhat thus:
> 
> http://www.xbitlabs.com/images/mobile/lenovo-thinkpad-t61/keyboard.jpg
> 
> See the red dot in the middle? Mouse.

I didn't mean "trackpoints" or similar devices, but full keyboard
"navigation" of the entire GUI through shortcuts etc.

A "touch-type" GUI is a "must have" for any application that's supposed
to be used productively. The mouse is nice to "explore" a GUI or for
occasional/leisurely use, but once you use an application daily to earn
your living, it's a hopeless roadblock for productivity.

As is the "response time" behaviour of "web applications".

Besides that pathological non-operating system MS (Not Responding),
btw. 

"No cursor animation ever" is an absolute "must have" requirement for
productivity applications.

> THIS is a professional programmer's workspace. :)

And by "screenworkers" I didn't refer to programmers. Those people
rarely have to use the stuff that they implement.

Sincerely,

Wolfgang

[toc] | [prev] | [next] | [standalone]


#46673

FromTerry Jan Reedy <tjreedy@udel.edu>
Date2013-06-01 17:52 -0400
Message-ID<mailman.2530.1370123535.3114.python-list@python.org>
In reply to#46670
On 6/1/2013 4:46 PM, Chris Angelico wrote:
> On Sun, Jun 2, 2013 at 4:18 AM, Wolfgang Keller <feliphil@gmx.net> wrote:

>> And by "screenworkers" I didn't refer to programmers. Those people
>> rarely have to use the stuff that they implement.
>
> Of course not, programmers never use software they've themselves
> written. Never. Not in a million... oh wait, what's this I have? Hmm,
> gcc used to compile gcc, RosMud being used by Rosuav, Neil Hodgson
> using SciTE... naw, they're all statistical anomalies, carry on!

And I use Idle to improve Idle.

I use the HgWorkbench front-end to hg because point and click is often 
*faster* for me than remember (or look up command and arg) and type 
(without error, or correction after error).

Now back to ignoring the troll.

Terry

[toc] | [prev] | [next] | [standalone]


#46120

FromIan Foote <ian@feete.org>
Date2013-05-26 22:02 +0100
Message-ID<mailman.2200.1369602142.3114.python-list@python.org>
In reply to#46087
On 26/05/13 20:41, Michael Torrie wrote:
> On 05/26/2013 11:43 AM, Wolfgang Keller wrote:
<snip>
>
> Maybe it would have been faster to develop, but ultimately less useful
> and require more development time in the long run.  suppose I now want
> the app natively on my phone (because that's all the rage).  It's an
> iPhone.  Oh.  Apple doesn't support Python.  Okay, rewrite the works,
> including business logic, in Objective C.  Now I want it on my android
> phone.  Oops rewrite the stack again in Java.
>
Kivy (http://kivy.org) is a python library that can be used to write 
python apps for Linux, Windows, MaxOSX, Android and IOS.

Regards,
Ian F

[toc] | [prev] | [next] | [standalone]


#46132

FromChris Angelico <rosuav@gmail.com>
Date2013-05-27 08:09 +1000
Message-ID<mailman.2208.1369606189.3114.python-list@python.org>
In reply to#46087
On Mon, May 27, 2013 at 5:41 AM, Michael Torrie <torriem@gmail.com> wrote:
> Chuckle.  Simple CRUD, eh.  Almost all apps involve database CRUD
> interactions.  And often in highly complex ways using business logic.

Right. Sturgeon's Law of Applications.

ChrisA

[toc] | [prev] | [next] | [standalone]


#45842

FromGrant Edwards <invalid@invalid.invalid>
Date2013-05-23 20:37 +0000
Message-ID<knlule$5cg$1@reader1.panix.com>
In reply to#45814
On 2013-05-23, Wolfgang Keller <feliphil@gmx.net> wrote:
>> But there's another option that is available to every platform and
>> (practially) every high level language: the web browser. Make your app
>> serve HTTP and do up your UI in HTML5/CSS3 - your facilities are
>> pretty extensive. Plus you get networking support for free! Obviously
>> this option isn't for everyone, but don't discount it out of hand.
>
> Both the concept and actually implemented examples of so-called "web
> applications" prove that they are just plain garbage and hopelessly
> unusable for anything remotely resembling actual screenwork.

What is "screenwork"?

-- 
Grant Edwards               grant.b.edwards        Yow! Am I elected yet?
                                  at               
                              gmail.com            

[toc] | [prev] | [next] | [standalone]


#46315

FromWolfgang Keller <feliphil@gmx.net>
Date2013-05-28 19:28 +0200
Message-ID<20130528192840.5913f7b6181464616061c015@gmx.net>
In reply to#45842
> What is "screenwork"?

Actually productive work of significant intensity at a computer screen.

As opposed to leisurely "clicking around" like managers, administrators
or home users (gaming, "webbing",...) do.

Sincerely,

Wolfgang

[toc] | [prev] | [next] | [standalone]


#46322

FromGrant Edwards <invalid@invalid.invalid>
Date2013-05-28 18:25 +0000
Message-ID<ko2sq4$l93$1@reader1.panix.com>
In reply to#46315
On 2013-05-28, Wolfgang Keller <feliphil@gmx.net> wrote:

> Actually productive work of significant intensity at a computer screen.

Oh. You mean emacs.

-- 
Grant Edwards               grant.b.edwards        Yow! Will it improve my
                                  at               CASH FLOW?
                              gmail.com            

[toc] | [prev] | [next] | [standalone]


#46349

From88888 Dihedral <dihedral88888@gmail.com>
Date2013-05-28 16:19 -0700
Message-ID<5d7a9b77-963f-4964-a9f0-83295dc1b30e@googlegroups.com>
In reply to#46322
Grant Edwards於 2013年5月29日星期三UTC+8上午2時25分08秒寫道:
> On 2013-05-28, Wolfgang Keller <feliphil@gmx.net> wrote:
> 
> 
> 
> > Actually productive work of significant intensity at a computer screen.
> 
> 
> 
> Oh. You mean emacs.
> 
> 
> 
> -- 
> 
> Grant Edwards               grant.b.edwards        Yow! Will it improve my
> 
>                                   at               CASH FLOW?
> 
>                               gmail.com

Check http://www.pyamf.org/index.html for Python +flash
in browser applications. Annyway the virtual server part 
can be obtained from the Adobe system in the cloudy services 
or whatever.

As long as it is scalable  in fees to provide services
to web users  in PCs or mobile phones,
then it might be very profitable than 10 to 15 years ago.

[toc] | [prev] | [standalone]


Page 3 of 3 — ← Prev page 1 2 [3]

Back to top | Article view | comp.lang.python


csiph-web