Package.swift
:
// swift-tools-version:4.0
import PackageDescription
let package = Package(
name: "SlackBot",
dependencies: [
// 💧 A server-side Swift web framework.
Package.swift
:
// swift-tools-version:4.0
import PackageDescription
let package = Package(
name: "SlackBot",
dependencies: [
// 💧 A server-side Swift web framework.
// | |
// UXColor+Hex.swift | |
// | |
// Created by Jeroen Wesbeek on 15/06/2018. | |
// Copyright © 2018 Jeroen Wesbeek. All rights reserved. | |
// | |
import Foundation | |
#if os(iOS) || os(tvOS) || os(watchOS) |
Worth a read for some more context.
Create the file in the root of the project (where your Package.swift
file lives as well), and use the following contents:
/// Package.xcconfig
disabled_rules: # rule identifiers to exclude from running | |
- anyobject_protocol | |
- array_init | |
- attributes | |
- block_based_kvo | |
- class_delegate_protocol | |
- closing_brace | |
- closure_body_length | |
- closure_end_indentation | |
- closure_parameter_position |
import Foundation | |
import os.log | |
NotificationCenter.default.addObserver(forName: nil, object: nil, queue: nil) { (notification) in | |
os_log("Received notification: %@", log: .default, type: .debug, notification.name.rawValue) | |
} |
Observing video playback inside a black-boxed WKWebView
is difficult as you don't have direct
access to the video player.
Another complicating matter is that depending on the video, the video might be played using a HTML5
video player, while others might launch the native AVPlayerViewController
for playback. While it might
be possible to detect HTML5
based playback by injecting custom JavaScript
using a WKUserContentController
, this is not the approach we will follow in the document as these depend on what HTML5
Video Player is involved and is, as such, not a generic solution.
@UIApplicationMain | |
class AppDelegate: UIResponder, UIApplicationDelegate { | |
... | |
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { | |
// Override point for customization after application launch. | |
... | |
// Disable the NSLayoutConstraint warnings thast are cluttering |
After compiling the 4.19.66-gentoo
kernel, udev
renamed the network interfaces of my home linux Router / Firewall and my iptables
setup stopped working due ip-conntrack kernel deprecations. I decided to move over to nftables
, the new packet classification framework that replaces the existing {ip,ip6,arp,eb} tables infrastructure.
Even though nftables
has been in the Linux kernel since 2014, the documentation is extremely sparse. As such this gist :)
Subjectively, using nftables
setting up connections to my machine seems to be more responsive compared to using iptables
. Connections seem to be made more quickly and ssh
-ing into my machine seems more responsive. There always used to be a bit of a lag when I was using iptables
, not anymore.
options { | |
directory "/tmp"; | |
listen-on-v6 { none; }; | |
forwarders { | |
127.0.0.1 port 2053; | |
}; | |
auth-nxdomain no; # conform to RFC1035 |