- Web Wormhole https://webwormhole.io/ https://github.com/saljam/webwormhole
- Localsend https://web.localsend.org/
- FilePizza https://file.pizza/
ShareDrop sharedrop.io https://github.com/szimek/sharedrop(SOLD, not recommended, use one of the forks)A clone SnapDrop snapdrop.net https://github.com/RobinLinus/snapdrop(SOLD, not recommended, use one of the forks)- A fork PairDrop https://pairdrop.net/ https://github.com/schlagmichdoch/pairdrop
- ToffeeShare https://toffeeshare.com/
- Instant.io https://instant.io/
| """ | |
| A micro event loop library implementation from scratch. | |
| This library provides a minimal but feature-complete asynchronous event loop | |
| implementation for educational purposes. It demonstrates the core concepts of | |
| asynchronous programming including: | |
| - Task scheduling and management | |
| - I/O multiplexing with non-blocking sockets | |
| - Timeouts and sleep functionality |
| Install WireGuard via whatever package manager you use. For me, I use apt. | |
| $ sudo add-apt-repository ppa:wireguard/wireguard | |
| $ sudo apt-get update | |
| $ sudo apt-get install wireguard | |
| MacOS | |
| $ brew install wireguard-tools | |
| Generate key your key pairs. The key pairs are just that, key pairs. They can be |
| # not the most efficient way, | |
| # but you get the idea. | |
| str = "meow" | |
| # convert string to binary | |
| bin = str.bytes.map{|d| d.to_s(2)}.map{|b| b.rjust(8, '0')}.join | |
| puts bin | |
| # and convert it back to a string |
| ruby '2.7.1' | |
| gem 'rails', github: 'rails/rails' | |
| gem 'tzinfo-data', '>= 1.2016.7' # Don't rely on OSX/Linux timezone data | |
| # Action Text | |
| gem 'actiontext', github: 'basecamp/actiontext', ref: 'okra' | |
| gem 'okra', github: 'basecamp/okra' | |
| # Drivers |
There is an increasing count of applications which use Authy for two-factor authentication. However many users who aren't using Authy, have their own authenticator setup up already and do not wish to use two applications for generating passwords.
Since I use 1Password for all of my password storing/generating needs, I was looking for a solution to use Authy passwords on that. I couldn't find any completely working solutions, however I stumbled upon a gist by Brian Hartvigsen. His post had a neat code with it to generate QR codes (beware, through Google) for you to use on your favorite authenticator.
His method is to extract the secret keys using Authy's Google Chrome app via Developer Tools. If this was not possible, I guess people would be reverse engineering the Android app or something like that. But when I tried that code, nothing appeared on the screen. My gues
| This demonstrates how to make client side certificates with go | |
| First generate the certificates with | |
| ./makecert.sh test@test.com | |
| Run the server in one terminal | |
| go run server.go |
| package main | |
| import ( | |
| "crypto/tls" | |
| "crypto/x509" | |
| "flag" | |
| "io/ioutil" | |
| "log" | |
| "net/http" | |
| ) |
| App configuration in environment variables: for and against | |
| For (some of these as per the 12 factor principles) | |
| 1) they are are easy to change between deploys without changing any code | |
| 2) unlike config files, there is little chance of them being checked | |
| into the code repo accidentally | |
| 3) unlike custom config files, or other config mechanisms such as Java |
| unless ARGV.size > 0 | |
| puts " Missing executable file argument" | |
| puts " Usage (in a Dockerfile)" | |
| puts " RUN crystal run ./path/to/list-deps.cr -- ./bin/executable" | |
| exit 1 | |
| end | |
| executable = File.expand_path(ARGV[0]) | |
| unless File.exists?(executable) |