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