Skip to content

Instantly share code, notes, and snippets.

Avatar
🖤

James Lafa jameslafa

🖤
View GitHub Profile
@jameslafa
jameslafa / instagram_border.sh
Last active Dec 8, 2020
Script to square pictures, add a white border and resize them to 1200px for instagram
View instagram_border.sh
#!/bin/bash
for dir in */ ; do
# Check if there are images in the folder before moving forward
if [[ $(find $dir -maxdepth 1 -type f -name "*.jpg"| wc -l) -ge 1 ]]; then
# If there is already an instagram folder in this folder, I skip.
if [[ ! -d "$dir"instagram ]]; then
mkdir "$dir"instagram
fi
for file in "$dir"*.jpg ; do
View keybase.md

Keybase proof

I hereby claim:

  • I am jameslafa on github.
  • I am jameslafa (https://keybase.io/jameslafa) on keybase.
  • I have a public key ASAWFkLVBvndTyh-TtPTyARV9zAKQI_CuebhX1xJkPJXnQo

To claim this, I am signing this object:

View README.md

In case Redis is down, the job will be perform synchronously instead of crashing.

On your job, use perform_later_with_failover instead of perform_later.

Take this into account:

  1. You should find a way to monitor that Redis/Sidekiq is down and be alerted. You will be in a degraded mode if the task are executed synchronously and you should be aware of this as soon as possible
  2. You should use perform_later_with_failover only if you expect the execution time of the task to be fairly short (send email, slack notification, etc.) If you know the task requires time to be perform, it's not a good solution because your user's browser will be blocked.
View wordlist.txt
Wordlist ver 0.732 - EXPECT INCOMPATIBLE CHANGES;
acrobat africa alaska albert albino album
alcohol alex alpha amadeus amanda amazon
america analog animal antenna antonio apollo
april aroma artist aspirin athlete atlas
banana bandit banjo bikini bingo bonus
camera canada carbon casino catalog cinema
citizen cobra comet compact complex context
credit critic crystal culture david delta
dialog diploma doctor domino dragon drama
@jameslafa
jameslafa / pre-commit
Last active Jan 5, 2022
Git pre-commit to avoid commiting breakpoints, secret files, etc.
View pre-commit
#!/usr/bin/env ruby
# Place in your project .git/hooks/pre-commit
# Heavily inspired by https://raw.githubusercontent.com/balabhadra/githooks/master/pre-commit, so thank you to him
############# CONFIGURATION
# The two sections of regular expressions below ("forbidden" and "warning")
# will trigger a commit failure, *if* they are found on an added or edited line.
@jameslafa
jameslafa / matchers.rb
Created Aug 16, 2016
RSpec::Matchers have_same_attributes_as
View matchers.rb
RSpec::Matchers.define :have_same_attributes_as do |expected|
ignored_attributes = ['id', 'updated_at', 'created_at']
match do |actual|
actual.attributes.except(*ignored_attributes) == expected.attributes.except(*ignored_attributes)
end
chain :except do |*attributes|
ignored_attributes += attributes.map {|a| a.to_s}
end
@jameslafa
jameslafa / my_controller_spec.rb
Created Jul 17, 2016
Expect Job being enqueued with args
View my_controller_spec.rb
RSpec.describe MyController, type: :controller do
include ActiveJob::TestHelper
describe "..." do
it "enqueues the job with the right arguments" do
expect {
@bookmark = post :create, {:bookmark => valid_attributes}
}.to have_enqueued_job(SlackNotifierJob).with { |args|
expect(args).to eq(["new_bookmark", @bookmark])
}
@jameslafa
jameslafa / debug.rake
Created Jul 11, 2016
Easily debug rake task
View debug.rake
desc "switch rails logger to stdout"
task :verbose => [:environment] do
Rails.logger = Logger.new(STDOUT)
end
desc "switch rails logger log level to debug"
task :debug => [:environment, :verbose] do
Rails.logger.level = Logger::DEBUG
end
@jameslafa
jameslafa / to_boolean.rb
Created Apr 26, 2016
Rails: convert anything to boolean
View to_boolean.rb
# config/initializers/to_boolean.rb
module ToBoolean
def to_bool
return true if ActiveRecord::ConnectionAdapters::Column::TRUE_VALUES.include?(self)
return false
end
end
class NilClass; include ToBoolean; end
@jameslafa
jameslafa / test_spec.rb
Created Jan 30, 2016
Include Money-rails Helper in the feature tests
View test_spec.rb
context 'when changing the selected materials', :js => true, focus: true do
include MoneyRails::ActionViewExtension
it 'updates the offers' do
# bla bla
end
end