View NSArray+Filter.m
#import "NSArray+Filter.h" | |
@implementation NSArray (Filter) | |
- (NSArray *) filteredArrayUsingBlock:(BOOL (^)(id obj))block { | |
NSIndexSet *const filteredIndexes = [self indexesOfObjectsPassingTest:^BOOL (id _Nonnull obj, NSUInteger idx, BOOL *_Nonnull stop) { | |
return block(obj); | |
}]; | |
return [self objectsAtIndexes:filteredIndexes]; |
View Permutations.swift
import Foundation | |
func permute(_ s: String) -> [String] { | |
var arr = Array(s) | |
var permutations = [[Character]]() | |
permute(&arr, 0, &permutations) | |
return permutations.map { String($0) } | |
} | |
func permute<T>(_ arr: inout [T], _ k: Int, _ result: inout [[T]]) { |
View swiftWatchAndRun.sh
#!/bin/sh | |
# swiftWatchAndRun | |
if [ $# -ne 1 ]; then | |
echo "Use like this:" | |
echo " $0 filename-to-watch" | |
exit 1 | |
fi | |
if which fswatch >/dev/null; then | |
echo "Watching swift file $1" | |
while true; do fswatch --one-event $1 >/dev/null && echo "----------------"; echo `date +"%m-%d-%y %I:%M%p"`; echo "----------------" && swift $1; sleep 0.1; done |
View paste_from_shell.sh
#!/bin/bash | |
pbpaste > /tmp/shellpaste.sh | |
echo "Execute this?" | |
cat /tmp/shellpaste.sh | |
echo | |
read -p "Press enter to run it..." | |
bash /tmp/shellpaste.sh |
View xctest-in-repl.swift
/// Run with: | |
/// swift -F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks xctest-in-repl.swift | |
import Foundation | |
import XCTest | |
class ATest : XCTestCase { | |
func testIt() { | |
print("Oh yeah, it's on") | |
XCTAssertTrue(false, "That needed to be true!") | |
} |
View WeakArray.swift
@objc public protocol Equalable: class { | |
@objc func isEqual(_ object: Any?) -> Bool | |
} | |
/// Store AnyObject subclasses weakly | |
/// * Note: if you wish to use a protocol, it must: | |
/// - be marked with `@objc` | |
/// - have all methods marked with `@objc` | |
/// - refine Equalable | |
public struct WeakArray<Element: Equalable> { |
View mermaid-to-diagrams.rb
#!/usr/bin/env ruby | |
def convert_mermaid_md_to_jpg | |
Dir["mermaid-*.md"].each do |f| | |
slug = f["mermaid-".length...f.length-".md".length] | |
command = "~/node_modules/.bin/mmdc -i mermaid-#{slug}.md -o mermaid-#{slug}.png -b '#FFFFFF'" | |
puts "Converting mermaid-#{slug}.md to mermaid-#{slug}.png" | |
`#{command}` | |
end | |
end |
View delete-all-ios-simulators.rb
#!/usr/bin/env ruby | |
`xcrun simctl shutdown all` | |
device_lines = `xcrun simctl list`.split("\n") | |
device_lines.each do |line| | |
line.strip! | |
matches = /[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}/.match(line) | |
if matches | |
`xcrun simctl delete #{matches}` | |
puts "Deleting sim with ID #{matches}" | |
end |
View git-rbranch
#!/bin/bash | |
git checkout -b $1 && git push --set-upstream origin $1 |
View dansWorkflowyModsDark.css
/* | |
* Name: Workflowly Dark | |
* Author: Froyok | |
*/ | |
body | |
{ | |
background-color: #121212; | |
color:white; | |
} |
NewerOlder