(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
| #!/bin/bash | |
| # | |
| # 通过对比 ping 响应时间,找到本机最快的上传ip | |
| # Travis@fir.im | |
| # | |
| function refresh_host() | |
| { | |
| IP="$1" | |
| UPLOAD_HOST="upload.qiniu.com" |
| This was nice and fast... but it takes up WAY TOO MUCH space. And it's annoying to write. | |
| (I like the way I can just step into the function that calls the delegate for debugging) | |
| What's a better way to not make me call respondsToSelector in the middle of my code? Some proxy? | |
| struct { | |
| unsigned int delegateWillDisplayDocument:1; | |
| unsigned int delegateDidDisplayDocument:1; | |
| unsigned int delegateDidShowPageView:1; | |
| unsigned int delegateDidRenderPageView:1; |
| - (void)resetCoreData { | |
| DDLogInfo(@"[RESET-COREDATA] Started."); | |
| [MagicalRecord cleanUp]; | |
| NSURL *storeURL = [NSPersistentStore MR_urlForStoreName:kMobilStoreName]; | |
| NSURL *walURL = [[storeURL URLByDeletingPathExtension] URLByAppendingPathExtension:@"sqlite-wal"]; | |
| NSURL *shmURL = [[storeURL URLByDeletingPathExtension] URLByAppendingPathExtension:@"sqlite-shm"]; | |
| /* | |
| For example, you use Core Data sqlite. | |
| It is necessary, because sqlite database stores data in single file. | |
| Whole database is single file. | |
| Now you have two options. | |
| 1. Delete all data from all tables | |
| 2. Delete database sqlite file | |
| Second option is clean but complex. |
| #!/bin/bash | |
| find -E $(xcode-select --print-path) -regex '.*___\.(c|h|m|swift)' -print0 | xargs -0 -n 1 sed -i '' '1,/^$/d' |
| @interface ViewController () | |
| @property (strong, nonatomic) UIScrollView* vScrollView; | |
| @end | |
| @implementation ViewController | |
| - (void)viewDidLoad | |
| { | |
| [super viewDidLoad]; | |
| //clang++ -std=c++11 -stdlib=libc++ -framework Foundation nsarray.mm -o nsarray | |
| /* Note: | |
| * - libstdc++ has been frozen by Apple at a pre-C++11 version, so you must opt | |
| for the newer, BSD-licensed libc++ | |
| * - Apple clang 4.0 (based on LLVM 3.1svn) does not default to C++11 yet, so | |
| you must explicitly specify this language standard. */ | |
| /* @file nsarray.mm | |
| * @author Jeremy W. Sherman | |
| * | |
| * Demonstrates three different approaches to converting a std::vector |
| # Create a container from the mongo image, | |
| # run is as a daemon (-d), expose the port 27017 (-p), | |
| # set it to auto start (--restart) | |
| # and with mongo authentication (--auth) | |
| # Image used is https://hub.docker.com/_/mongo/ | |
| docker pull mongo | |
| docker run --name YOURCONTAINERNAME --restart=always -d -p 27017:27017 mongo mongod --auth | |
| # Using the mongo "localhost exception" (https://docs.mongodb.org/v3.0/core/security-users/#localhost-exception) | |
| # add a root user |
| // 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 { |