David Weinberger offers his angle on why DRM is bad for humanity; that provokes me to add a few yelps of protest.
For instance, last week’s Sunday New York Times announced (link to abstract only, although the full text was posted for posterity here) that the Music Industry wants to develop a “software bullet” for shooting down illegal downloaders. Observe all that goes unstated here: evidently this software will be able to tell who’s downloading illegally. But let’s say I have a CD of Halley Suitt’s Greatest Hits, and I want an MP3 of Halley warbling “Tiny Dancer”; I could pop the CD into my TiBook and rip it with iTunes, but the word is out that iTunes’ encoder isn’t as good as the Unix-based LAME encoder. What if I don’t know how to work all those geeky Unix-based operations in OS X, but want to download a LAME-ripped copy of “Tiny Dancer”? How will the Magic Anti-Pirate Bullet know that I have already paid all the relevant parties from the ad agency to the payola-junkies to the executives even unto the artist herself? Obviously they can’t; the Magic Anti-Piracy Bullet must operate on the guilty-till-proven-innocent principle.
But that gets me going on another point. Let’s say I download a copy of John Lennon playing “Instant Karma” (among my first 45s — that’s the vinyl equivalent of a CD single, children). Now, I paid John, and I paid Apple for the vinyl and promotion and distribution costs way back in 1970. Does that make me a pirate if I download it now? It’s probably down in a box in the basement now, somewhere, but I can’t put my hand on it.
As a matter of fact, the Music Industry derives an increasing proportion of its revenues from turning over the media on which it publishes the music that it already knows you want. I have paid for some recordings on vinyl, tape, and CD (and soon the Industry will want me to pay again for Super Advanced CDs, which sound better and are, allegedly, hacker-proof). Note where the sanctimonious Industry rhetoric goes in this model: I paid the artist (the ostensible concern of pious RIAA officials) for the recorded performance when I bought the recording for the first time. From then on, nothing I do relative to that recorded performance cheats the artist out of an earned cent.
But the RIAA can’t see any of this, and their DRM enforecement mechanisms won’t see it either. They’re simply not interested in protecting musicians, whatever pious speechifying they do. To that end, they’re willing to presume guilt, to overcharge customers, to spend vast amounts of money on political campaigns (that they wouldn’t need to spend if they weren’t already their customers’ enemies). David has it right — DRM runs rough-shod over some of the most important characteristics of our humanity, and the world will be a worse place for that.
Posted by AKMA at May 13, 2003 03:12 PM | TrackBacki wish *I* had a 45 of instant karma... that'd be pretty badass. too bad we don't have a turn table anyway...
Posted by: nathaniel at May 13, 2003 08:24 PMKiddo, you can have mine — if you can find it.
Posted by: AKMA at May 13, 2003 09:10 PMThanks, Kerry for bringing in your 45 of Marvin Gaye's "Trouble Man." We played it over the PA at Coliseum Books on 59th Street in Manhattan one night.
Reports are that Marvin Gaye was "euthanized" by his father.
Let's hear some more about your "painful right thumb."
RM - Bob Dylan
Highway 61 Revisited (1965)
Oh God said to Abraham 'kill me a son'
Abe said 'man you must be puttin me on'
God said 'no', Abe said 'what'
God say 'you can do what you wanna but
the next time you see me comin you better run'
Well Abe said 'where d'you want this killin done'
God said 'out on Highway 61'
Being able to understand that basic idea opens up a vast amount of power that can be used and abused, and we're going to look at a few of the better ways to deal with it in this article.
Posted by: James at January 12, 2004 06:59 PMEarlier I mentioned that variables can live in two different places. We're going to examine these two places one at a time, and we're going to start on the more familiar ground, which is called the Stack. Understanding the stack helps us understand the way programs run, and also helps us understand scope a little better.
Posted by: Ottewell at January 12, 2004 06:59 PMThis back and forth is an important concept to understand in C programming, especially on the Mac's RISC architecture. Almost every variable you work with can be represented in 32 bits of memory: thirty-two 1s and 0s define the data that a simple variable can hold. There are exceptions, like on the new 64-bit G5s and in the 128-bit world of AltiVec
Posted by: Lambert at January 12, 2004 06:59 PMOur next line looks familiar, except it starts with an asterisk. Again, we're using the star operator, and noting that this variable we're working with is a pointer. If we didn't, the computer would try to put the results of the right hand side of this statement (which evaluates to 6) into the pointer, overriding the value we need in the pointer, which is an address. This way, the computer knows to put the data not in the pointer, but into the place the pointer points to, which is in the Heap. So after this line, our int is living happily in the Heap, storing a value of 6, and our pointer tells us where that data is living.
Posted by: Aaron at January 13, 2004 11:17 AMThat 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.
Posted by: Emanuel at January 13, 2004 11:19 AMWe can see an example of this in our code we've written so far. In each function's block, we declare variables that hold our data. When each function ends, the variables within are disposed of, and the space they were using is given back to the computer to use. The variables live in the blocks of conditionals and loops we write, but they don't cascade into functions we call, because those aren't sub-blocks, but different sections of code entirely. Every variable we've written has a well-defined lifetime of one function.
Posted by: Tabitha at January 13, 2004 11:19 AM