This gist shows how to create a GIF screencast using only free OS X tools: QuickTime, ffmpeg, and gifsicle.
To capture the video (filesize: 19MB), using the free "QuickTime Player" application:
class ActiveRecord::Base | |
mattr_accessor :shared_connection | |
@@shared_connection = nil | |
def self.connection | |
@@shared_connection || ConnectionPool::Wrapper.new(:size => 1) { retrieve_connection } | |
end | |
end | |
ActiveRecord::Base.shared_connection = ActiveRecord::Base.connection |
config.filter_parameters += [:password, lambda {|k, v| | |
if k.to_sym == :json | |
json = JSON.parse(v).symbolize_keys | |
json[:password] = "[FILTERED]" if json.has_key?(:password) | |
v.replace json.to_s | |
end | |
}] |
# Do not refactor, it is a bad practice. YOLO | |
# Not understanding why or how something works is always good. YOLO | |
# Do not ever test your code yourself, just ask. YOLO | |
# No one is going to read your code, at any point don't comment. YOLO | |
# Why do it the easy way when you can reinvent the wheel? Future-proofing is for pussies. YOLO |
Each of these commands will run an ad hoc http static server in your current (or specified) directory, available at http://localhost:8000. Use this power wisely.
$ python -m SimpleHTTPServer 8000
[jgalang@rashomon:~/Code/skunkworks/2fa] | |
∴ ruby totp_demo.rb | |
Time(sec) Time (UTC format) Value of T(Hex) TOTP Mode OK | |
------------------------------------------------------------------------------------------ | |
59 1970-01-01 00:00:59 0000000000000001 94287082 SHA1 ✔ | |
59 1970-01-01 00:00:59 0000000000000001 46119246 SHA256 ✔ | |
59 1970-01-01 00:00:59 0000000000000001 90693936 SHA512 ✔ | |
1111111109 2005-03-18 01:58:29 00000000023523EC 07081804 SHA1 ✔ | |
1111111109 2005-03-18 01:58:29 00000000023523EC 68084774 SHA256 ✔ |
module QueryTrace | |
def self.enable! | |
::ActiveRecord::LogSubscriber.send(:include, self) | |
end | |
def self.append_features(klass) | |
super | |
klass.class_eval do | |
unless method_defined?(:log_info_without_trace) | |
alias_method :log_info_without_trace, :sql |
When developing a program in Ruby, you may sometimes encounter a memory leak. For a while now, Ruby has a facility to gather information about what objects are laying around: ObjectSpace.
There are several approaches one can take to debug a leak. This discusses a time-based approach, where a full memory dump is generated every, say, 5 minutes, during a time that the memory leak is showing up. Afterwards, one can look at all the objects, and find out which ones are staying around, causing the
- Add `gem 'tzinfo-data'` to the Gemfile. | |
- Add `tzdata` to the Dockerfile | |
``` | |
RUN apk update \ | |
&& apk add build-base \ | |
tzdata | |
``` | |
- Build `docker-compose build` or `docker-compose up --build` | |
- Enjoy the life |