- https://nparry.com/2015/11/14/letsencrypt-cloudfront-s3.html
- https://letsencrypt.readthedocs.org/en/latest/using.html#letsencrypt-auto
- http://marketing.intracto.com/renew-https-certificate-on-amazon-cloudfront
- https://www.paulwakeford.info/2015/11/24/letsencrypt/
- https://keyes.ie/aws-upload-letsencrypt-certificate/#comment-2445607246
CFRunLoopSource is cool. It lets you build behavior similar to the mechanisms that drive setNeedsLayout and setNeedsDisplay in UIKit.
I found myself in need of something like this a couple of times. It's great to know that no matter how many times I say I need to update something, I will get a single callback at the end of the run loop that gives me a chance to perform my work.
Here is a little Swift wrapper that makes the API easier to deal with.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // | |
| // ToneOutputUnit.swift | |
| // | |
| // This is a Swift 3 class (which should be instantiated as a singleton object) | |
| // that can play a single tone of arbitrary tone and frequency on iOS devices | |
| // using run-time sinewave synthesis and the Audio Unit v3 API with RemoteIO. | |
| // | |
| // Created by Ronald Nicholson rhn@nicholson.com on 2/20/2016. | |
| // revised 2016-Sep-08 for Swift 3 | |
| // http://www.nicholson.com/rhn/ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import Foundation | |
| typealias ObserverRemover = () -> Void | |
| /*! An observable value | |
| An `Observable` wraps any value. If you add an observer handler, then every time the value is set, your handler will be | |
| called with the new value. Adding an observer returns a closure that is used to remove the observer. Note that the handler | |
| is called every time the value is set, even if this does not change the value. If you only want the handler to be called | |
| when the value changes, see `CoalescingObservable`. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // | |
| // NetworkIndicatorManager.swift | |
| // Indicator | |
| // | |
| // Created by Curt Clifton on 5/17/16. | |
| // Copyright © 2016 curtclifton.net. All rights reserved. | |
| // | |
| import Foundation | |
| import UIKit |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Created by Vasily Ulianov on 09.02.17, updated in 2019. | |
| // License: MIT | |
| import Foundation | |
| /// Subclass of `Operation` that adds support of asynchronous operations. | |
| /// 1. Call `super.main()` when override `main` method. | |
| /// 2. When operation is finished or cancelled set `state = .finished` or `finish()` | |
| open class AsynchronousOperation: Operation { | |
| public override var isAsynchronous: Bool { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import Foundation | |
| extension FileHandle { | |
| /// Return an iterator over the bytes in the file. | |
| /// | |
| /// - returns: An iterator for UInt8 elements. | |
| public func bytes() -> FileHandleByteIterator { | |
| return FileHandleByteIterator(fileHandle: self) | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // | |
| // Example of Using AVAudioPlayer | |
| // to play a buffer of (synthesized) audio samples from memory | |
| // by converting a [Float] buffer into an in-memory WAV file | |
| // | |
| // Copyright © 2019 Ronald H Nicholson Jr. All rights reserved. | |
| // (re)Distribution permitted under the 3-clause New BSD license. | |
| // | |
| import Foundation |
OlderNewer