ApportEnhancement
Apport Enhancement
Rationale
The current implementation of Apport message dialogues and notifications has a poor logic and does not benefit user experience over time.
Thu user is exposed to lots of message dialogues when multiple crash reports are detected at the same time.
Proposal
- Conditionally show message dialogue for batch crash report submit according to some logic explained below.
- Reduction of message dialogues visible on-screen simultaneously when a crash report is detected by implementing single instance message dialogue app
- Keep record of unreported crashes
- Add counter of unreported crashes en message dialogue
- Update on real time the counter when new crash report is detected
- Add persistent indicator when unreported crashes are detected.
Indicator
- Always: libindicator tray icon with counter
- Always: libnotify desktop-notification each time sudoer user is logged in.
- Conditional: message dialogue each time sudoer user is logged in, only if current number of reports is greater than interval-counter modelled as Fibonacci series.
Outdated packages
- Explain if necessary if report could not be sent due to outdated packages
- Offer package updates or launch update-manager if necessary.
- If auto-launched, explain in update-manager that an update is necessary to check if previous problem(s) is(are) already solved on newer version(s).
Intervals (interval-counter)
To avoid receiving too much reports from only one user, a persistent counter could be added. Basically, it increases every time a user sends a batch of reports, this way a few advantages are achieved:
- As long as times goes, user is less interrupted with notifications. Usability is exponentially-amortized enhancement; gets better as times goes by
- Could bring less false positives
- Ubuntu gets less reports from broken or experimental settings, such as when a user installs and reconfigures services just for the fun of it
- More batch of reports are gathered on fresh installs
- No interval logic should be considered on development versions.
Uptime
- Implement some logic to conditionally show notification when very long uptime is reached (ie, 100 Hours)
- Implement some logic to conditionally skip message dialogue show on login (or start-up) if last uptime was less than 1 Hour (for barely used systems).
Network Connection
- Server Downtime: do not show notifications or message dialogue when bug tracker could not be reached
- Mobile only: Implement some logic for users of mobile connections to avoid spending too much data quote if applicable
- * Prepaid: interval based on double counter value (2i) for prepaid (when user can't afford spending too much on updates and crash reporting). Not sure about this one.
Privacy
- Encrypt crash reports and unencrypt when submitting
- If encryption is implemented, automatically collect user data and stack traces and only submit if user authorizes it. Otherwise discard sensitive reports presents in the batch.
- If encrypted by SSH keys, discard or re-encrypt previous reports after successful new key pair is generated.
ApportEnhancement (last edited 2013-11-12 05:27:37 by pc-110-249-73-200)