Running the code through a obfuscating precompiler that both randomized variable names and added random white space would potentially remove any pattern that the trojan was looking for.
First off, white space is removed in the
lexical analyzer in the earliest phase of
compilation, so that part is way off base.
The pattern matching would occur on something
like expression trees (parse trees, syntax
trees, intermediate code tuples,...)
Secondly, the part being matched might not
be alterable. If the target code is
doing something like "strcmp(test_password, stored_password)", then you can't obfuscate
the string "strcmp"; the symbol wouldn't
be resolved by the linker.
Thirdly, the standard obfuscation tool
would be well known, and the compiler could
be adapted to it, or it could be subverted as
well.
Fourthly, the real point of Thompson's
trick was that he got people to use
a trusted binary of a compiler to recompile
the world.
If people were distrustful enough to want
to run an obfuscator, they would also
refuse to trust the binary compiler
sent to them by that rogue Thompson,
and instead would use one of their own.
You can try to get clever, but there's
no avoiding Thompson's ultimate point:
there's always someone or something that
must be trusted, and that is a weak link.
After all, accidental bugs that cause
security flaws show the impossibility
of even completely trusting oneself.
Oh, and I should've mentioned that
I was a strong enough BSD fan to
lose my loyalty to Sun (I used a
Sparc at home) exactly when they
switched from BSD to System V.
That's when I started to look
for another solution, and found
Linux -- which has never, obviously,
been pure BSD-like, but did always
include enough BSD stuff rather
than exclusively SysV side of the
world to make me happy.
good point. interesting you mention BNF, explicit conditionals, loops, and recursion. loops are not necessary (e.g. SML), BNF *is* recursive (still not turing complete, because CFGs are strictly less powerful than turing machines). conditionals aren't even really necessary, yet BNF (when implemented as an NPDA) sorta does have conditionals since its output depends on the value on top of thestack; a turing machine can be implemented with 2 integer counters, or give a PDA two stacks-- and it's as powerful as a turing machine.
Sure sure...if you think about it, it's clear
I brought up BNF/yacc for exactly those reasons,
regardless of flaws in my phrasing.
To phrase it perfectly I'd need to state a
sharp boundary for what is necessary and
sufficient for Turing completeness...but
I only recall sufficient mechanisms,
not which ones are necessary.
And part of the problem there is that I feel
like I'm on thin ice with the explicit/implicit
issues of conditionals -- as you say, BNF
has implicit conditionals, and along with
recursion, that's sufficient. But I have
this notion that there might be languages
that have recursion and implicit conditionals
but which are not Turing complete. Hmm, let's
see....I guess it's just a matter of what
they test, not whether they're implicit.
That sounds right. Well, for sure that's
right for some things. It's the issue of
being only able to look at the stack top
that makes BNF non-turing-complete...I'm
still uneasy about this, though; has there
been some kind of survey of all possible
mechanisms and which of them are necessary
rather than just sufficient for Turing
completeness?
Phrased this way, I'm coming up blank.
BSD is for people who love UNIX. Linux is for those who hate Microsoft.
Hasty overgeneralization. I helped develop
BSD back in the late 70s, but gave up
hope on it when Bill Jolitz did. Then
I started using Linux early on (0.99 kernel
days), and I haven't had a compelling
reason to go back to BSD. Switching
would be a pain. Is there a compelling
reason? Every time I've heard of an
advantage, I got the impression that
Linux borrowed it back.
as long as functional programming languages are considered to be declarative (at least according to foldoc) then there are plenty of declarative programming languages. arguably, functional languages are not completely declarative, but they aim high and do a much better job of defining the problem.
I had in mind the older and less fuzzy
definition of "declarative language",
meaning one that is not Turing
complete because there it lacks
explicit conditionals, loops,
and recursion.
For instance, BNF is used to specify
grammars, yet context free language
parsers can be generated automatically
from those grammars (e.g. with yacc).
Thus BNF is an extraordinarily powerful
language, but it doesn't specify
algorithms, it just declares the grammar --
and is not Turing complete.
If BNF is augmented with the ability
to do grammatical parsing based not just
on input tokens but also by conditionals
on arbitrary memory locations, then
it becomes Turing complete (because it
is then an Augmented Transition Network).
People who like fuzzy terminology would
no doubt still call that a declarative
language, but they've taken away an
otherwise perfectly good category name
for things like BNF. Is there some
other terminology I've overlooked/forgotten,
or am I going to have to start saying
"Turing-incomplete declarative languages"??
Foldoc, BTW, has its imperfections,
including that it does not bother
to comment on multiple usages, as in
this case, or the one I noticed last week:
"algorithm" as diametrically opposed to "heuristic" -- whereas it's quite
common for people to mean "algorithm"
as including "heuristics" as a proper
subset.
Heck, even CDs have a "no copy" bit, which is universally ignored....DAT has a no-copy bit that is honored by most "consumer" DAT devices
I have every reason to believe that this
is completely false. There was a proposal
to do such a thing, but the approach suggested
would have screwed up the audio somewhat.
They claimed the public wouldn't notice
the little notch filter at 60 hz,
but audiofiles fought back and won, and
ever since, a percentage of blank tape
sales have gone to reimburse the music
industry for presumed piracy.
Personally I think this is exactly the
right approach to take in the future,
also.
I've had an avocational interest in these
subjects since before CDs were invented,
but I'm not actually an expert...if you
have a reference to prove me wrong, please
cite it.
Current laws say you can do whatever the hell you want to your property; it isn't the manufacturer's anymore once you buy it. (Notice I said current laws.) I'll learn how to mod all sorts of this hardware once it comes out. Come and fucking get me FCC.
Someone correct me if I'm wrong.
Incorrect. It has been against the law for
decades to receive many kinds of broadcast
signals, regardless of who created or
modified the equipment.
(Depending on details, it may or may not
be legal to do the equipment modification
without actually using it, but you can
imagine that this is skating on thin ice
in general.)
For example, under many circumstances
it can be illegal to listen to military
bands, police bands, eavesdrop on
cordless phones and cell phones, etc.
The FCC has a broad mandate backed up
by strong laws, and people do sometimes
go to jail for violating them.
Anyone interested in learning about this:
check up on the abundant how-to material
for ham radio enthusiasts; that tends
to be where it's most accessible.
When I sit down with a client domain expert to write a program for them, they are invariably surprised by what I uncover.
Indeed. Humans are accustomed to expressing
their desires to other humans, and relying on
common sense to guide the interpretation of
their orders and specifications. This doesn't
fly with computers; the orders aren't algorithms,
they're vague wishlists.
The first problem is that people don't say
how to achieve goals. The second
problem is that people don't even specify
the goals very explicitly, but they don't
realize this. A corollary is that they
don't look for every little corner case
that applies to their desires.
For instance, a CEO might say (at least
implicitly) that an app
should treat it as a fatal error if an
employee has no boss -- but often the CEO
himself needs to be a special case treated
as having no boss. Or no employee can have
a salary about $XXX/year, but he forgets that
he himself makes 20 * $XXX, unlike all other
employees, and also that inflation will make
his threshold incorrect eventually, and
what about whether bonuses should be included
or excluded, etc etc.
Discovering and reasoning about special cases
routinely is just part of the job for any
good programmer -- you might say the programmer
has high empathy for what the computer needs --
but nonprogrammers just aren't used to thinking
that way.
Visual Basic made it possible for untrained people to write software, and Access made it possible for untrained people to write database applications,
No, VB and Access made it possible for
untrained people (and naive managers)
to THINK (quite incorrectly)
that they could write software and
DB apps.
but neither of those applications has reduced or eliminated the need for people to create software.
Exactly.
There is no silver bullet for making
software easy, and this has been known
for decades.
Cobol, for instance,
was supposed to be English-like, and
hence understandable and programmable
by non-programmers. Other English-like
programming languages have made the same
claim. Wrong every time on all counts.
The problem is that specifying arbitrary
algorithms requires extreme precision,
unambiguity, and tedious detail far beyond
anything the average person is even
interested in attempting, let alone
capable of. It doesn't particularly
matter which language or tool is offered,
what matters most is the person's
abilities (and willingness!) to be excruciatingly detailed
and logical and patient.
This has been studied to death, but
hope springs eternal...
Another kind of lack of silver bullet
are declarative languages...it's vastly
easier to declare what is needed than
it is to specify procedurally how to
achieve the goal. However, no one has
ever invented a Turing complete
declarative language, and there is
good reason to think that such a thing
is impossible (infinite potential
problem domains).
Simonyi is a very intelligent and
experienced guy, so he likely knows
this. I hope he does; he should. So
I like to interpret what he's saying
as a grandiose way to say that he's
hoping to make a big improvement
in the art of programming -- there
certainly is huge room for improvement.
But if he literally means he hopes to
make all programming as easy
as making powerpoint slides, then
he is a fool or a liar (but he might still
produce some cool tools).
(Making really cool graphics for the
backgrounds of powerpoint slides is
an art, BTW;-)
I've often wondered if a cellular-automata program of some kind would be an effective Go opponent. There are some interesting (if trivial) similarites between the two.
A "cellular-automata program of some kind"
could be Turing-complete -- that is,
the right kind can compute anything that can be computed,
so yes, there are theoretically some that
could play perfect games of Go (not
necessarily fast enough to finish before
the universe dies, though; that's a different
question).
In a more down to earth sense,
the similarities are not necessarily
trivial. I would guess that a Go
game played on a large enough board
according to very complex rules governing
each choice of moves might also be
Turing-complete. I'm only guessing,
but it seems possible, even likely.
The game of Life can be set up to
simulate a Turing machine.
You are not a hacker if you have not heard of the game of life.
Hmm.. I guess your right. And all this time...
Oh well, I guess it's time to find another hobby
You're missing the point. Many people
(such as ESR, at the linked story) say
that "hacker" isn't a title you claim
for yourself, it's the way that other
people describe you.
Therefore, it's not to the point whether
you're a programmer or not. The vast majority
of programmers aren't Hackers...nor even
understand what it means.
Consider the term "cool" (which goes in and
out of style, but never mind that). People
who think they are cool may or may not be;
it doesn't tend to really be true unless
other people think they are cool.
Otherwise it's just egotistical.
It's even partially true that "Hacker"
is the "cool" of programming, but that
doesn't capture it completely and is
not entirely correct. It's also
partially a community thing.
Here's another example.
I have worked with professional
programmers who never heard of
Turing. I was stunned, but they
certainly were programmers --
they also certainly weren't hackers.
Nothing about Turing came up in their
CS degree program. But a hacker
would have found out eventually
after leaving school, you see.
Or lets say it's very likely, anyway.
Hackers tend be familiar with a lot
of the contents of The Hacker's Dictionary
that ESR maintains because they
"learned it on the street".
Wannabes learn it from the book.:-)
Anyway, despite what jumpingfred said to
you, is it possible to be a hacker and to
have never heard of the game of life?
Sure. It's just vanishingly low probability.
And since you haven't heard of it,
how could you have an informed opinion
one way or the other?:-)
On the positive side, although some hackers
have lives, it's more likely in the case
of people who are just programmers but
not hackers, so count your blessings.
There are real world examples of this - the idea that prime numbers are an infinite series, for example. Since nobody has ever been able to find an end to the series, it still stands, but you can't *prove* it.
You're getting completely confused here.
There are an infinite number of prime numbers,
this was proven thousands (yes, thousands)
of years ago, and there is absolutely
no controversy about the fact.
It isn't even one of the subjects
where the nature of "proof" gets
argued philosophical...to the
extent that anything at all can
be proven mathematically,
primes have been proven to be infinite.
The oldest and easiest proof is simple.
If primes are finite, then there must
be some prime N that is the biggest.
Multiply together all primes and add one: x=1 + 2*3*5*7*...*N.
This resulting x is not divisible by any
prime...it has remainder 1 when divided by
2 or by 3 or by 7...up to N. But that means
that x is prime, yet it is obviously bigger
than the biggest prime N. Contradiction,
therefore our premise, that there is a largest
prime N, is false, therefore there are
infinite primes.
Maybe you're thinking of the strangeness
exhibited by "grue"?
The "grue" property is defined as:
x is grue if and only if x is green and is observed before the year 2000, or x is blue and is not observed before the year 2000.
This is a "weird" property but there is no obvious reason why we couldn't make up such a property. Now, let us pretend that the x referred to above are actually emeralds. Further, pretend that we have observed many emeralds and they have all been green and thus have had the property "grue". Then, intuitively, this should increase our belief that the next emerald we observe will be green and that it will be grue. This intuition is fine until New Years Eve in 1999. Now our pretend emeralds observed in 2000 should be grue and therefore blue and not green.
(quotation
source
)
Yeah, I agree.... "Kb" refers to kilobits, whereas "KB" or just "K" refers to kilobytes.
The one that really bugs me though, is road signs that say a junction is in "2m" when they really mean 2 miles, not 2 metres.
What?!?! The "KB" vs "Kb" difference is
extremely ambiguous...only a factor of 8
involved, when we often really want/need
to know which it is.
But it turns out humans are really good
at interpreting things in context, and
would never think that "2m" on a street
sign meant "2 meters"...obviously you
wouldn't even need a sign if it were
that close; that's the same thing as
"you are here". So what are you, a bot?:-)
As a more minor matter, meter is SI/metric,
mile is Imperial, and they are separate systems,
not one unified system, so letting this annoy
is about as meaningful as being annoyed that
e.g. "hell" is a word in both English and
in German but means sharply different things.
If you want a pet peeve, how about words in
English that mean their own opposite,
like "cleave" (means both to join and to
separate) or "prove" (means both to
demonstrate beyond reasonable doubt and
also merely to test something of unknown
status).
But the smallest touch of a Zen attitude
might allow one to realize that it's
pointless to rail against things being
the way they are. Gravity exists, no
point in getting upset at it.
The "game" he's referring to in that quote is neither evolution nor society, it's capitalism. By the rules of the capitalism game, compassion is a weakness; greed and unlimited accumulation of wealth is good.
You and he miss the point by talking about
capitalism (1) as being outside of the
description of society I counter-argued,
and (2) as being in truth something
in an extreme pure form...it is not and
never has been.
More plainly, you are not describing
capitalism. You are describing
no-holds-barred Laissez faire capitalism,
which does not exist anywhere, nor should
it -- although some poor naive power-hungry
people always argue it should exist.
Here are some weapons of pure capitalism
which are illegal in the U.S. and many other
countries:
wielding the power of being a monopoly in
one market in order to become a monopoly
in a second market
wielding violence or the threat of violence
to attain capitalistic ends (e.g. the Mafia)
predatory pricing -- lowering sales price
below cost of goods until all competitors
are driven out of business and then
raising prices ten fold.
There are lots of other examples of
pure capitalism that do indeed amount
to the law of the jungle, but that
is not, in practice, what capitalism
is actually about.
Thus all my comments about compassion
and society, which you thought were
off-topic. They're not.
In practice, capitalism is about
playing by the rules, and is often
about reciprocity, not just about
(economic) dead bodies littering the
landscape while one brutal victor
stays (economically) alive.
To argue about the kind of capitalism
you and he argue is similar to
arguing about business the way
the Mafia does business -- it's an
abberation that preys on society
and its members, not just the
way business is nominally conducted.
And I continue to condemn it.
So once again, don't give me that
crap about "if you don't succeed
in capitalism then you don't deserve
to pass on your genes" -- he did say
that, it is a statement about
evolution and about society and about
capitalism, and it's wrong and misanthropic.
The only exceptions are for more complex traits that rely on multiple genes - but even this is not really an issue, especially when you start using transgenics.
Nay nay, it is an issue. Remember that the
discussion was about eugenics (sort of).
Whether the human race undergoes evolution.
Multiple coding sites are precisely the issue,
and they cannot all be eliminated quickly,
and they can remain unexpressed for many, many,
many generations, and all it takes is
e.g. one upstream promoter appearing, or
a similar but even more complex cause of
gene expression in the nuclear machinery
(of which we are still largely ignorant,
don't forget), and boom, the phenotype
trait reappears.
Dog breeders, like the above post, have
lots of interesting evidence that applies
when a single, easily isolatable external
trait is linked to a single DNA sequence
in a single site that doesn't involve
any odd transcription machinery.
That's why dog and flower breeding works,
naturally. But I'm sure you know that that
is far from the whole of the story.
And in the context of this discussion,
the Nazis, for example, certainly managed
to kill a lot of Jews and other people
they thought were undesirable, but I
haven't seen any evidence that they
changed the gene pool of the human race
in any clear direction. To the
extent that one might say that
there is such a thing as a genetic
Jewish race (obviously many would say
there is not, but let's say),
it is clearly not a single-locus gene.
QED.
As for direct genetic manipulation, I
explicitly said we weren't talking about
that; it's a different topic.
An issue is that it *is* the survival of the fittest, and in a capitalist world those who care and are willing to sacrifice their own needs-fulfillment for the needs-fulfillment of another should lose and die. They don't deserve, by the rules of the game, to pass on their genes.
This shows both a deplorable lack of
compassion and also a deplorable ignorance
of how the 'game' (both evolution and society)
actually work.
Before getting all technical on you, though,
consider this: by your own theory, if I pass
you on the street and stab you to death
because I think you're a jerk, then
you don't deserve to pass on your genes.
I'd be careful advertising that theory,
if I were you; it rather seems to be tempting
fate in unwise ways.
As to a few technical details:
even if evolution worked in the absurdly
simplistic dog-eat-dog way you claim,
that still doesn't mean that's how the
game of life works for us humans...
we are social animals, and as such
we have societies, which have rules
and laws and interactions, and in
better cases, compassion is part of all
this.
"Survival of the fittest" in a "kill or
be killed" sense is not, and never has
been, the primary determiner in
any social species, let alone humans.
Where's that ultra-violence in the social
life of bees, ants, termites? There's
a certain amount of intra-specific
violence in social
species such as wolves, horses, and
chimpanzees, but never as a daily
bloodbath.
Back to evolution as such: death
of less-fit individuals does function
as a form of negative feedback on
the gene pool, but it is nowhere near
as efficient a means of evolution
as is the positive feedback that
comes from sexual selection, which
is part of why so very many species
have sexes...even plants have male and
female. It has huge evolutionary advantages,
and it has NOTHING to do with
duelling to the death.
And in social species, evolutionary
fitness has a great deal to do with
interactions with other members of
the species...which is why compassion
evolved...and why you seem to the
rest of us to be less evolutionarily
fit, not more, by expressing such
an annoying attitude towards your
fellow species members.
Any time someone tosses out this
kind of hostile "evolution justifies
vicious competition to the death...too
bad for you" crap, you can be 100% sure
that that person has never studied evolution.
Lastly, regardless of how evolution works
in the jungle, we like to modify the process
in our gardens. I don't know about you,
but I have a cultivated garden in my back
yard, not a deadly jungle, and that's how
I like it. I recommend we all nurture people
in the same way...they grow better.
You forgot to leave your condescending,
uninformed, insulting attitude at the door.
Let's see, who didn't you insult
with this? Teenagers are supposed to live
at home; they're not adults yet. But
you're implying they're immature and immoral.
And young adults have been continuing to live at
home for some decades now because of
economic trends, not because of immaturity.
In this economy, people of all ages
are returning home. This may be a bit embarrassing
and uncomfortable, but economically necessary...
so you of course show great compassion and
sympathy by sneering at them.
Lastly, the majority of us on Slashdot are
just regular professionals of all ages
(largely not living at home with our parents),
and you show how uninformed you are by
saying otherwise and thinking that anyone
would think for a second that you know what
you're talking about. But you offend us,
too, with implications of immaturity.
So you've offended essentially 100% of
your audience. This is flamebait and a troll,
but it got marked up to "2 interesting"??
Mod parent down!
Why Foley ('fake') effects are still important
on
Free Sound Samples?
·
· Score: 2, Informative
No one has mentioned the most critically
important thing about sound effects:
the ear is much harder to satisfy than the
eye, so even true recordings of
actual real life events GENERALLY
fail to sound realistic, even
though they are completely authentic!
For instance, recording someone walking
on a sidewalk usually sounds really fake,
whereas simulating the same thing by
banging (perhaps) two blocks of wood together
can sound very authentic.
For similar reasons, quality movies have
the actors record dialog in a studio and
dub that sound track on top of the visual
shot e.g. outdoors, because actual recording
of dialog on location is rarely good enough
quality...and a non-expert audience will
instantly notice the difference.
There are a variety of reasons for this
that professionals can attempt to compensate
for, such as the processing effects of
the outer ear, but the
bottom line is that Foley (the art
of using fake sounds by banging things
together in a studio) has always sounded
more realistic than actual recordings,
in general.
Professionals can judge when this is
not the case, and they can post-process
samples to make them sound more realistic,
but non-professionals should realize
that they are just going to end up with
non-realistic sounds, in general.
But my main point is, don't think that
Foley techniques are obsolete techniques
of the 1940s. They are still the
choice state of the art technique
(which professionals augment/enhance with
every conceivable other source and technique...
but not replace.
Professionals maintain a huge library of
effects, create new ones via software and
synthesizer, record new effects in the field
for every new movie they work on, post-process
everything with software, and still
use Foley along with that. Or when
time and budget are short, sometimes just
Foley. But using just computer without
Foley is a low quality last resort; big
budget films never settle for that.
I'm replying days after this was posted,
so maybe no one will see it, but hey,
at least it's in the archives.
Why do we still use sound samples? It seems to me that a sound engine or chip that could generate sounds by using physical laws to simulate real materials producing sound in a computer...
This is done a lot, but for one thing,
doing such physical modelling is vastly
slower even than ray tracing (you need
to do things like ray tracing but with
different effects for every component frequency,
and surface effects are complex), for the
highest quality effects,
and for another thing,
there isn't an existing library
of a hundred thousand physical models
to use for the purpose.
That's the short version of a very, very
large subject. Let's just say
that it is well beyond the state of the
art to give up on sound samples.
It depends on how much separation you want to achieve and how many traits you're trying to isolate
Absolutely.
Selecting for recessive genes is a matter of only one or two generations to "purify" the gene pool; dominants take a little longer, but you can have reasonably predictable results in 3 to 5 generations
This directly conflicts with what I've
read in the technical literature. Do
you have a source to cite to support this?
I arbitrarily picked my figure of 50 generations
for small change from a recent study
that said it took that long to
produce a domesticated species from
a wild one, which is a matter of
confusing existing drives/instincts
in directions beneficial to humans --
not a matter of creating brand new
drives/instincts.
Offhand I would say that you're confusing
the topic of changing the phenotype with
that of changing the genotype, which
makes a huge difference, because if you
keep in-breeding dogs whose phenotype
have the characteristic you like,
then e.g. various recessives can stay
indefinitely hidden in the genotype
without being expressed -- but also
without disappearing from the gene pool.
It takes much stronger evidence than
anecdotal observation of dog breeds
to be sure of the extent to which the
genotype has changed, whereas the phenotype
is easy to observe (in the particular
cases that you are talking about...in
other cases it can sometimes be even
harder to observe than the genotype).
Ah. I misunderstood your original phrase about
bugs, that's all. Sure, all good points.
As for Knuth's bug free software, I've
always felt torn about that, because certainly
it is admirable, and I would like
to say we should all aspire to write bug-free
code, but yeah, Knuth's shining example
unfortunately does make it questionable whether
it is really worth that level of effort.
Especially because the side-effect seems to
be that Knuth's code is required to be
single-author, and cannot be enhanced...
e.g. I can't remove his extraordinarily
annoying TeX progress messages.
(Which I could claim are bugs of the
design-defect sort, but obviously
Knuth disagrees.)
There may be a path to bug-free software,
but admirable as Knuth's efforts are,
they don't point to a method that can
be realistically followed in general.
So I'd say the whole issue about bug-free
typesetting is a minor side-issue, and
return to my insistence that TeX was
an incremental improvement. Troff and
nroff and groff are all usable in practice,
whether they have bugs (probably) or not.
I didn't see anyone mention it, but
his claim to fame with Metafont is
stronger than with TeX, as far as I know.
I think you didn't understand the point. Humans to some extent operate under un natural selection now, in the sense that our selection is consciously directed and technologically modified.
I disagree with both...I did understand,
and no, it hasn't changed to "unnatural selection".
First off, humans are not directing their
own selection/evolution/etc. If we did,
this would be a form of eugenics, which
historically has been unsuccessfully attempted
with atrocious measures like genocide.
If humans ever did stick with a selective
breeding program
(selective mating works better than
genocide, btw), note that it would
take about 50 generations for easy results
and 1000 generations for moderately difficult
results. Selection is a slow process.
And even so, selective breeding is merely
a variation on natural selection; breeding
new flower varieties is certainly not
"unnatural selection".
In the future we are undoubtedly going to
make strong use of direct intervention
in the human genome, and one could
then attempt to introduce new terminology
like "unnatural selection".
But this still wouldn't eliminate
natural selection in humans, because there
would still be a differential death rate
due to environmental factors, and there
would still be sexual selection at work
(short of a police state enforcing partners).
But that's beside the point...the discussion
was about the notion that humans currently
do not undergo natural selection,
which is absurd. We most certainly do.
There exists no such thing as genetic perfection...An organism simply adapts to its particular environment, or fails to and dies out.
Very true, and widely unappreciated.
An exception to this rule might be made for H. sapien sapien, but one could argue we're operating outside of natural selection now
Alas, a popular thought, but quite
uncontroversially false, even though it
has been suggested (largely for the sake
of Dramatic Pronouncement) by a few scientists
who really should know better. (The below
comments are aimed at this wrong notion;
don't take it personally.)
ALL that is required for natural
selection is heritable characteristics (DNA)
that have at least a little random mutation,
and reproduction rates modulated by external
forces (variable death and offspring rates).
That's why it is so easy to simulate genetic
algorithms. Given only a few obvious, easy
criteria, anything can and will evolve to
better fit an ecological niche (or to maintain
homeostasis in that niche if it is already
at a local optimum).
Thus, to turn off evolution for humans, you'd
have to eliminate one or more of those easy
characteristics...yet humans still die for
environmental reasons,
our DNA still mutates,
we reproduce at different
rates for external reasons (we geeks should
be keenly aware of the female choosing or
avoiding mates;-)
Therefore obviously Homo Sapiens still evolves.
It is an extremely lame, incoherent,
not well thought out argument to say that
modern medicine saves many who would otherwise
die without reproducing and therefore there
is no longer evolution. Ha! It would take
a lot more than that.
To paint it even more clearly, things like
medicine and nutrition and technology merely
change the definition of the local optimum
and/or of the ecological niche...but there
still exists an ecological niche for
humans.
Come on, if someone is so ugly that they
couldn't get laid carrying a bunch of
bananas into a monkey whorehouse, then
their differential reproduction rate
is going to be lower than other members
of the species, all other things being
equal. This is just common sense.
This notion that humans are above even
evolution is just another conceit, right
up there with Earth being the center of
the universe and man being created in
the image of God. You wish.;-)
not reinventing typesetting, but inventing non-buggy typesetting.
I think you must mean that TeX improved on
the design of older tools like troff. For
instance, few thought that the 2-character
limit for command/macro names was ideal,
so TeX wins there, among other places.
But like I said, such design improvements
are incremental improvements, not
revolutions.
Or did you literally mean "buggy"? Which
bugs in nroff/troff/tbl/eqn/etc are you
referring to?
Formatting can be handled by whatever.
The strength is in the meta-data.
True! But it is widely under-appreciated
that this can and was done even with
troff, and still is today in an important
way: the "apropos" command that scans
for relevant man pages works by looking
at a DB built by searching for semantic
tags in the man pages.
This very handy feature would not be possible
if troff just did presentation style.
It's true that this is not the main emphasis
of troff, and that one is at the mercy
of whoever wrote the macro package, etc,
but that's true of XML sublanguages too.
I'm playing devil's advocate. I realize
(and posted elsewhere here) that there's
a difference in that XML, when
used as intended, is supposed to be
primarily about semantics, with
style as a secondary transformation,
whereas it's the other way around with
troff...it's intended for presentation, but
people have nonetheless done handy things
with it at a higher level of abstraction.
But still, the point is that nothing XML
does is brand new. It just represents
new industry awareness of some old good
ideas.
Similar to how Java has popularized the
40 year old notion of doing garbage collection,
so now people say GC is "new technology".
Not at all. Just being more widely used.
Someone should use this new-fangled XML thingy to make a universal markup language that people could use to define and deliver structured data to any application in a standard consistent way.
Are you joking? That's what XML is for.
Except instead of "a universal
markup language" it's "a set of"...
XML is the meta-language used to create
a horde of universal languages, one
per application area.
E.g. one for chemistry, one for math,
etc.
If you think that there should only
be one such language, rather than
one per application area, well,
the problem is it would be
too big; you'd have to support
markup for choreographing dancers,
markup for orchestral music,
markup for the 3D displays that
will come on the market in the
year 2015,
markup for history timelines...
it would be an infinite language.
Thus XML as a meta-language. It
allows an infinite number of
sub-languages to be created, as
needed. That's probably as good as it
gets.
XML has good and bad points, but
it's important to understand that
this is its true inner nature, before
getting into the tradeoffs.
First off, white space is removed in the lexical analyzer in the earliest phase of compilation, so that part is way off base. The pattern matching would occur on something like expression trees (parse trees, syntax trees, intermediate code tuples, ...)
Secondly, the part being matched might not be alterable. If the target code is doing something like "strcmp(test_password, stored_password)", then you can't obfuscate the string "strcmp"; the symbol wouldn't be resolved by the linker.
Thirdly, the standard obfuscation tool would be well known, and the compiler could be adapted to it, or it could be subverted as well.
Fourthly, the real point of Thompson's trick was that he got people to use a trusted binary of a compiler to recompile the world. If people were distrustful enough to want to run an obfuscator, they would also refuse to trust the binary compiler sent to them by that rogue Thompson, and instead would use one of their own.
You can try to get clever, but there's no avoiding Thompson's ultimate point: there's always someone or something that must be trusted, and that is a weak link.
After all, accidental bugs that cause security flaws show the impossibility of even completely trusting oneself.
That's when I started to look for another solution, and found Linux -- which has never, obviously, been pure BSD-like, but did always include enough BSD stuff rather than exclusively SysV side of the world to make me happy.
Sure sure...if you think about it, it's clear I brought up BNF/yacc for exactly those reasons, regardless of flaws in my phrasing.
To phrase it perfectly I'd need to state a sharp boundary for what is necessary and sufficient for Turing completeness...but I only recall sufficient mechanisms, not which ones are necessary.
And part of the problem there is that I feel like I'm on thin ice with the explicit/implicit issues of conditionals -- as you say, BNF has implicit conditionals, and along with recursion, that's sufficient. But I have this notion that there might be languages that have recursion and implicit conditionals but which are not Turing complete. Hmm, let's see....I guess it's just a matter of what they test, not whether they're implicit. That sounds right. Well, for sure that's right for some things. It's the issue of being only able to look at the stack top that makes BNF non-turing-complete...I'm still uneasy about this, though; has there been some kind of survey of all possible mechanisms and which of them are necessary rather than just sufficient for Turing completeness?
Phrased this way, I'm coming up blank.
Hasty overgeneralization. I helped develop BSD back in the late 70s, but gave up hope on it when Bill Jolitz did. Then I started using Linux early on (0.99 kernel days), and I haven't had a compelling reason to go back to BSD. Switching would be a pain. Is there a compelling reason? Every time I've heard of an advantage, I got the impression that Linux borrowed it back.
I guess BSD would be leaner and cleaner...
I had in mind the older and less fuzzy definition of "declarative language", meaning one that is not Turing complete because there it lacks explicit conditionals, loops, and recursion.
For instance, BNF is used to specify grammars, yet context free language parsers can be generated automatically from those grammars (e.g. with yacc). Thus BNF is an extraordinarily powerful language, but it doesn't specify algorithms, it just declares the grammar -- and is not Turing complete.
If BNF is augmented with the ability to do grammatical parsing based not just on input tokens but also by conditionals on arbitrary memory locations, then it becomes Turing complete (because it is then an Augmented Transition Network).
People who like fuzzy terminology would no doubt still call that a declarative language, but they've taken away an otherwise perfectly good category name for things like BNF. Is there some other terminology I've overlooked/forgotten, or am I going to have to start saying "Turing-incomplete declarative languages"??
Foldoc, BTW, has its imperfections, including that it does not bother to comment on multiple usages, as in this case, or the one I noticed last week: "algorithm" as diametrically opposed to "heuristic" -- whereas it's quite common for people to mean "algorithm" as including "heuristics" as a proper subset.
I have every reason to believe that this is completely false. There was a proposal to do such a thing, but the approach suggested would have screwed up the audio somewhat. They claimed the public wouldn't notice the little notch filter at 60 hz, but audiofiles fought back and won, and ever since, a percentage of blank tape sales have gone to reimburse the music industry for presumed piracy.
Personally I think this is exactly the right approach to take in the future, also.
I've had an avocational interest in these subjects since before CDs were invented, but I'm not actually an expert...if you have a reference to prove me wrong, please cite it.
Incorrect. It has been against the law for decades to receive many kinds of broadcast signals, regardless of who created or modified the equipment. (Depending on details, it may or may not be legal to do the equipment modification without actually using it, but you can imagine that this is skating on thin ice in general.)
For example, under many circumstances it can be illegal to listen to military bands, police bands, eavesdrop on cordless phones and cell phones, etc.
The FCC has a broad mandate backed up by strong laws, and people do sometimes go to jail for violating them.
Anyone interested in learning about this: check up on the abundant how-to material for ham radio enthusiasts; that tends to be where it's most accessible.
Indeed. Humans are accustomed to expressing their desires to other humans, and relying on common sense to guide the interpretation of their orders and specifications. This doesn't fly with computers; the orders aren't algorithms, they're vague wishlists.
The first problem is that people don't say how to achieve goals. The second problem is that people don't even specify the goals very explicitly, but they don't realize this. A corollary is that they don't look for every little corner case that applies to their desires.
For instance, a CEO might say (at least implicitly) that an app should treat it as a fatal error if an employee has no boss -- but often the CEO himself needs to be a special case treated as having no boss. Or no employee can have a salary about $XXX/year, but he forgets that he himself makes 20 * $XXX, unlike all other employees, and also that inflation will make his threshold incorrect eventually, and what about whether bonuses should be included or excluded, etc etc.
Discovering and reasoning about special cases routinely is just part of the job for any good programmer -- you might say the programmer has high empathy for what the computer needs -- but nonprogrammers just aren't used to thinking that way.
No, VB and Access made it possible for untrained people (and naive managers) to THINK (quite incorrectly) that they could write software and DB apps.
Exactly.
There is no silver bullet for making software easy, and this has been known for decades.
Cobol, for instance, was supposed to be English-like, and hence understandable and programmable by non-programmers. Other English-like programming languages have made the same claim. Wrong every time on all counts.
The problem is that specifying arbitrary algorithms requires extreme precision, unambiguity, and tedious detail far beyond anything the average person is even interested in attempting, let alone capable of. It doesn't particularly matter which language or tool is offered, what matters most is the person's abilities (and willingness!) to be excruciatingly detailed and logical and patient.
This has been studied to death, but hope springs eternal...
Another kind of lack of silver bullet are declarative languages...it's vastly easier to declare what is needed than it is to specify procedurally how to achieve the goal. However, no one has ever invented a Turing complete declarative language, and there is good reason to think that such a thing is impossible (infinite potential problem domains).
Simonyi is a very intelligent and experienced guy, so he likely knows this. I hope he does; he should. So I like to interpret what he's saying as a grandiose way to say that he's hoping to make a big improvement in the art of programming -- there certainly is huge room for improvement.
But if he literally means he hopes to make all programming as easy as making powerpoint slides, then he is a fool or a liar (but he might still produce some cool tools).
(Making really cool graphics for the backgrounds of powerpoint slides is an art, BTW ;-)
A "cellular-automata program of some kind" could be Turing-complete -- that is, the right kind can compute anything that can be computed, so yes, there are theoretically some that could play perfect games of Go (not necessarily fast enough to finish before the universe dies, though; that's a different question).
In a more down to earth sense, the similarities are not necessarily trivial. I would guess that a Go game played on a large enough board according to very complex rules governing each choice of moves might also be Turing-complete. I'm only guessing, but it seems possible, even likely.
The game of Life can be set up to simulate a Turing machine.
You're missing the point. Many people (such as ESR, at the linked story) say that "hacker" isn't a title you claim for yourself, it's the way that other people describe you.
Therefore, it's not to the point whether you're a programmer or not. The vast majority of programmers aren't Hackers...nor even understand what it means.
Consider the term "cool" (which goes in and out of style, but never mind that). People who think they are cool may or may not be; it doesn't tend to really be true unless other people think they are cool. Otherwise it's just egotistical.
It's even partially true that "Hacker" is the "cool" of programming, but that doesn't capture it completely and is not entirely correct. It's also partially a community thing.
Here's another example. I have worked with professional programmers who never heard of Turing. I was stunned, but they certainly were programmers -- they also certainly weren't hackers. Nothing about Turing came up in their CS degree program. But a hacker would have found out eventually after leaving school, you see. Or lets say it's very likely, anyway.
Hackers tend be familiar with a lot of the contents of The Hacker's Dictionary that ESR maintains because they "learned it on the street". Wannabes learn it from the book. :-)
Anyway, despite what jumpingfred said to you, is it possible to be a hacker and to have never heard of the game of life? Sure. It's just vanishingly low probability. And since you haven't heard of it, how could you have an informed opinion one way or the other? :-)
On the positive side, although some hackers have lives, it's more likely in the case of people who are just programmers but not hackers, so count your blessings.
You're getting completely confused here. There are an infinite number of prime numbers, this was proven thousands (yes, thousands) of years ago, and there is absolutely no controversy about the fact. It isn't even one of the subjects where the nature of "proof" gets argued philosophical...to the extent that anything at all can be proven mathematically, primes have been proven to be infinite.
The oldest and easiest proof is simple. If primes are finite, then there must be some prime N that is the biggest. Multiply together all primes and add one: x=1 + 2*3*5*7*...*N. This resulting x is not divisible by any prime...it has remainder 1 when divided by 2 or by 3 or by 7...up to N. But that means that x is prime, yet it is obviously bigger than the biggest prime N. Contradiction, therefore our premise, that there is a largest prime N, is false, therefore there are infinite primes.
Maybe you're thinking of the strangeness exhibited by "grue"?
The "grue" property is defined as:
x is grue if and only if x is green and is observed before the year 2000, or x is blue and is not observed before the year 2000. This is a "weird" property but there is no obvious reason why we couldn't make up such a property. Now, let us pretend that the x referred to above are actually emeralds. Further, pretend that we have observed many emeralds and they have all been green and thus have had the property "grue". Then, intuitively, this should increase our belief that the next emerald we observe will be green and that it will be grue. This intuition is fine until New Years Eve in 1999. Now our pretend emeralds observed in 2000 should be grue and therefore blue and not green. (quotation source )
Web search on Nelson Goodman for more on that.
What?!?! The "KB" vs "Kb" difference is extremely ambiguous...only a factor of 8 involved, when we often really want/need to know which it is.
But it turns out humans are really good at interpreting things in context, and would never think that "2m" on a street sign meant "2 meters"...obviously you wouldn't even need a sign if it were that close; that's the same thing as "you are here". So what are you, a bot? :-)
As a more minor matter, meter is SI/metric, mile is Imperial, and they are separate systems, not one unified system, so letting this annoy is about as meaningful as being annoyed that e.g. "hell" is a word in both English and in German but means sharply different things.
If you want a pet peeve, how about words in English that mean their own opposite, like "cleave" (means both to join and to separate) or "prove" (means both to demonstrate beyond reasonable doubt and also merely to test something of unknown status).
But the smallest touch of a Zen attitude might allow one to realize that it's pointless to rail against things being the way they are. Gravity exists, no point in getting upset at it.
You and he miss the point by talking about capitalism (1) as being outside of the description of society I counter-argued, and (2) as being in truth something in an extreme pure form...it is not and never has been.
More plainly, you are not describing capitalism. You are describing no-holds-barred Laissez faire capitalism, which does not exist anywhere, nor should it -- although some poor naive power-hungry people always argue it should exist.
Here are some weapons of pure capitalism which are illegal in the U.S. and many other countries:
There are lots of other examples of pure capitalism that do indeed amount to the law of the jungle, but that is not, in practice, what capitalism is actually about.
Thus all my comments about compassion and society, which you thought were off-topic. They're not. In practice, capitalism is about playing by the rules, and is often about reciprocity, not just about (economic) dead bodies littering the landscape while one brutal victor stays (economically) alive.
To argue about the kind of capitalism you and he argue is similar to arguing about business the way the Mafia does business -- it's an abberation that preys on society and its members, not just the way business is nominally conducted. And I continue to condemn it.
So once again, don't give me that crap about "if you don't succeed in capitalism then you don't deserve to pass on your genes" -- he did say that, it is a statement about evolution and about society and about capitalism, and it's wrong and misanthropic.
Nay nay, it is an issue. Remember that the discussion was about eugenics (sort of). Whether the human race undergoes evolution. Multiple coding sites are precisely the issue, and they cannot all be eliminated quickly, and they can remain unexpressed for many, many, many generations, and all it takes is e.g. one upstream promoter appearing, or a similar but even more complex cause of gene expression in the nuclear machinery (of which we are still largely ignorant, don't forget), and boom, the phenotype trait reappears.
Dog breeders, like the above post, have lots of interesting evidence that applies when a single, easily isolatable external trait is linked to a single DNA sequence in a single site that doesn't involve any odd transcription machinery.
That's why dog and flower breeding works, naturally. But I'm sure you know that that is far from the whole of the story.
And in the context of this discussion, the Nazis, for example, certainly managed to kill a lot of Jews and other people they thought were undesirable, but I haven't seen any evidence that they changed the gene pool of the human race in any clear direction. To the extent that one might say that there is such a thing as a genetic Jewish race (obviously many would say there is not, but let's say), it is clearly not a single-locus gene.
QED.
As for direct genetic manipulation, I explicitly said we weren't talking about that; it's a different topic.
This shows both a deplorable lack of compassion and also a deplorable ignorance of how the 'game' (both evolution and society) actually work.
Before getting all technical on you, though, consider this: by your own theory, if I pass you on the street and stab you to death because I think you're a jerk, then you don't deserve to pass on your genes.
I'd be careful advertising that theory, if I were you; it rather seems to be tempting fate in unwise ways.
As to a few technical details: even if evolution worked in the absurdly simplistic dog-eat-dog way you claim, that still doesn't mean that's how the game of life works for us humans... we are social animals, and as such we have societies, which have rules and laws and interactions, and in better cases, compassion is part of all this.
"Survival of the fittest" in a "kill or be killed" sense is not, and never has been, the primary determiner in any social species, let alone humans. Where's that ultra-violence in the social life of bees, ants, termites? There's a certain amount of intra-specific violence in social species such as wolves, horses, and chimpanzees, but never as a daily bloodbath.
Back to evolution as such: death of less-fit individuals does function as a form of negative feedback on the gene pool, but it is nowhere near as efficient a means of evolution as is the positive feedback that comes from sexual selection, which is part of why so very many species have sexes...even plants have male and female. It has huge evolutionary advantages, and it has NOTHING to do with duelling to the death.
And in social species, evolutionary fitness has a great deal to do with interactions with other members of the species...which is why compassion evolved...and why you seem to the rest of us to be less evolutionarily fit, not more, by expressing such an annoying attitude towards your fellow species members.
Any time someone tosses out this kind of hostile "evolution justifies vicious competition to the death...too bad for you" crap, you can be 100% sure that that person has never studied evolution.
Lastly, regardless of how evolution works in the jungle, we like to modify the process in our gardens. I don't know about you, but I have a cultivated garden in my back yard, not a deadly jungle, and that's how I like it. I recommend we all nurture people in the same way...they grow better.
You forgot to leave your condescending, uninformed, insulting attitude at the door. Let's see, who didn't you insult with this? Teenagers are supposed to live at home; they're not adults yet. But you're implying they're immature and immoral. And young adults have been continuing to live at home for some decades now because of economic trends, not because of immaturity.
In this economy, people of all ages are returning home. This may be a bit embarrassing and uncomfortable, but economically necessary... so you of course show great compassion and sympathy by sneering at them.
Lastly, the majority of us on Slashdot are just regular professionals of all ages (largely not living at home with our parents), and you show how uninformed you are by saying otherwise and thinking that anyone would think for a second that you know what you're talking about. But you offend us, too, with implications of immaturity.
So you've offended essentially 100% of your audience. This is flamebait and a troll, but it got marked up to "2 interesting"??
Mod parent down!
For instance, recording someone walking on a sidewalk usually sounds really fake, whereas simulating the same thing by banging (perhaps) two blocks of wood together can sound very authentic.
For similar reasons, quality movies have the actors record dialog in a studio and dub that sound track on top of the visual shot e.g. outdoors, because actual recording of dialog on location is rarely good enough quality...and a non-expert audience will instantly notice the difference.
There are a variety of reasons for this that professionals can attempt to compensate for, such as the processing effects of the outer ear, but the bottom line is that Foley (the art of using fake sounds by banging things together in a studio) has always sounded more realistic than actual recordings, in general.
Professionals can judge when this is not the case, and they can post-process samples to make them sound more realistic, but non-professionals should realize that they are just going to end up with non-realistic sounds, in general.
But my main point is, don't think that Foley techniques are obsolete techniques of the 1940s. They are still the choice state of the art technique (which professionals augment/enhance with every conceivable other source and technique... but not replace.
Professionals maintain a huge library of effects, create new ones via software and synthesizer, record new effects in the field for every new movie they work on, post-process everything with software, and still use Foley along with that. Or when time and budget are short, sometimes just Foley. But using just computer without Foley is a low quality last resort; big budget films never settle for that.
I'm replying days after this was posted, so maybe no one will see it, but hey, at least it's in the archives.
This is done a lot, but for one thing, doing such physical modelling is vastly slower even than ray tracing (you need to do things like ray tracing but with different effects for every component frequency, and surface effects are complex), for the highest quality effects, and for another thing, there isn't an existing library of a hundred thousand physical models to use for the purpose.
That's the short version of a very, very large subject. Let's just say that it is well beyond the state of the art to give up on sound samples.
Absolutely.
Selecting for recessive genes is a matter of only one or two generations to "purify" the gene pool; dominants take a little longer, but you can have reasonably predictable results in 3 to 5 generations
This directly conflicts with what I've read in the technical literature. Do you have a source to cite to support this?
I arbitrarily picked my figure of 50 generations for small change from a recent study that said it took that long to produce a domesticated species from a wild one, which is a matter of confusing existing drives/instincts in directions beneficial to humans -- not a matter of creating brand new drives/instincts.
Offhand I would say that you're confusing the topic of changing the phenotype with that of changing the genotype, which makes a huge difference, because if you keep in-breeding dogs whose phenotype have the characteristic you like, then e.g. various recessives can stay indefinitely hidden in the genotype without being expressed -- but also without disappearing from the gene pool.
It takes much stronger evidence than anecdotal observation of dog breeds to be sure of the extent to which the genotype has changed, whereas the phenotype is easy to observe (in the particular cases that you are talking about...in other cases it can sometimes be even harder to observe than the genotype).
As for Knuth's bug free software, I've always felt torn about that, because certainly it is admirable, and I would like to say we should all aspire to write bug-free code, but yeah, Knuth's shining example unfortunately does make it questionable whether it is really worth that level of effort.
Especially because the side-effect seems to be that Knuth's code is required to be single-author, and cannot be enhanced... e.g. I can't remove his extraordinarily annoying TeX progress messages. (Which I could claim are bugs of the design-defect sort, but obviously Knuth disagrees.)
There may be a path to bug-free software, but admirable as Knuth's efforts are, they don't point to a method that can be realistically followed in general.
So I'd say the whole issue about bug-free typesetting is a minor side-issue, and return to my insistence that TeX was an incremental improvement. Troff and nroff and groff are all usable in practice, whether they have bugs (probably) or not.
I didn't see anyone mention it, but his claim to fame with Metafont is stronger than with TeX, as far as I know.
I disagree with both...I did understand, and no, it hasn't changed to "unnatural selection".
First off, humans are not directing their own selection/evolution/etc. If we did, this would be a form of eugenics, which historically has been unsuccessfully attempted with atrocious measures like genocide.
If humans ever did stick with a selective breeding program (selective mating works better than genocide, btw), note that it would take about 50 generations for easy results and 1000 generations for moderately difficult results. Selection is a slow process.
And even so, selective breeding is merely a variation on natural selection; breeding new flower varieties is certainly not "unnatural selection".
In the future we are undoubtedly going to make strong use of direct intervention in the human genome, and one could then attempt to introduce new terminology like "unnatural selection".
But this still wouldn't eliminate natural selection in humans, because there would still be a differential death rate due to environmental factors, and there would still be sexual selection at work (short of a police state enforcing partners).
But that's beside the point...the discussion was about the notion that humans currently do not undergo natural selection, which is absurd. We most certainly do.
Very true, and widely unappreciated.
An exception to this rule might be made for H. sapien sapien, but one could argue we're operating outside of natural selection now
Alas, a popular thought, but quite uncontroversially false, even though it has been suggested (largely for the sake of Dramatic Pronouncement) by a few scientists who really should know better. (The below comments are aimed at this wrong notion; don't take it personally.)
ALL that is required for natural selection is heritable characteristics (DNA) that have at least a little random mutation, and reproduction rates modulated by external forces (variable death and offspring rates).
That's why it is so easy to simulate genetic algorithms. Given only a few obvious, easy criteria, anything can and will evolve to better fit an ecological niche (or to maintain homeostasis in that niche if it is already at a local optimum).
Thus, to turn off evolution for humans, you'd have to eliminate one or more of those easy characteristics...yet humans still die for environmental reasons, our DNA still mutates, we reproduce at different rates for external reasons (we geeks should be keenly aware of the female choosing or avoiding mates ;-)
Therefore obviously Homo Sapiens still evolves. It is an extremely lame, incoherent, not well thought out argument to say that modern medicine saves many who would otherwise die without reproducing and therefore there is no longer evolution. Ha! It would take a lot more than that.
To paint it even more clearly, things like medicine and nutrition and technology merely change the definition of the local optimum and/or of the ecological niche...but there still exists an ecological niche for humans.
Come on, if someone is so ugly that they couldn't get laid carrying a bunch of bananas into a monkey whorehouse, then their differential reproduction rate is going to be lower than other members of the species, all other things being equal. This is just common sense.
This notion that humans are above even evolution is just another conceit, right up there with Earth being the center of the universe and man being created in the image of God. You wish. ;-)
I think you must mean that TeX improved on the design of older tools like troff. For instance, few thought that the 2-character limit for command/macro names was ideal, so TeX wins there, among other places.
But like I said, such design improvements are incremental improvements, not revolutions.
Or did you literally mean "buggy"? Which bugs in nroff/troff/tbl/eqn/etc are you referring to?
True! But it is widely under-appreciated that this can and was done even with troff, and still is today in an important way: the "apropos" command that scans for relevant man pages works by looking at a DB built by searching for semantic tags in the man pages.
This very handy feature would not be possible if troff just did presentation style.
It's true that this is not the main emphasis of troff, and that one is at the mercy of whoever wrote the macro package, etc, but that's true of XML sublanguages too.
I'm playing devil's advocate. I realize (and posted elsewhere here) that there's a difference in that XML, when used as intended, is supposed to be primarily about semantics, with style as a secondary transformation, whereas it's the other way around with troff...it's intended for presentation, but people have nonetheless done handy things with it at a higher level of abstraction.
But still, the point is that nothing XML does is brand new. It just represents new industry awareness of some old good ideas.
Similar to how Java has popularized the 40 year old notion of doing garbage collection, so now people say GC is "new technology". Not at all. Just being more widely used.
Are you joking? That's what XML is for. Except instead of "a universal markup language" it's "a set of"... XML is the meta-language used to create a horde of universal languages, one per application area.
E.g. one for chemistry, one for math, etc.
If you think that there should only be one such language, rather than one per application area, well, the problem is it would be too big; you'd have to support markup for choreographing dancers, markup for orchestral music, markup for the 3D displays that will come on the market in the year 2015, markup for history timelines... it would be an infinite language.
Thus XML as a meta-language. It allows an infinite number of sub-languages to be created, as needed. That's probably as good as it gets.
XML has good and bad points, but it's important to understand that this is its true inner nature, before getting into the tradeoffs.