Skip to content

Instantly share code, notes, and snippets.


Thibaut Barrère thbar

View GitHub Profile
thbar / spec_helper.rb
Created Aug 6, 2020
Apparition with Puffing Billy configuration for RSpec
View spec_helper.rb
build_driver = -> (app:, proxy:) {
options = {
window_size: [1500, 1224],
screen_size: [1500, 1224],
headless: true,
js_errors: true,
ignore_https_errors: true,
browser_options: {
'ignore-certificate-errors' => nil
thbar / import_multiple_csv_to_database.rb
Last active May 14, 2020
Automating the process of writing incoming CSV to a SQL database (with Kiba ETL)
View import_multiple_csv_to_database.rb
# for source
require 'kiba-common/sources/enumerable'
require 'kiba-common/sources/csv'
# to create 1 source out of each input file
require 'kiba-common/transforms/source_adapter'
# for target - Kiba Pro is the commercial extension
thbar / settings.jsonc
Last active May 12, 2020
Current minimalistic VSCode setup (à la atom/textmate)
View settings.jsonc
// NOTE: these settings work well for me
// using Ruby, Elixir and Assembly languages.
// I would probably do something different if
// I worked more with other languages at the moment
"telemetry.enableCrashReporter": false,
"telemetry.enableTelemetry": false,
"workbench.startupEditor": "newUntitledFile",
View history.txt
I was drawn to programming, science, technology and science fiction
ever since I was a little kid. I can't say it's because I wanted to
make the world a better place. Not really. I was simply drawn to it
because I was drawn to it. Writing programs was fun. Figuring out how
nature works was fascinating. Science fiction felt like a grand
Then I started a software company and poured every ounce of energy
into it. It failed. That hurt, but that part is ok. I made a lot of
mistakes and learned from them. This experience made me much, much
thbar / redix.ex
Created May 3, 2020 — forked from tgodfrey/redix.ex
Elixir Module for working with MessageBus
View redix.ex
defmodule MyApp.Redix do
@pool_size 5
# How long, in seconds, to keep messages in the backlog
@max_backlog_age 604800
# How many messages may be kept in the global backlog
@max_global_backlog_size 2000
# How many messages may be kep in the per-channel backlog
@max_backlog_size 1000
thbar /
Created Apr 30, 2020 — forked from joshuap/
Deploy a new Rails app to AWS Lambda using Lamby
thbar / test_puma_runs.rb
Last active Apr 20, 2020
How to start and stop Puma programmatically (e.g. from a test)
View test_puma_runs.rb
# inspiration -> the puma tests
require 'puma'
require 'puma/server'
def with_puma_running(app)
server =, Puma::Events.strings)
server.add_tcp_listener "", 0
port = server.connected_port
yield(port: port)
View logs.txt
Recompiling the OpenSSL C extension (against the installed libssl)
/Users/thbar/.rbenv/versions/truffleruby-19.3.1/lib/truffle/rbconfig.rb:35: warning: loading in progress, circular require considered harmful - /Users/thbar/.rbenv/versions/truffleruby-19.3.1/lib/truffle/rbconfig.rb
checking for openssl/ssl.h... yes
checking for OpenSSL version is 1.0.1 or later... yes
checking for RAND_egd()... no
checking for ENGINE_load_builtin_engines() in openssl/engine.h with -Werror=deprecated-declarations... no
checking for ENGINE_load_builtin_engines in openssl/engine.h... no
checking for ENGINE_load_openbsd_dev_crypto() in openssl/engine.h with -Werror=deprecated-declarations... no
checking for ENGINE_load_openbsd_dev_crypto in openssl/engine.h... no
checking for ENGINE_load_dynamic() in openssl/engine.h with -Werror=deprecated-declarations... no

Using Elixir releases and multi-stage Docker files to simplify Phoenix deployment

This repo is my experiment in deploying a basic Phoenix app using the release feature from elixir 1.9 ( and docker, via a multi-stage Dockerfile ( leveraging bitwalker's docker images for Elixir and Phoenix.

Step 1: Install Elixir 1.9.1 (and Erlang)

The simplest way to manage Elixir versions is to use asdf.

thbar /
Created Jul 12, 2019
Installing MySQL2 on Mac OS X Mojave (2019 edition)

mysql2 install failing on Mac OS X (Mojave)

If you want to install the gem (client) without having a database, doing brew install mysql-connector-c used to work, but not anymore.

You now have to install a compatible connector (mariadb):

brew install mariadb-connector-c
bundle config build.mysql2 "--with-mysql-config=$(brew info mariadb-connector-c | grep /usr/local | cut -d ' ' -f 1)/bin/mariadb_config"
bundle install
You can’t perform that action at this time.