In programming languages, literals are textual representations of values in the source code. This is a syntactical concept.
Some examples:
7 # integer literal
In programming languages, literals are textual representations of values in the source code. This is a syntactical concept.
Some examples:
7 # integer literal
if ENV["DEBUG_CALLBACKS"] | |
Rails.application.eager_load! | |
ActiveRecord::Callbacks::CALLBACKS.each do |callback_type| | |
ApplicationRecord.descendants.each do |model| | |
kind, name = callback_type.to_s.split("_") | |
chain = model.__callbacks[name.to_sym]&.send(:chain) | |
filtered = chain&.select { |chain_callback| chain_callback.kind == kind.to_sym } | |
$callbacks_counter ||= {} | |
$callbacks_counter[model.name] ||= {} |
# NOTE: partial content required for Gemfile | |
gem "rails" | |
gem "propshaft" | |
gem "importmap-rails" | |
gem "stimulus-rails" | |
gem "tailwindcss-rails" | |
gem "action_policy" |
# THIS LINUX SETUP SCRIPT HAS MORPHED INTO A WHOLE PROJECT: HTTPS://OMAKUB.ORG | |
# PLEASE CHECKOUT THAT PROJECT INSTEAD OF THIS OUTDATED SETUP SCRIPT. | |
# | |
# | |
# Libraries and infrastructure | |
sudo apt update -y | |
sudo apt install -y \ | |
docker.io docker-buildx \ | |
build-essential pkg-config autoconf bison rustc cargo clang \ |
I get asked pretty regularly what my opinion is on merge commits vs rebasing vs squashing. I've typed up this response so many times that I've decided to just put it in a gist so I can reference it whenever it comes up again.
I use merge, squash, rebase all situationally. I believe they all have their merits but their usage depends on the context. I think anyone who says any particular strategy is the right answer 100% of the time is wrong, but I think there is considerable acceptable leeway in when you use each. What follows is my personal and professional opinion:
# PATH: config/initializers/sidekiq_alive.rb | |
# AUTHOR: Andrei Makarov (github.com/amkisko) | |
# NOTE: now available as gem sidekiq_status_monitor (https://rubygems.org/gems/sidekiq_status_monitor) | |
class SidekiqAliveServer | |
attr_accessor :workers_size_threshold, | |
:process_set_size_threshold, | |
:queues_size_threshold, | |
:queue_latency_threshold, |
Known component/view patterns:
class Object::Proxy < SimpleDelegator | |
def initialize(object, **values) | |
super(object) | |
@values = values | |
end | |
def method_missing(name, ...) | |
@values.fetch(name) { super } | |
end | |
end |
This middleware does a few interesting things:
url
shape in the zustand store, where we'll store URL information.url
state slice in the ?state
search parameter after it has been stringified and base 64 encoded.?state
search parameter into the url
slice of our store.?state
search parameter with the new url
state slice.popstate
and re-decodes the state from the URL into our store.