Skip to content

Instantly share code, notes, and snippets.

gcatlin / gist:1847248
Created Feb 16, 2012
Install specific version of Homebrew formula
View gist:1847248
brew update
brew versions FORMULA
cd `brew --prefix`
git checkout HASH Library/Formula/FORMULA.rb # use output of "brew versions"
brew install FORMULA
git checkout -- Library/Formula/FORMULA.rb # reset formula
## Example: Using Subversion 1.6.17
gcatlin / glfw-metal-example.m
Last active Feb 24, 2022
Minimal C GLFW Metal example
View glfw-metal-example.m
// cc glfw-metal-example.m -lGLFW -framework AppKit -framework Metal -framework QuartzCore
#include <GLFW/glfw3.h>
#include <GLFW/glfw3native.h>
#import <Metal/Metal.h>
#import <QuartzCore/CAMetalLayer.h>
gcatlin / sdl-metal-example.m
Last active Feb 19, 2022
Minimal C SDL2 Metal example
View sdl-metal-example.m
// cc sdl-metal-example.m `sdl2-config --cflags --libs` -framework Metal -framework QuartzCore && ./a.out
#include <SDL.h>
#import <Metal/Metal.h>
#import <QuartzCore/CAMetalLayer.h>
int main (int argc, char *args[])
gcatlin / glfw-opengl-example.c
Last active Feb 19, 2022
Minimal C GLFW OpenGL example
View glfw-opengl-example.c
// cc glfw-opengl-example.c glad.c -lglfw
#include "glad.h" //
#include <GLFW/glfw3.h>
static void quit(GLFWwindow *window, int key, int scancode, int action, int mods)
if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) {
glfwSetWindowShouldClose(window, GLFW_TRUE);
gcatlin / sdl-opengl-example.c
Last active Nov 22, 2021
Minimal C SDL2 OpenGL example
View sdl-opengl-example.c
// cc main.c glad.c -lSDL2
#include "glad.h" //
#include <SDL2/SDL.h>
#include <SDL2/SDL_opengl.h>
#include <stdbool.h>
int main()
gcatlin / core-audio-sine-wave.c
Last active Nov 26, 2020
Core Audio sine wave example
View core-audio-sine-wave.c
// To run:
// clang core-audio-sine-wave.c -framework AudioUnit && ./a.out
#include <AudioUnit/AudioUnit.h>
#define SAMPLE_RATE 48000
#define TONE_FREQUENCY 440
#define M_TAU 2.0 * M_PI
OSStatus RenderSineWave(
void *inRefCon,
gcatlin / ncurses.diff
Created Jul 12, 2012
Homebrew Ncurses clang patch
View ncurses.diff
diff --git a/ncurses.rb b/ncurses.rb
index 1067083..8cc12bc 100644
--- a/ncurses.rb
+++ b/ncurses.rb
@@ -23,4 +23,9 @@ class Ncurses < Formula
system "make"
system "make install"
+ def patches

Keybase proof

I hereby claim:

  • I am gcatlin on github.
  • I am gcatlin ( on keybase.
  • I have a public key ASDOkhxPwBV28ND_Pzm3rzNcVWViUFUakYvCgFb8dC-kiQo

To claim this, I am signing this object:

gcatlin / gist:1897059
Created Feb 24, 2012
Set short keyboard delay and fast repeat rate on OS X
View gist:1897059
# Source:
defaults write NSGlobalDomain InitialKeyRepeat -int 7
defaults write NSGlobalDomain KeyRepeat -int 0
gcatlin / multiple-error-handlers.php
Created May 30, 2013
Adds support for multiple error handlers in PHP
View multiple-error-handlers.php
function append_error_handler($handler) {
set_error_handlers(array(set_error_handler($handler), $handler));
function prepend_error_handler($handler) {
set_error_handlers(array($handler, set_error_handler($handler)));