Skip to content

Instantly share code, notes, and snippets.

View rwdaigle's full-sized avatar

Ryan Daigle rwdaigle

View GitHub Profile

Devcenter Redesign Feedback

My thoughts on the current state of https://devcenter-raul.heroku.com/

  • I like the new position/prominence of the search box, but I don't think the black subheader is necessary. The search box is too big. How about another search box on the bottom of the page too?
  • The "Heroku Dev Center" heading and "Getting started/Reference/Articles" links show up twice on the home page, which seems like a waste of valuable landing page space. I'd rather see the contents of each of those sections on the home page, rather than links to those sections. In general, I'd like to see more articles on the home page. Why only three per section?
  • The articles page seem more like an archive than anything else. There's nothing here that suggests to me that this content is different from "reference content" -- no YMMV warning or anything. I don't really understand the difference between "Reference" and "Articles". I think of all this content
@daveyeu
daveyeu / gist:4960893
Created February 15, 2013 15:04
Displays accurate request queue times for New Relic on Heroku Cedar
# Accurate queue times for Heroku Cedar + Rails (or Rack)
#
# For Rails:
#
# Rails::Application.middleware.insert(0, QueueTimeLogger)
#
class QueueTimeLogger
attr_reader :app
def initialize(app, options = {})
@freeformz
freeformz / WhyILikeGo.md
Last active October 6, 2022 23:31
Why I Like Go

A slightly updated version of this doc is here on my website.

Why I Like Go

I visited with PagerDuty yesterday for a little Friday beer and pizza. While there I got started talking about Go. I was asked by Alex, their CEO, why I liked it. Several other people have asked me the same question recently, so I figured it was worth posting.

Goroutines

The first 1/2 of Go's concurrency story. Lightweight, concurrent function execution. You can spawn tons of these if needed and the Go runtime multiplexes them onto the configured number of CPUs/Threads as needed. They start with a super small stack that can grow (and shrink) via dynamic allocation (and freeing). They are as simple as go f(x), where f() is a function.

@ryandotsmith
ryandotsmith / hack-reactor.md
Last active November 24, 2022 07:01
Hack Reactor Talk

Tales From a Heroku User

Here are some things I have learned along the way.

Last Updated: 2013-02-08

Original Audience: Hack Reactor

About

@rafaelss
rafaelss / gist:3700977
Created September 11, 2012 19:04
PostgreSQL 9.2 upgrade steps
Steps to install and run PostgreSQL 9.2 using Homebrew (Mac OS X)
(if you aren't using version 9.1.5, change line 6 with the correct version)
1. pg_ctl -D /usr/local/var/postgres stop -s -m fast
2. mv /usr/local/var/postgres /usr/local/var/postgres91
3. curl https://raw.github.com/fragility/homebrew/737af01178590950749cf5e841f2d086c57c5a80/Library/Formula/postgresql.rb > /usr/local/Library/Formula/postgresql.rb
4. brew upgrade postgresql
5. initdb /usr/local/var/postgres -E utf8
6. pg_upgrade -b /usr/local/Cellar/postgresql/9.1.5/bin -B /usr/local/Cellar/postgresql/9.2.0/bin -d /usr/local/var/postgres91 -D /usr/local/var/postgres
7. pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
@ryandotsmith
ryandotsmith / process-partitioning.md
Created April 13, 2012 06:40
Process Partitioning

Process Partitioning

The Problem

When working with large, high volume, low latency systems, it is often the case that processing data sequentially becomes detrimental to the system's health. If we only allow 1 process to work on our data we run into several challenges:

  • Our process may fall behind resulting in a situation which it is impossible for our process to catch up.
  • Our singleton process could crash and leave our system in a degraded state.
  • The average latency of data processing could be dramatically affected by outlying cases.
@ryandotsmith
ryandotsmith / worker-pattern.md
Created April 11, 2012 20:15
The Work Pattern

The Worker Pattern

2011-05-22

Introduction

This article is the accumulation of a tutorial that was given as a training session at Red Dirt Ruby Conf (2011) and a formal talk given at Rails Conf (2011). To understand the theory behind The Worker Pattern, read over the slides and the slide notes. From there, you can follow the instructions in the Tutorial

@ryandotsmith
ryandotsmith / event_buffering.md
Created February 14, 2012 04:10
event buffering

Event Buffering

Eventually platforms outgrow the single-source-tree model and become distributed systems. A common pattern in these distributed systems is distributed composition via event buffering. Here we motivate and describe this event buffering pattern.

The Problem

@ryandotsmith
ryandotsmith / event_ordering.md
Created February 11, 2012 00:38
an event ordering schema

An Event Ordering Schema

Shushu receives events in no particular order and long after the event originated in the client's system. Therefore, it is generally desired to depend on Shushu not caring about the order or time in which it receives events. The following text examines thoughts on how to address such issues.

The Problem

Shushu provides a resources-group-membership API that takes a resource