Skip to content

Instantly share code, notes, and snippets.

Dan Rosenstark drosenstark

Block or report user

Report or block drosenstark

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@drosenstark
drosenstark / Permutations.swift
Created Apr 26, 2019
String permutations in a way that makes some sense
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]]) {
@drosenstark
drosenstark / swiftWatchAndRun.sh
Created Apr 21, 2019
Watch and Swift file and run it on change
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
@drosenstark
drosenstark / paste_from_shell.sh
Last active Apr 17, 2019
Paste the clipboard in to your shell for realz
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
@drosenstark
drosenstark / xctest-in-repl.swift
Created Mar 17, 2019
Run XCTest stuff using the Swift command line on macOS
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!")
}
@drosenstark
drosenstark / WeakArray.swift
Created Nov 18, 2018
Hold protocolized objects weakly (with just a few, minor changes)
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> {
@drosenstark
drosenstark / mermaid-to-diagrams.rb
Last active May 21, 2018
Convert all Mermaid Markdown files (mermaid-*.md) to jpg with white background.
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
@drosenstark
drosenstark / delete-all-ios-simulators.rb
Created Apr 17, 2018
Deletes all your iOS Simulators
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
@drosenstark
drosenstark / git-rbranch
Last active Feb 8, 2018
Creates a local branch and pushes it up
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;
}
@drosenstark
drosenstark / git-stash-pick
Created Jun 8, 2017
Choose a git stash to apply (or other operation)
View git-stash-pick
#!/usr/bin/env ruby
#git-stash-pick by Dan Rosenstark
# can take a command, default is apply
command = ARGV[0]
if !command
command = "apply"
puts "Using git stash #{command}.\nYou can choose a different command, e.g., git stash-pick pop"
end
ARGV.clear
You can’t perform that action at this time.