Wikipedia:Reference desk/Archives/Computing/2009 June 14

= June 14 =

Virtual memory
My MacBook (OS X 10.4.11) seems to use an astounding amount of virtual memory according to Activity Monitor (11.6 GB total). Safari uses 1.5 GB of Virtual Memory itself, where little, dinky applications like MenuCalendarClock (basically puts a little iCal data thing at the top of the screen) and have no major interface to space of take up over 500 MB. Programs that are doing nothing 90% of the time (Snaps Pro X) use some 390 MB. This strikes me as sort of crazy, given that the actual RAM these programs take up is usually a LOT smaller (Google Desktop takes up only 2.19 MB of Real Memory but 356 MB of Virtual Memory). What's the reason behind this? Are these programs just leaky or what? I have no processes other than very "low level", Unix-y like ones (e.g. httpd, mds) that use less than 300 MB Virtual Memory. What do these numbers really mean? The "Real Memory" usage seems about right (2MB for small programs, 20MB for bigger ones, as-much-as-it-can-handle for Safari) but the Virtual Memory numbers seem fantastical (can Snaps Pro X really need 390MB of Virtual Memory when it is idle?). --98.217.14.211 (talk) 01:06, 14 June 2009 (UTC)


 * Short answer: VM space is essentially free (i.e. doesn't use actual RAM or disk space) until it's actually used for something, so why be stingy with it? Allocating lots of VM to your program is easier than trying to economize, so that's what everyone does.


 * Longer answer: I'm not familiar with the gory details of Mac OS X's virtual memory system, but I'm pretty sure it goes something like this: when a program launches and requests lots of VM space, the OS builds it a page table with lots of entries marked "Zero filled". If and when the program actually uses one of those pages, a page of real RAM gets allocated (and zeroed).  Most of the pages never get written to, so they never take up any real resource (other than a tiny bit of space to hold the page table).  Similarly, the pages that "hold" the program itself (and the shared libraries it uses) get marked as corresponding to the spots on disk where the program (+libraries) are stored; as various parts of the program are actually used, real RAM gets allocated and the relevant pages of the program are loaded into them.  Some of the program pages (and probably most of the library pages) never get used, so they're part of the program's VM space, but never consume actual RAM.  And then there's shared memory (the same real RAM shows up in several processes' VM space), copy-on-write pages, etc.


 * If you want to get a little more info about how your VM is actually being used, open a terminal window, enter, and look at the entries for "Pages zero filled" and "Pages copy-on-write".  On the MacBook Pro I'm writing this on, I currently have 38.2 GB (10010701 pages at 4096 bytes each) zero filled and 2.65 GB (694674 pages) copy-on-write, with only 2 GB of physical RAM (902 MB of which is free, and 210 MB inactive).  Activity Monitor reports 47.99GB of total VM, which probably also includes programs and libraries that haven't been paged in, multiple-counted shared pages, etc.  Another interesting command is  , which will show you how much hard disk space is being used to store overflow from physical RAM; mine is currently at  , meaning that it's allocated 64MB of disk space, but hasn't needed to use it for anything (despite the programs I'm running being ridiculously profligate with VM space). -- Speaker to Lampposts (talk) 06:02, 15 June 2009 (UTC)

Bittorrent play while download
Is there a Bittorrent client that will download a file from start to finish instead of downloading randomly? That way I can start viewing the file while it is still downloading. F (talk) 03:01, 14 June 2009 (UTC)
 * That would be very very slow. I doubt it has been made.  Rgood erm  ote    03:05, 14 June 2009 (UTC)
 * I sometimes wish for an utility like that but agree that it would be impractical and kinda not in line with the workings of Bittorrent itself. Maybe try downloading from a different source (provided there is one). Or-- have a cup of tea, patience, the file will be there soon. --Ouro (blah blah) 05:20, 14 June 2009 (UTC)
 * eztv has some sort of modified bittorrent protocol/client that lets you stream a bittorrent download. I haven't used it so I can't tell you how well it works though. --antilivedT 11:19, 14 June 2009 (UTC)


 * It's going to be really, really slow and except in situations where there are huge numbers of seeders it will completely screw up the economy of BT (you won't be getting your files from the peers, just the seeders). The whole reason people can afford the bandwidth to host torrents is because of the way BT distributes it intelligently, which is not sequential. --98.217.14.211 (talk) 14:22, 14 June 2009 (UTC)


 * If I recall correctly the original btdownloadheadless program would download files in roughly sequential order whenever possible. Eventually they changed this and it improved download speeds for both you and everyone else downloading the same file. Sequential downloading also makes it much more likely that a torrent will be stuck with zero seeds. APL (talk) 02:51, 15 June 2009 (UTC)


 * That client would no longer be following the bittorrent protocol model, which specifically and intentionally downloads file chunks out of sequential order because it is approximating an optimal traffic solution. Consider it this way - if you download sequentially, you have to wait for Chunk n+1 at every time.  This chunk might not be available yet (because the server who has it is busy, or something).  So... why bother waiting?  Your network is doing nothing in the mean-time.  Suppose some other chunk is available immediately?  You can start downloading that chunk, which is necessarily "not the next sequential chunk."  Then, at some future time when the sequential chunk does become available, you will get it - but you haven't been wasting time doing a no-work stall.  Nimur (talk) 14:42, 16 June 2009 (UTC)

I can't read East Asian Languages
I've tried the >Control Panel>Languages option but I don't have my original XP installation CD. Are there alternative methods of installing Asian characters?

Mooselogic (talk) 06:36, 14 June 2009 (UTC)


 * Have you tried Windows Update and looking in the Optional section? Tempshill (talk) 16:30, 14 June 2009 (UTC)
 * That doesn't work. Try this. —Preceding unsigned comment added by 121.72.222.20 (talk) 05:37, 16 June 2009 (UTC)

Search whole site
Hi, I need a way to search an ENTIRE website for keywords, say "Robot Brain" and it'll give me a list of every page on that site that features "Robot Brain". I guess sort of like a web crawler, although I don't want to actually save the pages, just scan them. Many thanks —Preceding unsigned comment added by 82.43.90.144 (talk) 10:10, 14 June 2009 (UTC)
 * You can do this via Google. To search wikipedia.org for robot brain enter  into the Google search box. Quotes are only necessary for a phrase search i.e. everything after the site:... bit works like a normal google search. Note that there is no space after site: (if it has worked properly you should see something like  "Results 1 - 8 of 8 from wikipedia.org for "robot brains". (0.27 seconds)." near the top right).131.111.8.98 (talk) 10:51, 14 June 2009 (UTC)

Yes but that's not a live search, stuff from google search can be weeks old —Preceding unsigned comment added by 82.43.90.144 (talk) 11:22, 14 June 2009 (UTC)
 * You could download the entire site using a software utility, then search your local copy? Exxolon (talk) 13:13, 14 June 2009 (UTC)
 * Yeah, but I'm trying to avoid downloading the sites :/ I don't know, I guess I'll keep looking for some software that will just search the sites
 * Specifically, wget and HTTrack are two solutions. (For downloading the sites.)  Tempshill (talk) 20:43, 14 June 2009 (UTC)


 * How can you possibly search the site without downloading it? Even Google had to download it (they save it as their "cached" copy, but that's irrelevant).  Unless you can persuade the web server to perform the search for you, you're stuck with downloading the pages and examining their contents.  You can then delete the downloaded copies, of course; you could even use   to write "a website" on stdout and then search through that without it ever being on disk.  (You'd have to do some sort of clever analysis to notice which pages contained your hits, though.)  --Tardis (talk) 23:27, 14 June 2009 (UTC)
 * You can read the sites on RSS with appropriate filters to find what you want. If the site does not supply RSS, there is a service called Dapper which works as a Firefox extension, that lets you create RSS feeds out of virtually any site (you have to sign up as a member). Once you have a site set up you can use that feed  on future occasions. It takes a few minutes per site, more if the different pages are very different in their layout. This would not be useful to you if you will be searching different sites each time. In that case, go with the refined Google search and take the risk on how old the caching is. The higher on their search ranking a site is, the more often it is crawled; some major sites are visited about every 18 minutes. -KoolerStill (talk) 06:10, 15 June 2009 (UTC)
 * This might be what you need. It's the Ixquick toolbar, which has a "search this site" feature. The website has to be open in the browser but not downloaded. It looks interesting enough that I might try it myself. - KoolerStill (talk) 16:29, 15 June 2009 (UTC)

Norton Internet Security and Anti-Spam
I do not myself use Norton Internet Security, but I need the following information to advise correspondents who use that software and who need to receive my mail.

I know that Norton Internet Security includes Norton Anti-Spam. My question is:

If a user of Norton Internet Security has never opened the Anti-Spam component, will Anti-Spam still filter incoming mail, requiring that user to whitelist senders in Anti-Spam to be assured that mail from those senders will always come through? —Preceding unsigned comment added by Richard Odin Johnson (talk • contribs) 13:41, 14 June 2009 (UTC)
 * I just upgraded to NIS 2009 and can tell you that AntiSpam is off by default. I believe this is the same for NIS 2008, but I don't know about older versions. This means that, no, AntiSpam will not filter mail if a user has never touched it (since the user has to turn it on). Xenon54 (talk) 13:53, 14 June 2009 (UTC)


 * That may not be true for users of the network-managed corporate edition. Such systems will phone home during install (and frequently thereafter) to pick up the site policy file. If Richard's correspondents are inside large medium-sized organisations then this might very well be enabled (one would imagine large organisations will tackle spam centrally, rather than using Norton). 87.115.144.38 (talk) 17:39, 14 June 2009 (UTC)

ATX SMPS question
My olde computer's power supply got burnt and I am looking for a new one. The old one had 20 pin output and if I buy a new 24 pin piece, will it fit? The burnt one is 300W. The machine is a P4 with intel mobo (845 Glly). Will a 400W piece work with it? --Quntimodum (talk) 15:31, 14 June 2009 (UTC)


 * Yes, most 24 pin connectors come with a detachable 4-pin connector so it can be used as 20 pin too. Usually as long the wattage is higher than your old one it should work, but be careful of shoddy brands that over-rates their PSU. --antilivedT 00:52, 15 June 2009 (UTC)
 * Usually you don't even need to detach the 4-pin connector, you can plug the 24 pin plug straight into the 20 pin socket. F (talk) 04:54, 17 June 2009 (UTC)

malloc and free
Dear Wikipedians:

Sometimes I would forget to free the memory I have malloc'ed. I'm wondering:

Would this memory eventually be returned to the system when the entire program ends? Or is it lost to the system forever until I reboot the computer?

Thanks.

70.31.157.47 (talk) 16:45, 14 June 2009 (UTC)


 * Malloc allocates small chunks of memory from the individual process heap, which is a bunch of pages that are owned by your process (if you're interested, your process gets those as needed either by calling sbrk or mmap). Like all other pages owned by your process, those are returned to the system when the process ends. It is, in some systems, possible to perform mallocs that do persist even after your process ends - such shared memory allocation operations are something you need to tell your malloc implementation specifically about; it's not something that'd normally happen, and it's not for the faint hearted. 87.115.144.38 (talk) 17:19, 14 June 2009 (UTC)


 * It is freed on any sane system, but is it guaranteed for standard C (/ have there been "desktop" systems that lose memory like this)? btw I'm not the op --194.197.235.32 (talk) 20:29, 14 June 2009 (UTC)


 * The freeing is done by the OS when it breaks down a process, not by the libc allocator, so it's essentially guaranteed. You do get other kinds of allocation (windows has "resources", and most OSes have IPC things); these are allocated by other apis (not malloc), and sometimes are leaked. Older windows (e.g. 95) was noted for leaking resources (from a tiny pool), so eventually the system would grind to a halt, even though no apps were running and plenty of ram was free. 87.115.144.38 (talk) 21:34, 14 June 2009 (UTC)


 * Thanks all, that's essentially what I have guessed too. 70.31.157.47 (talk) 20:41, 14 June 2009 (UTC)

bash question
Let's say I have a directory path in bash that is being stored as a string, something like "/Users/myusername/Documents/stuff/foo/bar/my folder". What's the simplest, most reliable way to take that string in bash and have it just give me the last folder name, assuming the path in question is not fixed (that is, it can't just be "trim x characters off the end")? --98.217.14.211 (talk) 18:33, 14 June 2009 (UTC)


 * basename 87.115.144.38 (talk) 18:41, 14 June 2009 (UTC)


 * thanks! that worked perfectly. --98.217.14.211 (talk) 19:00, 14 June 2009 (UTC)


 * You don't have to go to an external process for this: if you put that value in a variable dir, you can write  and get the last piece.  (However, if your string could end in a slash, and you want the last part before that slash, you would have to do two steps:   and then use , which isn't quite as simple.)  In any case, be sure to use quotes properly: neither   nor   will do what you want for "my folder" with a space in it.  Put double quotes around the expression that might result in multiple words.  --Tardis (talk) 23:11, 14 June 2009 (UTC)

Change Network Card
I've discovered that my IP address changes when I connect my router to another computer, but goes back to the previous IP address when I connect the router back my old pc. Obviously the router is detecting that there is a different network card in use, and is allocating IP address like that. So how can I fool the router into thinking I'm using a different network card when I'm not?

This is for ethernet router, and I'm certain the IP address is not just changing when I reset the router because it's been the same for months until I used it on a new computer, and reverts back to the old address when I use the old computer.

Thanks for the help! —Preceding unsigned comment added by Anonymous 20:42, 14 June 2009 (UTC)


 * A few more details, please. Is your objective to change your computer's IP address, as it sounds?  How many ports are in the back of your router?  What's the router brand?  Tempshill (talk) 20:53, 14 June 2009 (UTC)
 * Yes, I wish to change the IP address. So far it's only the last three digits that seem to be changing, which is all I need. My router has three slots, one for power, one for the cable coming in from the street and one for the ethernet cable which connects to my computer. The brand is VirginMedia —Preceding unsigned comment added by Anonymous  21:35, 14 June 2009 (UTC)


 * It sounds like your computer getting a new Network Address Translation (NAT) address leased to you by these different routers via DHCP. Note that this isn't your public address, as is visible to other websites. That's given to your router by your ISP; they may give you a new one if you power off and on the router, but that's up to the ISP. Anonymous (Anonymous) 21:53, 14 June 2009 (UTC)


 * This is my third IP address on Wikipedia, as seen by my contributions. Yesterday I was Anonymous but after plugging my router into my new computer I am now at another IP. But if I plug the router back into my old computer I become the original IP again. It must be the network card, so is there a way to alter it's ID or something like that so I can keep changing the IP address at will? Really, just any way to change a network cards settings is all I'm after. —Preceding unsigned comment added by Anonymous  22:06, 14 June 2009 (UTC)


 * No, that is your external IP address which your ISP assigns you to. It's basically random and each time you disconnect (like moving your router) will get you a new IP, maybe it's the same one you had, maybe it's not. It has nothing to do with your internal network, and if you want a new IP just keep on reconnecting your internet connection on your router until you do get one. The fact your IP changed with your new computer is merely a coincidence. --antilivedT 00:50, 15 June 2009 (UTC)
 * I agree, it is the external address. My ISP assigns me one of three numbers when I start up the modem. If there is a longer break in the signal (it's wireless) it sometimes allocates a different one when the signal is recovered. It's always one of the same 3 numbers.- KoolerStill (talk) 02:51, 15 June 2009 (UTC)


 * NO. I had the same IP address for months until I connected the router to my new computer, now it's different. If I plug the router into my old computer I get my old IP address back. It does NOT change if I simply turn the router off and then on again while using it on the same computer. This, however, is largely irrelevant. All I am looking for is a way to tinker with my network cards settings or IDs to emulate it to look like a different brand or whatever. I don't really care if you believe me when I say the IP changes ONLY when I use the router on a different computer, I would simply like some help finding a way to alter my network cards settings to make it appear like a different card.


 * I'm thinking of only a couple possibilities. A) It's not a "router", it's a hub, and it's not doing NAT. B) It is a router, it's not doing NAT (ie. it's bridging or something). C) It's not a router, it's a modem, and it's not doing NAT. D) It's a gateway/modem combo or something, and does assign you multiple IP addresses rather than doing NAT.
 * In any case, you'd be getting the same IP because whatever is assigning the IPs is recognizing the MAC address of the NIC. You can spoof the MAC with various tools, though I can vouch for none of them. -- Consumed Crustacean (talk) 05:57, 15 June 2009 (UTC)


 * And since you are getting your IP address over DHCP, don't count on it being the same forever. Generally, if you don't re-get the IP quickly enough after the lease is expired, it'll be assigned to another machine. The ISP might also just shuffle IPs around or simply not grant the same one after lease expiry. -- Consumed Crustacean (talk) 06:05, 15 June 2009 (UTC)


 * This seems to be good in describing how to change it without any additional software, although I distinctively remember that some card drivers allow you to do it in GUI in the card properties dialog. However, the basis of this suspicion is still unfounded: broadband connections are "always on", and you only get a new IP address when you initiate a new connection, therefore it's normal to have the same IP address for a long time, as long as it never disconnects. As KoolerStill said and also personal observation, the pool of IP address that you get assigned are relatively small, perhaps 3 or so IP, and there's probably a policy to give you the same IP as last time as long as no one else took it while you're disconnected. When you move it to another computer the down time is also longer, so there's a higher chance that someone else took that IP address and leaving you with a different one. There is no reason why any ISP would do this kind of client-MAC-based (instead of modem-MAC-based) DHCP assignment. --antilivedT 06:15, 15 June 2009 (UTC)
 * I've just tried changing the MAC address and I lose all internet connection until I change it back to the original MAC address :( Also, as I said and keep saying, the IP address only changed when I plugged the router into the new computer (a total of maybe 40 seconds transfer time). I have left the old computer off for days in the past and always got the same IP, and continue to get the same IP when I plug the router back into the old computer, so I don't believe it is ever being assigned to someone else. Anyway, since the MAC thing didn't work I guess I'm out of luck. Thanks anyway. -- Anonymous


 * This might not be the case for all ISPs, but I know of at least two cable ISPs which do it. IPs will be associated with the modem, but also with the computer's MAC; either the modem is assigning IPs over DHCP (and I know some do have DHCP servers, not sure if they're actually used), or the ISP is doing it based on both MACs. It's easy to see too; you can do exactly what the OP said - switch the computer that's connected to the modem without resetting the modem, and then switch back. Assuming you have more than one IP, the second computer should get a new one, and the first computer should keep the same one. If you've only one IP, the second computer shouldn't pull an IP address at all unless you reset the modem. -- Consumed Crustacean (talk) 14:56, 15 June 2009 (UTC) (revised 15:34, 15 June 2009 (UTC))


 * Just installed a new network card I had lying about, lets see if my IP address has changed now (from Anonymous ) —Preceding undated comment added 07:47, 15 June 2009 (UTC).