Skip to content

Instantly share code, notes, and snippets.

View mwaterfall's full-sized avatar

Michael Waterfall mwaterfall

View GitHub Profile
extension UIImageView {
func apply(_ imageDescriptor: ImageDescriptor<UIImage>)
func apply(
_ imageDescriptor: ImageDescriptor<URL>,
loading loadingImageDescriptor: ImageDescriptor<UIImage>? = nil,
failure failureImageDescriptor: ImageDescriptor<UIImage>? = nil
)
}
struct ImageDescriptor<ImageReference> {
var imageReference: ImageReference
var properties: UIImageView.Properties
}
extension UIImageView {
struct Properties {
var contentMode: UIViewContentMode
var backgroundColor: UIColor
var tintColor: UIColor
@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 / StringExtensionHTML.swift
Last active May 6, 2024 10:14
Decoding HTML Entities in Swift
// Very slightly adapted from http://stackoverflow.com/a/30141700/106244
// 99.99% Credit to Martin R!
// Mapping from XML/HTML character entity reference to character
// From http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references
private let characterEntities : [String: Character] = [
// XML predefined entities:
"&quot;" : "\"",
"&amp;" : "&",
@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 / 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 / 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 / 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 / gist:953664
Created May 3, 2011 16:28
NSDate from Internet Date & Time String
//
// NSDate+InternetDateTime.h
// MWFeedParser
//
// Created by Michael Waterfall on 07/10/2010.
// Copyright 2010 Michael Waterfall. All rights reserved.
//
#import <Foundation/Foundation.h>
@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