Stop waiting on engineering. Build production-ready internal tools with AI—on your company data, in your cloud.
Retool lets you generate dashboards, admin panels, and workflows directly on your data. Type something like “Build me a revenue dashboard on my Stripe data” and get a working app with security, permissions, and compliance built in from day one. Whether on our cloud or self-hosted, create the internal software your team needs without compromising enterprise standards or control.
Try Retool free
Outgrown Windows Task Scheduler?
Free diagnostic identifies where your workflow is breaking down—with instant analysis of your scheduling environment.
Windows Task Scheduler wasn't built for complex, cross-platform automation. Get a free diagnostic that shows exactly where things are failing and provides remediation recommendations. Interactive HTML report delivered in minutes.
...Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. Yes, Highlightr relies on iOS & macOS JavaScriptCore to parse the code using highlight.js. This is actually quite fast! It will never be as fast as a native solution, but it's fast enough to be used on a real-time editor. It comes with a custom-made HTML parser for creating NSAttributtedStrings, is pre-processing the themes, and is preloading the JS libraries. As result it's taking around of 50 ms on my iPhone 6s for processing 500 lines of code.
...PromiseKit 6, 5 and 4 support Xcode 8.3, 9.x and 10.0; Swift 3.1, 3.2, 3.3, 3.4, 4.0, 4.1, 4.2, 4.3 and 5.0 (development snapshots); iOS, macOS, tvOS, watchOS, Linux and Android; CocoaPods, Carthage and SwiftPM; (CI Matrix). For Carthage, SwiftPM, Accio, etc., or for instructions when using older Swifts or Xcodes, see our Installation Guide. We recommend Carthage or Accio.
Syntactic sugar in Swift for asynchronous dispatches
...Now more than syntactic sugar for asynchronous dispatches in Grand Central Dispatch (GCD) in Swift. Custom queues, dispatch block after delay, cancel blocks that aren't already dispatched. The way it work is by using the new notification API for GCD introduced in OS X 10.10 and iOS 8. Each chaining block is called when the previous queue has finished. The dispatch_block_t can't be extended. Workaround used, Wrap dispatch_block_t in a struct that takes the block as a property. AsyncGroup facilitates working with groups of asynchronous blocks.