Skip to content

Instantly share code, notes, and snippets.

Thibaut Barrère thbar

View GitHub Profile
@thbar
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
# https://www.kiba-etl.org
# 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
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
adventure.
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
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
thbar / rails_lamby_notes.md
Created Apr 30, 2020 — forked from joshuap/rails_lamby_notes.md
Deploy a new Rails app to AWS Lambda using Lamby
View rails_lamby_notes.md
@thbar
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::Server.new(app, Puma::Events.strings)
server.add_tcp_listener "127.0.0.1", 0
server.run
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
View elixir_releases_and_docker.md

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 (https://elixir-lang.org/blog/2019/06/24/elixir-v1-9-0-released/) and docker, via a multi-stage Dockerfile (https://docs.docker.com/develop/develop-images/multistage-build/) 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
thbar / help.md
Created Jul 12, 2019
Installing MySQL2 on Mac OS X Mojave (2019 edition)
View help.md

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
@thbar
thbar / s3-updater.rb
Created Jul 5, 2019 — forked from mattboldt/s3-updater.rb
Update S3 object metadata of an entire bucket using the AWS Ruby SDK
View s3-updater.rb
require 'aws-sdk'
require 'active_support'
require 'active_support/core_ext'
# http://docs.aws.amazon.com/sdkforruby/api/Aws/S3/Object.html#copy_to-instance_method
COPY_TO_OPTIONS = [:multipart_copy, :content_length, :copy_source_client, :copy_source_region, :acl, :cache_control, :content_disposition, :content_encoding, :content_language, :content_type, :copy_source_if_match, :copy_source_if_modified_since, :copy_source_if_none_match, :copy_source_if_unmodified_since, :expires, :grant_full_control, :grant_read, :grant_read_acp, :grant_write_acp, :metadata, :metadata_directive, :tagging_directive, :server_side_encryption, :storage_class, :website_redirect_location, :sse_customer_algorithm, :sse_customer_key, :sse_customer_key_md5, :ssekms_key_id, :copy_source_sse_customer_algorithm, :copy_source_sse_customer_key, :copy_source_sse_customer_key_md5, :request_payer, :tagging, :use_accelerate_endpoint]
Aws.config.update({
region: 'us-east-1',
credentials: Aws::Credentials.new(AWS_ACCESS_KEY, AWS_SECRET_KEY)
You can’t perform that action at this time.