Wikipedia:Reference desk/Archives/Computing/2010 February 8

Computing desk
< February 7 << Jan | February | Mar >> February 9 >
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.


February 8

edit

Pointers and local variables

edit

If I use a pointer to a variable - and then pass that pointer as a parameter to a function or procedure - and that procedure then makes a local variable of the same name - which variable will the pointer point to? Specifically - as a question - what is the behaviour in different computer languages (C, pascal , others) - and how do I go about finding the defined behaviour for a given language - typically I have to resort to trial and error.87.102.67.84 (talk) 01:35, 8 February 2010 (UTC)[reply]

Um, to find the defined behavior for a given language you have to check the specification for the language, if there is one. But the whole idea of a local variable is that it's independent of other parts of the program, so the local variable and the function parameter will point to two different places. 66.127.55.192 (talk) 02:23, 8 February 2010 (UTC)[reply]
The pointer points to the variable by its memory address, not by its name. Even if the original name went out of scope, the pointer would still point to the variable you originally pointed it at. Marnanel (talk) 02:28, 8 February 2010 (UTC)[reply]
If I pass (any variable) to a part of a program with different scope as a function or proceedure parameter is that supposed to retain the old (local) scope? (exceptions? is this generally true?)
Also is it right to say that the situation would change when using a dynamically scoped language (I haven't been able to test this).
(I looked at some specifications for C and pascal and honestly couldn't find the explicit description of scope behaviour - does anyone more expert know where they are in the documents?)87.102.67.84 (talk) 03:10, 8 February 2010 (UTC)[reply]
In C, when you pass a pointer as a parameter to a function, what you are passing in is a memory address, and you are giving that address a name which lasts as long as that function is executing. Any other names which may exist in other scopes and happen to refer to pointers to the same data are irrelevant. Scope is about how long a name lasts, rather than how long a variable lasts, although if a language has automatic garbage collection these two ideas may be related. Marnanel (talk) 03:22, 8 February 2010 (UTC)[reply]
So the scope of a local variable lasts longer when passed to an external function or proceedure as a parameter (instead of 'ceasing to exist' as it usually would?) 87.102.67.84 (talk) 03:48, 8 February 2010 (UTC)[reply]
A function's local variables are in scope while that function is executing. When a function "A" passes a parameter to a function "B", it doesn't extend the scope of the data in "A": it creates a whole new scope which lasts as long as "B" is executing. During this time, "A"'s local variables are out of scope: you can't refer to them. Then when "B" is finished, "A" will resume and its local variables will be back in scope again. Marnanel (talk) 03:55, 8 February 2010 (UTC)[reply]
Yes, thanks - at the transition between A and B the variables (either pointers or values) passed from A will be copied into B's variables. I suppose this means that there is a requirement for local variables not to overwrite global ones (in memory) (even temporarily) since any passed pointers will end up pointing at the wrong thing. (Can anyone expand on this technically?)
What I'm thinking about is common examples such as:
procedure proc inc_to_ten (x)
  x=x+1;
  print (x)
  if (x<10) then proc_inc_to_ten(x)
  print (x)
  return

called from main with inc_to_ten(1) or similar - which counts 1 up to 10 and then back down again as the nested functions return and exit. What I was wondering was how the nested local scoped x's are stored - would it be normal to use stack to store the previous local x just before calling the proc. and the pop the x's back off the stack around the time the return command is fulfilled? Are there other implementations? (Also I wasn't kidding when I couldn't find the description in the language specifications - can anyone point to the section where it is covered)87.102.67.84 (talk) 04:17, 8 February 2010 (UTC)[reply]

In answer to your first question: local variables are allocated on the stack; globals are not. There is no risk of them overwriting one another. In answer to your second question: that would be one way of doing it (especially if x is actually implemented as a register); another, simpler way would be to keep x on the stack the whole time, so there was never any risk of loss or confusion. Marnanel (talk) 04:46, 8 February 2010 (UTC)[reply]

Type casting an assignment target in C

edit

Why doesn't C (or at least why doesn't GCC) allow

(int)x = 1337;

as a synonym for the following?

*((int *)&x) = 1337;

NeonMerlin 02:45, 8 February 2010 (UTC)[reply]

Two reasons:

  1. Casts of lvalues are not lvalues, according to ANSI C.
  2. It's stopping you doing something stupid. You don't know that sizeof(x) is the same as sizeof(int). Your second example works, but if sizeof(x)==1 and sizeof(int)==4, you've just clobbered three bytes of memory. Marnanel (talk) 03:27, 8 February 2010 (UTC)[reply]
(int)x is not the same as *((int *)&x) when used as an rvalue. If assignment to (int)x were allowed, it presumably would mean something like x = (typeof(x))(int)1337, since that's roughly the opposite of the corresponding read operation.
In C++ you can say (int&)x = 1337, but you probably shouldn't. -- BenRG (talk) 05:31, 8 February 2010 (UTC)[reply]

Short term internet service in a rural area?

edit

I am searching for a workable solution to a slightly odd technological conundrum. I have a friend that is running a somewhat impromptu, small scale IT convention in a rural Central New York State area that would like short term internet service (like 1 month tops) that would preferably provide a minimum of 5 Mbps for at least 5 computers. I was sure that the new-ish "MiFi" wireless, portable hot-spots would suffice but they only provide roughly 1.4 Mbps at best while most other options require long term contracts. Any recommendations? Thanks! 74.71.73.29 (talk) 05:31, 8 February 2010 (UTC)[reply]

Satellite internet, or tether some cell phones. Investigate Link aggregation, and have multiple MiFi (or cell) connections. Even if your ISP does not offer it, you can setup a server somewhere to act as the other end of the links, and route everything through that server. Ariel. (talk) 06:00, 8 February 2010 (UTC)[reply]
As a WildBlue customer, I wouldn't bet on satellite internet being a good option. At least for normal residential service, the installation and equipment costs are substantial (hundreds of dollars) and require a contract of at least a year. The largest package is 1.5 Mbps download, but I find that my throughput is often well below the stated 512 kbps that I pay for. The latency is very poor, which is annoying and excludes some applications (real-time video, audio, gaming). There is a monthly cap on data transfer (17 GB/month for the largest package), which may also be an issue. My feeling is that anyone who "needs" 5 Mbps is going to be dissatisfied with satellite internet, even if you technically manage to cobble together the bandwidth. -- Coneslayer (talk) 12:59, 8 February 2010 (UTC)[reply]
This reply reaches you from a rural area via a relay of miniature microwave transmitters and receivers. All that is required is line of sight between each pair. Such systems are not unusual in rural UK, and I would think that something similar could be hired in the USA, but I don't know about licence requirements. How far away is the nearest fast conventional connection to the internet? Dbfirs 18:11, 8 February 2010 (UTC)[reply]
There's a number of companies that offer short-term internet connections for events: try googling. Alternatively, contact a local ISP and ask their advice - many offer temporary or short-contract services. --Normansmithy (talk) 11:48, 9 February 2010 (UTC)[reply]

SMS files into text files

edit

So I have a cell phone where from I can download SMS files on my vcomputer. Sadly, no program but the Nokia synchro thingamagum can read those files. Is there a program or a nifty trick to convert hundreds and hundreds of important text message (fileas) into text files (like .txt)? Copy-pasting is a pain, I've tried. Any software should be compatible with Windows 7. Pitke (talk) 13:41, 8 February 2010 (UTC)[reply]

What file format does it come in? I mean, the file extension (filename.extension). Samwb123Please read 18:27, 8 February 2010 (UTC)[reply]

Which model is your phone. If it is NOKIA, you can use their Nokia PC Suite to download messages to PC in CSV format which can be opened by spreadsheet program. It also offers to save it in TXT format. —Preceding unsigned comment added by 220.227.79.2 (talk) 06:36, 9 February 2010 (UTC) --220.227.79.2 (talk) 06:37, 9 February 2010 (UTC)[reply]

Thanks for help, my phone is Nokia and I have access to the Nokia PC Suite. I'd known of the CSV format exporting but could not imagine what I could do with it. I'll try it with Microsoft Excel, problem resolved. Pitke (talk) 15:03, 9 February 2010 (UTC)[reply]

Two versions of Firefox?

edit

I have been using Firefox with Windows XP for a few weeks. I am using an Add-On (a particular "Persona" I think) that makes it look similar to Internet Explorer. However, a major drawback with this is that the drop-down menu for saving Bookmarks is very narrow and also of a very short fixed length, so that it is impossible to see what Bookmark folders you have already.

Would it be possible to either a) run another version of Firefox on my computer without the IE "persona", for example having both versions available to start from their respective desktop icons, or b) alter the IE persona I have to make the Bookmark menu larger? Thanks 92.29.142.75 (talk) 13:48, 8 February 2010 (UTC)[reply]

