Skip to content

Instantly share code, notes, and snippets.

Grant Rodgers grantr

Block or report user

Report or block grantr

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View gist:86c77b6627e459edb4cdcc6337b45f4d
"level": "error",
"ts": "2020-01-03T14:42:08.615Z",
"logger": "activator",
"caller": "network/error_handler.go:31",
"msg": "error reverse proxying request; sockstat: sockets: used 2178\nTCP: inuse 1145 orphan 41 tw 494 alloc 3535 mem 2947\nUDP: inuse 0 mem 35\nUDPLITE: inuse 0\nRAW: inuse 0\nFRAG: inuse 0 memory 0\n",
"": "activator",
"": "activator-947bd7448-9mxxv",
"": "event-example/wathola-forwarder-d96jq",
"error": "read tcp> read: connection reset by peer",
grantr / gist:1105416
Created Jul 25, 2011
Chef mysql master/slave recipes
View gist:1105416
## mysql::master
ruby_block "store_mysql_master_status" do
block do
node.set[:mysql][:master] = true
m ="localhost", "root", node[:mysql][:server_root_password])
m.query("show master status") do |row|
row.each_hash do |h|
node.set[:mysql][:master_file] = h['File']
node.set[:mysql][:master_position] = h['Position']


Package v1alpha1 contains API Schema definitions for the sources v1alpha1 API group

grantr / main.go
Last active Apr 8, 2019
CEL int to float conversion bug
View main.go
package main
import (
structpb ""
grantr / reconciler.go
Last active Mar 25, 2019
A controller interface that can live peacefully in knative/pkg
View reconciler.go
// ObjectReconciler is what the user implements. This is the generic version.
// The controller MUST be aware of whether it's running with CR or CG.
// With this interface, at least the code will be structured similarly
// and the client interaction can converge over time (or not, as desired)
// This is called ObjectReconciler to avoid confusion with existing Reconciler
// interfaces.
type ObjectReconciler interface {
// This could alternately be called ReconcileObject.
Reconcile(context.Context, runtime.Object) error
grantr / eventing-and-sources.txt
Last active Feb 26, 2019
Percentage of code 2018Q4 - 2019Q1
View eventing-and-sources.txt
$ go run main.go --token_file=$HOME/.github.oauth --owner=knative --repos=eventing --repos=eventing-sources --users=grantr --start=08-31-2018 --end=02-25-2019
2019/02/26 10:57:46 Searching for PRs between 8-31-2018 and 2-25-2019
2019/02/26 10:58:38 Finished listing PRs. 725
2019/02/26 10:58:38 Finished filtering PRs for time. 464
2019/02/26 10:58:38 Finished filtering PRs for authors. 408
2019/02/26 11:10:32 Total PRs: 408. Commented PRs: 162
2019/02/26 11:37:07 Total lines added: 124303
2019/02/26 11:37:07 Total non-authored lines added: 117903
grantr / curvecp_handshake.rb
Last active Jul 19, 2018
CurveCP handshake protocol in Ruby
View curvecp_handshake.rb
# A demonstration of the CurveCP handshake protocol. This protocol has many
# favorable security properties described at
# In addition to its security advantages, it has the following favorable properties:
# * Needs only 2 messages (1 from client, 1 from server) before application
# messages can be exchanged (3 before the server can send application messages)
# * Does not require the server to keep protocol state between handshake messages.
# An overview of the protocol:
grantr / ssl.thor
Created Jul 10, 2012
ssl cert generation with thor and openssl (ruby 1.9)
View ssl.thor
# Step 1: gem install thor
# Step 2: thor ssl:generate_ca && thor ssl:generate_cert
require 'thor'
require 'securerandom'
class SSL < Thor
desc "generate_ca", "Generate a Root CA"
method_option :name, type: :string, desc: "Common name"
grantr /
Last active Apr 13, 2016

Keybase proof

I hereby claim:

  • I am grantr on github.
  • I am grantr ( on keybase.
  • I have a public key ASAJ-N6ihtij2BAlmB2DPy4dvJGOh2A4xz7MDMjXzL5DZwo

To claim this, I am signing this object:

grantr / spec_helper.rb
Last active Dec 11, 2015
kill new actors in specs
View spec_helper.rb
RSpec.configure do |config|
# terminate actors created during tests
config.before(:each) do
@running_actors = Celluloid::Actor.all
config.after(:each) do
new_actors = Celluloid::Actor.all - @running_actors
new_actors.each { |a| a.terminate if a.alive? }
You can’t perform that action at this time.