Skip to content

Instantly share code, notes, and snippets.

View stuartcarnie's full-sized avatar

Stuart Carnie stuartcarnie

View GitHub Profile
@stuartcarnie
stuartcarnie / gist:1314463
Created October 25, 2011 21:54
Example of non-determinism of finalizers. This will crash with ObjectDisposedException on v4.0 x64 and x86 runtimes.
using System;
namespace FinalizerTest
{
class Program
{
static void Main(string[] args)
{
for (var i = 0; i < 10000; i++)
{
@stuartcarnie
stuartcarnie / UIAlertView_BlocksExtension.h
Created February 20, 2012 05:49
UIAlertView block extension
#import <UIKit/UIKit.h>
@interface UIAlertView (BlocksExtension)<UIAlertViewDelegate>
+ (id)alertViewWithTitle:(NSString *)title message:(NSString *)message completionBlock:(void (^)(NSUInteger buttonIndex))block cancelButtonTitle:(NSString *)cancelButtonTitle otherButtonTitles:(NSString *)otherButtonTitles, ... NS_REQUIRES_NIL_TERMINATION;
@end
@stuartcarnie
stuartcarnie / grabmsg.py
Created June 6, 2012 00:30
grab raw messages from gmail / imap
#!/usr/bin/env python
import imaplib
import getpass
import os
import argparse
import sys
__productname__ = 'grabmsg'
__version__ = "0.1"
@stuartcarnie
stuartcarnie / increment_version.py
Created August 2, 2012 22:48
Increment CFBundleVersion of the specified plist file
#!/bin/env python
# Copyright (c) 2012 Stuart Carnie
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
@stuartcarnie
stuartcarnie / main.m
Created September 16, 2012 04:30
tail call with fake msgSend in Objective C
#import <Foundation/Foundation.h>
#import <objc/message.h>
extern id fake_msgSend(id, SEL, int) __attribute__((noinline));
@interface Foo : NSObject
- (id)foo:(int)n;
@end
@stuartcarnie
stuartcarnie / .zshrc
Last active August 7, 2020 01:43
My standard .zshrc with oh-my-zsh
# Path to your oh-my-zsh configuration.
ZSH=$HOME/.oh-my-zsh
# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
ZSH_THEME="juanghurtado"
@stuartcarnie
stuartcarnie / clear-apc.php
Last active February 25, 2024 11:07
Self-contained php script to clear shared-memory cache in php5-fpm via command-line. In this instance it is clearing APC, but can be easily changed to clear other shared-memory caches.
#!/usr/bin/env php
<?php
/*
Copyright 2013 Stuart Carnie and other contributors
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
@stuartcarnie
stuartcarnie / json-pretty
Last active December 17, 2015 17:39
Script to pretty json input
#!/usr/bin/env python
r"""Command-line tool to validate and pretty-print JSON
Usage::
$ echo '{"json":"obj"}' | python -m json.tool
{
"json": "obj"
}
$ echo '{ 1.2:3.4}' | python -m json.tool
@stuartcarnie
stuartcarnie / tsm.ksy
Last active March 25, 2017 23:41
Kaitai Struct definition for InfluxDB .tsm files
meta:
id: tsm
title: InfluxDB TSM file
license: MIT
file-extension: tsm
endian: be
seq:
- id: header
type: header
@stuartcarnie
stuartcarnie / tmux-reverse
Created April 7, 2017 23:04
One-liner to ensure italics are rendered as reverse when using tmux
mkdir $HOME/.terminfo/ && \
screen_terminfo="screen-256color" && \
infocmp "$screen_terminfo" | sed \
-e 's/^screen[^|]*|[^,]*,/screen-256color|screen with italics support,/' \
-e 's/%?%p1%t;3%/%?%p1%t;7%/' \
-e 's/smso=[^,]*,/smso=\\E[7m,/' \
-e 's/rmso=[^,]*,/rmso=\\E[27m,/' \
-e '$s/$/ sitm=\\E[3m, ritm=\\E[23m,/' > /tmp/screen.terminfo && \
tic /tmp/screen.terminfo && \
echo set -g default-terminal "screen-256color" | tee -a ~/.tmux.conf