Here I used @State CGSize values to represent both the viewState and the dragState
struct Example1: View {
@State var viewState: CGSize = .zero
@State var dragState: CGSize = .zero
| // | |
| // AppView.swift | |
| // | |
| // | |
| // Created by Saroar Khandoker on 05.05.2021. | |
| // | |
| import AuthClient | |
| import AuthClientLive | |
| import AuthenticationView |
| extension DragGesture.Value { | |
| var velocity: CGPoint { | |
| let decelerationRate = UIScrollView.DecelerationRate.normal.rawValue, | |
| d = decelerationRate/(1000.0*(1.0 - decelerationRate)) | |
| return CGPoint(x: (location.x - predictedEndLocation.x)/d, | |
| y: (location.y - predictedEndLocation.y)/d) | |
| } |
| import SwiftUI | |
| struct Dial: View { | |
| @Binding public var value: Double | |
| public var minValue: Double = 0 | |
| public var maxValue: Double = .greatestFiniteMagnitude | |
| public var divisor: Double = 1 | |
| public var stepping: Double = 1 | |
| @State private var dialAngle: Angle = .zero | |
| @State private var dialShadowAngle: Angle = .zero |
| // decrypting Amtrak's real-time train location geoJSON feed | |
| // based on https://github.com/Vivalize/Amtrak-Train-Stats | |
| const fetch = require('node-fetch'); | |
| const CryptoJS = require('crypto-js'); | |
| // this is the xhr call done by https://www.amtrak.com/track-your-train.html containing encrypted train location data | |
| const dataUrl = 'https://maps.amtrak.com/services/MapDataService/trains/getTrainsData'; | |
| // these constants are pulled from RoutesList.v.json, which is an object with keys 'arr', 's', and 'v' | |
| const sValue = '9a3686ac'; // found at s[8] |
Also see the original Pieter Noordhuis's guide
You need:
| // MIT Licensed | |
| // Author: jwilson8767 | |
| /** | |
| * Waits for an element satisfying selector to exist, then resolves promise with the element. | |
| * Useful for resolving race conditions. | |
| * | |
| * @param selector | |
| * @returns {Promise} | |
| */ |
| # after appcleaner does his magic, do this | |
| sudo rm -rf "/Library/Application Support/Paragon Software/" | |
| sudo rm /Library/LaunchDaemons/com.paragon-software.installer.plist | |
| sudo rm /Library/LaunchDaemons/com.paragon-software.ntfs.loader.plist | |
| sudo rm /Library/LaunchDaemons/com.paragon-software.ntfsd.plist | |
| sudo rm /Library/LaunchAgents/com.paragon-software.ntfs.notification-agent.plist | |
| sudo rm -rf /Library/Filesystems/ufsd_NTFS.fs/ | |
| sudo rm -rf /Library/PrivilegedHelperTools/com.paragon-software.installer | |
| sudo rm -rf /Library/Extensions/ufsd_NTFS.kext/ |
| select.form-control + .chosen-container.chosen-container-single .chosen-single { | |
| display: block; | |
| width: 100%; | |
| height: 34px; | |
| padding: 6px 12px; | |
| font-size: 14px; | |
| line-height: 1.428571429; | |
| color: #555; | |
| vertical-align: middle; | |
| background-color: #fff; |