<commit_before>TODO list
=========

Design questions
----------------
- tail of log ... how to do that

Generic
-------
- SSL (optional) for protecting console-server channel
- core dump enabled launch/kill
- Unify & document sys.exit codes 
- Reload/reset command (restarting ramona server)
- [program:x] disabled=true options + console command enable/disable to allow change status during runtime
- [tool:x] support
- Restart of failed program (configurable)

Windows
-------
- working on Windows (based on pyev / libev?)
- daemonizing is not available on Windows - provide Windows Service option instead

Console
-------
- ramonactl is embeddable in custom python app + it is extendable to provide similar functionality as 'pan.sh':

```python
class MyConsoleApp(ramona.console_app):
	pass
	# Add 'unittest' option ...
	# Add 'floader' option ...
```

Logging
-------
- Support for SIGHUP (reopen log files OR reset fully)
- log rotate
- log rotate of Ramona server log (stdout/stderr redirection)

Configuration
-------------
- configuration files - app.conf & site.conf - describe differences, implement
- includes in config files
- optional alterative configuration for environment variables: https://github.com/ateska/ramona/issues/2
- environment variables expansion in configuration

Watchdog
--------
- watchdog functionality (child process is signaling that is alive periodically)

Python specific
---------------
- native python program execution (using sys.executable)
- python version (minimal) check

Error reporting
---------------
- Scan output streams of the program for keywords (by default 'error', 'fatal', 'exception') and send email when such event occurs

Mailing to admin
----------------
- Mailing issues to admin: https://github.com/ateska/ramona/issues/1

HTTP frontend
-------------
- Tail log
- Store static files in a way that setuptools and py2exe will work correctly. See: http://stackoverflow.com/questions/1395593/managing-resources-in-a-python-project
- (medium prio): Basic authentication
- (low prio): HTTPS<commit_msg>Adding new TODOs regarding application names<commit_after>TODO list
=========

Design questions
----------------
- tail of log ... how to do that

Generic
-------
- SSL (optional) for protecting console-server channel
- core dump enabled launch/kill
- Unify & document sys.exit codes 
- Reload/reset command (restarting ramona server)
- [program:x] disabled=true options + console command enable/disable to allow change status during runtime
- [tool:x] support
- Restart of failed program (configurable)

Windows
-------
- working on Windows (based on pyev / libev?)
- daemonizing is not available on Windows - provide Windows Service option instead

Console
-------
- ramonactl is embeddable in custom python app + it is extendable to provide similar functionality as 'pan.sh':

```python
class MyConsoleApp(ramona.console_app):
	pass
	# Add 'unittest' option ...
	# Add 'floader' option ...
```

Logging
-------
- Support for SIGHUP (reopen log files OR reset fully)
- log rotate
- log rotate of Ramona server log (stdout/stderr redirection)

Configuration
-------------
- Application name in configuration (general)
- configuration files - app.conf & site.conf - describe differences, implement
- includes in config files
- optional alterative configuration for environment variables: https://github.com/ateska/ramona/issues/2
- environment variables expansion in configuration

Watchdog
--------
- watchdog functionality (child process is signaling that is alive periodically)

Python specific
---------------
- native python program execution (using sys.executable)
- python version (minimal) check

Error reporting
---------------
- Scan output streams of the program for keywords (by default 'error', 'fatal', 'exception') and send email when such event occurs

Mailing to admin
----------------
- Mailing issues to admin: https://github.com/ateska/ramona/issues/1

HTTP frontend
-------------
- Use application name from configuration in page title (title tag and h1 tag too)
- Tail log
- Store static files in a way that setuptools and py2exe will work correctly. See: http://stackoverflow.com/questions/1395593/managing-resources-in-a-python-project
- (medium prio): Basic authentication
- (low prio): HTTPS
{'fraction_non_alphanumeric': 0.13430042115114646, 'fraction_numerical': 0.004913430042115114, 'mean_word_length': 3.253731343283582, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6561032', 'n_tokens_mistral': 1122, 'n_tokens_neox': 1088, 'n_words': 461}