i7:~ mobile% pwd
/var/jb/var/mobile
i7:~ mobile% ls -la ~
async (str) => { | |
const re = /https?:\/\/[-_.!~*\'a-zA-Z0-9;\/?:\@&=+\$,%#]+/g; | |
const m = str.match(re); | |
return `<img src=${m[0]} width=300>`; | |
} |
#!/usr/bin/env zx | |
const aws = require('aws-sdk'); | |
const lambda = new aws.Lambda({ region: 'ap-northeast-1' }); | |
const functions = await lambda.listFunctions().promise(); | |
for (const f of functions.Functions) { | |
const str = await $`aws lambda list-tags --resource ${f.FunctionArn}` | |
const json = JSON.parse(str); |
- run: | |
name: Install mint | |
command: | | |
version=$(curl -s "https://github.com/yonaskolb/Mint/releases/latest" | sed 's/^.*tag\/\([^"]*\).*$/\1/') | |
echo Installing mint ${version} | |
curl -Ls -o mint.zip https://github.com/yonaskolb/Mint/releases/download/${version}/mint.zip | |
unzip mint.zip | |
rm mint.zip | |
mv mint /usr/local/bin/ |
coolstar version of PreferenceLoader v3.0.1 no longer support PLFilterKey
NSString symbol since this commit https://github.com/coolstar/preferenceloader/commit/8f381e9a0bc1870971603f7411dc1ff0d1d87ea1
So if tweaks that using PLFilterKey
not work on Odyssey environment like this.
Injection failed: 'dlopen(/Library/TweakInject/Sleipnizer.dylib, 9): Symbol not found: _PLFilterKey
I just replace PLFilterKey
to own impl of NSString to fix this compatibility breaking change.
ある程度まとまっているwikipedia https://en.wikipedia.org/wiki/Safari_version_history#Safari_13_2
http://bedienungsanleitung.elektronotdienst-nuernberg.de/webkit-changeset.html
最近は頭の8がiOS/iPadOSを指す
8xxx.yyy.zzz.aaa.bbb の形式。aaa.bbbのMICRO, NANOバージョンは記載する際には大体省略される
ソースからバージョンを確認する時は https://github.com/WebKit/webkit/blob/master/Source/WebKit/Configurations/Version.xcconfig
#ifdef DEBUG | |
#ifdef __cplusplus | |
extern "C" void MyDebugLog(NSString *formatString, ...); | |
#else | |
extern void MyDebugLog(NSString *formatString, ...); | |
#endif | |
#define DLog(...) MyDebugLog(__VA_ARGS__) | |
#else | |
#define DLog(...) |
extension Observable { | |
/// maxAttemptまでdelay間隔をあけてリトライする | |
/// | |
/// - Parameters: | |
/// - maxAttempt: 最大リトライ回数 | |
/// - delay: 間隔 | |
/// - Returns: リトライしたObservable | |
func retry(_ maxAttempt: Int, delay: RxTimeInterval) -> Observable<Element> { | |
return retryWhen { (err: Observable<Error>) -> Observable<Int> in |
extension KeyedDecodingContainerProtocol { | |
func decode<T: Decodable>(into: inout T, forKey key: Self.Key) { | |
guard let tmp = try? self.decode(T.self, forKey: key) else { return } | |
into = tmp | |
} | |
} | |
class A: Decodable { | |
var hoge = "1" | |
enum CodingKeys: CodingKey { |
// =========================== | |
// Pattern1: SEGV in Xcode10(Swift4.2 or Swift4) ~ Xcode10.1(Swift 4.2.1) | |
// This code compilable in Xcode 9.4.1(Swift 4.1) | |
// =========================== | |
class A {} | |
protocol BProtocol { | |
associatedtype Info: A | |
var info: Info? { get set } | |
} |