tl;dr; More finessed time control for software updater according to human time
Problem I am facing
My work gets often interrupted by Software Updater, and especially recently when there are daily and loads of updates on Ubuntu Noble (Dell G5). Id start working and mid work it would ask for upgrades, and hinder the work if i dont upgrade. Then it would require restart, and if i dont restart it would start producing subtle interactive Haisen bugs - especially when I use system calls.
For example, lets say I am performing unit tests on simple memory register using gccâs __builtin_* for scanning user input and assigning it to register. When i run unit tests before software updater , they all pass. But moment software updater starts, request restart and I dont restart it, they start randomly failing. Often in terms of something stupid like didnt read 3rd character right and interpreted single nibble from 0xF to 0x6. Then when i restart it, it all goes back to regular.
It has became quite a bore to start working, work for 2 h and then have to restart or all my work is in vain.
Solution that would benefit me
I couldnât find any time slot setting on Software Updater to schedule it during lunch (for example) when I am off my computer and eating. I tried to find cron jobs tied to Updater but I couldnât find them.
Proposition
Now, all i can do is guess at this point, but i suspect that there is some either time zone management synchronization feature missing or not exposed to user. So id suggest 2 possible solutions:
Base premise:
- Every human on earth has fixed time that they are busy and relaxing. Those time slots tend to be roughly evenly distributed in Nx2-3 hours per 16 h increments ( 24 - 8 = 16, in 2 -3 shifts : 6-8 hours, across time zones that is 2-3 âticksâ roughly every 2h and 30 min ) - all in local time.
- Machines dont have to have time that they are busy or relaxing, or if they do its highly randomized and enthropic. Machine can go and do some automatized jobs while user is away and so on.
- Therefore human time != machine time, however for updates human interaction is required.
Humans gotta sleep, eat, and do human things. Its clear that machine time isnt same as human time especially for long running systems such as servers. So the problem arises about users information, machine availability and whole series of possible interactions. So we have 2 extremes here:
- Machine specific : with little or no user interaction due to system automation - ie servers.
- User specific : with little system automation due to frequent user interaction - ie desktops.
This can easily be summed in few logic gates:
- XOR where interaction happens when those extremes overlap (full machine control and full user control are considered the same). So specific care is required when system transfers from machine to user specific extreme - required user interaction.
- NAND : focusing on automation, where user input is only presaved state and machine does upgrades when it needs to.
- NOR : focusing on non active time where system is powering off or powering on.
Id prefer NAND version to be honest, but I am aware that there are plethora of people with different uses and needs, and Id strongly advise against NOR since whole idea of FOSS is âuser is not an a babyâ.
Finessed time control for any updater would highly benefit user and machine work flow, while keeping information to when its convenient, allowing for ease of user navigation.
Proposals:
Force push updates and upgrades on local machine time intervals.
Let say that upgrades are pushed onto server, and then redistributed in random time intervals. Then moment my machine IP matches time stamp, it would force an update check (via some internet protocol) and updater will automatically start on that.
Instead of that, translate NTP check to local time, and its safe to assume next:
- Moment updater prompts user for upgrades, save the prompt state. Save Servers Push Time in Local Prompt time.
- Start tick incrementer ( ever 2 h 30 min ) and track user interaction every 5 minutes for 15 minutes before 2 ,5 H and after 2.5 h.
- Check for conditions to met: User interaction is false for last 10 minutes (went to eat, toilet and so on) and job load decreases â implement user prompt. Trigger restart.
- If conditions arent met, wait for another tick.
- Notify user about changes.
Allow for time slot increments
Allow in software updater for user to specify time they wish to upgrade and restart entire stuff. Not on poweroff, not on login. They can specify time slot (around 30 ish minutes) where entire upgrade/restart cycle must be finished. This might require more detailed priority in upgrades, perhaps some UI/UX that can formualate queue ( for example, system first, security second, apps third and so on) and do them in batches.

