Zack Scholl is a developer and musician who writes about the croc file transfer tool, SuperCollider music, and small coding projects.
HN commenters follow up on a croc vulnerability that was fixed, and discuss his SuperCollider audio posts and a few browser compatibility problems.
I've been bookmarking point-to-point file transfer tools. These are not file hosting services like Firefox Send; both endpoints must be online at the same time. Nevertheless, I suspect they might be useful to some other folks here. Please post corrections or more detail on any of these if you have it. I haven't had time to try most of them yet.
WebWormhole: WebRTC encryption, direct data transfer, large file support, browser and command line. Looks more versatile than the others. Has not undergone security review yet.
https://github.com/saljam/webwormhole
https://webwormhole.io/
Magic Wormhole: Data relay required (public relay is often slow), mainly command line.
https://github.com/warner/magic-wormhole
https://magic-wormhole.readthedocs.io/
croc: End-to-end encryption, data relay required (I think), command line only.
https://github.com/schollz/croc
https://schollz.com/blog/croc6/
File Pizza: WebTorrent, seems to load entire file into RAM, browser only.
https://github.com/kern/filepizza
https://file.pizza/
Snapdrop: WebRTC encryption, local sharing only (I think), browser only.
https://github.com/RobinLinus/snapdrop
https://snapdrop.net/
Echoing a lot of sentiment here, you can do pretty much all of these things with SuperCollider. I'd go straight to SuperCollider rather than a "frontend" like Overtone/SonicPi. Not that these frontends are bad, but SuperCollider also has a nice frontend - the IDE works great with builtin doc searching, autocompletion, etc.
Sample wrangling becomes pretty thorny quickly as if you are triggering samples you want to make sure they don't "clip"/"pop" when you change them (due to discontinuities between the abrupt stop and the new start). I wrote a SuperCollider tutorial that demo's how to make a really high-quality sample player that takes care of these kinds of things plus gives you lots of control over rates, looping, etc. [1] That was my main hurdle with SuperCollider as that it has surprisingly few tutorials for such a long-running and deep program. Hopefully that helps :)
[1] https://schollz.com/blog/sampler/
I'm getting this in my browser console when trying to load the audio:
> Access to fetch at 'https://infinitedigits.co/img/thx3.json' from origin 'https://schollz.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
I see it also loaded some .mp3 files so I can listen to the samples that way, but something is broken.
You can also take a look at the following:
Croc:
- Site: https://schollz.com/blog/croc6/
- Source: https://github.com/schollz/croc
Magic Wormhole:
- Source: https://github.com/magic-wormhole/magic-wormhole
Send (A fork of Mozilla's Send):
- Site: https://send.vis.ee/
- Source: https://github.com/timvisee/send
- CLI: https://gitlab.com/timvisee/ffsend
I've personally used Snapdrop and Croc before and they're both very nice
A better solution for p2p E2EE file-transfer is croc [0] because it can compile to a statically-linked binary without runtime dependencies.
Sending files: `croc [files]`
Receiving files: `croc code-phrase`
Custom code-phrases are supported.
More information on design decisions are documented in a blog post [1].
[0]: https://github.com/schollz/croc#usage
[1]: https://schollz.com/blog/croc6/
This is awesome. For some reason when I'm on Chrome, I can't see the animated gif the article references. Which is the most interesting part.
It works on Safari. But here's a direct link that works on chrome. https://schollz.com/img/oneline/person.webm