Skip to content

Instantly share code, notes, and snippets.

View ivanvanderbyl's full-sized avatar
🏔️

Ivan Vanderbyl ivanvanderbyl

🏔️
View GitHub Profile
@tmm1
tmm1 / passenger.rb
Created July 25, 2009 04:55
eventmachine monkey-patch for passenger
# Monkey-patch for Passenger to use the EventMachine reactor.
# This allows the use of EM timers, EM.system/popen, and other async libraries (amqp, em-http-request, etc) inside a Rails process.
# This requires EM.watch which was added to EM's git repo recently. Build an EM gem first:
# git clone git://github.com/eventmachine/eventmachine
# cd eventmachine
# gem build eventmachine.gemspec
# sudo gem install eventmachine-0.12.9.gem
# Please do not use this in production =)
/*
The MIT License (MIT)
Copyright (c) 2014 Ismael Celis
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is

Reverting multiple commits

Realised you can use git-reset in a funky way if you're trying to repair a repo that's got into a dodgy state. If you're working locally, you can use git reset --hard or git rebase -i or whatever to rewrite your history (if you're into that sort of thing) but when the commits have already been pushed things are slightly more complicated.

TL;DR

git reset --hard last_good_commit
git reset --soft ORIG_HEAD
git commit -m 'threw away changes back to last_good_commit'

git push

Rebasing Merge Commits in Git

This morning I discovered a nasty little problem with git-rebase that can have pretty unexpected and unwanted results - how it handles a merge commit.

The TL;DR version is this: Always use git rebase -p

Why I use pull --rebase

I think a lot of people are using git pull --rebase as their default to avoid unnecessary merge commits when fetching the latest code from master. There are a few blog posts on the matter, such as [1] [2]

keithpitt = RubyHacker.with_attributes({
performs_magic_tricks: true,
beard_profile: 'recently nearly removed it by accident',
perth_resident_status: 'recently moved there',
open_source_contributor_status: 'awesome'
})
keithpitty = RubyHacker.with_attributes({
performs_magic_tricks: false,
beard_profile: 'first grew a beard before keithpitt was born',
@tdreyno
tdreyno / easing.scss
Created May 7, 2011 02:02
Easing functions for Sass 3.1
@function linear() {
@return cubic-bezier(0.250, 0.250, 0.750, 0.750); }
@function ease() {
@return cubic-bezier(0.250, 0.100, 0.250, 1.000); }
@function ease-in() {
@return cubic-bezier(0.420, 0.000, 1.000, 1.000); }
@function ease-in-quad() {
@return cubic-bezier(0.550, 0.085, 0.680, 0.530); }
@apalmblad
apalmblad / fast-require-ruby-19.2-p180
Created May 30, 2011 20:46
fast require, ruby 1.9.2-180
diff --git a/array.c b/array.c
index b1616c5..16326fc 100644
--- a/array.c
+++ b/array.c
@@ -302,7 +302,7 @@ ary_alloc(VALUE klass)
return (VALUE)ary;
}
-static VALUE
+VALUE

See all your work in a given repo over the last couple of weeks, collated by day. Makes filling out timesheets much easier.

To run the script, pass it a git repo as the first argument.

ruby timesheeting_like_a_boss.rb ~/projects/babushka

Here's what I see in babushka:

# 2011-05-25 (Wed)

c1dea1b: Return strings from #which and #cmd_dir.

@t9md
t9md / vagrant-snapshot.rb
Created June 4, 2011 16:21
vagrant snapshot management command for one vm.
## place this file to same directory of `Vagrantfile' then simply require "snap.rb" in Vagrantfile
module Snap
module VBox
class SnapShot
require "forwardable"
extend Forwardable
def_delegators :@snap, :name, :uuid, :time_stamp
@@snaps = []
class << self
@abeppu
abeppu / index.html
Last active April 24, 2023 13:19
candlestick charts using d3
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.js?1.25.0"></script>
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.time.js?1.25.0"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
</head>
<body>
<div id="chart"></div>