Skip to content

Instantly share code, notes, and snippets.

@geor-kasapidi
geor-kasapidi / mangalib_images.js
Created January 4, 2024 08:17
mangalib script to download images and open next chapter
async function xxx() {
for (page of window.__pg) {
const blob = await fetch(window.__info.servers[window.__info.img.server] + window.__info.img.url + page.u).then(res => res.blob());
const blob_url = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = blob_url;
a.download = window.__info.current.number + '_' + page.u;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
static func _compile(data: Data, configuration: MLModelConfiguration = .init()) async throws -> MLModel {
let tmp = FileManager.default.temporaryDirectory.appendingPathComponent(UUID().uuidString)
try data.write(to: tmp, options: .atomic)
let url = try await MLModel.compileModel(at: tmp)
try FileManager.default.removeItem(at: tmp)
let model = try MLModel(contentsOf: url, configuration: configuration)
try FileManager.default.removeItem(at: url)
return model
}
@geor-kasapidi
geor-kasapidi / metal.py
Created November 16, 2021 10:30
Metal AST
import sys
import os
import clang.cindex
shaders_file = sys.argv[1]
assert(shaders_file.endswith(“.metal”))
ast_file = shaders_file.rstrip(“.metal”) + “.ast”
os.system(f”xcrun metal -emit-ast {shaders_file}“)
xcode_path = os.popen(“xcode-select -p”).read().rstrip()
@geor-kasapidi
geor-kasapidi / swf.sh
Last active September 17, 2021 10:15
swiftformat shell script
swiftformat \
--self insert \
--wrapcollections before-first \
--wraparguments before-first \
--wrapparameters before-first \
--header strip \
--ifdef no-indent \
--enable wrapSwitchCases \
--enable organizeDeclarations \
--swiftversion 5.3 .
struct EnumSet<T: RawRepresentable & CaseIterable>: OptionSet where T.RawValue == Int {
let rawValue: T.RawValue
init(rawValue: T.RawValue) {
self.rawValue = rawValue
}
init(_ value: T) {
self.rawValue = 1 << value.rawValue
}
@geor-kasapidi
geor-kasapidi / swiftformat
Created August 16, 2021 14:34
Swiftformat rules
--self insert
--wrapcollections after-first
--wraparguments after-first
--wrapparameters after-first
--header strip
--enable wrapSwitchCases
--enable organizeDeclarations
import STS
final class Registry {
// MARK: Internal
func register<T: AnyObject>(_ value: T) {
self.lock.execute {
let key = ObjectIdentifier(T.self)
assert(self.objects[key] == nil)
assert(self.factories[key] == nil)
@geor-kasapidi
geor-kasapidi / MetalCVPixelBuffer.swift
Created July 23, 2021 18:18
MetalCVPixelBuffer.swift
import CoreVideo
import Alloy
import Foundation
import Accelerate
enum MetalCVPixelBuffer {
static func transform(texture input: MTLTexture,
transformer: @escaping (CVPixelBuffer) throws -> CVPixelBuffer,
cache: CVMetalTextureCache) throws -> MTLTexture {
guard let inputPixelBuffer = input.pixelBuffer else {
@geor-kasapidi
geor-kasapidi / lock.swift
Created July 22, 2021 09:19
_modfiy lock
@propertyWrapper
public final class ThreadSafe<Root> {
private let lock = OSUnfairLock()
private var value: Root
public init(wrappedValue: Root) {
self.value = wrappedValue
}
@geor-kasapidi
geor-kasapidi / SKError.swift
Created July 20, 2021 17:02
SKError codes
@available(iOS 3.0, *)
public enum Code : Int {
public typealias _ErrorType = SKError
case unknown = 0
case clientInvalid = 1 // client is not allowed to issue the request, etc.
case paymentCancelled = 2 // user cancelled the request, etc.