JDownloader Community - Appwork GmbH
 

 
 
Thread Tools Display Modes
  #1  
Old 17.01.2010, 15:16
drbits's Avatar
drbits drbits is offline
JD English Support (inactive)
 
Join Date: Sep 2009
Location: Physically in Los Angeles, CA, USA
Posts: 4,437
Default Keyboard Shortcuts RFC - and UI design principles

To meet "Best Development Practices", the US Americans with Disabilities Act, and the EU equivalent (which is still evolving, but will be tougher than the US act when it is done), each command in every program has to be accessible without a pointing device (it is hard to control and click a mouse with a mouth-stick).

The traditional way to do this is to provide both accelerators (also called hot-keys or keyboard shortcuts) for most commands and keyboard software modifications that make the control, shift, and meta (alt or apple) keys "sticky" (like the Caps Lock). Movement from object to object is with arrow keys or tab keys, but arrow keys are hard to use for the graphic/mouse cursor (the scroll-lock or another key can be used to provide the change).

The current releases do not appear to be organized around a principle of user goals (in the sense that a GUI architect would describe it). The easiest things should be the things that a user will do as part of a normal workflow. Ideally, the default toolbar would contain those commands, in the workflow order. Important, but less frequent commands would appear in a different section of the toolbar (that is why large programs tend to have sections of toolbar that can be inserted or removed).

The same way of thinking applies to accelerators. Some things need their own key combination. Others can be reached with arrow keys. But, this only works well if the menus are organized around a workflow.

A separate issue is that the accelerators, status strings, and display strings are mixed in one file. This is fine, but the current structure doesn't associate them with the operations, but rather the way things appear on the screen.

I Propose the following structure:
Every operation externally accessible from a JDownloader.org software product already has a Java path based on the function that it refers to. Each of these also has a name and most have an icon. In addition, there are status, instruction, and other displayed strings. Since I don't know the correct name, I will just refer to the Java paths as "paths".

This would be combined with a DOM+CSS resource and event structure. The idea is to organize resources around the paths, rather than (as currently) organizing resources by type.

I had written a complicated description of resources and events, but I dumped it all, because that is not the focus here. Some specifics are necessary.

The images one clicks on are buttons (one shot switches) or toggles (two way switches). Icons are images used for status display. Progress images are also buttons to stop whatever is being tracked.

All resources have a status (at least visible, hidden, or inactive). The status for a toggle is more complex, because it includes on, off, focus_on, and focus_off. A button has up, down, focus (implies up). Focus is important, because it means that the resource is ready for you to click on it or type in it.

An event is associated with each change into a state. The events can trigger the end of a wait, can be a change in status for a resource, or can be an exception.

In the future, a list of assertions (based on status of resources) can be used to trigger events.

All of this is just a way to talk about things. In particular to distinguish between things.

Each control resource has three levels of "help" associated with it.
A tooltip is very short, a help box is fixed information (specified by location, in the language file), and a URL is the location for discussion of the resource.

Each control resource also has a path and a name string. Items in menus (including toolbars) also have a short_string to display with the item.

Each control resource has an accelerator (key combination), which might be empty. These should be displayed in all tool-tips, drop-down menus, etc. Since everything is defined by a path, the display of a button, toggle, or tool-tip has the same path as its accelerator and other information.

Quote:
Whatever we design for the UI must correspond to how people use the program and must be practical. Ideal designs are goals, not instructions.

Last edited by drbits; 19.08.2010 at 01:25. Reason: refinement and continuation
  #2  
Old 17.01.2010, 15:23
drbits's Avatar
drbits drbits is offline
JD English Support (inactive)
 
Join Date: Sep 2009
Location: Physically in Los Angeles, CA, USA
Posts: 4,437
Default Notes about necessary accelerators

Overall Changes Needed in UI

Each menu, command, button, or movement action must have at least one way to apply it with the keyboard. Every command available as a button or toggle should be available in the menus.

Remove nested menus wherever it is practical (this is the most common user suggestion I have read). Try to avoid hiding important information. The Properties bar should not hide the information bar. If necessary, make both hideable.

------------------------------------
Accelerator Keys that are missing, but urgent. Unless otherwise stated, these are traditional keys, not language dependent.

1) System Menu (menu under icon on top left) = Alt+Space (or Apple+Space). Not listed in menus.
2) Each menu should have an Alt (or Apple) key to select the menu (language dependent).
3) When in the menu bar, right and left arrows move to the neighboring menu (circular). The context menu should be included in this rotation. The arrows also apply to the toolbar.
4) When in a menu or in the menu bar, up and down arrows move the highlight up and down (opening the menu if necessary). When in a menu, right and left arrows move into and out of submenus. Enter or Space selects. When in a dialog, Enter selects the highlighted button.
When onn a checkbox or toggle, Enter or space toggles the checkbox or toggle.
5) When in a menu, the Escape (Esc) key exits and closes the menu, returning the user to the previous location. When in a dialog box, Escape is equivalent to pressing Cancel or No.
6) F6 moves the user from one section of the page to another, cycling through Main section, Properties form, Information Bar, status bar, menu bar, tool bar, and back to main section. In settings, it includes the settings tree.
7) In any form (including the status bar and the properties bar), the Tab key rotates through the fields. Shift+Tab moves in the opposite direction.
8) In any tree, the + key expands the node, the - key closes the node, and the * key toggles between all nodes expanded and all closed. This includes the Download table, the LinkGrabber table, and the Settings Tree.
9) Hide in Notification Area = Alt+F4 This should also go into the System and File menus.
10) The Delete All X commands should be replaced by Select All X commands.
11) Add Url(s) command (not clipboard copy) is literal and the link is added even if it is not a known host or is in the exclusion filter. Any query (after the ?) is included with the data sent to the host.
12) Instead of hiding the log, make it an entry in the Settings tree.


MENUS (menu accelerators are language dependent)

File = Alt+F

