Skip to content

Instantly share code, notes, and snippets.

Simon Kågedal Reimer skagedal

Block or report user

Report or block skagedal

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View DragAndDropTableViewController.swift
// Demonstrating a bug with what the table view reports as the destination index path when dragging within
// the same section
import UIKit
class TableViewController: UITableViewController, UITableViewDragDelegate, UITableViewDropDelegate {
var data: [(String, [String])] = [("One", ["A", "B", "C"]), ("Two", ["1", "2", "3"])]
override func viewDidLoad() {
skagedal / DataSplitSequence.swift
Created Dec 2, 2018
Implemented for AoC 2018, first question
View DataSplitSequence.swift
import Foundation
/// Represents a sequence of Data split at a certain value
struct DataSplitSequence: Sequence {
typealias Element = Data
struct Iterator: IteratorProtocol {
private let sequence: DataSplitSequence
private var index: Int = -1
skagedal / WorkaroundWebViewController.swift
Created Sep 6, 2018
A simplified WKWebView view controller with workarounds for setting cookies.
View WorkaroundWebViewController.swift
import UIKit
import WebKit
class WorkaroundWebViewController: UIViewController, WKNavigationDelegate {
let request: URLRequest
private let websiteDataStore = WKWebsiteDataStore.default()
private var webView: WKWebView!
private var initialDummyNavigation: WKNavigation?
View render-icon-playground.swift
//: Playground - noun: a place where people can play
import Cocoa
enum ImageError: Error {
case couldNotCreateBitmapImage
case couldNotCreatePNGRepresentation
func renderIcon(text: String, backgroundColor: NSColor, sizeInPixels: Int) throws -> Data {
skagedal / simulator.zsh
Last active Mar 14, 2019
Extension for zsh that gives an auto-completable cd to a simulator data container of the app with the given bundle identifier.
View simulator.zsh
# Extension for zsh that cd to a simulator data container of the app with the given bundle identifier.
# See blog post at
function simdir () {
xcrun simctl get_app_container booted $1 data
function simcd () {
cd `simdir $1`
View AnimationTestTableViewController.swift
// Demo for SO question:
import UIKit
enum State: Int {
case first
case second
View Radar-27957917-ViewController.m
// Example code for since I can't attach
// a zip there and am to lazy to create a git repo for the whole thing.
// Create a standard iOS "Single View" application with Core Data in Xcode 7.3.1
// Create one Core Data entity called Thing with an integer "order" and a string "name"
// Hook up a simple view controller to these actions
#import "AppDelegate.h"
#import "ViewController.h"
#import "Thing.h"
skagedal / UIViewController+Deselection.swift
Last active Jun 9, 2016 — forked from ZevEisenberg/LICENSE
Smoothly deselect table and collection view cells on dismissal, including interactive dismiss and interactively-partially-dismiss-then-cancel-then-dismiss-again
View UIViewController+Deselection.swift
extension UIViewController {
func rz_smoothlyDeselectRows(tableView tableView: UITableView?) {
let selectedIndexPaths = tableView?.indexPathsForSelectedRows ?? []
if let coordinator = transitionCoordinator() {
coordinator.animateAlongsideTransitionInView(parentViewController?.view, animation: { context in
selectedIndexPaths.forEach {
tableView?.deselectRowAtIndexPath($0, animated: context.isAnimated())
from urllib.request import urlopen
counter = 1
while True:
url = '' + str(counter)
print ("Fetching: " + url)
data = urlopen(url).read()
if not data.find(b'"identifier"') >= 0:
print("No more records!")
import json
import re
from os import listdir
def fix_escapes(string):
# Libris over-escapes some backslashes.
string = string.replace("\\\\\"","\\\"")
# Libris fails to properly escape backslashes in strings, which occurs for example with inline
# LaTeX codes like "$\geq" which should be escaped as "$\\geq". They do seem to properly
# escape quote chars, however. Now, we can't easily know whethera string liike "\n" should be
You can’t perform that action at this time.