Skip to content

Instantly share code, notes, and snippets.

#import <Foundation/Foundation.h>
#import <objc/runtime.h>
#include <functional>
@class ObjCObject;
template<class p1type,class p2type>
@uliwitness
uliwitness / main.cpp
Created April 7, 2017 21:46
Proof-of-concept for how one could implement Objective C's target/action paradigm in a static fashion in C++. Basically, the GeneratedWindow class would be what your UI builder (like Interface Builder) generates. Button would be in your application framework. ViewController and the main() function would be how you'd then use them.
//
// main.cpp
// CppTargetActionOutlets
//
// Created by Uli Kusterer on 07.04.17.
// Copyright © 2017 Uli Kusterer. All rights reserved.
//
#include <iostream>
#include <functional>
import Foundation
struct FooImages {
static let images = [UIImage(named:"foo1"), UIImage(named:"foo1")]
}
@uliwitness
uliwitness / 1 cxxabi_shared error
Created July 29, 2017 09:33
llvm build errors
Creating symlinks
/Applications/CMake.app/Contents/bin/cmake -E cmake_symlink_library /Users/uli/Programming/llvm/build/Debug/lib/Debug/libc++abi.1.0.dylib /Users/uli/Programming/llvm/build/Debug/lib/Debug/libc++abi.1.dylib /Users/uli/Programming/llvm/build/Debug/lib/Debug/libc++abi.dylib
CMake Error: cmake_symlink_library: System Error: No such file or directory
CMake Error: cmake_symlink_library: System Error: No such file or directory
@uliwitness
uliwitness / smalltalkbooleans.swift
Created August 28, 2017 06:58
Still fascinating how Smalltalk implements if/then/else. Basically it goes like this (in pseudo-Swift):
class BooleanClass {
void ifTrue(_ trueHandler: () -> Void, else falseHandler: () -> Void)
}
class TrueBooleanClass {
void ifTrue(_ trueHandler: () -> Void, else falseHandler: () -> Void) {
trueHandler()
}
}
@uliwitness
uliwitness / 1 coroutines.cpp
Created September 9, 2017 10:11
Example of two equivalent programs as an illustration how you can transform coroutines into blocks. Pseudocode
void main()
{
int foo = rand();
int result1 = await doSomethingAsync(foo);
printf( "Result 1: %d", result1 );
int result2 = await doSomethingAsync(foo + 1);
printf( "Result 2: %d", result2 );
return 0;
}
@uliwitness
uliwitness / gist:c10b3ebfb997a2814a01aacd1228a7e5
Created August 28, 2018 03:12
This is a valid PNG image file stored in a URL.
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABICAYAAABLJIP0AAAMJ2lDQ1BJQ0MgUHJvZmlsZQAASImVlwdUk8kWgOcvqSS0QChSQm+iFOnSawABqYKNkAQSSgwJQcSOLCqwFlQsWNFVEdtaAFlsWLAi2PvDAoqyLupiQ+VNEkBXz3vvvHvO/P+XO3fu3Hsz/5wZANRiOGJxNqoOQI4oTxIbGsCakJzCIj0GCKABbWAHzDhcqdg/JiYSQBl6/1Pe3YTWUK7Zy3393P9fRYPHl3IBQGIgp/Gk3BzIhwDAXbliSR4AhB6oN5ueJ4ZMhFECLQkMELK5nDOU7C7nNCVHKmziYwMhpwJApnE4kgwAVOVxsfK5GdCPajlkBxFPKILcBNmHK+DwIH+GPDInZxpkNWvI1mnf+cn4h8+0YZ8cTsYwK3NRCDlIKBVnc2b8n+X435KTLRuawww2mkASFivPWV63rGkRcqZBPidKi4qGrAn5upCnsJdzl0AWljBo/4ErDYQ1A0wAUBqPExQB2QCyqSg7KnJQ75MuDGFDhrVH44V57HjlWJQnmRY76B8t4EuD44aYI1HMJbcplWUl+A/63Cjgs4d8NhYK4pOUcaJt+cLEKMiqkO9Ls+IiBm1eFAoCo4ZsJLJYeczwP8dAuiQkVmmDmedIh/LCPAVCdtQgR+YJ4sOUY7EpXI4iNl3ImXzphMihOHn8oGBlXlgRX5QwGD9WIc4LiB203ybOjhm0x5r42aFyvSnkVml+3NDY3jy42JT54kCcFxOvjA3XyuSExyhjwG1BJAgEQYAFZLClgWkgEwhbe+p74C9lTwjgAAnIAHxgP6gZGpGk6BHBZxwoBH9C4gPp8LgARS8f5EP9l2Gt8mkP0hW9+YoRWaALcg6IANnwt0wxSjQ8WyJ4CjXCn2bnwlizYZP3/aRjqQ3piMHEIGIYMYRog+vjPrgXHgmffrA54e64x1Bc3+wJXYR2wmPCDUIH4c5UYZHkh8hZYBzogD
@uliwitness
uliwitness / Output.log
Last active December 7, 2018 20:32
SchedulerTestApp
pendingTasks = [Task<E>{ (0/65) @ 600 <-- F }, Task<F>{ (0/66) @ 500 <-- C }, Task<B>{ (0/62) @ 900 <-- A }, Task<A>{ (0/61) @ 1000 <-- C }, Task<D>{ (0/64) @ 700 <-- A }, Task<C>{ (0/63) @ 800 <-- * }]
Worker 1: --
Worker 2: --
Worker 3: --
currentTasks = [Task<C>{ (0/63) @ 800 <-- * }]
Worker 1: Task<C>{ (1/63) @ 800 <-- * }
Worker 2: --
Worker 3: --
currentTasks = []
Worker 1: Task<C>{ (2/63) @ 800 <-- * }
@uliwitness
uliwitness / Extract Files into separate Git Repository.sh
Last active March 16, 2019 14:02
Extract individual files from a Github repository
#!/bin/bash
GIT='/Applications/Xcode.app/Contents/Developer/usr/bin/git'
#$SOURCEREPO=$1
#$DESTREPO=$2
SOURCEREPO=/Users/uli/Programming/FileExplorer/UliKit
DESTREPO=/Users/uli/Programming/FileExplorer/ULIXattrMetadataStore
MYDIR=`dirname "$0"`
writertest.swift:18:8: error: cannot invoke 'write' with an argument list of type '(T)'
impl.write(foo)
^
writertest.swift:18:8: note: expected an argument list of type '(T.WriterImplType.ValueType)'
impl.write(foo)
^