Backup JD = Ctrl+B (language dependent)
Backup All links to Container = Ctrl+Alt+B (Language dependent)
minimize to Notification area = Alt+F4 (should have a warning dialog that gives 3 options: Minimize, Exit, Cancel and a check box to never see the dialog again).
Start/Stop downloading = Ctrl+S (Toggle, matches traditional start/stop display)
Pause downloading =Ctrl+Space (Toggle, Start also ends Pause)
----------------------------------
Update JDownloader Now = Ctrl+Alt+Shift+U) (Language dependent - warning dialog)
Update JDownloader when stopped = Ctrl+Alt+U) (Language dependent)
Restart JDownloader (no shortcut or icon - Warning dialog)
Repair JDownloader (no shortcut or icon - Warning dialog. Saves log before exit.)
----------------------------------
Exit = CTRL+Q (Language Independent. Must be last in menu. Should have an optional confirmation dialog.)


Edit = Alt+E

Add URL(s) or Container(s) = CTRL+U (Language independent)
Remove selected Package(s)/Link(s) = Delete
Need - Copy all from LinkGrabber to Downloads = Alt+Shift+C (Language specific, pairs with Alt+C in LinkGrabber - Can change wording depending on page. Must be present, because LinkGrabber may be permanently hidden.)
Continue with all = Alt+C (Language Specific - specific to LinkGrabber)
Continue with Selected = Alt+S (Language Specific - specific to LinkGrabber)
Need - Copy Selected to Downloads = Alt+Shift+S (Language specific, pairs with Alt+S - specific to LinkGrabber)
----------------------------------
Move Package/Link to the Top = ALT+HOME
Move Package/Link to The Bottom = ALT+END
Move Package/Link Up 1= ALT+UP
Move Package/Link Down 1 = ALT+DOWN
----------------------------------
Select all links = Ctrl+A
Select all Offline links = Ctrl+Shift+O (Language Dependent)
Select all Duplicate links = Ctrl+Shift+D (Linkgrabber only) (Language Dependent)
Select all links with permanent Errors = Ctrl+Shift+E (Language Dependent)
Select all Disabled Links = Ctrl+Shift+L (Language Dependent)
Select all finished Packages = Ctrl+Shift+P (Language Dependent)
Select all Finished downloads = Ctrl+Shift+F (Language Dependent)
----------------------------------
Save Package(s) in Container = Ctrl+Shift+S (Saves selected packages and/or links in a DLC or JDC. If the user supplies a password it uses a JDC, otherwise it uses a DLC)

(Note: Select in the menu and the toolbar replaces Delete. Select+Delete key does what the old icons did)
(Note: Eventually, Copy, Cut, and Paste should apply to selected links and/or packages.)


View Alt+V

Move highlight to top = Ctrl+Home
Move highlight to Bottom = Ctrl+End
Move highlight Up 1= Up Arrow
Move highlight Down 1= Down Arrow
----------------------------------
Settings = F4 (Commands for specific settings pages should be removed)
Move to next section of Page = F6
Menu for selected object = F10
Find = Ctrl+F
Find again = F3
----------------------------------
Properties = Alt+Enter


Tools Alt+T

Toggle Clipboard Monitoring = CTRL+Alt+C (Language independent)
Toggle Auto Stop = Ctrl+Alt+S (consistent with Ctrl+S)
Toggle Auto new IP = CTRL+ALT+I (reconnection when necessary and downloading is finished)
Stop downloads, get new IP = CTRL+Alt+Shft+I
Save Log As = Ctrl+Alt+L (new command)

Other toolbar commands TBA

Help = Alt+F1