Sure, you use as many versions of Firefox as you want. I regularly use the latest release (installed) and have several dozen daily builds that I also use. The daily builds are easiest since they are just a folder without an installer. However, if you just install to a different directory is should work as well. Then rename the shortcuts to the FF in a way that makes sense to you. The issue that you may encounter is each FF asking you if you want to make it the default browser. This can be disabled in the settings though. 124.214.131.55 (talk) 13:55, 8 February 2010 (UTC)[reply]
You can create different profiles that each have their own addons and bookmarks etc, this explains how. —Preceding unsigned comment added by Kv7sW9bIr8 (talkcontribs) 15:13, 8 February 2010 (UTC)[reply]

I'd alter the persona if that's the only problem you have — link to it and someone can explain what you'd need to do. ¦ Reisio (talk) 23:18, 8 February 2010 (UTC)[reply]

Thanks, its "Internet Explorer 8 Aero for Firefox", created by Dinnerjoe, available here http://www.getpersonas.com/en-US/persona/55635 I've no idea how to alter it myself. Correction: the Add-on is called myFireFox, version 3.0.0.87. 89.240.202.189 (talk) 00:14, 9 February 2010 (UTC)[reply]

Neither of those alter my Bookmarks menus. Could you provide a screenshot? http://imageshack.us/ ¦ Reisio (talk) 05:35, 9 February 2010 (UTC)[reply]

