This gist shows how to create a GIF screencast using only free OS X tools: QuickTime, ffmpeg, and gifsicle.
To capture the video (filesize: 19MB), using the free "QuickTime Player" application:
| #!/bin/bash | |
| # https://gist.github.com/949831 | |
| # http://blog.carbonfive.com/2011/05/04/automated-ad-hoc-builds-using-xcode-4/ | |
| # command line OTA distribution references and examples | |
| # http://nachbaur.com/blog/how-to-automate-your-iphone-app-builds-with-hudson | |
| # http://nachbaur.com/blog/building-ios-apps-for-over-the-air-adhoc-distribution | |
| # http://blog.octo.com/en/automating-over-the-air-deployment-for-iphone/ | |
| # http://www.neat.io/posts/2010/10/27/automated-ota-ios-app-distribution.html |
| ACTION | |
| AD_HOC_CODE_SIGNING_ALLOWED | |
| ALTERNATE_GROUP | |
| ALTERNATE_MODE | |
| ALTERNATE_OWNER | |
| ALWAYS_SEARCH_USER_PATHS | |
| ALWAYS_USE_SEPARATE_HEADERMAPS | |
| APPLE_INTERNAL_DEVELOPER_DIR | |
| APPLE_INTERNAL_DIR | |
| APPLE_INTERNAL_DOCUMENTATION_DIR |
Ripped off from adrianshort.org
$ git remote -v
origin https://github.com/hakimel/reveal.js.git (fetch)
origin https://github.com/hakimel/reveal.js.git (push)
People
:bowtie: |
π :smile: |
π :laughing: |
|---|---|---|
π :blush: |
π :smiley: |
:relaxed: |
π :smirk: |
π :heart_eyes: |
π :kissing_heart: |
π :kissing_closed_eyes: |
π³ :flushed: |
π :relieved: |
π :satisfied: |
π :grin: |
π :wink: |
π :stuck_out_tongue_winking_eye: |
π :stuck_out_tongue_closed_eyes: |
π :grinning: |
π :kissing: |
π :kissing_smiling_eyes: |
π :stuck_out_tongue: |
| git branch -m old_branch new_branch # Rename branch locally | |
| git push origin :old_branch # Delete the old branch | |
| git push --set-upstream origin new_branch # Push the new branch, set local branch to track the new remote |
| // https://stackoverflow.com/a/45777692/5536516 | |
| import Foundation | |
| struct MemoryAddress<T>: CustomStringConvertible { | |
| let intValue: Int | |
| var description: String { | |
| let length = 2 + 2 * MemoryLayout<UnsafeRawPointer>.size |
| // | |
| // Coordinator | |
| // | |
| // Created by Ian Keen. | |
| // Copyright Β© 2018 Ian Keen. All rights reserved. | |
| // | |
| import ObjectiveC | |
| import UIKit |
| func debounce<T>(delay: TimeInterval, function: @escaping (T) -> Void, complete: @escaping () -> Void = { }) -> (T) -> Void { | |
| let queue = DispatchQueue(label: "Debouncer") | |
| var current: DispatchWorkItem? | |
| return { input in | |
| current?.cancel() | |
| let new = DispatchWorkItem { | |
| function(input) | |
| complete() | |
| } |
| struct AnyCodingKey: CodingKey { | |
| var stringValue: String | |
| var intValue: Int? | |
| init?(intValue: Int) { | |
| self.intValue = intValue | |
| self.stringValue = "\(intValue)" | |
| } | |
| init?(stringValue: String) { | |
| self.intValue = nil |