Thursday, September 16, 2010

Book-burning needs to modernize

To make things perfectly clear: I do not recommend emotional book burning. I think it's wrong and inefficient. I'm simply going to say this: If you're going to do "book burning" I believe you need to find a more modern way to achieve your goals. Use technology. Better yet, use Open Source technology to achieve your goals.

Something about the press release events of the past week or so has rubbed me the wrong way. But not because of the reasons already expressed by the "media". It's because the guy in Florida is doing it all wrong. We live in a world with headlines filled with stories about Barnes and Noble and Borders books going bankrupt or being sold. Ebooks are taking over. Who can afford to think about burning books at a time like this?
 

In order to have a serious book burning, there's a serious time investment. You'd first have to find the book you wanted to burn, order copies from 10 different retailers on Amazon, pick the most worthy copy, and then commence burning. You'd probably use some social media site to send out Evites or set up a Facebook event hoping people would pull themselves away from Farmville long enough to sit around watching a book burn. What a pain in the rear. If I think about some of my friends, I highly doubt that a book burning event would even hold their attention for more 30 seconds before they were checking their iPhones and Android phones, or sending email on their Blackberries.

When is book burning ok?

If I were homeless in the winter, in a cold climate, and had no other source of shelter, but had plenty of books and matches, I would hope people wouldn't judge me if I were to burn the books I had collected. Alternatively, if I were filming a movie about World War II, or a documentary about a time when books were burned, for historical accuracy, I hope people would appreciate that as art. I suppose if I were the author of the books, it's ok to burn them.

This last reason is cause for serious suspicion. It supposes that there is a relationship between the intellectual property and creative process of writing, authorship, and acceptability of burning books.
 

What happens when you burn books (or blogs)?

Books are actually not so easy to find that I would actually be willing to burn, so I'm burning something closer to my heart. But first, this is me burning a set of blank pieces of paper:



No emotion. Some heat felt. Fire consumed 3 sheets of paper within 62 seconds, for a rate of 2.90 pages / minute.


It wasn't easy finding books I was willing to burn, mostly because I like to take notes in the margins, which I find useful. So instead, this is me burning a recent article from the Antipasto Hardware Blog:

 
EMOTION!!! Some heat felt. Fire consumed 4 pages within 1:48 at a rate of 2.22 pages / minute. The pages were printed with 1622 words across 189 lines, or 7750 characters.


Another way to say this is, my book burning experiment consumed 143.5 bytes / second.


I'm going to assume that the way I folded the paper to allow oxygen in had more to do with the rate of burn than factors like wind (there wasn't any), flammability or not of the ink, or perhaps because my writing is so bad, it burns faster because thermodynamic principles are trying to undo the entropy I create.

What's the difference?

Thought Experiment: Why do people burn books?

I believe that books are burned for several reasons, not limited to the following list:

-Heat
-Light
-Waste disposal
-Publicity leading to social unity
-Desecration

I'll address each one in turn:

-Heat. Not great support for burning books. Modern heaters are known to be more efficient. Plus burning books isn't the quickest, easiest way to generate heat.
-Light. Also not great support for burning books. LED lights are a much more efficient way to achieve this.
-Waste. So so. Just throw it in a landfill, or plant it at the base of a tree to fertilize it. Burning many books, however, may save the time and energy to lug them all to a landfill, so it's a toss-up here for me.
-Publicity leading to social unity. Probably a toss up. This is a lot of effort, and you likely have to create significant consternation before you'll get noticed in the mainstream press.
-Desecration. Now this, I think, is the important point.

Measuring Book Burning Performance: Desecrations / Second

Steve Jobs would probably burn the second volume of my book. Because it's all about Open Source Hardware Strategy and Economics, like what Google uses. Steve hates Open Source, Google, and things that are Open Source like Android, so it's understandable that he might seek to desecrate ideas associated with them.

But here's the problem: if you're going for desecrations, why settle for mediocrity? Why not go all out and desecrate in a modern, digital way?

Here's some Arduino code I wrote to do desecrations:


void setup() {               
  pinMode(13, OUTPUT);    
  Serial.begin(9600);
}

void loop() {
 
  Serial.println("Start");
  Serial.println(millis());
 
  for (int j=0;j<=30000;j++){
  char a[] = "Open Source Hardware is the future.";
  for(int i=0;i<=strlen(a);i++){
  a[i]=0;
  }
  }
 
  Serial.println(millis());
  Serial.println("Done desecrating 30,000 times.");
 
  digitalWrite(13, HIGH);  delay(1000);
  digitalWrite(13, LOW); delay(1000);
 
}



 

Running this sketch achieves 30,000 digital desecrations within roughly 800 milliseconds. This is an effective desecration rate of 1,440,000 desecration-bytes / second!



This Arduino should be ashamed of itself:




