|
|
 |
January 15, 2003
David Weinberger on the moral shape of cyberspace
Last night at MIT I attended an extremely thought-provoking talk by David Weinberger -- author of Small Piece Loosely Joined -- on the moral shape of cyberspace.
Essentially, he argued that morality in the "real" world is created because we live in a shared world, and are constantly aware of each other. Merely being aware of each other is an act of selflessness; it means we're constantly getting outside of ourselves when we pay attention to others. (As he notes, this theory is very much at odds with currently popular ideas about morality, which start by assuming we're all atomistic individuals -- and which thus puzzle over why we act in altruistic or selfless ways.)
Intersestingly, Weinberger argues that the web has a similar morality built into it, via the whole concept of links. A link, as Google has so profitably discovered, is a piece of social glue -- someone calling attention to someone else. It thus mirrors the constant pinging of each other that takes place in the real world, with everyone being constantly (sometimes generously, sometimes nervously, sometime angrily) aware of each other's existence, and shifting our behavior accordingly.
Weinberger put some notes up about it on his weblog:
Every time I put in a link to a site, I am sending people away from my site, a little act of selflessness and generosity. The Web is characterized by generosity throughout. The Web is a shared world created out of shared interests. It is fundamentally connected, sympathetic and moral.
Obviously, many immoral awful things occur on the Web. But its architecture reflects our moral nature. And it's exciting to so many of us because of the promise it offers for moving the species forward not only technologically but also morally.
QUESTIONS FOR DISCUSSION
Are we more or less moral online? Are we the same?
Is the Web a reflection of who we are or a reflection of our "better nature."
Is there a developing online ethics or ethos? In what is it rooted?
Can a technology be moral or immoral, or do the terms not apply?
Is the Internet political? Does the value-free transmission of bits have its own value? What did the Taliban make of the Internet? China? Fundamentalists? Are they wrong?
What's the best we could hope for (= work for) WRT the Web?
UPDATE: Weinberger has written an expanded version of these notes based on the talk, which is extremely cool. It boils his thesis down to a neat aphorism:
In a nutshell: The Internet is about truth and the Web is about morality.
Posted by Clive Thompson at January 15, 2003 01:00 PM
Trackback Pings
TrackBack URL for this entry: http://www.collisiondetection.net/mt3/mt-tb.cgi/185
Listed below are links to weblogs that reference David Weinberger on the moral shape of cyberspace:
Nice weblog, keep up the good work!
achat de téléphone portable, logo couleur, logos couleur, logos couleurs, logos animés, logos animé, logo animé, sonneries hifi, sonnerie hifi, sonnerie hi fi, sonneries hi fi logo en couleur, composer une sonnerie, logo pour portable, compositeur de sonnerie, logo et sonnerie, image portable, photo portable, mélodie, télécharger sonnerie, composition sonnerie, sonnerie à composer sonneries composer
Posted by: portable at January 8, 2004 8:19 AM
Posted by: Online Casino at January 16, 2004 2:40 AM
This will allow us to use a few functions we didn't have access to before. These lines are still a mystery for now, but we'll explain them soon. Now we'll start working within the main function, where favoriteNumber is declared and used. The first thing we need to do is change how we declare the variable. Instead of
Posted by: Henry at January 20, 2004 11:53 AM
To address this issue, we turn to the second place to put variables, which is called the Heap. If you think of the Stack as a high-rise apartment building somewhere, variables as tenets and each level building atop the one before it, then the Heap is the suburban sprawl, every citizen finding a space for herself, each lot a different size and locations that can't be readily predictable. For all the simplicity offered by the Stack, the Heap seems positively chaotic, but the reality is that each just obeys its own rules.
Posted by: Rebecca at January 20, 2004 11:53 AM
Let's take a moment to reexamine that. What we've done here is create two variables. The first variable is in the Heap, and we're storing data in it. That's the obvious one. But the second variable is a pointer to the first one, and it exists on the Stack. This variable is the one that's really called favoriteNumber, and it's the one we're working with. It is important to remember that there are now two parts to our simple variable, one of which exists in each world. This kind of division is common is C, but omnipresent in Cocoa. When you start making objects, Cocoa makes them all in the Heap because the Stack isn't big enough to hold them. In Cocoa, you deal with objects through pointers everywhere and are actually forbidden from dealing with them directly.
Posted by: Gawen at January 20, 2004 11:54 AM
This is another function provided for dealing with the heap. After you've created some space in the Heap, it's yours until you let go of it. When your program is done using it, you have to explicitly tell the computer that you don't need it anymore or the computer will save it for your future use (or until your program quits, when it knows you won't be needing the memory anymore). The call to simply tells the computer that you had this space, but you're done and the memory can be freed for use by something else later on.
Posted by: Arnold at January 20, 2004 11:54 AM
Inside each stack frame is a slew of useful information. It tells the computer what code is currently executing, where to go next, where to go in the case a return statement is found, and a whole lot of other things that are incredible useful to the computer, but not very useful to you most of the time. One of the things that is useful to you is the part of the frame that keeps track of all the variables you're using. So the first place for a variable to live is on the Stack. This is a very nice place to live, in that all the creation and destruction of space is handled for you as Stack Frames are created and destroyed. You seldom have to worry about making space for the variables on the stack. The only problem is that the variables here only live as long as the stack frame does, which is to say the length of the function those variables are declared in. This is often a fine situation, but when you need to store information for longer than a single function, you are instantly out of luck.
Posted by: Erasmus at January 20, 2004 11:54 AM
This variable is then used in various lines of code, holding values given it by variable assignments along the way. In the course of its life, a variable can hold any number of variables and be used in any number of different ways. This flexibility is built on the precept we just learned: a variable is really just a block of bits, and those bits can hold whatever data the program needs to remember. They can hold enough data to remember an integer from as low as -2,147,483,647 up to 2,147,483,647 (one less than plus or minus 2^31). They can remember one character of writing. They can keep a decimal number with a huge amount of precision and a giant range. They can hold a time accurate to the second in a range of centuries. A few bits is not to be scoffed at.
Posted by: Howell at January 20, 2004 11:55 AM
When Batman went home at the end of a night spent fighting crime, he put on a suit and tie and became Bruce Wayne. When Clark Kent saw a news story getting too hot, a phone booth hid his change into Superman. When you're programming, all the variables you juggle around are doing similar tricks as they present one face to you and a totally different one to the machine.
Posted by: Rees at January 20, 2004 11:56 AM
But variables get one benefit people do not
Posted by: Pompey at January 20, 2004 11:56 AM
Note first that favoriteNumbers type changed. Instead of our familiar int, we're now using int*. The asterisk here is an operator, which is often called the "star operator". You will remember that we also use an asterisk as a sign for multiplication. The positioning of the asterisk changes its meaning. This operator effectively means "this is a pointer". Here it says that favoriteNumber will be not an int but a pointer to an int. And instead of simply going on to say what we're putting in that int, we have to take an extra step and create the space, which is what does. This function takes an argument that specifies how much space you need and then returns a pointer to that space. We've passed it the result of another function, , which we pass int, a type. In reality, is a macro, but for now we don't have to care: all we need to know is that it tells us the size of whatever we gave it, in this case an int. So when is done, it gives us an address in the heap where we can put an integer. It is important to remember that the data is stored in the heap, while the address of that data is stored in a pointer on the stack.
Posted by: Christian at January 20, 2004 11:57 AM
These secret identities serve a variety of purposes, and they help us to understand how variables work. In this lesson, we'll be writing a little less code than we've done in previous articles, but we'll be taking a detailed look at how variables live and work.
Posted by: Ellen at January 20, 2004 11:57 AM
Posted by: julia at January 24, 2004 8:11 PM
Post a comment
| | |
Nice weblog, keep up the good work!
achat de téléphone portable, logo couleur, logos couleur, logos couleurs, logos animés, logos animé, logo animé, sonneries hifi, sonnerie hifi, sonnerie hi fi, sonneries hi fi logo en couleur, composer une sonnerie, logo pour portable, compositeur de sonnerie, logo et sonnerie, image portable, photo portable, mélodie, télécharger sonnerie, composition sonnerie, sonnerie à composer sonneries composer
Posted by: portable at January 8, 2004 8:19 AM
Nice site. thx.
Posted by: Online Casino at January 16, 2004 2:40 AM
This will allow us to use a few functions we didn't have access to before. These lines are still a mystery for now, but we'll explain them soon. Now we'll start working within the main function, where favoriteNumber is declared and used. The first thing we need to do is change how we declare the variable. Instead of
Posted by: Henry at January 20, 2004 11:53 AM
To address this issue, we turn to the second place to put variables, which is called the Heap. If you think of the Stack as a high-rise apartment building somewhere, variables as tenets and each level building atop the one before it, then the Heap is the suburban sprawl, every citizen finding a space for herself, each lot a different size and locations that can't be readily predictable. For all the simplicity offered by the Stack, the Heap seems positively chaotic, but the reality is that each just obeys its own rules.
Posted by: Rebecca at January 20, 2004 11:53 AM
Let's take a moment to reexamine that. What we've done here is create two variables. The first variable is in the Heap, and we're storing data in it. That's the obvious one. But the second variable is a pointer to the first one, and it exists on the Stack. This variable is the one that's really called favoriteNumber, and it's the one we're working with. It is important to remember that there are now two parts to our simple variable, one of which exists in each world. This kind of division is common is C, but omnipresent in Cocoa. When you start making objects, Cocoa makes them all in the Heap because the Stack isn't big enough to hold them. In Cocoa, you deal with objects through pointers everywhere and are actually forbidden from dealing with them directly.
Posted by: Gawen at January 20, 2004 11:54 AM
This is another function provided for dealing with the heap. After you've created some space in the Heap, it's yours until you let go of it. When your program is done using it, you have to explicitly tell the computer that you don't need it anymore or the computer will save it for your future use (or until your program quits, when it knows you won't be needing the memory anymore). The call to simply tells the computer that you had this space, but you're done and the memory can be freed for use by something else later on.
Posted by: Arnold at January 20, 2004 11:54 AM
Inside each stack frame is a slew of useful information. It tells the computer what code is currently executing, where to go next, where to go in the case a return statement is found, and a whole lot of other things that are incredible useful to the computer, but not very useful to you most of the time. One of the things that is useful to you is the part of the frame that keeps track of all the variables you're using. So the first place for a variable to live is on the Stack. This is a very nice place to live, in that all the creation and destruction of space is handled for you as Stack Frames are created and destroyed. You seldom have to worry about making space for the variables on the stack. The only problem is that the variables here only live as long as the stack frame does, which is to say the length of the function those variables are declared in. This is often a fine situation, but when you need to store information for longer than a single function, you are instantly out of luck.
Posted by: Erasmus at January 20, 2004 11:54 AM
This variable is then used in various lines of code, holding values given it by variable assignments along the way. In the course of its life, a variable can hold any number of variables and be used in any number of different ways. This flexibility is built on the precept we just learned: a variable is really just a block of bits, and those bits can hold whatever data the program needs to remember. They can hold enough data to remember an integer from as low as -2,147,483,647 up to 2,147,483,647 (one less than plus or minus 2^31). They can remember one character of writing. They can keep a decimal number with a huge amount of precision and a giant range. They can hold a time accurate to the second in a range of centuries. A few bits is not to be scoffed at.
Posted by: Howell at January 20, 2004 11:55 AM
When Batman went home at the end of a night spent fighting crime, he put on a suit and tie and became Bruce Wayne. When Clark Kent saw a news story getting too hot, a phone booth hid his change into Superman. When you're programming, all the variables you juggle around are doing similar tricks as they present one face to you and a totally different one to the machine.
Posted by: Rees at January 20, 2004 11:56 AM
But variables get one benefit people do not
Posted by: Pompey at January 20, 2004 11:56 AM
Note first that favoriteNumbers type changed. Instead of our familiar int, we're now using int*. The asterisk here is an operator, which is often called the "star operator". You will remember that we also use an asterisk as a sign for multiplication. The positioning of the asterisk changes its meaning. This operator effectively means "this is a pointer". Here it says that favoriteNumber will be not an int but a pointer to an int. And instead of simply going on to say what we're putting in that int, we have to take an extra step and create the space, which is what does. This function takes an argument that specifies how much space you need and then returns a pointer to that space. We've passed it the result of another function, , which we pass int, a type. In reality, is a macro, but for now we don't have to care: all we need to know is that it tells us the size of whatever we gave it, in this case an int. So when is done, it gives us an address in the heap where we can put an integer. It is important to remember that the data is stored in the heap, while the address of that data is stored in a pointer on the stack.
Posted by: Christian at January 20, 2004 11:57 AM
These secret identities serve a variety of purposes, and they help us to understand how variables work. In this lesson, we'll be writing a little less code than we've done in previous articles, but we'll be taking a detailed look at how variables live and work.
Posted by: Ellen at January 20, 2004 11:57 AM
Posted by: julia at January 24, 2004 8:11 PM