Skip to content

Instantly share code, notes, and snippets.

View TimOliver's full-sized avatar
😆
Out for a byte. Back in a bit.

Tim Oliver TimOliver

😆
Out for a byte. Back in a bit.
View GitHub Profile
@TimOliver
TimOliver / ICComicLoader+PageOrdering.m
Last active August 29, 2015 14:10
This is the method used to sort the filenames of pages inside an archive for iComics v1.1.
- (NSComparisonResult)sortedArchiveEntryIndex:(NSString *)firstName againstIndex:(NSString *)secondName
{
//if first name is empty, assume ascending
if ([firstName length] == 0)
return NSOrderedAscending;
if ([secondName length] == 0)
return NSOrderedDescending;
//convert the names to raw bytes so they can be manually compared on a numerical basis

Keybase proof

I hereby claim:

  • I am TimOliver on github.
  • I am timoliver (https://keybase.io/timoliver) on keybase.
  • I have a public key whose fingerprint is E3FA 5C22 4002 BC25 C8E6 B8B5 96AB B712 3936 A658

To claim this, I am signing this object:

sudo sysctl -w kern.timer.coalescing_enabled=0
@TimOliver
TimOliver / TODrawInsetBevelRoundedRect.c
Last active February 13, 2016 08:40
A C function demonstrating how to draw the iOS 5-6 beveled effect that was prevalent in grouped UITableView implementations.
void DrawInsetBeveledRoundedRect( CGContextRef context, CGRect rect, CGFloat radius, UIColor *fillColor )
{
//contract the bounds of the rectangle in to account for the stroke
CGRect drawRect = CGRectInset(rect, 1.0f, 1.0f);
//contract the height by 1 to account for the white bevel at the bottom
drawRect.size.height -= 1.0f;
//Save the current state so we don't persist anything beyond this operation
CGContextSaveGState(context);
@TimOliver
TimOliver / lhasa-build-ios.sh
Last active June 10, 2016 09:34
A Bash script for building an iOS-compatible binary of the lhasa library
#!/bin/bash
# Global build settings
export SDKPATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk
export SIMSDKPATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk
export MIN_IOS_VERSION=7.0
export HOST=arm-apple-darwin
export LDFLAGS_NATIVE="-isysroot $SDKPATH"
export LDFLAGS_SIMULATOR="-isysroot $SIMSDKPATH"
export TASN1_CFLAGS="-Ilibtasn1/include"
@TimOliver
TimOliver / CopyRealmFileToLibrary.swift
Last active February 28, 2017 05:24
A quick code snippet showing how to make an already-created Realm file private
let fileManager = FileManager.default
var configuration = Realm.Configuration()
let defaultRealmURL = configuration.fileURL!
// Get the path to the Library directory and append 'default.realm' to it
let libraryDirectoryPath = NSSearchPathForDirectoriesInDomains(.libraryDirectory, .userDomainMask, true).first!
let libraryDirectoryURL = URL(fileURLWithPath: libraryDirectoryPath)
let newRealmURL = libraryDirectoryURL.appendingPathComponent(defaultRealmURL.lastPathComponent)
// There is a user-created default.realm in the Documents directory
@TimOliver
TimOliver / UIScrollView+ZoomToPoint.m
Created August 2, 2013 07:25
A small category for UIScrollView to programatically zoom to a CGPoint as opposed to a CGRect. Currently in use in my iOS app, iComics (http://icomics.co)
@implementation UIScrollView (ZoomToPoint)
- (void)zoomToPoint:(CGPoint)zoomPoint withScale: (CGFloat)scale animated: (BOOL)animated
{
//Normalize current content size back to content scale of 1.0f
CGSize contentSize;
contentSize.width = (self.contentSize.width / self.zoomScale);
contentSize.height = (self.contentSize.height / self.zoomScale);
//translate the zoom point to relative to the content rect
Thread : Crashed: com.apple.main-thread
0 OpenGLES 0x0000000187b03930 +[EAGLContext setCurrentContext:] + 84
1 OpenGLES 0x0000000187b0391c +[EAGLContext setCurrentContext:] + 64
2 CoreImage 0x0000000184c28600 __is_gpu_A9_or_higher_block_invoke + 188
3 libdispatch.dylib 0x000000019999d770 _dispatch_client_callout + 16
4 libdispatch.dylib 0x000000019999e5b4 dispatch_once_f + 80
5 CoreImage 0x0000000184c28540 is_gpu_A9_or_higher + 60
6 CoreImage 0x0000000184c08ad8 CI::GLContext::surface_rowbytes_alignment_for_output(CI::PixelFormat) const + 24
7 CoreImage 0x0000000184c1be18 CI::_get_bitmap(CI::Context*, CI::Image*, CGRect, CGColorSpace*, CI::Bitmap*) + 140
8 CoreImage 0x0000000184c1bcdc CI::image_get_bitmap(CI::Context*, CI::Image*, CGRect, CGColorSpace*, CI::Bitmap*, unsigned long) + 732
######################
# Build Script for
# Producing a fat
# Cocoa framework binary
######################
PROJECT_NAME="MyAppExample"
SCHEME_NAME="MyAppFramework"
FRAMEWORK_NAME="MyApp"
BUILD_DIR="Builds"
@TimOliver
TimOliver / libdsm-build-macos.sh
Last active March 28, 2019 04:00
A modified version of the libdsm build script for macOS
#!/bin/bash
# Global build settings
export SDKPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
export MIN_MACOS_VERSION=10.10
export HOST=x86_64-apple-darwin
export LDFLAGS_NATIVE="-isysroot $SDKPATH"
export TASN1_CFLAGS="-Ilibtasn1/include"
export TASN1_LIBS="-Llibtasn1 -ltasn1"
export ARCH="x86_64"