Since Twitter doesn't have an edit button, it's a suitable host for JavaScript modules.
Source tweet: https://twitter.com/rauchg/status/712799807073419264
const leftPad = await requireFromTwitter('712799807073419264');| #include <cstdio> | |
| #include <iostream> | |
| #include <sys/mman.h> | |
| #include <mach/i386/kern_return.h> | |
| #include <mach/mach_init.h> | |
| #include <mach/mach_vm.h> | |
| #include <mach/vm_region.h> | |
| #include <mach/vm_types.h> | |
| #include <unistd.h> | |
| #include <mach/host_info.h> |
| import UIKit | |
| // Create color using P3 color space | |
| let linearColor = UIColor(displayP3Red: 1, green: 0.5, blue: 0.2, alpha: 1) | |
| do { | |
| var r: CGFloat = 0, g: CGFloat = 0, b: CGFloat = 0, a: CGFloat = 0 | |
| linearColor.getRed(&r, green: &g, blue: &b, alpha: &a) | |
| print(r, g, b, a) // 1.07, 0.46, 0.0, 1.0 - not the expected values | |
| } |
| import Foundation | |
| import UIKit | |
| // Fantastic explanation of how it works | |
| // http://www.niwa.nu/2013/05/math-behind-colorspace-conversions-rgb-hsl/ | |
| fileprivate extension CGFloat { | |
| /// clamp the supplied value between a min and max | |
| /// - Parameter min: The min value | |
| /// - Parameter max: The max value | |
| func clamp(min: CGFloat, max: CGFloat) -> CGFloat { |
| import Combine | |
| import ReactiveSwift | |
| import SwiftUI | |
| class AnySubscription: Subscription { | |
| private let cancelable: Cancellable | |
| init(cancelable: Cancellable) { | |
| self.cancelable = cancelable |
| func emojiToImage(text: String, size: CGFloat) -> UIImage { | |
| let outputImageSize = CGSize.init(width: size, height: size) | |
| let baseSize = text.boundingRect(with: CGSize(width: 2048, height: 2048), | |
| options: .usesLineFragmentOrigin, | |
| attributes: [.font: UIFont.systemFont(ofSize: size / 2)], context: nil).size | |
| let fontSize = outputImageSize.width / max(baseSize.width, baseSize.height) * (outputImageSize.width / 2) | |
| let font = UIFont.systemFont(ofSize: fontSize) | |
| let textSize = text.boundingRect(with: CGSize(width: outputImageSize.width, height: outputImageSize.height), | |
| options: .usesLineFragmentOrigin, |
| # The trick is to link the DeviceSupport folder from the beta to the stable version. | |
| # sudo needed if you run the Mac App Store version. Always download the dmg instead... you'll thank me later :) | |
| # Support iOS 15 devices (Xcode 13.0) with Xcode 12.5: | |
| sudo ln -s /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/15.0 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport | |
| # Then restart Xcode and reconnect your devices. You will need to do that for every beta of future iOS versions | |
| # (A similar approach works for older versions too, just change the version number after DeviceSupport) |
| import UIKit | |
| import Rswift | |
| struct NibResource: NibResourceType { | |
| let name: String | |
| let bundle: NSBundle | |
| init(name: String, bundle: NSBundle = NSBundle.mainBundle()) { | |
| self.name = name | |
| self.bundle = bundle |
Since Twitter doesn't have an edit button, it's a suitable host for JavaScript modules.
Source tweet: https://twitter.com/rauchg/status/712799807073419264
const leftPad = await requireFromTwitter('712799807073419264');| import Darwin.C | |
| import Venice | |
| struct SubProcess { | |
| let path: String | |
| let arguments: [String] | |
| func run(sync sync: Bool = true) -> Int? { |
| root@3e4601c0-00af-4d93-c8b2-f4584487aa7c:~# dtrace -ln pid18959:main::entry | |
| ID PROVIDER MODULE FUNCTION NAME | |
| 14543 pid18959 main main entry | |
| 14693 pid18959 main _TF4main6findMeFT_Si entry | |
| 14694 pid18959 main _TF4main1bFT_Si entry | |
| 14695 pid18959 main __libc_csu_init entry | |
| 14696 pid18959 main __libc_csu_fini entry | |
| root@3e4601c0-00af-4d93-c8b2-f4584487aa7c:~# dtrace -ln pid18959:main::entry | swift-demangle | |
| ID PROVIDER MODULE FUNCTION NAME |