RSS.Social

Peter Steinberger

follow: @[email protected]

Posts

Claude Code Anonymous

Live Coding Session: Building Arena

Live Coding Session: Building Arena

My Current AI Dev Workflow

Essential Reading for Agentic Engineers - August 2025

Just One More Prompt

Poltergeist: The Ghost That Keeps Your Builds Fresh

Don't read this Startup Slop

Essential Reading for Agentic Engineers - July 2025

Self-Hosting AI Models After Claude's Usage Limits

Logging Privacy Shenanigans

VibeTunnel's first AI-anniversary

Making AppleScript Work in macOS CLI Tools: The Undocumented Parts

Peekaboo 2.0 – Free the CLI from its MCP shackles

Command your Claude Code Army, Reloaded

Essential Reading for Agentic Engineers

Slot Machines for Programmers: How Peter Builds Apps 20x Faster with AI

My AI Workflow for Understanding Any Codebase

stats.store: Privacy-First Sparkle Analytics

Showing Settings from macOS Menu Bar Items: A 5-Hour Journey

VibeTunnel: Turn Any Browser into Your Mac's Terminal

Vibe Meter 2.0: Calculating Claude Code Usage with Token Counting

llm.codes: Make Apple Docs AI-Readable

Automatic Observation Tracking in UIKit and AppKit: The Feature Apple Forgot to Mention

Peekaboo MCP – lightning-fast macOS screenshots for AI agents

Migrating 700+ Tests to Swift Testing: A Real-World Experience

Commanding Your Claude Code Army

Code Signing and Notarization: Sparkle and Tears

Vibe Meter: Monitor Your AI Costs

Claude Code is My Computer

Stop Over-thinking AI Subscriptions

Introducing Demark: HTML in. MD out. Blink-fast.

The Future of Vibe Coding: Building with AI, Live and Unfiltered

MCP Best Practices

Finding My Spark Again

Top-Level Menu Visibility in SwiftUI for macOS

Fixing keyboardShortcut in SwiftUI

Supporting Both Tap and Long Press on a Button in SwiftUI

On Using Apple Silicon Mac Mini for Continuous Integration

Apple Silicon M1: A Developer's Perspective

Gardening Your Twitter: Curating Your Timeline

Gardening Your Twitter: Growing Your Followers

Forbidden Controls in Catalyst: Optimize Interface for Mac

Disabling Keyboard Avoidance in SwiftUI's UIHostingController

The State of SwiftUI

Logging in Swift

Building with Swift Trunk Development Snapshots

Calling Super at Runtime in Swift

zld — A Faster Version of Apple's Linker

How to Fix LLDB: Couldn't IRGen Expression

Updating macOS on a Hackintosh

InterposeKit — Elegant Swizzling in Swift

The Great Mac Catalyst Text Input Crash Hunt

Jailbreaking for iOS Developers

Network Kernel Core Dump

How to macOS Core Dump

Kernel Panics and Surprise boot-args

The LG UltraFine 5K, kernel_task, and Me

Let's Try This Again

How We Work at PSPDFKit

Swizzling in Swift

WWDC for First-Timers, 2019 Edition

Challenges of Adopting Drag and Drop

Marzipan: Porting iOS Apps to the Mac

How to Use Slack and Not Go Crazy

Hardcore Debugging - Heavy Weapons for Hard Bugs

Binary Frameworks in Swift

Even Swiftier Objective-C

The Case for Deprecating UITableView

Running tests with Clang Address Sanitizer

UI testing on iOS, without busy waiting

Hiring a distributed team

Writing Good Bug Reports

Real-time collaboration, Apple, and you

Converting Xcode Test Runs to JUnit, the Fast Way

Efficient iOS Version Checking

Investigating Thread Safety of UIImage

Swifty Objective-C

Running UI Tests on iOS With Ludicrous Speed

A Pragmatic Approach to Cross-Platform

Surprises with Swift Extensions

Using ccache for Fun and Profit

UITableViewController designated initializer woes

Researching ResearchKit

The curious case of rotation with multiple windows on iOS 8

UIKit Debug Mode

Retrofitting containsString: on iOS 7

A Story About Swizzling "the Right Way™" and Touch Forwarding

Hacking with Aspects

Fixing UITextView On iOS 7

Fixing What Apple Doesn't

How To Inspect The View Hierarchy Of Third-Party Apps

Fixing UISearchDisplayController On iOS 7

Smart Proxy Delegation

Adding Keyboard Shortcuts To UIAlertView

How To Center Content Within UIScrollView

UIAppearance for Custom Views

Hacking Block Support Into UIMenuItem

Using Subscripting With Xcode 4.4 And iOS 4.3+

Pimping recursiveDescription

NSURLCache Uses A Disk Cache As Of iOS 5

Moving On... Or How Waiting For A Visa Was The Best Thing That Ever Happened To Me.

Don't Call willChangeValueForKey Unless It's Really Needed

Reboot