I know C, Java, VB, and python, and I really like VB(.net).
Reasons: C is almost always too low-level for what I need. I don't want to worry about garbage and tracking the size of arrays. python doesn't have static type checking or really any type of static checks (because of its interpreted nature). I really, really like compile-time checks. Java is alright, but it doesn't have operator inheritance, doesn't force you to declare methods as overridable, and (mainly) doesn't have an IDE as nice as Visual Studio. Java generics are more flexible, though.
The big downside of VB is the dependency on windows, and some of the leftover junk from VB6 like on error goto.
You can create cryptographic systems that allow you to check the accuracy of your vote without revealing it in plaintext at any point. Essentially, you don't ask "Did I vote for X?", you ask "Was my vote recorded correctly?".
The only real way to avoid giving them your password is to use a password that will change after you use it. This can be as simple as the last character incrementing by 1 to 10 per login or as complicated as requesting a series of one time pads from the site before you go on your trip.
Of course, I've never seen websites that actually support this type of thing, so...
People do not see email as postcards. A friend of mine runs a small website, and people use email to contact the company for orders. A surprising number of them include their credit card numbers RIGHT IN THE EMAIL. That is INSANE! These are the same people who worry about typing those numbers into websites!
What we need is a permanent solution. Moving to something like 'kitten auth' will only work for so long.
Here is an example system. A definite way to distinguish a person from a computer is for that person to physically show up in line for a digitally signed RSA key pair. Registration on a website requires providing your public key, the signature for your public key, and encrypting a challenge with the private key. Downsides: single point of failure, lose of privacy (track the public key), inconvenient (oh you live in Africa? too bad), keys entered in infected computers get stolen, and I'm sure there's more.
I think it's about time some major websites made an agreement to block all traffic from any ISP that distinguishes based on website. A deterrent besides "we'll tell our family and friends not to use Virgin" is something we really need. Normal people won't stick with an ISP that can't reach youtube.
[I don't actually know the technical details of how or if this can be done]
You can already verify CD keys just be logging onto bnet normally. You get ip banned for a couple hours, but that's nothing a proxy won't fix.
I always assumed the keys used public crypto, so it would be possible to validate them without knowing how to generate them quickly. They certainly use it for the log-on process.
[[I explained that he himself could measure the speed of light with rather simply tools...]]
Exactly what you should do. But when you get this kind of easy-explanation opportunity you need to capitalize on it. I'm not sure if you explained how it could be done, or only that it could be done. If you didn't, you should have jumped straight into the how-to.
http://en.wikipedia.org/wiki/Speed_of_light#Earth-bound_techniques I think that experiment is easy to understand. Spin a gear until you find the speed where the reflecting light hits or doesn't hit it. That tells you how fast the light is going because you know how fast the gear is spinning and how far your mirrors are.
That's not true when their effectiveness depends on not being tracked. If you are a security guard and you follow the same patrol every hour, anyone who knows the patrol can avoid you every time. If you flip a coin to decide your direction or wait times here and there (and your route is reasonable), no one will be able to avoid you every time.
The same thing goes if you have valuables you need to transport from A to B every week. If you always follow the same route you're a much easier target: the enemy can ambush you every time. If you take a more random route they can only ambush you some of the time.
It's about time we start applying better crypto techniques. There is no need to reveal your entire PIN when you use an ATM. For example your PIN could increase by [1 to 32] every time you use it. Now someone needs to observe you twice in a row to get the PIN.
The obvious limitation is the human capacity for math.
Its much more than an issue with personal preference. Consider that, with a perfect boundary, you can win the majority of regions with far less than 50% of the total vote, even with similarly sized regions.
region 1: 101 A, 100 B region 2: 101 A, 100 B region 3: 101 A, 100 B region 4: 101 A, 100 B region 5: 201 B region 6: 201 B region 7: 201 B Total regions: 4 A, 3 B Total votes: 404 A, 1003 B A wins, but B should have won in a landslide
That's only true from a computability view point, where running time doesn't matter as long as its finite. Time complexity, on the other hand, can change from machine to machine. Searching a sorted array is O(lg(n)) on the typical computer, but O(n) on the typical theoretical Turing machine because they can't do random accesses.
Consider the problem of searching an unsorted array, and assume processors accessing memory don't interfere with each other. Then if you have m processors you can assign them each a piece of size n/m of the array, and get the job done in O(n/m) time. Check out http://en.wikipedia.org/wiki/Cache_oblivious for an example of a model with more than just n as a parameter.
But m is not a constant, its a parameter in our model. You might as well say O(n) is O(1) for any constant n.
In other words, we are looking at how the running time changes as the input size, and number of processors, increases.
You see a similar thing going on in the IO model, where you're counting disk accesses and you have three parameters (memory size M, block size B, input size N). In the IO model sorting takes O(N/B log_M/B_(N/B)), which is better than O(n lg(n)).
A large number of ads can be identified without even paying attention to the website./ad((space)|(border)|(centric)|(cycle)|(farm)|(frame)|(image)|(logs)|(mentor)|(serv)|(vert)|(vus)|(header)|(zone)|(fetch)|(vo)|(id=)|(client)|(data)|(srv)|(view))/
Except now customers are getting 2 tasks performed for them at the same price. We do the same amount of work and get more, instead of doing less and getting the same amount.
Your post states exactly what I meant by mine. I just assumed people would fill in "and then you need to show how it differs at that scale, and provide observations that support this."
I certainly don't think there's a conspiracy or anything of that sort.
I know C, Java, VB, and python, and I really like VB(.net).
Reasons:
C is almost always too low-level for what I need. I don't want to worry about garbage and tracking the size of arrays.
python doesn't have static type checking or really any type of static checks (because of its interpreted nature). I really, really like compile-time checks.
Java is alright, but it doesn't have operator inheritance, doesn't force you to declare methods as overridable, and (mainly) doesn't have an IDE as nice as Visual Studio. Java generics are more flexible, though.
The big downside of VB is the dependency on windows, and some of the leftover junk from VB6 like on error goto.
You can create cryptographic systems that allow you to check the accuracy of your vote without revealing it in plaintext at any point. Essentially, you don't ask "Did I vote for X?", you ask "Was my vote recorded correctly?".
The only real way to avoid giving them your password is to use a password that will change after you use it. This can be as simple as the last character incrementing by 1 to 10 per login or as complicated as requesting a series of one time pads from the site before you go on your trip.
Of course, I've never seen websites that actually support this type of thing, so...
People do not see email as postcards. A friend of mine runs a small website, and people use email to contact the company for orders. A surprising number of them include their credit card numbers RIGHT IN THE EMAIL. That is INSANE! These are the same people who worry about typing those numbers into websites!
What we need is a permanent solution. Moving to something like 'kitten auth' will only work for so long.
Here is an example system. A definite way to distinguish a person from a computer is for that person to physically show up in line for a digitally signed RSA key pair. Registration on a website requires providing your public key, the signature for your public key, and encrypting a challenge with the private key. Downsides: single point of failure, lose of privacy (track the public key), inconvenient (oh you live in Africa? too bad), keys entered in infected computers get stolen, and I'm sure there's more.
I think it's about time some major websites made an agreement to block all traffic from any ISP that distinguishes based on website. A deterrent besides "we'll tell our family and friends not to use Virgin" is something we really need. Normal people won't stick with an ISP that can't reach youtube.
[I don't actually know the technical details of how or if this can be done]
I was expecting lessons on how not to open weird emails then open their weird attachments. Why the hell isn't there a mandatory course for that?
You can already verify CD keys just be logging onto bnet normally. You get ip banned for a couple hours, but that's nothing a proxy won't fix.
I always assumed the keys used public crypto, so it would be possible to validate them without knowing how to generate them quickly. They certainly use it for the log-on process.
[[I explained that he himself could measure the speed of light with rather simply tools...]]
Exactly what you should do. But when you get this kind of easy-explanation opportunity you need to capitalize on it. I'm not sure if you explained how it could be done, or only that it could be done. If you didn't, you should have jumped straight into the how-to.
http://en.wikipedia.org/wiki/Speed_of_light#Earth-bound_techniques
I think that experiment is easy to understand. Spin a gear until you find the speed where the reflecting light hits or doesn't hit it. That tells you how fast the light is going because you know how fast the gear is spinning and how far your mirrors are.
GP meant quantum encryption is still vulnerable to man in the middle attacks.
http://en.wikipedia.org/wiki/Quantum_encryption#Man_in_the_middle_attack
That's not true when their effectiveness depends on not being tracked. If you are a security guard and you follow the same patrol every hour, anyone who knows the patrol can avoid you every time. If you flip a coin to decide your direction or wait times here and there (and your route is reasonable), no one will be able to avoid you every time.
The same thing goes if you have valuables you need to transport from A to B every week. If you always follow the same route you're a much easier target: the enemy can ambush you every time. If you take a more random route they can only ambush you some of the time.
Just watermark the picture again with random data. No paper bag required.
It's about time we start applying better crypto techniques. There is no need to reveal your entire PIN when you use an ATM. For example your PIN could increase by [1 to 32] every time you use it. Now someone needs to observe you twice in a row to get the PIN.
The obvious limitation is the human capacity for math.
I made it to the end of chapter 7 and the site got slashdotted (on a cliffhanger!...).
It's a great story!
Algorithms is the killer course at my university. I'm not sure why, I absolutely loved it.
I have a friend who failed it multiple times. I tried to help, but I think its a very "you get it or you don't" course.
Its much more than an issue with personal preference. Consider that, with a perfect boundary, you can win the majority of regions with far less than 50% of the total vote, even with similarly sized regions.
region 1: 101 A, 100 B
region 2: 101 A, 100 B
region 3: 101 A, 100 B
region 4: 101 A, 100 B
region 5: 201 B
region 6: 201 B
region 7: 201 B
Total regions: 4 A, 3 B
Total votes: 404 A, 1003 B
A wins, but B should have won in a landslide
The problem is that if you drew the boundaries differently different people would be elected.
Grouping your numbers until they all round down doesn't make your original input smaller.
Run the game in windowed mode and that's not an issue.
That's only true from a computability view point, where running time doesn't matter as long as its finite. Time complexity, on the other hand, can change from machine to machine. Searching a sorted array is O(lg(n)) on the typical computer, but O(n) on the typical theoretical Turing machine because they can't do random accesses.
Consider the problem of searching an unsorted array, and assume processors accessing memory don't interfere with each other. Then if you have m processors you can assign them each a piece of size n/m of the array, and get the job done in O(n/m) time. Check out http://en.wikipedia.org/wiki/Cache_oblivious for an example of a model with more than just n as a parameter.
But m is not a constant, its a parameter in our model. You might as well say O(n) is O(1) for any constant n.
In other words, we are looking at how the running time changes as the input size, and number of processors, increases.
You see a similar thing going on in the IO model, where you're counting disk accesses and you have three parameters (memory size M, block size B, input size N). In the IO model sorting takes O(N/B log_M/B_(N/B)), which is better than O(n lg(n)).
Let m be the number of processors
O(n/m) is better than O(n)
We can do better than n*lg(n) because it's a different computing model.
Flashing green means the opposite side still has a red. You can make left turns without waiting for them.
It's bothering me how few people know common traffic signals.
A large number of ads can be identified without even paying attention to the website. /ad((space)|(border)|(centric)|(cycle)|(farm)|(frame)|(image)|(logs)|(mentor)|(serv)|(vert)|(vus)|(header)|(zone)|(fetch)|(vo)|(id=)|(client)|(data)|(srv)|(view))/
is by far the best performing filter I have.
Except now customers are getting 2 tasks performed for them at the same price. We do the same amount of work and get more, instead of doing less and getting the same amount.
Your post states exactly what I meant by mine. I just assumed people would fill in "and then you need to show how it differs at that scale, and provide observations that support this."
I certainly don't think there's a conspiracy or anything of that sort.