Skip to content

Instantly share code, notes, and snippets.

View bschaeffer's full-sized avatar

Braden Schaeffer bschaeffer

View GitHub Profile
@bschaeffer
bschaeffer / wait.go
Last active May 9, 2019 21:49
Shared Request - Shares a single request across multiple go routines
package main
import (
"fmt"
"sync"
"time"
)
type SharedRequest struct {
data string
@bschaeffer
bschaeffer / main.go
Created January 18, 2019 13:36
WaitGroup example
package main
import (
"fmt"
"runtime"
"sync"
)
var wg sync.WaitGroup
@bschaeffer
bschaeffer / load_test.rb
Last active July 30, 2020 19:19
Load testing example (producer->consumer pattern)
class LoadTest
def initialize(time:, rate:, pool:)
@time = time
@rate = rate
@pool = pool
@requests = []
@started = false
@shutdown = false
@lock = Mutex.new
@cond = ConditionVariable.new
@bschaeffer
bschaeffer / config.yml
Created November 13, 2017 17:54
CircleCI Rails
version: 2.0
jobs:
build:
working_directory: ~/prism
docker:
- image: ruby:2.2.4-alpine
- image: percona:5.6.35
environment:
- MYSQL_ROOT_PASSWORD=
@bschaeffer
bschaeffer / nginx_rails_asset_headers.conf
Created May 12, 2015 21:58
nginx_rails_asset_headers.conf
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
add_header Access-Control-Allow-Origin *;
}
@bschaeffer
bschaeffer / migration.rb
Last active February 23, 2021 19:35
Mass update counter cache columns (with Rails references)
class UpdateCounters < ActiveRecord::Migration
def up
say_with_time 'Updating counter_cache_column for ModelWithColumn' do
ActiveRecord::Base.connection.execute <<-SQL
UPDATE model_with_column
SET counter_cache_column = (
SELECT COUNT(*)
FROM model_with_counter_cache
WHERE model_with_counter_cache.reference = model_with_column.id
)
@bschaeffer
bschaeffer / just_created.rb
Last active September 12, 2015 05:46
Rails 4 compatible #just_created?
class User < ActiveRecord::Base
attr_accessor :just_created
after_create :set_just_created
def just_created?
!!just_created
end
private
@bschaeffer
bschaeffer / untitled
Created December 10, 2014 21:48
Apache Bench: Rackspace (Blog+Rails+nginx)
This is ApacheBench, Version 2.3 <$Revision: 1554214 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking biginterview.com (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
@bschaeffer
bschaeffer / atom-crash.txt
Created November 14, 2014 14:25
Atom crash report
Process: Atom Helper [76665]
Path: /Applications/Atom.app/Contents/Frameworks/Atom Helper.app/Contents/MacOS/Atom Helper
Identifier: com.github.atom.helper
Version: 0.146.0 (0.146.0)
Code Type: X86-64 (Native)
Parent Process: Atom [73996]
Responsible: Atom [73996]
User ID: 501
Date/Time: 2014-11-13 17:06:29.571 -0500
@bschaeffer
bschaeffer / flash.coffee
Created September 18, 2014 15:35
Flash to Javascript Callbacks
# Embed the player
swfobject.embedSWF url, 'BIVideoPlayer', width, height, swfVersion, xiSwfUrl,
callback: 'customCallback'
playerId: 'BIVideoPlayer'
# Flash Event Handler
window.customCallback = (event, playerId, data) ->
selector = "#" + playerId
jQuery(selector).trigger(event, data)