Come hear the lessons that Feross has learned from starting and running a P2P open source project. He will try to condense as many lessons into the time slot as possible. This will be a whirlwind!
# What will You learn?
Listeners will learn valuable takeaways for running DWeb projects in a way that prioritizes helping as many users as possible. Learn what WebTorrent did right and wrong!
Presented at the DWeb Camp (https://dwebcamp.org/) in 5 minutes as a lightning talk.
WHAT I LEARNED FROM WEBTORRENT:
LESSONS LEARNED FROM STARTING AND RUNNING A P2P OPEN SOURCE PROJECT
SHARE YOUR WORK EARLY AND OFTEN
WORSE IS BETTER
"It is often undesirable to go for the right thing first. It
is better to get half of the right thing available so that
it spreads like a virus. Once people are hooked on it, take
the time to improve it to 90% of the right thing."
$ webtorrent --help
webtorrent download "magnet:..." --vlc
download Download a torrent
seed Seed a file or folder
create Create a .torrent file
info Show info for a .torrent file or magnet uri
Specify as one of:
* magnet uri
* http url to .torrent file
* filesystem path to .torrent file
* info hash (hex string)
--airplay Apple TV
PROVIDE VALUE ALONG THE WAY
WHO IS YOUR IDEAL USER?
SOLVE ONE USE CASE PERFECTLY
webtorrent_success = js_bet * electron_bet * webrtc_bet
js_bet = .95
electron_bet = .80
webrtc_bet = .50
webtorrent_success = nodejs_bet * electron_bet * webrtc_bet
console.log(webtorrent_success) // 0.38
TECHNICAL BETS ARE MULTIPLICATIVE
Thanks for the feature request!
WebTorrent Desktop values simplicity more than most torrent apps. This sometimes
means saying 'No' to good ideas. We try to implement only the most important
features that a torrent app needs and make those features as good as possible.
We don't want the app to get overloaded with knobs and dials that may only
benefit a small percentage of users.
That's not to say we won't ever add large new features. We support powerful
features like instant streaming, dynamic piece prioritization, web peers
(WebRTC), etc. but only when they have a clear benefit to a vast majority of
users. See the 80-20 rule.
I don't think it makes sense to implement this feature right now. I hope this
IGNORE THE NERDS
// App version
telemetry.version = config.APP_VERSION
// Screen resolution
telemetry.screens = getScreenInfo()
// OS version and amount of RAM
telemetry.system = getSystemInfo()
// # of torrents currently active, # in list, total size
telemetry.torrentStats = getTorrentStats(state)
THE OPPORTUNITY IS
@FEROSS • FEROSS.ORG