Skip to content

Instantly share code, notes, and snippets.

//
// AppDelegateHandler.swift
// Pods
//
// Created by Andrey Zarembo on 10.02.16.
//
//
import Foundation
@CognitiveDisson
CognitiveDisson / obfuscatedKey
Last active September 14, 2016 15:30 — forked from DevAlloy/uuidForToken
Алгоритм генерации строки, которую хотим спрятать
- (NSString*)hexStringFromString:(NSString*)string
{
const char *utf8 = [string UTF8String];
NSMutableString *result = [NSMutableString new];
for (int i = 0; i < string.length; i++) {
[result appendFormat:@"0x%02X, ", *utf8++ & 0x00FF];
}
return result;
}
@CognitiveDisson
CognitiveDisson / TimeProfiler.swift
Last active February 17, 2019 13:23
TimeProfiler
import Foundation
final class TimeProfiler {
typealias TimeMeasurementTimestamp = TimeInterval
public typealias TimeMeasurementDescription = String
public static func measure<R>(
description: TimeMeasurementDescription,
action: (() throws -> (R)))
@CognitiveDisson
CognitiveDisson / ConcurrentPerformer.swift
Created February 12, 2019 13:39
ConcurrentPerformer
import Foundation
final class ConcurrentPerformer {
func perform<T>(_ objects: [T], iterations: Int? = nil, action: ((T) -> ())) {
if let iterations = iterations {
customPerform(objects, iterations: iterations, action: action)
} else {
defaultPerform(objects, action: action)
}
func toMainThread<T>(_ closure: @escaping (T) -> ()) -> ((T) -> ()) {
return { obj in
if Thread.isMainThread {
closure(obj)
} else {
DispatchQueue.main.async {
closure(obj)
}
}
}
@CognitiveDisson
CognitiveDisson / Dictionary+Enumerate.swift
Last active February 18, 2019 12:43
swift concurrent dictionary enumeration
import Foundation
extension Dictionary {
func enumerateKeysAndObjects(
options opts: NSEnumerationOptions = [],
using block: (Any, Any, UnsafeMutablePointer<ObjCBool>) throws -> Void) throws
{
var blockError: Error?
(self as NSDictionary).enumerateKeysAndObjects(options: opts) { (key, obj, stops) in
@CognitiveDisson
CognitiveDisson / Array+AsyncConcurrentEnumerated.swift
Last active April 29, 2019 14:41
Swift: Async concurrent enumerated array
import Foundation
public extension Array {
public func asyncConcurrentEnumerated(
each: (_ object: Element, _ completion: @escaping () -> (), _ stop: () -> ()) throws -> ()) throws
{
let dispatchGroup = DispatchGroup()
let array = NSArray(array: self)
var eachError: Error?
array.enumerateObjects(options: .concurrent) { obj, key, stop in
@CognitiveDisson
CognitiveDisson / build-universal-frameworks.sh
Last active March 28, 2021 00:56
Build universal frameworks
#!/bin/sh
# Print all the commands in script before their execution
# export PS4='+ 6: '
set -x
# Force the script to stop if any unhandled error occurs (i.e. an error not handled with `||`)
# set -e
# Force the script to stop if any uninitialized variable is used
@CognitiveDisson
CognitiveDisson / the effect of swift extensions on the size of the binary
Last active April 8, 2020 23:27
`swiftc -gdwarf-types -emit-object gist.swift`
protocol SomeProtocol {
func someMethod0()
func someMethod1()
func someMethod2()
func someMethod3()
func someMethod4()
func someMethod5()
func someMethod6()
func someMethod7()
@CognitiveDisson
CognitiveDisson / node-executer.rb
Last active April 6, 2021 17:39
Remote execute for anka
require 'net/http'
require 'json'
require 'io/console'
args = Hash[ ARGV.join(' ').scan(/--?([^=\s]+)(?:=(\S+))?/) ]
controller_url = args['controller']
if controller_url.nil?
raise "You need to specify the controller: --controller=http://anka.controller.net"
end