> It does mean though that a sizeable
> audience are willing to give these record
> industry endorsed services a shot even
> though they can get it all free on KaZaa.
They can get it all free on KaZaa? All as in everything and free as in no expenses? This is, to say it rather calmly and politely, bullshit.
Short explanation: You only find a very limited selection of audio on KaZaa and it's not really free.
Loooooooong explanation: I don't have to mention that you never got everything on-line, people who find every piece of audio they want on the net obviously have brains the size of the U.S. Top 40 playlist. It doesn't need explanation that you won't find every alternative-funky-industrial-free-celtic-drum'n'br eaks-dirtyhardcore-swingin' east-west-gothic-oldschool-psychedelic-rapcore-bri t-grunge-crossover indie-ska-raggae-dope-jungle b-side-bonus-hidden-track-bootleg on Gnutella. But: in the glorious days of Napster, you could at least find a lot, and you could do so in essentially no time. Everyone used Napster, because there was nothing else, except for a few crazy geeks working on GPLster 0.1alpha. And everyone was connected to the mighty master server. If a new album of a just somwhat well-known band like Royksopp came out, it was very likely that someone would buy and rip and share it the very same day. If the band was less well-known, like Fettes Brot, you'd still find lots of them after a few months, at least all the singles you heard on Fooland's local MTV.
Today, however, it's totally different. There are all kinds of special protocols that conenct clients to even more specialised servers. Looking for a manga soundtrack? There's a dedicated server, but you need to install the SuperShare client, find that server (the SuperShare servers aren't all in the same network, it's fragmented into little groups all doing their own thing) and first offer it a selection of 10GB of manga soundtracks to even get connected. Gnutella(2) is a nice standards that quite some clients and lots of people have in common, but it's not working much better, unless you're looking for Britney Spears and the like. Sure, there's still lots of that. But it takes quite long until you are first connected to some peers, then the client detects some UltraPeers and ÜberPeers and whatnot, then it slowly fills the slots with the new peers that support Gnutella 2, which is supposed to provide better searching, but isn't any good in practice because only very few clients support it.
Consequently, you're always only searching a small fraction of the available ressources and less then half of your findings will really be available for download. To me, the whole p2p community has devolved into an unorganized mess that doesn't go anywhere. Finding and downloading music has become a full-time-job, it's ridicuouls.
Maybe there are some kids who don't have anything better to do with their time and still consider services like this 'free', but if your time is worth anything, you're better off buying everythign in a store right away, and also do your browsing there.
Or maybe I'm just an idiot who doesn't know how to effectively use the new p2p clients? If you think so, I challenge you to find several tracks of Radioboy's famous album 'The Mechanics of Deconstruction', the video clip of Playgroup's 'Number one', and an ISO of the PSX game 'Kurushi'.
>... what's the problem?
The problem is that the sources you're checking are still 1A-OK after a trojan infected the respective binary.
Of course you could re-compile all suspicious binaries after having verified that your compiler wasn't compromised. However, as I would find an automatic MD5 check of every binary, which would locate every potential source of trouble, a little more clever, this idea doesn't strike me as revolutionary.
The project described in the article really is more suitable for binaries. Every site I ever downloaded Unix/BSD/Linux sources from also offered MD5 hashes, so if I know where I got the source from (that's not too hard, is it?), I also know where to get a valid hash.
Anyway, automating the check that the 'knowngoods' project offers would be really cool: A program that automatically verifies all your binary has the disadvantage that it would have had to be run before the suspected security breach in order to record the required hashes. This is where the database comes into play: If you don't know an MD5, you go look it up and can perform the check anyway. Now that's time-consuming. But if exactly this could be automated...
It's still quite popular to include an with this link as target, so to a luser it looks like if a listing of his folders and files was right there on the web page that came from the server. I see something like that every once in a while when I pay a visit to Astalavista or something like that.
> how exactly do they expect to allow people
> to connect to the internet *without*
> 'broadcasting' the IP address?
You're not quite right in saying this doesn't make any sense, because _in theory_ they _could_ provide a service that routes the web traffic of the average luser through a proxy that is more secure than their own machine, effectively hiding their IP from the servers they connect to, and making their internet surfing more secure indeed.
Yes, _in reality_ the company does something entirely different. I don't know what at all, because I never clicked on one of those banners, but considering how sound and legitimate their banner looks, it's obvious that they're _really_ crooked...
Anyway, everyone who uses a web proxy is 'not broadcasting' his IP address and gets the requested pages back just fine;-p
WARNING! Your computer is currently BROADCASTING a *gasp* *shock* IP address! With this information, HACKERS can DESTROY your computer! Download our SECURITY patch NOW!
This is nothing new. Companies were already giving us 'free' programs that 'speed up our connections' and 'improve our security' years ago!They're called Trojans.
>...and then refining there reasones into an design
Are you sure you can pritty much gaurentee you can write thousands of LOC without compiling them from time to time?;-)
> The majority of the work I do is fixing
> design flaws in other peoples applications
> often doing large amounts of refactoring
> and documenting business processes that
> were missunderstood or poorly implented the
> first time around.
Looks like you're doing the Right Thing(tm). Yes, unit tests are good, and refactoring is very important these days. But isn't refactoring early and often pretty much the opposite of charting down a full-fledged design before writing one line of code?
I'm sure you already knew that when you wrote that comment: what you suggest isn't practical. It _is_ possible to build software like a house, but such an undertaking would be purely academic. You build a house _after_ someone has made a plan. In contrast to that, building software _is_ building the _plan_. A plan of steps that tell the computer what to do.
What you suggest is what Niklaus Wirth suggested 40 and even 50 years ago: stepwise refinement. First draw a rough sketch, then fill in details, then fill in the details of the details. The problem with this is that it doesn't work any longer. You can't test a half-finished appliaction this way, because half of your routines are still pseudo-code. Rumours go that Wirth never executed any of the code he wrote, and they aren't that far away from the truth. It didn't matter for his little example Pascal programs, because he was clever enough to see they'd work. But modern software is too complex, the correctness of a program is hardly ever proved. Instead, you try it out, see if it works.
Of course, you _could_ test a half-finished program that's built with stepwise refinement. You'd have to replace every bit of pseudo-code with test stubs and drivers. But change the architecture just a bit, and you have to throw away that test code and write it anew. This approach is very, very hostile to state-of-the-art techniques like extreme programming, agile software development etc.---which are actually quite popular and common---maybe even necessary---in OSS development.
> If OSS implmeneted that kind of
> design/implemtation practice then you could
> write software with everyone laying down a
> brick at a time.
People _are_ contributing little bits _without_ taking such a tedious, error-prone approach. What they don't do, for good and obvious reasons, is divide the work of writing an application core in a way that would either require dozens or hundreds of people to know everything about each other's work, or some kind of super-genious who thinks of every detail beforehand and is just too lazy to write down the respective lines of code.
Quote from the article:
> Open source is an enormously successful method of
> software development, but so far it seems to work best
> on projects in which a relatively small, extremely motivated,
> often far-flung team can piggyback on the work done by others
> and develop more tools for the next set of programmers.
The author's impression of OSS development is skewed, I don't think he ever was involved in an OSS project himself.
Firstly, it has always been the rule that the core of an application is built by a rather small group of people. Every application core has a limited number of files/components with lots of interdependencies---there can only be a limited number of people who work at those at the same time. Building software is not like building a house where hundreds of people can lay down individual bricks as long as there is some master plan that tells them where to put them. It's more like erecting a big circus tent: of the people in the center, who pull up the actual tent (as opposed to those who set up additional stuff like trailers and cages), everyone has to know what the others are doing at the moment to prevent the thing from falling on their heads. Projects with a rather small, highly motivated team don't just work better, these are the only ones who work at all.
Secondly, I object to giving people the idea that successful OSS projects are "piggybacking" on other software. It's simly a fact of life that the times in which every program was written from scratch in Assembler are over. As software becomes more complex, more complex methods of building it have to be employed. You have to use sets of tools from various sources, re-use components, build upon the work of others, instead of re-inventing the wheel every time. Just because this is more visible in OSS projects, which display credits for the foundation they use instead of paying licence fees, that doesn't mean it's different from proprietary software.
Well, actually there is one difference: OSS projects that are also free software support the modern approach to software engineering much better. You can use them in your own work, which can in turn be modified, improved and used in other projects. Proprietary software developers, on the other hand, hide their work from each other and force each other to do exactly the same tasks over and over because everyone fears that giving away stuff for free wouldn't pay off in the end. Which is absurd in a way; imagine having to develop yet another stupid GUI widget that looks and behaves exactly like that from the competition, with the only difference that the development is payed by company B this time instead of company A.
it's wrong that you you couldn't have texturing. you could even have 3D textures---something most current gfx cards still can't do. remember the voxel terrain of comanche? they had a texture across their terrain back in 1994. you're right, "at most, you could have coloured dots", but that's exactly what a texture is about: colouring the picture elements, wheter those are pixels or voxels. not sexy for games? comanche was _damn_ sexy back in the day, you wouldn't have expected that kind of terrain would be possible on your 486 25MHz!
of course, texturing only looks good if the voxels are dense enough and form a solid, whereas the idea of the technique we're talking about here is all about rather sparce voxels. you could still colour them in to make arteries look different from veins or something.
an issue with which i'd be much more concerned: what kind of hardware acceleration can you get for that technique? i doubt that it renders 10x faster than polygons with a comparable level of detail on your vanilla geforce.
> Ports of Emacs [gnu.org] or Vi[m] [vim.org] to win32 don't interest
> me very much, primarily because I enjoy the hotkey conventions that
> I'm used to already in win32 (Ctrl-C to copy, Ctrl-X to cut, and so on).
If you use gVim under win32 (as opposed to plain vanilla Vim under win32, but it _is_ in the Vim for win32 package), you _can_ use Ctrl-X/C/V. What I'm still missing is Ctrl-F for searching, but if you definitely _have_ to have that, there's surelely some tool that lets you assign hotkeys to menu items in arbitrary applications.
this article reminded me of that hilarious 'spam' song by save ferris and i decided to dig out the lyrics. if you happen to know the direct url (google helps there), it works just fine, but check out what happens if you click at their link in their lyrics listing for 'save ferris'.
Shouldn't Alice talk to Bob?
on
ALICE vs. ALICE
·
· Score: 1
> This month, I've been working on AIML and
> ALICE, and I've found the following
> projects to kick ass...
I found them to kick no ass whatsoever. What I've seen done with AIML so far (I had a look at J-Alice) didn't impress me at all. There surely is a not negligible amount of data collected in the AIML files that come with J-Alice and there sure are even better files to be found somewhere else, but all that useless bot does is extremely simple string substitution and maintaining a minimal state (e.g. it tries to guess the current topic). It's about as intelligent a conversation partner as a regular expression -- if it finds something that matches a pattern, it generates a reply by string substitution. But it has absolutely no idea of what it's talking about.
For clarification, this is what I'd expect a somewhat intelligently engineered bot to do: Say, I ask it, "Was he nice?". First, it should try to find out what "he" refers to by examining the previous messages. For example, if the last sentence the bot uttered was "Once I talked to a man called Nex", it should be able to expand my question to "Was Nex, to whom you talked, nice?", or even better: "Was Nex nice when you talked to him?". Then it should figure out if it actually knows wheter nex was nice and answer accordingly.
In contrast to that, all that an Alice bot would do is try to fake conversation by answering something like "I heard people say he was nice." You can't do more with AIML, at least not if it's used the way I've seen it. It has no idea of which words are nouns, which verbs and adjectives go with these nouns, or what any of them mean. It is not able to learn through conversation, you can only manually update the knowledge base. As another example, a conversation I'd like to have with a bot that is able to learn:
Bot: "Susan told me she bought a car."
Human: "Was it expensive?"
Bot: "No idea. How would I know?"
Human: "If something costs a lot of money, it is expensive."
Bot: "I see."
So far, any Alice could have been the bot. But I'd expect from the bot to remember that something that costs a lot of money is expensive. Maybe it would assign a "truth" value to this bit of information based on how trustworthy it finds me. So now the bot could expand my question to:
Human: "Did the car that Susan bought cost a lot of money?"
Bot: "I don't know. Susan said it cost 20,000 dollars. Is this a lot of money?"
Of course, the bot would also have to know that dollars are a currency unit, which is something like a unit of measurement for money, to be able to make the connection. There's no point in hardcoding that in a J-Alice-like AIML file, the bot has to _understand_ the words, i.e. expand them internally to basic terms it can cope with. The difference is that a bot that knows the explanation for "currency unit" can very easily be taught that euros also are a currency unit. If it's intelligently designed, it may even deduce this fact from a sentence like "My plane ticket cost 100 euros."
By the way, there already are bots that do understand what they talk about. However, they talk about a small set of simple things like colours and relative positions of geometric shapes, e.g.:
Human: "Where is the red circle?"
Bot: "The red circle is left from the green square and above the yellow triangle."
That's what we should build on. These bots at least know what they're talking about.
Re:ALICE never seemed intelligent anyway.
on
ALICE vs. ALICE
·
· Score: 1
alice was FIRST written in the 60ies, but... maybe if you consider that it is still maintained and updated you can understand why it's still winning the loebner prize for lack of any better program?
germans _do_ laugh about jokes, they don't clap to applaud the jokes. they clap to applaud themselves once they have finally got the joke, which can be a painfully long process. it's an indicator for the comedian that he can stop explaining and try the next one.
>... because only all European CDs will be crippled.
oh! _only_ all european CDs will be crippled. well, if only that minor continent is affected... who cares?
> the Puritans themselves were pretty sexually liberated
oh come on! i don't know much about the puritans, but i'm sure that sex was only okay for them as long as they produced children. they were probably as sexually liberated as the pope.
opera lets you zoom the whole page in and out, almost continuously adjustable. with a mouse wheel, if you want. by the way, if you can't read something at 1600x1200, your monitor is too small;-)
> All of the "smart" curly quotes get converted
> to meaingless codes like this: it?s.
Weeeell, if you're picky about proper punctuation, you shouldn't put any kind of quote in "it's", but rather an apostrophe.
> It does mean though that a sizeable
r eaks-dirtyhardcore-swingin' east-west-gothic-oldschool-psychedelic-rapcore-bri t-grunge-crossover indie-ska-raggae-dope-jungle b-side-bonus-hidden-track-bootleg on Gnutella. But: in the glorious days of Napster, you could at least find a lot, and you could do so in essentially no time. Everyone used Napster, because there was nothing else, except for a few crazy geeks working on GPLster 0.1alpha. And everyone was connected to the mighty master server. If a new album of a just somwhat well-known band like Royksopp came out, it was very likely that someone would buy and rip and share it the very same day. If the band was less well-known, like Fettes Brot, you'd still find lots of them after a few months, at least all the singles you heard on Fooland's local MTV.
> audience are willing to give these record
> industry endorsed services a shot even
> though they can get it all free on KaZaa.
They can get it all free on KaZaa? All as in everything and free as in no expenses? This is, to say it rather calmly and politely, bullshit.
Short explanation: You only find a very limited selection of audio on KaZaa and it's not really free.
Loooooooong explanation: I don't have to mention that you never got everything on-line, people who find every piece of audio they want on the net obviously have brains the size of the U.S. Top 40 playlist. It doesn't need explanation that you won't find every alternative-funky-industrial-free-celtic-drum'n'b
Today, however, it's totally different. There are all kinds of special protocols that conenct clients to even more specialised servers. Looking for a manga soundtrack? There's a dedicated server, but you need to install the SuperShare client, find that server (the SuperShare servers aren't all in the same network, it's fragmented into little groups all doing their own thing) and first offer it a selection of 10GB of manga soundtracks to even get connected. Gnutella(2) is a nice standards that quite some clients and lots of people have in common, but it's not working much better, unless you're looking for Britney Spears and the like. Sure, there's still lots of that. But it takes quite long until you are first connected to some peers, then the client detects some UltraPeers and ÜberPeers and whatnot, then it slowly fills the slots with the new peers that support Gnutella 2, which is supposed to provide better searching, but isn't any good in practice because only very few clients support it.
Consequently, you're always only searching a small fraction of the available ressources and less then half of your findings will really be available for download. To me, the whole p2p community has devolved into an unorganized mess that doesn't go anywhere. Finding and downloading music has become a full-time-job, it's ridicuouls.
Maybe there are some kids who don't have anything better to do with their time and still consider services like this 'free', but if your time is worth anything, you're better off buying everythign in a store right away, and also do your browsing there.
Or maybe I'm just an idiot who doesn't know how to effectively use the new p2p clients? If you think so, I challenge you to find several tracks of Radioboy's famous album 'The Mechanics of Deconstruction', the video clip of Playgroup's 'Number one', and an ISO of the PSX game 'Kurushi'.
> ... what's the problem?
The problem is that the sources you're checking are still 1A-OK after a trojan infected the respective binary.
Of course you could re-compile all suspicious binaries after having verified that your compiler wasn't compromised. However, as I would find an automatic MD5 check of every binary, which would locate every potential source of trouble, a little more clever, this idea doesn't strike me as revolutionary.
The project described in the article really is more suitable for binaries. Every site I ever downloaded Unix/BSD/Linux sources from also offered MD5 hashes, so if I know where I got the source from (that's not too hard, is it?), I also know where to get a valid hash.
Anyway, automating the check that the 'knowngoods' project offers would be really cool: A program that automatically verifies all your binary has the disadvantage that it would have had to be run before the suspected security breach in order to record the required hashes. This is where the database comes into play: If you don't know an MD5, you go look it up and can perform the check anyway. Now that's time-consuming. But if exactly this could be automated...
> perhaps the signal may reappear if given
> more than a passing chance to listen to it...
Well, if you consider the cosmic orders of magnitude we're talking about here, a whole human lifespan is just a tiny fragment of a passing chance...
It's still quite popular to include an with this link as target, so to a luser it looks like if a listing of his folders and files was right there on the web page that came from the server. I see something like that every once in a while when I pay a visit to Astalavista or something like that.
> how exactly do they expect to allow people
;-p
> to connect to the internet *without*
> 'broadcasting' the IP address?
You're not quite right in saying this doesn't make any sense, because _in theory_ they _could_ provide a service that routes the web traffic of the average luser through a proxy that is more secure than their own machine, effectively hiding their IP from the servers they connect to, and making their internet surfing more secure indeed.
Yes, _in reality_ the company does something entirely different. I don't know what at all, because I never clicked on one of those banners, but considering how sound and legitimate their banner looks, it's obvious that they're _really_ crooked...
Anyway, everyone who uses a web proxy is 'not broadcasting' his IP address and gets the requested pages back just fine
WARNING! Your computer is currently BROADCASTING a *gasp* *shock* IP address! With this information, HACKERS can DESTROY your computer! Download our SECURITY patch NOW!
This is nothing new. Companies were already giving us 'free' programs that 'speed up our connections' and 'improve our security' years ago!They're called Trojans.
> ...and then refining there reasones into an design
;-)
> The majority of the work I do is fixing
Are you sure you can pritty much gaurentee you can write thousands of LOC without compiling them from time to time?
> design flaws in other peoples applications
> often doing large amounts of refactoring
> and documenting business processes that
> were missunderstood or poorly implented the
> first time around.
Looks like you're doing the Right Thing(tm). Yes, unit tests are good, and refactoring is very important these days. But isn't refactoring early and often pretty much the opposite of charting down a full-fledged design before writing one line of code?
I'm sure you already knew that when you wrote that comment: what you suggest isn't practical. It _is_ possible to build software like a house, but such an undertaking would be purely academic. You build a house _after_ someone has made a plan. In contrast to that, building software _is_ building the _plan_. A plan of steps that tell the computer what to do.
What you suggest is what Niklaus Wirth suggested 40 and even 50 years ago: stepwise refinement. First draw a rough sketch, then fill in details, then fill in the details of the details. The problem with this is that it doesn't work any longer. You can't test a half-finished appliaction this way, because half of your routines are still pseudo-code. Rumours go that Wirth never executed any of the code he wrote, and they aren't that far away from the truth. It didn't matter for his little example Pascal programs, because he was clever enough to see they'd work. But modern software is too complex, the correctness of a program is hardly ever proved. Instead, you try it out, see if it works.
Of course, you _could_ test a half-finished program that's built with stepwise refinement. You'd have to replace every bit of pseudo-code with test stubs and drivers. But change the architecture just a bit, and you have to throw away that test code and write it anew. This approach is very, very hostile to state-of-the-art techniques like extreme programming, agile software development etc.---which are actually quite popular and common---maybe even necessary---in OSS development.
> If OSS implmeneted that kind of
> design/implemtation practice then you could
> write software with everyone laying down a
> brick at a time.
People _are_ contributing little bits _without_ taking such a tedious, error-prone approach. What they don't do, for good and obvious reasons, is divide the work of writing an application core in a way that would either require dozens or hundreds of people to know everything about each other's work, or some kind of super-genious who thinks of every detail beforehand and is just too lazy to write down the respective lines of code.
Quote from the article:
> Open source is an enormously successful method of
> software development, but so far it seems to work best
> on projects in which a relatively small, extremely motivated,
> often far-flung team can piggyback on the work done by others
> and develop more tools for the next set of programmers.
The author's impression of OSS development is skewed, I don't think he ever was involved in an OSS project himself.
Firstly, it has always been the rule that the core of an application is built by a rather small group of people. Every application core has a limited number of files/components with lots of interdependencies---there can only be a limited number of people who work at those at the same time. Building software is not like building a house where hundreds of people can lay down individual bricks as long as there is some master plan that tells them where to put them. It's more like erecting a big circus tent: of the people in the center, who pull up the actual tent (as opposed to those who set up additional stuff like trailers and cages), everyone has to know what the others are doing at the moment to prevent the thing from falling on their heads. Projects with a rather small, highly motivated team don't just work better, these are the only ones who work at all.
Secondly, I object to giving people the idea that successful OSS projects are "piggybacking" on other software. It's simly a fact of life that the times in which every program was written from scratch in Assembler are over. As software becomes more complex, more complex methods of building it have to be employed. You have to use sets of tools from various sources, re-use components, build upon the work of others, instead of re-inventing the wheel every time. Just because this is more visible in OSS projects, which display credits for the foundation they use instead of paying licence fees, that doesn't mean it's different from proprietary software.
Well, actually there is one difference: OSS projects that are also free software support the modern approach to software engineering much better. You can use them in your own work, which can in turn be modified, improved and used in other projects. Proprietary software developers, on the other hand, hide their work from each other and force each other to do exactly the same tasks over and over because everyone fears that giving away stuff for free wouldn't pay off in the end. Which is absurd in a way; imagine having to develop yet another stupid GUI widget that looks and behaves exactly like that from the competition, with the only difference that the development is payed by company B this time instead of company A.
it's wrong that you you couldn't have texturing. you could even have 3D textures---something most current gfx cards still can't do. remember the voxel terrain of comanche? they had a texture across their terrain back in 1994. you're right, "at most, you could have coloured dots", but that's exactly what a texture is about: colouring the picture elements, wheter those are pixels or voxels. not sexy for games? comanche was _damn_ sexy back in the day, you wouldn't have expected that kind of terrain would be possible on your 486 25MHz!
of course, texturing only looks good if the voxels are dense enough and form a solid, whereas the idea of the technique we're talking about here is all about rather sparce voxels. you could still colour them in to make arteries look different from veins or something.
an issue with which i'd be much more concerned: what kind of hardware acceleration can you get for that technique? i doubt that it renders 10x faster than polygons with a comparable level of detail on your vanilla geforce.
> Ports of Emacs [gnu.org] or Vi[m] [vim.org] to win32 don't interest
> me very much, primarily because I enjoy the hotkey conventions that
> I'm used to already in win32 (Ctrl-C to copy, Ctrl-X to cut, and so on).
If you use gVim under win32 (as opposed to plain vanilla Vim under win32, but it _is_ in the Vim for win32 package), you _can_ use Ctrl-X/C/V. What I'm still missing is Ctrl-F for searching, but if you definitely _have_ to have that, there's surelely some tool that lets you assign hotkeys to menu items in arbitrary applications.
this article reminded me of that hilarious 'spam' song by save ferris and i decided to dig out the lyrics. if you happen to know the direct url (google helps there), it works just fine, but check out what happens if you click at their link in their lyrics listing for 'save ferris'.
Maybe vibrating eyeglasses would help.
> This month, I've been working on AIML and ...
> ALICE, and I've found the following
> projects to kick ass
I found them to kick no ass whatsoever. What I've seen done with AIML so far (I had a look at J-Alice) didn't impress me at all. There surely is a not negligible amount of data collected in the AIML files that come with J-Alice and there sure are even better files to be found somewhere else, but all that useless bot does is extremely simple string substitution and maintaining a minimal state (e.g. it tries to guess the current topic). It's about as intelligent a conversation partner as a regular expression -- if it finds something that matches a pattern, it generates a reply by string substitution. But it has absolutely no idea of what it's talking about.
For clarification, this is what I'd expect a somewhat intelligently engineered bot to do: Say, I ask it, "Was he nice?". First, it should try to find out what "he" refers to by examining the previous messages. For example, if the last sentence the bot uttered was "Once I talked to a man called Nex", it should be able to expand my question to "Was Nex, to whom you talked, nice?", or even better: "Was Nex nice when you talked to him?". Then it should figure out if it actually knows wheter nex was nice and answer accordingly.
In contrast to that, all that an Alice bot would do is try to fake conversation by answering something like "I heard people say he was nice." You can't do more with AIML, at least not if it's used the way I've seen it. It has no idea of which words are nouns, which verbs and adjectives go with these nouns, or what any of them mean. It is not able to learn through conversation, you can only manually update the knowledge base. As another example, a conversation I'd like to have with a bot that is able to learn:
Bot: "Susan told me she bought a car." Human: "Was it expensive?" Bot: "No idea. How would I know?" Human: "If something costs a lot of money, it is expensive." Bot: "I see."
So far, any Alice could have been the bot. But I'd expect from the bot to remember that something that costs a lot of money is expensive. Maybe it would assign a "truth" value to this bit of information based on how trustworthy it finds me. So now the bot could expand my question to:
Human: "Did the car that Susan bought cost a lot of money?" Bot: "I don't know. Susan said it cost 20,000 dollars. Is this a lot of money?"
Of course, the bot would also have to know that dollars are a currency unit, which is something like a unit of measurement for money, to be able to make the connection. There's no point in hardcoding that in a J-Alice-like AIML file, the bot has to _understand_ the words, i.e. expand them internally to basic terms it can cope with. The difference is that a bot that knows the explanation for "currency unit" can very easily be taught that euros also are a currency unit. If it's intelligently designed, it may even deduce this fact from a sentence like "My plane ticket cost 100 euros."
By the way, there already are bots that do understand what they talk about. However, they talk about a small set of simple things like colours and relative positions of geometric shapes, e.g.:
Human: "Where is the red circle?"
Bot: "The red circle is left from the green square and above the yellow triangle."
That's what we should build on. These bots at least know what they're talking about.
alice was FIRST written in the 60ies, but... maybe if you consider that it is still maintained and updated you can understand why it's still winning the loebner prize for lack of any better program?
I have no comment for that.
Would you like to have it?
oops, i forgot to put a linebreak after "> comdom" -- i keep forgetting this is not kuro5hin.
> condom singular? one condom? and this is more than enough? so actually, 0 condoms would be just right, huh?
germans _do_ laugh about jokes, they don't clap to applaud the jokes. they clap to applaud themselves once they have finally got the joke, which can be a painfully long process. it's an indicator for the comedian that he can stop explaining and try the next one.
> ... because only all European CDs will be crippled.
oh! _only_ all european CDs will be crippled. well, if only that minor continent is affected... who cares?
> the Puritans themselves were pretty sexually liberated oh come on! i don't know much about the puritans, but i'm sure that sex was only okay for them as long as they produced children. they were probably as sexually liberated as the pope.
can you supply a link to some reference? and what exactly is between Z: and AA: ?
opera lets you zoom the whole page in and out, almost continuously adjustable. with a mouse wheel, if you want. by the way, if you can't read something at 1600x1200, your monitor is too small ;-)