Skip to content

Instantly share code, notes, and snippets.

View ksmandersen's full-sized avatar
🏠
Working from home

Kristian Andersen ksmandersen

🏠
Working from home
View GitHub Profile
@ksmandersen
ksmandersen / mysql.sh
Last active November 12, 2019 09:44
Set Up a MySQL docker instance
mkdir -p /usr/local/opt/mysql/8.0
chmod -R ug+w /usr/local/opt/mysql/
# Add /usr/local/opt to docker file sharing
docker run --restart always --name mysql8.0 -v /usr/local/opt/mysql/8.0:/var/lib/mysql -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=winteriscoming mysql:8.0
alias mysql8="mysql --host 0.0.0.0 --port 3306 --password=winteriscoming -u root"
@ksmandersen
ksmandersen / redis.sh
Created November 6, 2019 13:09
Fire up a local redis server
docker run --restart always --name redis -p 6379:6379 -d redis
alias redis-cli="docker exec -it redis redis-cli"
@ksmandersen
ksmandersen / swift-pm-update.bash
Created October 8, 2019 12:07
Update Swift PM with proper dependency resolution
swift package --enable-pubgrub-resolver update
struct ValidateErrors: ValidationError {
/// the errors thrown
var errors: [ValidationError]
/// See ValidationError.keyPath
var path: [String]
/// See ValidationError.reason
var reason: String {
return errors.map { error in
root@applypixels:~# dokku --trace mysql:backup applypixels applypixels-db-backup >> trace-backup.log
+ export DOKKU_HOST_ROOT=/home/dokku
+ DOKKU_HOST_ROOT=/home/dokku
+ export DOKKU_DISTRO
++ . /etc/os-release
++ echo ubuntu
+ DOKKU_DISTRO=ubuntu
+ export DOKKU_IMAGE=gliderlabs/herokuish
+ DOKKU_IMAGE=gliderlabs/herokuish
+ export DOKKU_LIB_ROOT=/var/lib/dokku
@ksmandersen
ksmandersen / listfont.swift
Created June 28, 2018 08:54
Listing out all included fonts in your app
// Make sure to include font files in bundle
// Add "Fonts provided by application" / UIAppFonts to Info.plist (use filename)
// Run this snippet in AppDelegate to find the name of your fonts
UIFont.familyNames.forEach { family in
print(family)
UIFont.fontNames(forFamilyName: family).forEach { names in
print(" - ", names)
}
}
@ksmandersen
ksmandersen / FairPlayer.swift
Created April 9, 2018 07:51 — forked from fousa/FairPlayer.swift
Integrate HLS with FairPlay.
class FairPlayer: AVPlayer {
private let queue = DispatchQueue(label: "com.icapps.fairplay.queue")
func play(asset: AVURLAsset) {
// Set the resource loader delegate to this class. The `resourceLoader`'s delegate will be
// triggered when FairPlay handling is required.
asset.resourceLoader.setDelegate(self, queue: queue)
// Load the asset in the player.
@ksmandersen
ksmandersen / withInitialData.js
Last active February 8, 2018 19:52 — forked from armand1m/withInitialData.js
Simple HOC for fetching data that is compatible with the SSR technique described by @BenLu here: https://medium.com/@benlu/ssr-with-create-react-app-v2-1-ee83fb767327
import React from 'react';
const hasDataForKey = (staticContext) => (key) => staticContext && Object.keys(staticContext.data).includes(key);
const windowHasDataForKey = (window) => (key) => Object.keys(window.__DATA__).includes(key);
export default ({ key, prop, getData }) => (WrappedComponent) => {
class SSRCompatibleComponent extends React.Component {
constructor(props) {
super(props);
this.state = {};
@ksmandersen
ksmandersen / withInitialData.js
Created February 8, 2018 19:52 — forked from armand1m/withInitialData.js
Simple HOC for fetching data that is compatible with the SSR technique described by @BenLu here: https://medium.com/@benlu/ssr-with-create-react-app-v2-1-ee83fb767327
import React, { Component } from 'react';
const hasDataForThisKey = (staticContext) =>
(key) => staticContext && Object.keys(staticContext.data).includes(key);
const windowHasDataForThisKey = (window) =>
(key) => Object.keys(window.__DATA__).includes(key);
export default ({
key,
@ksmandersen
ksmandersen / UIView+Helpers.swift
Last active November 7, 2017 10:09
Layout Anchor Helpers
import Foundation
import UIKit
extension UIView {
func addSubviews(_ subviews: [UIView]) {
for view in subviews {
addSubview(view)
}
}
}