When I click "Bookmarks", then "Bookmark this page", I get a comparatively small pop-up at the top of the screen middle-right. This is the problem as it is narrow and of fixed length. 92.29.127.70 (talk) 12:40, 9 February 2010 (UTC)[reply]

Perhaps you could contact the author of the IE theme addon and let them know about the problem, they might fix it and release a newer version —Preceding unsigned comment added by 82.43.89.90 (talk) 14:08, 9 February 2010 (UTC)[reply]

Generating sound of specified pitch and duration in browser.

edit

Hello guys. I need to generate a sound of a specified frequency and duration using something like generateSound(frequency,duration) function in my browser using javascript (i don't have any other scripting or development platform on my pc). Can you please help? Is there any applet on the net to do this. I looked everywhere but could't find. Thanks. ReluctantPhilosopher (talk) 16:55, 8 February 2010 (UTC)[reply]

Guys? ReluctantPhilosopher (talk) 18:29, 8 February 2010 (UTC)[reply]
Sorry, I don't know how. But as a regular internet user, please consider very carefully whether your readers/customers really need that sound. Astronaut (talk) 18:31, 8 February 2010 (UTC)[reply]
I actually need it for myself, not to put on the web. After I posted the question i downloaded tcc compiler and used the beep() function but it is not producing sound (through the system/internal speaker). I know it is getting executed by the time it takes (the duration parameter I set). The beep device seems to be working in the device manager. I'm really flustered :( My laptop is Compaq presario c700 (c702tu) btw. ReluctantPhilosopher (talk) 18:44, 8 February 2010 (UTC)[reply]
Your laptop might not actually have a PC Speaker. Lately I've seen more and more computers coming without one and although the connections are still there on the motherboard (hence Windows "sees" a speaker), since there's nothing connected you hear no sound. ZX81 talk 19:25, 8 February 2010 (UTC)[reply]
Thanks. Yeah I guess that's the problem. If only my clunky old laptop had a stupid system speaker all this trouble could have been avoided. Now I first have to find drivers for my audio (which, i have found out, is next to impossible), and install java on my deathly slow machine :( ReluctantPhilosopher (talk) 20:12, 8 February 2010 (UTC)[reply]
Update: I was able to install drivers. Now will use java or flash! Thanks again :) ReluctantPhilosopher (talk) 22:02, 8 February 2010 (UTC)[reply]
Hmmm... I don't know of any, but you can see this page to see how to play a sound file is javascript. Samwb123Please read 18:34, 8 February 2010 (UTC)[reply]
Thanks, I was able to install sound drivers, and my purpose can be served by using javascript and simple wav files ^_^ ReluctantPhilosopher (talk) 22:02, 8 February 2010 (UTC)[reply]
As far as I know javascript doesn't have the ability to make sounds - I assume you want to play frequency x Hz for y seconds ?
Yes that's what I want to do. And yes I now realise you can't do it using only javascript. thanks! ReluctantPhilosopher (talk) 22:02, 8 February 2010 (UTC)[reply]
Java can 'synthesise frequencies' - and you could put that in a java applet (needs java installed) - would that be acceptable.?87.102.67.84 (talk) 18:54, 8 February 2010 (UTC)[reply]
here's a simple beep using a java applet [1]
Thanks very much, that was very useful ReluctantPhilosopher (talk) 22:06, 8 February 2010 (UTC)[reply]
For different notes I think you need to use MIDI - not sure.87.102.67.84 (talk) 19:16, 8 February 2010 (UTC)[reply]
That's an amazing piece of info, I'll use it in future too, thanks ReluctantPhilosopher (talk) 22:06, 8 February 2010 (UTC)[reply]
This appears to be a frequency generator - http://www.jsresources.org/examples/OscillatorPlayer.html
Wow, that's really cool! Thanks :) ReluctantPhilosopher (talk) 22:06, 8 February 2010 (UTC)[reply]
For what it's worth, I think a lot of developers use a simple Adobe Flash script for any sound functionality. (And please don't poke the Desk with notes like "Guys?". It doesn't speed us up.) Comet Tuttle (talk) 19:20, 8 February 2010 (UTC)[reply]
I'm sorry, it was just a friendly poke :[ It had been two hours (I edited the original question, hence the timestamp), and i was thinking it was something straightforward (i was mistaken). ReluctantPhilosopher (talk) 19:33, 8 February 2010 (UTC)[reply]
You had to wait a whole two hours for a bunch of volunteers to provide an answer to your question? How distressing for you! ╟─TreasuryTagUK EYES ONLY─╢ 22:11, 8 February 2010 (UTC)[reply]
Aw let it go man!! :D I told you I thought it was straightforward, and I saw later questions being answered, and it was just a friendly "Guys?". I have myself volunteered on the refdesk in the past, so I know how it works :) 220.225.87.66 (talk) 11:20, 9 February 2010 (UTC)[reply]
And yes using flash script would be best if I don't want to use java I suppose. Thanks! ReluctantPhilosopher (talk) 22:06, 8 February 2010 (UTC)[reply]

