Skip to content

Instantly share code, notes, and snippets.

View PaulWoodIII's full-sized avatar

Paul Wood III PaulWoodIII

View GitHub Profile
@PaulWoodIII
PaulWoodIII / CurrentValueSubjectToBinding.swift
Last active January 9, 2024 01:20
Bindings over a CurrentValue subject allow you to use combine for side affects
//: [Previous](@previous)
import Foundation
import SwiftUI
import Combine
//: Current Value Subject is a value, a publisher and a subscriber all in one
let currentValueSubject = CurrentValueSubject<Bool, Never>(true)
print(currentValueSubject.value)
#!/bin/bash
# <UDF name="ssh_key" Label="Paste in your public SSH key" default="" example="" optional="false" />
# root ssh keys
mkdir /root/.ssh
echo $SSH_KEY >> /root/.ssh/authorized_keys
chmod 0700 /root/.ssh
# update to latest
@PaulWoodIII
PaulWoodIII / SelectedItems.swift
Created August 19, 2019 00:02
quick example of how to use selection in a SwiftUI list, an ObservableObject provides the content as well
//: [Previous](@previous)
import SwiftUI
import Combine
import PlaygroundSupport
class Context: ObservableObject {
@Published var selectedItems: Set<String>
@Published var items: Array<String>
@PaulWoodIII
PaulWoodIII / UIView+VisualRecursiveDescription.h
Last active February 6, 2022 15:01
Provide Swift with the amazing ability to visually print a UICollectionView's VisualRecursiveDescription
//
// UIView+VisualRecursiveDescription.h
//
// Created by Paul Wood on 8/28/19.
// Copyright © 2019 Paul Wood. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@PaulWoodIII
PaulWoodIII / FetchedResultWidget.swift
Last active January 7, 2022 11:36
FetchRequest generation when sort state is changed
import SwiftUI
import CoreData
import Combine
struct NamesByYearView: View {
@EnvironmentObject var coreDataStack: CoreDataStack
@Environment(\.managedObjectContext) var managedObjectContext
@EnvironmentObject var importer: NameDatabaseImporter
@PaulWoodIII
PaulWoodIII / ImageDownloaderCommonBlocks.h
Last active September 23, 2019 16:19
Obj-C Code needed to show progress of an image downloading using NSURLSession
//
// ImageDownloaderCommonBlocks.h
// AsyncImageDownloader
//
// Created by Paul Wood on 9/23/19.
// Copyright © 2019 Paul Wood. All rights reserved.
//
#ifndef ImageDownloaderCommonBlocks_h
#define ImageDownloaderCommonBlocks_h
@PaulWoodIII
PaulWoodIII / LRUCache.swift
Last active September 19, 2019 14:35
An interview question I solved
//
// main.swift
// LRUCache
//
// Created by Paul Wood on 9/19/19.
// Copyright © 2019 Paul Wood. All rights reserved.
//
import Foundation
import Foundation
class Box<T> {
typealias Observer = (T) -> Void
var observer: Observer?
func bind(observer: Observer?) {
self.observer = observer
}
var value: T {
didSet {
@PaulWoodIII
PaulWoodIII / GCD.swift
Last active September 12, 2019 01:07
Three approaches to the same problem. I think the second is best for swift but I made the third for fun to display the algorithm as a stream, missing the first higher though...
func gcd_recursive(_ a: Int, _ b : Int) -> Int {
let higher = max(a, b)
let lower = min(a, b)
let r = higher % lower
if r == 0 {
return lower
}
return gcd_recursive(lower, r)
}
@PaulWoodIII
PaulWoodIII / summedPair
Created September 9, 2019 18:34
twoSum Leetcode question 1 with Swift Generics
import Foundation
/*
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example:
Given nums = [2, 7, 11, 15], target = 9,