Wikipedia:Reference desk/Archives/Computing/2006 December 15

From Wikipedia, the free encyclopedia
Computing desk
< December 14 << Nov | December | Jan >> December 16 >
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.


December 15[edit]

Serial and parallel connections[edit]

Why are serial connections (like SATA and Serial SCSI) faster than their parallel counterparts? Is seems counterintuitive since parallel processing, wide buses, and the like are faster than their "narrower" cousins. Don't kill me with ultra technical jargon, please! --72.202.150.92 01:51, 15 December 2006 (UTC)[reply]

Serial connections typically have two wires that data travels over, while parallel connections have many wires. The many wires in a parallel cable all cross talk and distort each other, so the signal rate (speed) over them is limited by interference. Serial connections use fewer wires which don't cross talk as much, so the signal rate can be higher. A good analogy is how easy it is to listen to one person if only two people are talking, compared to how hard it is to listen to one person in a crowd of talkers. Droud 02:08, 15 December 2006 (UTC)[reply]
Would it make sense to use differential signalling for each parallel line, in essence making an array of serial busses? That would reduce crosstalk and interference issues, allowing fast parallel communications. -anonymous6494 02:20, 15 December 2006 (UTC)[reply]
Sometimes, yes. For example, high-speed Ethernet uses differential signaling on a bundle of twisted pairs. --KSmrqT 22:39, 15 December 2006 (UTC)[reply]
Yes, HyperTransport and PCI Express are real-world examples of such designs. 130.237.5.141 15:27, 20 December 2006 (UTC)[reply]

Music Skipping On Computer[edit]

My music keeps skipping while i browse the internet, and me CPU usage % stays at around 70-90% i used to be able to listen to music while doing alot of other things, but now when i use the internet my music skips like crazy.. My music isn't messed up. And its not because of iTunes. i have a dell dimension 2300.. Why has this problem RECENLTY come up and how can i fix it?? THANKS! —The preceding unsigned comment was added by 68.7.0.44 (talk) 02:51, 15 December 2006 (UTC) IM PRETTY SURE THAT INTERNET EXPLORER HAS NOTHING TO DO WITH IT. ESPECIALLY SINCE IT WOULD TAKE MORE TO RUN MOZILLA(which i also have) —The preceding unsigned comment was added by 68.7.0.44 (talk) 21:19, 15 December 2006 (UTC)[reply]

Difficult to answer without more data, but you may have additional software running in the background. You may wish to scan for spyware, if there is malware running on your computer, it could consume resources and cause the symptoms you see here. - CHAIRBOY () 04:20, 15 December 2006 (UTC)[reply]
Hit Ctrl+Alt+Del while your browser is running, and check which process is using all the CPU time. Kill it (aka "End Process"). By the way, if you're using Microsoft Idiot Exploiter, try Mozilla Firefox or Opera. IE is very crappy. --wj32 talk | contribs 10:44, 15 December 2006 (UTC)[reply]
  • It probably has nothing to do with internet explorer. I use it too on a much slower machine and suffer no such problem. - Mgm|(talk) 12:55, 15 December 2006 (UTC)[reply]
    And in IE's defense, IE 7 is acutally pretty good. Proto:: 12:59, 15 December 2006 (UTC)[reply]
Actually, my point was that IE is much more vulnerable to viruses/spyware than Firefox or Opera. And, how is IE 7 pretty good? Just because its Microsoft? Opera and Firefox had tabbed browsing several years before IE 7 came out. --wj32 talk | contribs 00:19, 16 December 2006 (UTC)[reply]
I don't think it has to do with the tabs. Microsoft Office 2006 now all has tabs. KiloT 22:22, 18 December 2006 (UTC)[reply]

Mac and PC[edit]