Help for selected Object = F1
About JDownloader = CTRL+F1 (local)
Help and Support (JDownloader.org) = Ctrl+Alt+F1
Wiki = Ctrl+Shift+W (Language Independent. Currently deprecated and not in the menu. Available from Help and Support.
Changelog = CTRL+SHIFT+C (deprecate? - Language Dependent)

Some actions are missing and need to be added.
I have to make an inverse list (key to command) to verify that there are no duplicates.

Last edited by drbits; 21.07.2010 at 05:09.
  #3  
Old 18.01.2010, 00:28
guardao's Avatar
guardao guardao is offline
JD-Team
 
Join Date: Mar 2009
Posts: 258
Default

Spoiler:

Quote:
Originally Posted by drbits View Post
This is still incomplete. Each menu, command, button, or movement action must have at least one accelerator. The notes are from 9.579, so they refer to things as they were, not as they will be. Several carry notes about why that key was chosen or whether the key is language dependent.

Those in strike out font are those that do not work in 9.579, some are already replaced below, some need to be replaced. No review has been made to complete the list (yet).

About JDownloader = CTRL+F1 - Help and Support
Add links = CTRL+V (supposed to be Add Links Container)
Add URL(s) = CTRL+U
Backup = CTRL+B
Pause downloads. Limits global speed to 10 kb/s = (see Pause)
Changelog = CTRL+SHIFT+C (CTRL+C does not work either)
Enable or disable monitoring the Clipboard for new links = CTRL+8
Configuration = F11 (F4 in Nightly)
Drag&Drop target = CTRL+6
Toggle (Enable/Disable) Reconnection = CTRL+ALT+R
Do a Manual Reconnection = CTRL+R
Manual reconnection. Get a new IP by resetting your internet connection = (see Do a Manual Reconnection)
Move to The Bottom = ALT+END (changes in Nightly to Move Package to Bottom)
Move Down = ALT+DOWN (changes in Nightly to Move Package Down 1)
Remove Entries = DELETE
Move to the Top = ALT+HOME (changes in Nightly to Move Package to Top)
Move Up = ALT+UP (changes in Nightly to Move Package Up 1)
(Move Down = 2 x ?) Move highlight down = Down Arrow
(Move Up = 2 x ?) Move highlight down = Down Arrow
Move highlight to top = Ctrl+Home (In Nightly, click on a line first)
Move highlight to Bottom = Ctrl+End (In Nightly, click on a line first)
Exit = CTRL+Q Edit by Jiaz: changed, because CTRL+X is cut
(No Confirmation dialog. Note, this is different in Windows from Alt+F4)
Support = F1 (F1 doesn't do anything, should be About JDownloader)
Host Configuration = CTRL+Alt+H
Load Container = CTRL+O
(Move Down = 2 x ?) Move highlight down = Down Arrow
(Move Up = 2 x ?) Move highlight down = Down Arrow
Addon Configuration = CTRL+Alt+O
Pause = CTRL+0 (should be Ctrl+Space to toggle Pause/Play to match other programs)
Enable Premium usage globally = (nothing found) Not necessary
Remove completed Downloads = -
Remove completed Packages = -
Restart = -
Create Container = CTRL+S
Search = CTRL+F
Start/Stop downloads = CTRL+9
Stop running downloads = (nothing found, but it might be CTRL+9 as well)
Execute update = CTRL+7
Auto-update = Alt+A (should change to Ctrl+Alt+U)
Show log window = F5
Open Wiki = CTRL+W

Minimize to tray (or Exit) = Alt+F4
(Note, there is a confirmation dialog, but no Cancel)


System menu = Alt+Space (consistent with tradition)
File menu = Alt+F (Language specific)
Links menu = Alt+L (Language specific)
Premium menu = Alt+P (Language specific)
Add-ons menu = Alt+A (Change Auto Update) (Language specific)
Context menu = F10 (consistent with tradition)

Start/Stop download = Ctrl+S (consistent with tradition)
Pause download (toggle) = Ctrl+Space (consistent with tradition)
Toggle Clipboard = Ctrl+Alt+C (consistent with Ctrl+C)
Toggle Auto Stop = Ctrl+Alt+S (consistent with Ctrl+S)
Toggle Auto IP Change = Ctrl+Alt+I (Reconnect is NOT what this does)
Update = Ctrl+Alt+U (Language specific)

Change Tab = Ctrl+Tab / Ctrl+Shift+Tab (consistent with tradition)
Change section of page = F6 (consistent with tradition)
(Rotates between Menu, Menubar, [tree in settings] Main part of page, and Status bar)

Tab order needs to be fixed in Settings and Status bar)
Left/Right arrow keys move left or right in menu, menu bar, and status bar.
In a tree (or tree grid such as Downloads) +/- Open and close
* = Toggle open and close All.


SPECIFIC TO DOWNLOADS PAGE (Change to include LinkGrabber in future)
Select all links = Ctrl+A
Find Package = Click on a package, then Ctrl+F (add F3 in future?)
Collapse/expand all packages below = Click on a package, then Ctrl+Left click
Collapse/expand all packages above = Click on a package, then Shift+Ctrl+left click

SPECIFIC TO LINKGRABBER PAGE
Add Links = Alt+L (should change to Alt+U for add URI)
Add Down Load Container = Alt+A (should change to Alt+D - Language Specific)
Continue with all = Alt+C (Language Specific)
Need - Copy all to Downloads = Alt+Shift+C (Language specific, pairs with Alt+C)
Need - Continue with Selected = Alt+S (Language Specific)
Need = Copy Selected to Downloads = Alt+Shift+S (Language specific, pairs with Alt+S)



Insert this like a SVN Thread. Use - FEATURE

Last edited by pspzockerscene; 18.01.2010 at 00:33.
  #4  
Old 18.01.2010, 06:54
drbits's Avatar
drbits drbits is offline
JD English Support (inactive)
 
Join Date: Sep 2009
Location: Physically in Los Angeles, CA, USA
Posts: 4,437
Default

I will have a more comprehensive list of keys needed in a day or two. I would rather put that into the tracker than something patched together as this is.

This can be a reference in the Issue.

If you think I should do it now, let me know.
  #5  
Old 18.01.2010, 11:37
drbits's Avatar
drbits drbits is offline
JD English Support (inactive)
 
Join Date: Sep 2009
Location: Physically in Los Angeles, CA, USA
Posts: 4,437
Default Missing precautions.

Every dangerous action should (by default) have a warning dialog. Every notification or warning dialog MUST have both an OK and Cancel button (you can rename them, but they have to be there).

Having a warning dialog without a Cancel should be a Release-Stopper.

Also, when deleting user files, they should be deleted to the graveyard (recycle bin or wastebasket are newer names and are claimed as trademarks).

When deleting links, they should be placed in a container in the graveyard. However, this can wait for a future version, when text files can serve as containers.

The Notification Area Icon

1) The icon in the notification area is too complex right now. It does three things badly instead of two things well. Left click should open the main window. Right click should open a menu, with an information bar at the bottom. Hover should show what the status bar box would show (JDownloader AC: X DL: YYY KB). This means that the delayed pop-up should go away (and become part of the right click menu).
2) Clicking on the title of the notification icon menu (JDownloader) should open JDownloader. If it looks like a menu, treat it as a menu.
3) Most of the Notification Icon Menu items should not be there. Only very common operations should be there:
Stop Why would anybody want this here?
Pause
Add URLs
Add Container should probably be done away with entirely. If a container file path or URL is added to the URLs, then it should be downloaded and opened if the setting is set.
Update On program start is often enough for most users.
Refresh IP This name makes no sense. The user must be told that the downloads will be terminated. Without seeing what is running this is a very poor idea. The name should be "Stop DL. Get New IP". It is not needed on this menu.
Open Download Folder
Enable Premium Globally People don't arbitrarily enable/disable Premium. They only disable premium when they have exceeded quota and they don't know that from the notification area.
Clipboard Observation Could be useful here if it is interfering with another program.
Enable Automated Reconnect When this is working properly, people change this once, then maybe every few weeks.
Speed Limit Only useful here if Pause doesn't work.
Simultaneous Downloads Shouldn't be fiddled with much. Interesting only if one is a developer or one is trying to optimize downloads, and one wouldn't do it from the notification area.
Concurrent Connections 1 if no Premium accounts. 4 if running premium. No need to change while surfing, e-mailing, or editing.
Exit

Last edited by drbits; 19.01.2010 at 11:28.
  #6  
Old 18.01.2010, 15:11
remi
Guest
 
Posts: n/a
Default

This thread looks great.

Last edited by remi; 23.01.2010 at 13:47. Reason: I've now read it
  #7  
Old 23.01.2010, 07:10
drbits's Avatar
drbits drbits is offline
JD English Support (inactive)
 
Join Date: Sep 2009
Location: Physically in Los Angeles, CA, USA
Posts: 4,437
Cool

Status: Bugreport

Quote:
Originally Posted by guardao
Insert this like a SVN Thread. Use - FEATURE
Done.

However, the work on the list is not done. There are still some actions that didn't make it into the menus (they are currently only available as toolbar options).
  #8  
Old 23.01.2010, 13:48
remi
Guest
 
Posts: n/a
Default

