Skip to content

Instantly share code, notes, and snippets.

@carlynorama
carlynorama / Router+Response.swift
Last active August 17, 2025 23:14
Handy Router Extensions, Hummingbird
import Hummingbird
extension Router {
/// Motivation: the below won't take .redirect without `Response.` and I'm that lazy.
/// router.get("c") { _, _ in Response.redirect(to: "test.html", type: .normal) }
/// usage:
/// router.autoReply("a", response: .init(status: .ok))
/// router.autoReply("b", response: .redirect(to: "test.html", type: .normal))
@carlynorama
carlynorama / outline.yaml
Created May 23, 2025 13:54
electricity -> behavior pipeline x Swift Embedded Docs
Hardware Levels, the electricity -> behavior pipe line
- level: Raw Circuit
- description: custom designed circuit that does one thing.
- examples:
- bistable multi vibrator circuit to preserve toggle status,
- some Application Specific Integrated Circuit
- example_tooling:
- software: KiCad
- swift embedded documentation covering level:
<!-- LICSENSE: NC-BY-SA -->
<p>Here are the sites and resources that attendees at the Learn to Code with Us events had found to be the most helpful:</p>
<table class="c11" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<th width="33%">What do you want to do?</th>
<th width="33%">What languages does this use?</th>
<th width="33%">Helpful Beginner Online Resources</th>
</tr>
@carlynorama
carlynorama / FixedWidthInteger+Data.swift
Created March 18, 2023 23:57
Converting a fixed width integer to Data in Swift. e.g. UInt32/Int32, etc.
extension FixedWidthInteger {
var dataBigEndian: Data {
var int = self.bigEndian
return Data(bytes: &int, count: MemoryLayout<Self>.size)
}
var dataLittleEndian: Data {
var int = self.littleEndian
@carlynorama
carlynorama / Matrix2D.swift
Last active December 13, 2024 22:23
For advent of code 2024 Day13... there is a simpler way! (code is very messy, apologies)
struct MatrixSystem {
//Ax = b
//See also the stand alone. It's faster, I suspect.
static func solveLinearPair(x1:Int, y1:Int, r1:Int, x2:Int, y2:Int, r2:Int) -> (x:Int, y:Int)? {
// x1 y1 X r1
// x2 y2 Y r2
let b = Vector2D(x: r1, y: r2)
import UIKit
import PlaygroundSupport
import Foundation
PlaygroundPage.current.needsIndefiniteExecution = true
//URLSessionTaskDelegate
//You use this protocol in one of two ways, depending on how you use a URLSession:
//If you create tasks with Swift’s async-await syntax, using methods like bytes(for:delegate:) and data(for:delegate:), you pass a delegate argument of this type. The delegate receives callbacks for things like task progress, while the call point awaits the completion of the task. A delegate that receives life cycle and authentication challenge callbacks as the transfer progresses.
//If you add tasks to the session with methods like dataTask(with:) and downloadTask(with:), then you implement this protocol’s methods in a delegate you set on the session. This session delegate may also implement other protocols as appropriate, like URLSessionDownloadDelegate and URLSessionDataDelegate. You can also assign a delegate of this type directly to the task to intercept callbacks before the task deliver
@carlynorama
carlynorama / bink_main.s
Created April 14, 2024 22:55
Pulled from bigger project for reference.
.cpu cortex-m0
.fpu softvfp
.thumb
.section .text.program_code
.equ portA_address, 0x41004400
.equ portA_DIRSET, 0x41004400+0x08
.equ portA_OUTTGL, 0x41004400+0x1C
@carlynorama
carlynorama / FixedSizeArray.swift
Last active February 3, 2024 07:09
FixedArray
//
// FixedWidth.swift
// TestingTwo
//
// Created by Carlyn Maw on 2/2/24.
// Inspired by 25:52 of WWDC 2020 "Safely Manage Pointers in Swift."
// In the subscript, using .load(fromByteOffset:as) prevents rebinding of memory for access. This struct can point to memory bound as a different type without overriding.
//TODO: Add tuplebride to help with C
//examples: https://github.com/carlynorama/UnsafeWrapCSampler/blob/main/Sources/Swift/TupleBridge.swift