November 20, 2003
With Friendsters like this, who needs Enemysters?
Unless you've spent the last few months living on the moon, you've heard of Friendster -- the funky, upbeat site for hooking up with like-minded, amiable folks. Fittingly, the original investors in Friendster were also, in real life, actual friends themselves: Jonathan Abrams, who runs Friendster, and Reid Hoffman and Marc Pincus, who respectively run the alternate social-networking sites LinkedIn and Tribe.net. All very chummy.
Until, of course, the money comes along -- and the daggers come out. Now that the sites are scrambling for venture capital, the founders are practising all manner of bullet-time CEO jujitsu. While Abram was off securing another $13 million in financing from Benchmark Capital and Kleiner Perkins Caufield and Byers, his pals Hoffman and Pincus were sneaking around behind his back: They formed a limited partnership to secretly buy up a $700,000 patent on the "Six Degrees" technology that underpins all three sites. Obviously, if they own the technology, they could drive Friendster out of business in a flash. As ZDNet reports:
"I didn't involve Jonathan because I thought Kleiner and Benchmark would try to bid me out," Hoffman said. "It's better to be safe than sorry." Hoffman described the Six Degrees patent as "central to this field."
I wonder if Abrams is off erasing the testimonials he wrote on Friendster for his good pals Hoffman and Pincus?
(Thanks to Jeff Heer for finding this one!)
Posted by Clive Thompson at November 20, 2003 12:59 PM
| TrackBack
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.
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.
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.
A variable leads a simple life, full of activity but quite short (measured in nanoseconds, usually). It all begins when the program finds a variable declaration, and a variable is born into the world of the executing program. There are two possible places where the variable might live, but we will venture into that a little later.
When the machine compiles your code, however, it does a little bit of translation. At run time, the computer sees nothing but 1s and 0s, which is all the computer ever sees: a continuous string of binary numbers that it can interpret in various ways.
When the machine compiles your code, however, it does a little bit of translation. At run time, the computer sees nothing but 1s and 0s, which is all the computer ever sees: a continuous string of binary numbers that it can interpret in various ways.
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
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.
That gives us a pretty good starting point to understand a lot more about variables, and that's what we'll be examining next lesson. Those new variable types I promised last lesson will finally make an appearance, and we'll examine a few concepts that we'll use to organize our data into more meaningful structures, a sort of precursor to the objects that Cocoa works with. And we'll delve a little bit more into the fun things we can do by looking at those ever-present bits in a few new ways.
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.