Skip to content

Instantly share code, notes, and snippets.

View mwaterfall's full-sized avatar

Michael Waterfall mwaterfall

View GitHub Profile
@mwaterfall
mwaterfall / gist:543667
Created August 22, 2010 11:26
Handling the text encoding attribute in text files
//
// NSString+FileTextEncodingAttribute.h
// Adapted from http://github.com/scrod/nv/blob/master/NSString_NV.m
//
#import <Foundation/Foundation.h>
#include <sys/xattr.h>
@interface NSString (FileTextEncodingAttribute)
@mwaterfall
mwaterfall / gist:953647
Created May 3, 2011 16:16
Determine whether iPhone is displaying 12 or 24 hour time
@implementation NSLocale (Misc)
- (BOOL)timeIs24HourFormat {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:self];
[formatter setDateStyle:NSDateFormatterNoStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
NSString *dateString = [formatter stringFromDate:[NSDate date]];
NSRange amRange = [dateString rangeOfString:[formatter AMSymbol]];
NSRange pmRange = [dateString rangeOfString:[formatter PMSymbol]];
BOOL is24Hour = (amRange.location == NSNotFound && pmRange.location == NSNotFound);
@mwaterfall
mwaterfall / gist:953659
Created May 3, 2011 16:26
Suppressing depreciation warnings that have been addressed
// Depreciation Suppression
@protocol SuppressDepreciationWarning
- (void)setStatusBarHidden:(BOOL)hidden animated:(BOOL)animated; // UIApplication - Deprecated in iPhone OS 3.2
@end
// Hide status bar
if ([UIApplication instancesRespondToSelector:@selector(setStatusBarHidden:withAnimation:)]) {
[SharedApplication setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
} else {
[(id <SuppressDepreciationWarning>)SharedApplication setStatusBarHidden:YES animated:YES]; // Depreciated
@mwaterfall
mwaterfall / pypi_check_for_updates.py
Created November 7, 2012 16:45
Check for package updates on PyPI
#!/usr/bin/env python
# Taken from
# http://code.activestate.com/recipes/577708-check-for-package-updates-on-pypi-works-best-in-pi/
import xmlrpclib
import pip
pypi = xmlrpclib.ServerProxy('http://pypi.python.org/pypi')
for dist in pip.get_installed_distributions():
@mwaterfall
mwaterfall / python.rb
Last active December 23, 2015 10:29
Homebrew Formula for Python 2.7.3 with UCS4 support
require 'formula'
class Python < Formula
homepage 'http://www.python.org'
head 'http://hg.python.org/cpython', :using => :hg, :branch => '2.7'
url 'http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2'
sha1 '842c4e2aff3f016feea3c6e992c7fa96e49c9aa0'
option :universal
option 'quicktest', 'Run `make quicktest` after the build (for devs; may fail)'
@mwaterfall
mwaterfall / redis.rb
Created September 20, 2013 20:45
Homebrew Formula for Redis 2.6.16
require 'formula'
class Redis < Formula
homepage 'http://redis.io/'
url 'http://download.redis.io/releases/redis-2.6.16.tar.gz'
sha1 'f94c0f623aaa8c310f9be2a88e81716de01ce0ce'
head 'https://github.com/antirez/redis.git', :branch => 'unstable'
fails_with :llvm do
@mwaterfall
mwaterfall / validate.py
Last active December 27, 2015 00:44
Recursively validates all python files with pyflakes that were modified since the last validation, and provides basic stats. Ignores hidden directories.
#
# Recursively validates all python files with pyflakes that were modified
# since the last validation, and provides basic stats. Ignores hidden
# directories.
#
# NOTE:
# You should set your favourite version control system to ignore
# the validate.db file that is used to track when which files
# have changed since last validation.
#
@mwaterfall
mwaterfall / LineHeightOverlay.js
Last active March 19, 2018 13:03
Line Height Overlay Bookmarklet
// Line Height Bookmarklet
// javascript:(function(lineHeight) %7B%0A if (window.guide) %7B%0A document.body.removeChild(window.guide)%3B%0A window.guide %3D null%3B%0A %7D else %7B%0A window.guide %3D document.createElement("div")%3B%0A guide.style.id %3D "grid_overlay"%3B%0A guide.style.position %3D "absolute"%3B%0A guide.style.left %3D "0"%3B%0A guide.style.top %3D "-1px"%3B%0A guide.style.width %3D "100%25"%3B%0A guide.style.height %3D (document.body.clientHeight > document.documentElement.clientHeight) %3F document.body.clientHeight %2B "px" %3A "100%25"%3B%0A guide.style.pointerEvents %3D "none"%3B%0A guide.style.userSelect %3D "none"%3B%0A guide.style.background %3D "linear-gradient(rgba(0%2C 119%2C 179%2C 0.2) 1px%2C transparent 1px) left top %2F " %2B lineHeight %2B " " %2B lineHeight%3B%0A document.body.appendChild(guide)%0A %7D%0A%7D)("27px")%3B%0A
(function(lineHeight) {
if (window.guide) {
document.body.removeChild(window.guide);
window.guide =
@mwaterfall
mwaterfall / gist:953656
Created May 3, 2011 16:23
Useful Objective-C Preprocessor Macros
#define ApplicationDelegate ((MyAppDelegate *)[[UIApplication sharedApplication] delegate])
#define UserDefaults [NSUserDefaults standardUserDefaults]
#define SharedApplication [UIApplication sharedApplication]
#define Bundle [NSBundle mainBundle]
#define MainScreen [UIScreen mainScreen]
#define ShowNetworkActivityIndicator() [UIApplication sharedApplication].networkActivityIndicatorVisible = YES
#define HideNetworkActivityIndicator() [UIApplication sharedApplication].networkActivityIndicatorVisible = NO
#define NetworkActivityIndicatorVisible(x) [UIApplication sharedApplication].networkActivityIndicatorVisible = x
#define NavBar self.navigationController.navigationBar
#define TabBar self.tabBarController.tabBar
struct ImageDescriptor<ImageReference> {
var imageReference: ImageReference
var properties: UIImageView.Properties
}
extension UIImageView {
struct Properties {
var contentMode: UIViewContentMode
var backgroundColor: UIColor
var tintColor: UIColor