# Wikipedia:Reference desk/Archives/Computing/2011 August 9

Computing desk
< August 8 << Jul | August | Sep >> August 10 >
Welcome to the Wikipedia Computing Reference Desk Archives
The page you are currently viewing is an archive page. While you can leave answers for any questions shown below, please ask new questions on one of the current reference desk pages.

# August 9

## Cell phone without a baseband processor

Are there cases of where a cell phone (smart or otherwise) does not use a separate processor/CPU for managing its radio (i.e., there would only be the application processor and no separate firmware)? --Melab±1 00:47, 9 August 2011 (UTC)

Very early mobile telephones did not even have any software at all. Depending on what you want to count as a "cellular" telephone, many did not even contain digital electronics - for example, early "1G" technology was purely analog. (Okay - the pedantic details are nagging at me: 1G mobile phones probably had a computer and did have some digital signalling for network control - but pre-1G analog radio telephony did not have any digital or software-controlled signalling). The transition to modern multi-CPU computerized radiophones has been gradual. Nimur (talk) 02:45, 9 August 2011 (UTC)
I read on some forum that some of Nokia's phones running Symbian don't have a baseband processor (although whoever said it may have been confused; he referred to phones with a separate baseband processor as being "dual core"—maybe not the right terminology). Just to clarify this for anyone else who responds, when I say "without a separate baseband processor", I mean that the radio is controlled by the application processor; I am not referring to SoCs that have integrated baseband processors (they would still have a baseband processor). --Melab±1 15:16, 9 August 2011 (UTC)
I think what you mean to say is "... the radio firmware and the application software reside in the same address space." It is also possible that you may mean "...the radio control software time-shares a single execution pathway with the application software." Conceivably, you may also mean "...the radio is controlled by electronics that are packaged in the same piece of plastic as the application software controller." There are certainly some devices that satisfy any or all of these criteria; but probably none are commercially available "cellular telephone" devices. This approach would be difficult to design using competitively-available electronics parts; and this design unnecessarily exposes the radio to serious fatal errors in application-software. Separation of function is more common. In any case, the radio is still controlled by the application processor; but, the commands take the form of higher-level software signals that are interpreted by the radio-control firmware. How else might you want to control the radio? Do you want to directly specify signal waveforms? (If so, no commercially available telephone device can do that). Nimur (talk) 18:32, 9 August 2011 (UTC)
The second option. The application processor is the only major processor (I consider the baseband a major processor, in this case). I read here that in the HTC Desire Z/T-Mobile G2, the baseband boots up first and operates independently of the Android firmware. My ideal setup is a single firmware installation controls everything. I would like this because you would be able to completely customize the software (depending on whether or not there are hardware-based signature checks). Also, I prefer a singular set of controlling firmware. --Melab±1 01:01, 10 August 2011 (UTC)

## Identify a satellite-view or bird's-eye-view image?

File:90 intersection.JPG is claimed as an own work, but it looks to me as if it's a screenshot of some website that provides bird's-eye views or satellite views. Any idea of the source? It's not Google Satellite or the bird's-eye-view on Bing; I don't have Google Earth, and I'm not familiar with other programs, so I can't give any more ideas. The location is 41°49′40″N 80°45′56″W﻿ / ﻿41.82778°N 80.76556°W. Nyttend (talk) 04:44, 9 August 2011 (UTC)

