Commit | Line | Data |
4536f655 |
1 | Stem Development TODO List |
2 | |
3 | Feel free to tackle any of these tasks. Email uri@stemsystems.com if you |
4 | want design/code ideas or to discuss any of these projects. |
5 | |
6 | Last edited Fri Jan 16 17:07:14 EST 2004 |
7 | |
8 | Stem::Event::* |
9 | |
10 | Add support for more event loops (Tk, Qt, tcl, WxWindows, |
11 | POE). See Stem::Event::EventPM for an example of how to wrap an |
12 | event loop in Stem. |
13 | |
14 | Stem::Msg, Stem::Route |
15 | |
16 | enable tracing of delivered messages |
17 | |
18 | basic source routing needs design work. new client hubs will |
19 | flood upstream who they are. master servers can respond |
20 | downstream which will create a fully aware tree networks. |
21 | |
22 | add support for a forward. it takes a message, clones it and |
23 | changes the to address. |
24 | |
25 | maybe move Stem::Route to Stem::Msg::Route. it is only used by |
26 | Stem::Msg and that better describes its name. |
27 | |
28 | Stem::Portal |
29 | |
30 | finish and test Portal forking |
31 | |
32 | maybe convert to use Class clone/piped support. not sure if this |
33 | is reasonable or worth it. |
34 | |
35 | Stem::Log |
36 | |
37 | add support for single method ref to do all the filtering. it is |
38 | passed the log entry and is a stem::log::entry object. it can |
39 | call all the action methods. there is no need for the current |
40 | design of a list of key/values. it will be deprecated. |
41 | |
42 | timestamp is set with a template (strftime like but numbers only). |
43 | |
44 | add timer based filters. single shot cron entries to toggle |
45 | state are fine. but how do you set the state at startup? if it |
46 | is between start and end times, the filter should be |
47 | enabled. this needs design work. |
48 | |
49 | define and add more actions |
50 | |
51 | email |
52 | msg |
53 | |
54 | run_stem |
55 | |
56 | write up run_stem man page in pod |
57 | |
58 | write tech notes for run_stem |
59 | |
60 | Stem::Proc |
61 | |
62 | needs much more testing |
63 | |
64 | test pseudo tty |
65 | |
66 | Stem::File |
67 | |
68 | (some of this is done. a good simple project to pick up) |
69 | |
70 | design parent cell and how it spawns targeted file cells. |
71 | |
72 | code file stem based transfer stuff. |
73 | |
74 | add file compare options - size, timestamp, MD5 |
75 | |
76 | add single directory support. |
77 | filename filters |
78 | |
79 | add dir tree copy support |
80 | |
81 | add throttle support? don't want to slurp entire large file in |
82 | and clog the system. throttle with reply messages and/or timing |
83 | |
84 | add support for ftp and scp |
85 | |
86 | Stem::Util |
87 | |
88 | replace read_file/write_file with File::Slurp. might as well eat |
89 | my own dog food. this needs to be added to the required modules |
90 | list in Build.PL |
91 | |
92 | Stem::Expect |
93 | |
94 | use proc or socket and use async IO |
95 | |
96 | hook in Stem::Cell::Flow |
97 | |
98 | expect handles timeouts from async IO. then it drives the state |
99 | machine with a timeout method. regular input is sent to the |
100 | state machine as data. |
101 | |
102 | if no input matches but not timed out yet, we wait for more |
103 | input or the timeout. |
104 | |
105 | do we need code callbacks? i think the higher level object |
106 | (protocol::ftp?) would want callbacks itself in some cases. |
107 | |
108 | Testing |
109 | need tests for higher level cells. |
110 | |
111 | need load testing of various subsystems. |
112 | |
113 | need cross platform testing. |
114 | |
115 | Documentation |
116 | |
117 | full pods for all modules |
118 | |
119 | accurate docs for all class fields. this can be autogenerated |
120 | from the $field_info lists. we could parse only that code out |
121 | easily and eval the string. the either edit the internal pod or |
122 | some other text file. it would generate a nicely formatted |
123 | description of all the class fields. |
124 | |
125 | Tracing |
126 | |
127 | mark by name which message is currently being delivered |
128 | |
129 | use the hub/cell/target in the 'to' address. |
130 | |
131 | any newly dispatched messages get a from/origin of that to |
132 | |
133 | just copy the to? |
134 | |
135 | fix registry lookup by object to get cell/name and target |
136 | |
137 | save current event cell name and target |
138 | |
139 | create trace file to be written by events and message delivery |
140 | (or dispatch?) |