I think the recommendations, although I'm far from a specialist in this domain, make perfect sense. If you look at all the questions asked here in the forum, jD's usability remains a big issue.

Would it be possible to measure the usability of jD according to these recommendations? Because if something isn't measurable, it isn't manageable. If we can measure it, we can also manage jD's progress to more usability.

PS: You had "a complicated description of resources and events". If you still have that, I would like to read that. It might help me understanding the issues better.
  #9  
Old 24.01.2010, 00:02
drbits's Avatar
drbits drbits is offline
JD English Support (inactive)
 
Join Date: Sep 2009
Location: Physically in Los Angeles, CA, USA
Posts: 4,437
Default

I am looking for that document. I will upload it later.
------------------------------
A basic rule of user interface design is "If the user does not understand something in the program, the program is wrong".

It is difficult to measure usability. One way to evaluate the UI at a desk is to count the number of confusing, inconsistent, or improper features and compare it to the total number of features. Right now, JD scores poorly.

Another measure is how long it takes a person to learn to install and make basic use of the program. JD does pretty well on that unless you have a premium account or want to use reconnection.

Measuring the % mistakes people make in using the program (wrong key, looking in the wrong section, misunderstanding the feedback, deleting things, and so on). This seems high (around 15% for moderately experienced users, but I may be biased by the board).

One of the best measures is to plot over time the number of problems people report. This includes the "stupid questions", but not enhancement requests.
__________________
Please, in each Forum, Read the Rules!.Helpful Links. Read before posting.
  #10  
Old 24.01.2010, 16:12
remi
Guest
 
Posts: n/a
Default

Aren't these usability recommendations generally accepted standards? You might have such (more or less) formal recommendation lists.

You can create a table with one recommendation (atomised, non-redundant) per row and one jD version per column. The cells would contain a %-evaluation. The criteria could have a weight. We would be able to analyse jD's trend in usability.

Some recommendations, taken from your first post, would be :-

1) default toolbar contains buttons in download workflow order
2) menus are organized around download workflow
3) each control has three levels of "help" associated with it
4) each control resource has an accelerator (which might be empty)
5) each accelerator should be displayed in at least one tool-tip
6) each accelerator should be displayed in at least one drop-down menu

If we can increase jD's usability then all assistance and support with its use might evaporate. No need for a FAQ, no need for manuals, tutorials, videos, etc.

Last edited by remi; 24.01.2010 at 16:20.
  #11  
Old 24.01.2010, 21:18
drbits's Avatar
drbits drbits is offline
JD English Support (inactive)
 
Join Date: Sep 2009
Location: Physically in Los Angeles, CA, USA
Posts: 4,437
Default

Quote:
If we can increase jD's usability then all assistance and support with its use might evaporate. No need for a FAQ, no need for manuals, tutorials, videos, etc.
I wouldn't go that far, these are just some suggestions for improvement (there is a lot more room for improvement).

This is also partially tailored to JD. For example, (3) should include: tooltip, quick reference balloon (F1), extended description, tutorial with the control being used in context of a workflow, full manual integrating extended descriptions into a unified whole, community forum, and controlled elevation of issues (I may have forgotten parts).

Reconnect is still too complex for most users. We need a list of the ways that a router can be convinced to request a new IP. We need a tutorial to explain how to tell if a router is in each category (for example, JD should have a button to check for DHCP response). We need examples of how to find router restart from a browser.

You can add:
7) make use safer (e.g., Graveyard, Change global commands from Delete to Select),
8) quality feedback to the user
9) understand and implement the underlying objects correctly (such as download units, general and specific status).
10) standardize as much as possible (by centralizing code, keeping parts of the program consistent, and by consistency of the user experience across the product)
11) understand how to check for status conditions properly.
12) the planning cycles should be Immediate (patches, such as the plugin update sets), Next release, Next+1, Next+2, and future. A Gannt chart can help keep track of progress. A PERT chart can help plan and identify future development problem areas. Know your limits (there are too many hosts supported and too many encrypters supported).
13) put all common new user settings on one page.
14) deemphasize difficult functionality with users (for example, Reconnect is not for new users, test versions should be reserved for people who know the product well)
15) Concentrate on the most important (sites: RS, MU, HF..., encryptors, features)

You might be interested in looking into cognitive analysis of software interfaces (or GUI or human-computer interfaces). This is the lets make a table of features. Lets make a list of things to check for (each has a score). Lets score each feature based on the list. The problem is that this is always done from the perspective of a new user.

There is also "learning curve" to study (how long does it take to learn each of the basic operations or features). Feature penetration curve (how fast do people adopt more complex features). User error analysis (what do users get wrong most tells one where to concentrate documentation or redesign). User error trends (for each common error, how often does it happen for each version, plot it).

One of the problems with comparing version 4 and version 10 is the extra features. You have to compare versions feature to feature. Version 4 had some features that are still not correctly implemented in version 10 (these should be identified in an explicit list and inserting into but tracking). Version 10 tries to be more general.
__________________
Please, in each Forum, Read the Rules!.Helpful Links. Read before posting.
  #12  
Old 26.01.2010, 14:21
remi
Guest
 
Posts: n/a
Default

Nice work. This is an interesting continuation. Here are some remarks/questions :-

1) the workflow could be based on our state diagram
2) idem
3) this is a great item : 7 levels if I can count well (I don't understand your "controlled elevation of issues" - do you mean the issues in the bugtracker?); reuse of lower level in higher level explanations
4) no comments
5) no comments
6) no comments
7) we should list all occurrences
8) is not quantifiable
9) do you mean the concepts I used in my concept diagram?
10) this means that we need to analyse the areas
11) I don' understand what you mean
12) is this a usability criterion?
13) I don' understand what you mean
14) Azureus makes the distinction between Beginner, Intermediate and Advanced mode
15) I've proposed support for hosts according to their Alexa ranking, but this was declined; I think jD's strategy is to implement the easy ones first and on a demand basis.

I think the more features you add the lower the usability becomes. This can be compensated by using a % evaluation or by analysing the usability of each feature and averaging the result.
  #13  
Old 26.01.2010, 22:33
drbits's Avatar
drbits drbits is offline
JD English Support (inactive)
 
Join Date: Sep 2009
Location: Physically in Los Angeles, CA, USA
Posts: 4,437
Smile

