Examples here use the default settings, see the VidStab readme on GitHub for more advanced instructions.
Here's an example video I made
brew install ffmpeg --with-libvidstab
| # Put these two functions at the top of your `.zshrc` or `.bashrc` | |
| function _timestamp_ms() { | |
| if [[ "$(uname)" == "Darwin" ]]; then | |
| echo $(gdate +%s%3N) | |
| else | |
| echo $(date +%s%3N) | |
| fi | |
| } |
Examples here use the default settings, see the VidStab readme on GitHub for more advanced instructions.
Here's an example video I made
brew install ffmpeg --with-libvidstab
| - (void)drawRect:(NSRect)dirtyRect { | |
| CGContextRef context = [[NSGraphicsContext currentContext] graphicsPort]; | |
| CGContextSetTextMatrix(context, CGAffineTransformIdentity); | |
| CTFontRef font = CTFontCreateUIFontForLanguage(kCTFontUIFontSystem, 12.0, NULL); | |
| // Use this to find out the feature identifiers we use below. | |
| CFTypeRef features = CTFontCopyAttribute(font, kCTFontFeaturesAttribute); | |
| NSLog(@"%@", features); | |
| CFRelease(features); |
| @implementation UIPopoverPresentationController (PSPDFAdditions) | |
| + (void)load { | |
| PSPDFSwizzleMethodImplementation(self, @selector(containerViewWillLayoutSubviews), ^(UIPopoverPresentationController *_self) { | |
| // Refresh bar button view internals | |
| [_self pspdf_updateBarButtonView]; | |
| ((void( *)(id, SEL))objc_msgSend)(_self, PSPDFPrefixedSelector(containerViewWillLayoutSubviews)); | |
| }); | |
| } |
| // | |
| // main.m | |
| // wwcd15sessionlister | |
| // | |
| // Created by Steven Troughton-Smith on 10/06/2015. | |
| // | |
| #import <Foundation/Foundation.h> | |
| int main(int argc, const char * argv[]) { |
| # pulled from http://xecdesign.com/qemu-emulating-raspberry-pi-the-easy-way/ | |
| # expanded via http://superuser.com/questions/690060/how-to-enable-network-with-a-raspberry-pi-emulated-on-qemu | |
| # tested with 2015-02-16-raspbian-wheezy.zip on OSX Mavericks | |
| # OSX terminal | |
| brew install qemu | |
| # kernel-qemu is a linux kernel compiled with ARM1176 support. | |
| # learn more here: http://xecdesign.com/compiling-a-kernel/ | |
| curl -OL http://xecdesign.com/downloads/linux-qemu/kernel-qemu | |
| curl -o raspbian_latest.zip -L http://downloads.raspberrypi.org/raspbian_latest |
| #!/usr/bin/env bash | |
| echo 'deb http://shadowsocks.org/debian wheezy main' >> /etc/apt/sources.list | |
| # Pre-requisites | |
| sudo apt-get -y update | |
| sudo apt-get -y install pptpd | |
| sudo apt-get -y install fail2ban | |
| sudo apt-get -y install shadowsocks-libev | |
| extension NSAttributedString { | |
| func replaceHTMLTag(tag: String, withAttributes attributes: [String: AnyObject]) -> NSAttributedString { | |
| let openTag = "<\(tag)>" | |
| let closeTag = "</\(tag)>" | |
| let resultingText: NSMutableAttributedString = self.mutableCopy() as NSMutableAttributedString | |
| while true { | |
| let plainString = resultingText.string as NSString | |
| let openTagRange = plainString.rangeOfString(openTag) | |
| if openTagRange.length == 0 { |
| <?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>People</key> | |
| <array> | |
| <string>😄</string> | |
| <string>😃</string> | |
| <string>😀</string> | |
| <string>😊</string> |