70322ae3 |
1 | TODO list for agedu |
2 | =================== |
3 | |
4 | Before it's non-embarrassingly releasable: |
5 | |
f2e52893 |
6 | - cross-Unix portability: |
7 | + use autoconf |
8 | * configure use of stat64 |
9 | * configure use of /proc/net/tcp |
10 | * configure use of /dev/random |
11 | * configure use of Linux syscall magic replacing readdir |
12 | + later glibcs have fdopendir, hooray! So we can use that |
13 | too, if it's available and O_NOATIME is too. |
14 | * what do we do elsewhere about _GNU_SOURCE? |
15 | |
05b0f827 |
16 | - tweak the short options. I think dump files should be a |
17 | second-class feature in general, so that --dump and --load should |
18 | be represented by capital options. That leaves -d free to be |
19 | --depth, which I think is more generally useful. |
20 | * while I'm tweaking the options list, "[all modes]" ought to |
21 | say "[most modes]", due to --scan-dump. |
22 | |
23 | - New mode: --remove, to destroy the data file. Handy for |
24 | totally self-contained usage: "-s . -w -R". |
25 | |
5a29503d |
26 | - man page, --version. |
9d0b9596 |
27 | |
cfe942fb |
28 | Future possibilities: |
70322ae3 |
29 | |
1e8d78b9 |
30 | - IPv6 support in the HTTP server |
cfe942fb |
31 | * of course, Linux magic auth can still work in this context; we |
32 | merely have to be prepared to open one of /proc/net/tcp or |
33 | /proc/net/tcp6 as appropriate. |
1e8d78b9 |
34 | |
70322ae3 |
35 | - run-time configuration in the HTTP server |
36 | * I think this probably works by having a configuration form, or |
37 | a link pointing to one, somewhere on the report page. If you |
38 | want to reconfigure anything, you fill in and submit the form; |
39 | the web server receives HTTP GET with parameters and a |
40 | referer, adjusts its internal configuration, and returns an |
41 | HTTP redirect back to the referring page - which it then |
42 | re-renders in accordance with the change. |
43 | * All the same options should have their starting states |
44 | configurable on the command line too. |
45 | |
70322ae3 |
46 | - curses-ish equivalent of the web output |
47 | + try using xterm 256-colour mode. Can (n)curses handle that? If |
48 | not, try doing it manually. |
f2e52893 |
49 | + I think my current best idea is to bypass ncurses and go |
50 | straight to terminfo: generate lines of attribute-interleaved |
51 | text and display them, so we only really need the sequences |
52 | "go here and display stuff", "scroll up", "scroll down". |
f2e52893 |
53 | + Infrastructure work before doing any of this would be to split |
54 | html.c into two: one part to prepare an abstract data |
55 | structure describing an HTML-like report (in particular, all |
56 | the index lookups, percentage calculation, vector arithmetic |
57 | and line sorting), and another part to generate the literal |
58 | HTML. Then the former can be reused to produce very similar |
59 | reports in coloured plain text. |
70322ae3 |
60 | |
f2e52893 |
61 | - http://msdn.microsoft.com/en-us/library/ms724290.aspx suggest |
62 | modern Windowses support atime-equivalents, so a Windows port is |
373a02e5 |
63 | possible in principle. |
64 | + For a full Windows port, would need to modify the current |
65 | structure a lot, to abstract away (at least) memory-mapping of |
66 | files, details of disk scan procedure, networking for httpd. |
67 | Unclear what the right UI would be on Windows, too; |
68 | command-line exactly as now might be considered just a |
69 | _little_ unfriendly. Or perhaps not. |
70 | + Alternatively, a much easier approach would be to write a |
71 | Windows version of just the --scan-dump mode, which does a |
72 | filesystem scan via the Windows API and generates a valid |
73 | agedu dump file on standard output. Then one would simply feed |
74 | that over the network connection of one's choice to the rest |
75 | of agedu running on Unix as usual. |