Wouldn't this technology be great for fixing up all those ID3 tags?
Well with google you can already do this for free.
I'll do you one better: musicbrainz recognizes songs by music fingerprint. The API is rough around the edges but it works pretty well. I cobbled together a python script to tag my 1300 mp3s and it identified all but a handful correctly. I'll throw a copy up on this page later for anyone who's interested.
Quantum Cryptography is indeed real cryptography. It uses the encryption
system known as the One Time Pad.
Not long ago, I took a graduate course in quantum computing from a researcher in the field. I wrote a paper for that class specifically on
quantum cryptography. In 2001, I worked in the same lab as a physicist
building a quantum cryptography device (we had lunch almost every day).
I've also studied quite a bit of conventional cryptography. Trust me when
I say this:
Quantum cryptography has nothing to do with encryption, and barely
anything to do with cryptography. It's an authentic channel with
eavesdropping detection (but not prevention). In other words, QC is just a
bootstrapping phase to distribute key material (random data) to two
parties. Everything you do from that point forward, including everything
involving your actual data, is classical crypto on classical channels.
QC has nothing to do with one-time pads. You could use the key material
for OTPs, if you're deranged. More likely you'll use something like
CBC-AES, CTR-AES, CBC-3DES for encryption, which are much faster (less key
material, not limited by QC data rate), simpler, and safer (unless you have
the resources of a major world government to oversee proper handling of the
data and key material at every point from creation to destruction). At any
rate, you'll still need integrity even with a OTP or your data is
worthless. That means SHA1-HMAC, CBC-MAC-AES, etc.
Cryptography proper punts on the key distribution issue as it's not
solvable mathematically. It's an administrative not an algorithmic
problem, putting it outside the domain of modern cryptography. This
applies equally to asymmetric crypto; public key databases and root
certificates require proper oversight and maintenance. Hence the one
problem QC solves, key distribution, is really external (but related) to
the field of cryptography. That's why I say the two are orthogonal.
The funny part is, QC isn't even a good solution to key distribution. Its
physical requirements are costly, stringent, and limiting. Unless you're
an ultra-cautious damn-the-expense client like the US govt, there are
more cost effective ways to exchange keys, and much better ways to improve
your data's security. QC is a problem in search of a solution.
Indeed, the reproductive costs, as well as resulting fertility rates and mating quality among US engineers are statistics that needs to be studied carefully if we are to come to any sort of understanding of the outsourcing phenomenon.
Stop, my head hurts; I can't take anymore. American engineers aren't "dying off" because they can't reproduce. Your theory requires that
Engineering is genetic
These genes are located on the Y chromosome
Only or primarily engineers carry and pass on these so-called "engineering" genes
People with "engineering" genes always become engineers, rather than choosing a career influenced by market conditions like most everyone else.
Engineers produce fewer children on average than comparably educated men in other fields.
Engineers would produce more children if they married more.
Engineers will stay celibate rather than marry non-engineers.
Frankly all these assumptions are ludicrous (reproduction rates are empirically testable, but irrelevant without the others). It's nothing but folk heredity theory spiced up in the language of genetics. Such views have been completely discredited by modern anthropology and genetics. Stop drinking the sociobiologist kool-aid and go read Jonathan Marks.
How about this alternate explanation: our culture discourages engineering through social stigma and glorification of anti-intellectualism, style over substance, and instant gratification, pushing many perfectly capable engineers into other fields. Women in particular are driven away by the male-dominated engineering culture, which produces such jack-ass theories as engineers dying off in droves because it's tough to find a date at MIT.
In the case of Firefly, I can tell you why...
Basically, just about everything a network can do to not encourage a following, they did.
s/Firefly/Action/
s/Firefly/Family Guy/
s/Firefly/Greg The Bunny/
s/Firefly/Undeclared/
Every season Fox trots out another surprisingly witty show to plug the gap between When Midgets Attack and Close-Up Animals With a Wide-Angle Lens Wearing Hats. Despite critical acclaim, the "filler" shows rarely see a second season and die before their time. Someone at Fox likes taunting us.
Whitespace (or more specifically, indentation) significance forces you to make the visual structure of your code match its semantic structure.
Tired of Perl's quirks, I finally switched to Python a couple years ago. I absolutely love it. However the whitespace issue still bugs me. The argument about it forcing good visual structure rings hollow. Naming constants with ALL CAPS is good practice too, but I don't know of a single language which forces you to do so. Yet somehow everybody does it.
In my book, conventions should be encouraged, not enforced. Sometimes the rules need to be broken. For example, say I want to add a temporary statement to a block of code (for debugging or otherwise). I only want it for a few runs then I'll remove it. In other languages, I can put such statements flush left where they stick out like a sore thumb, making them easy to remove later. Python doesn't allow that.
It comes down to a philosophical difference. I prefer giving people structural freedom over their code. Good programmers use the freedom well, following conventions when they promote understanding the code, and breaking them when they inhibit it. Breaking a convention is a good sign something weird is going on, so that code should be inspected more carefully. Python's whitespace allows no such visual clues.
Bad programmers will write bad code in any language. Good indentation may make it more readable, but it won't be any more intelligible. And there are automated tools for indentation. Why hamstring all programmers for the sake of saving a few reformatting cycles on pathological cases?
The whitespace has little to do with why Python code is so intelligible. I've read tens of thousands of lines of code in other languages and the vast majority is indented properly too. What makes Python so intelligible is the lack of surprises. The core language is small and behavior is consistent -- there are almost no special cases where semantics change. Contrast with C++, where identical syntax can cause radically different behavior depending on whether Section 58 Paragraph 29 Clause 11 of the C++ Standard applies or not.
That said, if you use a Python-aware editor like vim/emacs and run with the -tt option, you'll rarely run into the whitespace issue. In practice it doesn't bother me so much.
Who owns an idea? This isn't a facile question, it's actually the root
of the issue. A book/movie/song/painting/artistic expression is just a set
of ideas fixed in a tangible medium. When you view a creation, you
experience those ideas and make them your own. In other words, your
thoughts and feelings filter your perceptions to create a unique personal
experience.
Subsequent alterations of a work can never replace your experience of
the original. Ideas can't be "undone". At best, changes to a work can
supplement or enhance it in the spirit of the original. At worst, they
corrupt or cheapen the ideas into a twisted distortion. But it's never the
same experience as the original, and every person will perceive the changes
differently.
Creators are given distribution rights over physical manifestations of
their works to encourage them to create (how effectively that works is
another topic). This includes the ability to create derivative works by
altering the original. Some people will prefer the new version, others the
old. But ultimately they are two separate works, as surely as if made by
two different artists. One can never replace the other because each
embodies a (perhaps slight) variation on the ideas of the piece.
A creator who owns his creation lock, stock, and barrel is given
unnatural dominion over other people's minds. An artist is free to create
as many new versions as they want. But eliminating access to the originals
deprives the world of that experience. It is an invasive intrusion
into our minds to say "No longer can you experience what you saw before.
Now you must see it as I say." It is shameful revisionist history.
Lucas can keep his super special terrific happy deluxe editions. They
are a gross debasement of what I love about the originals and I will not
spend a dime on them.
On the other hand, the grandparent is incorrect that breaking RSA via Quantum Computing is unrelated.
There is no relation between quantum "encryption" and RSA. Quantum computers are a completely different technology than quantum key distribution. All you need for the latter is fiber optic cable, some photon counters, and polarizing filters. Quantum computers OTOH require quantum circuits, which are no more than lab toys ATM. It could be 50 years before we see sizable quantum computers, if ever.
Even if QCs do arrive, that doesn't mean quantum key distribution will take off as well. As you said, it will be a whole lot cheaper and just as effective to ship a storage device full of symmetric keys to whoever you're communicating with. RSA and quantum encryption are independent technologies; the downfall of one will not necessarily lead to the rise of the other.
Quantum encryption is not about exchanging keys, its not even encryption in its normal sense. What it really is, is secure trasmission.
Secure in the sense that eavesdropping is detectable but not (entirely) preventable. It's an authentic channel which detects privacy compromises after the fact. You never want to send real data down such a pipe. It's perfect for key distribution: if you detect eavesdropping, toss the key and send a new one.
Quantum "encryption" is for the most part useless. It's just another way to exchange symmetric keys. The advantages are purely information-theoretic; in the real world, classical methods are just as good and a whole lot cheaper.
It's like replacing a steel deadbolt with titanium, meanwhile the door is wooden, the hinges are brass, and there's a large window right next to it.
The only possible uses are extremely high-value applications like banking and the military. Even then I'd spend my money elsewhere.
The breaking RSA stuff is unrelated (quantum computers, not quantum key exchange) and pure speculation. RSA isn't going away for a loooong time.
I went to a small Cal State and looked into transfering to a UC after my sophomore year. In the end, it just wasn't worth it. Because of various quirks in sequencing, it would've taken me 3 more years to finish just a CS degree at a UC.
By staying put, I was able to complete a double major in CS and math in only 2 years. Because it was a smaller school, I also got to know the faculty really well working on a few projects outside the classroom. That's helped me immensely down the road as they've provided excellent personal references.
Having taught CS courses at several places, I can say the curriculum is pretty much the same everywhere. You're not missing much material by not going to a larger university.
On the downside, the career placement offices at large schools can be worth their weight in gold, especially if you want to work outside the area. Coming from a small school, you'll have to do a lot more legwork to find openings. But once you do, the degree doesn't matter nearly so much. Whatever school you're at, the most important thing is to build up contacts and experience.
A splashscreen is like a commercial that grabs your head in a vice and holds your eyelids open with toothpicks. Open a normal window with normal window controls.
Actually, some splash screens are good for something. Think about Java programs that have to be runtime compiled, they usually take long times to load. In a case like that, a splash screen is extremely useful.
You do NOT want a splash screen for this. Have it open a normal window right away with normal window controls -- goes to background, minimize, stays on one desktop. Splash screens prevent you from doing other work while the program starts. It's like a commercial that grabs your head in a vice and holds your eyelids open with toothpicks.
The US style of writing dates (and I live in the US) drive me completely batty. MM/DD/YY? No! That makes no sense.
Sure it does, if you think in terms of psychology. For most people in most circumstances, dates are highly localized, temporally speaking: less than six months off in either direction. The year portion can therefore usually be assumed correctly. Makes sense to put it at the end where it's out of the way.
The first thing I want to know is a rough time frame for the date. Is it this month, something I have to worry about soon? A future month, something I can worry about later? Or a past month, telling me I can ignore the exact day? The next most relevant information is the day: is soon today or next week, does it conflict with other events that month, etc.
So the form MM/DD/YY coreesponds to "rough estimate/more exact/probably redundant". You may not like it, but it does make sense from a certain point of view.
How about reducing the user's default font size for the article body? "Hey you, your browser isn't causing enough eye strain with those big fonts. Let me take care of that for you." Does he get a cut of every Lasik surgery or something?
For really effective design each part has to serve multiple functions, like evolution is able to do: The human mouth can be used to eat, breathe, talk, etc etc.
Your overall point is good - engineers and phsyical scientists prefer reductionist modes of thinking, which have their limitations (see The Hedgehog, the Fox, and the Magister's Pox).
But your example actually shows how overloaded design can introduce new problems. Having one mouth (throat, actually) resposible for all three functions is why we can't talk while we eat and why we can choke to death. Surely a better design is to have separate GI and air tracts.
Suboptimal design like this is actually the strongest evidence for evolution. No sane designer would overload functions so foolhardily. But evolution has to adapt what's already available; there is no clean slate to start from.
Wouldn't this technology be great for fixing up all those ID3 tags?
Well with google you can already do this for free.
I'll do you one better: musicbrainz recognizes songs by music fingerprint. The API is rough around the edges but it works pretty well. I cobbled together a python script to tag my 1300 mp3s and it identified all but a handful correctly. I'll throw a copy up on this page later for anyone who's interested.
Not long ago, I took a graduate course in quantum computing from a researcher in the field. I wrote a paper for that class specifically on quantum cryptography. In 2001, I worked in the same lab as a physicist building a quantum cryptography device (we had lunch almost every day). I've also studied quite a bit of conventional cryptography. Trust me when I say this:
Quantum cryptography has nothing to do with encryption, and barely anything to do with cryptography. It's an authentic channel with eavesdropping detection (but not prevention). In other words, QC is just a bootstrapping phase to distribute key material (random data) to two parties. Everything you do from that point forward, including everything involving your actual data, is classical crypto on classical channels.
QC has nothing to do with one-time pads. You could use the key material for OTPs, if you're deranged. More likely you'll use something like CBC-AES, CTR-AES, CBC-3DES for encryption, which are much faster (less key material, not limited by QC data rate), simpler, and safer (unless you have the resources of a major world government to oversee proper handling of the data and key material at every point from creation to destruction). At any rate, you'll still need integrity even with a OTP or your data is worthless. That means SHA1-HMAC, CBC-MAC-AES, etc.
Cryptography proper punts on the key distribution issue as it's not solvable mathematically. It's an administrative not an algorithmic problem, putting it outside the domain of modern cryptography. This applies equally to asymmetric crypto; public key databases and root certificates require proper oversight and maintenance. Hence the one problem QC solves, key distribution, is really external (but related) to the field of cryptography. That's why I say the two are orthogonal.
The funny part is, QC isn't even a good solution to key distribution. Its physical requirements are costly, stringent, and limiting. Unless you're an ultra-cautious damn-the-expense client like the US govt, there are more cost effective ways to exchange keys, and much better ways to improve your data's security. QC is a problem in search of a solution.
So your considered rejoinder to my thoughtful, reasoned critique boils down to this:
"No it isn't".
And your original gets modded up while I get pushed down to oblivion. God I love slashdot.
Stop, my head hurts; I can't take anymore. American engineers aren't "dying off" because they can't reproduce. Your theory requires that
Frankly all these assumptions are ludicrous (reproduction rates are empirically testable, but irrelevant without the others). It's nothing but folk heredity theory spiced up in the language of genetics. Such views have been completely discredited by modern anthropology and genetics. Stop drinking the sociobiologist kool-aid and go read Jonathan Marks.
How about this alternate explanation: our culture discourages engineering through social stigma and glorification of anti-intellectualism, style over substance, and instant gratification, pushing many perfectly capable engineers into other fields. Women in particular are driven away by the male-dominated engineering culture, which produces such jack-ass theories as engineers dying off in droves because it's tough to find a date at MIT.
In the case of Firefly, I can tell you why...
Basically, just about everything a network can do to not encourage a following, they did.
s/Firefly/Action/
s/Firefly/Family Guy/
s/Firefly/Greg The Bunny/
s/Firefly/Undeclared/
Every season Fox trots out another surprisingly witty show to plug the gap between When Midgets Attack and Close-Up Animals With a Wide-Angle Lens Wearing Hats. Despite critical acclaim, the "filler" shows rarely see a second season and die before their time. Someone at Fox likes taunting us.
Yes this is horribly pedantic, but can't the editors at least abide by this one page from Strunk & White?
i.e. Gates's, not Gates'
Tired of Perl's quirks, I finally switched to Python a couple years ago. I absolutely love it. However the whitespace issue still bugs me. The argument about it forcing good visual structure rings hollow. Naming constants with ALL CAPS is good practice too, but I don't know of a single language which forces you to do so. Yet somehow everybody does it.
In my book, conventions should be encouraged, not enforced. Sometimes the rules need to be broken. For example, say I want to add a temporary statement to a block of code (for debugging or otherwise). I only want it for a few runs then I'll remove it. In other languages, I can put such statements flush left where they stick out like a sore thumb, making them easy to remove later. Python doesn't allow that.
It comes down to a philosophical difference. I prefer giving people structural freedom over their code. Good programmers use the freedom well, following conventions when they promote understanding the code, and breaking them when they inhibit it. Breaking a convention is a good sign something weird is going on, so that code should be inspected more carefully. Python's whitespace allows no such visual clues.
Bad programmers will write bad code in any language. Good indentation may make it more readable, but it won't be any more intelligible. And there are automated tools for indentation. Why hamstring all programmers for the sake of saving a few reformatting cycles on pathological cases?
The whitespace has little to do with why Python code is so intelligible. I've read tens of thousands of lines of code in other languages and the vast majority is indented properly too. What makes Python so intelligible is the lack of surprises. The core language is small and behavior is consistent -- there are almost no special cases where semantics change. Contrast with C++, where identical syntax can cause radically different behavior depending on whether Section 58 Paragraph 29 Clause 11 of the C++ Standard applies or not.
That said, if you use a Python-aware editor like vim/emacs and run with the -tt option, you'll rarely run into the whitespace issue. In practice it doesn't bother me so much.
Don't ask Microsoft.
What?! You mean he's not insane? Jar-jar isn't the product of a horribly deranged, twisted mind? May god have mercy on us all.
Who owns an idea? This isn't a facile question, it's actually the root of the issue. A book/movie/song/painting/artistic expression is just a set of ideas fixed in a tangible medium. When you view a creation, you experience those ideas and make them your own. In other words, your thoughts and feelings filter your perceptions to create a unique personal experience.
Subsequent alterations of a work can never replace your experience of the original. Ideas can't be "undone". At best, changes to a work can supplement or enhance it in the spirit of the original. At worst, they corrupt or cheapen the ideas into a twisted distortion. But it's never the same experience as the original, and every person will perceive the changes differently.
Creators are given distribution rights over physical manifestations of their works to encourage them to create (how effectively that works is another topic). This includes the ability to create derivative works by altering the original. Some people will prefer the new version, others the old. But ultimately they are two separate works, as surely as if made by two different artists. One can never replace the other because each embodies a (perhaps slight) variation on the ideas of the piece.
A creator who owns his creation lock, stock, and barrel is given unnatural dominion over other people's minds. An artist is free to create as many new versions as they want. But eliminating access to the originals deprives the world of that experience. It is an invasive intrusion into our minds to say "No longer can you experience what you saw before. Now you must see it as I say." It is shameful revisionist history.
Lucas can keep his super special terrific happy deluxe editions. They are a gross debasement of what I love about the originals and I will not spend a dime on them.
Rar is a file format? I thought it's the noise gay lions make.
In other news, political analysts rated President Bush's comment that "Water is wet" the smartest thing he's said in a long time.
<math nerd> The amount of information contained in linuxbaby's comment can be described as the least member of the set (0,1]. </math nerd>
Guess that Futurama guy from the cryogenics lab who says "Welcome... to the woooorrrlld of tomorroooowwww" will be getting the pink slip now.
Perhaps AskJeeves will be able to legitimize itself again in the crowded search market by integrating Bloglines into its suite of products."
Because nothing says "legitimate" like blog.
There is no relation between quantum "encryption" and RSA. Quantum computers are a completely different technology than quantum key distribution. All you need for the latter is fiber optic cable, some photon counters, and polarizing filters. Quantum computers OTOH require quantum circuits, which are no more than lab toys ATM. It could be 50 years before we see sizable quantum computers, if ever.
Even if QCs do arrive, that doesn't mean quantum key distribution will take off as well. As you said, it will be a whole lot cheaper and just as effective to ship a storage device full of symmetric keys to whoever you're communicating with. RSA and quantum encryption are independent technologies; the downfall of one will not necessarily lead to the rise of the other.
Secure in the sense that eavesdropping is detectable but not (entirely) preventable. It's an authentic channel which detects privacy compromises after the fact. You never want to send real data down such a pipe. It's perfect for key distribution: if you detect eavesdropping, toss the key and send a new one.
It's like replacing a steel deadbolt with titanium, meanwhile the door is wooden, the hinges are brass, and there's a large window right next to it.
The only possible uses are extremely high-value applications like banking and the military. Even then I'd spend my money elsewhere.
The breaking RSA stuff is unrelated (quantum computers, not quantum key exchange) and pure speculation. RSA isn't going away for a loooong time.
I went to a small Cal State and looked into transfering to a UC after my sophomore year. In the end, it just wasn't worth it. Because of various quirks in sequencing, it would've taken me 3 more years to finish just a CS degree at a UC.
By staying put, I was able to complete a double major in CS and math in only 2 years. Because it was a smaller school, I also got to know the faculty really well working on a few projects outside the classroom. That's helped me immensely down the road as they've provided excellent personal references.
Having taught CS courses at several places, I can say the curriculum is pretty much the same everywhere. You're not missing much material by not going to a larger university.
On the downside, the career placement offices at large schools can be worth their weight in gold, especially if you want to work outside the area. Coming from a small school, you'll have to do a lot more legwork to find openings. But once you do, the degree doesn't matter nearly so much. Whatever school you're at, the most important thing is to build up contacts and experience.
A splashscreen is like a commercial that grabs your head in a vice and holds your eyelids open with toothpicks. Open a normal window with normal window controls.
You do NOT want a splash screen for this. Have it open a normal window right away with normal window controls -- goes to background, minimize, stays on one desktop. Splash screens prevent you from doing other work while the program starts. It's like a commercial that grabs your head in a vice and holds your eyelids open with toothpicks.
Unpractical? That's unpossible.
Sure it does, if you think in terms of psychology. For most people in most circumstances, dates are highly localized, temporally speaking: less than six months off in either direction. The year portion can therefore usually be assumed correctly. Makes sense to put it at the end where it's out of the way.
The first thing I want to know is a rough time frame for the date. Is it this month, something I have to worry about soon? A future month, something I can worry about later? Or a past month, telling me I can ignore the exact day? The next most relevant information is the day: is soon today or next week, does it conflict with other events that month, etc.
So the form MM/DD/YY coreesponds to "rough estimate/more exact/probably redundant". You may not like it, but it does make sense from a certain point of view.
How about reducing the user's default font size for the article body? "Hey you, your browser isn't causing enough eye strain with those big fonts. Let me take care of that for you." Does he get a cut of every Lasik surgery or something?
Your overall point is good - engineers and phsyical scientists prefer reductionist modes of thinking, which have their limitations (see The Hedgehog, the Fox, and the Magister's Pox).
But your example actually shows how overloaded design can introduce new problems. Having one mouth (throat, actually) resposible for all three functions is why we can't talk while we eat and why we can choke to death. Surely a better design is to have separate GI and air tracts.
Suboptimal design like this is actually the strongest evidence for evolution. No sane designer would overload functions so foolhardily. But evolution has to adapt what's already available; there is no clean slate to start from.
Dammit! I just posted in this thread a second ago, now my mod points are useless! That deserves a +5 Funsightful. Why do the gods mock me so?