1) Yes. There are a couple of places to enter the workflow. One is to open JD and check for errors (which should be easy to find if we change the Delete ... commands to Select). Another is starting by grabbing links - This means that the toolbar for the LinkGrabber should be separate from the Download page toolbar (separately customizable).
3) 7 levels is a goal. It could take years to get there, but it is a target.

7) What do you mean by list all occurrences? The idea I was trying to communicate is to add a safety to the commands themselves (like using the Recycle Bin for deleted links and files). Also, since we need a command to select all links with permanent errors (and other categories, based on your state diagram), then we can use Select, followed by Delete to remove the links (or links and files).

8) To quantify feedback, you define test scenaria (workflows with lists of links and any other required information). For each scenario, you count the feedback to the user that is Helpful (2), Somewhat helpful(1), Not helpful(0), Confusing(-1), or Incorrect(-4). You then add-up the scores. You can tailor each scenario to the Beginning, Continuing, and Expert users (or score them based on these models). These are the same as you listed in item (14), but are more descriptive of the user, rather than the UI changes. Designing these scenaria, testing, and scoring is one of the central parts of the study of Human-Machine interaction.

Another way to quantify (8) is to just count the feedback available (a desktop approach). One has to create a scale for this :
a) The feedback that a problem exists in a package is an orange dot with no explanation. -1 for lack of sufficent feedback. -1 for confusing feedback.
b) There is no way to collect the packages with problems into a single place for easy work. -1. (really belongs in a different evaluation category).
c) The Package feedback shows the same feedback for all ranges of problems, but also shows the same feedback for host initiated waits (not errors) -4
d) The Package feedback shows completion (Green light with check) when all non-disabled links have been downloaded. Because automated link disabling is very buggy (buggy enough that it should be pulled), this is not a true indicator of completed downloading -4
e) The Package feedback shows completion (Green light with check) when all non-disabled links have been downloaded. This does not mean that JD has completed processing a Package, or even if it can complete processing. The All-OK status is premature. -1
f) Feedback for many global actions is poor, including "Check for update" (often erroneously referred to as "Update"), archive processing, link grabbing, container decoding and so on. -1
g) Missing important information in info-bar -1 Info-bar is often obscured -1
(Info-bar should contain the form fields to control what it reports is a different evaluation category).
h) Status displayed for current activity within a package is poor. ETA for a package completion is poor and wrong -4. Package properties does not show details of status and activity within the package -1.
i) Download units are an important part of the workflow. They are not identifiable -1 and there is no feedback when they are incomplete until download unit processing -1.
(and so on. I haven't gotten to links yet).
This is taught as part of Cognitive User Interface analysis. You will notice that it is all negative.

9) Not quite. They are related. The idea of identifying objects includes noticing what objects are seen by the users (TLD and TLD-1), and the objects to implement them.
For example, JD creates download units, then discards them, but they are objects. The status of a link, DU, or package is an object that is aggregated into those objects. Your diagram concentrates on activity and state.

Object diagrams concentrate on what needs to be represented to communicate properly with each external entity. One free-standing object is generated to represent the external entity and an object is created to represent the data required to interact with the entity. Child or aggregated objects are created when necessary to represent specific parts of the interaction (different activities). Finally, the relationships between these objects is mapped out. That is a summary of the first chapter or two in a book about object oriented programming.

Activity diagrams indicate the order that operations can take place and the states that operation can be in.
Object diagrams represent the external entities and data, along with the internal data required to do the job. Class diagrams define the classes of objects, the data that the objects contain, the minimum set of activities (methods) that can be applied to the objects. They also categorize Classes as static, dynamic, externally changed, singleton, factories, etc. Other data that is not kept is the actual responses form the host server, aggregated information for a package of links, etc.

Object (or class) diagrams are frequently used for representing users and the activities as they appear to the user. However, they don't define order of operations.


Another few chapters:
The following diagrams fill in the blanks and are used to check the information in the other diagrams.
Dataflow diagrams assume the objects and activities are well defined, but define what activities (methods) can be applied to each class of objects.
E-R diagrams define constraints on the relationship between data items and an E-R diagram is used for definition of a database schema.
Operation diagrams are used to identify the data required for each operation or transaction.
Timing diagrams and Petrie nets are used to determine bottlenecks and deadlock states (JD has at least two deadlock states right now).

Finally, if you are running a project, you need to keep track of resources, action items, and the state of each.
A Gannt chart has one line per action item, estimated start and end dates, resources assigned, actual progress, and the ordering constraints on action items. This is the most common project organization tool.
A PERT chart is like a state diagram in which each box is an action item and information about it, including minimum (90%), expected, and maximum (90%) time required, progress, and resources required/assigned. The lines between the boxes show what has to be completed before each action item. This is a more useful organization tool, but only used by experts at project management (some business schools have a 1 semester course on Introduction to PERT analysis).

10) Yes. For example, the program's main visual item is the download chart. There are also warning dialogs, information request dialogs, information panes, form panes, and the textual menu and the graphic menu. Sections of the program are controlled by tabbed diagrams.

Some things do not fit. All chart-type input should look like and act the download chart. Each page should have either a simple or detailed information form (info-bar or info-bar plus properties). The form entry fields in the right click menu and status bar are anomalies, their data are settings and should be on the "Basic settings" page. They may be repeated in the detailed information forms. Another anomaly is the settings tree. It can remain, or be replaced by tabbed panes.

11) JD currently leaves too much of the code in the plugins. All general control should be in JD. Host plugins provide information that is specific to a host, such as categorization of a response from the host into one of about 20-30 status message categories. These categories are then used in your state diagram and are displayed to the user in some way. The raw response should be available in the "Properties bar" so that expert users can figure out what is really happening.

An example where JD does particularly badly is the reason for a wait. Sometimes, JD is required to wait as a penalty for the user being a FreeLoader (part of the normal pre-download interaction). Sometimes, JD is required to wait, because of errors in the server (500 error, and so on), that just says wait a few seconds and try again (with back off - needs a time-out or retry limit), sometimes the server is out of resources and needs JD to back off and try again (back off 10 sec, 15, 20, 30, 45, 60, and so on instead of two minutes each time). Sometimes, the user has exceeded a quota on a host (triggers new IP request). Except for the penalty wait, all of these lock JD connections out of the host for the specified period. None of these waits should trigger a any error state.

