
My contribution to XKCD’s #949 - lelf
http://www.joachim-breitner.de/blog/archives/632-My-contribution-to-XKCDs-949.html
======
epaga
"You can already build such a system yourself quite trivially by getting an
FTP account, mounting it locally with curlftpfs, and then using SVN or CVS on
the mounted filesystem."

[https://news.ycombinator.com/item?id=9224](https://news.ycombinator.com/item?id=9224)
:)

~~~
tOkeshu
It's a really geeky approach. The 949 problem concerns a lot of persons who
does not even know what a server is.

~~~
shailesh
[https://news.ycombinator.com/item?id=8863](https://news.ycombinator.com/item?id=8863)

:)

------
biesnecker
Didn't Dropbox's share links more or less solve this problem? Maybe not for
100% of the population, but I've managed to walk my mom through the process,
and isn't that generally the success metric for things like this?

~~~
galaktor
I recently had to sign up with Dropbox just to download a file somebody was
sharing with me.

The way UbuntuOne (and maybe other providers) just give you a link anybody can
use is much better imho.

~~~
slazaro
I'm pretty sure they did it wrong then. You can share a link to any file
inside of your dropbox, and anyone can download it regardless of whether they
have an account.

~~~
mseebach
1) Right click "Share Dropbox link"

2) New incognito window

3) Paste, enter

4) Download, no sign-up required

------
vacri
The problem isn't 'sending a file', it's 'peer to peer communication', which
is hard without an intermediary and/or shennanigans due to ubiquitous NAT. I
image in the everyone-has-an-IP universe of ip6, this will no longer be an
issue.

~~~
mjolk
ipv6 will still have this issue, because _no fucking way_ will i put a
directly-accessible-from-anywhere computer on a network.

the "how do i serve a directory" problem is _so_ solved:

`python -m SimpleHTTPServer`

or:

