Skip to content

Instantly share code, notes, and snippets.

Avatar
✍️
writing "#NoBullshit Tech-Lead" book https://getnobullshit.com

Francois-Guillaume Ribreau FGRibreau

✍️
writing "#NoBullshit Tech-Lead" book https://getnobullshit.com
View GitHub Profile
@FGRibreau
FGRibreau / HeaderValueExt.rs
Last active Nov 19, 2020
Convert a HeaderValue into a rust String
View HeaderValueExt.rs
/// Additional conversion methods for `HeaderValue`.
pub trait HeaderValueExt {
fn to_string(&self) -> String;
}
impl HeaderValueExt for HeaderValue {
fn to_string(&self) -> String {
self.to_str().unwrap_or_default().to_string()
}
}
@FGRibreau
FGRibreau / keycloak-route-patterns-to-keep-open.txt
Created Feb 8, 2020
Minimal Keycloak route patterns to keep open (whitelist)
View keycloak-route-patterns-to-keep-open.txt
/auth/realms/<realm>/protocol/openid-connect/token
/auth/realms/<realm>/protocol/openid-connect/logout
/auth/realms/<realm>/protocol/openid-connect/auth
/auth/realms/<realm>/login-actions/first-broker-login
/auth/realms/<realm>/broker/after-first-broker-login
@FGRibreau
FGRibreau / 1_stripe-schema.md
Last active Jan 2, 2021
Stripe database schema (extracted from their sigma product) as of 2019-10-09
View 1_stripe-schema.md
jqn -r markdown-table 'map(x => "## " + x.name + "\n\n" + markdownTable(x.columns.map(y => [y.name, y.type]))  ) | join("\n\n")' < /tmp/stripe.json

accounts

id varchar
business_name varchar
business_url varchar
@FGRibreau
FGRibreau / cors-nginx.conf
Last active May 26, 2020 — forked from alexjs/cors-nginx.conf
Slightly tighter CORS config for nginx
View cors-nginx.conf
#
# Slightly tighter CORS config for nginx
#
# A modification of https://gist.github.com/1064640/ to include a white-list of URLs
#
# Despite the W3C guidance suggesting that a list of origins can be passed as part of
# Access-Control-Allow-Origin headers, several browsers (well, at least Firefox)
# don't seem to play nicely with this.
#
@FGRibreau
FGRibreau / GCLOUD_SERVICE_ACCOUNT
Created Apr 16, 2018
"cat service_account.json | base64" will give you your GCLOUD_SERVICE_ACCOUNT
View GCLOUD_SERVICE_ACCOUNT
ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsCiAgInByb2plY3RfaWQiOiAicHJvamVjdC0xMDAxMTAiLAogICJwcml2YXRlX2tleV9pZCI6ICIxYmQ2MDAwMDAzOTAwMDAwYmEwMDcxMjhiNzcwZDgzMWIyYjAwMDAwIiwKICAicHJpdmF0ZV9rZXkiOiAiLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tXG5NSUlFdmdJQkFEQU5CZ2txaGtpRzl3MEJBUUVcbmhPbkx4UWE3cVByWkZMUCsyUzNSYVN1ZHNidW9jVm80YnlaSFxuNWU5Z3NEN056c0QvN0VDSkR5SW5iSDgrTUVKeEZCVy95WVVYNlhITS9kXG41T2lqeUlkQTQrTlBvNktwa0phMldWOEkvS1B0b05MU0s3ZDZvUmRFQVpcbjdFQ0pEeUluYkg4K01FSnhGQlcveVlVWDZYSE0vZFxuNU9panlJZEE0K05QbzZLcGtKYTJXVjhJL0tQdG9OTFNLN2Q2b1JkRUFaXG43RUNKRHlJbmJIOCtNRUp4RkJXL3lZVVg2WEhNL2RcbjVPaWp5SWRBNCtOUG82S3BrSmEyV1Y4SS9LUHRvTkxTSzdkNm9SZEVBWlxuN0VDSkR5SW5iSDgrTUVKeEZCVy95WVVYNlhITS9kXG41T2lqeUlkQTQrTlBvNktwa0phMldWOEkvS1B0b05MU0s3ZDZvUmRFQVpcbjdFQ0pEeUluYkg4K01FSnhGQlcveVlVWDZYSE0vZFxuNU9panlJZEE0K05QbzZLcGtKYTJXVjhJL0tQdG9OTFNLN2Q2b1JkRUFaXG43RUNKRHlJbmJIOCtNRUp4RkJXL3lZVVg2WEhNL2RcbjVPaWp5SWRBNCtOUG82S3BrSmEyV1Y4SS9LUHRvTkxTSzdkNm9SZEVBWlxuN0VDSkR5SW5iSDgrTUVKeEZCVy95WVVYNlhITS9kXG41T2lqeUlkQTQrTlBvNktwa0phMldWOEkv
View PostgresToSNSWorker.js
// Basic PostgresToSNSWorker worker
const pg = require ('pg');
const pgConString = process.env.POSTGRESQL_CONNECTIONSTRING;
pg.connect(pgConString, function(err, client) {
if(err) {
console.log(err);
}
client.on('notification', function(msg) {
View build.sh
time docker run --rm -v $(pwd):/src mkenney/npm npm install
12:04:14 real 3m33.500s
12:04:14 user 0m0.780s
12:04:14 sys 0m0.716s
time docker run --rm -v $(pwd):/workspace kkarczmarczyk/node-yarn yarn install
12:07:29 real 2m0.769s
12:07:29 user 0m0.164s
@FGRibreau
FGRibreau / circle.yml
Last active Apr 5, 2017
Cargo rust test for CircleCI
View circle.yml
machine:
services:
- docker
test:
override:
# don't forget to replace "1.18" with your rust version
- docker run -it --rm -v $(pwd):/source -w /source scorpil/rust:1.18 cargo test
@FGRibreau
FGRibreau / iterator_tail.rs
Last active Jan 27, 2017
tail() for Rust iterators
View iterator_tail.rs
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 {}
@FGRibreau
FGRibreau / talks.sh
Last active Sep 13, 2016
Scala.io talk list
View talks.sh
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'