Thing is, there are cases reported fairly regularly about drivers who have been busted numerous times for drunk driving, lost their licenses, kept drinking and driving, continue to get busted even more, serve little to no time, continue drinking and driving and eventually kill someone.
Public transportation in most American cities shuts down long before the bars do, and isn't all that safe to ride when you're staggering and looking like mugger meat -- and where most slashdotters live (outside the cities) generally either buses don't exist or they're back in the garage around 6 PM. Taxis cost too much -- the driver has to make a living after paying for gas, car payments, and repairs, cleaning up after drunks who barfed in the cab, paying sky-high insurance, etc. Designated drivers aren't always available or trustworthy... So too damned often the drunk winds up attempting to drive himself home.
The legal climate is close to what was described for the UK, only the actual legal penalties normally assessed are quite a lot less. E.g., a guy I knew about 20 years ago got drunk and crashed his car, while his license was suspended due to previous drunk driving convictions. He slept in the county jail and picked up trash along the roadsides for six months, but that was all. He wasn't kicked out of the Air Force or even busted in rank, although I think his brother in law the congressman had something to do with that. Surprisingly, he did learn from this -- at subsequent squadron parties, he stayed at the soft-drink end of the bar.
The penalties now are stiffer, but nowhere near 10 years unless you kill someone, and even then you are probably going to get paroled early to make room for some really "dangerous" prisoner like a marijuana user... Do Brits actually spend 10 years in prison for drunk-driving accidents? I had the impression that -- same as here -- most _murderers_ get paroled in less.
This sounds rather dubious if it's sold to consumers. Remember the "brick" computers of a few years ago? These were compact and reasonably high performance boxes, more than pocket size but still not hard to take home with you. But you had to have a monitor, keyboard, mouse, and CD & floppy drives at every place you were going to use it. They were far sturdier than laptops, and I think had considerably higher performance than a laptop in the same price range. But they were duds on the market. I doubt that shrinking it to pocket size will be sufficient to overcome the basic problem that to the average user it's just a laptop with critical parts missing...
But I can see an embedded system designer salivating over this, IF the price is right and there is a good way to attach the required I/O. Give it USB, Firewire, and RS-232 ports so we can hook in I/O modules and bury this thing somewhere inside of a machine. For program development, we might have to reach inside and hook up the docking port, but once the software is released we just load up the internal HD and stick it in the machine.
Well, imagine trying to type on a Pentium chip!!! Or a slot 1 Pentium. The CPU & cache came in a little board, which with heatsink was quite a lot bigger than this.
Sounds like it might be more successful as an embedded control module than as a consumer product. But I do want to know how they got away with an 800MHz CPU without adding a humongous heat-sink. Does it throttle back to 66MHz most of the time?
So there really is a GUI tool for tarballs in Linux with KDE. That's good. What's not so good is that most Linux gurus will still attempt to teach the command-line tools to newbies, never mentioning the easy way...
Did you see the parent to my post? It was complaining about Linux distros not including a GUI interface to decompress tarballs. So I'm just asking why that's a problem, when Windows (pre XP) doesn't include _any_ means of decompressing the most common non-proprietary compressed format in DOS and Windows?
And I dreamed a little about what would be better than Winzip. You seem to have missed the point there, see my answer to kx45...
Actually within XP (and ME I believe),.zip files are viewed as compressed folders. If MS hasn't f'd up the zip/unzip process somehow, that's the first actually better feature I've heard about in XP. (I don't count fixing some of the bugs that caused crashes in previous versions as a feature. If GM sold cars where the engine would suddenly die on the freeway and take hours to re-start, they would be fixing that problem for free, not requiring you to buy a new car to get the fix. And I'll lay 10-1 odds that there are still some bugs which Tech Support can only fix by re-installation.) It's still not good enough to make up for the Product Activation, which means that when MS really wants you to buy the next version, they'll just stop giving out WPA codes, and wait for the money to start rolling in as existing installations munge themselves so a re-install is recommended...
I like Winzip too. But Explorer doesn't show you what's inside the zip files. You've got to fire up Winzip to do that, and the user interface is enough different from Explorer to be slightly annoying to me, and baffling to some of our clerks.
.cab is a microsoft proprietary format, so I wasn't counting that. Besides that, using compress.exe and extract.exe is a command-line operation, and about as opaque as it is possible to get. That was what someone was originally complaining about in regards to.tar and Linux distros...
The 111 ejection capsule worked quite well on paper. The trouble is, the normal mission profile for 111's is mach 0.9+ at 200 feet, so that's how they ran training flights. If anything went wrong, there usually wasn't enough time between "oh shit" and going splat to reach for the ejection lever. Not to mention that one crew that either didn't notice the plane had flipped over, or it flipped over while they were pulling the lever.
In the one case I heard of where the crew did eject "within envelope" (that is, plane rightside up and before impact), the capsule did protect the crew quite well. This was over Scotland; they just walked over to the road, got a ride to the pub, and called the base...
At Cannon AFB where I spent 6 years, they lost a plane every year or two. The only time the crew got out was when the plane caught fire on the runway, and they didn't eject (the system didn't work under 60 knots), but rather popped the canopy and jumped over the side. I think that was a 10-12 foot drop, but they came out of it running, because the JP4 burned hot enough to ignite aluminum.
You know the AF's sequence for junking an airplane? (1) Buy all new test stations for the avionics, at a cost of at least $100 million. (2) Junk the aircraft the new test stations support -- in the case of Cannon, one year after they arrived. (3) Next year, fight the war Cannon had been trained for (Iraq), using other, more expensive planes to penetrate the defenses. 8-(
IANAL either, but I'm afraid mjh got that right. It is encouraging that the courts are recognizing _some_ cases where web sites don't come under distant jurisdiction, but very discouraging to discover all the things that can make them liable to be hauled into a far-away court...
This wasn't a case of cybersquatting -- but of someone who was legitimately using a particular domain name for 11 years before one of at least four companies with the same name decided to sue. First come, first serve may not be the best policy -- but after 11 years, even if this particular Unicom somehow "owned" the name, they've lost the trademark by non-enforcement.
ejection seats that went out the _bottom_ of the aircraft...Just don't pull the handle during taxi.:)
I think there were bombers with out-the-bottom ejection. Not sure how well it worked. OTOH, the F111, which has (had?) a tall single vertical fin, ejects the whole cockpit upward on rockets. They are strong enough that you not only clear the tail fin, but you can eject on the runway and get high enough for the chute to open and land you gently. However, in at least one case the aircrew yanked the eject lever when the airplane was flying inverted at under 200 feet. Seemed a shame to have to dig them out of that deep hole just so they could be buried again...
Does Windows XP come with a a zip program pre-installed? I know 98SE and NT don't -- I've got to download one from somewhere and install it before I do diddly-squat with a compressed.zip file. And I've got to do that all the time...
Yes, I do think compress/decompress should be built right into the OS. Compressed folders should be transparent to file-management tools -- that is, when you download a zip or tarball containing multiple compressed files to your hard drive, it should look like a directory, the files contained should be listed just like a directory, and the same commands should move files in and out. But no OS that I know of is actually there yet, and if Linux distros include a command-line program that decompresses standard compressed files, that's better than Windows.
OTOH, I can download (nearly) free GUI compress/decompress tools for Windows, even if the OS integration is not as good as I could imagine. Do such tools exist for Linux? And if they do exist, why in hell aren't they in the standard distros?
Re:Of sentience and reliability
on
Arguing A.I.
·
· Score: 1
sentience has hardly anything to do with reliablity. I know many a briliant person who could never find their keys.
"Limited subject" is masking the real challenge. More than 20 years ago, running Eliza on a TRS-80 model I (8-bitter with 48K RAM), I saw people responding to the program as if to a human. But Eliza didn't _know_ anything except grammar and a few psychological buzzwords. So if you looked at it at all critically, you soon realized that Eliza was just parroting your own words.
The real challenge is in conversations that display the extremely wide but shallow real world knowledge common to all humans who grew up in modern society. Example: "The glass fell on the floor and it broke. Does 'it' refer to the glass or the floor?" You could program a computer to get that one, but there are 10,000 other possibilities. Or you could probably find enough information in Google's cache to actually figure it out: "fell on the floor" implies an impact. "Glass" here refers to an object often made out of the material glass, which is not very impact resistant. Floors can be made out of many materials, but are always impact resistant. The data is there, but no computer we can yet imagine could sort out the relevant data from all the rest and put it together like this. The gigantic parallel-processing content-addressable memory inside the human head does it effortlessly.
Re:My thoughts
on
Arguing A.I.
·
· Score: 3, Funny
Taking your example of the computer on Star Trek, it could parse speech, and it could probably maintain a conversation for a while, but it had no understanding of emotion, poetry, or art in general. Um, that leads to the question of how many geeks would pass a Turing test...;-)
"Receding horizon", historically
on
Arguing A.I.
·
· Score: 2
The horizon at which AI would be recognized as such actually began receding approximately 1600, when the philosopher/mathematician Blaise Pascal designed the first mechanical calculator. Prior to that, it was generally thought that calculation, like other forms of reasoning, was uniquely human. Then Pascal's family put him to work keeping the books on their business (wine-selling?). Bored stiff, he figured out how to use gears, levers, and ratchets to add. Oops, it doesn't take intelligence to do arithmetic.
The second AI challenge may have been chess-playing. (There was a chess-playing machine on display around the same time, but there was a midget inside...) Computer programs reached grand-master level about 30 years ago, and specially-built machines can contend with human champions now. But that isn't intelligence either. The Deep Blue chess machine does NOT think things out like humans, but rather uses very simple heuristics to identify obviously bad moves, and traces out all the reasonable moves for 10 levels or more. Someday a computer will be able to play all possible chess games out within it's memory -- it will be the perfect chessplayer, and with no more real intelligence than Pascal's gears.
Various other useful AI accomplishments are similar to Deep Blue in how they relate to intelligencs. An example where I have a bit of experience: automated visual inspection is a substitute for human inspectors, who get bored as hundreds of perfect parts go by and don't see the one bad one in the lot. It is not nearly as effective as a human who is paying attention, it often seems maddeningly stupid to the programmers and operators who have to deal with all the false alarms, but it doesn't get bored... Another example is the damned Microsoft paperclip help system -- it started out as a dog, but that implied too much intelligence, and now it just smirks at you while answering the wrong question.
The _real_ AI challenge is the Turing test: hold up a conversation well enough that the humans in the chat room don't suspect it's a computer. This is very, very, very tough, and useful mainly as a publicity stunt. People don't want a computer that can simulate a human -- they want it to get the work done, without all the emotional issues you get with humans.
At least one science fiction author (Melissa Scott?) has taken to calling it "Artificial Stupidity." That's a much more practical goal; besides it better expresses what we really want (smart enough to work, too stupid to unionize), and avoids the misleading expectations that come from "Artificial Intelligence".
My favourite alternative to LRU is a simple throw out a random page. Interesting suggestion.
How about a hybrid strategy: exempt the 25% of pages that were most recently used from swapping, but then pick the one(s) to swap out randomly from the other 75%. For the Sieve, this would mean that the few pages used for the program and the continually accessed scalar variables would stay in memory, along with OS pages, and the rest of the top 25% would be waste space. But the other 75% would be managed by random swapping, which is a lot better than what happens with the normal algorithms. And for more normal programs -- with 256M RAM becoming standard, anything that is in frequent use should stay in the most recently used 64M and not be affected by the randomizing.
Or is it practical for an OS to recognize when VM is thrashing, and shift strategies from the normal (LRU or some approximation) to random?
If you read through Unicom Systems, Inc.'s first filing, you'll see that they claim to have been using "Unicom" as a trademark since 1989 -- which seems to give them priority, except...
Lots of other companies have used trademarks including the word "unicom". Rosenthal says he searched the federal trademark registry and found more than 20 registrations besides unicomsi's 3. Or in a search I just ran myself, Thomas Register (http://www.thomasregister.com/, registration required) lists 3 companies whose names start with "Unicom", not including Unicom Systems Inc. There's a maker of industrial air filters in Oregon, a printer in Alberta, and a "LAN products manufacturer" in California. I wonder if that one has heard from Unicomsi?
IANAL, but it certainly looks to me that, no matter when unicomsi registered their various trademarks, they've never had priority to just the name "unicom", or even to that name in a computer-related market. According to Rosenthal, unicomsi's registered marks are graphic designs including the word "UNICOM" -- that makes the whole mark a valid trademark (assuming the graphics are unique), but it hardly gives them the right to the name itself. And if they did own the name as related to software, still they failed to defend it for 11 years.
Anyway, this round was only about whether u-si could sue a Texas website in a California court. If u-si wants to hire a Texas lawyer, they can start over again in Texas -- of course, this is more expensive for them, and I'd certainly be amazed if they won in _any_ court on the facts I know of.
If they do continue in Texas, a suggested settlement: Rosenthal puts their banner ad at the top of his web page "Were you looking for Unicom Systems, Inc., support for legacy...". Not that he couldn't beat them entirely, but it would save time and money.
The great thing about that decision is that it tends against all the various silly lawsuits claiming that because your web site can be seen, or is mirrored in, or links to sites in some other jurisdiction, you can be yanked into court in a different state or country.
Linux "evolution" is thus a combination of Darwinian and Lamarckian. (Lamarck thought that acquired traits would be inherited -- that is, a giraffe's neck was long because its ancestors had stretched to reach high-up leaves. Darwin postulated natural selection of random variations -- that is, the tallest proto-giraffes got the most leaves and were more likely to survive, so the next generation was taller and the tallest of them survived better, etc. In biology, natural selection is so well established as to be basically a _fact_. Lamarckism is discredited; it was a nice idea, but now that we know about DNA there is no way the length of the neck could change the DNA in the gonads, and a long time ago some lab experiments seeming to show Lamarkian inheritance were proven fraudulent.)
A good VM could spot this access pattern and throw out the page just used (which won't been needed again for ages) instead, keeping the pages that are about to be used in memory.
Please, please, give us the algorithm that will detect this usage pattern without either using great gobs of memory to record past usage, or using a lot of CPU time. Until someone does this, the LRU algorithm is simple and works fairly well for the most programs.
On a case-by-case basis, it's possible to revise most of the exceptional algorithms so as not to fight with LRU memory management:
Multimedia playing, where the most recently used (played) page is never needed again: free() it! De-allocated pages aren't saved, I hope. Only an idiot would keep all the objects generated and used just once - but there must be a lot of idiots writing programs.
Sieve of Eratosthenes:
(1) Compress the array as much as possible so as to keep as much in memory as possible. You don't need to store the numbers, just whether they are crossed out yet or not. Use an array of bits, initialized to zero, where b(i) is set to 1 when number i is "crossed out." Maybe there are even more clever storage schemes?
(2) Change the bottom to top sweep to a back and forth sweep. That is, the sieve takes the next prime number p and "crosses out" numbers p+p, p+p+p, and so on to the end. Then it comes back to the beginning, finds the next prime number (not crossed out) p1, and crosses out all the multiples of p1. So let's do this sweep in reverse. Integer divide t = n/p1, where n is the last number in your array. Cross off t (which is in the 2nd to most recently used page), t-p1, t-p1-p1,... down to 2*p1. Next sweep is "forward" (starting at P2+p2), then reverse, etc. This uses pages in reverse order of how they are swapped out, so it minimizes swapping.
(3) Rearrange the algorithm to take a whole block of primes and apply all of them to one block (page) of the array at a time. Or, if you want a _really_ big array, write it to apply several thousand primes to one track of the hard drive at a time...
#1 is obvious and easy, if you are using a language that supports 1 bit objects. #2 doubles the code, but the program is so short that it doesn't really matter. #3 takes some thought and clever coding to run efficiently and accurately.
The problem is, there aren't enough really good programmers out there to figure out how to optimize every program so as to fool every VM into allocating the memory efficiently. So it certainly would help if there was a way to _tell_ the VM to switch to a different allocation scheme for particular objects. Problem: objects (to the programmer) and pages (to the VM) are not in any particular correspondence. The Sieve program, for instance, really needs one page for scalar variables (p, n, i, etc.), which is always being referenced, and so must stay in memory under the LRU method, while the array takes many pages which are best swapped as MRU. What you actually get from a C compiler is something like the first page containing both scalars and the beginning of the array. So you cannot tell the VM to swap all pages containing the array by MRU...
You left out the fact that's he's a Unix-hater and Microsoft Shill. Not hardly. Your prejudices are showing.
He did try out and write mainly about stuff that he expected most of his readers would be using -- which is to say, DOS & Windows up until two or three years ago -- but unlike some at Byte, he was always well aware that there were OS's out there other than MS's and Apple's. He has added some Linux systems to Chaos Manor now.
It might do you *nix zealots good if you can set your prejudices aside and actually read Pournelle's comments about why he is still using Windows & MS Word for most work. But too many of you have utterly closed your minds to any discussion of usability by people who just want to get some work done on the computer, rather than spending their time learning weirdly-named text commands... Do you remember that recent slashdot discussion of how Linux gurus will tell people to do basic tasks with difficult text commands, even though they are talking about a specific distro with a GUI that does the job much easier.
Pournelle is a science fiction writer and also a computer columnist for Byte magazine (byte.com now). I think his original degree was in political science (!) but somewhere he learned quite a lot about engineering, and he did the original (DOS/BASIC) programming for his wife's learning to read program. I assume his computer skills are self-taught -- he's got to be at least 60 and there were no programming classes when he was young. He wrote political columns for Intellectual Capital a few years ago, when that website was worth looking at. In the 60's he was something in NASA management -- and also he appeared at least once on national TV in a debate about the Vietnam War.
Thing is, there are cases reported fairly regularly about drivers who have been busted numerous times for drunk driving, lost their licenses, kept drinking and driving, continue to get busted even more, serve little to no time, continue drinking and driving and eventually kill someone.
For instance, if the drunk's last name is Bush...
Public transportation in most American cities shuts down long before the bars do, and isn't all that safe to ride when you're staggering and looking like mugger meat -- and where most slashdotters live (outside the cities) generally either buses don't exist or they're back in the garage around 6 PM. Taxis cost too much -- the driver has to make a living after paying for gas, car payments, and repairs, cleaning up after drunks who barfed in the cab, paying sky-high insurance, etc. Designated drivers aren't always available or trustworthy... So too damned often the drunk winds up attempting to drive himself home.
The legal climate is close to what was described for the UK, only the actual legal penalties normally assessed are quite a lot less. E.g., a guy I knew about 20 years ago got drunk and crashed his car, while his license was suspended due to previous drunk driving convictions. He slept in the county jail and picked up trash along the roadsides for six months, but that was all. He wasn't kicked out of the Air Force or even busted in rank, although I think his brother in law the congressman had something to do with that. Surprisingly, he did learn from this -- at subsequent squadron parties, he stayed at the soft-drink end of the bar.
The penalties now are stiffer, but nowhere near 10 years unless you kill someone, and even then you are probably going to get paroled early to make room for some really "dangerous" prisoner like a marijuana user... Do Brits actually spend 10 years in prison for drunk-driving accidents? I had the impression that -- same as here -- most _murderers_ get paroled in less.
This sounds rather dubious if it's sold to consumers. Remember the "brick" computers of a few years ago? These were compact and reasonably high performance boxes, more than pocket size but still not hard to take home with you. But you had to have a monitor, keyboard, mouse, and CD & floppy drives at every place you were going to use it. They were far sturdier than laptops, and I think had considerably higher performance than a laptop in the same price range. But they were duds on the market. I doubt that shrinking it to pocket size will be sufficient to overcome the basic problem that to the average user it's just a laptop with critical parts missing...
But I can see an embedded system designer salivating over this, IF the price is right and there is a good way to attach the required I/O. Give it USB, Firewire, and RS-232 ports so we can hook in I/O modules and bury this thing somewhere inside of a machine. For program development, we might have to reach inside and hook up the docking port, but once the software is released we just load up the internal HD and stick it in the machine.
Well, imagine trying to type on a Pentium chip!!! Or a slot 1 Pentium. The CPU & cache came in a little board, which with heatsink was quite a lot bigger than this.
Sounds like it might be more successful as an embedded control module than as a consumer product. But I do want to know how they got away with an 800MHz CPU without adding a humongous heat-sink. Does it throttle back to 66MHz most of the time?
Art computer, huh? Hope his neighbors never figure out why their TV sets get all that fuzz and herringbone...
So there really is a GUI tool for tarballs in Linux with KDE. That's good. What's not so good is that most Linux gurus will still attempt to teach the command-line tools to newbies, never mentioning the easy way...
Did you see the parent to my post? It was complaining about Linux distros not including a GUI interface to decompress tarballs. So I'm just asking why that's a problem, when Windows (pre XP) doesn't include _any_ means of decompressing the most common non-proprietary compressed format in DOS and Windows?
And I dreamed a little about what would be better than Winzip. You seem to have missed the point there, see my answer to kx45...
Actually within XP (and ME I believe), .zip files are viewed as compressed folders. If MS hasn't f'd up the zip/unzip process somehow, that's the first actually better feature I've heard about in XP. (I don't count fixing some of the bugs that caused crashes in previous versions as a feature. If GM sold cars where the engine would suddenly die on the freeway and take hours to re-start, they would be fixing that problem for free, not requiring you to buy a new car to get the fix. And I'll lay 10-1 odds that there are still some bugs which Tech Support can only fix by re-installation.) It's still not good enough to make up for the Product Activation, which means that when MS really wants you to buy the next version, they'll just stop giving out WPA codes, and wait for the money to start rolling in as existing installations munge themselves so a re-install is recommended...
I like Winzip too. But Explorer doesn't show you what's inside the zip files. You've got to fire up Winzip to do that, and the user interface is enough different from Explorer to be slightly annoying to me, and baffling to some of our clerks.
.cab is a microsoft proprietary format, so I wasn't counting that. Besides that, using compress.exe and extract.exe is a command-line operation, and about as opaque as it is possible to get. That was what someone was originally complaining about in regards to .tar and Linux distros...
I spent 6 years fixing F111 electronics, so I sincerely hope you don't have to fix the buggers.
The 111 ejection capsule worked quite well on paper. The trouble is, the normal mission profile for 111's is mach 0.9+ at 200 feet, so that's how they ran training flights. If anything went wrong, there usually wasn't enough time between "oh shit" and going splat to reach for the ejection lever. Not to mention that one crew that either didn't notice the plane had flipped over, or it flipped over while they were pulling the lever.
In the one case I heard of where the crew did eject "within envelope" (that is, plane rightside up and before impact), the capsule did protect the crew quite well. This was over Scotland; they just walked over to the road, got a ride to the pub, and called the base...
At Cannon AFB where I spent 6 years, they lost a plane every year or two. The only time the crew got out was when the plane caught fire on the runway, and they didn't eject (the system didn't work under 60 knots), but rather popped the canopy and jumped over the side. I think that was a 10-12 foot drop, but they came out of it running, because the JP4 burned hot enough to ignite aluminum.
You know the AF's sequence for junking an airplane? (1) Buy all new test stations for the avionics, at a cost of at least $100 million. (2) Junk the aircraft the new test stations support -- in the case of Cannon, one year after they arrived. (3) Next year, fight the war Cannon had been trained for (Iraq), using other, more expensive planes to penetrate the defenses. 8-(
IANAL either, but I'm afraid mjh got that right. It is encouraging that the courts are recognizing _some_ cases where web sites don't come under distant jurisdiction, but very discouraging to discover all the things that can make them liable to be hauled into a far-away court...
This wasn't a case of cybersquatting -- but of someone who was legitimately using a particular domain name for 11 years before one of at least four companies with the same name decided to sue. First come, first serve may not be the best policy -- but after 11 years, even if this particular Unicom somehow "owned" the name, they've lost the trademark by non-enforcement.
ejection seats that went out the _bottom_ of the aircraft...Just don't pull the handle during taxi. :)
I think there were bombers with out-the-bottom ejection. Not sure how well it worked. OTOH, the F111, which has (had?) a tall single vertical fin, ejects the whole cockpit upward on rockets. They are strong enough that you not only clear the tail fin, but you can eject on the runway and get high enough for the chute to open and land you gently. However, in at least one case the aircrew yanked the eject lever when the airplane was flying inverted at under 200 feet. Seemed a shame to have to dig them out of that deep hole just so they could be buried again...
Does Windows XP come with a a zip program pre-installed? I know 98SE and NT don't -- I've got to download one from somewhere and install it before I do diddly-squat with a compressed .zip file. And I've got to do that all the time...
Yes, I do think compress/decompress should be built right into the OS. Compressed folders should be transparent to file-management tools -- that is, when you download a zip or tarball containing multiple compressed files to your hard drive, it should look like a directory, the files contained should be listed just like a directory, and the same commands should move files in and out. But no OS that I know of is actually there yet, and if Linux distros include a command-line program that decompresses standard compressed files, that's better than Windows.
OTOH, I can download (nearly) free GUI compress/decompress tools for Windows, even if the OS integration is not as good as I could imagine. Do such tools exist for Linux? And if they do exist, why in hell aren't they in the standard distros?
sentience has hardly anything to do with reliablity. I know many a briliant person who could never find their keys.
I resemble that remark.
"Limited subject" is masking the real challenge. More than 20 years ago, running Eliza on a TRS-80 model I (8-bitter with 48K RAM), I saw people responding to the program as if to a human. But Eliza didn't _know_ anything except grammar and a few psychological buzzwords. So if you looked at it at all critically, you soon realized that Eliza was just parroting your own words.
The real challenge is in conversations that display the extremely wide but shallow real world knowledge common to all humans who grew up in modern society. Example: "The glass fell on the floor and it broke. Does 'it' refer to the glass or the floor?" You could program a computer to get that one, but there are 10,000 other possibilities. Or you could probably find enough information in Google's cache to actually figure it out: "fell on the floor" implies an impact. "Glass" here refers to an object often made out of the material glass, which is not very impact resistant. Floors can be made out of many materials, but are always impact resistant. The data is there, but no computer we can yet imagine could sort out the relevant data from all the rest and put it together like this. The gigantic parallel-processing content-addressable memory inside the human head does it effortlessly.
Taking your example of the computer on Star Trek, it could parse speech, and it could probably maintain a conversation for a while, but it had no understanding of emotion, poetry, or art in general. Um, that leads to the question of how many geeks would pass a Turing test... ;-)
The horizon at which AI would be recognized as such actually began receding approximately 1600, when the philosopher/mathematician Blaise Pascal designed the first mechanical calculator. Prior to that, it was generally thought that calculation, like other forms of reasoning, was uniquely human. Then Pascal's family put him to work keeping the books on their business (wine-selling?). Bored stiff, he figured out how to use gears, levers, and ratchets to add. Oops, it doesn't take intelligence to do arithmetic.
The second AI challenge may have been chess-playing. (There was a chess-playing machine on display around the same time, but there was a midget inside...) Computer programs reached grand-master level about 30 years ago, and specially-built machines can contend with human champions now. But that isn't intelligence either. The Deep Blue chess machine does NOT think things out like humans, but rather uses very simple heuristics to identify obviously bad moves, and traces out all the reasonable moves for 10 levels or more. Someday a computer will be able to play all possible chess games out within it's memory -- it will be the perfect chessplayer, and with no more real intelligence than Pascal's gears.
Various other useful AI accomplishments are similar to Deep Blue in how they relate to intelligencs. An example where I have a bit of experience: automated visual inspection is a substitute for human inspectors, who get bored as hundreds of perfect parts go by and don't see the one bad one in the lot. It is not nearly as effective as a human who is paying attention, it often seems maddeningly stupid to the programmers and operators who have to deal with all the false alarms, but it doesn't get bored... Another example is the damned Microsoft paperclip help system -- it started out as a dog, but that implied too much intelligence, and now it just smirks at you while answering the wrong question.
The _real_ AI challenge is the Turing test: hold up a conversation well enough that the humans in the chat room don't suspect it's a computer. This is very, very, very tough, and useful mainly as a publicity stunt. People don't want a computer that can simulate a human -- they want it to get the work done, without all the emotional issues you get with humans.
At least one science fiction author (Melissa Scott?) has taken to calling it "Artificial Stupidity." That's a much more practical goal; besides it better expresses what we really want (smart enough to work, too stupid to unionize), and avoids the misleading expectations that come from "Artificial Intelligence".
My favourite alternative to LRU is a simple throw out a random page. Interesting suggestion.
How about a hybrid strategy: exempt the 25% of pages that were most recently used from swapping, but then pick the one(s) to swap out randomly from the other 75%. For the Sieve, this would mean that the few pages used for the program and the continually accessed scalar variables would stay in memory, along with OS pages, and the rest of the top 25% would be waste space. But the other 75% would be managed by random swapping, which is a lot better than what happens with the normal algorithms. And for more normal programs -- with 256M RAM becoming standard, anything that is in frequent use should stay in the most recently used 64M and not be affected by the randomizing.
Or is it practical for an OS to recognize when VM is thrashing, and shift strategies from the normal (LRU or some approximation) to random?
If you read through Unicom Systems, Inc.'s first filing, you'll see that they claim to have been using "Unicom" as a trademark since 1989 -- which seems to give them priority, except...
Lots of other companies have used trademarks including the word "unicom". Rosenthal says he searched the federal trademark registry and found more than 20 registrations besides unicomsi's 3. Or in a search I just ran myself, Thomas Register (http://www.thomasregister.com/, registration required) lists 3 companies whose names start with "Unicom", not including Unicom Systems Inc. There's a maker of industrial air filters in Oregon, a printer in Alberta, and a "LAN products manufacturer" in California. I wonder if that one has heard from Unicomsi?
IANAL, but it certainly looks to me that, no matter when unicomsi registered their various trademarks, they've never had priority to just the name "unicom", or even to that name in a computer-related market. According to Rosenthal, unicomsi's registered marks are graphic designs including the word "UNICOM" -- that makes the whole mark a valid trademark (assuming the graphics are unique), but it hardly gives them the right to the name itself. And if they did own the name as related to software, still they failed to defend it for 11 years.
Anyway, this round was only about whether u-si could sue a Texas website in a California court. If u-si wants to hire a Texas lawyer, they can start over again in Texas -- of course, this is more expensive for them, and I'd certainly be amazed if they won in _any_ court on the facts I know of.
If they do continue in Texas, a suggested settlement: Rosenthal puts their banner ad at the top of his web page "Were you looking for Unicom Systems, Inc., support for legacy...". Not that he couldn't beat them entirely, but it would save time and money.
The great thing about that decision is that it tends against all the various silly lawsuits claiming that because your web site can be seen, or is mirrored in, or links to sites in some other jurisdiction, you can be yanked into court in a different state or country.
Linux "evolution" is thus a combination of Darwinian and Lamarckian. (Lamarck thought that acquired traits would be inherited -- that is, a giraffe's neck was long because its ancestors had stretched to reach high-up leaves. Darwin postulated natural selection of random variations -- that is, the tallest proto-giraffes got the most leaves and were more likely to survive, so the next generation was taller and the tallest of them survived better, etc. In biology, natural selection is so well established as to be basically a _fact_. Lamarckism is discredited; it was a nice idea, but now that we know about DNA there is no way the length of the neck could change the DNA in the gonads, and a long time ago some lab experiments seeming to show Lamarkian inheritance were proven fraudulent.)
A good VM could spot this access pattern and throw out the page just used (which won't been needed again for ages) instead, keeping the pages that are about to be used in memory.
... down to 2*p1. Next sweep is "forward" (starting at P2+p2), then reverse, etc. This uses pages in reverse order of how they are swapped out, so it minimizes swapping.
Please, please, give us the algorithm that will detect this usage pattern without either using great gobs of memory to record past usage, or using a lot of CPU time. Until someone does this, the LRU algorithm is simple and works fairly well for the most programs.
On a case-by-case basis, it's possible to revise most of the exceptional algorithms so as not to fight with LRU memory management:
Multimedia playing, where the most recently used (played) page is never needed again: free() it! De-allocated pages aren't saved, I hope. Only an idiot would keep all the objects generated and used just once - but there must be a lot of idiots writing programs.
Sieve of Eratosthenes:
(1) Compress the array as much as possible so as to keep as much in memory as possible. You don't need to store the numbers, just whether they are crossed out yet or not. Use an array of bits, initialized to zero, where b(i) is set to 1 when number i is "crossed out." Maybe there are even more clever storage schemes?
(2) Change the bottom to top sweep to a back and forth sweep. That is, the sieve takes the next prime number p and "crosses out" numbers p+p, p+p+p, and so on to the end. Then it comes back to the beginning, finds the next prime number (not crossed out) p1, and crosses out all the multiples of p1. So let's do this sweep in reverse. Integer divide t = n/p1, where n is the last number in your array. Cross off t (which is in the 2nd to most recently used page), t-p1, t-p1-p1,
(3) Rearrange the algorithm to take a whole block of primes and apply all of them to one block (page) of the array at a time. Or, if you want a _really_ big array, write it to apply several thousand primes to one track of the hard drive at a time...
#1 is obvious and easy, if you are using a language that supports 1 bit objects. #2 doubles the code, but the program is so short that it doesn't really matter. #3 takes some thought and clever coding to run efficiently and accurately.
The problem is, there aren't enough really good programmers out there to figure out how to optimize every program so as to fool every VM into allocating the memory efficiently. So it certainly would help if there was a way to _tell_ the VM to switch to a different allocation scheme for particular objects. Problem: objects (to the programmer) and pages (to the VM) are not in any particular correspondence. The Sieve program, for instance, really needs one page for scalar variables (p, n, i, etc.), which is always being referenced, and so must stay in memory under the LRU method, while the array takes many pages which are best swapped as MRU. What you actually get from a C compiler is something like the first page containing both scalars and the beginning of the array. So you cannot tell the VM to swap all pages containing the array by MRU...
You left out the fact that's he's a Unix-hater and Microsoft Shill. Not hardly. Your prejudices are showing.
He did try out and write mainly about stuff that he expected most of his readers would be using -- which is to say, DOS & Windows up until two or three years ago -- but unlike some at Byte, he was always well aware that there were OS's out there other than MS's and Apple's. He has added some Linux systems to Chaos Manor now.
It might do you *nix zealots good if you can set your prejudices aside and actually read Pournelle's comments about why he is still using Windows & MS Word for most work. But too many of you have utterly closed your minds to any discussion of usability by people who just want to get some work done on the computer, rather than spending their time learning weirdly-named text commands... Do you remember that recent slashdot discussion of how Linux gurus will tell people to do basic tasks with difficult text commands, even though they are talking about a specific distro with a GUI that does the job much easier.
Pournelle is a science fiction writer and also a computer columnist for Byte magazine (byte.com now). I think his original degree was in political science (!) but somewhere he learned quite a lot about engineering, and he did the original (DOS/BASIC) programming for his wife's learning to read program. I assume his computer skills are self-taught -- he's got to be at least 60 and there were no programming classes when he was young. He wrote political columns for Intellectual Capital a few years ago, when that website was worth looking at. In the 60's he was something in NASA management -- and also he appeared at least once on national TV in a debate about the Vietnam War.