~/.tmux.conf:
bind z send-keys "say ack" C-m
~/.tmux.conf:
class Role < Module | |
IncompleteInterface = Class.new(RuntimeError) | |
def included(receiver) | |
missing_methods = @public_api.map(&:to_sym) - receiver.public_instance_methods.map(&:to_sym) | |
unless missing_methods.empty? | |
raise IncompleteInterface, | |
"#{receiver} must implement these methods: #{missing_methods.inspect}" | |
end |
Hi, [insert recruiter's first name here]-
I've gone to some lengths to save everyone some time by maintaining a FAQ page on my resume website: http://resume.livingston-gray.com/faq.html
I've even gone so far as to change my LinkedIn profile so that it directs recruiters to read the FAQs before contacting me about relocation opportunities. So, thank you, [recruiter's first name]! By carefully ignoring all of that information, you've freed me from having to feel even remotely guilty for sending you a canned response.
Fluency is "what you can say without having to think about how to say | |
it." "Refactoring" is a language that describes ways to make your | |
code better. I want to inspire you to learn more of that language, so | |
you can make your code better without having to think about it. | |
I'll walk you through the process of reworking a 50-line controller | |
action that's hard to comprehend, let alone refactor. We'll tease | |
apart fiendishly intertwined code, embrace duplication, use dirty | |
tricks to our advantage, and uncover responsibilities that weren't | |
obvious when we started. |
class Brogrammer | |
def ponder_life | |
self.if(you == understand.this) { | |
get.a.girlfriend; | |
} | |
end | |
def if(predicate) | |
yield if predicate | |
end |
Feature: Salary range comparisons | |
AS A person involved in a recruitment discussion | |
I WANT to know whether the candidate's and recruiter's expected salary ranges overlap | |
SO THAT I can avoid spending time on negotiations that can't ultimately be satisfied | |
AS A person who knows about the phenomenon of price anchoring | |
I WANT to approach this question without necessarily being first to name a number | |
SO THAT I don't compromise my negotiating position |
module Enumerable | |
def counts_by(&property) | |
group_by(&property) # Group my values by some interesting property | |
.lazy # (in a potentially more GC-friendly way), | |
.map {|x,xs| [ x, xs.length ] } # collapsing the sub-lists of values to simple counts... | |
.sort_by(&:last) # and show them in increasing order of frequency (so that, | |
# if the list is very long, the high numbers are at the end) | |
end | |
end |
[NOTE: The original version was posted in 2007 on an O'Reilly blog, but the page has been erroring out for months now. I'm copying it here because archive.org, while useful, can be slow. chromatic is a lovely person who (he thinks) probably has copyright to this piece.]