bar width is finished. 2-18 px wide, default is 6.
[cpuHistory.git] / CPUMon.taskpaper
blob32aff11e63a9fd023b35b649bca52b01e18ed2e5
1 CPU Mon:
2 before 1.0 release:
3 - prefs: add an option for bar width: from 1 to 20 px per bar
4         - preferred: 4-6
5 - tidy up release notes, remove localizations if they're not accurate.
6 - before shipping: build a full deployment vers, and move prefs file beforehand: any last bugs/missing things
7 - write up app, release on blog and cbowns.com. need new domain? nah.
9 future:
10 - bugs:
11 - 1. app blows away graph
12         - happens until the CPU data buffer has been fully filled, and you hold down "restore defaults" through TWO timer firings, then it's fixed.
13         - diff CPU source against memory monitor:
14                 - any changes with data source being reset?
15 - 2. cmd-w doesn't close prefs window
16 - future upgrades:
17         - CPU usage across processors:
18                 - get # of processors with http://www.cocoadev.com/index.pl?NSProcessInfo
19                 - add another graph
21 Mem -> CPU conversion key:
22 - wired = user
23 - active = sys
24 - inactive = nice
25 - free = idle
28 Archive:
29 - get it to build @done @project(CPU Mon)
30 - make another pass through the source to take out extraneous references to CPUUsage @done @project(CPU Mon)
31 - check TODOs @done @project(CPU Mon)
32 - how to do data update: make a large float array with my usage data in it, use a rolling pointer to update things. store new data from current cpu stats. @done @project(CPU Mon)
33         - is that how the current and last stuff is built? @done @project(CPU Mon)
34 - in other words, I need to pass the pointer by reference so I can modify its value (ie the memory it points to). keep in mind, someone has to clean up after the old memory. @done @project(CPU Mon)
35 - memory leak: vm_deallocate the processorInfo array after use: @done @project(CPU Mon)
36 - methods needed: @done @project(CPU Mon)
37         - updateCPUStat: what do we want to accomplish here? @done @project(CPU Mon)
38                 - get current data @done @project(CPU Mon)
39                 - retrieve data at last refresh @done @project(CPU Mon)
40                 - subtract last from current @done @project(CPU Mon)
41         - init: init the processor usage data: set the first "lastProcessorInfo" array so update is all good to go. @done @project(CPU Mon)
42         - getCurrentData @done @project(CPU Mon)
43                 - return last data @done @project(CPU Mon)
44         - getNext: @done @project(CPU Mon)
45                 - run update @done @project(CPU Mon)
46                 - set ptr new data @done @project(CPU Mon)
47                 - update internal ptrs @done @project(CPU Mon)
48         - getPrev @done @project(CPU Mon)
49                 - return one before last? @done @project(CPU Mon)
50 - variables needed: @done @project(CPU Mon)
51         - CPUData array @done @project(CPU Mon)
52         - lastProcessorInfo (for diffs) @done @project(CPU Mon)
53         - numLastProcessorInfo (to deallocate it) @done @project(CPU Mon)
54         - two variables to track size, location in array @done @project(CPU Mon)
55 - notes: need TWO refreshes at init to get current info! @done @project(CPU Mon)
56                 if(lastProcessorInfo) {
57                         size_t lastProcessorInfoSize = sizeof(integer_t) * numLastProcessorInfo;
58                         vm_deallocate(target_task, (vm_address_t)lastProcessorInfo, lastProcessorInfoSize);
59                 }
61                 lastProcessorInfo = processorInfo;
62                 numLastProcessorInfo = numProcessorInfo;
63         - first test data coming out of cpu info with logs (this might hurt. limit to one sample every 2 sec) @done @project(CPU Mon)
64         - test with xcode debugger to watch array data change. @done @project(CPU Mon)
65         - paging rate graph @done @project(CPU Mon)
66 - switch the source of the graph from memory info to CPU info: @done @project(CPU Mon)
67         - then change graphing fct to pull from different data source @done @project(CPU Mon)
68         - text overlay @done @project(CPU Mon)
69 - change app name to CPU History @done @project(CPU Mon)
70 - reorder bars: sys, nice, user, idle @done @project(before any polish)
71 - test prefs: change in Memory Monitor, see if app picks them up @done @project(before any polish)
72 - properly set Dock icon @done @project(before dinner)
73 - fix Dock menu display @done @project(before dinner)
74 - if we can't make CPUInfo object, exit app gracefully @done @project(before dinner)
75         - finish commenting out variables and outlets @done @project(before 1.0 release)
76                 - prefs.h @done @project(before 1.0 release)
77                 - prefs.m @done @project(before 1.0 release)
78         - what is this transparency vestigal crap? @done @project(before 1.0 release)
79         - relink nib to new variables @done @project(before 1.0 release)
80         - initialize colors to different values than MemMonitor defaults @done @project(before 1.0 release)
81         - delete prefs file and start over: any errors reading new values? @done @project(before 1.0 release)
82         - try building it… @done @project(before 1.0 release)
83 - get rid of extraneous properties, and relink stuff in IB @done @project(before 1.0 release)
84 - make a color change backwards applicable: somehow redraw entire graph after prefs color change @done @project(before 1.0 release)
85         - call updateGraph after prefs change @done @project(before 1.0 release)