47 lines
1.5 KiB
Plaintext
47 lines
1.5 KiB
Plaintext
STUDY SYSTEM
|
|
|
|
GOALS
|
|
|
|
1. Support consistent and balanced study across multiple subjects
|
|
2. Help prioritize what to study when time/energy is available
|
|
3. Low friction of usage
|
|
4. Apply cybernetic principles to self-directed education
|
|
|
|
NON-GOALS
|
|
|
|
1. Setting targets for time spent studying
|
|
2. Measuring effectiveness of studies
|
|
3. Simplicity of set-up for non-technical users
|
|
4. Reading mail
|
|
|
|
CORE FEATURES
|
|
|
|
Priority System:
|
|
|
|
- Prioritized list of potential study activities
|
|
- Separate tracking of reading and exercises
|
|
- Neglected subjects increase in priority
|
|
- Balance maintenance between reading and exercises
|
|
|
|
Study health monitoring:
|
|
|
|
- Subject-level algedonic signals indicating consistency and
|
|
balance between reading and exercises
|
|
- System-wide algedonic signal indicating balance across subjects
|
|
|
|
IMPLEMENTATION DECISIONS
|
|
|
|
- Client/server to enable consistency across multiple devices
|
|
- Simple over-the-wire protocol so that future client
|
|
implementations for different platforms are feasible
|
|
(e.g. Android app)
|
|
- TCP with TLS for persistent connection
|
|
- Client authentication via certificates (mTLS) for simplicity of
|
|
implementation and security
|
|
- Server implementation in Erlang/OTP as it's very cool and I want
|
|
more practise with it
|
|
- ASN.1/DER for message serialization as it's flexible and reasonably
|
|
compact and has good Erlang integration
|
|
- Native Linux client because I hate the web
|
|
- Client implementation in GTK+Vala because it's boring
|