Where I come from, "axes" are called "relations". In fact, there's a whole powerful branch of theory built around them, and partially implemented in a number of widely available commercial systems called "Relational Databases." You're right, the concept is intrigueing, although I'm afraid ZigZag isn't exactly on the forefront.;)
Sometimes it's frustrating how many people keep reinventing the wheel over and over again, except they usually do it worse the second time.
The mouse made the 2D GUI possible, and even it is far from intuitive. (Remember Star Trek IV -- well, seriously, some beginners find mice very confusing.) There is no such equivalent for a 3D GUI, except maybe the spaceball or an expensive glove, neither of which is ideal.
People keep getting this mistaken impression that because our universe is 3D, people think in 3D. We're creatures of the land, we live essentially on a plane, and our thinking in the third dimension is mostly limited to whether something is above something else. That's why windowing schemes with a fake third dimension (layering) work so well for us.
You could also ask yourself why multi-dimensional graphs haven't caught on. Most people are hardly capable of grasping a true two-dimensional plot, much less three or more.
On the other hand, what's the use of a bunch of people writing kernels and drivers from scratch when a proven, efficient, powerful system already exists. Honestly, there's not a lot in the realm of operating systems that remains to be innovated until the next paradigm comes along; by borrowing the kernel, alternative OSes can concentrate on the higher levels which do have room for innovation.
Didn't you basically prove that your crossover implementation didn't preserve any high-level characteristics of the parent programs? And doesn't this illustrate a flaw in your implementation, saying nothing about GA in general? You kind of hinted at this, but I thought it should be stated outright.
I wonder what kind of success one would have placing the breeding algorithm into the organism itself and allowing that to evolve as well...
Some anecdotal evidence: I just moved to Munich a couple weeks ago to study and the first thing I noticed was all the tech stores. Downtown there's at least one computer store on every block, and guess what else! Most of them have big SuSe boxes and penguins in the windows, and while I obviously saw Windows being sold, nowhere did I see it being prominently advertised. Fascinating.
"The syntax isn't hard to read, it's just hard for people not used to it. This is, of course, true for every language."
To be fair, this isn't quite true. Some languages are able to borrow more from english syntax to the point where reading the source code out loud almost makes sense; there is also a sort of common denominator understood by all programmers ("pseudocode") which languages benefit from approximating.
That's not to say that LISP isn't understandable to those with experience, just that you can learn to understand some languages more quickly.
GUI's speed doesn't come from using the keyboard; it comes from having grammars that are more stateless. As the example given by another poster shows, you can essentially program a command line on the fly by doing things like "rm `find./ -type f -ctime -1 | grep -v 'foo'`". Trying to express these things in a graphical interface is like trying to hold a real conversation by playing pictionary.
Demos I've seen of watermarking on photography have the effect of subtlely altering the balance and contrast of bits of the image in a way that doesn't really "hurt" the image if you're just looking at the watermarked version. If you put the two side-by-side, however, you can see some differences.
I imagine that audio watermarking technology would be based on similar relative changes to the audio, like slowing down this section or that section barely enough that a computer could detect the change by comparison to the master. Since the effects of any conversion like D/A are likely to be mathematically consistent throughout the stream, they can be easily disregarded when looking for the watermark.
Audiophiles wouldn't like it, but average consumers wouldn't notice. It'd be like buying a print of a painting, then comparing it to the original and complaining because the color balance in one spot is ever-so-slightly off.
"in the end the programmer cannot describe his work (his art) in english"
Ah! You've hit on the perfect reasoning for why code should be protected as speech. It expresses information which cannot be expressed in any other way. Whether it is subjectively artistic or expressive is irrelevant; there are certain ideas which can only be expressed as source code and to fail to protect it is to fail to protect such ideas.
I'm looking to learn python but the whitespace-only is a big turn off. How, for example, do you do the equivalent of jumping to balanced brackets in vi? What if you want to indent code for readability without it meaning something to the parser? What if you want to split a statement onto multiple lines for readability?
Of course, one wonders what exactly there is to contemplate about the life of a gas station attendant. (Hmm, did I really fill that car in the quickest possible time? No? I'll do better next time!) Seriously, the irony is that you can't reflect on your life if you haven't got one.
Why are you guys so fork paranoid? Do you want everyone to vote for the same political party, too?
I just have to point out the flaw in this reasoning. A political party represents a unique ideology in an abstract sense. A fork also represents a unique ideology, but in a practical sense. If you're a democrat, you believe in welfare. If you're an OpenBSD developer, you believe in security AND you develop software towards that belief.
The problem with too many forks (not that some aren't good) is that it thins programmer resources. The differences in implementation between two forks are, by definition, going to cause incompatibilities between them, meaning at some level programmers have to "choose sides" and decide which ideology to develop for, or do LCD compatibility. If you get too many forks in the open-source, it will be impossible to maintain the critical mass of programmers necessary for providing a comprehensive library of software which takes advantage of the specialties of any single system.
In a political party, on the other hand, while many parties exist, "development" (i.e. practical implementation of ideology) is only going on in ONE place: the government. Your analogy would be more like if each political party decided to take over a different part of the US and declare itself sovereign, which is at this point clearly unproductive and inefficient given the way the US has adapted itself to function well as a single entity.
The corrected analogy carries through well; in other countries we have good forks, which represent ideologies so different that forking is inevitable and staying together would be a resource drain.
Of course, these things are self-limiting; an unnecessary fork will simply not be able to survive for long, or one of two similar projects will eventually end up gaining dominance and reducing the other one to a minority. The point is, forks are only good sometimes, and it's got nothing to do with political parties.
I just wanted to elaborate on why Mars has a thin atmosphere; it's not just weak gravity. Three factors contributed to Mars' de-atmospherization:
"Sputtering": the solar wind picks up ions from the outer atmosphere, accelerates them, and they smash into other ions, knocking them into space. Mars has a relatively weak magnetic field so it's unprotected (unlike Earth).
Blown into space by asteroid impacts. Obviously this is a bigger factor because of the weak gravity, but the point is the atmosphere doesn't just float away.
CO2 reacts with silicates to form solid carbonate, in effect condensing the atmosphere into rock. On Earth, volcanic activity recycles the CO2; not the case on Mars.
And once Mars got cold enough, pretty much all the CO2 froze into the icecaps.
Thanks for the links. Personally, I think some of the responses were silly. Definitely valid complaints against this kind of scheme include two things:
It would place huge load on servers and possibly cause network outages. This is an implementation issue.
How would you patch things correctly? The variety of systems is such that it's hard to know you won't screw up some user's box.
Someone might want their box unpatched for some reason. (Of course, by doing so they're accepting the risk of recieving viruses, so they don't have a right to complain.)
All that nonsense about how sysadmins should have the right to control their own networks, do their own upgrades, stay informed, is nonsense. If you're doing your job and installing upgrades, it won't affect you. Because it exploits the very thing it fixes, it will only "attack" boxes of clueless admins who aren't doing their netizen duty and keeping their boxes up-to-date. (In fact, if designed properly you can make the program automatically version-checking, i.e. it only runs on NT4 sp5 with IE5.01 or whatever so you don't screw up unusual installations)
Really, I can't see any ethical objections to such a scheme, the problem is implementing it perfectly; and you better have it perfect.
Re:This is why Linux is so slow moving to the desk
on
Linux Sin Demo
·
· Score: 1
Allowed to download and use, but clearly marked as for testing only, not general use.
Ha ha, if we followed that rule there would be no "general use" of Linux at all. It's a rare application where "not broken"=="no futzing necessary".
I've used stow and was underwhelmed. Basically it puts an application into its own directory tree, then symlinks everything into the main tree/usr/local or whatever. It takes forever to uninstall even a tiny "package" because it has to look through the entire/usr/local tree for symlinks pointing to what you're uninstalling.
As far as I could tell the only advantage is that it's easy to modify "packages" after they're installed and then resynch the symlinks.
Disadvantages; fuzzy handling of upgrades, no versioning, takes forever to uninstall packages, relative hassle to install them, none of the benefits of true packages.
Personally, I love slackware packages; they're basically the same principle as stow, except with more of the advantages of packages.
I might be mistaken about how this actually works, but this looks to me very similar to
a toy that's been selling as long as I can remember for about $20.
Can anyone comment; how is this fundamentally different?
The fact is, there are generally two groups of people who will read this:
Those who recognize that a picture is just a picture, and a naked human body is just a naked human body, and there's nothing bad about naked human bodies. It doesn't matter if it's "art" or not. You make the good point that the line is impossible to draw, but the fact is where it's drawn is still irrelevant. (From a purely societal-engineering viewpoint, as well as a moral one, the only really threatening images are those depicting violence, brutality, masochism, etc... assuming we want our kids to have sex someday, then we won't be hurting them by letting them see what it looks like prematurely, any more than it hurts an eight-year-old to show them multivariable calculus. They may not understand it, but there's nothing in it which will hurt them.)
Those who believe naked bodies are evil and will horribly corrupt innocent young minds. God made us enjoy sex so much, not because he wanted to give us something enjoyable (that's too simple), but to "test" us. Never mind that the whole goal of Christianity (and I pick on them, but include any other prudish ideologies) is to get to pleasure in heaven. (Real saints would be just as happy in hell, I think).
That's so true. Way back in junior high, my father became adamant about "no violent games on the computer." Since all good games are violent (okay, I'm being facetious, but Mechwarrior, Quake, Warcraft,...) I got pissed about it and would play them late at night when I knew he wasn't watching. Eventually this got tiresome, and I'd started working on my website and worked on that more instead. Before I knew it I was totally weaned off games and totally into PHP and web programming.
Haven't touched a real computer game in maybe 6 years (freshman in college now), so Linux was a no-brainer. Of course, now I have slashdot to suck away all my productivity instead...
Hear hear! I'm a huge fan of GNOME, but a few days ago I tried KDE 2.0 and was amazed to discover what kinds of things I'd taken for granted not having in GNOME. As in a good e-mail client, good file manager, good web browser, great control panel, good office set, and a generally more "together" feel. (to be fair, I miss sawfish, the panels, and the visual feel of GNOME is nicer). When Nautilus and Evolution and GNOME Office are all usable, I'll probably switch back, but until then...
If you spent some time learning how to use those "archaic, abbreviated commands" you might find yourself more productive than you'd ever be in a GUI. X is nice, but aside from web browsing most Linux users I know do most of their work in xterms or the equivalent.
Don't give up on the first try; if you're lucky enough to find someone to help you get set up, you can enjoy the Windows features you're missing and still learn to use the real power of the CLI on the side.
Let me make an analogy; imagine your favorite author. Could you ever hope to write that expressively? And yet you like his writing because it strikes a chord with you, because it is easy to understand. Same with programming; the art is in inventing pristine, perfect, crystal clear abstractions -- any idiot can understand them.
Sometimes it's frustrating how many people keep reinventing the wheel over and over again, except they usually do it worse the second time.
The mouse made the 2D GUI possible, and even it is far from intuitive. (Remember Star Trek IV -- well, seriously, some beginners find mice very confusing.) There is no such equivalent for a 3D GUI, except maybe the spaceball or an expensive glove, neither of which is ideal.
People keep getting this mistaken impression that because our universe is 3D, people think in 3D. We're creatures of the land, we live essentially on a plane, and our thinking in the third dimension is mostly limited to whether something is above something else. That's why windowing schemes with a fake third dimension (layering) work so well for us.
You could also ask yourself why multi-dimensional graphs haven't caught on. Most people are hardly capable of grasping a true two-dimensional plot, much less three or more.
We think in two dimensions.
On the other hand, what's the use of a bunch of people writing kernels and drivers from scratch when a proven, efficient, powerful system already exists. Honestly, there's not a lot in the realm of operating systems that remains to be innovated until the next paradigm comes along; by borrowing the kernel, alternative OSes can concentrate on the higher levels which do have room for innovation.
I wonder what kind of success one would have placing the breeding algorithm into the organism itself and allowing that to evolve as well...
Some anecdotal evidence: I just moved to Munich a couple weeks ago to study and the first thing I noticed was all the tech stores. Downtown there's at least one computer store on every block, and guess what else! Most of them have big SuSe boxes and penguins in the windows, and while I obviously saw Windows being sold, nowhere did I see it being prominently advertised. Fascinating.
"The syntax isn't hard to read, it's just hard for people not used to it. This is, of course, true for every language."
To be fair, this isn't quite true. Some languages are able to borrow more from english syntax to the point where reading the source code out loud almost makes sense; there is also a sort of common denominator understood by all programmers ("pseudocode") which languages benefit from approximating.
That's not to say that LISP isn't understandable to those with experience, just that you can learn to understand some languages more quickly.
GUI's speed doesn't come from using the keyboard; it comes from having grammars that are more stateless. As the example given by another poster shows, you can essentially program a command line on the fly by doing things like "rm `find ./ -type f -ctime -1 | grep -v 'foo'`". Trying to express these things in a graphical interface is like trying to hold a real conversation by playing pictionary.
Last I saw Python had Qt bindings at least, probably GTK as well.
Demos I've seen of watermarking on photography have the effect of subtlely altering the balance and contrast of bits of the image in a way that doesn't really "hurt" the image if you're just looking at the watermarked version. If you put the two side-by-side, however, you can see some differences.
I imagine that audio watermarking technology would be based on similar relative changes to the audio, like slowing down this section or that section barely enough that a computer could detect the change by comparison to the master. Since the effects of any conversion like D/A are likely to be mathematically consistent throughout the stream, they can be easily disregarded when looking for the watermark.
Audiophiles wouldn't like it, but average consumers wouldn't notice. It'd be like buying a print of a painting, then comparing it to the original and complaining because the color balance in one spot is ever-so-slightly off.
Ah! You've hit on the perfect reasoning for why code should be protected as speech. It expresses information which cannot be expressed in any other way. Whether it is subjectively artistic or expressive is irrelevant; there are certain ideas which can only be expressed as source code and to fail to protect it is to fail to protect such ideas.
I'm looking to learn python but the whitespace-only is a big turn off. How, for example, do you do the equivalent of jumping to balanced brackets in vi? What if you want to indent code for readability without it meaning something to the parser? What if you want to split a statement onto multiple lines for readability?
Of course, one wonders what exactly there is to contemplate about the life of a gas station attendant. (Hmm, did I really fill that car in the quickest possible time? No? I'll do better next time!) Seriously, the irony is that you can't reflect on your life if you haven't got one.
I just have to point out the flaw in this reasoning. A political party represents a unique ideology in an abstract sense. A fork also represents a unique ideology, but in a practical sense. If you're a democrat, you believe in welfare. If you're an OpenBSD developer, you believe in security AND you develop software towards that belief.
The problem with too many forks (not that some aren't good) is that it thins programmer resources. The differences in implementation between two forks are, by definition, going to cause incompatibilities between them, meaning at some level programmers have to "choose sides" and decide which ideology to develop for, or do LCD compatibility. If you get too many forks in the open-source, it will be impossible to maintain the critical mass of programmers necessary for providing a comprehensive library of software which takes advantage of the specialties of any single system.
In a political party, on the other hand, while many parties exist, "development" (i.e. practical implementation of ideology) is only going on in ONE place: the government. Your analogy would be more like if each political party decided to take over a different part of the US and declare itself sovereign, which is at this point clearly unproductive and inefficient given the way the US has adapted itself to function well as a single entity.
The corrected analogy carries through well; in other countries we have good forks, which represent ideologies so different that forking is inevitable and staying together would be a resource drain.
Of course, these things are self-limiting; an unnecessary fork will simply not be able to survive for long, or one of two similar projects will eventually end up gaining dominance and reducing the other one to a minority. The point is, forks are only good sometimes, and it's got nothing to do with political parties.
All that nonsense about how sysadmins should have the right to control their own networks, do their own upgrades, stay informed, is nonsense. If you're doing your job and installing upgrades, it won't affect you. Because it exploits the very thing it fixes, it will only "attack" boxes of clueless admins who aren't doing their netizen duty and keeping their boxes up-to-date. (In fact, if designed properly you can make the program automatically version-checking, i.e. it only runs on NT4 sp5 with IE5.01 or whatever so you don't screw up unusual installations)
Really, I can't see any ethical objections to such a scheme, the problem is implementing it perfectly; and you better have it perfect.
Ha ha, if we followed that rule there would be no "general use" of Linux at all. It's a rare application where "not broken"=="no futzing necessary".
As far as I could tell the only advantage is that it's easy to modify "packages" after they're installed and then resynch the symlinks.
Disadvantages; fuzzy handling of upgrades, no versioning, takes forever to uninstall packages, relative hassle to install them, none of the benefits of true packages.
Personally, I love slackware packages; they're basically the same principle as stow, except with more of the advantages of packages.
Can anyone comment; how is this fundamentally different?
That one's going in my quote file.
What about Objective C? Don't laugh!
Haven't touched a real computer game in maybe 6 years (freshman in college now), so Linux was a no-brainer. Of course, now I have slashdot to suck away all my productivity instead...
Hear hear! I'm a huge fan of GNOME, but a few days ago I tried KDE 2.0 and was amazed to discover what kinds of things I'd taken for granted not having in GNOME. As in a good e-mail client, good file manager, good web browser, great control panel, good office set, and a generally more "together" feel. (to be fair, I miss sawfish, the panels, and the visual feel of GNOME is nicer). When Nautilus and Evolution and GNOME Office are all usable, I'll probably switch back, but until then...
If you spent some time learning how to use those "archaic, abbreviated commands" you might find yourself more productive than you'd ever be in a GUI. X is nice, but aside from web browsing most Linux users I know do most of their work in xterms or the equivalent. Don't give up on the first try; if you're lucky enough to find someone to help you get set up, you can enjoy the Windows features you're missing and still learn to use the real power of the CLI on the side.
Let me make an analogy; imagine your favorite author. Could you ever hope to write that expressively? And yet you like his writing because it strikes a chord with you, because it is easy to understand. Same with programming; the art is in inventing pristine, perfect, crystal clear abstractions -- any idiot can understand them.