If you already had sound files: http://www.schillmania.com/projects/soundmanager2/
Horrors: http://www.google.com/search?q=flex%20generate%20sound ¦ Reisio (talk) 23:21, 8 February 2010 (UTC)[reply]

PDA or phone plan with only internet?

edit

Is there a PDA or phone plan that offers no phone or text messaging, but internet access? I do not mean Wi-Fi, but access to their 3G network. And does it cost less than $50/month to access their 3G internet service? Thanks! Samwb123Please read 18:25, 8 February 2010 (UTC)[reply]

Many providers supply USB dongles for internt access via their 3G network. If you told us in which country you want the service, you might get more accurate help Astronaut (talk) 18:28, 8 February 2010 (UTC)[reply]
I live in Spokane, Washington, United States. Samwb123Please read 18:31, 8 February 2010 (UTC)[reply]
T-Mobile offers a data only service for Windows mobile devices for $40/month, Verizon seems to offer one for $50, and I can't find any info on an AT&T data only plan for smartphones. I have heard that it runs around the same as T-Mobile though if you ask. Many cell phone companies do like to place restrictions on what other services need to be purchased to be eligible for certain data plan price rates. Caltsar (talk) 20:46, 8 February 2010 (UTC)[reply]
Thank you. I was wondering, though, is there any sort of thing for the iPod Touch? Thanks. Samwb123T (R)-C-E 20:56, 8 February 2010 (UTC)[reply]
The Ipod Touch can't access 3G, but it can use WiFi hotspots. T-mobile recently offered a $5/month plan that allowed unlimited use of their WiFi hotspots by a single device, that could be an Ipod. EdJohnston (talk) 21:04, 8 February 2010 (UTC)[reply]
The Kindle does 3G and offers web browsing. Is that what you are looking for? -- kainaw 02:06, 9 February 2010 (UTC)[reply]
But doesn't the Kindle only navigate to some sites? If it does browse all sites, that would be WONDerful. Samwb123T (R)-C-E 03:02, 9 February 2010 (UTC)[reply]
I just went to my own website (which I am positive would be off-limits if it Kindle was limited). The deal is that you only get to go to some sites for free. Others require you to pay a 3G access fee, which has never been much for me, but I don't go to tons of sites. Also, I just realized that if you want more than black-and-white, you will want to wait for the iPad, which I believe also does 3G. -- kainaw 03:11, 9 February 2010 (UTC)[reply]

