One problem of many is that things that are alive (alive like animals are alive, not like plants are alive) are indeterministic (they do what they want to (free will)).
This is the ghost in the machine
myth. Many believe that human intelligence is somehow "special"
in a way that mechanical devices can't be, as if the brain were made
of more than mere matter that follows predictable laws of physics.
It's a common view. I would wager that >90% of the population believes
it. Virtually every religion embraces and teaches it, either explicitly
or implicitly. People want to believe that their identity
is somehow transcendent to the universe.
We've seen this before with
vitalism:
people used to be convinced that living matter was somehow "special"
and different than non-living matter in a fundamental way that
dips below physics. Now we know that organic life is just a special
arrangement of atoms that allows those atoms to be self-replicating.
Obviously, a living cell is a particulary complex arrangements of
atoms. The difference between the animate and the inanimate is
huge: we relate to grizzly bears much differently than we do to a
pile of rocks. Prehaps this is why our intuition is so misinformed...
it's not representationally meaningful to think of a grizzly bear
as being composed of dirt, air, and water, even though it is.
The same thing applies to intelligence. We have every indication
that brains cause minds. We've mapped which areas of the
brain correspond to which areas of functionality. Emotions can
be altered predictably with drugs. Every aspect of a
near death experiences (NDE) can be triggered with chemicals,
sensory deprivation (IIRC), a sharp blow to the head, or something
mundane and physical. Ultimately, the experience known as self
and the sensation of free will boil down to being just
a special set of computations that can run on any Turing Machine
or x86 with enough memory.
Of course, the complexity difference b/t you and an Unreal bot
is several orders of magnitude. It's not representationally meaningful
for me to think of you as the same thing... there's just not as
much satisfaction in fragging a bot.:-)
It's a legitimate concern. Emphasis on learnability tends to
result in programs that pamper the novice but hender the expert.
Experts deserve usability too! Can you give me a nice GUI to
administer my webserver? Great! But I want (1) textual manipulation
[e.g., of config files], (2) command-line manipulation (via CLI
utilities), and (3) programmatic manipulation (via libraries) as well.
And I also want documentation for all of the above.
GUI: nice for when you shouldn't have to think
CLI: nice for remote access, automation, inspection, and hooking things together
Libraries: only for creating new apps on top of the old one
Text: nice for use in conjunction with CLI,
also good for backup, versioneering, inspection, hacking on new functionality,
sending to someone else for discussion/assistance, etc.
Is it possible to have it all? Yes! And in fact, this happens often
in OSS.... apps tend to be developed in layers. You could argue
that this is happening more and more with Windows as well, except
that Windows is building top-down and OSS is building bottom-up.
Both products have a long way to go. As an example, here's a simple
acid test:
You have to change one word in a text file.
You've never seen a computer before.
Should you use windows or unix?
You have to change one word in 200 text files.
You use a computer everyday of your life.
Should you use windows or unix?
Answer: use Windows for case 1 (if you find vi or emacs, you'll freak), Unix for case 2 (I did this task recently with sed and bash... no problemo).
Both systems have a long ways to go in terms of usability.
Call me elitist for saying so, but the bottom-up approach would
ultimately lead to better usability if our education systems
(at work, primary school, college, etc.) supported it. Sure...
let's have web/email/word-processing appliances as well.
And definetly, let's adhere to standards for GUI-interaction
and CLI argument-parsing and good UI practices. But
let's also expect more involvement from white-collar workers
who are going to spend 25% of their lifetime in front of a
full-fledged, general-purpose computer. Don't spoon-feed them
if it means cutting out lower-level access. That just leads
to problems, hacks, and administrative overhead down the road.
Let users attack
problems at multiple levels of representation.
It's a strongly-type, object-oriented, Java/C++ descendent.
It breaks no new ground, but it does have some nice incremental
improvements over Java:
xml-based documentation format (similar to javadoc, but more intuitive).
richer collection of primitive data types
conditional compilation macros
properties (intead of get/set methods)
automatic boxing/unboxing of primitive types [e.g., an int can be cast to an object]
foreach() construct
proper enumerations
delegates (reduces verbosity when making one-method interfaces)
attributes mechanism for annotating assemblies/classes/members
with meta-data (instead of using javadoc tags as a kludge)
Some off the above features have their dubious aspects. The really
bad features (IMO) are:
fewer constraints on how things in your code (namespaces, classes)
must be arranged with things in your filesystem (directories, files)
wierd behavior of virtual/override/new virtual
(I would provide you an example, but the lameness filter wouldn't
let me post C# code).
The bad points of C# are:
less disciplined than Java
no dynamic inner classes (but Java didn't have them at first either, IIRC)
no anonymous inner classes (maybe wrong on this one)
less open source code, existing support, and tools than Java
But all in all, some of these things will improve with time.
It should also be noted that the predominant IDE for C#
(VisualStudio.NET), the documentation, and the core API's all
suck. Especially the documentation... I opened up some Javadoc web
pages after working with.NET for a month and almost cried at
how easy it is to navigate and read compared to VisualStudio's
crappy help browser (yes, even when run externally).
Ultimately, C# may be the better language, but not by much. I can't
help but look at Smalltalk and Scheme and think that these
C-derivative language designers just don't get it. What I really
want to see is a new generation of meta-languages that allow
complex relationships and design patterns to be expressed at a
high level in a compact fashion.
This whole undertaking just sparks of an abortive effort. They attack Napster, a hundred other P2P networks spring up in its place. They create encrypted CDs that can only be played in "{company} approved" devices, and by the release date over 100k people already have the entire contents of the CD. They create DRM on their CDs, people buy a $5.00 cable from their local Radio Shack and circumvent it.
Yep... the RIAA buddies must have slept through
their courses in basic information theory. INFORMATION IS AN INTRINSICIALLY ABUNDANT RESOURCE; IT DOES NOT FIT TRADITIONAL SCARCITY ECONOMICS.
Here's a hint: the only truly scarce things are
(1) artist talent and (2) consumer attention.
But not information: duplication is free, and
transmission is near-free. Your attempts to enforce an artificial scarcity on raw information will always fail. Maybe, just maybe, if you throw enough money into
buying legislatures and cryptographic snake-oil,
you'll be able to pull a better bottom-line for
awhile. But is a police state good
for CD sales? Is technological and cultural
stasis good for CD sales? You might f*ck
consumers and artist for a little while,
you might f*ck freedom and liberty,
you may even f*ck open source and technological
progress, but your doom is in the wind. You are
dinosaurs trying to adapt to fundamental alternations in the climate by using the same
tired old strategies. Your extinction is ensured... you will be undercut by smaller, fiercer mammals who move nimbly in and out of
micro-niche markets, instantiating and destroying
endless product-cycle generations of "globally local" celebrities.
You're so worried about
John and Mary trying to relax to pirated
music and movies in front of their cramped home-office/kitchen/basement/bedroom PC that
you don't see anime fanboys wanting to
catch the JPop of Japan, gentriefied college
youth straining to hear the
rhythms of Indian instrumentalists, or coven
gaming clans wanting vocal FX. You've been
so busy promoting homogenity and pre-fabbed,
broad-market tastes that you cannot conceive of
actually encouraging people to build their own tastes and biases so that you can satisfy
them with realtime, subscription-based, computer-AI-customized, satellite-delivered content. Instead of replacing the radio stations,
you pay them gobs of money to enforce your
artificial monopoly. Society can justify your
existance less and less as time goes on. Soon,
you will not be needed at all. No pretentiously
serious "business strategy" will help you; your
only salvation will be a frantic search for a completely radical shift in thinking.
But you've always been too staid and afraid to become insanely great. There's risk in that. But
stasis is sure death.
Here's a strategy suggestion for ATi and Nvidia.
As a graphics-hungry, pro-open source consumer,
I am willing to pay a premium for your product
(and give it advanced consideration over your
competitor's product) if you do the following:
provide quality binary drivers
promise to open-source the code in 2 or 3 years (4 max)
promise that above code will not be patent-encumbered
promise to release gooey low-level documentation at the same time
The above might be a viable model for many
commercial software projects. Preferably, a third
party (such as the FSF or Software in the Public Intrest)
would hold the code and documentation in escrow.
This is premised on the idea that releasing 3 year-old
hardware drivers does not provide your competitors
with much of an advantage... I don't know whether
or not that's the business reality.
No, there are reasons that we support Israel, but money ain't one of them. We support Israel because of the holocaust.
In the Southeast U.S., I speak to a lot of Christians who support Israel because they believe:
God gave Israel the land (x thousand years ago);
the Bible prophesies that Israel will be reconstituted as a nation (e.g., the UN resolution in 1948); and
(3) America will be blessed as long as it supports "God's Chosen People".
These beliefs have had dramatic long-term effects on US foreign policy, and they probably play a continuing role in how the U.S. sees Israel.
Personally, I would like to understand these things better; I've concluded that a lot of the stuff I was raised to believe is somewhat careless myth, but I don't want to err on the "America is totally evil" side either. Objectivitity is hard to come by... history seems to be a mix of motives and economics of varying degrees of integrity and naievety.
Bore a tunnel from one side of the planet to another, right through the center of the earth.
Mathematically, it works out that any gravity-driven
trip through the earth would take about 42 minutes
(IIRC). This would be
true whether you bored a hole from New York
to Bejing or New York to Seattle or New York to
Washington D.C. The shorter the trip, the less
speed you obtain from free-fall (because you're not
falling straight down... you're cutting across the
Earth's gravitational well)... the result is
that all such trips take the same amount of time.
Of course, this all assumes a nice, frictionless,
non-raging-inferno, non-shifting-continential-plates
environment.:-)
If you want people to switch from Windows to Linux, you have to support Linux, not bash MS.
Sage advice. When Microsoft first released Word/Excel (I can't remember which it is... perhaps both), they targeted Apple customers first. They appealed to the rebellious image of Macintosh, taking the attitude that "our product totally smashes the offerings from Correl/Lotus". The marketing technique was effective: Mac users
adopted Microsoft software for their word processor/spreadsheet.
When the Windows version was ready, the marketing department
shifted their tactics. They figured the rebellious image
that insulted their competitors would also insult
their customers (e.g., because PC customers were
quite aquainted with the offerings of Correl/Lotus). Instead, Microsoft took a different
attitude: "Correl/Lotus were pretty good in their
day, but now we have newer, better things to
offer!" This approach flattered their customers'
previous purchasing decisions, and encouraged
them to advance w/Microsoft. Microsoft worked
the attitude both ways and profitted immensely.
Let's steal a play from their book and promote
Linux/open source as "the obvious" commodification of common software. So yeah...
Microsoft was helpful in bringing affordable
computing to the masses back in the 80's and 90's,
but now, like any number of things before it (intercontinental travel, roads, indoor toilets, long distance calling, processor power), the operating system has become a commodity that you shouldn't have to pay for over and over again (beyond bandwidth and stability maintenance).
If you are an ambitious intermediate computer-user, you can graduate to any number of open-source unix-based operating systems (e.g., that run on Linux, BSD, or GNU HURD) that provide
you with power and flexibilty (with the added time-cost of having to learn some very techincal things).
Let's tone down the rebelliousness and make OSS possibilities feasible for our customers. But unlike Microsoft, let's keep our evangelism somewhat honest...:-)
This joke references traditional Hindu beliefs,
but it doesn't do so maliciously. I doubt
this would offend Hindus.
In addition, I believe that even some offensive
jokes can be deemed non-racist/non-hateful; my
proof is anecdotal: my friends have occassionally
made jokes about me that I at first found offensive
but on further reflection, I had to agree that
the jokes were pretty accurate. The whole
experience is much difference than being the butt
of a spiteful joke. Racism or hate is pretty much
in the attiude of the joke-holder.
Collectively, of course, even innoncent or naive
jokes can have a bad effect on a group... but that's a
different subject entirely.
It kind of scares me that people will jump
on an innoccuous wordplay and call it "racist".
Every age has its witchhunts. (Though I agree
that the joke may be overrated at +5.)
Too much choice can be a bad thing.
Instead of endorsing endless variations of the
same concept, OSI's purpose should encourage
everyone to congregate on a few core licenses
(GPL, BSD, etc.). Furthermore, it should be
possible to take any mixture of software released
under OSI-approved licenses and create a new
piece of software that can be redistributed together (even if it's under the GPL).
One of the overlooked benefits of Open Sourcing your internal apps is that it can take significantly reduce future maintaince costs and compatability headaches. Keeping your in-house app proprietary saves you the "cost" of having your competitiors adopt it, but you lose the benefits of releasing it into the community: other people will build on it, upgrade it, add features to it. Wide-spread adoption encourages vendors to interface with it and produce tools that greatly increase your inital investment. Even more valuable (though very intangible), is that everybody is encouraged to do things your way. This promotes investor/consumer image and provides other leverage in future decision-making.
This is one strong argument for a viral license like the GPL. You certaintly don't want to release a product that someone else can hijack and cut you off from getting future dividends.
So what will the German government do? Releasing it is probably in their best interest, especially if they want the rest of the EU to break from Microsoft. All that said, though... their development schedule seems to be highly ambitious. Maybe they could start with Aethera or Evolution. (Maybe I should go read the article.)
Re:may god forgive him for what he has unleashed
on
The First Smiley :-)
·
· Score: 1
Smilies are just another marker to indicate
information that we normally express with
supersegmentals (stress, intonation, etc.) in
spoken speech. In formal writing, we use
question marks (?), exclamation points (!),
"pretentious quotes", and italics to
capture such information. Unfortunately,
these traditional mechanisms are not broad enough
to effectively encode all the nucances we express
with supersegmentals and body language. This is
one reason that written language is very different
from spoken language.
The smilie mechanism allows
us to more directly represent our spoken language,
and is very appropriate for a textual medium
where people want to encode tounge-in-cheek
jokes, lighthearted insults, and other such
emotional artifacts without wasting a lot of
time trying to do it formally.
The 'plot' of the episodes isn't the strong point, the development of the characters is.
Well said, and I think it applies to most works of
fiction, not just Star Trek and sci-fi. Consider
that while some Great Literature(TM) is heavily plot-centric
(The Count of Monte Cristo comes to mind),
most Great Literature relies on the conflicts and
growth experienced by its characters. It is the
characters themselves who go on to
transcend--to live outside--the novel
(be they Raskolnikov, Hamlet, Ivanhoe, or any other Great Protagonist).
Come to think of it, my favorite piece of sci-fi, Schismatrix,
relies on very little plot: it's more of an artifical
biography of political operative set in a decadent space-opera future.
Re:The best printer on Earth (that we can afford)
on
Printer Makers' Ploys
·
· Score: 1
I bought a Brother 1470N a few months back... it's really impressive
compared to the low end HP's. Supports damn near
every printer/network protocal and includes
Linux/unix instructions (buried) in the
documentation. It can be configured via web
and telnet (and also with the included windows software).
Of course, I've used it less than anticipated, but
it looks like they made an honest product nonetheless...
definetly worth the overhead they charge for network printers.
The story's been slashdotted, but I wonder what
unit of time they would decimalize. Asimov, in
his novel Nemesis, suggested that days
be the basic unit of time: a milliday would be 86.4 seconds,
a centiday would be 14.4 minutes, a kiloday would be 2.7 years, etc.
One variation would be to make the basic "day" 25 hours long
to correlate with the natural human sleep cycle (e.g. the cycle humans adopt in the absence of external cues, such as sunlight). But, of course,
if we (the human race) get enough people far enough away from earth
to make decimalized time necessary and convenient, we will likely have
started to tinker with our genetics enough to break the universality of the 25 hour sleep cycle.
I remember anxiously waiting two weeks to see
how The Onion would deal with September 11th.
They delivered a solid, well-rounded satyrical
critique of the situation
(especially with "U.S. Vows To Defeat Whoever It Is We're At War With"
and "Gen X Irony, Cynicism May Be Permanently Obsolete"
and "A Shattered Nation Longs To Care About Stupid Bullshit Again").
However, I couldn't help but think that the stories
were basically well-behaved, staying with certain
unseen social guidelines. As an example, consider
how they handled the religious aspect of the
hijackings: neither "God Angrily Clarifies
'Don't Kill' Rule" nor "Hijackers Surprised To Find Selves In Hell"
pulls those gut-wrenching, introspective punches
that we expect out of satire. Certainly nothing
like their God Answers Prayers Of Paralyzed Little Boy: 'No,' Says God story.
Most non-typical is the Hijackers in Hell article:
it revels in describing the torments
of the hijackers, on and on, as if The Onion's
staff were venting their own anger in a gluttony
of torture fantasies. Instead of challenging
the social consenus here, they re-affirm and
encourage it.
The Onion handled September 11th in a reserved, thoughtful way.
I was kinda hoping for a more twisted, cynical
view on the situation.
As I see it, programming is less of an attempt to
harness some particular conceptual model and more
of an attempt to work with multiple inter-related
models simultaneously.
Consider your basic procedural language. For a simple
C program that interacts with the user through
stdin/stdout, a programmer must consider at least
three models or views of the program: the memory
model, the textual model, and the user model.
The user model is the simplest: the programmer
must relate the printf/scanf's in the code with
the actual output on the screen. Programmer's
frequently employ the user model to observe
the program execute through time (ahh, printf's...
the poor man's debugger). The textual model
is the code itself (e.g., what line are we on? how is
this complicated nested expression executing? what
does this macro expand to?). With the memory model,
the programmer must consider how his/her code
is altering the stack and heap.
Modern languages and processors do a great deal
of magic providing us with this nice
stack concept, but you generally have to start
using it awhile before you understand the value and
intent of it. One idea would be to force students to
solve problems without using subroutines... just lots
of gotos. This would automatically reduce the number
of conceptual models from 3 to 2; once the student
runs into the limitations of a goto-only program, they
may welcome the idea of a stack and understand it
intuitively.
Back to the point: in a single hour, you might go back and forth b/t
high-level object models, quickly sketched
flowcharts, cute little graphs and charts describing
your problem domain, roughed-out pseudocode, a
gdb window, a log file, and the code itself, all in
attempt to expand, understand, and debug the program.
None of these views completely captures what the
program is doing on all levels. I contend that the programmer
shifts between them while exploring the problem and its possible solutions.
Now... how to teach the student to do this... hmm. Good question.
Maybe now some young Computer Science student
can spend more time on developing a good overall
program, instead of spending a bunch of time
writing simple things like their own sorting
routine.
Bullshit! That student will be overwhelmed at the
idea of writing a loop. Toss them some man pages
and ask them to open a file handle... they'll be
pissing their pants.
You're all full of good intentions, Slashdot, but
goddamnit if your ignorance isn't overwhelming.
Look, there's something about programming--indeed,
there's something about working with any formal
system--that you just can't get without having
the guts to tediously concentrate on it while
learning the basic "physics" of the system.
During this process, many students will bail and
get others to do the hard thinking for them,
under the pretense of "groupwork". Sure... I think instruction, interaction, and
guidance during the process of "figuring out
the physics of a formal system" can be helpful;
but my overriding claim is that many undergraduates need
a little extra discipline to get the most out of their
education. Group work does not become profitable
as an en masse policy until the student has moved
on to dealing with the higher-level "behavioral"
aspects of a system.
Take chess as an example:
the first thing you teach a new player is the
rules of the game, which mostly consists of
allowable piece movements. There's no intresting
conversation to be had at this level b/t fellow
learners, and there would be no reason, if this
were an academic subject, to let fellow learners talk
to each other. True, two learners committed to
the integrity of their own education could learn
faster (perhaps... the time-overhead of communication could exceed the time-benefit), but this advancement would be
undermined by all the learners who pawn off this
(mildly) arduous task on someone else. Once
everybody knows the physics of the system (be
it chess or programming), then intresting things
can happen. People start playing real games and start writing
real programs that solve semi-real-world problems.
"Behavior" of these respective systems becomes
something to talk about... something where even
the master can gain new insight. The chess people
will start to debate opening moves and will experiment
with different dominance tactics. The programming
people will start stressing the semantics of their programming
language as they invent clever hacks and so forth.
The poster's speculation that intro CS students
will create real programs if allowed to do groupwork
is as naieve as supposing that students of geometry
will start finding novel theorms if allowed to
collaborate on their proofs homework.
Re:One thing I've NEVER seen here....
on
Fair IP Laws?
·
· Score: 1
Every other industry has dealt with patents for years.
It is time for the software developers as a whole to do so as well.
Incorrect. If society is to grant patents, patents must be granted
only where it benefits society. The nature of our patent system should
be up to WE THE PEOPLE, and there are three direct value-metrics to
consider, as well as several indirect consequences we may want to
think about. I'll make a list off the top of my head:
The value to society of the patent disclosure. One of
the big problems with the Amazon One-click patent is the lack of
value in the disclosure. Amazon claimed to have spent a lot of
money "inventing" their one-click system, but the feat is doable
by any experienced programmer. Value of disclosure == US$0. You
state that "patents are most necessary in areas where it is easy
to copy inventions." I contend that this is *not* true for
inventions which are easily copied given their functional
description, and this is what makes many software patents so
objectionable.
(To contrast "functional" with "behavioral" or "structural", I'll
use the refrigerator as an example. Functional aspects describe
the problems a device is trying to solve (e.g., "keep my food
cold") wheras behavior and structure describe how the device
solves that problem ("get some freon, a compressor, and a big
vaccum-isolated box").)
When a practicioner of the art can take a functional description
and produce a an implementation that fulfills that description,
the invention is "obvious". Problems that require non-obvious
solutions, even if they have are easily duplicated, may be worthy
of protection. However... an easily duplicated invention warrants
less protection because the value of disclosure is less.
The value to society of accelerated progress.
This is often touted as the main benefit of the patent
system. Prehaps. We must not forget that valuable disclosures can
also spurn progress when they prevent useful knowledge from
slipping into the chasm of trade secret. We must carefully study
how to optimize the acceleration of progress (if we, as a society,
believe that technological progress is valuable). This is
doable... I'm reminded of an economic model built to predict
optimal patent terms.
The value to society of rewarding the inventor, of punishing
subsequent independent inventors, and of dealing with all the
lawyers and paperwork.
Do you want to live in a world where you can solve a big problem
and make lots of money? Sure. Do you want to live in a world where
you can unknowingly violate patents and lose your business over
it? Nope. Finally, there's a large overhead price to the patent
system: all that litigation, all those offices full of IP lawyers,
all the governmental administration, oversight, and
enforcement... it affects us all.
Don't just tell programmers to "grow up" and accept the fantastically
impovershied patent system we have. I'd rather live in a world where
I'm free to think with my machines and share those thoughts, even if
it doesn't bring me any money.
I don't know how quickly exposure to radition
can induces sickness, but my idea would be to
surround an interior passageway with highly toxic
radioactive stuff. If future peoples make it
through the initial barriers and signage, they
will encounter this room and fall dead (hopefully).
This could prevent larger-scale catastrophes where
the radioactive materials are distributed throughout
a culture and cause mass sickness/death.
Yah... there's lots of thing wrong with this, but
it bears consideration.
Re:Charlatans Exist Because We Love Them
on
The Magic Box Hoax
·
· Score: 0, Offtopic
To say that skeptics are "healthy and reasonable" while insinuating that cynics are not, you are proving yourself, a skeptic, to be close-minded.
How is making an assertion being close-minded?
I believe that non-smokers have good lungs in general
and that heavy smokers do not. Is that close-minded
too? No. Being close-minded is being unwilling to
consider alternatives when reasoning is presented for
them. Your parent poster is not close minded unless you
provide good evidence to counter his assertion and
he persists to advocate it despite finding no counter
to your counters. (Of course, some would say he is
correct by definition. At least to me, cyncic implies
skeptisicm + pessimism + "being perpetually bitter" which doesn't
sound too healthy.
As an aside, it is probably true that a certain degree of close-mindedness is necessary
for living in this world. It may be a fundamental
part of being "intelligent" (which is something of a
misnomer: intelligence isn't about being correct or
finding Truth, it's about being jumpy if you're the prey
and ruthless if you're the predator (e.g., making optimal
decisions in the time available to make them...
exahustive search is not intelligence)).
Re:Charlatans Exist Because We Love Them
on
The Magic Box Hoax
·
· Score: 1
Bittle's argument reminds me of Edgar Allen Poe's
assertion that a certain chess-playing machine
was a hoax because "If a machine can play chess,
it must work by perfect logic, and if it worked by
perfect logic, it would never lose." Since the machine
in question occassionally lost, Poe concluded it
was being rigged by a human. Today, of course,
we know that machines can play chess, and they can
be quite good at it, given enough processing power,
but they are still quite fallible. Poe's argument doesn't
work because it's just a bunch of semantic sugar glued
together without a rigourous formal model behind it.
Likewise, Bittle's argument (judging from the one
paragraph you give about it) doesn't make sense because
it lacks an appropriate concept. Let me try and give
it one: suppose that the human mind consists of (i) a
big table of assertions marked with a degree of truth
["the sky is blue" is very true, "pigs can fly" is very false,
"democracy works" is sorta true, etc.]; (ii) a reasoning
architecture that maintains the truth table; and (iii)
percepts and actuators that allow I/O with the outside
world [vision, hearing, sight, neuromuscular control, etc.].
Now, let's argue that component (ii), the reasoning
architecture, is shared by all human beings.
Now, with this model, Bittle could make a coherent
argument. He would define a skeptic to be someone
that maintains no truth to be "absolutely true", and,
evidently, has, in his knowledge base (KB), the following
assertion marked as absolutely true:
"for all x, x isa assertion in my KB implies x is not marked
as 'absolutely true'". Obviously, there's an internal
inconsistency in the skeptic's KB.
Whatever you think of the above argument, at least
it gives us something to reason with. We can object
to the model, we can object to the definitions that I
assume Bittle would give in the context of the model,
but at least we're not lost in hopeless semantic
sugar word games.
This is the ghost in the machine myth. Many believe that human intelligence is somehow "special" in a way that mechanical devices can't be, as if the brain were made of more than mere matter that follows predictable laws of physics. It's a common view. I would wager that >90% of the population believes it. Virtually every religion embraces and teaches it, either explicitly or implicitly. People want to believe that their identity is somehow transcendent to the universe.
We've seen this before with vitalism: people used to be convinced that living matter was somehow "special" and different than non-living matter in a fundamental way that dips below physics. Now we know that organic life is just a special arrangement of atoms that allows those atoms to be self-replicating.
Obviously, a living cell is a particulary complex arrangements of atoms. The difference between the animate and the inanimate is huge: we relate to grizzly bears much differently than we do to a pile of rocks. Prehaps this is why our intuition is so misinformed... it's not representationally meaningful to think of a grizzly bear as being composed of dirt, air, and water, even though it is.
The same thing applies to intelligence. We have every indication that brains cause minds. We've mapped which areas of the brain correspond to which areas of functionality. Emotions can be altered predictably with drugs. Every aspect of a near death experiences (NDE) can be triggered with chemicals, sensory deprivation (IIRC), a sharp blow to the head, or something mundane and physical. Ultimately, the experience known as self and the sensation of free will boil down to being just a special set of computations that can run on any Turing Machine or x86 with enough memory.
Of course, the complexity difference b/t you and an Unreal bot is several orders of magnitude. It's not representationally meaningful for me to think of you as the same thing... there's just not as much satisfaction in fragging a bot. :-)
It's a legitimate concern. Emphasis on learnability tends to result in programs that pamper the novice but hender the expert. Experts deserve usability too! Can you give me a nice GUI to administer my webserver? Great! But I want (1) textual manipulation [e.g., of config files], (2) command-line manipulation (via CLI utilities), and (3) programmatic manipulation (via libraries) as well. And I also want documentation for all of the above.
- GUI: nice for when you shouldn't have to think
- CLI: nice for remote access, automation, inspection, and hooking things together
- Libraries: only for creating new apps on top of the old one
- Text: nice for use in conjunction with CLI,
also good for backup, versioneering, inspection, hacking on new functionality,
sending to someone else for discussion/assistance, etc.
Is it possible to have it all? Yes! And in fact, this happens often in OSS.... apps tend to be developed in layers. You could argue that this is happening more and more with Windows as well, except that Windows is building top-down and OSS is building bottom-up. Both products have a long way to go. As an example, here's a simple acid test:- You have to change one word in a text file.
You've never seen a computer before.
Should you use windows or unix?
- You have to change one word in 200 text files.
You use a computer everyday of your life.
Should you use windows or unix?
Answer: use Windows for case 1 (if you find vi or emacs, you'll freak), Unix for case 2 (I did this task recently with sed and bash... no problemo).Both systems have a long ways to go in terms of usability. Call me elitist for saying so, but the bottom-up approach would ultimately lead to better usability if our education systems (at work, primary school, college, etc.) supported it. Sure... let's have web/email/word-processing appliances as well. And definetly, let's adhere to standards for GUI-interaction and CLI argument-parsing and good UI practices. But let's also expect more involvement from white-collar workers who are going to spend 25% of their lifetime in front of a full-fledged, general-purpose computer. Don't spoon-feed them if it means cutting out lower-level access. That just leads to problems, hacks, and administrative overhead down the road.
Let users attack problems at multiple levels of representation.
It's a strongly-type, object-oriented, Java/C++ descendent. It breaks no new ground, but it does have some nice incremental improvements over Java:
- xml-based documentation format (similar to javadoc, but more intuitive).
- richer collection of primitive data types
- conditional compilation macros
- properties (intead of get/set methods)
- automatic boxing/unboxing of primitive types [e.g., an int can be cast to an object]
- foreach() construct
- proper enumerations
- delegates (reduces verbosity when making one-method interfaces)
- attributes mechanism for annotating assemblies/classes/members
with meta-data (instead of using javadoc tags as a kludge)
Some off the above features have their dubious aspects. The really bad features (IMO) are:- fewer constraints on how things in your code (namespaces, classes)
must be arranged with things in your filesystem (directories, files)
- wierd behavior of virtual/override/new virtual
(I would provide you an example, but the lameness filter wouldn't
let me post C# code).
The bad points of C# are:- less disciplined than Java
- no dynamic inner classes (but Java didn't have them at first either, IIRC)
- no anonymous inner classes (maybe wrong on this one)
- less open source code, existing support, and tools than Java
But all in all, some of these things will improve with time. It should also be noted that the predominant IDE for C# (VisualStudio.NET), the documentation, and the core API's all suck. Especially the documentation... I opened up some Javadoc web pages after working withUltimately, C# may be the better language, but not by much. I can't help but look at Smalltalk and Scheme and think that these C-derivative language designers just don't get it. What I really want to see is a new generation of meta-languages that allow complex relationships and design patterns to be expressed at a high level in a compact fashion.
Yep... the RIAA buddies must have slept through their courses in basic information theory. INFORMATION IS AN INTRINSICIALLY ABUNDANT RESOURCE; IT DOES NOT FIT TRADITIONAL SCARCITY ECONOMICS.
Here's a hint: the only truly scarce things are (1) artist talent and (2) consumer attention. But not information: duplication is free, and transmission is near-free. Your attempts to enforce an artificial scarcity on raw information will always fail. Maybe, just maybe, if you throw enough money into buying legislatures and cryptographic snake-oil, you'll be able to pull a better bottom-line for awhile. But is a police state good for CD sales? Is technological and cultural stasis good for CD sales? You might f*ck consumers and artist for a little while, you might f*ck freedom and liberty, you may even f*ck open source and technological progress, but your doom is in the wind. You are dinosaurs trying to adapt to fundamental alternations in the climate by using the same tired old strategies. Your extinction is ensured... you will be undercut by smaller, fiercer mammals who move nimbly in and out of micro-niche markets, instantiating and destroying endless product-cycle generations of "globally local" celebrities.
You're so worried about John and Mary trying to relax to pirated music and movies in front of their cramped home-office/kitchen/basement/bedroom PC that you don't see anime fanboys wanting to catch the JPop of Japan, gentriefied college youth straining to hear the rhythms of Indian instrumentalists, or coven gaming clans wanting vocal FX. You've been so busy promoting homogenity and pre-fabbed, broad-market tastes that you cannot conceive of actually encouraging people to build their own tastes and biases so that you can satisfy them with realtime, subscription-based, computer-AI-customized, satellite-delivered content. Instead of replacing the radio stations, you pay them gobs of money to enforce your artificial monopoly. Society can justify your existance less and less as time goes on. Soon, you will not be needed at all. No pretentiously serious "business strategy" will help you; your only salvation will be a frantic search for a completely radical shift in thinking.
But you've always been too staid and afraid to become insanely great. There's risk in that. But stasis is sure death.
- provide quality binary drivers
- promise to open-source the code in 2 or 3 years (4 max)
- promise that above code will not be patent-encumbered
- promise to release gooey low-level documentation at the same time
The above might be a viable model for many commercial software projects. Preferably, a third party (such as the FSF or Software in the Public Intrest) would hold the code and documentation in escrow. This is premised on the idea that releasing 3 year-old hardware drivers does not provide your competitors with much of an advantage... I don't know whether or not that's the business reality.In the Southeast U.S., I speak to a lot of Christians who support Israel because they believe:
These beliefs have had dramatic long-term effects on US foreign policy, and they probably play a continuing role in how the U.S. sees Israel.
Personally, I would like to understand these things better; I've concluded that a lot of the stuff I was raised to believe is somewhat careless myth, but I don't want to err on the "America is totally evil" side either. Objectivitity is hard to come by... history seems to be a mix of motives and economics of varying degrees of integrity and naievety.
Mathematically, it works out that any gravity-driven trip through the earth would take about 42 minutes (IIRC). This would be true whether you bored a hole from New York to Bejing or New York to Seattle or New York to Washington D.C. The shorter the trip, the less speed you obtain from free-fall (because you're not falling straight down... you're cutting across the Earth's gravitational well)... the result is that all such trips take the same amount of time.
Of course, this all assumes a nice, frictionless, non-raging-inferno, non-shifting-continential-plates environment. :-)
Sage advice. When Microsoft first released Word/Excel (I can't remember which it is... perhaps both), they targeted Apple customers first. They appealed to the rebellious image of Macintosh, taking the attitude that "our product totally smashes the offerings from Correl/Lotus". The marketing technique was effective: Mac users adopted Microsoft software for their word processor/spreadsheet.
When the Windows version was ready, the marketing department shifted their tactics. They figured the rebellious image that insulted their competitors would also insult their customers (e.g., because PC customers were quite aquainted with the offerings of Correl/Lotus). Instead, Microsoft took a different attitude: "Correl/Lotus were pretty good in their day, but now we have newer, better things to offer!" This approach flattered their customers' previous purchasing decisions, and encouraged them to advance w/Microsoft. Microsoft worked the attitude both ways and profitted immensely.
Let's steal a play from their book and promote Linux/open source as "the obvious" commodification of common software. So yeah... Microsoft was helpful in bringing affordable computing to the masses back in the 80's and 90's, but now, like any number of things before it (intercontinental travel, roads, indoor toilets, long distance calling, processor power), the operating system has become a commodity that you shouldn't have to pay for over and over again (beyond bandwidth and stability maintenance). If you are an ambitious intermediate computer-user, you can graduate to any number of open-source unix-based operating systems (e.g., that run on Linux, BSD, or GNU HURD) that provide you with power and flexibilty (with the added time-cost of having to learn some very techincal things).
Let's tone down the rebelliousness and make OSS possibilities feasible for our customers. But unlike Microsoft, let's keep our evangelism somewhat honest... :-)
This joke references traditional Hindu beliefs, but it doesn't do so maliciously. I doubt this would offend Hindus.
In addition, I believe that even some offensive jokes can be deemed non-racist/non-hateful; my proof is anecdotal: my friends have occassionally made jokes about me that I at first found offensive but on further reflection, I had to agree that the jokes were pretty accurate. The whole experience is much difference than being the butt of a spiteful joke. Racism or hate is pretty much in the attiude of the joke-holder.
Collectively, of course, even innoncent or naive jokes can have a bad effect on a group... but that's a different subject entirely.
It kind of scares me that people will jump on an innoccuous wordplay and call it "racist". Every age has its witchhunts. (Though I agree that the joke may be overrated at +5.)
Too much choice can be a bad thing. Instead of endorsing endless variations of the same concept, OSI's purpose should encourage everyone to congregate on a few core licenses (GPL, BSD, etc.). Furthermore, it should be possible to take any mixture of software released under OSI-approved licenses and create a new piece of software that can be redistributed together (even if it's under the GPL).
Can someone explain how the OSI is doing something good for the community by endorsing incompatible license variations?
Kinda like x2x, except that it will be years before you can do X11 network tricks on Windows.
This is one strong argument for a viral license like the GPL. You certaintly don't want to release a product that someone else can hijack and cut you off from getting future dividends.
So what will the German government do? Releasing it is probably in their best interest, especially if they want the rest of the EU to break from Microsoft. All that said, though... their development schedule seems to be highly ambitious. Maybe they could start with Aethera or Evolution. (Maybe I should go read the article.)
The smilie mechanism allows us to more directly represent our spoken language, and is very appropriate for a textual medium where people want to encode tounge-in-cheek jokes, lighthearted insults, and other such emotional artifacts without wasting a lot of time trying to do it formally.
Well said, and I think it applies to most works of fiction, not just Star Trek and sci-fi. Consider that while some Great Literature(TM) is heavily plot-centric (The Count of Monte Cristo comes to mind), most Great Literature relies on the conflicts and growth experienced by its characters. It is the characters themselves who go on to transcend--to live outside--the novel (be they Raskolnikov, Hamlet, Ivanhoe, or any other Great Protagonist).
Come to think of it, my favorite piece of sci-fi, Schismatrix, relies on very little plot: it's more of an artifical biography of political operative set in a decadent space-opera future.
I bought a Brother 1470N a few months back... it's really impressive compared to the low end HP's. Supports damn near every printer/network protocal and includes Linux/unix instructions (buried) in the documentation. It can be configured via web and telnet (and also with the included windows software). Of course, I've used it less than anticipated, but it looks like they made an honest product nonetheless... definetly worth the overhead they charge for network printers.
One variation would be to make the basic "day" 25 hours long to correlate with the natural human sleep cycle (e.g. the cycle humans adopt in the absence of external cues, such as sunlight). But, of course, if we (the human race) get enough people far enough away from earth to make decimalized time necessary and convenient, we will likely have started to tinker with our genetics enough to break the universality of the 25 hour sleep cycle.
I thought the ccTLD's weren't administered by ICANN. Did they grab control at some point? I remember them trying to do so.
However, I couldn't help but think that the stories were basically well-behaved, staying with certain unseen social guidelines. As an example, consider how they handled the religious aspect of the hijackings: neither "God Angrily Clarifies 'Don't Kill' Rule" nor "Hijackers Surprised To Find Selves In Hell" pulls those gut-wrenching, introspective punches that we expect out of satire. Certainly nothing like their God Answers Prayers Of Paralyzed Little Boy: 'No,' Says God story. Most non-typical is the Hijackers in Hell article: it revels in describing the torments of the hijackers, on and on, as if The Onion's staff were venting their own anger in a gluttony of torture fantasies. Instead of challenging the social consenus here, they re-affirm and encourage it.
The Onion handled September 11th in a reserved, thoughtful way. I was kinda hoping for a more twisted, cynical view on the situation.
Consider your basic procedural language. For a simple C program that interacts with the user through stdin/stdout, a programmer must consider at least three models or views of the program: the memory model, the textual model, and the user model. The user model is the simplest: the programmer must relate the printf/scanf's in the code with the actual output on the screen. Programmer's frequently employ the user model to observe the program execute through time (ahh, printf's... the poor man's debugger). The textual model is the code itself (e.g., what line are we on? how is this complicated nested expression executing? what does this macro expand to?). With the memory model, the programmer must consider how his/her code is altering the stack and heap.
Modern languages and processors do a great deal of magic providing us with this nice stack concept, but you generally have to start using it awhile before you understand the value and intent of it. One idea would be to force students to solve problems without using subroutines... just lots of gotos. This would automatically reduce the number of conceptual models from 3 to 2; once the student runs into the limitations of a goto-only program, they may welcome the idea of a stack and understand it intuitively.
Back to the point: in a single hour, you might go back and forth b/t high-level object models, quickly sketched flowcharts, cute little graphs and charts describing your problem domain, roughed-out pseudocode, a gdb window, a log file, and the code itself, all in attempt to expand, understand, and debug the program.
None of these views completely captures what the program is doing on all levels. I contend that the programmer shifts between them while exploring the problem and its possible solutions. Now... how to teach the student to do this... hmm. Good question.
Bullshit! That student will be overwhelmed at the idea of writing a loop. Toss them some man pages and ask them to open a file handle... they'll be pissing their pants.
You're all full of good intentions, Slashdot, but goddamnit if your ignorance isn't overwhelming. Look, there's something about programming--indeed, there's something about working with any formal system--that you just can't get without having the guts to tediously concentrate on it while learning the basic "physics" of the system. During this process, many students will bail and get others to do the hard thinking for them, under the pretense of "groupwork". Sure... I think instruction, interaction, and guidance during the process of "figuring out the physics of a formal system" can be helpful; but my overriding claim is that many undergraduates need a little extra discipline to get the most out of their education. Group work does not become profitable as an en masse policy until the student has moved on to dealing with the higher-level "behavioral" aspects of a system.
Take chess as an example: the first thing you teach a new player is the rules of the game, which mostly consists of allowable piece movements. There's no intresting conversation to be had at this level b/t fellow learners, and there would be no reason, if this were an academic subject, to let fellow learners talk to each other. True, two learners committed to the integrity of their own education could learn faster (perhaps... the time-overhead of communication could exceed the time-benefit), but this advancement would be undermined by all the learners who pawn off this (mildly) arduous task on someone else. Once everybody knows the physics of the system (be it chess or programming), then intresting things can happen. People start playing real games and start writing real programs that solve semi-real-world problems. "Behavior" of these respective systems becomes something to talk about... something where even the master can gain new insight. The chess people will start to debate opening moves and will experiment with different dominance tactics. The programming people will start stressing the semantics of their programming language as they invent clever hacks and so forth.
The poster's speculation that intro CS students will create real programs if allowed to do groupwork is as naieve as supposing that students of geometry will start finding novel theorms if allowed to collaborate on their proofs homework.
Incorrect. If society is to grant patents, patents must be granted only where it benefits society. The nature of our patent system should be up to WE THE PEOPLE, and there are three direct value-metrics to consider, as well as several indirect consequences we may want to think about. I'll make a list off the top of my head:
One of the big problems with the Amazon One-click patent is the lack of value in the disclosure. Amazon claimed to have spent a lot of money "inventing" their one-click system, but the feat is doable by any experienced programmer. Value of disclosure == US$0. You state that "patents are most necessary in areas where it is easy to copy inventions." I contend that this is *not* true for inventions which are easily copied given their functional description, and this is what makes many software patents so objectionable.
(To contrast "functional" with "behavioral" or "structural", I'll use the refrigerator as an example. Functional aspects describe the problems a device is trying to solve (e.g., "keep my food cold") wheras behavior and structure describe how the device solves that problem ("get some freon, a compressor, and a big vaccum-isolated box").)
When a practicioner of the art can take a functional description and produce a an implementation that fulfills that description, the invention is "obvious". Problems that require non-obvious solutions, even if they have are easily duplicated, may be worthy of protection. However... an easily duplicated invention warrants less protection because the value of disclosure is less.
The value to society of accelerated progress.
This is often touted as the main benefit of the patent system. Prehaps. We must not forget that valuable disclosures can also spurn progress when they prevent useful knowledge from slipping into the chasm of trade secret. We must carefully study how to optimize the acceleration of progress (if we, as a society, believe that technological progress is valuable). This is doable... I'm reminded of an economic model built to predict optimal patent terms.
The value to society of rewarding the inventor, of punishing subsequent independent inventors, and of dealing with all the lawyers and paperwork.
Do you want to live in a world where you can solve a big problem and make lots of money? Sure. Do you want to live in a world where you can unknowingly violate patents and lose your business over it? Nope. Finally, there's a large overhead price to the patent system: all that litigation, all those offices full of IP lawyers, all the governmental administration, oversight, and enforcement... it affects us all.
Don't just tell programmers to "grow up" and accept the fantastically impovershied patent system we have. I'd rather live in a world where I'm free to think with my machines and share those thoughts, even if it doesn't bring me any money.
Yah... there's lots of thing wrong with this, but it bears consideration.
How is making an assertion being close-minded? I believe that non-smokers have good lungs in general and that heavy smokers do not. Is that close-minded too? No. Being close-minded is being unwilling to consider alternatives when reasoning is presented for them. Your parent poster is not close minded unless you provide good evidence to counter his assertion and he persists to advocate it despite finding no counter to your counters. (Of course, some would say he is correct by definition. At least to me, cyncic implies skeptisicm + pessimism + "being perpetually bitter" which doesn't sound too healthy.
As an aside, it is probably true that a certain degree of close-mindedness is necessary for living in this world. It may be a fundamental part of being "intelligent" (which is something of a misnomer: intelligence isn't about being correct or finding Truth, it's about being jumpy if you're the prey and ruthless if you're the predator (e.g., making optimal decisions in the time available to make them... exahustive search is not intelligence)).
Likewise, Bittle's argument (judging from the one paragraph you give about it) doesn't make sense because it lacks an appropriate concept. Let me try and give it one: suppose that the human mind consists of (i) a big table of assertions marked with a degree of truth ["the sky is blue" is very true, "pigs can fly" is very false, "democracy works" is sorta true, etc.]; (ii) a reasoning architecture that maintains the truth table; and (iii) percepts and actuators that allow I/O with the outside world [vision, hearing, sight, neuromuscular control, etc.]. Now, let's argue that component (ii), the reasoning architecture, is shared by all human beings.
Now, with this model, Bittle could make a coherent argument. He would define a skeptic to be someone that maintains no truth to be "absolutely true", and, evidently, has, in his knowledge base (KB), the following assertion marked as absolutely true: "for all x, x isa assertion in my KB implies x is not marked as 'absolutely true'". Obviously, there's an internal inconsistency in the skeptic's KB.
Whatever you think of the above argument, at least it gives us something to reason with. We can object to the model, we can object to the definitions that I assume Bittle would give in the context of the model, but at least we're not lost in hopeless semantic sugar word games.