Skip to content

Instantly share code, notes, and snippets.

eviltrout /
Last active Feb 12, 2020 — forked from xfalcox/
Discourse Contributor License Agreement

Discourse Contributor License Agreement

The document below clarifies the terms under which You (the copyright owner or legal entity authorized by the copyright owner), may make "The Contributions" (software, bug fixes, configuration changes, documentation, or any other materials) to "The Work" (Discourse/Discourse). This license protects You, "The Company" (Civilized Discourse Construction Kit, Inc.) and licensees; it does not change your rights to use your own contributions for any other purpose.

You and "The Company" (Civilized Discourse Construction Kit, Inc.) agree:

• You grant to "The Company" (Civilized Discourse Construction Kit, Inc.) a non-exclusive, irrevocable, worldwide, royalty-free, sublicenseable, relicenseable, transferable license under all of Your relevant intellectual property rights, to use, copy, prepare derivative works of, distribute and publicly perform and display "The Contributions" on any licensing terms, including without limitation: (a) open source licenses like the GNU Gener

View perf.rb
# frozen_string_literal: true
require 'benchmark/ips'
class Key
def a?
def b?
View gist:76cef15031e7152e5d507bfcc969d312
### Keybase proof
I hereby claim:
* I am eviltrout on github.
* I am eviltrout ( on keybase.
* I have a public key whose fingerprint is 0AAD 3ED7 A2F2 84ED 1D51 4F4F 0C8B D124 983D D654
To claim this, I am signing this object:
View synchronizer_spec.rb
describe Synchronizer do
class TestSynchorizer < Synchronizer
def initialize(can_sync)
@can_sync = can_sync
@performed = false
def can_sync?
View pre-commit
# This pre-commit hook will prompt for every file that contains a `console.log`, `debugger`
# or `puts` statement. This should avoid stupidly commiting debugging information :)
exec < /dev/tty
confirm() {
echo "${1:-Are you sure? [y/N]}"
read -r response
View gist:8658322
" =====================================================================
" Initialize: {{{1
set nocp
filetype plugin indent on
set runtimepath^=~/.vim/bundle/ctrlp.vim
syntax on
set wildignore+=*/tmp/*,*/log/*,*/pg_dumps/*,*.so,*.swp,*.zip,*.png,*.jpg,*/public/*,*/chef/*,*/vendor/*,*/node_modules/* " MacOSX/Linux
View gist:8058560
EmberJS/TodoMVC/Adding200Items/Sync : 1702.346000005491 ms
EmberJS/TodoMVC/Adding200Items/Async : 25.54499999678228 ms
EmberJS/TodoMVC/CompletingAllItems/Sync : 7.547000001068227 ms
EmberJS/TodoMVC/CompletingAllItems/Async : 283.12500000174623 ms
EmberJS/TodoMVC/DeletingItems/Sync : 1343.2750000065425 ms
EmberJS/TodoMVC/DeletingItems/Async : 11.830000003101304 ms
EmberJS/TodoMVC : 3373.6680000147317 ms
React/TodoMVC/Adding200Items/Sync : 874.4910000095842 ms
View gist:7568298
Received: by with SMTP id x4csp9950oat;
Wed, 20 Nov 2013 09:37:45 -0800 (PST)
X-Received: by with SMTP id d67mr1031178yhe.113.1384969065068;
Wed, 20 Nov 2013 09:37:45 -0800 (PST)
Return-Path: <>
Received: from ( [2607:f8b0:4001:c03::236])
by with ESMTPS id d49si17069878yhn.5.2013.
for <>
View gist:5957785
It's hard to answer these in a tweet :)
You can't pass arguments to computed properties unless you are creating custom setters, but that's a whole different topic!
What you probably want to do here is use an itemController for each row you are displaying (with the button.)
{{#each thing in things itemController="thing"}}
<button {{bindAttr disabled=thing.disabled}}>button</button>
View gist:5338573
Discourse.debouncePromise = function(func, wait) {
var timeout = null;
return function() {
var context = this;
var args = arguments;
// Return a promise that is never executed
if (timeout) return Ember.Deferred.create();