[wpkg-users] WPKG Client 1.3.4 released (testing release), including 64 bit support

Rainer Meier r.meier at wpkg.org
Wed Jul 9 13:20:32 CEST 2008


Hi Tomasz,

Tomasz Chmielewski wrote:
>> For that I created some easy-to-parse printouts. So actually I think 
>> the GUI should be responsible to display localized information to the 
>> user - just receiving technical data from wpkg.js.
> 
> I beg to differ here.
> The main reason is that wpkg.js is an interpreted, human-readable 
> language, and thus, can be easily changed by virtually every admin.
> WPKG Client, on the other hand, is a binary, and virtually no one can 
> change the way it interprets the data in gets from wpkg.js, unless 
> someone modifies a source of a complicated language (when compared to 
> JScript), compiles it from scratch, and redistributes to dozens of 
> workstations.

The fact that wpkg.js is a human-readable script does not change 
decisions regarding the architecture of the platform. There is no reason 
why WPKG client could not use localization (lots of open source projects 
support multiple-languages by localization files).

But the main issue which was not taken into consideration is that WPKG 
client needs to parse the information forwarded by wpkg.js in order to 
display some output on the GUI. Of course wpkg.js could forward the 
messages exactly the same way as they should be displayed. However that 
is only the easiest possible solution.

I had a much more advanced interface in mind where WPKG client parses 
the output of wpkg.js and displays some much more nice figures 
(diagrams, progress bars etc.).

This is only possible if WPKG client can easily parse the output of 
wpkg.js. This is exactly the reason why I push to clearly split up 
components using the MVC pattern. The sendStatus interface is a clear 
data interface between two components. It is not a GUI interface where 
wpkg.js displays messages to the end user. It is just forwarding data.

If wpkg.js would translate the messages (for example by defining 
messages within config.xml) then it makes it almost impossible for WPKG 
client to parse this printouts since they might look different on each 
installation. In particular some of the fields presented to WPKG client 
currently might be omitted then since somebody does not like to see the 
progress "(1/14)" on the end user screen.


> But first, before we argument some more, we have to define what data we 
> would like to display in a logon/shutdown delay window. First, let's 
> take a look at wpkg.js /sendStatus output:
> 
> 2008-05-16 12:49:02, STATUS  : Starting software synchronization
> 2008-05-16 12:49:02, STATUS  : Number of packages to be removed: 0
> 2008-05-16 12:49:02, STATUS  : Install: Verifying package 'KB888111' (1/14)
> 2008-05-16 12:49:02, STATUS  : Install: Verifying package 'Mozilla 
> Firefox 2.0' (2/14)
> 
> 
> And here are some of ideas for the logon/shutdown delay window, we have 
> some of them already:
> 
> 1. Obviously, we need some messages that change every few seconds (these 
> two defined in wpkginst.exe) - it signals the user that everything is fine.

Something like this - or another moving element could be helpful. Like 
such a popular turning circle animation (vista hourglass replacement or 
Firefox loading indication).

Personally I don't see the reason why we should still use two 
alternating messages. It could also be one single message and having 
another element on the GUI showing/faking some activity (in addition to 
the progress bar which could freeze for some time).

Earlier I also suggested some kind of Statistics. From the data 
transmitted by the sendStatus function the following fields on the GUI 
could be displayed (below progress bar probably):

- Deployment started at           : <date when synchronization started>
- Total run time                  : <current time - start time>
- Current package install duration: <current time - install start time>

The time values could be updated each second which also shows some 
progress to the user.


> 2. Because some users don't read messages displayed by a computer, 
> something "that moves" on a screen is needed. Currently, we have a 
> "pseudo progress bar".

Well right - see above for some more ideas.


> 3. What about a real progress bar? After all, at the wpkg.js outputs its 
> progress, by using (1/14), (2/14) and so on. To be frank, I'm not very 
> sure about this. In certain scenarios (a classroom full of workstations 
> connected over wireless, installing something heavy, like Office). As 
> wireless + many workstations = slow, it will mean the progress bar will 
> halt for several minutes. Users, room cleaners etc. other non-technical 
> people are very often friendly people, and sometimes they just "hey, the 
> progress bar hanged on some of the machines, so I just restarted them, 
> you don't have to thank me!".
> So what about displaying a percentage, in numbers (7%, 58% etc., 
> calculated basing on (1/14), (2/14)...) in a "pseudo progress bar"?

Well a progress-bar implicitly indicates some percentage. WPKG client 
could calculate this from the sendStatus output (as suggested). However 
displaying some absolute numbers might give additional information to 
the user.



> 4. /sendStatus displays things like "Install:" etc. - I don't see why it 
> can't be delivered in a proper form by wpkg.js (changeable in 
> config.xml). After all, WPKG Client interacts with only one program 
> (wpkg.js), an there are no plans to change it.

What do you mean by "proper form". In fact the intention was to provide 
a format which contains all data in easy readable format 
(machine-readable). This offers maximum flexibility to (various) GUI 
implementations to display as much information as intended by the 
administrator.
Again, if wpkg.js displays some nicely formated and localized strings 
here, then WPKG client will not be able to parse them properly. So a 
progress bar will be very hardly possible.

In fact I also thought about extending the package format to include 
some package description (which can be provided in various local 
languages). Then it would be possible to print this information to 
sendStatus output as well. So WPKG client could display some nice 
information about the application currently being installed/upgraded.


Let's outline the GUI as I see it:
________________________________________________________________________
| WPKG package deployment                                              |
|                                                                      |
| Deployment started at: xx:yy:zz                          [ACTIVITY]  |
| Running since        :    yy:zz                          [INDICATOR] |
|                                                                      |
| Stage: [Remove|Install]                                              |
| Package 2 of 10: Adobe Acrobat Reader                                |
|  __________________________________________________________________  |
| |-----|                                                            | |
|  ------------------------------------------------------------------  |
| Package status:                                                      |
| Installation started at: xx:yy:zz                                    |
| Running since          :    yy:zz                                    |
| Description:                                                         |
|  __________________________________________________________________  |
| | Adobe Acrobat reader                                           |^| |
| | Acrobat reader is used to display PDF files.                   | | |
| | [some more information about the reader]                       | | |
| |                                                                |v| |
|  ------------------------------------------------------------------  |
|______________________________________________________________________|


 From my point of view such a windows would provide quite a fair amount 
of information to the (waiting) user.


br,
Rainer




More information about the wpkg-users mailing list