Skip to content

Instantly share code, notes, and snippets.

View JoshuaSullivan's full-sized avatar

Joshua Sullivan JoshuaSullivan

View GitHub Profile
JoshuaSullivan / Grid.swift
Last active December 19, 2023 17:16
A data structure representing a 2D grid of homogeneous values. Has methods for examining data geometrically and avoids out-of-range exceptions that are common when working with Arrays.
/// Represents a point on a grid.
/// - Note: Instances of this type are not bound to any particular Grid and may be invalid depending on the size of the grid.
public struct GridCoordinate: Equatable, Hashable, CustomStringConvertible {
/// The column (East/West) position of this coordinate.
public let x: Int
/// The row (North/South) position of this coordinate.
JoshuaSullivan /
Last active July 29, 2023 20:55
Midjourney Quick-Start Guide

Midjourney Quick-Start Guide

Midjourney is a commercial image generation and transformation AI service. Similar services include:

  • DALL-E 2 (Microsoft)
  • Nightcafe
  • Stable Diffusion (Open Source)

Midjourney is a somewhat opinionated AI and tends to try to create "art". It has a very high level of coherence, which means elements in the resulting images tend to have natural relationships with a low level of glitches and random weirdness. In my opinion, Midjourney has much higher quality "out of the box", trouncing the competition unless the user is quite advanced at effectively utilizing both positive and negative prompt particles.

JoshuaSullivan / DataParser.swift
Last active November 21, 2020 17:13
A helper for translating Advent of Code puzzle input into usable values.
import Foundation
/// A type that can be initialized from a string value.
public protocol StringInitable {
/// Initialize the object with a string.
/// - Note: This operation can fail if the string is not valid for this object type.
init?(_ string: String)
JoshuaSullivan / ColorAbsoluteDifference.txt
Created October 11, 2020 22:44
Enumerations of the 3 new CoreImage Filters in iOS 14.0
Color Absolute Difference
iOS: 14
macOS: 11.0
Color Adjustment, Video, Interlaced, Non-Square Pixels, Still Image, Built-In
JoshuaSullivan / CoreImageFilterEnumeration.swift
Created October 11, 2020 22:35
A Swift Playground that will enumerate the properties of all of the CoreImage filters.
import Foundation
import CoreImage
struct FilterInput {
struct ValueRange {
let minValue: Float
let maxValue: Float
let sliderMin: Float?
let sliderMax: Float?
JoshuaSullivan / synonym-search.swift
Created March 30, 2020 22:21
Uses the NaturalLanguage framework combined with a thesaurus API to replace adjectives in a sentence with synonyms. This is designed to be run in a Swift Playground.
import UIKit
import NaturalLanguage
import PlaygroundSupport
//: Your secret API key from `` goes here.
let thesaurusKey = ""
//: The string you want to work on.
var testString = "The bright sun set behind the green hills. Thin clouds streaked the red sky."
JoshuaSullivan / display-link-combine-playground.swift
Created November 10, 2019 00:14
This gist demonstrates how we can wrap CADisplayLink to get frame refresh events via a published stream rather than the traditional `target:selector:` methodology.
JoshuaSullivan /
Last active March 19, 2024 15:17
An enumeration of iOS 13 Core Image filters.

Core Image Filters

iOS 13 has 218 filters.

New Filters in iOS 13

  • CIDocumentEnhancer
  • CIGaborGradients
  • CIKeystoneCorrectionCombined
  • CIKeystoneCorrectionHorizontal
  • CIKeystoneCorrectionVertical
JoshuaSullivan /
Last active January 5, 2024 15:18
Core Image Filter Details

Core Image Filters

iOS 12.2 has 207 filters.

Accordion Fold Transition (CIAccordionFoldTransition)

First available: iOS 8

Transitions from one image to another of a differing dimensions by unfolding.

JoshuaSullivan / AnalyticsBackEndProtocol.swift
Created December 18, 2018 21:17
A guide to mocking objects with static methods...
protocol AnalyticsBackEnd {
static func log(_ name: String)
extension Analytics: AnalyticsBackEnd {}