Skip to content

Instantly share code, notes, and snippets.

View steverice's full-sized avatar

Steve Rice steverice

View GitHub Profile
"RefCountingStorage write content helper" prio=0 tid=0x0 nid=0x0 waiting on condition
java.lang.Thread.State: WAITING
on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5b33ea53
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:957)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:917)
at java.lang.Thread.run(Thread.java:680)
@steverice
steverice / composer.json
Created June 27, 2013 08:01
composer.json repository setup for installing connect20/Mage_All_Latest (1.7.0.2) through magento-hackathon/magento-composer-installer
"repositories": [
{
"type": "composer",
"url": "http://packages.firegento.com"
},
{
"type": "package",
"package": {
"name": "connect20/lib_google_checkout",
"version": "1.5.0.0",
@steverice
steverice / Magento deployment structure
Last active December 19, 2015 03:29
Magento directory structure created using mage-hackathon/magento-composer-installer. All files in ./magento are hardlinks to various packages in ./vendor (hence display of inodes), and thus the webroot is entirely reproducable with a simple composer update.
.
├── [2907877] composer.json
├── [2937290] composer.lock
├── [2316418] magento
│   ├── [2890782] LICENSE.html
│   ├── [2890783] LICENSE.txt
│   ├── [2890784] LICENSE_AFL.txt
│   ├── [2890785] RELEASE_NOTES.txt
│   ├── [2890786] api.php
│   ├── [2880927] app
@steverice
steverice / gist:6018000
Created July 17, 2013 05:57
Using strings with square brackets to access multidimensional properties of JS objects
/**
* Example: incoming property name (e.g. from PHP) has square brackets, e.g. names[0][1]
* var property = names[0][1];
* var value = {
* names: [
* ['some', 'data', 'here']
* ]
* }
* result: value == 'some'
*
@steverice
steverice / gist:7817426
Created December 6, 2013 02:04
View GitHub pull request diffs in RubyMine
@steverice
steverice / v2-vision-sample.md
Created October 8, 2016 02:11
Snippet of PagerDuty API v2 Vision

API v2 Vision 👓

This document outlines the vision and scope for v2 of the API.

Ordered lists represent prioritized order. We recannot accomplish everything at once, and thus everything needs to be prioritized sooner or later. I choose sooner.

This document does not attempt to present a comprehensive record of all the changes that will be made, as those will be captured by stories in JIRA. Instead, it establishes the goals, principles, and patterns that we'll use to make the decisions about what needs to change.

It is a living document and will evolve as we discover new edge cases and outliers that weren't previously considered.

@steverice
steverice / rest-incidents-list.html
Created October 10, 2016 01:55
Incidents list documentation from v1 devdocs
---
title: PagerDuty Developer
layout: main
---
<ul class="breadcrumb">
<li>
<a href="/documentation/rest/">REST API</a>
</li>
<li style="list-style: none">
<span class="divider">/</span>
@steverice
steverice / swagger.json
Last active September 14, 2017 17:49
PagerDuty API Swagger
{
"swagger": "2.0",
"info": {
"title": "PagerDuty API",
"description": "The PagerDuty API provides programmatic access to entities within a PagerDuty account. It is designed around [RESTful principles](https://en.wikipedia.org/wiki/Representational_state_transfer) with a path structure based on resources and their relationships.\n\nAll requests and responses are serialized in [JSON](https://en.wikipedia.org/wiki/JSON), including error responses.\n\nSchema are designed to be reusable across requests and across endpoints.\n\nMore sophisticated API clients should treat PagerDuty resources as unique objects keyed by the `id` field that can be used in any API request involving resources of that type.\n\nEvery resource contains a `type` field that identifies the schema it uses.\n\n## Rate limiting\n\nEach account and authentication mechanism is limited to the number of API requests it can make every minute. API requests that exceed the API rate limit will return an [HTTP status code](error_codes.html#http_res
@steverice
steverice / approval-process.md
Created October 11, 2016 04:20
The API Approval Process at PagerDuty

The API Approval Process

When do I need approval for an API change?

Approval is needed before shipping any change used by one or more wild clients or releasing the API for general availability. In other words, the API must be contracted.

If you are working on a prototype API, you may ship your code at will, but you acknowledge the following tradeoffs:

  • you are responsible to make any and all code changes to satisfy the final approved proposal before general availability
    • in other words, there will be additional churn
  • you have communicated to any clients of the prototype API that their integration may break at any time
@steverice
steverice / v2-announcement.md
Created October 18, 2016 00:36
PagerDuty API v2 Beta Announcement

PagerDuty API v2 is Now in Beta!

PagerDuty is thrilled to announce that the new version of our popular PagerDuty REST API is now available for everyone to use in beta!

We've been working hard on this version of the API for a while and are excited about the improvements in speed, consistency, and ease of use that API v2 delivers.

If you're a PagerDuty customer, you've already been using API v2 for a while every time you use our web application. In our own experience, we've found it easier to work with and build new functionality using API v2 than ever before.

What's new?