FacebookFS

A FUSE-based file-system written in Perl to interface, store, and retrieve data from Facebook using HTTP access to the site's client forms.

About

Ever since FUSE came out, people have been joking about absurd file-systems. Facebook was the target of one such gag. However, I was disappointed to find that such a file-system had never been implemented. Well, one thing led to another and I was in bed with Perl again. Not satisfied with just throwing text data in various comment fields offered by Facebook, I opted to encode data in images to put in the photo section. It was too late before I realized Facebook JPEG-ifies the images and resizes them if they are too big. I was too determined to give up, but not determined enough to add in error correction (there is parity checking) and file-piecing. Much like engineers of old replaced "float" with "double" in their C code to make it work, I effectively increased the size of a pixel to 5x5. Hey, I'm a freaking Perl programmer, what do you expect?

What is the point

There is no point unless you want to store text data with a large chance of said data getting corrupted. The images that it produces are kind of cool though:

Also, the Perl code in facebook.pm can be used for other programs, namely, logging into facebook and messing with photos.
Ultimately, you will download this code like you will click on a link that goes to goatse. Its a grotesque but oddly interesting program.

Some screens

(I'm not just making this stuff up)

Starting the file-system and logging into Facebook. Check out all the fancy debug information.

Doing some things in the file-system. Of course, I'm not going to show you the part where it crashes and deletes your root directory and murders all the kittens in your neighborhood.

Installation

You can read the README, but basically you download the source, unzip (tar xvf <blah.tar.gz>) it into some dir and make sure you have all the requirements.
Then you do something like:
mkdir
./FBfs.pl <mountpoint>
*program crashes... or you just want to quit*
fusermount -u <mountpoint>

Then you log into facebook to see just how trashed out your photos page is!

Peddling

This is my friend's webhost and I would feel bad if I fried all his bandwidth without any compensation, so consider a small donation to the "Let Kevin keep his friend" fund. If you can't use Paypal its probably not worth it because they take such a large cut out of credit card payments.

Download

Here is the tar for you: FacebookFS.tar.gz

If someone wants to mirror, let me know and I'll put it up, but I think its pretty pointless considering the size of the file.

License
I'm not too buff on my legal knowledge but I think the LGPL ought to cover whatever my intentions are. If anyone attempts to make money off of this I will ROFLWTFBBQGLHF (Sorry that's the only way to describe it).

If there's something interesting, though, I'd like to know just to get my jollies off:
my $email = ($url =~ m&^http://(.*?)\..+&)[0].(1<<8)."\@gmail.com";

Future
First Facebook ... next, The World!!!

All text and code contained herein (c) 2007 Kevin Weekly