The "Temporarilly unavailable" response on a link is link specific and does not lock out other links. In fact, it should set the status, set a minimum retry time (with back off) and release JD to process the next link. When JD returns (in the normal course of operation), the retry time is tested and if it is passed, then a retry is attempted. If the retry time has not passed, JD moves on.

The four categories of waits (not your turn yet, penalty, host problem, and Temporarilly unavailable) each have to be treated differently. Most need retries, back-offs, and limits.

These decisions do not belong in the plugins (I know they are in the plugins, because they have been improving the behavior with RS and HF, independently of each other and the other hosts). Except for the penalty wait, these situations are improperly handled in many (I think most) hosts.

Just as the feedback on file not available should be standardized to: File not found, File deleted (without the reason), File restricted (abused, violates TOS), File busy (no slots available for file, too many users requesting file), and File temporarily unavailable.

Essentially, the host plugin provides the regex -> category map and a decision table. The execution can be in one place, overridable by the plugin.

12) This is part of project management. However, it definitely affects the user experience. Users expect host, decryption, and JAC plugins to be updated quickly and available for download as soon as they are completed (even if that means an update offered every time you start JD). Single file plugins should be replaceable during execution (just released and reloaded). The question to the user should not be whether to download the updates, but whether to install them now (and restart), wait to install them, wait to download hem, or disable automatic update checking.

13) This was the "Basic settings" page I mentioned. When a user first starts using JD, the user should be prompted for connection speed (with a link to speedguide or speedtest, and a plugin that evaluates the answer), whether the user has any Premium (paid) accounts, a button perform some tests (router identification, firewall access for java and javaw, and antivirus scanning of downloads and file opens using EICAR). A proxy setup button (in Windows, normally just copied from IE settings in the registry).

The introductory wizard would set normal settings and display the Basic settings page with maximum downloads per host, maximum connections per download, and maximum downloads, a button for setting up a proxy, the gateway address (or a list of possible gateways, only one visible at a time). It would also have a warning box with links for fixing problems with the antivirus and firewall.

I may have missed something that needs to go into the wizard or the basic settings, but I am sure you will help fill in any blanks.

14) Azureus is an example of a badly designed program. However, having two or three user levels is a good idea. I prefer to call them New users, Continuing users, and Expert users.

15) I agree. This is a volunteer organization and devs choose their own assignments. I don't think Alexa is the right measuring device anyway. I think that there should be a thread or forum for requesting new host, decrypter, and antiCaptcha support. Each should have a poll like:
a) I use this site a lot (6 points)
b) I use this site (3 points)
c) I would use this site if JD supported it (1 point)
d) I don't care (0 points)
e) This site is known for spam, phishing, or other such behavior.(-3 points)
---------------------------------------------

Sorry to make my answer another book chapter.
If you can identify the important parts of this discussion for designers and/or developers, we can create a shorter version and post it in the Team forum.

For example, I really like the discussion of the different kinds of diagrams and what they are for. But that would have to be its own thread in a forum somewhere (its own book chapter). That wouldn't be for general reading.

But the suggestion about categorizing results consistently and having JD act on them instead of the plugins should be pretty popular.

bye for now
  #14  
Old 28.01.2010, 14:07
remi
Guest
 
Posts: n/a
Cool

1) I agree

3) I still don't understand your "controlled elevation of issues" - do you mean the issues in the bug tracker?

7) With occurrences I mean all the places where it can happen.

8) Nice explanation, but it means a lot of work if this is not simplified.

b) Yes, it's not about program feedback.

a)-e),h) I would drop package feedback, because some people use packages for categorising links. I continuously add new links to my categories. The package statae no longer matter. As you and everybody knows, 'disabled' (whatever triggered this status) links are not counted, which makes package status an elusive concept.

f) I agree

g) Do you mean the status messages appearing at the bottom of the jD window; something you wrote about in another thread?

i) I agree

9) I referred to my Concept Diagram, not to the State Diagram. I don't understand what you're trying to communicate with all those "chapters". I would put that elsewhere as it is distracting from the main theme.

10) What are you talking about in "All chart-type input should look like and act the download chart." and "The form entry fields in the right click menu"?

11) I agree. This would make updating the plug-ins a lot easier, avoiding Psp's expected burnout. I hope there will be a stable and simple host plug-in interface.

12) I agree, but I prefer update schemes where you can choose the version you want to use. I run different versions of jD (and other software) on different computers, in case one version or feature becomes unusable.

13) A setup wizard is a very good idea. (Instead of IE I would take the customer's preferred browser.) The wizard might also contain a short description of the download workflow.

14) We don't need the zillionth forum. Isn't it possible to provide forms for host, decrypter, and anti-captcha requests/updates (see hXXp://www.vbulletin.org/forum/showthread.php?t=93970)? A form obliges members to provide all necessary information. In the survey there was a question on the hosts we most often use. If there would be a complete list and members would be allowed to vote for their 10 favourite hosts, it would not only prioritise the development/updating of the plug-ins, but also be an incentive to become a member of the jd board. Members should be allowed to change their priorities at any moment. jD would be the first real democracy in history.

Your 'books' allow me to understand what you're writing. What you're writing matters, otherwise I wouldn't read it.

I've the impression that some of your posts contain more suggestions for improving the software than one page of the dreams and wishes forum.
  #15  
Old 29.01.2010, 01:35
drbits's Avatar
drbits drbits is offline
JD English Support (inactive)
 
Join Date: Sep 2009
Location: Physically in Los Angeles, CA, USA
Posts: 4,437
Default

Quote:
Originally Posted by remi View Post
1)
3) I still don't understand your "controlled elevation of issues" - do you mean the issues in the bug tracker?
We have four levels of support when a person has a question or problem.
a) Ordinary user sees the problem and tries to help. This is for simple things.
a') Bartok, and some of the less experienced (or with less computer knowledge) support people get involved.
b) We notice that some problems have several people read them and no resolution, then experienced people like you or me get involved.
c) If we cannot handle it we hand it off to PSP.
d) PSP handles the stuff that needs programming to understand to Jiaz.

Currently, PSP and Jiaz often get involved early in the process, an inefficient use of their limited time.

