Contents:
import asyncio | |
import random | |
import sys | |
from datetime import datetime | |
import chess | |
import chess.engine | |
import chess.pgn | |
from PySide6.QtCore import QLineF, QPointF, QRectF, Qt | |
from PySide6.QtGui import (QAction, QBrush, QColor, QPainter, QPen, QPixmap, |
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME}#end | |
import androidx.recyclerview.widget.RecyclerView | |
import android.view.LayoutInflater | |
import android.view.View | |
import android.view.ViewGroup | |
import androidx.recyclerview.widget.AsyncListDiffer | |
import androidx.recyclerview.widget.DiffUtil | |
#parse("File Header.java") |
import kotlinx.coroutines.Dispatchers | |
import kotlinx.coroutines.test.TestCoroutineDispatcher | |
import kotlinx.coroutines.test.TestCoroutineScope | |
import kotlinx.coroutines.test.resetMain | |
import kotlinx.coroutines.test.setMain | |
import org.junit.jupiter.api.extension.AfterAllCallback | |
import org.junit.jupiter.api.extension.AfterEachCallback | |
import org.junit.jupiter.api.extension.BeforeAllCallback | |
import org.junit.jupiter.api.extension.ExtendWith | |
import org.junit.jupiter.api.extension.ExtensionContext |
import UIKit | |
enum BackgroundingSource: String { | |
case lock = "lock", homeOrSwitch = "homeOrSwitch" | |
} | |
protocol BackgroundingSourceTrackerDelegate: class { | |
func backgroundingSourceTracker(_ backgroundingSourceTracker: BackgroundingSourceTracker, didTrackBackgroundingWith source: BackgroundingSource) | |
} |
//: Playground - noun: a place where people can play | |
// | |
// The result is not guaranteed to be accurate. Typically, the function requires 200-400 characters to reliably guess the language of a string. | |
// Reference: [CFStringTokenizerCopyBestStringLanguage(_:_:)](https://developer.apple.com/reference/corefoundation/1542136-cfstringtokenizercopybeststringl) | |
// | |
import Foundation | |
extension String { | |
func guessLanguage() -> String { |
These are notes while researching a way to convert a browser/website to a stream. This could be used for Facebook Live or for webrecording. TL'DR:
- I started with Phantomjs - but that didn't support the html5 video tag
- SlimerJS supports it, but there is no way to record audio directly (though this might come from desktop audio)
- So I moved to research ffmpeg/X11/XVFB to record it with linux which works
- But ffmpeg has no easy way to mix streams/overlays to I moved on to OBS with overlay browser support
- I started researching options OBS in docker and it needed best a GPU , so I move to nvidia-docker
- And so came across building game servers on EC2/AWS using GPUs and managed to run OBS inside of GPU g2x.large machine
- I tried streaming to twich , which works great and managed to restream 4K 60FPS youtube on an AWS instance
- Remote control works through OBS-Remote but OBS has kinda limit in types of features
Custom recipe to get macOS 10.12 Sierra running from scratch, setup applications and developer environment. This is very similar (and currently mostly the same) as my 10.11 El Capitan setup recipe and 10.10 Yosemite setup recipe. I am currently tweaking this for 10.12 Sierra and expect to refine this gist over the next few weeks.
I use this gist to keep track of the important software and steps required to have a functioning system after a semi-annual fresh install. I generally reinstall each computer from scratch every 6 months, and I do not perform upgrades between releases.
This keeps the system performing at top speeds, clean of trojans, spyware, and ensures that I maintain good organizational practices for my content and backups. I highly recommend this.
You are encouraged to fork this and modify it to your heart's content to match your o
import Foundation | |
extension String { | |
var length: Int { | |
return (self as NSString).length | |
} | |
func split(separator: Character) -> [String] { | |
return self.characters.split { $0 == separator }.map(String.init) | |
} |