Ubuntu boot problem

edit

I've got a Pentium 4 Ubuntu server that usually freezes during the boot process. Frustratingly, sometimes it gets all the way to the GNOME desktop, at which point it'll run fine for weeks, until I have to restart the server (usually because I have applied some updates via the update manager) and it then usually freezes on boot again. The freezing point is generally on the black screen that has the white Ubuntu logo on it. I generally hard-power-down the computer and turn it on again. Just now it booted in some sort of safe mode (I am guessing), with a screen full of text mode text that appears to be listing timestamps and system calls; here are the last three calls that it's listing:

mprotect_fixup+0x226/0x280
sys_mprotect+0x140/0x200
syscall_call+0x7/0xb

Then it locked up forever. Any hints on how to approach the problem? Comet Tuttle (talk) 18:39, 8 February 2010 (UTC)[reply]

Not a real solution, but in case it's a problem with the hardware/bios settings it might go away if you use kexec instead of a hard reboot. In any case you should have a look into /var/log/* and dmesg. --194.197.235.240 (talk) 20:25, 8 February 2010 (UTC)[reply]
Also are you sure the hardware is fine? Linux seems to be more picky about unstable hardware (my CPU overclocked to unstable frequencies will boot into Windows fine but will freeze while booting Linux), and exploding capacitors were a big problem for computers around Pentium 4's time. --antilivedT | C | G 10:00, 9 February 2010 (UTC)[reply]
On Fedora 11, most of my boot issues stem from a kernel update where other (usually graphics) software doesn't have an updated version yet. The way I get around this is I boot into the kernel version that's one behind until the update comes through. Falconusp t c 12:39, 9 February 2010 (UTC)[reply]
Thanks for the suggestions. I'll try "rebooting" with kexec next time the Update Manager nags at me to restart; and maybe I'll look into previous kernel versions. As far as whether the hardware is fine: Well, I can't be sure the hardware is fine, but memtest86 didn't come up with any problems. Other peripherals, I'm unsure, of course. Thanks - Comet Tuttle (talk) 16:40, 9 February 2010 (UTC)[reply]