create different ssh key according the article Mac Set-Up Git
$ ssh-keygen -t rsa -C "your_email@youremail.com"
create different ssh key according the article Mac Set-Up Git
$ ssh-keygen -t rsa -C "your_email@youremail.com"
#!/usr/bin/env sh | |
# pre-commit.sh | |
# Colors | |
RED='\033[1;31m' | |
GREEN='\033[1;32m' | |
YELLOW='\033[1;33m' | |
NC='\033[0m' | |
BOLD='\033[1m' |
**Interesting/widely used implementations of pathfinding algorithms. | |
========================================================================== | |
A* Ruby https://github.com/georgian-se/shortest-path | |
A* (bidirectional with shortcuts) C++ https://github.com/valhalla/valhalla | |
A* Unity https://arongranberg.com/astar/front | |
NBA* JS https://github.com/anvaka/ngraph.path | |
NBA* Java https://github.com/coderodde/GraphSearchPal | |
NBA* Java https://github.com/coderodde/FunkyPathfinding | |
NBA* (Parallel) C++ https://github.com/janhsimon/PNBAStar |
// these aren't _quite_ functional tests, | |
// and should all be compile_fail, | |
// but may be illustrative | |
#[test] | |
fn concurrent_set() { | |
use std::sync::Arc; | |
let x = Arc::new(Cell::new(42)); | |
let x1 = Arc::clone(&x); | |
std::thread::spawn(move || { |
use std::collections::VecDeque; | |
use std::sync::{Arc, Condvar, Mutex}; | |
// Flavors: | |
// - Synchronous channels: Channel where send() can block. Limited capacity. | |
// - Mutex + Condvar + VecDeque | |
// - Atomic VecDeque (atomic queue) + thread::park + thread::Thread::notify | |
// - Asynchronous channels: Channel where send() cannot block. Unbounded. | |
// - Mutex + Condvar + VecDeque | |
// - Mutex + Condvar + LinkedList |