Skip to content

Instantly share code, notes, and snippets.

@algal
algal / vmstatistics64.swift
Last active August 16, 2022 07:45
Get virtual memory usage on iOS or macOS
import Darwin
import Foundation
// known good: Swift 5
// runs on macOS, probably works on iOS (but haven't tried)
/// Wraps `host_statistics64`, and provides info on virtual memory
///
/// - Returns: a `vm_statistics64`, or nil if the kernel reported an error
///
//
// processFIle.swift
// LineIteratorProj
//
// Created by Alexis Gallagher on 8/14/19.
// Copyright © 2019 Sculpt Labs. All rights reserved.
//
// known-good: Swift 5
@algal
algal / SwiftLineReader.swift
Created August 14, 2019 21:25
Lazily read a line at a time in Swift
import Foundation
// known good: Swift 5
typealias LineIteratorState = (
// pointer to a C string representing a line
linePtr:UnsafeMutablePointer<CChar>?,
linecap:Int,
filePtr:UnsafeMutablePointer<FILE>?
)
@algal
algal / RangeStrider.swift
Last active April 30, 2019 03:34
Sequence of Range<Int>s
// known-good: Swift 5.0.1
/*
# how to use:
instead of:
for i in 0 ..< (n-1)/bs {
let startIdx = i * bs
@algal
algal / PileView.swift
Last active March 8, 2019 23:19
Like a simple vertical stack view. No animations. But no magical mystery meat, and it works.
//
// Pile.swift
// PileTest
//
// Created by Alexis Gallagher on 3/6/19.
// Copyright © 2019 Bespoke. All rights reserved.
//
// known-good: Swift 4.2, iOS 12
@algal
algal / Zipping.swift
Created February 17, 2019 01:18
Zip files on iOS, without using external libraries and without interoperating with the low-level Compression framework
// Zipping.swift
// known-good: Swift 4.2
// Alexis Gallagher
import Foundation
public extension URL {
/// Creates a zip archive of the file or folder represented by this URL and returns a references to the zipped file
///
@algal
algal / regex.swift
Last active February 6, 2019 09:10
Swift Regular Expression Helpers
// known-good: Swift 4.2
// expected good: Swift 5.0
import Foundation
/*
This file defines three helpers for matching regular expressions against strings, and inspecting the results of capture groups in the regular expressions.
1. `RegexMatches(ofPattern:againstString:)` provides a lazy Sequence of matches, where every match is an array representing the matches capture groups.
@algal
algal / loadPoints.swift
Created December 28, 2018 19:41
Read vertex positions with Model I/O
// known-good: Swift 4.2, macOS
import Foundation
import ModelIO
private func LogDebug(_ s:Any) -> Void { print(s) }
private func LogInfo(_ s:Any) -> Void { print(s) }
private func LogError(_ s:Any) -> Void { print(s) }
struct POINT3D {
var x:Float
@algal
algal / readlines.swift
Last active December 11, 2018 19:25
Read lines in Swift
// known good: Swift 4.2
import Foundation
/// Returns an iterator that iterates through the lines of the file at path.
///
/// - Parameter path: path of the file to read
/// - Returns: the iterator, or nil if the file could not be read
func lineSequence(forFileAtPath path:String) -> AnyIterator<String>?
{
@algal
algal / Bikeshed.md
Last active October 27, 2018 02:55

Obviously the big question is whether it's wise to add these protocols. But I got curious and did a little research just on the naming question, to see if "intensional set" and "extensional set" are well-established mathematical terms for different kinds of sets. Seems like they're not.

I checked two reference works -- The Princeton Companion to Mathematics and the Encyclopedic Dictionary of Mathematics (2nd edition). I looked in their tables of contents, their indexes, and in their articles discussing set theory, and there is no mention of the idea of an "intentional set" or an "extensional set". Also, anecdotally, I did some math in grad school and never ran into the terms.

The terms "extensional" and "intensional" originate in philosophy of l