Once something is determined to be a software issue (< 1/4), rather than a user issue (over 3/4 of the time), then it has to be passed to a reporter (Think3r, drbits, guardao, hanswurst, jimpanse, pspzockerscene). It is then reviewed by Jiaz or coalado for assignment to a version and priority.

Quote:
7) With occurrences I mean all the places where it can happen.
7-1) The normal link or package Delete or Reset has a warning box. This warning is not applied with any of the "Delete all" (Cleanup) commands:
a) Delete all ompleted Downloads: (I downloaded it, so now I don't need the link). But, that the RAR password is in the link and redownload information is in the link). This also makes proper Download Unit processing difficult. This would have to change to deleting a Download Unit if we ever have that represented in the program)
b) Delete all completed Packages: OK, if it has finished any processing, but this can be applied while we are trying to unrar the package, without any way to tell the user about this. Some of my packages have hundreds of links from multiple sites, if I accidentally press Alt+P, the selected package disappears with no warning.
c) Remove Duplicates: OK
d) Remove Disabled: This, offline, and failed are subject to significant bugs. At least if we are told that we are about to delete 30 links (when we thought it was 2), we can cancel. But there is no dialog.
e) Remove Offline
f) Remove Failed
7-2) Sort order is not backed-up or reversible. Some people put a lot of effort into sorting their packages into a priority order. Clicking in the wrong place on the screen easily ruins this.
7-3) Even with the warnings, deletion (Highlight and press delete or right click, Remove, and either of the two options) is easy to apply to the wrong link or package (there is a backup, but it means restoring an earlier version of the whole package list). Files deleted with the right click, Remove are DOS deleted. All of this belongs in the Graveyard. Even if we just list the links (and passwords next to them) in a text file and delete it, that would help. Encrypted links would be written to the text file encrypted.
7-4) Some of the bugs that can cause the surprises listed earlier in this section are:
a) If JD is not connected to the internet, a check for off-line files returns off-line for all of the files. The same thing for a host that is down.
b) Some people have over a 10% download error rate (as measured by files with Check errors). I am still in testing, but I have another reason to add to our collection.
c) If human assistance is necessary in Captcha recognition, but no human responds within 30 seconds, this is a fatal error.
d) Failed unrars are "Failed". An unrar test run should be recorded and this should be a "User assistance needed" situation.
e) Mirror processing can disable all versions of a link.
f) A package is marked as in an error situation if there is a wait due to lack of server resources.

Quote:
8) Nice explanation, but it means a lot of work if this is not simplified.
UI evaluation is never easy or simple. But your question was whether the UI could be evaluated and quantified.

Actually, just counting the number of people reporting a problem on the Board gives you a pretty good measure. You just identify categories to evaluate such as captcha, slow download, weird error messages, weird errors, connection, DHCP (reconnection), missing links, missing files (you expand the list as you go along). Then you categorize each question. You add extra points if people give the wrong answer.

You can evaluate a week worth of board data at a time, and plot it.

Quote:
a)-e),h) I would drop package feedback, because some people use packages for categorising links.
Packages are an important and salient part of the program. You don't eliminate something from analysis because you don't understand it. You just give it a lower grade. If it is confusing to you, that is a bug in the program design (see my signature).

Quote:
g) Do you mean the status messages appearing at the bottom of the jD window; something you wrote about in another thread?
Basically. There is no count of connecting llinks and no count of downloading links. That other thread was about redesigning the entire bottom of the page.

Quote:
9) I referred to my Concept Diagram, not to the State Diagram. I don't understand what you're trying to communicate with all those "chapters". I would put that elsewhere as it is distracting from the main theme.
I identify things as chapters so that you know it is background education, not a specific answer. I was saying that to understand a problem, you cannot use a finite state machine (what you drew) or any other one diagram. Each is only two dimensional and a program is multidimensional.

I consider a new user looking at a program and what the user sees. I also consider the expert user and what that user sees. Those are the concepts I talk about and they are the heart of object oriented programming.

Each object a user sees is a feature. Each action a user sees is a feature. Each feedback (status, message, dialog, etc.) and each part of those is a feature. Combine this with the interface with other computers (with their features), and you have a very complex program. I left out mentioning the active data storage and saving data to disk. I left out the research projects that coalado and MerryWidow have with the anticaptchas.

You did a good job of summarizing (abstracting) the user visible actions and results. You left out about 95% of the features, and that is the correct approach. But to program it, you need all of the features, so you need either subdiagrams or you cover the walls with a single diagram.

The most important thing about each feature is to understand it and how it relates to other features. For example, when you talk about packages as being unimportant in analyzing the program, you are referring to the fact that the do not have a well defined purpose. They don't fit with the rest of the program. In effect, you have figured out that they should be taken out of the program and replaced by Download Units and Categories.

The main purpose of a package is to carry the RAR password for a group of links. That did not work well, so now each link carries its own password (in Nightly).

On the other hand, my study with 37000 links, over 8000 packages, with 8700 links showed that the database and display architecture of JD cannot handle showing more than about 2000-4000 visible items at a time. Some of the algorithms appear to be O(N*N).

Quote:
10) What are you talking about in "All chart-type input should look like and act the download chart." and "The form entry fields in the right click menu"?
When you design a program, you minimize the number of user interface types that a user has to deal with. If all of the charts act the same, then that is consistent.

Quote:
12) I agree, but I prefer update schemes where you can choose the version you want to use. I run different versions of jD (and other software) on different computers, in case one version or feature becomes unusable.
I run two versions on the same computer (sometimes at the same time), so I can use Nightly and can see 9.579 for helping users.

Quote:
13) A setup wizard is a very good idea. (Instead of IE I would take the customer's preferred browser.)
Windows stores a lot of things as part of IE, even if the user is in a different browser. The setup for Opera, Firefox, Thunderbird, Chrome, and uTorrent all copy proxy and internet connection information from the IE registry settings. Smart programs also use the TCPIP service parameter settings.

Quote:
The wizard might also contain a short description of the download workflow.
You are mixing books and torches. Basic settings is a page of settings that also sets other things to be consistent (in the background).

A walk-through or tutorial is an orthogonal concept from a settings wizard. They should not be mixed. However, buttons to request such things are a good idea in the Basic settings.

I am sure you could write a 3 paragraph summary of how to use the JD download page. We could even display it the first time the user opened the page.

We could have a multi-page introduction, but I think it is better to keep the pages separate and have a 3 paragraph tutorial for each page (in the help menu for that page). A more extensive manual with various ways to search for information should also be available.

Quote:
14) We don't need the zillionth forum.
Up to around 25 English language forums (and the same in Deutsch) would not be excessive, if they are organized well into forums for categories, and subforums for specifics. The names have to be more descriptive.

