Skip to content

Meeting minutes and learnings from the physical space meeting.

Notifications You must be signed in to change notification settings

aflockofswifts/meetings

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Flock of Swifts

Flock We are a group of people excited by the Swift language. We meet each Saturday morning to share and discuss Swift-related topics.

All people and all skill levels are welcome to join.
RSVP: https://www.meetup.com/A-Flock-of-Swifts/

Archives


2026.01.17

AI Tooling, Agents, and Codex

Swift Concurrency & Logging

  • Peter Wu raised a question about global actor lifecycle, and specifically:
    • Lifecycle of custom (unowned) executors owned by a global actor.

Logging

Josh noted that requiring an async context for clients wanting to use analytics is a high hurdle. Better off to just use locks / mutex and have synchronous method calls.

Cupertino & MCP Integration

  codex mcp add cupertino -- /usr/local/bin/cupertino serve

Hardware Hacking & Security

Haiku's from Ed (or possibly his AI)

    All speech is Haiku
    No other way to converse
    Words are poetic
    PR obsolete
    Just let AI fix it all
    No more code reviews
    Humans make Haiku
    AI just steals from people
    Creativity
    Zooming with AIs
    No more humans required
    Meetings so lonely

2026.01.10

Highlights & Discussion

  • The Pipe project was shared and discussed, including recent architectural changes (shared by Peter Wu):

    • Repository: https://github.com/PeterWu9/Pipe
    • Pipe is no longer an AsyncSequence.
    • Pipe now vends an AsyncStream.
    • Additional updates were pushed incorporating feedback from Josh Homann.
  • A concurrency observation was raised that async let does not always result in parallel execution in practice (noted by Peter Wu).

Articles to Read

AI and Robots

Skills! (via Josh Homann):

2025.01.03

Build times

We discusses using tuist to reduce build times by pre compiling.
Video shared by ChitaRanjan

Pipe

We reviewed the various implementations of pipe from last year and discussed how to iterate over the pipe:

public final class Pipe<Value: Sendable>: Sendable, AsyncSequence {
    public typealias Stream = AsyncStream<Element>
    public typealias AsyncIterator = Stream.AsyncIterator
    public typealias Element = Value
    private let lockedContinuations: Mutex<[UUID: Stream.Continuation]>
    private let replayCount: Int
    public init(replay: Int = 0) {
        replayCount = replay
        lockedContinuations = .init([:])
    }
    deinit {
        lockedContinuations.withLock { continuations in
            continuations.values.forEach { $0.finish() }
        }
    }
    public func send(_ value: Value) {
        lockedContinuations.withLock { continuations in
            continuations.values.forEach { $0.yield(value) }
        }
    }

    public func makeAsyncIterator() -> AsyncIterator {
        let (stream, continuation) = Stream.makeStream(of: Element.self,
                                                       bufferingPolicy: .bufferingNewest(replayCount))
        let id = UUID()
        continuation.onTermination = { [weak self] _ in
            self?.lockedContinuations.withLock { $0[id] = nil }
        }
        lockedContinuations.withLock { $0[id] = continuation }
        return stream.makeAsyncIterator()
    }
}

A sequence is just an iterator factory and a for loop is syntactic sugar for making an iterator and looping over it (async or not):

let pipe = Pipe<Int>()
let array = [1, 3, 5, 7, 9]

Task {
    for value in array { }
    var i = array.makeIterator()
    while let value = i.next() {

    }
    for await value in pipe {
        print(value)
    }
    var iterator = pipe.makeAsyncIterator()
    while let value = await iterator.next() {
        print(value)
    }
}

Context engineering

We discussed context engineering as outlined in this video and these notes We discussed how to refine the prompt from december to produce better code by not cluttering the context window:

About

Meeting minutes and learnings from the physical space meeting.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5