It instantiates an array with a phrase, filled with digital bytes of information, and then deletes it from memory. But it does so in the most desecratory way you could imagine: 1 helpless, bloody char at a time - and not even with civil memory management!? From a programmer's point of view, this is heresay. This is like torturing a person by pulling his fingernails out one by one, like every one of those Saw movies. It's like tearing out the pages of a book one by one, and then burning it. Couldn't you have just dereferenced the array pointer, and left the char array in memory? Or if you have to move on, why not just call memory purge?

Ladder of desecration:
Bad: Buying book and burning it (plain form desecration 101)
Worse: Stealing book and burning it (not participating in the economic incentivization system)
Worst: Stealing book, ripping pages out, then burning (physical acts included)

Likewise, here's the digital ladder of desecration:

Bad: Removing software or deleting an ebook from your device
Worse: Torrenting the software and Ebook, and then deleting it
Worst: Torrenting the software and Ebook, and then deleting it, one character or word at a time

Here's some plain R-code to do the same task:

R
x=readLines("OSHWBook.txt");
x <- NULL;

Eh, not a huge impact on my emotions. But this is a completely different story:

R
x=readLines("OSHWBook.txt");
for(j in 1:length(x)) {

for(i in 1:nchar(x[j])) {
x[j][i]="";

}}

x <- NULL;

Seriously?!?!! Is that middle step really necessary? If you're going to delete something just throw it out. There's no need to iteratively replace bytes in memory - without even a simple purge. That's unnecessary and ridiculous.

To me, book burning just doesn't have the same impact as it did when the scholars looked on as the Library of Alexandria was burned to the ground. But this R code hurts. And it's going above and beyond the call to destroy.

Benchmarking Digital Desecration Performance


One could argue that you could measure the strict word count (which is like page count). You could measure file size in bytes, but that's a proxy for document length. You could measure unique words. You could even measure Shannon complexity of the document.


I think there's an open question, perhaps requiring further research, to examine whether or not it makes sense to count bytes, characters, words, or perhaps on synonyms of a specific trigger word or phrase that is considered "desecratory". Perhaps there is an ontological argument to be made about the distribution of desecratory-capable phrases in a document (does it follow a long tail?).

I would argue you want to measure the entropy of the desecrations, which I will define as: number of RAM instantiations and removals of bytes associated with the topic to be desecrated.

Generalization

So I have established a relationship, which I will put in the 2x2 matrix below:


Implementation

Here's some Arduino code that runs on the Arduino and blinks a red LED every time a desecration takes place.


void setup() {               
  pinMode(13, OUTPUT);    
  Serial.begin(9600);
}

void loop() {
 
  Serial.println("Start");
  Serial.println(millis());
 
  for (int j=0;j<=30000;j++){
  char a[] = "Open Source Hardware is the future.";
  for(int i=0;i<=strlen(a);i++){
  a[i]=0;
  }
  }
 
  Serial.println(millis());
  Serial.println("Done desecrating 30,000 times.");
 
  digitalWrite(13, HIGH);  delay(1000);
  digitalWrite(13, LOW); delay(1000);
 
}


Here's the Open SciCal running desecration.r desecrations script:


 x=readLines("OSHWBook.txt");
for(j in 1:length(x)) {

for(i in 1:nchar(x[j])) {
x[j][i]="";

}}

x <- NULL;



Conclusion

I believe book burning is about the public destruction of intellectual property. In a world over-run with new forms of media, and open source software and hardware, however, we need to catch up with the times. I applaud people for having strong beliefs, but if you're going to desecrate someone's intellectual property or creative works, then do so with a modern toolkit!

And do it with Open Source Hardware, why don't you, so others can share in your destructive acts!

:-)

4 comments:

Devlin said...

You could speed things up by increasing the serial port speed and not stopping for the serial port. Maybe just print: "Desecration in progress..."

Also, you could "scribble on the pages" by ORing each byte with a random number.

"Rip the pages" by clearing a random bit- ANDing with a random number.

XORing is something that can be done to a byte that I can't think of as an analogous desecration to a book.

tronixstuff said...

Thank you very much, I really needed a laugh tonight. That was hilarious!

Chris Gammell said...

Brilliant idea. My only addition would be to possibly move to a very high frequency chip, don't heat sink it, reduce any and all laminar flow (while assuring a decent oxygen supply) and then watching the entire processor go up in flames. This "book" burning would only happen once but would be effective. You'd also be burning the internet and all of your personal documents in essence. Unless you just moved your memory storage to a different device, that is.

I would caution against the more extreme XKCD book burning method though

Matt said...

@Devlin - certainly performance tweaking on desecrations is the next phase of research... if I get more DARPA funding! :-)

I like the idea of ripping pages and scribbling - that's great. I suppose I could even break bytes into nibbles, then swap their order. Ha.

@tronixstuff - heh. happy to oblige...

@chris - ha! the sad thing is i know exactly what you're talking about because it's happened before. you could build a floating h-bridge connected to an ac charger, and get the same effect - ha.

actually, i wonder if desecration of data on a distributed drive storage (cloud?) is like tearing someone's limbs apart (see movie: Troy). ha.