I like it. It makes sense to me. Each computer learns it's range and scales it to a "uniform" range. The users will know whether or not they scaled their own readings. It is left up to them to decide what they want and act accordingly. On 3/1/06, Robin L Darroch <robin@xxxxxxxxxxxxx> wrote: > > Whatever numbers are produced, regardless of all > >proscriptions against such behaviour, people are going to use them > >for comparison purposes, and then they are going to get mightily > >confused. In FreeBSD parlance, this would be a serious violation of > >POLA (Principle of Least Astonishment). > > Hi Brad, > > I think your principles are correct, but your conclusion is actually > counter to those principles. As you say, people are going to use > numbers to compare no matter what we tell them. Now lets look at two > scenarios for such a comparison: > > - warwalker Alice has a 12" iBook with Airport Extreme passive mode. > When she's parked right next to a router, she gets a raw strength of > 110. When a network is on the threshold of reception, she gets 60. > - warwalker Brian has a 17" PowerBook, also with Airport Extreme > passive mode. Sitting next to a router, he gets raw strength 150. > At the threshold of reception, he gets 70. > > 1) No scaling - existing raw numbers only: > > * Alice walks past the north side of a house, and gets a signal of 80. > * Brian walks past the south side of the same house, and gets a signal of 100. > * Alice and Brian compare notes. Since they both have computers > using Airport Extreme passive mode, they quite reasonably assume that > the numbers are comparable, and thus conclude that the router is > closer to the south side of the house than the north side. Imagine > their astonishment when they visit the occupants and find the router > sitting in one of the northern rooms! > > 2) Auto-scaling using the algorithm posted: > > * Alice walks past the north side of the house, and gets a scaled > strength of 41. > * Brian walks past the south side of the same house, and gets a > scaled strength of 38. > * Alice and Brian compare notes (although we told them not to) and > conclude that the router is closer to the north side of the house. > When they make the same visit, they admire how clever they were to > ignore our warnings. > > In this case, the POLA is actually to provide auto-scaling, not the > raw values KisMAC currently shows. > > However, I'm not sure you've understood my proposal as I intended it > (and I probably didn't explain it that well). The auto-scaling > should NOT happen the way the graphs are currently auto-scaled. The > graphs are (quite appropriately) scaled based on "what signal > strengths have I seen lately". By contrast, the scaling values for > signal strength will have to be auto-learned from the time when that > driver was first added to the list in KisMAC (i.e. "what signal > strengths have I seen *ever*"). This means that they increase in > accuracy in a logarithmic curve, very rapidly improving at first > (i.e. the first several networks scanned since installing the driver > will have rough and inaccurate scaled strengths, although still > relatively correct with respect to each other), then reaching the > point where the weakest and strongest signals ever seen probably > won't change much at all (because they'll have encountered - at least > once - the "right next to the router" and the "threshold of hearing" > situations). Essentially, KisMAC would always be learning, but after > the initial period of inaccuracy, it would be pretty close to the > mark. > > In some cases (e.g. the apartment where I live), the training would > be almost instantaneous: I have a network of my own, and there's > another network which the Airport can only just pick up from time to > time. If I ran KisMAC here, then later took it wardriving, my > auto-scaled strengths would be pretty close to the mark right away, > and would be far more comparable to anyone else's (reasonably > trained) auto-scaled strengths than any existing raw figures. > > Yes, it should be optional to turn it on, but I don't think the fact > that it might be used to make an inappropriate comparison is a reason > to exclude it from the program altogether: we already present data > that will give wildly inaccurate comparisons, and don't even warn > people that they shouldn't compare. The case I've given above goes > much more in favour of learned auto-scaling if Alice has a DWL-122 > instead of Airport Extreme (e.g. signals ranging from 5 to 50). In > that case, she'd have got a raw strength of 23 compared to Brian's > 100, and they would have figured that the router must be outside the > south wall of the house, or even across the street to the south, > which is a completely incorrect conclusion. If using auto-scaled > values, Alice would still have got 41. > > As for what to save in KisMAC's data files, that's another matter. > Perhaps with each network saved, save the raw signal strength, and > include an index number for what adapter picked it up, and then at > the end of the file list the adapter(s) installed when the file was > created (with some uniquely identifying number for each... MAC > address? BSSID?) and their current minimum and maximum signal > values. That way, the strengths can be displayed according to the > user's preference (i.e. raw or auto-scaled) on either the same > computer or another computer, while still allowing the scaling to > improve in accuracy with later learning on the original computer that > did the scan. > > Hmm... this is getting a bit big... but the more I think about it, > the more convinced I am that it would be a considerable improvement > to the current numbers we show - we just need to be sure to get it > right. > > This doesn't exclude the possibility of using dBm if/when we can > gather data on translating raw signals to dBm for all supported > adapters: just let the user choose - raw, dBm, or auto-scaled. > -- > > ------------------------------------------------------------------------- > Robin L. Darroch - PO Box 2715, South Hedland WA 6722 - +61 421 503 966 > robin@xxxxxxxxxxxxx - robin@xxxxxxxxxxx - robin@xxxxxxxxxxxxx > > >