Skip to content

Instantly share code, notes, and snippets.

Trevor Squires protocool

  • Comox Valley, BC, Canada
Block or report user

Report or block protocool

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 sigill.swift
import Foundation
protocol P {
typealias PT: NSObject = Self
static func vendSpecific() -> PT?
extension P where Self: NSObject, PT == Self {
static func vendSpecific() -> PT? {
return nil
protocool / And the results are...
Created May 7, 2012
A question of taste, style, and naming
View And the results are...
Had some great suggestions.
'set' came up a few times. It makes sense, "set the error ptrptr with your
last error". Unfortunately there's too much baggage with property setters
for that to work.
'propagate' was a good one too, but it also has a little bit of baggage,
at least for me, because propagate is often a word I use to describe the
larger concept of errors propagating up the stack. That's not the job of
this one little method.
protocool / gist:2048775
Created Mar 16, 2012
Propane caveatPatchor.js snippet to display Instagram images inline
View gist:2048775
var displayInstagramImages = true;
if (displayInstagramImages) {
Campfire.InstagramExpander = Class.create({
initialize: function(chat) { = chat;
var messages =;
for (var i = 0; i < messages.length; i++) {
protocool / gist:1535541
Created Dec 29, 2011
Propane caveatPatchor.js snippet for a /clear command
View gist:1535541
Add a /clear command to clear out the chat transcript in Propane.
Place this snippet into:
~Library/Application Support/Propane/unsupported/caveatPatchor.js
function(message) {
var match;
if (match = message.match(/^\/clear\s*$/)) {
protocool / displayDataURLImages_fragment.js
Created May 26, 2011
Propane caveatPatchor.js hack to display data:image urls inline as images
View displayDataURLImages_fragment.js
if (displayDataURLImages) {
Campfire.DataImageURLExpander = Class.create({
initialize: function(chat) { = chat;
var messages =;
for (var i = 0; i < messages.length; i++) {
protocool / gist:948666
Created Apr 29, 2011
A gist that shows how I'm embedding gists into Propane. Probably crappy but at least it feels a bit meta...
View gist:948666
if (displayExpandedGists) {
Campfire.GistExpander = Class.create({
initialize: function(chat) { = chat;
var messages =;
for (var i = 0; i < messages.length; i++) {
protocool / caveatPatchor.js
Created Feb 14, 2011
Sample caveatPatchor.js file for use in Propane 1.1.2 and above
View caveatPatchor.js
As of version 1.1.2, Propane will load and execute the contents of
~Library/Application Support/Propane/unsupported/caveatPatchor.js
immediately following the execution of its own enhancer.js file.
You can use this mechanism to add your own customizations to Campfire
in Propane.
Below you'll find two customization examples.
protocool / caveatPatchor.js
Created Feb 11, 2011
Sample Propane caveatPatchor.js file
View caveatPatchor.js
Sample Propane caveatPatchor.js file based on tmm1's avatar hack.
You'll need at least version 1.1.1 to experiment with this:
Once I'm sure exposing this hack-injection point doesn't cause problems
I'll do an official auto-updating version.
As of version 1.1.1, Propane will load and execute the contents of
You can’t perform that action at this time.