It would be nice if we could stop these stupid comparisons of apples and oranges. Should we compare linux running on Linksys router to M$ Windows?
Simply saying that X handles windows differently isn't a very intelligent analysis. How about the freedom you have to choose whatever window manager you want? Or to not use X if you choose. I would also like to note that the fact that X works with TCP/IP is a feature I use daily (and not some minor detail).
And how many platforms does Windows run on? I'm not trying to bash M$ here, but point out that Linux is a lot more than just 'copying' features. I wouldn't suggest Linux for everyone, but wouldn't consider any other OS for what I do.
Apparently all these years that I've been using the words 'procrastinate' and 'waste of time', I really could have used 'colloborative weblogs'. It makes it sound like you're doing something useful.
It depends on what you are doing. I have meant to check out Ruby, as it sounds like a really nice language, but Python has the advantage of being more popular. This means for me that I have available libraries such as matplotlib, and numarray, which means I can hopefully never have to use matlab again. Of course, while this is great if you are in science, if you want to write internet apps, it doesn't make much a difference.
I have never been a big fan of Java, but that's just me. I think these toolkits are great because it is easy now to write crossplatform apps easily without having to use Java. And, go ahead and flame me, but I don't consider TK a usable interface for most modern day apps.
I love C++. However, I constantly run into the problem that almost no one else in my field (science) understands C++. Some know C and matlab, but that's about the end of it.
While for software engineers you might be able to argue that its their field, learn the language, you can't do that with people who use programming as part of their job, but not their main focus. I am constantly faced with the problem of either having other people understand my code, or writing things faster and with less bugs.
The biggest obstacle is the difficult syntax of C++. After using it for enough time it's easy to forget, but it is a rather large learning curve -- especially for people who just want their code to work. The other complaints leveled at C++ (unless you are working with embedded systems, etc.) I think are just flamewar material.
If there was one feature to pick out for why to use C++ I would have to say templates. Too bad toolkits like QT don't use them.
Python has some nice bindings,
and what better to go with a crossplatform toolkit than a cross platform interpreted language. Also, SIP (the tool used to create the bindings) finally works under OS X.
A downside to QT is that it is not free under windows. While this might be okay with companies, if you ever considered writing crossplatform OSS programs, this can hamper things. There is a
project porting the X11 version to windows, so its not a complete roadblock..
Of course there is always GTK which has been known to also run under windows
and OS X. It is not my intention to start any flamewars -- I am just pointing out that for those in favour of either toolkit there is plenty of crossplatformability.
If either TK holds any major advantage its that GTK+ natively supports C code, but also has C++ bindings. The signalmm library that came out of gtkmm is actually really nice, and usable for other projects. However, in that case don't forget about boost, which also contains a signal library, not to mention a *really* nice interface to python (which I'm currently using in a project). Just be warned, you need a fast computer for compiling.
Could this be M$ attempt to strike back at apple for now making iTunes for w$? This could make it too pricey to produce ipods for w$, an effectively make it so only w$-running music players survive.
Perhaps a solution to this problem is to use the old fashion handles with some type of digital signiture scheme. Why trust some with a handle versus an anonymous posting..? Well, at least with a handle you can build trust as that person posts information. Additionally if there was a method to allow trusting of trusted sources (i.e. some metric of how much a post is to be accepted based on who trusts this specific poster), then it could become a fairly decent method of discrimination.
is that Manderin or Cantonese? As far as I understand there are even more distinctions that one can make between all the variants.
There might end up being more pages in Chinese in quantity, but that isn't the same as visibility. Any page that wants to speak to a world wide audience will have to have an english version.
Aside from being a lazy american who could barely manage russian, and is quite content with only speaking english, there is a much more persuasive argument. Programming languages. Not that everyone technically needs to know how to program, but getting a computer to do anything sophisticated requires at least a pseudo-language. Take HTML for instance. While you can fill the content with any language you like, the tags will forever remain in english (there can also be hacks made of course) [counter examples to my english hypothesis are assembly language and Perl]
Besides, everyone knows that either esperanto or pig-latin will the real official language spoken by the world come 20 years.
I remember seeing a documentary on someone who managed to teleport a photon using entanglement. While I'm sure the equipment/setup/everything is much more expensive, it could theoretically provide an even better method of secure communication. While you might not be able to listen in without diverting the photon from its destination, it is possible to stop the photon period (also as one poster already mentioned, you can't allow for a perfect world, so its always possible for photons to be dropped [or appear to be dropped] requiring another photon to be sent out, and thus making the system again insecure).
Okay, I can see why misguided developers might want to place XP in hand helds like palm, but I can't imagine what you gain from placing it in a _completely_ non-windowing system. As a previous poster pointed out,
(a) you can get BSOD, and (b) I wonder how you click 'OK' on that dialog box.
The display you see for example on ATMs I suspect is just as easy to draw regardless of the OS you use. You're writing embedded systems, which means you are likely to write your own drivers anyways. If you are going to run XP, you certainly have the space/power to run a library like SDL which can do everything XP can do graphically AND remain much less dependent on your platform.
I am not trying to bash windows (okay, I am kinda), but just point out that an OS used primarily as a windowing system, may not be the best pick for a non-windowing system. Its like having windows on PDAs. The screens are barely big enough to show just one window, why would someone want overlapping windows?
The article gives very little details about the actuals concepts involved making it somewhat uninteresting. I'm sure most people here could easily write a program to do the same things. Does it use predefined weighted logic, back progation NN, recurrent NN, alpha-beta, genetic algorithms? Even if it did, making AI games isn't really that interesting anymore, unless someone comes out with a Go player that can beat a master.
<p>
Besides, wouldn't it be easier to just parse HTML rather than try to read the screen? I mean, if the point of the program were to just try to understand writing, <i>that</i> would be interesting. It always irrates me when newspapers write stories like these, when there are many other people doing much cooler things that go unrecognized. At least they should ask someone who knows something if this problem is interesting... Then again, I've never heard of the newspaper, so maybe its all the new they could get to print.
I should first say I am strongly biased against Java. While I understand that some of its design choices were made for 'easier development'. I should point out that visual basic is the pinacle of 'easier development'.
(Knowing C allows other languages to be easier understood. This is partly because a good understanding of C also involves a good understanding of how computers generally work. While things like garbage collection can make life easier, it also allows for poor programming practice. It is much easier to start off with a good understanding of how memory management works, than to have to learn it later.
Java, as far as I understand, is still officially owned and controlled by Sun, and therefore may or may not remain relevent in daily use.
For some reason the designer of Java left out many important, and widely used, features of C++ like multiple inheritence, and templates.
As noted by Stroustrup, C++ is not a 'object-oriented' language per se, but rather a functional and object-oriented language. Simply stated, you may write C code in C++ if you wish. While object oriented programming is a great idea, it is not always the best design option, and you can lose a lot of power being tied to only one methodology.
The C language can be applied to a much wider of applications than Java can. The simple fact is that C is scalable to almost any platform, whereas Java cannot.
Umm, not to state the obvious, but no matter how many graphics you use to represent your program, it is always reducible to a tape of 1s and 0s (i.e. reducible to a Turing Machine). That said, I am guess then they can only mean that you shouldn't edit the underlying program.
Looking at the FAQ it claims that the big difference from other PLs is:
"a clean separation between the substance and the appearance of a program"
This does not seem so different from any other graphics-oriented language. According to the docs, it seems not so much that this is a new idea, but rather an attempt at a more robust implementation accomplished by allowing the language to be represented visually.
There are a couple key difficulties in such an approach: a) how do you compare (i.e. diff) two graphic programs? You must rely on its binary form, and hope its equivalent even if you move a component over 5 pixels; b) programs must be kept small due to complex relationships obscuring parts of the code; c) no matter how revolutionary you get, you still must be able to form logic gates, and so it all boils down to a text-version.
According to their FAQ they are providing a VM that any language can compile to (and thus is language neutral):
"The Common Language Runtime is the execution engine for.NET Framework applications."
This runs what they call the "Microsoft Intermediate Language".. personally this sounds like Hell to me (just from experience with other Microsoft environments). However, this really is what Sun should have done with Java. Instead of creating a whole new language, just create a VM for every platform, and allow cross-platform compilers to create the code so everyone gets to use the language of their choice. I have a feeling that with MS you won't get that much freedom, and will be forced to use things like DCOM, and whatever other acronyms they come up with.
Neural networks by themselves do not automatically make something 'intelligent.' They are one tool available to someone trying to solve an AI-related problem. They will not automagically make your house superintelligent. There are also several classes of neural networks, such as feed-forward backprop (which is a commonly used class of NN, but also of a lower computational model than Turing Machines), and recurrent neural networks (which are of the same computational model of TM, but tend to be harder to train). Other AI methods that are non-NN include: fuzzy logic, minimax, alpha-beta, etc. (there are a lot more, but I'm feeling lazy). None of these methods are really better or worst than a NN, just different. Depending on your task their ability to search through a given problem-space may be better than other methods (theres a lot of experience/guess-work involved).
Most likely places where you might want to employ any type of AI would be in situations where you needed certain types of adaptation. It is important to know what method you are employing is capable of beforehand, otherwise you will end up with a badly-behaving system. For example, if you took a perceptron (a single-layer feedforward NN) and tried to get it to classify an XOR problem (the classic breaking point of the perceptron), it would fail. But it can classify other types of problems great.
There are a few classic applications of AI in the house, like temperature. Even this application is non-trivial due to fluctuations in temperature just across room. You will find most applications will have to take into account the world is a chaotic place (and system) [which is why an adaptable system is needed, but also makes is non-trivial].
I would like to patent the concept of the 'e-transaction', whereby two devices (e.g. computers, but not restriced to computers) may provide each other with pertinent information to allow an individual, or corperation, to purchase materials of any kind over a remote connection (this may occur by either means of 'wire(s)' [see pending patents], or by 'radiation emitions').
This patent would cover all forms of data transmitted through these means, as long as they were involved of a purchase of any type. This may include, but is not restricted to: paying your credit card bill, buying any supplies, loading a page with an ad (since it is involved in the buying process). (aliases: 'N-click shopping', e-purchase, 'e-*', 'electronic transactions', 'just plain greedy')
As mentioned previously, there is theoretically no way of ensuring that someone isn't passing something out, unless they try to send it in plain form. Perhaps what you should be worrying about instead is where the information is headed to. Again, this can be a daunting task, but a simple histogram of all the sites that are sent data packets (all protocols, since as been shown, spoofing is easy), and you then at least the ability to question large where large quantities of data might be headed. Certain 'trusted' sites might be ignored (e.g. slashdot.org), while other sites (e.g. 207.43.24.32) should be more closely examined. If you want to get fancy, you might even be able to employ some statics to find the relationship between someone sending data, and receiving data from these sites.
<p>
All of this said, I beleive to a certain extent using these methods not only are going to be more likely at catching possible offenders, but can also protect people's privacy. You are not explicately examining the data people are sending out, but rather where large amounts of data are headed.
Hey, did anyone notice the PDA has handwriting recognition!?! Anyone get to play with one? Does it actually work? Its a little strange that they mention _nothing_ about this feature unless you look at their FAQ:
Q:Can I write directly onto the LCD screen to input information? Do I have to learn a new handwriting format?
A: Yes you can write onto the LCD screen and your natural handwriting will be recognized. With the Agenda VR3 consumers don¦t have to learn graffiti or any other new form of manuscript.
If Java has changed dramatically since the last time I tried it, then please forgive my misinformation. However, I must stress it is from personal experience that I believe Java to be slow. If I get to see Quake III running in Java, then I will take back anything bad I've ever said about Java's speed.
On a more theoretical note, Java will always be an interpreted language. Interpreted languages will always be slower than compiled once. Yes you can use JIT, but then you have to wait for the program to compile/assemble/whatever before you can use it.
Simply saying that X handles windows differently isn't a very intelligent analysis. How about the freedom you have to choose whatever window manager you want? Or to not use X if you choose. I would also like to note that the fact that X works with TCP/IP is a feature I use daily (and not some minor detail).
And how many platforms does Windows run on? I'm not trying to bash M$ here, but point out that Linux is a lot more than just 'copying' features. I wouldn't suggest Linux for everyone, but wouldn't consider any other OS for what I do.
Apparently all these years that I've been using the words 'procrastinate' and 'waste of time', I really could have used 'colloborative weblogs'. It makes it sound like you're doing something useful.
I have never been a big fan of Java, but that's just me. I think these toolkits are great because it is easy now to write crossplatform apps easily without having to use Java. And, go ahead and flame me, but I don't consider TK a usable interface for most modern day apps.
While for software engineers you might be able to argue that its their field, learn the language, you can't do that with people who use programming as part of their job, but not their main focus. I am constantly faced with the problem of either having other people understand my code, or writing things faster and with less bugs.
The biggest obstacle is the difficult syntax of C++. After using it for enough time it's easy to forget, but it is a rather large learning curve -- especially for people who just want their code to work. The other complaints leveled at C++ (unless you are working with embedded systems, etc.) I think are just flamewar material.
If there was one feature to pick out for why to use C++ I would have to say templates. Too bad toolkits like QT don't use them.
A downside to QT is that it is not free under windows. While this might be okay with companies, if you ever considered writing crossplatform OSS programs, this can hamper things. There is a project porting the X11 version to windows, so its not a complete roadblock..
Of course there is always GTK which has been known to also run under windows and OS X. It is not my intention to start any flamewars -- I am just pointing out that for those in favour of either toolkit there is plenty of crossplatformability.
If either TK holds any major advantage its that GTK+ natively supports C code, but also has C++ bindings. The signalmm library that came out of gtkmm is actually really nice, and usable for other projects. However, in that case don't forget about boost, which also contains a signal library, not to mention a *really* nice interface to python (which I'm currently using in a project). Just be warned, you need a fast computer for compiling.
And then comes Plan B to deal with the after effects.
Could this be M$ attempt to strike back at apple for now making iTunes for w$? This could make it too pricey to produce ipods for w$, an effectively make it so only w$-running music players survive.
Perhaps a solution to this problem is to use the old fashion handles with some type of digital signiture scheme. Why trust some with a handle versus an anonymous posting..? Well, at least with a handle you can build trust as that person posts information. Additionally if there was a method to allow trusting of trusted sources (i.e. some metric of how much a post is to be accepted based on who trusts this specific poster), then it could become a fairly decent method of discrimination.
I'm taking out a patent on creating frivolous patents, and then suing people. I should be rich soon.
Now I don't have to waste valuable CPU cycles on creating a wallpaper.. I can just put real wall paper behind my display.
is that Manderin or Cantonese? As far as I understand there are even more distinctions that one can make between all the variants.
There might end up being more pages in Chinese in quantity, but that isn't the same as visibility. Any page that wants to speak to a world wide audience will have to have an english version.
Aside from being a lazy american who could barely manage russian, and is quite content with only speaking english, there is a much more persuasive argument. Programming languages. Not that everyone technically needs to know how to program, but getting a computer to do anything sophisticated requires at least a pseudo-language. Take HTML for instance. While you can fill the content with any language you like, the tags will forever remain in english (there can also be hacks made of course) [counter examples to my english hypothesis are assembly language and Perl]
Besides, everyone knows that either esperanto or pig-latin will the real official language spoken by the world come 20 years.
They were planting features, not trojans or trapdoors.
I remember seeing a documentary on someone who managed to teleport a photon using entanglement. While I'm sure the equipment/setup/everything is much more expensive, it could theoretically provide an even better method of secure communication. While you might not be able to listen in without diverting the photon from its destination, it is possible to stop the photon period (also as one poster already mentioned, you can't allow for a perfect world, so its always possible for photons to be dropped [or appear to be dropped] requiring another photon to be sent out, and thus making the system again insecure).
The display you see for example on ATMs I suspect is just as easy to draw regardless of the OS you use. You're writing embedded systems, which means you are likely to write your own drivers anyways. If you are going to run XP, you certainly have the space/power to run a library like SDL which can do everything XP can do graphically AND remain much less dependent on your platform.
I am not trying to bash windows (okay, I am kinda), but just point out that an OS used primarily as a windowing system, may not be the best pick for a non-windowing system. Its like having windows on PDAs. The screens are barely big enough to show just one window, why would someone want overlapping windows?
The article gives very little details about the actuals concepts involved making it somewhat uninteresting. I'm sure most people here could easily write a program to do the same things. Does it use predefined weighted logic, back progation NN, recurrent NN, alpha-beta, genetic algorithms? Even if it did, making AI games isn't really that interesting anymore, unless someone comes out with a Go player that can beat a master.
<p>
Besides, wouldn't it be easier to just parse HTML rather than try to read the screen? I mean, if the point of the program were to just try to understand writing, <i>that</i> would be interesting. It always irrates me when newspapers write stories like these, when there are many other people doing much cooler things that go unrecognized. At least they should ask someone who knows something if this problem is interesting... Then again, I've never heard of the newspaper, so maybe its all the new they could get to print.
I think perhaps we learnt a little too much about CmdrTaco's (not so) private (and disturbing) fantasies...
Looking at the FAQ it claims that the big difference from other PLs is:
"a clean separation between the substance and the appearance of a program"
This does not seem so different from any other graphics-oriented language. According to the docs, it seems not so much that this is a new idea, but rather an attempt at a more robust implementation accomplished by allowing the language to be represented visually.
There are a couple key difficulties in such an approach: a) how do you compare (i.e. diff) two graphic programs? You must rely on its binary form, and hope its equivalent even if you move a component over 5 pixels; b) programs must be kept small due to complex relationships obscuring parts of the code; c) no matter how revolutionary you get, you still must be able to form logic gates, and so it all boils down to a text-version.
"The Common Language Runtime is the execution engine for .NET Framework applications."
This runs what they call the "Microsoft Intermediate Language".. personally this sounds like Hell to me (just from experience with other Microsoft environments). However, this really is what Sun should have done with Java. Instead of creating a whole new language, just create a VM for every platform, and allow cross-platform compilers to create the code so everyone gets to use the language of their choice. I have a feeling that with MS you won't get that much freedom, and will be forced to use things like DCOM, and whatever other acronyms they come up with.
Most likely places where you might want to employ any type of AI would be in situations where you needed certain types of adaptation. It is important to know what method you are employing is capable of beforehand, otherwise you will end up with a badly-behaving system. For example, if you took a perceptron (a single-layer feedforward NN) and tried to get it to classify an XOR problem (the classic breaking point of the perceptron), it would fail. But it can classify other types of problems great.
There are a few classic applications of AI in the house, like temperature. Even this application is non-trivial due to fluctuations in temperature just across room. You will find most applications will have to take into account the world is a chaotic place (and system) [which is why an adaptable system is needed, but also makes is non-trivial].
I would like to patent the concept of the 'e-transaction', whereby two devices (e.g. computers, but not restriced to computers) may provide each other with pertinent information to allow an individual, or corperation, to purchase materials of any kind over a remote connection (this may occur by either means of 'wire(s)' [see pending patents], or by 'radiation emitions'). This patent would cover all forms of data transmitted through these means, as long as they were involved of a purchase of any type. This may include, but is not restricted to: paying your credit card bill, buying any supplies, loading a page with an ad (since it is involved in the buying process). (aliases: 'N-click shopping', e-purchase, 'e-*', 'electronic transactions', 'just plain greedy')
I wonder if M$ can be brought up on charges of fradulant behavior (i.e. impersonating ppl w/o their permission).
As mentioned previously, there is theoretically no way of ensuring that someone isn't passing something out, unless they try to send it in plain form. Perhaps what you should be worrying about instead is where the information is headed to. Again, this can be a daunting task, but a simple histogram of all the sites that are sent data packets (all protocols, since as been shown, spoofing is easy), and you then at least the ability to question large where large quantities of data might be headed. Certain 'trusted' sites might be ignored (e.g. slashdot.org), while other sites (e.g. 207.43.24.32) should be more closely examined. If you want to get fancy, you might even be able to employ some statics to find the relationship between someone sending data, and receiving data from these sites.
<p>
All of this said, I beleive to a certain extent using these methods not only are going to be more likely at catching possible offenders, but can also protect people's privacy. You are not explicately examining the data people are sending out, but rather where large amounts of data are headed.
Q:Can I write directly onto the LCD screen to input information? Do I have to learn a new handwriting format?
A: Yes you can write onto the LCD screen and your natural handwriting will be recognized. With the Agenda VR3 consumers don¦t have to learn graffiti or any other new form of manuscript.
On a more theoretical note, Java will always be an interpreted language. Interpreted languages will always be slower than compiled once. Yes you can use JIT, but then you have to wait for the program to compile/assemble/whatever before you can use it.