dropbox (it's not hard to install, as much as xkcd whinges about it) google
drive email

This is a solved problem.

~~~
falcolas
> directly-accessible-from-anywhere computer on a network

followed by

> python -m SimpleHTTPServer

is a bit of a contradiction.

Dropbox has some pretty serious limitations for transferring files; you're
limited on file size, you have to upload to their servers, you're subject to
their definition of objectionable content, and sharing a particular file too
much (for their definition of too much) will cause them to take down the file.

~~~
mjolk
My suggestion for SimpleHTTPServer was in response to the blog post.

>Dropbox has some pretty serious limitations for transferring files; you're
limited on file size, you have to upload to their servers, you're subject to
their definition of objectionable content, and sharing a particular file too
much (for their definition of too much) will cause them to take down the file.

Link to this being a real problem for someone?

------
puzzlingcaptcha
On Windows, I run a local torrent tracker (built into uTorrent:
bt.enable_tracker true) and share the magnet links.

The disadvantages are that I need to create a torrent file with my ip in
announce field for each file I want to share and that the recipient must have
torrent software (all of my friends incidentally do).

Perhaps I could simplify the torrent creation using the correct announce field
with a nifty right click - 'Send to' script. edit: Looks like it would be
possible with a combination of
[https://github.com/bittorrent/btc](https://github.com/bittorrent/btc) ,
[http://www.robertnitsch.de/projects/py3createtorrent](http://www.robertnitsch.de/projects/py3createtorrent)
and a batch file.

The advantages are built-in checksumming, no intermediate upload server,
interoperability with various torrent software, ability to stop and resume the
transfer at any time and very good transfer rates (for some reason I've had
terrible performance with those browser-to-browser services like e.g.
sharefest)

------
freehunter
Quick and easy file sharing is hard to do not only from a technical
standpoint, but also from a legal standpoint. It only takes one DMCA lawsuit
to shut down a file sharing startup. The likelihood of a lawsuit increases as
the file sharing becomes easier, quicker, and more anonymous (as the chances
that someone will use it for illegal purposes increases the easier and quicker
and more anonymous it becomes).

You have to set some restrictions on who can share what with how many people
and how often. Even torrent trackers that do not store any files other than
the tracker become targets. I really would love it if there was a way to type
"scp /home/freehunter/your-granddaughter-laughing.mpg
//grandma/home/grandma/videos" with UPnP to get around grandma's dial-up NAT.
Unfortunately, the closest we have is Dropbox (requires an account) or
BitTorrent (requires dodging law enforcement and porn popups).

~~~
lbatista
it really works:
[http://www.bittorrent.com/sync](http://www.bittorrent.com/sync)

------
onosendai
As far as quick 'n dirty solutions go, if you're not overly concerned with
security, you can always use "python -m SimpleHTTPServer" to serve all the
files on the current directory over HTTP.

I also recall that KDE had a panel applet that pretty much did the same thing
on the 3.x days (not sure it's been ported to 4.x)

~~~
tOkeshu
Do not forget that this solution is inherently mono-threaded and does not
benefits from a proper concurrency model like node.js for example (which is
also mono-threaded by "design" but provide non blocking IO).

So for big files with multiple downloaders, it can be sometimes not as good as
you want it to be.

~~~
secstate
But at that point you're hosting a file server, not just sending a 25mb file
to a friend. Out of scope.

------
billpg
Ever tried talking a non-techie friend/relative through the process putting a
port-forward on a NAT router? Not fun at all.

~~~
slig
I believe he's connecting to a SSH server, and the server is proxying the
request back to a local HTTP server. So there's no need to mess with port-
forwards.

------
rtpg
I ran into a "trying to share files" thing recently, and I ran into the "pipe
things over netcat" solution ([http://superuser.com/questions/98089/sending-
file-via-netcat](http://superuser.com/questions/98089/sending-file-via-
netcat)). For techies it's pretty fun.

With things like google docs, I've found that file sharing has become a lot
less necessary. We're sort of moving into a very file-less space, and I'm
kinda fine with it.

------
brechin
I've got a CLI that lets you upload a file through FileTea. I'll clean up the
source and post it soon.

See
[https://github.com/brechin/FileTeaSend](https://github.com/brechin/FileTeaSend)
Tested with Python 2.6. Only external requirement is requests.

~~~
nomeata
Great! Guess I’ll ditch my tool sooner than I thought...

~~~
brechin
Glad I could help!

------
laumars
So he's built a file sharing tool which requires an SSH server to work? So why
not just use sshfs, scp or rsync?

I don't mean to stamp on someone's creativity, but SSH already has a whole
bunch of tools for transferring files - all of which already work pretty well.

~~~
nomeata
Because with file-share, the file is never stored on the ssh-server; it is
transferred the instant the other sides starts the download. The SSH-Server is
required to share the file at a publicly available address (which my own
computer is likely not). So no need to clean up files after the download, for
example, or even to have any free disk space.

~~~
laumars
If you need an SSH server to begin with, then there's still some setting up
you need to do before hand. The pain of having to delete a few files
afterwards is really nothing compared to renting a Linux box, setting up SSH
accounts with fail2ban and/or SSH keys; and so on.

So _file-share_ doesn't even work as a pain free solution like you suggest it
does.

As I said before, I don't like to stamp on another's creativity. I'm just
saying that there are better tools for doing this which already come pre-
installed with most Linux distros, UNIX's and OS X.

~~~
nomeata
Why would you have to mess with SSH account_s_? Only the sending side needs an
account, no further setup on the server required. It doesn’t even have to be
your server, your university’s server is enough.

~~~
laumars
Most people are not at uni and rented boxes usually have root open by default
expecting customers to then disable root access and create a user with su /
sudo rights. Plus I tend to take things further and create a dedicated groups
for ssh so that rsync / sftp users cannot use a system shell nor port forward
and are chrooted while a very small subset of administrators have full ssh
access.

Plus even if you do borrow someone else's box, can you be sure that they'd
even be grateful that you're using up their bandwidth?

Ssh is a dangerous protocol to leave open to the WAN, so setting up an ssh
server properly, while not a time consuming job, will still take longer and
more effort than simply deleting a few files afterwards.

------
enricopulatzo
Dropbox solves the problem of sharing a file I have, but on the receiving side
of the equation, dbinbox ([http://dbinbox.com/](http://dbinbox.com/)) is
probably the easiest solution for non-technical folks.

------
KJasper
WeTransfer (wetransfer.com) is pretty popular in the Netherlands. It's easy to
use, only requires an e-mailadress and allows you to send files up to 2GB and
as an added bonus it's quite pretty. I really love it's simplicity.

~~~
huskyr
WeTransfer solves this problem, without needing an user account. I don't know
why people wouldn't use it.

------
verroq
You can always uses a p2p data transfer with WebRTC. All you need is a
browser.

~~~
jerf
OK, I've got a browser window open right here. Now what?

(Serious question.)

~~~
ddorian43
[http://lmgtfy.com/?q=webrtc+transfer+files](http://lmgtfy.com/?q=webrtc+transfer+files)

~~~
jerf
The snark doesn't work here; "googling" is more than "just a web browser".

------
nomeata
Follow up post, summing up alternatives (especially the FileTea command line
client): [https://www.joachim-breitner.de/blog/archives/634-My-
contrib...](https://www.joachim-breitner.de/blog/archives/634-My-contribution-
to-XKCDs-949-is-not-needed.html)

------
secstate
A neat solution indeed, but for anyone capable enough to setup what you've
concocted, why not just scp the files on a lowendbox.com VPS. You also benefit
from an intermediary with a decent up and down connection for the person
you're sending to.

------
hengheng
Munroe did not mention Skype. Tons of people have accounts there, and it
transmits files like ICQ did back in the day.

------
BerislavLopac
Wow, thanks for pointing me to [https://filetea.me](https://filetea.me)

------
skizm
_cough_ onewaybits.com _cough_ (shameless self promotion)

Supports up to 50mb files for now.

------
andrewaylett
Looks quite neat :).

