Skip to content

Instantly share code, notes, and snippets.

View januszm's full-sized avatar

Janusz Mordarski januszm

View GitHub Profile
@januszm
januszm / pipenv_locking.svg
Created February 23, 2021 19:09
pipenv lock flamegraph
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@januszm
januszm / install-python-ubuntu.sh
Created February 23, 2021 13:46 — forked from ytspar/install-python-ubuntu.sh
Install Python with Pyenv on Ubuntu (16.04)
sudo apt-get update
sudo apt-get install build-essential git libreadline-dev zlib1g-dev libssl-dev libbz2-dev libsqlite3-dev
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
# may need this, but install script above should handle it; and yeah, you can do multiline inserts with awk/sed or whatever
echo 'export PATH="/root/.pyenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
source ~/.bashrc
pyenv install 3.6.0
@januszm
januszm / pg_dump_restore.sh
Last active March 13, 2023 18:02
Postgresql dump and load compressed
sudo amazon-linux-extras install postgresql12
pg_dump -Fc -O -h yyy-production.xxx.region.rds.amazonaws.com -p 5432 -U yyy yyy_production -f yyy.dump
# TRUNCATE TABLE tables ... RESTART IDENTITY
# rails db:migrate
pg_restore -Fc -O --disable-triggers --data-only -h yyy-staging.xxx.region.rds.amazonaws.com -d yyy_staging -U yyy yyy.dump
# both commands accept the --table option to specify which table to dump/restore
# select setval('TABLE_NAME_id_seq', (select max(id) from TABLE_NAME)); may be required after RESTART IDENTITY, +1
# In case of version mismatch between the server and pg_dump, add pgdgXX repo and install XX client
[pgdg14]
@januszm
januszm / gist:e25cc9fd7a1ce97fa10e36720c7589e2
Created August 23, 2020 22:21
Print stacktrace without site-packages in debugger
import traceback; [line for line in traceback.format_stack() if not 'site-packages' in line]
@januszm
januszm / ruby_benchmark.rb
Created July 9, 2020 10:46
Ruby quick benchmark
# alternatively use benchmark/ips
n = 100_000
data = "..."
Benchmark.ips do |benchmark|
benchmark.report("include?") do
n.times { data.to_s.downcase.include?('windows') }
end
benchmark.report("match?") do
@januszm
januszm / wait_until.rb
Created March 30, 2019 11:28 — forked from metaskills/wait_until.rb
Never sleep() using Capybara!
# Have you ever had to sleep() in Capybara-WebKit to wait for AJAX and/or CSS animations?
describe 'Modal' do
should 'display login errors' do
visit root_path
click_link 'My HomeMarks'
within '#login_area' do
fill_in 'email', with: 'will@not.work'
fill_in 'password', with: 'test'
@januszm
januszm / grafana.ini
Created August 7, 2018 18:17 — forked from xlson/grafana.ini
Modifying grafana.ini of a running docker container
[database]
log_queries = true
@januszm
januszm / convert_wkb_to_geojson.rb
Created March 15, 2018 15:00
Convert WKB data from PostGIS to GeoJSON
result = ActiveRecord::Base.connection.execute("select * from my_shapes_table limit 1;")
shape = parser.parse result.values.first.last # .first row , .last column
RGeo::GeoJSON.encode(shape).to_json
# => "{\"type\":\"MultiPolygon\",\"coordinates\":[[[[...]]]]}"
# Gemfile
# gem "ruby-prof"
# gem "ruby-prof-flamegraph"
# gem "stackprof"
require "ruby-prof"
require "stackprof"
module ProfilerWrapper
def self.stackprof(name)
@januszm
januszm / change_eb_ruby_version.sh
Last active October 17, 2022 20:16
Change Ruby minor version in AWS Elastic Beanstalk
# Currently (2017/2018) it's not possible to change the Ruby 'minor' version (eg. 2.3 => 2.4) using the web console
# However, it's possible using the 'awscli' tool.
brew install awscli # pip install awscli
aws elasticbeanstalk update-environment \
--solution-stack-name "64bit Amazon Linux 2017.09 v2.6.1 running Ruby 2.4 (Puma)" \
--environment-name "myappenv1" --region "us-east-2" \
--version-label "app-1234-210000_120123"
# For Amazon Linux 2