I have a Dell PC (Desktop) and my friend has a Macbook Pro. My Computer has an Intel Core 2 Duo (Just bought it) running at 2.33 ghz. I have a 256 mb ATI graphics Card (I'm pretty sure its an X1800?). My Friends mac laptop has core duo 2 ghz, with a 128 mb graphics card. I have 2 gigs of ram, he has 1. His boots up faster, has a faster interface, and seems to perform better overall. As I said, my Dell is brand new, never connected to the internet (yet; im typing this on an old IBM). Why is the mac so much faster? —The preceding unsigned comment was added by Rgrsle (talkcontribs) 03:09, 15 December 2006 (UTC).[reply]

It's a completely different operating system, it uses the hardware differently from your PC. Both operating systems have different strengths and weaknesses. If he chooses to dual-boot with Windows on his Mac, you should be able to see a more representative example of the speed differences between the two machines. - CHAIRBOY () 04:18, 15 December 2006 (UTC)[reply]
Since Apple handles both operating system (Mac OS X) and hardware, it can integrate the two together far more efficiently. Windows cannot do this as well because it is designed to work with many different types of hardware and cannot focus as much on optimization. That said, Mac OS X generally boots up more quickly than Windows does. The Dell's advantages in graphics and RAM probably do not come into play during booting; 128 MB of graphics memory and 1 GB of RAM is quite enough to boot quickly, and adding more of each will not help. Intensive graphics work and other high-end applications are what will show the Dell's hardware advantages. That, and using Windows on the Mac (for comparison purposes). Larry V (talk | contribs) 08:32, 15 December 2006 (UTC)[reply]
Then explain why GNU/Linux can even run on different architectures while Windows, on the other hand, only supports x86. And GNU/Linux is faster (and more stable, but I won't get into that). --wj32 talk | contribs 10:53, 15 December 2006 (UTC)[reply]
Most Linux distributions install very bloated kernels to attempt the Windows' level of compatibility, leading to unfavorable performance (in comparison) until you perform heavy tweaking for a specific computer. Since most users are incapable of identifying even the processor in their computers, I would say a kernel recompile is beyond most, and without such tweaking Linux is bested by Windows. Microsoft has several flavors of Windows for various platforms and architectures, and while Linux might run in a very stripped down fashion on your home router (once again customized), Windows is designed for users rather than hardware. Microsoft targets x86 because it is by far and away the most popular architecture out there. Additionally, the x64 and IA-64 architectures are both supported by Windows. Droud 02:38, 19 December 2006 (UTC)[reply]

o_o That thing must weigh 15 pounds! You have the superior computer so no need to fret. Install linux on both of your computers and install ati drivers, and see what kind of fps you can get in unreal tourney or something --frothT C 14:40, 15 December 2006 (UTC)[reply]

Let's assume the Mac is booting Mac OS X, and the Dell is booting Windows XP. You have identified hardware features of the Dell that suggest it should be faster. If only system performance were that easy! First, we have other hardware factors such as cache configuration, the speed of the memory bus, and the speed of the hard drive. Then we have the design of the boot process. And finally we have the design of the operating system itself.
Early versions of Mac OS X did not boot as quickly as recent versions, for reasons having nothing to do with CPU speed. Therefore, I'm guessing that software design is the most important difference. But that's just a guess; Macs tend to make fairly zippy Windows machines as well. (And a custom home-built machine can easily best the typical commercial machine from Dell.) --KSmrqT 00:47, 16 December 2006 (UTC)[reply]
A homebrew can suck just as much as a dell, but anyone smart enough to build their own computer probably wouldn't do a bad job --frothT C 23:08, 21 December 2006 (UTC)[reply]

Flash ad blocker[edit]

What is the best freeware/foss/whatever program for windows that blocks flash advertisements but allows things like youtube videos? Does such a thing exist or is the only solution host file editing? For firefox or IE is fine but prefer IE.--Deglr6328 05:33, 15 December 2006 (UTC)[reply]

Adblock is a popular ad blocker for Firefox, and Flashblock can also be very effective when used with it. - CHAIRBOY () 05:36, 15 December 2006 (UTC)[reply]
Flashblock (and also NoScript, which also blocks JavaScript) replace the flash object with a box you can click on to show the flash. Flashblock also allows you to set a whitelist (sites where it never blocks flash), so is perfect. No idea about IE extensions --h2g2bob 06:02, 15 December 2006 (UTC)[reply]
Note that if you're going the Adblock route, you might want to use Adblock Plus, instead of plain Adblock. Development has been sluggish Adblock for quite awhile; Plus is a fork that fixes many bugs, and adds automatic filterset downloads and other features. I use both Adblock and Flashblock myself. For IE, I'd go with the proxy program Privoxy personally. -- Consumed Crustacean (talk) 23:16, 15 December 2006 (UTC)[reply]
Try Proxomitron. I used it with Firefox back when I was using Windows. It sets up a proxy that you can tell your browser to use, and it uses its own little regex language to filter/replace text in a webpage. If you want more information... --wj32 talk | contribs 10:46, 15 December 2006 (UTC)[reply]

How hard is it to connect two computers?[edit]

I often hear about how hard it is to connect two computers, and the numerous problems associated with that (Peter Sellers I think said "the network is down" in a 50's/60's film and we've been hearing it ever since). I would like to connect my laptop and my desktop, using the ethernet socket on my laptop, which is running Windows XP Professional SP2. My Xbox 360 came with a cable that has plugs that fit to the socket in the back of the laptop, so fingers crossed that the two are compatible. Finally, my desktop PC running Windows XP Pro SP2 as well doesn't have a network card, but I can buy and install a "PCI Card 10/100Mbps" which I am hoping has the correct socket for the cable.

So, is there anything that I should know before I go out and buy the card? Once installed, is getting a working network easy or hard? I want to use the connection so I can use Norton Ghost and make a copy of the whole laptop's drive on the desktop. What is my chance of success? What can go wrong? Thank you.

202.154.136.42 07:08, 15 December 2006 (UTC)[reply]

Yes. First, if you want to connect two devices without using a switch or hub, you will need an Ethernet crossover cable, instead of a regular "straight through" Ethernet cable (unless one of your network cards can automatically detect it). Second, they will need to get network configurations (IP addresses, etc.) somehow. Often when you plug into the wall for an Internet connection, your computer asks some DHCP server for this info automatically. But when you only have two computers, you may have to give each of them a configuration manually. Also, I am not sure what you will do across the network (I don't know how Norton Ghost or whatever works); but the receiving computer inevitably needs to have some program listening for the connection, and also not have a firewall that is blocking connections or something. --Spoon! 07:49, 15 December 2006 (UTC)[reply]
I second this. I always carry my trusty crossover cable in my laptop case. This is the best way of connecting computers for people on a budget. Don't forget to enable sharing on both computers and then actually share the folders you want to transfer to. Set up a guest account on the target computer in the interests of security. Simple file sharing in XP is recommended for non-experts. You can also use the 'Alternate Configuration' tab under TCP/IP properties if you are using your laptop for example to connect to some other dedicated LAN. Set up the alternate 'user configured' IP as 192.1.1.x on both computers and you can use the DOS ping command to test connectivity. If you can ping successfully this is a good start. Good luck! Sandman30s 10:18, 15 December 2006 (UTC)[reply]
My advice - don't. Buy a 100gig external USB 2.0 hard drive, and back it all up onto there. If you want, you can transfer it to your desktop, but this way, you won't exactly need to, and you'll save yourself the trouble of Ethernet fun. --Wooty Woot? contribs 08:41, 15 December 2006 (UTC)[reply]
Just purchase a home router with wireless capabilities, it's by far the easiest and least expensive solution, and is basically plug and play (don't forget to buy cables if you plan to use ethernet instead of wireless). You don't have to use the Internet with most of these, and it will provide the DHCP and wireless functions mentioned above out of the box. Droud 14:38, 16 December 2006 (UTC)'[reply]
Nope. Easiest, sure. Least expensive, nope. The previously mentioned sole crossover cable beats it cost-wise by an order of magnitude, not counting any additional NICs, that would have to be purchased in any case. Using a hub or switch would be cheaper as well. Getting it to work with only a cable, hub or switch would be more difficult though, especially if you're also considering internet connection sharing, so it might actually be the best solution even if it isn't the cheapest one. 130.237.5.141 15:48, 20 December 2006 (UTC)[reply]

autocomplete[edit]

I recently had to research some unsavory subjects for a university debate. Now, every time I type in the letter that the subject begins with a box underneath the search box shows the name of the article. How do I stop this happening?

I have done it!! sorry for wasting time and space.

The exact answer depends on which browser you use, but in general this can be resolved by going into the options and taking advantage of any offers to clear your cache and forms. Tabs called 'Security' or 'Privacy' are very useful for this. - CHAIRBOY () 19:57, 15 December 2006 (UTC)[reply]
I use Firefox and I can delete specific autocomplete entries by just pressing shift+delete. This is done when typing text that has autocomplete on and something appears you dont want, you just scroll down to it and press shift+delete. Easy. Or, like Chairboy said, clear cache to delete all autocomplete data. (There are of course specialised programs that can do this kinda thing with one click if you need it more often, like "Cleanup Pro") Shinhan 17:46, 19 December 2006 (UTC)[reply]

Why doesn't this stupid thing compile??[edit]

g++ (GCC) 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)

Code:

#include <vector>

template<typename T> class Test
{
	std::vector<T>::iterator _iterator;
};

Compiler output:

g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"NewTest.d" -MT"NewTest.d" -o"NewTest.o" "../NewTest.cpp"
In file included from ../NewTest.cpp:1:
../Test.h:8: error: expected `;' before "_iterator"

Am I completely off my rocker or something? I'm hoping this is just me missing something obvious, but otherwise, it must be a bug in GCC... thanks. --Silvaran 22:23, 15 December 2006 (UTC)[reply]

It's probably not this easy, but is it #include <vector.h> It would fit with the error, as std::vector<T>::iterator would not be a defined data type, but surely it would come up with an error for missing includes?! --h2g2bob 23:05, 15 December 2006 (UTC)[reply]
No. C++ standard headers never have ".h" --Spoon! 01:44, 16 December 2006 (UTC)[reply]
From what I know, there's nothing wrong with that code --wj32 talk | contribs 00:28, 16 December 2006 (UTC)[reply]
It isn't sure that std::vector<T>::iterator is a type, so you have to add typename before it:
#include <vector>

template<typename T> class Test
{
	typename std::vector<T>::iterator _iterator;
};
--Spoon! 01:44, 16 December 2006 (UTC)[reply]
I think that did it. The test case compiled, so I'm going to apply it to my main code, run a few tests, and see what happens. Thanks!! --Silvaran 05:43, 17 December 2006 (UTC)[reply]
Followup: I'm somewhat sure it's a bug, but nonetheless, I can get around it by including the typename keyword before every reference to the nested type (I haven't looked at the headers, but I suspect they do a typedef __iterator_class iterator, where iterator is a nested class of a parent template class). --Silvaran 05:47, 17 December 2006 (UTC)[reply]

Complicated upper-bound runtime complexity calculation[edit]

For complicated reasons related to the nature of my doctoral thesis, I am confronted with this problem that goes beyond my immediate math skills. Consider a collection of trees - connected, directed, acyclic graphs where every node has an indegree of 0 or 1. Furthermore, every node and edge in the tree collection has a label that forms part of a finite alphabet.

I have learned of an algorithm, of fairly recent vintage, that counts all the embedded subtrees within the collection above a certain frequency threshold. So, using this algorithm, I have written a program that can extract every subtree in the tree collection with a frequency of at least two. The underlying algorithm is called FREQT, and it has a small literature that can be found on the 'Net.

The program, unfortunately, doesn't run very quickly. This algorithm has a worst case run time of O(kbn) where "n" is the number of nodes in the tree collection, "b" is the maximum branching factor, and "k" is the number of frequent subtrees trees extracted.

Question 1: Is there any way to calculate the worst case upper bound runtime of the algorithm without reference to "k" by knowing the maximum number of possible frequent subtrees given a fixed node count and a fixed alphabet size? Is there some way I can replace "k" by more easily calculated variables?

The best I've managed to do is to look at the problem like this: Assume that you have a single tree of size n containing k subtrees, including subtrees with a frequency of 1. Adding an additional node can never more than double the number of subtrees. Ergo, each node added to the tree collection can never more than double the number of subtrees with a frequency above any fixed number. Therefore, the worst case runtime is O(2nbn).

Question 2: Is there some glaring flaw in that logic I ought to know about before I present it at a conference next month?

Anybody out there with enough graph theory to help me out? I'm a linguist by trade, and while I like to think I'm pretty mathematically sophisticated for a linguist, I have never studied graph theory formally.

(Cross posted from the math help desk)

--Diderot 22:59, 15 December 2006 (UTC)[reply]

I think the algorithm in question is actually O(n2), where n is the number of nodes. Further, O(2nbn) doesn't make much sense, as the bn isn't relevant, since 2n would quickly become much larger than bn. Droud 14:51, 16 December 2006 (UTC)[reply]
Have you got a cite claiming O(n2) time for FREQT? --Diderot 16:11, 16 December 2006 (UTC)[reply]
I believe an optimal implementation would be quadratic due to the structured tree nature of the data, but I can find no citations (and precious few resources at all) on this algorithm. Either way, big O notation only has a single n inside the parentheses, so it would be O(2n) if the algorithm is exponential. Droud 02:55, 19 December 2006 (UTC)[reply]