Marcin Krzyzanowski

@krzyzanowskim
4.3K Followers
2K Following
2.5K Posts

 unrelated. I'm here for bugs.
https://cryptoswift.io ⌨️ TextKit certified expert @ https://goodnotes.com by day

Get https://notepadexe.com - developer playground.

Text editor implementer by night https://github.com/krzyzanowskim/STTextView

githubhttps://github.com/krzyzanowskim
Blueskyhttps://bsky.app/profile/krzyzanowskim.com
Notepad.exehttps://NotepadExe.com
Commanderhttps://TheCommander.app
SwiftPM is such diva. TIL "target names need to be unique across the package graph", meaning two DIFFERENT packages can't provide a target with the same name.

Work with SwiftPM without #Xcode and run on Mac and Linux with https://notepadexe.com #swift #swiftlang #macdev #iosdev

https://youtu.be/7eGPTWPFEX4

Years ago I wrote a Pascal interpreter in #swiftlang so I thought, why not try making it an iOS app. Pascal is still taught at some school as the first programming language and the retro theme is just so nostalgic. #iosdev

The fact that we are *not* seeing wildly improving software all around us tells us everything we need to know.

There is no flourishing of value delivery, new product categories, more needs being satisfied better. It’s the opposite.

All we are seeing is decreases in quality, because 👏 code 👏 creation 👏 is not 👏 the problem.

one may naively think: font provide all the metrics needed to correctly calculate the size. WRONG. It provides some of information, the other part is either deducted, hardcoded or yoyo. Example, Helvetica at one point ha

lineHeight = ascent + ((ascent + descent) * 0.15) + descent, then there's language aware adjustment on top of that.

I can't make this shit up.

The text "Line Height" calculation on iOS/Mac is THE rocket science 🔬

There is literally one public method that can calculate it right: `NSLayoutManager.defaultLineHeight(for:)`. The logic behind it does not consistently match CoreText
CTLine, CTFramesetter, or a plain (ascent + descent + leading) calculation 🍿

Literal rocket science build on top of years of assumptions, mistakes, historic use. why? becasue reasons. magic delta values depends on the font name/style/size.

can't make this shit up "OpenAI's site is blocking automated fetches"
TIL (maybe it is obvious) screenshot of the window vs screenshot of the window area affect the overall visual effects. IMO the "only window" ruin the glass/translucency effect

the thing that annoys me the in TextKit2. the thing that is so damn broken I can't even: `usageBoundsForTextContainer`

they don't even rely on it themselves, it is barely a fallback value - the evening debugging session realization.

that explain a lot

Introducing: Agent Profiles

AI tools are powerful, but using them is still messy. Different accounts, different providers, different setups. it quickly adds friction. Commander fixes that with Agent Profiles.

Each profile is a complete setup for an agent like Claude, Codex, Pi, or OpenCode. Start a chat with any profile, or assign a profile to a project so it always uses the right setup automatically. #ai #agentic #macos #macdev