I could code my own implimentation of this in 5-10 mins!
Then please do so. Post a link.
The Hiermenus are not "simple DHTML menus". They are extremely capable menus that work with an unprecedented set of browsers and capabilities, with good ease of use. They have been through multiple versions over the last few months, and are probably the best argument for the difficult of useful DHTML currently in existance. (This is how hard it is to create cross-platform menus, fer pete's sake... can you imagine creating a grid control?)
As simple as they may seem, they required an unbelievable amount of time to create because of the immense number of browser incompatibilities that exist on the their target platforms. Example: I once implemented my own menus, back when there was Netscape 4.2 or so, and IE 4 was reasonably new.
Several months after we'd rolled these things out, I got a call from upstairs, saying the menu looked wierd on their machine. "What version of Netscape are you using?" "4.5". (Numbers in the post are made up, because I don't remember the exact version, but the point holds.) "That's wierd, it looks fine on my machine."
Come to find out that in Netscape 4.5, but not Netscape 4.43 or Netscape 4.52, the code that decided how large a 100% height DIV was changed slightly, was causing (incorrect) shrinkage on their system, and was causing a background image to show up way too many times, making it ugly. Eventually I just let the bug stand, and to this day, if you hit the site with the wrong version of Netscape 4, the menus are ugly.
These things multiply the more browsers you add into the list of supported browsers, and that list is long for hiermenus. While we may wish they were free for hobby sites, purchasing a license in a more formal environment (not necessarily even corporate) is giving you hundreds of hours of dev time at a very cheap price. It's literally cheap at twice the price.
They are not wacko. The wackos are those who in a corporate environment look at them, make the same call you did ("I could code that in an hour!"), and proceed to blow thousands of dollars worth of time to save themselves 30 bucks. (Money, people, money. Learn about it. There are few things as valuable as a technically-savvy person who understands business!)
Ahhhh, OK. Rock and hard place. I was assuming that you want to stay legal, which is an admittedly strong assumption. Nice background info.
Still, I think my original post stands reasonably true. If you distribute code containing GPL'ed code, then by the terms of the GPL, you have agreed to the terms of the license and are under the obligations. That you can decide to simply ignore them and basically go renegade really doesn't change my point; ignoring the law is always an option, and I tend not to advise it, except under extreme circumstances;-)
On the off chance the original poster is watching, be aware that doing this knowingly will probably make things worse. AFAIK, there's no explicit provisions in the law for intent in this case, but come penalty time, if the opposition can show foreknowlege, the judge will be more inclined towards the higher side of penalties; that's exactly the kind of decision human judges are there for.
So his company can probably pick: license violation or copyright violation.
No, there's the two legal options, too: Find the author and obtain permission, possibly with the judicious use of cash, or dike the code out and replace it with something they wrote.
but copyright law isn't "viral".
I can derive no meaning from that phrase. My best-guess rebuttal is that yes, if the code was GPL'ed and they release it, then they are legally obligated to release the source to the whole program under the terms of the GPL. They may refuse; they may also go on a murderous rampage, slaughtering all in their path. But not legally.
(I admit it, I posted this reply just for the last mental image.)
You'd better speak to your corporate lawyer. If you don't have one, get one. I'd advise bringing a camera... it's gonna be a real Kodak(TM) Moment when he first understands what you're saying.
You didn't mention what license this is. Is it the GPL? If so, that means that you have actually managed to stumble on one of the rare situations where the GPL is actually viral! If you release this code, you will be legally obligated to provide source to any customer, just for the asking!
If it's not one of the 'viral' licenses, then you haven't got a problem anyhow.
This isn't even a copyright law issue per se; the onus is on you/your company to find the source of the code, and get permission to use it, or face the consequences of not doing so. This is a general principle in the law.
The law only rarely lets "I tried as hard as I could!" be an excuse. If you can't get permission, you can't use it, end of (legal) story.
You are asking for it. Hate to say it, but consult a lawyer! Consult a lawyer! Consult a lawyer!
(As others suggested, if host resolution is your issue, you could run a local proxy on your 127.0.0.1 interface that converts host names into addresses.)
Unfortunately, that's not a complete solution. Example: Compare my home page versus the IP address that hostname resolves to.
I reply to this because I bet a lot of people are going to think this.
The real problem is that you're probably using port 80 for something other than what it's explicit purpose.
No, that's not it at all. Follow the openNIC link.
What he's trying to do is resolve an address, via the perfectly standard and normal DNS protocol, with an alternative root server. This is also perfectly standard and normal. This is not a violation of DNS, nor any other protocol, nor is it a particularly wierd thing to want to do. (Unusual, but perfectly normal.)
The problem is that his ISP is catching all traffic to port 80, and redirecting it to their proxy. Thus, when he asks for "http://www.something.nonstandardroot", the web proxy is interfering with the request (presumably after his home computer correctly resolved the DNS address of www.something.nonstandardroot), catching the GET part of the HTTP request, extracting the server name, and attempting on it's own to resolve the name.
(Note this is a complete waste: The home computer has probably already resolved the address, now the proxy will resolve it again.)
Unfortunately, the proxy is too ignorant to know how to resolve the alternate DNS address. It's not incapable in the technical sense, it just doesn't understand root servers it's not configured for. The problem is that this means that the perfectly normal and acceptable HTTP request, for an HTML document, on an IP address the client computer has already perfectly normally resolved, gets lost, because the proxy doesn't know how to resolve the address. Bad proxy!
A workaround, albiet a sucky one, is to resolve the address on one's home computer, then go to that IP address manually. This still causes problems on subdomain-aware webservers, where several domains or subdomains may all come from the same IP address, and the server wants to use the host part of the HTTP GET request to differentiate what to serve. (You could code up a quick Python/TK script to do this, but it'll still suck.)
So, when you say a proxy is not required to route anything anywhere, you've accidentally hit on the exact problem: a proxy shouldn't be routing, because it may not know how. This proxy tries to. That's why it sucks.
And to cover the last part of your post, there's absolutely nothing non-standard about any of this, except the behavior of the proxy, which is the only thing in this whole mess that hasn't "embrace[d] the DNS standard, HTTP standard and the routing standard". ICANN's root servers are not written into RFC's. They are merely common practice, one that many people, probably correctly, believe is an increasingly dangerous common practice. (You may not completely agree, but the opinions deserve consideration.)
Playing devil's-devil's advocate (angel's advocate?): There's no reason that rats couldn't have been blown onto the island, and the birds have to be ready for that. Species have crossed the ocean that way before. It's a rough world out there.
Or they could pay to run ads countering the Xenu ads.
Exactly. You'd be starting a conflict you don't have a chance in hell of winning. Scientology may not be able to block your ads directly, but how many impressions will your 100 * 5 (generous!) get, versus the million dollars Scientology can plop down without particularly worrying?
Best to keep it in the link arena, which is a battle that can be won, and to an extent is. (Rest assured Scientology is not happy being first, they would much rather be *only*, for all searches.)
Analyse your own reading habits. If you are slow, it's probably (statistically speaking) because of a small handful of common bad habits. The worst of these is mouthing the words as you go along. You'd probably have noticed the extreme case, but people do everything from mouthing them enough for a lipreader to read, all the way down to subvocalizations you can barely feel. All slow you down about the same amount, there's just a difference in noticability, both to you and others.;-)
Other bad habits include compulsively re-reading lines several times (when you don't need to), skipping segments of the text (when you don't need to), forcing you to go back, and general wandering eyes. Note the first two are sometimes desirable.
As for the speed reading claims, they are bunk, and it's easy to see. You essentially have a fixed bandwidth along which you can recieve information from words. This is not entirely correct, but at the scales we're discussing, it good enough for government work. Speed readers claim order-of-magnitude increases, which is absurd. The fact is, nothing you do will increase your comprehension (read: download) rate that much, once you have maxed out your vision bandwidth. (Note that was the focus of my first paragraph.)
Speed reading works by dropping the amount of information obtained from the text, despite all claims to the contrary. There are times when it is useful. You might even practice it; in school it's usually called "skimming". But it's not a miracle.
The best way to increase real bandwidth is to practice, by reading difficlt things. This includes technical stuff, but also older books or novels. For instance, stuff written in the late 1800's is a little harder to read, both because they weren't afraid to use English to the fullest (without fear they'd lose readers because it was too hard), and because the language has shifted. See how far back you can go. You'll become more literate, too.;-)
"Does anyone else remember from college how the poles just flip every million years or so, and no one really knows why? That whay *I* am worried about. the poles moving just a little bit is fine with me."
I'm sure that somehow, it's the fault of Mankind. Maybe we're polluting the air with magnetically active pollution. Or perhaps we're destroying the poor magnetic lines of force's environments. All I know is that I'm sure it's us, somehow.
You did not understand the material in the posted link, probably because it's referencing by implication a whole lot of other work. The UTM is both a program and a device, inasmuch as there's a differnce in CS theory anyhow; that's the whole damned (recursive) (brilliant) (mind-bending) point. As these are mathematical concepts, arguments based on word games ("is not a program, it's a device!") are generally fruitless. You're going to have to forgive me if I again wave my hands toward CS theory classes/books; this stuff generally consumes multiple chapters and multiple weeks repectively, and your average CS grad still doesn't quite get it all. I can't correct that in a Slashdot posting, no matter how many people try to post.
(Heck, a non-trivial number of the grad students find this stuff extremely challenging, and curse those of us who find it comprehensible. (Not easy; I don't know anyone who finds this stuff "easy". But comprehensible.))
TM's are really neither functional nor imperitive, nor OO or anything else. It's the bottom, the foundation upon which those paradigms are built. (Remember, there's really no such thing as a "functional" language in the sense that the language requires functional constructs, and rejects all else. It's just that there are languages that encourage functional programming techniques. As long as the language is Turing Complete, you could always implement a TM on top of the base language, then program in whatever style you want, albiet with potentially huge losses in efficiency.) The traditional TM may look imperative, and the SK machine may look functional, from certain points of view, but they are the same thing. The exact same thing. Isomorphic. Identical. Synonymous (that's probably the best way of thinking about it). Again, that's the point.
True, but you still have to define something, a point lacking in all rebuttals and all the clever postings. Calling a single bit the UTM still requires a lot of fleshing out, and I think it will result in some infinitely recursive requirements for special cases in the UTM; in other words, it's impossible. But then, the burder of proof isn't on me, it's on everybody who seems upset that mathematics doesn't bend to their whim.
Note that it is provably impossible to know we have the smallest possible UTM... but 1-bit it ain't.
If it can't accept other Turing Machines in the same encoding as itself, it's hardly a Universal Turning Machine, is it?
Oh, I'm sorry, am I dissing other people's opinion on this mathematical issue? How non-post-modern and non-PC of me. If all these people think it, despite clearly not understanding what's going on at all, then it can't help but be mathematical proof, no?
And besides, you're leaning on Slashdot moderators for support in a mathematical argument? I get victory by default. (Oddly, Slashdot seems better with legal arguments then real Computer Science...)
Go back to that section in theory class and pay closer attention, please; you'll find the section starts by defining an encoding of a TM, usually with only 1's and 0's, using the sequence of 1's as values and 0's as punctuation.
He was showing that the shortness of a "Universal Machine" program will depend on the language you use.
No, he's incorrect. The encoded UTM much accept other Turing Machines in the same encoding. Since the specified language has only one string, which is the claimed UTM, it can accept precisely zero other TMs as input to run them; it's absolutely incapable because they can't even be expressed in that language.
Therefore, it's not a UTM. It's a Nothing-TM. It can't do anything; it's too constrained by the language.
Even if you extend the language, you'll find it does odd (and provably odd) things to the rest of the language, rendering it impossible to work with with traditional techniques. (Is that 1 a "1", or is it the UTM? Who can tell? In a proof, you need to know.)
Come on, think about it for a moment. If it were that easy, why would this news article even exist? The guy who put together the 34-number version isn't stupid; if it were this easy to get down to 1, why would he have bothered?
For all the braintrusts posting solutions they claim are smaller then 34-bytes, and are in grave danger of spontaneously being awarded the Nobel Prize in Mathematics by the suddenly humbled mathematics community, remember the encoding your specify your Universal Turing Machine must be the same encoding as the Turing Machines you will be running the UTM on.
The posted "single bit" solution doesn't work. The only machine encodable in that language is the claimed UTM... but that means that the UTM is far from a UTM, and is in fact a Nothing-TM. Don't hold your breath waiting for your Nobel.
The others have similar problems. The string "Turing Machine" isn't a specified encoding.
Joke all you want, I guess, but pay more attention in theory class, please.
If a DNA strand can divide and replicate in seconds (or less) and that strand has billions of CGAT pairs on it, and this is what DNA based computing is trying to harness, then quite literally, billions of calculations or more can be computed in a fraction of the time it takes a serial processor.
It is not; DNA computing does not use the replication of DNA.
I'm far from an expert, but I think you're quite missing the point of DNA and Quantum based computing.
DNA maybe, quantum most assuredly not; my opnion on that is well considered.
These forms of computing *break* the typical way processing takes place, which allows them to compute at orders of magnitude faster than traditional computing devices.
IF AND ONLY IF THEY WORK.
You're attacking the theory of these types of computing devices (particularly in your bit about DNA) and that's really not up for discussion.
Not clear on how science works, are we? Theories are always up for discussion, because that's directly related to is simply if it will ever end up working they way its intended. I'm saying no to "strong" QM, and I doubt it for DNA. DNA is no stronger that I can see then conventional computing, it just jumps us up a few factors of magnitude, which corresponds to a problem size increase of very little. (Study what NP-Complete means.) I'm beginning to wonder if it's mostly Biologists studying this.
QM does open new possibilities, but only is some improbably conditions exist (complete or nearly complete isolation from outside influences for many many milliseconds for many many qubits? unlikely!), which are probably impossible.
I was speaking in the future, as was the original poster. Right now, we've probably got the optimal solution for 'right now' technology. Or at least fairly closely optimal.
Why are the dumb terminal people still hoping they'll be right in the end?
When the price of a dumb terminal and a usable computer are within spitting distance of each other, what's the cost saving of a dumb terminal? Woo, I saved $50, but now I'll lose hundreds of times that in productivity while my user is waiting on the network when they could have gotten data from the hard drive.
Here's a better and more likely scenario: The servers are missing. Instead, the user's desktops use their spare cycles to process requests and such while their user is deciding whether the next word in their memo should be "Sir" or "Madam". Transparent redundency, automatic backups, all for 'free'.
In the future, servers will be reserved for those rare situations where they are actually and truly necessary, like ultra-large scale account processing (think Visa).
Dumb terminals died with the birth of the $300 PC... and prices continue to drop. (BTW, I'm not counting display, because the dumb terminal will need one too.) There's just too many advantages to making sure there's power on the desk to sacrifice them to a 1970's computing architecture.
Not very feasible with silicon, but what about DNA or QC?
DNA: Infeasible. You're still stuck with manufacturing 2^n processors, and this is not a trivial problem. You get into situations where "The entire universe must consist of DNA to solve this problem" in short order. 2^n problems are quite, quite hard.
Also, the parralelism breaks down, the more DNA you use, something I don't see much acknolegement of. For truly huge problems, if the solution involves strand A finding strand B amoung 2^50 strands, that may take a while, i.e., never happen.
QC: In theory yes. In reality, I'm quite skeptical of true QM. It requires Nobel-Prize-winning work in isolating the quantum states of a system from outside interference for any significant quantum computer, and that may still be trivializing the difficulty. I'm not holding my breath for "strong" quantum computing.
One chemical reaction that takes place in a fraction of a second could be equivalent to a single processor going through quadrillions of calculations.
No. Chemicals live in the real world too, where they have volume, mass, and take real time to react. I'll buy thousands, but not quadrillions.
I agree totally ;-) They're horrid.
But if you INSIST on them, or more accurately if your *management* INSISTS on them, this is a good place to buy them from.
I could code my own implimentation of this in 5-10 mins!
Then please do so. Post a link.
The Hiermenus are not "simple DHTML menus". They are extremely capable menus that work with an unprecedented set of browsers and capabilities, with good ease of use. They have been through multiple versions over the last few months, and are probably the best argument for the difficult of useful DHTML currently in existance. (This is how hard it is to create cross-platform menus, fer pete's sake... can you imagine creating a grid control?)
As simple as they may seem, they required an unbelievable amount of time to create because of the immense number of browser incompatibilities that exist on the their target platforms. Example: I once implemented my own menus, back when there was Netscape 4.2 or so, and IE 4 was reasonably new.
Several months after we'd rolled these things out, I got a call from upstairs, saying the menu looked wierd on their machine. "What version of Netscape are you using?" "4.5". (Numbers in the post are made up, because I don't remember the exact version, but the point holds.) "That's wierd, it looks fine on my machine."
Come to find out that in Netscape 4.5, but not Netscape 4.43 or Netscape 4.52, the code that decided how large a 100% height DIV was changed slightly, was causing (incorrect) shrinkage on their system, and was causing a background image to show up way too many times, making it ugly. Eventually I just let the bug stand, and to this day, if you hit the site with the wrong version of Netscape 4, the menus are ugly.
These things multiply the more browsers you add into the list of supported browsers, and that list is long for hiermenus. While we may wish they were free for hobby sites, purchasing a license in a more formal environment (not necessarily even corporate) is giving you hundreds of hours of dev time at a very cheap price. It's literally cheap at twice the price.
They are not wacko. The wackos are those who in a corporate environment look at them, make the same call you did ("I could code that in an hour!"), and proceed to blow thousands of dollars worth of time to save themselves 30 bucks. (Money, people, money. Learn about it. There are few things as valuable as a technically-savvy person who understands business!)
Ahhhh, OK. Rock and hard place. I was assuming that you want to stay legal, which is an admittedly strong assumption. Nice background info.
;-)
Still, I think my original post stands reasonably true. If you distribute code containing GPL'ed code, then by the terms of the GPL, you have agreed to the terms of the license and are under the obligations. That you can decide to simply ignore them and basically go renegade really doesn't change my point; ignoring the law is always an option, and I tend not to advise it, except under extreme circumstances
On the off chance the original poster is watching, be aware that doing this knowingly will probably make things worse. AFAIK, there's no explicit provisions in the law for intent in this case, but come penalty time, if the opposition can show foreknowlege, the judge will be more inclined towards the higher side of penalties; that's exactly the kind of decision human judges are there for.
So his company can probably pick: license violation or copyright violation.
No, there's the two legal options, too: Find the author and obtain permission, possibly with the judicious use of cash, or dike the code out and replace it with something they wrote.
but copyright law isn't "viral".
I can derive no meaning from that phrase. My best-guess rebuttal is that yes, if the code was GPL'ed and they release it, then they are legally obligated to release the source to the whole program under the terms of the GPL. They may refuse; they may also go on a murderous rampage, slaughtering all in their path. But not legally.
(I admit it, I posted this reply just for the last mental image.)
You'd better speak to your corporate lawyer. If you don't have one, get one. I'd advise bringing a camera... it's gonna be a real Kodak(TM) Moment when he first understands what you're saying.
You didn't mention what license this is. Is it the GPL? If so, that means that you have actually managed to stumble on one of the rare situations where the GPL is actually viral! If you release this code, you will be legally obligated to provide source to any customer, just for the asking!
If it's not one of the 'viral' licenses, then you haven't got a problem anyhow.
This isn't even a copyright law issue per se; the onus is on you/your company to find the source of the code, and get permission to use it, or face the consequences of not doing so. This is a general principle in the law.
The law only rarely lets "I tried as hard as I could!" be an excuse. If you can't get permission, you can't use it, end of (legal) story.
You are asking for it. Hate to say it, but consult a lawyer! Consult a lawyer! Consult a lawyer!
(As others suggested, if host resolution is your issue, you could run a local proxy on your 127.0.0.1 interface that converts host names into addresses.)
Unfortunately, that's not a complete solution. Example: Compare my home page versus the IP address that hostname resolves to.
Lots of servers do this.
I reply to this because I bet a lot of people are going to think this.
The real problem is that you're probably using port 80 for something other than what it's explicit purpose.
No, that's not it at all. Follow the openNIC link.
What he's trying to do is resolve an address, via the perfectly standard and normal DNS protocol, with an alternative root server. This is also perfectly standard and normal. This is not a violation of DNS, nor any other protocol, nor is it a particularly wierd thing to want to do. (Unusual, but perfectly normal.)
The problem is that his ISP is catching all traffic to port 80, and redirecting it to their proxy. Thus, when he asks for "http://www.something.nonstandardroot", the web proxy is interfering with the request (presumably after his home computer correctly resolved the DNS address of www.something.nonstandardroot), catching the GET part of the HTTP request, extracting the server name, and attempting on it's own to resolve the name.
(Note this is a complete waste: The home computer has probably already resolved the address, now the proxy will resolve it again.)
Unfortunately, the proxy is too ignorant to know how to resolve the alternate DNS address. It's not incapable in the technical sense, it just doesn't understand root servers it's not configured for. The problem is that this means that the perfectly normal and acceptable HTTP request, for an HTML document, on an IP address the client computer has already perfectly normally resolved, gets lost, because the proxy doesn't know how to resolve the address. Bad proxy!
A workaround, albiet a sucky one, is to resolve the address on one's home computer, then go to that IP address manually. This still causes problems on subdomain-aware webservers, where several domains or subdomains may all come from the same IP address, and the server wants to use the host part of the HTTP GET request to differentiate what to serve. (You could code up a quick Python/TK script to do this, but it'll still suck.)
So, when you say a proxy is not required to route anything anywhere, you've accidentally hit on the exact problem: a proxy shouldn't be routing, because it may not know how. This proxy tries to. That's why it sucks.
And to cover the last part of your post, there's absolutely nothing non-standard about any of this, except the behavior of the proxy, which is the only thing in this whole mess that hasn't "embrace[d] the DNS standard, HTTP standard and the routing standard". ICANN's root servers are not written into RFC's. They are merely common practice, one that many people, probably correctly, believe is an increasingly dangerous common practice. (You may not completely agree, but the opinions deserve consideration.)
(BTW, I'm serious about the "playing" part... I'm conflicted on this particular ethical area myself.)
Playing devil's-devil's advocate (angel's advocate?): There's no reason that rats couldn't have been blown onto the island, and the birds have to be ready for that. Species have crossed the ocean that way before. It's a rough world out there.
If it's channeling millions into Google's hands, and out of the COS's, then why not?
;-)
Touche.
Remind me to set up an advertising service...
Or they could pay to run ads countering the Xenu ads.
Exactly. You'd be starting a conflict you don't have a chance in hell of winning. Scientology may not be able to block your ads directly, but how many impressions will your 100 * 5 (generous!) get, versus the million dollars Scientology can plop down without particularly worrying?
Best to keep it in the link arena, which is a battle that can be won, and to an extent is. (Rest assured Scientology is not happy being first, they would much rather be *only*, for all searches.)
Analyse your own reading habits. If you are slow, it's probably (statistically speaking) because of a small handful of common bad habits. The worst of these is mouthing the words as you go along. You'd probably have noticed the extreme case, but people do everything from mouthing them enough for a lipreader to read, all the way down to subvocalizations you can barely feel. All slow you down about the same amount, there's just a difference in noticability, both to you and others. ;-)
;-)
Other bad habits include compulsively re-reading lines several times (when you don't need to), skipping segments of the text (when you don't need to), forcing you to go back, and general wandering eyes. Note the first two are sometimes desirable.
As for the speed reading claims, they are bunk, and it's easy to see. You essentially have a fixed bandwidth along which you can recieve information from words. This is not entirely correct, but at the scales we're discussing, it good enough for government work. Speed readers claim order-of-magnitude increases, which is absurd. The fact is, nothing you do will increase your comprehension (read: download) rate that much, once you have maxed out your vision bandwidth. (Note that was the focus of my first paragraph.)
Speed reading works by dropping the amount of information obtained from the text, despite all claims to the contrary. There are times when it is useful. You might even practice it; in school it's usually called "skimming". But it's not a miracle.
The best way to increase real bandwidth is to practice, by reading difficlt things. This includes technical stuff, but also older books or novels. For instance, stuff written in the late 1800's is a little harder to read, both because they weren't afraid to use English to the fullest (without fear they'd lose readers because it was too hard), and because the language has shifted. See how far back you can go. You'll become more literate, too.
"Does anyone else remember from college how the poles just flip every million years or so, and no one really knows why? That whay *I* am worried about. the poles moving just a little bit is fine with me."
I'm sure that somehow, it's the fault of Mankind. Maybe we're polluting the air with magnetically active pollution. Or perhaps we're destroying the poor magnetic lines of force's environments. All I know is that I'm sure it's us, somehow.
You did not understand the material in the posted link, probably because it's referencing by implication a whole lot of other work. The UTM is both a program and a device, inasmuch as there's a differnce in CS theory anyhow; that's the whole damned (recursive) (brilliant) (mind-bending) point. As these are mathematical concepts, arguments based on word games ("is not a program, it's a device!") are generally fruitless. You're going to have to forgive me if I again wave my hands toward CS theory classes/books; this stuff generally consumes multiple chapters and multiple weeks repectively, and your average CS grad still doesn't quite get it all. I can't correct that in a Slashdot posting, no matter how many people try to post.
(Heck, a non-trivial number of the grad students find this stuff extremely challenging, and curse those of us who find it comprehensible. (Not easy; I don't know anyone who finds this stuff "easy". But comprehensible.))
TM's are really neither functional nor imperitive, nor OO or anything else. It's the bottom, the foundation upon which those paradigms are built. (Remember, there's really no such thing as a "functional" language in the sense that the language requires functional constructs, and rejects all else. It's just that there are languages that encourage functional programming techniques. As long as the language is Turing Complete, you could always implement a TM on top of the base language, then program in whatever style you want, albiet with potentially huge losses in efficiency.) The traditional TM may look imperative, and the SK machine may look functional, from certain points of view, but they are the same thing. The exact same thing. Isomorphic. Identical. Synonymous (that's probably the best way of thinking about it). Again, that's the point.
True, but you still have to define something, a point lacking in all rebuttals and all the clever postings. Calling a single bit the UTM still requires a lot of fleshing out, and I think it will result in some infinitely recursive requirements for special cases in the UTM; in other words, it's impossible. But then, the burder of proof isn't on me, it's on everybody who seems upset that mathematics doesn't bend to their whim.
Note that it is provably impossible to know we have the smallest possible UTM... but 1-bit it ain't.
If it can't accept other Turing Machines in the same encoding as itself, it's hardly a Universal Turning Machine, is it?
Oh, I'm sorry, am I dissing other people's opinion on this mathematical issue? How non-post-modern and non-PC of me. If all these people think it, despite clearly not understanding what's going on at all, then it can't help but be mathematical proof, no?
Yeah. Check again. ;-)
And besides, you're leaning on Slashdot moderators for support in a mathematical argument? I get victory by default. (Oddly, Slashdot seems better with legal arguments then real Computer Science...)
Go back to that section in theory class and pay closer attention, please; you'll find the section starts by defining an encoding of a TM, usually with only 1's and 0's, using the sequence of 1's as values and 0's as punctuation.
He was showing that the shortness of a "Universal Machine" program will depend on the language you use.
No, he's incorrect. The encoded UTM much accept other Turing Machines in the same encoding. Since the specified language has only one string, which is the claimed UTM, it can accept precisely zero other TMs as input to run them; it's absolutely incapable because they can't even be expressed in that language.
Therefore, it's not a UTM. It's a Nothing-TM. It can't do anything; it's too constrained by the language.
Even if you extend the language, you'll find it does odd (and provably odd) things to the rest of the language, rendering it impossible to work with with traditional techniques. (Is that 1 a "1", or is it the UTM? Who can tell? In a proof, you need to know.)
Come on, think about it for a moment. If it were that easy, why would this news article even exist? The guy who put together the 34-number version isn't stupid; if it were this easy to get down to 1, why would he have bothered?
For all the braintrusts posting solutions they claim are smaller then 34-bytes, and are in grave danger of spontaneously being awarded the Nobel Prize in Mathematics by the suddenly humbled mathematics community, remember the encoding your specify your Universal Turing Machine must be the same encoding as the Turing Machines you will be running the UTM on.
The posted "single bit" solution doesn't work. The only machine encodable in that language is the claimed UTM... but that means that the UTM is far from a UTM, and is in fact a Nothing-TM. Don't hold your breath waiting for your Nobel.
The others have similar problems. The string "Turing Machine" isn't a specified encoding.
Joke all you want, I guess, but pay more attention in theory class, please.
Wow, nice language!
I admit I'm a little dim, though. Could you show me, say, the traditional palindrome detector in your language?
(Note to moderators: This is sarcasm. Note to MWoody: Pay more attention in your theory class. If you've even taken any.)
If a DNA strand can divide and replicate in seconds (or less) and that strand has billions of CGAT pairs on it, and this is what DNA based computing is trying to harness, then quite literally, billions of calculations or more can be computed in a fraction of the time it takes a serial processor.
It is not; DNA computing does not use the replication of DNA.
I'm far from an expert, but I think you're quite missing the point of DNA and Quantum based computing.
DNA maybe, quantum most assuredly not; my opnion on that is well considered.
These forms of computing *break* the typical way processing takes place, which allows them to compute at orders of magnitude faster than traditional computing devices.
IF AND ONLY IF THEY WORK.
You're attacking the theory of these types of computing devices (particularly in your bit about DNA) and that's really not up for discussion.
Not clear on how science works, are we? Theories are always up for discussion, because that's directly related to is simply if it will ever end up working they way its intended. I'm saying no to "strong" QM, and I doubt it for DNA. DNA is no stronger that I can see then conventional computing, it just jumps us up a few factors of magnitude, which corresponds to a problem size increase of very little. (Study what NP-Complete means.) I'm beginning to wonder if it's mostly Biologists studying this.
QM does open new possibilities, but only is some improbably conditions exist (complete or nearly complete isolation from outside influences for many many milliseconds for many many qubits? unlikely!), which are probably impossible.
I was speaking in the future, as was the original poster. Right now, we've probably got the optimal solution for 'right now' technology. Or at least fairly closely optimal.
Why are the dumb terminal people still hoping they'll be right in the end?
When the price of a dumb terminal and a usable computer are within spitting distance of each other, what's the cost saving of a dumb terminal? Woo, I saved $50, but now I'll lose hundreds of times that in productivity while my user is waiting on the network when they could have gotten data from the hard drive.
Here's a better and more likely scenario: The servers are missing. Instead, the user's desktops use their spare cycles to process requests and such while their user is deciding whether the next word in their memo should be "Sir" or "Madam". Transparent redundency, automatic backups, all for 'free'.
In the future, servers will be reserved for those rare situations where they are actually and truly necessary, like ultra-large scale account processing (think Visa).
Dumb terminals died with the birth of the $300 PC... and prices continue to drop. (BTW, I'm not counting display, because the dumb terminal will need one too.) There's just too many advantages to making sure there's power on the desk to sacrifice them to a 1970's computing architecture.
Not very feasible with silicon, but what about DNA or QC?
DNA: Infeasible. You're still stuck with manufacturing 2^n processors, and this is not a trivial problem. You get into situations where "The entire universe must consist of DNA to solve this problem" in short order. 2^n problems are quite, quite hard.
Also, the parralelism breaks down, the more DNA you use, something I don't see much acknolegement of. For truly huge problems, if the solution involves strand A finding strand B amoung 2^50 strands, that may take a while, i.e., never happen.
QC: In theory yes. In reality, I'm quite skeptical of true QM. It requires Nobel-Prize-winning work in isolating the quantum states of a system from outside interference for any significant quantum computer, and that may still be trivializing the difficulty. I'm not holding my breath for "strong" quantum computing.
One chemical reaction that takes place in a fraction of a second could be equivalent to a single processor going through quadrillions of calculations.
No. Chemicals live in the real world too, where they have volume, mass, and take real time to react. I'll buy thousands, but not quadrillions.
The possibilities are intoxicating!
Yes, the hype proves that.