To-Do List
By now, PIKT's outlines are pretty much settled. We don't foresee drastic changes being made to the script language (at the surface level), or to the configuration file and management systems. If PIKT changes beyond this point, it will be by the addition of new features, and by a reworking of the underlying plumbing.
There is much more work still to be done. A proposed to-do list follows. No doubt you can suggest many more features and improvements beyond those listed here.
- Implement A GUI interface for managing incoming alerts.
- Develop a "standard library" of PIKT macros, scripts, and data sets for use with any supported OS.
- Develop a comprehensive security package (scripts and data objects).
- Write a competing Pikt script interpreter, for example, "piktg", a GNU Guile-based script interpreter; or "piktperl", using embedded Perl; or a Python-based "piktpy". In general, achieve better Perl and Python integration.
- Develop a Perl module giving that language the benefit of several Pikt features (e.g., %foo and references).
- Add internationalization, giving non-English speakers the option of using non-English prompts and error messages.
- Implement user-definable functions (perhaps kept in a new configuration file, functions.cfg).
- Replace RPC with a different network transport mechanism.
- Introduce logical expressions in #ifdef's (e.g., #ifdef cautious | worried | paranoid).
- Write PIKT configuration management utilities, especially utilities to auto-generate portions of the PIKT configuration or otherwise ensure their up-to-dateness and completeness.
- Devise a system for better control over repeating alerts ("nagmail"), possibly taking the form of a separate mail filter program.
- Allow for concurrent piktc operations, especially for command execution ('piktc -x' and 'piktc -X'). (piktx makes concurrent command execution possible, and from any PIKT system, master or slave.)
- Use public key encryption in the host authentication scheme.
- Offer additional ciphers besides Blowfish.
- Implement total, end-to-end encryption of all PIKT master-slave, piktc-to-piktc_svc communications.
- Solve any problems involving 64-bit systems interacting with 32-bit systems.
- Make piktc_svc invokable optionally via inetd.
- Implement user-customizable alert mail templates.
- Develop proc tests, similar to the file tests (-f, etc.).
- Implement a better #pid() and #ppid().
- Extend the #split() function to encompass columnar fields.
- Add date/time stamping to stderr output whenever a command is exec'ed, $command()'ed or #system()'ed (although maybe not, because this makes it easier to identify them within log files).
- Add new functions, especially at a deeper systems level.
- Perfect the pikt language parser (hah!).
- Make some obscure parser error messages more informative.
- Optimize the script interpreter for speed.
- Introduce parser error recovery, to allow reporting of all parse errors, not just the first one per file.
- Revise debugging (using sendmail as a model).
- Port to other platforms.
- Write an Operations Guide.
- Write man/info pages.
- And still lots more...