You obviously have underestimated peoples tenacity at solving puzzles. The is FUN to a lot of people, and all it takes is one guy to find out your secret. No I understand that fun, I wouldn't do this job if I didn't. What I'm pointing out is that some of the give-aways that label a stream as p2p traffic are not simple to fix. They impact download performance. They are a downright pain in the ass to fix - the pool of people skilled enough to do it that think it is fun is shrinking rapidly.
There is major difference between this and copy protection. btw I've never heard someone with so much religosity on the subject, outside of this bizarre context that is slashdot you would be quite scary:) To fix copy protection (whoops, just done it myself) you really do have a puzzle - you play with it to see where the routines are in a debugger. You get instant feedback on if you are right or wrong. When you are wrong you get to see some information about why you are wrong.
This "puzzle" has none of those characteristics. You are changing one of a million attributes of a dataflow. Somebody else is reading and estimating that attribute. You have to get the whole set to fall below their threshold before you get any feedback. That is what we call "work".
OK then lets play a game. I can still spot your traffic and classify it as p2p with near 100% accuracy. I'm not going to tell you how, you have to guess and experiment. If you reply here with another attempt then I'll tell you if you pass or fail, but not why.
Still want to play? If this sounds unfair then consider how this machine will be deployed...
PS You still haven't defeated the encryption fingerprints that the DPI uses but there is something much more obvious that identifies your traffic as p2p
Although this was designed earlier than any other contender it wasn't actually built until recently. So the code running on it is relatively modern. I'd go for Colossus if the questioner hadn't specifically ruled it out with criteria that the code hadn't been re-implemented in any way. Like the Difference Engine, Colossus was a general-purpose (reprogramable) machine. After its use in the 1940s it took until the recent rebuild at Bletchy Park before the code has been used again.
The standard textbook implementation of GCD only uses a single arithmetic operator... And the algorithm was pretty old by the time Turing wrote a copy of it...
That's not true (that you don't see small floating point - I assume that you're correct about these guys). If you read some of the literature on tone mapping they use small floating point formats. The reason being that although the eye is good at picking out graduations in colour over small ranges, when it is over a larger range the smaller graduations are ignored. Ie you get the same degradation in precision for larger magnitudes that floating point exhibits.
The best working guesses for this behaviour are that the neurons that do the relevant processing on the optic nerve are the type that integrate exponents of signals, rather than the signals themselves. (It's been a while since I last watched a seminar on this so I can't remember the names of the two types of neurons).
There are two main ways to improve over a standard system and the summary sounds as if they've done both. The contrast range on a normal screen is in the order of 500:1. On a bright sunny day outdoors our eyes pick up contrast ratios that are 1000s of times larger. The claim about blacker blacks and whiter whites will be a reference to High Dynamic Range.
Once you increase the range of colours that you are going to display it means the gaps between distinct colours become larger and so more bits are required to compensate. I'm way too lazy to actually look at the "article" but they've probably shifted from a fixed point representation for colour components to a floating-point one. This produces a colour-space that maps much better onto what we perceive.
I remember that study - was probably duped on slashdot a few times. The one where their point was that we always assume an emotive stance for what we read because that's what we're used to in real life.
Anyways, no worries, it was fun and I learnt a couple of things which is always nice:)
I would guess that you are using a small amount of concurrency (2-10 processes?) with large chunks of computation between each context switch. If you start scaling into large amounts of concurrency (1000s processes) and using the concurrency in a more fine-grained manner (shorter computation blocks) then the overhead would probably rise.
Of course the old adage applies: if it works for you...
OK, interesting reading. Those are several citations that backup your point. I was basing my opinion purely on the majority of what I've heard anecdotally and seen in the media.
However, there are a couple of niggles in those serveys: the ICM poll quoted doesn't actually mention which question was asked. It simply states that 81% of people polled agreed with it, and were therefore in favour of ID cards. The normal quality of an ICM question is "Are you in favour of reducing terrorism through the introduction of ID cards?". It is also only a single data point, so I would take it with a pinch of salt.
The BBC forums result is quite laughable. I don't know how familiar you are with the normal crowd on the BBC forums, but of the 14000 self-selected votes cast in that poll I would suspect that 13500 of them belong to a man called Len who lives in Lincolnshire with a pitbull terrier called Nazi.
Given that the 90-day extensions were derided in the media, and forced out in the house I would suspect this is due to popular support rather than a politician making a moral stand.
The summary mentioned it only phoned home every ten days so you'd be fine on a flight (most of the time). More worrying, after what happened with halflife 2 in Taiwan is what happens if you try to authenticate your London copy from an IP in LA and it barfs and moans about regions?
I don't do DRM. After I've bought and installed a game I always download the crack so I don't have to fuck around with dvds. Don't get me wrong, I don't mind paying for software, but DRM is just stupid. Thank god for the crackers.
I know that you want to pander to the slashdot groupthink on this article but you are talking absolute bollocks. ID cards were never a popular measure outside of the readership of the Daily Mail. Can you back up your claim that the majority ever wanted them? Blair's crowd has taken a pounding from everyone the 42-day measures, so try and cough up a figure in support of that if you can.
While I'm on the subject of dodgy figures. We have an inflammatory summary (on slashdot, no really!?) which doesn't add up. ONLY 3% of street crime was recorded by CCTV so it must be rubbish - What lack of logical thought lead to that conclusion? What percentage of the country is covered by CCTV? What percentage of the population is covered, especially in comparison to other reporting means? In short just because 3% is a "small" number does not automatically imply that CCTV has not been effective. It is sheer stupidity to line up behind such a dubious argument.
Yikes, you need to read less into what you think people have said. Just because I didn't add a smiley you shouldn't assume that my post was serious. I thought that it was obvious I was just pissing around from context, and besides we both know I'm too lazy to type the extra two characters:)
Point 1 - fair enough. Point 2 - not what I said. Point 3 - not what I said. Basically for storage of digital information it makes sense to me (as a programmer and a computer scientist) to do it in binary. YMMV. For data transmission or anything to do with frequencies it would be messy.
Now take a deep breath and repeat after me: "Not everyone on slashdot is having a go at me..."
Yes I said that. They have horrible overhead for what you are describing. It is much better to replace threads with "process-like" threads as you call them. The theory is quite well developed and has been around for 30+ years. They are a much more productive way to write concurrent code than the horrors that are threads + mutexs.
This doesn't work as well as you might think. When there is a cursor skittering over a background based on your gaze it attracts your attention - so if there is any latency at all between your center of vision and the mouse pointer you are screwed. To completely avoid that kind of latency you would need hundreds of fps to cover the natural saccades in gaze.
Ironically (given the claims in the article) I know this from playing an eye-tracker based game this year. The students who wrote it decided the hardware wouldn't handle a fast FPS so they wrote an adventure game instead where the only fast motion was the cursor and it was still enough to induce instant eye-strain and a blinding headache.
They did reduce the effects somewhat with a predictive position filter on the cursor but it still wasn't as "natural" i.e unconscious as a mouse. There is no link to their work online yet but it has been accepted as a poster this year at sigraph.
Man you've done it again. Perhaps it's not just a reading thing - are you actually retarded? Thanks for the description of what an advert on google looks like. If you'd asked someone a bit smarter than you they could have explained that "WTF would sticking to search results achieve here?" was a pretty good indication that I knew the link was not a search result. Do you have any other insight to add? After all it's all shits and giggles for the kids reading your posts
I don't think that anyone misunderstood the article although your analogy is flawed at best. In the situation where a company uses another trademark to dishonestly market their goods they have broken the law. The dishonestly market part is important - this is what trademark protection is setup to avoid.
When I google for lastminute.com people have placed bids on that keyword to present relevant information. Note, this is their definition of relevant, not mine as the consumer but we'll ignore that. They have not passed themselves off as another party. They have not used the trademark in communication with me. These are the two key differences.
Personally I think it is perfectly fine - we are supposed to run a free market, to stop this would be to deny information to the consumer and stop them making an informed choice. I suspect it's probably a grey area in uk law as there will not yet be a precedent, although this case should take care of that.
To tidy your analogy up a bit; imagine that Coke took out a contract to buy advertising next to every site selling Pepsi. In these slots they put signs saying "Hey, we sell a similar product". Would this impinge on the Pepsi trademark in any way?
Did you not read what he said, or did you just fail to understand it? The first link was deceptive - it appeared to go where he wanted but actually ended up on a different site. WTF would sticking to search results achieve here?
The problem is that Google is allowing deceptive advertising in its results. If they allow one company to pass themselves off as another then they will be sued and they will lose.
Ok, so think of it like this. If I have 1GB of ram shared amongst 128 processors then I have two choices: one large image (shared) or multiple smaller images (partitioned). If the whole bank is shared then each memory access has to arbitrate for access to the whole bank. The memory ranges of each processor completely overlap so there is always a cost for arbitration to access the resource.
If we partition the bank into two pools, with 64 processors accessing each pool then we have just cut the arbitration cost in two so every memory access will be faster. In CUDA there is flexibility for how to split the ram, and it can be done hierarchically. So I might split in two as described, but then in each group of 64 processors I may partition off 32 processors into a subgroup on a smaller partition.
In practice if I'm doing something at the extremely parallel end of the range (like rendering) then I can split my bank into 128 pieces as each subtask is completely independent and the data does not overlap (shared parameters would be replicated onto each node). Now there is no arbitration costs at all for accessing memory so the entire program receives a boost in performance.
The nice idea in CUDA is that I can choose somewhere between these two extremes and setup the memory hierarchy appropriately. Now I'm working from memory and I've only used a 7-series with OpenGL, my knowledge of CUDA is just from the reference docs and working in a similar area. But if I remember correctly you are not locking a single pool of memory - you can specify locks at each level of the memory hierarchy. So now the L1 / L2 caches don't fight between each stream processor and there is no need to handle cache consistency once they are running in separate partitions.
Although I've never had a series-8 to try it out on... (hmm, suddenly realises there is one in the laptop I'm typing on... must play with that later) my PhD supervisor did some work on partitioned caches about a decade ago. It was one of those typical things where the academic community went "what's the point of that then?" and it was ignored right up until the point that Nvida "reinvented" it without any credit. But hey, that's life.
If you're syncing shared memory access then you have to worry about memory consistency. This is basically the problem that you would have between separate caches in an SMP system. If you partition the memory then you have a simple form of locking.
Fair point. I'm actually quite shocked on how badly music industry lawyers will chase people over tiny samples now that I've looked into it. There doesn't appear to be any lower limit on time or similarity. Given that three-note sequences have been successfully labeled as copyright infringement we must be approaching an end to "new" music fairly soon.
It's just like the try before you buy on most mp3 sites. So all we do is let users sample 5 seconds of the song to see if they like it. But, err... we let them choose any 5 second window and we do that a couple of million times a minute...
I think that you've oversimplified a tad too much. You are assuming instant switching time on your gates. Sure light could propagate that fast in a vacuum, and electrons in a wire could do some comparable %. But a pipeline stage may have a combinatorial depth of several hundred gates and once you subtract their switching time signal propagation is a serious problem. The current range of Core2s has to use lots of fancy tricks (like asynchronous timing domains) to get around clock-skew at 3Ghz on a 11mm square die.
There is major difference between this and copy protection. btw I've never heard someone with so much religosity on the subject, outside of this bizarre context that is slashdot you would be quite scary
This "puzzle" has none of those characteristics. You are changing one of a million attributes of a dataflow. Somebody else is reading and estimating that attribute. You have to get the whole set to fall below their threshold before you get any feedback. That is what we call "work".
OK then lets play a game. I can still spot your traffic and classify it as p2p with near 100% accuracy. I'm not going to tell you how, you have to guess and experiment. If you reply here with another attempt then I'll tell you if you pass or fail, but not why.
Still want to play? If this sounds unfair then consider how this machine will be deployed...
PS You still haven't defeated the encryption fingerprints that the DPI uses but there is something much more obvious that identifies your traffic as p2p
Although this was designed earlier than any other contender it wasn't actually built until recently. So the code running on it is relatively modern. I'd go for Colossus if the questioner hadn't specifically ruled it out with criteria that the code hadn't been re-implemented in any way. Like the Difference Engine, Colossus was a general-purpose (reprogramable) machine. After its use in the 1940s it took until the recent rebuild at Bletchy Park before the code has been used again.
The standard textbook implementation of GCD only uses a single arithmetic operator... And the algorithm was pretty old by the time Turing wrote a copy of it...
That's not true (that you don't see small floating point - I assume that you're correct about these guys). If you read some of the literature on tone mapping they use small floating point formats. The reason being that although the eye is good at picking out graduations in colour over small ranges, when it is over a larger range the smaller graduations are ignored. Ie you get the same degradation in precision for larger magnitudes that floating point exhibits.
The best working guesses for this behaviour are that the neurons that do the relevant processing on the optic nerve are the type that integrate exponents of signals, rather than the signals themselves. (It's been a while since I last watched a seminar on this so I can't remember the names of the two types of neurons).
There are two main ways to improve over a standard system and the summary sounds as if they've done both. The contrast range on a normal screen is in the order of 500:1. On a bright sunny day outdoors our eyes pick up contrast ratios that are 1000s of times larger. The claim about blacker blacks and whiter whites will be a reference to High Dynamic Range.
Once you increase the range of colours that you are going to display it means the gaps between distinct colours become larger and so more bits are required to compensate. I'm way too lazy to actually look at the "article" but they've probably shifted from a fixed point representation for colour components to a floating-point one. This produces a colour-space that maps much better onto what we perceive.
Can I get a account ? :)
I remember that study - was probably duped on slashdot a few times. The one where their point was that we always assume an emotive stance for what we read because that's what we're used to in real life.
:)
Anyways, no worries, it was fun and I learnt a couple of things which is always nice
I would guess that you are using a small amount of concurrency (2-10 processes?) with large chunks of computation between each context switch. If you start scaling into large amounts of concurrency (1000s processes) and using the concurrency in a more fine-grained manner (shorter computation blocks) then the overhead would probably rise.
Of course the old adage applies: if it works for you...
OK, interesting reading. Those are several citations that backup your point. I was basing my opinion purely on the majority of what I've heard anecdotally and seen in the media.
However, there are a couple of niggles in those serveys: the ICM poll quoted doesn't actually mention which question was asked. It simply states that 81% of people polled agreed with it, and were therefore in favour of ID cards. The normal quality of an ICM question is "Are you in favour of reducing terrorism through the introduction of ID cards?". It is also only a single data point, so I would take it with a pinch of salt.
The BBC forums result is quite laughable. I don't know how familiar you are with the normal crowd on the BBC forums, but of the 14000 self-selected votes cast in that poll I would suspect that 13500 of them belong to a man called Len who lives in Lincolnshire with a pitbull terrier called Nazi.
Given that the 90-day extensions were derided in the media, and forced out in the house I would suspect this is due to popular support rather than a politician making a moral stand.
The summary mentioned it only phoned home every ten days so you'd be fine on a flight (most of the time). More worrying, after what happened with halflife 2 in Taiwan is what happens if you try to authenticate your London copy from an IP in LA and it barfs and moans about regions?
I don't do DRM. After I've bought and installed a game I always download the crack so I don't have to fuck around with dvds. Don't get me wrong, I don't mind paying for software, but DRM is just stupid. Thank god for the crackers.
I know that you want to pander to the slashdot groupthink on this article but you are talking absolute bollocks. ID cards were never a popular measure outside of the readership of the Daily Mail. Can you back up your claim that the majority ever wanted them? Blair's crowd has taken a pounding from everyone the 42-day measures, so try and cough up a figure in support of that if you can.
While I'm on the subject of dodgy figures. We have an inflammatory summary (on slashdot, no really!?) which doesn't add up. ONLY 3% of street crime was recorded by CCTV so it must be rubbish - What lack of logical thought lead to that conclusion? What percentage of the country is covered by CCTV? What percentage of the population is covered, especially in comparison to other reporting means? In short just because 3% is a "small" number does not automatically imply that CCTV has not been effective. It is sheer stupidity to line up behind such a dubious argument.
Yikes, you need to read less into what you think people have said. Just because I didn't add a smiley you shouldn't assume that my post was serious. I thought that it was obvious I was just pissing around from context, and besides we both know I'm too lazy to type the extra two characters :)
Point 1 - fair enough. Point 2 - not what I said. Point 3 - not what I said. Basically for storage of digital information it makes sense to me (as a programmer and a computer scientist) to do it in binary. YMMV. For data transmission or anything to do with frequencies it would be messy.
Now take a deep breath and repeat after me: "Not everyone on slashdot is having a go at me..."
Yes I said that. They have horrible overhead for what you are describing. It is much better to replace threads with "process-like" threads as you call them. The theory is quite well developed and has been around for 30+ years. They are a much more productive way to write concurrent code than the horrors that are threads + mutexs.
This doesn't work as well as you might think. When there is a cursor skittering over a background based on your gaze it attracts your attention - so if there is any latency at all between your center of vision and the mouse pointer you are screwed. To completely avoid that kind of latency you would need hundreds of fps to cover the natural saccades in gaze.
Ironically (given the claims in the article) I know this from playing an eye-tracker based game this year. The students who wrote it decided the hardware wouldn't handle a fast FPS so they wrote an adventure game instead where the only fast motion was the cursor and it was still enough to induce instant eye-strain and a blinding headache.
They did reduce the effects somewhat with a predictive position filter on the cursor but it still wasn't as "natural" i.e unconscious as a mouse. There is no link to their work online yet but it has been accepted as a poster this year at sigraph.
You didn't actually have anything to back up your point then? Just a quote out of context and a quick jibe. You call me lazy?
Man you've done it again. Perhaps it's not just a reading thing - are you actually retarded? Thanks for the description of what an advert on google looks like. If you'd asked someone a bit smarter than you they could have explained that "WTF would sticking to search results achieve here?" was a pretty good indication that I knew the link was not a search result. Do you have any other insight to add? After all it's all shits and giggles for the kids reading your posts
I don't think that anyone misunderstood the article although your analogy is flawed at best. In the situation where a company uses another trademark to dishonestly market their goods they have broken the law. The dishonestly market part is important - this is what trademark protection is setup to avoid.
When I google for lastminute.com people have placed bids on that keyword to present relevant information. Note, this is their definition of relevant, not mine as the consumer but we'll ignore that. They have not passed themselves off as another party. They have not used the trademark in communication with me. These are the two key differences.
Personally I think it is perfectly fine - we are supposed to run a free market, to stop this would be to deny information to the consumer and stop them making an informed choice. I suspect it's probably a grey area in uk law as there will not yet be a precedent, although this case should take care of that.
To tidy your analogy up a bit; imagine that Coke took out a contract to buy advertising next to every site selling Pepsi. In these slots they put signs saying "Hey, we sell a similar product". Would this impinge on the Pepsi trademark in any way?
Did you not read what he said, or did you just fail to understand it? The first link was deceptive - it appeared to go where he wanted but actually ended up on a different site. WTF would sticking to search results achieve here?
The problem is that Google is allowing deceptive advertising in its results. If they allow one company to pass themselves off as another then they will be sued and they will lose.
Ok, so think of it like this. If I have 1GB of ram shared amongst 128 processors then I have two choices: one large image (shared) or multiple smaller images (partitioned). If the whole bank is shared then each memory access has to arbitrate for access to the whole bank. The memory ranges of each processor completely overlap so there is always a cost for arbitration to access the resource.
If we partition the bank into two pools, with 64 processors accessing each pool then we have just cut the arbitration cost in two so every memory access will be faster. In CUDA there is flexibility for how to split the ram, and it can be done hierarchically. So I might split in two as described, but then in each group of 64 processors I may partition off 32 processors into a subgroup on a smaller partition.
In practice if I'm doing something at the extremely parallel end of the range (like rendering) then I can split my bank into 128 pieces as each subtask is completely independent and the data does not overlap (shared parameters would be replicated onto each node). Now there is no arbitration costs at all for accessing memory so the entire program receives a boost in performance.
The nice idea in CUDA is that I can choose somewhere between these two extremes and setup the memory hierarchy appropriately. Now I'm working from memory and I've only used a 7-series with OpenGL, my knowledge of CUDA is just from the reference docs and working in a similar area. But if I remember correctly you are not locking a single pool of memory - you can specify locks at each level of the memory hierarchy. So now the L1 / L2 caches don't fight between each stream processor and there is no need to handle cache consistency once they are running in separate partitions.
Although I've never had a series-8 to try it out on... (hmm, suddenly realises there is one in the laptop I'm typing on... must play with that later) my PhD supervisor did some work on partitioned caches about a decade ago. It was one of those typical things where the academic community went "what's the point of that then?" and it was ignored right up until the point that Nvida "reinvented" it without any credit. But hey, that's life.
If you're syncing shared memory access then you have to worry about memory consistency. This is basically the problem that you would have between separate caches in an SMP system. If you partition the memory then you have a simple form of locking.
Fair point. I'm actually quite shocked on how badly music industry lawyers will chase people over tiny samples now that I've looked into it. There doesn't appear to be any lower limit on time or similarity. Given that three-note sequences have been successfully labeled as copyright infringement we must be approaching an end to "new" music fairly soon.
I'm having a sudden Office Space moment:
It's just like the try before you buy on most mp3 sites. So all we do is let users sample 5 seconds of the song to see if they like it. But, err... we let them choose any 5 second window and we do that a couple of million times a minute...
I think that you've oversimplified a tad too much. You are assuming instant switching time on your gates. Sure light could propagate that fast in a vacuum, and electrons in a wire could do some comparable %. But a pipeline stage may have a combinatorial depth of several hundred gates and once you subtract their switching time signal propagation is a serious problem. The current range of Core2s has to use lots of fancy tricks (like asynchronous timing domains) to get around clock-skew at 3Ghz on a 11mm square die.