On the other hand, we could cut the English forums to Problems, Wishes, and Other and it would not be much different than our current situation.

However, we really do need a tutorials forum. We need a knowledgebase forum, possibly starting with an FAQ. People cannot figure out between hosters and decrypters, but if it were Host Site Problems, Captcha Problems, and Link Container Problems it would make a lot more sense.

You take the same division in wishes (sites, captchas, and containers) and add Program wishes and Website wishes.

Quote:
Isn't it possible to provide forms for host, decrypter, and anti-captcha requests/updates
Only if we divide them up. One form for requesting each kind. One form for reporting a problem with each kind. The ability for others to comment on the form (the form starts a thread or a wiki page).

I have also been thinking we should have a poll on each new feature, host, decrypter or anti-captcha request. Order them by the number of positive poll results.

And I like your idea for prioritizing things with the survey. I am sure that was the whole idea. However, the priorities are what the developers are interested in doing.

Quote:
Your 'books' allow me to understand what you're writing. What you're writing matters, otherwise I wouldn't read it.

I've the impression that some of your posts contain more suggestions for improving the software than one page of the dreams and wishes forum.
Thank you.

You don't even get to see them all. I just wrote a chapter on how to prioritize work in the "Internal" team forum. I need to dissect this thread and create an informational thread and a requests thread from it. Some of this isn't in the bug tracker yet, because we don't have closure. We keep getting side tracked by things like how to evaluate the results.

Until next time.
Same Bat Time, same Bat Channel!
__________________
Please, in each Forum, Read the Rules!.Helpful Links. Read before posting.

Last edited by Think3r; 18.09.2013 at 20:37. Reason: correction
  #16  
Old 01.02.2010, 13:39
remi
Guest
 
Posts: n/a
Default

Your QUOTE tagging seems to be wrong.

3) OK. I would like to call that first, second, etc. line support

I think Jiaz (last year) and Psp like to know what's going on in the customer community and what the main issues are. Psp also solves lots of issues with the host/decrypter plug-ins.

It's very interesting to know what people are struggling with in order to know what can be designed better.

7-1) I agree
7-2) This issue is in the bug tracker
7-3) Who is the actor (jD or customer) responsible for creating the text file?

8) Do you think the people who're posting on the jD board are representative? I think most people who post here have a problem or a question and either don't want to search or can't search the forum. Few problems/questions/suggestions are really new.

I wonder how many people give up trying to get a program working as it should. I've already tried many download tools. Several of them didn't work within the first few minutes, so I dumped them. I just tried the next one. I think a customer's first impression of a program is crucial.

I don't know any other program that has packages and I use them as good as I can. The package status feedback is not important for me because I usually have too many links per category. A status wouldn't make any sense.

13) There should be an equivalent of the classical "README.txt" file in the "first startup" wizard. This should contain a very short introduction to the download workflow.

14) I'm not convinced of this hierarchical approach of forums, because things are multi-dimensional. Psp is working like hell to keep the board organised, while he should better spend his time on plug-ins.

Semantic tagging/search/inference/mining would be a better approach. I'm currently researching what we might be able to use.
  #17  
Old 02.02.2010, 01:21
drbits's Avatar
drbits drbits is offline
JD English Support (inactive)
 
Join Date: Sep 2009
Location: Physically in Los Angeles, CA, USA
Posts: 4,437
Default

7-3) When links are deleted, they should be recorded in a "deleted link list". As a UI designer, you have to decide whether to place this into a database (along with completed links), or get rid of them. If we are getting rid of them, then JD should copy this list to a text file and put it in the Graveyard.
7-x) Several are in the Bug list.

8) I agree. But they are how one measures support needs (an important cost). I suspect that 80% of users have never used the board at all.

The first impression is crucial. That is why we need to just ask a couple of questions and get them going. We can teach them the details later.

Even with categories, we will have download units. Some of these can have many parts. We need to propagate the status that far. If we have Download Units and Categories, we do not need Packages. We have to keep them around, because people are used to them, but there is no reason to mention them to new users or to highlight working with them.

13) That is a good idea. I was picturing a single page wizard. That would be another page. I assume the readme would also be available in the Help menu and would be full of in-line links for more information (highlighted words that would be there anyway).

So that would be an overall summary of the workflow.

Some how, we need to summarize the important customizations (for example premium account log-ins). We can set Max. Con., Max. Dls., and Max. Simultaneous Dls per host from their stated download speed and whether they have any premium accounts.

What other settings do new users need? We can assume unrar, but leave the archives for safety (the error checking is currently not good enough to determine whether to delete the archive).

We can set-up some high level categories, and let them figure out that if they type a category it becomes part of their list. Reconnection is not necessary for those with Premium accounts or new users with a variety of hosts. We need a tutorial, but it doesn't have be be introduced to new users.

The other issue is the security software. We can create a simple test that sends an HTTP request for a file on the server that provides IP change support. The file would be a RAR containing an EICAR string (a text string that all antivirus programs flag). If jdownloader.exe starts javaw, then javaw can start a java instance to request the file. If the file is returned and saved, the firewall and antivirus are set-up correctly. If the antivirus quarantines the file on download, then it fails the test. If the HTTP requests to the server cannot be made from both java and javaw, then the firewall fails the test.

14) OK.
  #18  
Old 19.08.2010, 01:13
drbits's Avatar
drbits drbits is offline
JD English Support (inactive)
 
Join Date: Sep 2009
Location: Physically in Los Angeles, CA, USA
Posts: 4,437
Default

This discussion is a more detailed version of some discussion in the Accessibility thread.
 

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +2. The time now is 11:11.
Provided By AppWork GmbH | Privacy | Imprint
Parts of the Design are used from Kirsch designed by Andrew & Austin
Powered by vBulletin® Version 3.8.10 Beta 1
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.