Skip to content

Instantly share code, notes, and snippets.

cargo rustc --release -- -C no-stack-check -C target-cpu=native --emit llvm-ir
@zorgiepoo
zorgiepoo / protocol-generics.m
Last active August 29, 2015 14:27
Protocols break Obj-C generics in every sense (rdar://22204367)
@protocol M
@end
NSArray<M, NSValue *, NSURL, NSArray <id <M>>> *foo = @[@"a"];
NSNumber *bar = foo[0];
NSLog(@"%@", bar);
// No warnings
@zorgiepoo
zorgiepoo / copyfromnetworkvolume.m
Last active October 9, 2015 05:30
Can't figure out how to copy a symbolic link, or a directory containing a symbolic link, that is originating on a different Network Volume (eg: in my case it's via AFP, or is it SMB2 these days..?)
// Note that on the command line cp -R /Volumes/mayur/bar.txt /Users/msp/Desktop/bar.txt
// works just fine; the symbolic link is copied, and it's not followed
// But I have *no idea* how to do this programatically as shown below
// (Note: My end goal is being able to copy an app from a volume to my local disk, but
// it fails when it encounters a symbolic link)
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
NSURL *sourceURL = [NSURL fileURLWithPath:@"/Volumes/mayur/bar.txt"]; // this is a symbolic link
NSURL *destinationURL = [NSURL fileURLWithPath:@"/Users/msp/Desktop/bar.txt"];
// this outputs 1, so the source does exist
// This uses a legacy version of swift
import Foundation
class Model: NSObject, NSSecureCoding {
let bar: String
init(bar: String) {
self.bar = bar
}
// I'm not using the passed editRange and delta because I've found them to be quite misleading...
// This happens to be a new API (macOS 10.11) so maybe it's not really battle tested or I don't know what I'm doing
// Either way I'd like to support older systems so for portability sake it's easier to not use these parameters
- (void)textStorage:(NSTextStorage *)textStorage didProcessEditing:(NSTextStorageEditActions)editedMask range:(NSRange)editedRange changeInLength:(NSInteger)__unused delta
{
if ((editedMask & NSTextStorageEditedCharacters) != 0)
{
//[self updateTextProcessingForTextStorage:textStorage];
//NSLog(@"Edited range: %lu, %lu", editedRange.location, editedRange.length);
[textStorage removeAttribute:NSBackgroundColorAttributeName range:NSMakeRange(0, textStorage.length)];
@zorgiepoo
zorgiepoo / ui-tests
Last active December 24, 2016 00:45
Unable to run UI Tests because Xcode Helper does not have permission to use Accessibility.
To enable UI testing, go to the Security & Privacy pane in System Preferences, select the Privacy tab,
then select Accessibility, and add Xcode Helper to the list of applications allowed to use Accessibility.
@zorgiepoo
zorgiepoo / printf_ex.idr
Last active December 20, 2017 20:14
Type-safe printf in Idris including a practical run-time validation example -- https://zgcoder.net/ramblings/typesafe-printf.html
%default total
Prefix : Type
Prefix = String
data Format = Number Prefix Format | Str Prefix Format | End Prefix
parse : List Char -> String -> Format
parse [] prefix_acc = End prefix_acc
parse ('%' :: 'd' :: xs) prefix_acc = Number prefix_acc (parse xs "")