Skip to content

Instantly share code, notes, and snippets.

View algal's full-sized avatar

Alexis Gallagher algal

  • San Francisco
View GitHub Profile
algal / excel_parseDates.vba
Last active September 27, 2023 21:28
please god why aren't these predefined?
View excel_parseDates.vba
' Expects a datetimestr in the format "YYYYMMDD" with - or / or no separator
' Parses independently of local region, unlike VBA.DateTime.DateValue()
' Known-good on Excel for Mac Version 16.4
Function parseYYYYMMDD(dateTimeStr As String) As Date
Dim normalized As String
normalized = VBA.Strings.Trim(dateTimeStr)
normalized = VBA.Strings.Replace(dateTimeStr, "/", "")
normalized = VBA.Strings.Replace(normalized, "-", "")
algal / PKCS12.swift
Last active September 26, 2023 10:48
Reading PKCS12 with Swift in Foundation
View PKCS12.swift
// xcode 7.3
import Foundation
Struct representing values returned by `SecPKCS12Import` from the Security framework.
This is what Cocoa and CocoaTouch can tell you about a PKCS12 file.
algal / ScaleAspectFitImageView.swift
Last active September 24, 2023 10:19
UIImageView subclass that works with Auto Layout to express its desired aspect ratio
View ScaleAspectFitImageView.swift
import UIKit
// known-good: Xcode 8.2.1
UIImageView subclass which works with Auto Layout to try
to maintain the same aspect ratio as the image it displays.
This is unlike the usual behavior of UIImageView, where the
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
View Zipping.swift
// 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 / Extra Logging for My Great App.mobileconfig
Created February 1, 2017 04:32 — forked from zwaldowski/Extra Logging for My Great App.mobileconfig
Apple Configuration Profile for Logging in iOS 10 and macOS Sierra
View Extra Logging for My Great App.mobileconfig
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "">
<plist version="1.0">
<!-- iOS 10, macOS Sierra, and friends bring a new logging subsystem that's
supposed to scale from the kernel, up to frameworks, and up to apps. It defaults
to a more regimented, privacy-focused approach that large apps and complex
systems need.
It, along with Activity Tracing introduced in iOS 8 and macOS Yosemite and the
Console app in macOS Sierra, hope to help you graduate from caveman debugging to
algal / colorize-emacs.bashsource
Last active August 4, 2023 17:46
Setting up truecolor (24 bit color) in emacs in the terminal, under iTerm2,, and others.
View colorize-emacs.bashsource
# sourcing this file will define a bash functions that
# tries to run subsequent calls to emacs with 24 bit color.
# It sets TERM=xterm-emacs-leg if
# - we've created a user-local terminfo record for xterm-emacs-leg, and
# - we're using iTerm2 or something has set COLORTERM=truecolor
# This will cause emacs to use 24 bit color only when it will work,
# inside or outside of tmux. I haven't found a way to auto-detect yet.
algal / loadPoints.swift
Created December 28, 2018 19:41
Read vertex positions with Model I/O
View loadPoints.swift
// 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 / tsv_to_json.swift
Last active April 22, 2023 10:01
Quick CSV to JSON in Swift
View tsv_to_json.swift
import Foundation
// Swift 2.0
// poor man's parsers for (TSV) tab-separated value files
// for something more full-featured, the best avenue is CHCSVParser
Reads a multiline, tab-separated String and returns an Array<NSictionary>, taking column names from the first line or an explicit parameter
algal /
Created September 9, 2020 20:08
Plot a confusion matrix in scikitlearn from data not from an estimator
# This uses scikit learn internals, since the sk public API requires you to pass
# in an estimator and sometimes you just want to pass in the some data you'd
# use to calculate a raw CM
def plot_cm(y_true,y_pred,labels):
from sklearn.metrics._plot.confusion_matrix import ConfusionMatrixDisplay
sample_weight = None
normalize = None
include_values = True
algal / SwiftLineReader.swift
Last active February 8, 2023 16:14
Read a file one line at a time in Swift
View SwiftLineReader.swift
import Darwin
Returns a lazy sequence that returns a String for every line of `file`.
Example 1:
// print all lines from a file
let file = fopen(NSBundle.mainBundle().pathForResource("Cartfile", ofType: nil)!,"r")
for line in lineGenerator(file) { print(line,separator: "", terminator: "") }