Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
50 most recent check-ins
|
2026-06-29
| ||
| 15:01 | Removed per-page progress bars. Merged all processing progress into one bar, since total processing progress is the only interesting metric. leaf check-in: 64c7217184 user: thomas tags: scan_adf_asyncio | |
|
2026-06-28
| ||
| 19:26 | Automatically determine if scans are complete. Improved output a bit. Should be usable now. check-in: 49f36679ec user: thomas tags: scan_adf_asyncio | |
| 18:38 | Compute the total number of pages beforehand. Remove some debug output check-in: 2a9b779524 user: thomas tags: scan_adf_asyncio | |
| 17:38 | Adjusted scanimage handling for non-interactive ADF use, avoiding exceptions and crashes check-in: aebddb2c30 user: thomas tags: scan_adf_asyncio | |
| 16:59 | Rewritten scan_adf to use asyncio and ported to pure Python. Ported features from scan_flatbed: The fine-grained command pipeline and concurrent optipng execution. Not ported is the async file watching. Each user-accepted scan() result is pushed into the file processing queue. With this, in duplex mode, processing of odd pages can begin as soon as the user confirms success. The CPU can work on the odd pages while the scanner works on the even pages. check-in: aabd641bf6 user: thomas tags: scan_adf_asyncio | |
| 15:33 | Begin porting scan_adf to pure Python + asyncio check-in: 5341080678 user: thomas tags: scan_adf_asyncio | |
| 14:19 | scan_flatbed: Ported to pure Python. Reworked the script, maximizing concurrent CPU use, and adding progress reporting. leaf check-in: 1128b8ce4e user: thomas tags: trunk | |
| 14:17 | Implement concurrent PNG optimization using optipng. closed check-in: f5e57af8f1 user: thomas tags: scan_flatbed_with_progress_report | |
| 14:13 | Fully concurrent optipng optimization. Each try is scheduled individually, and a minimum search processes them as they complete. This maximizes concurrent CPU use and minimizes wall time use. closed check-in: b99d8a9c1d user: thomas tags: concurrent_optipng_optimization | |
| 13:04 | Specify the parameter combinations for all optipng -o levels check-in: 83249b8fb5 user: thomas tags: concurrent_optipng_optimization | |
| 09:26 | Add the imagemagick deskew filter and a command line switch to enable it check-in: 9734fe5447 user: thomas tags: scan_flatbed_with_progress_report | |
| 09:17 | Port scan_flatbed to pure Python. Run scanimage through asyncio and parse its output to provide a nice progress bar check-in: 0a6167bc04 user: thomas tags: scan_flatbed_with_progress_report | |
| 09:15 | Removed debug print statements closed check-in: 2935544a5e user: thomas tags: scan_flatbed_scanimage_through_asyncio | |
| 09:04 | Ported scan_flatbed to pure Python. Something in the Python subprocess standard library triggers xonsh shell mode, crashing the process. check-in: e39a5b5ad0 user: thomas tags: scan_flatbed_scanimage_through_asyncio | |
| 08:43 | Handle delay between Starting a scan and progress reports beginning to arrive. check-in: 538f2b1a0a user: thomas tags: scan_flatbed_scanimage_through_asyncio | |
|
2026-06-27
| ||
| 23:46 | Improve a comment check-in: e9a2e8f4f0 user: thomas tags: scan_flatbed_scanimage_through_asyncio | |
| 23:43 | Fix scanimage progress bars. Remove no longer required SCANNER_RUNNING global variable. Remove the obsolete print_() function, because printing through tqdm is now always possible. check-in: b0539e3059 user: thomas tags: scan_flatbed_scanimage_through_asyncio | |
|
2026-06-25
| ||
| 19:19 | Run scanimage as an asyncio subprocess. Use stdin=sys.stdin to relay control to the process. Parse and print the output check-in: 953e40174b user: thomas tags: scan_flatbed_scanimage_through_asyncio | |
| 18:01 | Fixed optipng progress reporting check-in: 4c1908e4a2 user: thomas tags: scan_flatbed_with_progress_report | |
|
2026-06-24
| ||
| 20:55 | Fixed the deadlocks caused by the tqdm lock. Status reporting for optipng calls via asyncio is broken, but all the other weirdness is gone. check-in: e2c90fe8e0 user: thomas tags: scan_flatbed_with_progress_report | |
| 18:12 | Use a syslog() call shim if it exists, to suppress excessive syslog abuse inside the hplip network code check-in: 14ba924926 user: thomas tags: scan_flatbed_with_progress_report | |
| 18:06 | Additional debug print statements check-in: 3b572ec4e3 user: thomas tags: scan_flatbed_with_progress_report | |
|
2026-06-19
| ||
| 15:30 | Port postprocessing code to coroutines check-in: 724ad9e0b6 user: thomas tags: scan_flatbed_with_progress_report | |
| 15:16 | Minor refactorings check-in: 83df3e4ba6 user: thomas tags: scan_flatbed_with_progress_report | |
| 15:11 | Split file creation detection into a dedicated task, and use a queue to move the file to main() for task creation check-in: 19c27bdfa7 user: thomas tags: scan_flatbed_with_progress_report | |
| 12:17 | Handle optipng levels -o0 and -o1, which do not output \t characters, preventing busy-waiting deadlock check-in: fe7ef6149a user: thomas tags: scan_flatbed_with_progress_report | |
| 11:54 | Move watcher closure to the end of main(). This allows using asyncio.gather() check-in: ef7ccc5282 user: thomas tags: scan_flatbed_with_progress_report | |
|
2026-06-15
| ||
| 14:27 | Reorder file watcher closure and hide the progress bars while scanimage runs. Include the imagemagick runtime in the per-page progress bar as a single step. Use some asynchronous waiting to allow clean watcher tear-down. check-in: 7b7fbcd7db user: thomas tags: scan_flatbed_with_progress_report | |
| 10:16 | Attempt at routing scanimage output through tqdm, so that scanimage output can be shown alongside the tqdm progress bars. This flickers a lot and hangs at exit check-in: abe5cb3701 user: thomas tags: scan_flatbed_with_progress_report | |
| 09:12 | scan(), scan_simplex(): Remove output value, because it is unused and isn't accurate when scan runs a long time. The async background progressing removes the files scan() counts as it processes the raw input files. So it misses all those where processing finished while scanimage still runs. check-in: e23d45f506 user: thomas tags: scan_flatbed_with_progress_report | |
| 09:06 | Moved the creation of the outmost progress bar into main() check-in: 1b2a8722d5 user: thomas tags: scan_flatbed_with_progress_report | |
| 08:43 | WIP implementation using tqdm to report optimization progress. This currently collides with the scanimage output while it runs check-in: cf9af2976d user: thomas tags: scan_flatbed_with_progress_report | |
|
2026-06-14
| ||
| 18:50 | scan_adf.xsh: Minor cleanups check-in: c0730dea70 user: thomas tags: trunk | |
|
2026-06-11
| ||
| 12:47 | dyndns/read_external_ip.py: Support multiple interfaces by making the loaded configuration file section configurable via the new --section argument. check-in: 48da6e6581 user: thomas tags: trunk | |
| 12:31 | Python 3.13 compatibility fix check-in: d661289b86 user: thomas tags: trunk | |
| 12:27 | dyndns/read_external_ip.py: Refactored main() logic a bit. Also pass the SectionProxy to reader functions to only read the relevant config section once check-in: 2080fdce79 user: thomas tags: trunk | |
| 12:16 | dyndns/update_dyndns.xsh: Handle remote errors and try again every 10s for up to 36000s (10h). check-in: 97a6cf9a34 user: thomas tags: trunk | |
|
2026-06-09
| ||
| 16:20 | scan_adf.xsh: Set the outer progress bar unit to "page", from the default "it" check-in: 90853ca381 user: thomas tags: trunk | |
| 16:18 | scan_adf.xsh: Implement per-file image compression progress reporting. check-in: 0d8a830132 user: thomas tags: trunk | |
|
2026-06-08
| ||
| 19:12 | scan_adf.xsh: Use tqdm for progress bars, both for filtering using imagemagick and shrinking with optipng. check-in: b8d76ea972 user: thomas tags: trunk | |
| 19:07 | scan_flatbed.xsh: Replace deprecated asyncio library calls with Python 3.16-compatible calls check-in: 1bc8ba68ca user: thomas tags: trunk | |
| 18:35 | DynDNS updater: Fixed issues raised by the linter check-in: 3bb1429173 user: thomas tags: trunk | |
| 18:16 | DynDNS updater: Fixed issues raised by the linter closed check-in: f06796258d user: thomas tags: bogus | |
|
2026-06-02
| ||
| 18:47 | Add a Let's Encrypt certbot renewal systemd service and timer check-in: a0fca2c73d user: thomas tags: trunk | |
| 18:46 | Reworked the network webcam script. check-in: fdce316767 user: thomas tags: trunk | |
| 18:45 | dl-manhwaread.py: Remove explicit chapter numbers, as those are already part of each title closed check-in: b9c4957495 user: thomas tags: refactor_network_webcam | |
|
2026-05-24
| ||
| 15:13 | DynDNS: Add script to read external IP addresses for OpenWRT hosts running behind a FritzBox gateway check-in: 6d8037b72c user: thomas tags: trunk | |
| 08:44 | Fix dyndns script check-in: e2bb80dec9 user: thomas tags: trunk | |
|
2026-05-22
| ||
| 13:39 | dyndns/update_dyndns.xsh: Made the network interface configurable via the config file check-in: 3693540853 user: thomas tags: trunk | |
|
2026-05-21
| ||
| 17:57 | dyndns/update_dyndns.xsh: End the IP address cache file with a newline check-in: a7d4a875dc user: thomas tags: trunk | |