You can ask him. General Rommel (talk) 07:13, 9 August 2011 (UTC)
I'm pretty sure that's not satellite. That was taken from an aircraft. Have you considered the possibility that user:Route11 owns an airplane? It's pretty easy to take photos like that if you own a plane. APL (talk) 08:38, 9 August 2011 (UTC)
That was my initial thought (I was in a light airplane myself yesterday), but the image itself was very much unlike any photos I've seen: it has a vaguely computer-generated feel to it, similar to that of Bing's bird's-eye-view. Nyttend (talk) 12:55, 9 August 2011 (UTC)
Based on the positions of the cars its from Wikimapia ( http://www.wikimapia.org/#lat=41.827778&lon=-80.765556&z=16&l=0&m=b ) Kellhus (talk) 13:03, 9 August 2011 (UTC)
Actually, looking again its the same image that Googlemaps uses (cars are identical) its just been tilted Kellhus (talk) 13:06, 9 August 2011 (UTC)
That specific imagery is provided by DigitalGlobe (see the copyright on the mapping services pages). I seriously doubt that some random Wikipedia user owns the DigitalGlobe copyright and is releasing that copyrighted work to the public domain. -- kainaw 13:10, 9 August 2011 (UTC)
I marked the image as "disputed" and left a note with the author. -- kainaw 16:54, 9 August 2011 (UTC)

It was off google earth but, I did not know what to upload it under, so I uploaded under own work. I know I shouldn't of done that. Is there any way to upload it diifferent?SR11 (talk) 14:07, 10 August 2011 (UTC)

No. It cannot be uploaded. It is copyrighted by DigitalGlobe. Unless you get them to release it to public domain, they own it. Just because Google paid licensing to allow you to see it in Google Earth doesn't mean that you now have the right to distribute it to other repositories. -- kainaw 14:20, 10 August 2011 (UTC)
I've marked the image as a copyvio, and it is to be hoped that it will be deleted ASAP. --Tagishsimon (talk) 14:24, 10 August 2011 (UTC)

## Starting programs via Run

In WindowsXP if I write "firefox" in the Run box in Start Menu, Firefox starts. Why? How can I do the same with Total Commander? — Preceding unsigned comment added by 109.74.50.52 (talk) 07:02, 9 August 2011 (UTC)

Firefox's executable is firefox.exe, which is in your computer's path. If you know TC's executable's name, then the same will (probably) work. For WindowsXP, start the task manager, select the Application Tab, click ONCE on TC's icon, right click and select "Go To Process". This will show the processes's name. CS Miller (talk) 08:00, 9 August 2011 (UTC)
You meant to link PATH (variable). I think it's more likely that firefox is not in the search path, but is listed in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths in the registry. Adding it to the search path might be a solution to the OP's problem. You can do this by pressing Win+Pause, going into "advanced settings" and clicking the "environment variables" button, finding the one named "Path" and double-clicking it, and adding C:\Program Files\Mozilla Firefox (or whatever) to the end separated by a semicolon. You may have to log out and in again to see the change. -- BenRG (talk) 17:47, 9 August 2011 (UTC)

This can help you set up any program to be accessible via Run AvrillirvA (talk) 11:41, 9 August 2011 (UTC)

## Name of open internet group?

I remember seeing a video interview a while back with someone who was talking about his organization's efforts to promote the use of peer-to-peer and anonymity technologies to create a more open form of internet than the current government/corporate controlled system. I'm not sure about the technologies they intend to use, but the gist that I got was that instead of routing traffic through centralized telecom carriers, internet traffic would be routed via a p2p wireless mesh network. I'm trying to find the name of this group, or perhaps groups that are working on something similar. Anyone here ever heard of this group? What is the name of the organization? Thanks. -- Jrtayloriv (talk) 18:01, 9 August 2011 (UTC)

.p2p perhaps? --Melab±1 18:25, 9 August 2011 (UTC)
Perhaps you heard about Tor (anonymity network) ? TheGrimme (talk) 19:22, 9 August 2011 (UTC)

## functions of a function

Hi. In a computer algebra system such as mathematica or sage, suppose I define H() to be the Heaviside function, and the ask the system to evaluate ${\displaystyle x=H(1+(f(3))^{2})}$, where f() is a very complicated, massively expensive and difficult function. A human is clever enough to know straight off that x=1. But is mathematica or sage clever enough to know this without evaluating f()? Another example might be to establish whether ${\displaystyle n=2^{10000000}-1}$ is prime. I know that it isn't, but would a computer have to evaluate n first, *then* check it for primality? I am not sure exactly what I'm asking here; I guess I'm asking what the computer science term for "knowing enough about H() to avoid having to evaluate its argument exactly". Yours in confusion, Robinh (talk) 20:50, 9 August 2011 (UTC)

Formally, that is called short-circuit evaluation: recognizing that, due to the structure of a sub-expression, full evaluation is unnecessary. This saves a lot of compute-time, and is used by many compiler and optimization algorithms. I am not aware of any computer algebra systems that can deduce the specific sort of expression short-circuiting that you listed above; but I'm not a CAS expert by any means. However, I do know a bit about compiler internals, and I can tell you that the correct implementation of short-circuit evaluation is both (i) very ugly; (ii) prone to unintuitive side-effects, even if they are logically valid; and (iii) exacerbated by bugs in code and/or bugs in the compiler. Just yesterday I was reading the LLVM Blog, and came across "What Every C Programmer Should Know about Undefined Behavior", which contains some pathological examples of short-circuit evaluation of C code. C syntax is different from the allowable syntax of a CAS system input; consequently, the theory and practice of static analysis in C is much simpler than that of a CAS language. But the same general ideas apply: if the C-compiler / CAS interpreter determines that a sub-expression always evaluates to a known value, the evaluation code can be replaced with a hard-coded constant.
You may find Evaluation strategy and Formal grammar helpful in understanding how we design such "smarts" into an interpreter for a CAS. You might also find this list of other optimization techniques interesting; and in particular, Partial redundancy elimination (PRE), also known as "Expression Elimination" (EE); or the related, "Common subexpression elimination" (CSE). Nimur (talk) 21:06, 9 August 2011 (UTC)
There is no general approach to determining the properties of functions. For any interesting property a function expressed in a Turing-complete language can have ("interesting" can be defined quite broadly) it's not possible to decide whether a particular function has that property. Therefore, there is no general way to "examine" a function that is any better than just evaluating it.
Of course, there exist many optimizations that compilers can and do perform — the undecidability result just means that sometimes they'll miss a place where the optimization can be performed. But the properties are generally far simpler than things like "results in a value {above/below} x for input {above/below} y" (given that you need to figure out relevant values of x and y first). It's much faster to leave that stuff, which can really benefit from intuition, to the humans. Paul (Stansifer) 22:42, 9 August 2011 (UTC)
(OP) thanks guys, some interesting links. I like Stansifer's comment about undecidability above. But it strikes me that it might be possible to "catch" lots of short-cuts by "evaluating" subexpressions in the laziest (ie easiest) way possible. For example, evaluating ${\displaystyle 1+(f(x))^{2}}$ sage would first observe that the answer is real, then non-negative, then positive, then greater than or equal to 1, then maybe some other result such as ${\displaystyle \in [1,14]}$, and only then proceed to actually find the exact answer. Then it could pass each result in turn to H() and find that the first two aren't good enough, but the third *is* good enough. So it stops there, never having to actually evaluate f() exactly. I see that no scheme can catch every possible simplification. But surely a system like this one could catch a good number of them, and save a lot of time. Or is this a hopelessly optimistic approach and even a rudimentary implementation would be AI-hard? Robinh (talk) 01:38, 10 August 2011 (UTC)
Yes, but you implicitly prioritized this set of properties: e.g., that the algebra system should bother to check whether the argument to the Heaviside function is real or positive. This is because you already know that having a real, positive argument will simplify the evaluation of H(x). You can therefore design the CAS system to check if those simplifying assumptions are satisfied. The hard part is knowing which set of assumptions will make a problem simpler. If your CAS hadn't already known the unique nature of the Heaviside function, why would it have bothered checking these properties of its input arguments?
Ultimately, it comes to this: a CAS system can be programmed to check for specific special cases. As I said above, I am not aware of any CAS that does contain special-casing logic specifically for the Heaviside function. I know that Waterloo Maple did start by assuming all functions might produce matrices of complex number outputs; and it began to narrow them down to vectors, and scalars; and restrict the domain to real numbers; and eventually, integers, or rationals, if possible. Similarly, range-checking can determine whether a arbitrary-precision arithmetic implementation is needed (e.g., should the function evaluate to a BigNum or 64-bit float?) So, range- and domain-checking are "special cases" of function properties that can be designed into CAS implementations. But no CAS can be expected to know every possible optimizable result in all possible scenarios for all possible functions. Such evaluation would be computationally more challenging than brute-force evaluation. From the practical standpoint, CAS systems are designed to simplify expressions when possible; and the algorithms that implement existing CAS systems probably prioritize optimizations that appear commonly during ordinary use.
Here is SymPy, an open-source CAS implemented in Python. You can read several of its special-case evaluation mechanisms, and see how they are implemented in program-code: SymPy Core Module documentation, Assumptions Module, and you can browse source-code that implements the symbolic assumptions module. As I mentioned before: this is nasty, complicated source-code; have a look at even the simple cases of basic number-theory assumption evaluation. Nimur (talk) 18:07, 10 August 2011 (UTC)
(OP) Thanks, Nimur. I'm beginning to see the deal. My little chain above did indeed make lots of implicit assumptions. Hmm. Although I can report that sage determined, instantaneously, that ${\displaystyle 2^{100000000}-1}$ was composite. The source code you pointed me to was indeed complicated. Is there an "Idiot's guide to CAS" book that you could recommend? cheers, Robinh (talk) 20:07, 10 August 2011 (UTC)

## Router gives wrong location

I just installed my brothers old router. He had it when he lived in a different city then where I am now. When I connect my cell phone to the wireless network, it shows my location on Google latitude, Grindr, and on the local weather to be in Cedar Falls, where he use to live. How do I fix this? I just upgraded to the newest firmware version also and Cisco won't provide support unless I pay, which I won't do. CTJF83 21:52, 9 August 2011 (UTC)