This guide assumes you already have a functioning Dokku installation, along with the Dokku MySQL plugin and the Dokku letsencrypt plugin. It also assumes you want to use ghost at the root of a domain.
dokku apps:create ghostblog.com
I hereby claim:
To claim this, I am signing this object:
| import Foundation | |
| precedencegroup GreaterBPrecedence { | |
| associativity: left | |
| higherThan: LogicalConjunctionPrecedence | |
| } | |
| precedencegroup EqualBPrecedence { | |
| associativity: left | |
| higherThan: GreaterBPrecedence |
| extension CollectionType { | |
| /// Returns the element at the specified index iff it is within bounds, otherwise nil. | |
| subscript (safe index: Index) -> Generator.Element? { | |
| return indices.contains(index) ? self[index] : nil | |
| } | |
| } | |
| extension Int { | |
| func times(thing: Void -> Void) -> Void { | |
| for _ in 0..<self { |
| // | |
| // KeyboardListener.swift | |
| // | |
| // Created by Patrick B. Gibson on 7/16/16. | |
| // | |
| import UIKit | |
| protocol KeyboardListener: AnyObject { | |
| var view: UIView! { get } |
| // In Swift, functions can be defined with identical parameter types, but different return types. | |
| func isHello(string: String) -> Bool { | |
| if string == "Hello" { | |
| return true | |
| } else { | |
| return false | |
| } | |
| } |
I hereby claim:
To claim this, I am signing this object:
| <?xml version="1.0" encoding="UTF-8"?> | |
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
| <plist version="1.0"> | |
| <dict> | |
| <key>Author</key> | |
| <string>Patrick B. Gibson</string> | |
| <key>Builder Version</key> | |
| <string>8536.30.1</string> | |
| <key>CFBundleDisplayName</key> | |
| <string>WWDC Accordion Smash</string> |