apt-get update
# We want to make ensure to allow all established connections and on-going sessions through the firewall, otherwise, the firewall would block the current SSH session
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Then use the following rule to block incoming port 22 (SSH)
iptables -A INPUT -p tcp --destination-port 22 -j DROP
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use std::iter::FromIterator; | |
trait ExtendedIterator: Iterator { | |
fn tail<B>(&mut self) -> B where B:FromIterator<Self::Item>, Self::Item: Eq + Clone, Self: Sized{ | |
self.skip(1).collect::<B>() | |
} | |
} | |
impl<I> ExtendedIterator for I where I: Iterator {} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
curl -Ls http://bit.ly/2cTytMP|jq -r '.[].uuid'| xargs -I{} -n1 echo "http://cfp.scala.io/api/conferences/ScalaIOFR2016/speakers/{}"| xargs curl -s {}| jq -r '.acceptedTalks[].title' |
Using Give a try and bench ScyllaDB (Cassandra-compatible C++ db, 10x faster) with two lines of docker
Setup:
- ScyllaDb 1.0.3
- Docker version 1.9.1-cs2, build 4ade326
- Dedibox XC SSD 2016
- 1x Intel® C2750 (Avoton) - 8 C / 8T @2.4 Ghz x64, VT-x, AES-NI
- 16 GB DDR3
- 250 GB SSD
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type, total ops, op/s, pk/s, row/s, mean, med, .95, .99, .999, max, time, stderr, errors, gc: #, max ms, sum ms, sdv ms, mb | |
total, 3691, 3691, 3691, 3691, 1.1, 0.7, 4.3, 8.5, 12.1, 14.2, 1.0, 0.00000, 0, 0, 0, 0, 0, 0 | |
total, 8360, 4599, 4599, 4599, 0.9, 0.4, 3.3, 9.2, 15.1, 18.8, 2.0, 0.07740, 0, 0, 0, 0, 0, 0 | |
total, 15809, 7387, 7387, 7387, 0.5, 0.3, 1.2, 6.5, 16.1, 23.9, 3.0, 0.17373, 0, 0, 0, 0, 0, 0 | |
total, 26494, 10567, 10567, 10567, 0.4, 0.3, 0.7, 1.2, 10.4, 14.3, 4.0, 0.20454, 0, 0, 0, 0, 0, 0 | |
total, 37227, 10631, 10631, 10631, 0.4, 0.3, 0.8, 1.2, 7.0, 10.2, 5.0, 0.17680, 0, 0, 0, 0, 0, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# start in one terminal scylla | |
docker run --rm -P -i -t --name=scylla scylladb/scylla | |
# start in another terminal cassandra-stress test | |
docker run --link scylla -it --rm joprice/scylla-tools cassandra-stress write -mode cql3 native -node $(docker inspect -f '{{ .NetworkSettings.IPAddress }}' scylla) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# tested with docker-machine on MacOSX | |
# start zookeeper | |
docker run -d --rm -it -p 2181:2181 digitalwonderland/zookeeper | |
# start kafka | |
docker run -d --rm -it -p 9000:9000 -e ZK_HOSTS="`docker-machine ip default`:2181" -e APPLICATION_SECRET=letmein sheepkiller/kafka-manager |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const {match, when} = require('match-when'); | |
function fact(n){ | |
return match({ | |
[when(0)]: 1, | |
[when()]: (n) => n * fact(n-1) | |
})(n); | |
} | |
fact(10); // 3628800 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function length(list){ | |
return match({ | |
[when([])]: 0, | |
[when()]: ([head, ...tail]) => 1 + length(tail) | |
})(list); | |
} | |
length([1, 1, 1]); // 3 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[2, 4, 1, 2].map(match({ | |
[when(1)]: "one", | |
[when(2)]: "two", | |
[when()]: "many" | |
})); | |
// [ 'two', 'many', 'one', 'two' ] |