Skip to content

Instantly share code, notes, and snippets.

@fourseven
fourseven / retina-sprites.css.scss
Created August 16, 2012 09:19
A compass function to handle spriting with normal and retina images automatically.
// @Mixin Retina Sprite Sass
// ======================================================
// This requires two folders full of *.png files, normal and then
// 2x resolution. Please ensure that they have the same number and names
// of files.
// I've written this based off other efforts on the web, but none did
// both background-images and a set of sprites automatically.
// Still very much a work in progress.
// To use see the bottom three lines.
@fourseven
fourseven / dabblet.css
Created March 11, 2013 21:59
The first commented line is your dabblet’s title
/**
* The first commented line is your dabblet’s title
*/
.parent {
position:relative;
border: 1px solid red;
}
.child {
@fourseven
fourseven / dabblet.css
Created March 19, 2013 21:56
border-box
/**
* border-box
*/
* {box-sizing: border-box;}
.non-border-box {
box-sizing: content-box;
}
div {
border: 2px solid blue;
@fourseven
fourseven / classes.rb
Created June 27, 2013 01:44
Notes/examples for better code
class MailerContact
def initialize(first_name, last_name)
@first_name, @last_name = first_name, last_name
end
def full_name
"#{@first_name} #{@last_name}"
end
end
@fourseven
fourseven / gist:9259219
Last active August 29, 2015 13:56
Ruby vs ObjC named params
I have:
def self.find_bot_for_user_from_token(current_user, oauth_token)
end
Using named params it would be (requires 2.1 to not have defaults):
def self.find_bot(for_user:, from_token:)
puts for_user
end
vs
def b i=1,w=nil
"#{i} bottle#{:s if i>1} of beer#{" on the wall" if w}"
end
puts *99.downto(2).map {|n| "#{b n,1}, #{b n}.\nTake one down and pass it around, #{b n-1,1}.\n\n"}
puts "#{b 1,1}, #{b}.\nGo to the store and buy some more, #{b 99,1}.\n\n"
$<.each{|l|i=l.to_i
o=""
o="Fizz" if i%3==0
o+="Buzz" if i%5==0
puts o==""?l:o}
Before
Hash Semi Join (cost=1374.03..1852.31 rows=59 width=62) (actual time=22.141..23.774 rows=1 loops=1)
After
Nested Loop Anti Join (cost=19.22..235.45 rows=33 width=62) (actual time=0.046..0.047 rows=1 loops=1)

Preface:

It's useful to know the memory characteristics of different Ruby versions.

2.0 Uses less memory, but is slower - GC blocks while running

2.1 Generational GC - more memory, but faster GC meaning faster apps (split: old / young heap spaces)

2.2 Introduces incremental GC - marks in steps, reducing stop-the-world time, making OOB GC redundant.

Keybase proof

I hereby claim:

  • I am fourseven on github.
  • I am four_seven (https://keybase.io/four_seven) on keybase.
  • I have a public key ASB8x_osf4BNH2Mkm-m_uaAl5xP7LUDeXx9UKQJSsjwhPQo

To claim this, I am signing this object: