The Curious Engineer

All blogs / Software / engineering practice

Jeff Johnson

lapcatsoftware.com/main/Resume.html

The résumé of Jeff Johnson, professional Mac and iOS developer.

Software / engineering practiceMobile / iOS / AndroidSecurity

Posts
510 from 4 May 2013 to 17 Oct 2026
Posting
weekly (94 in the last year)
Kind
personal blog

2026 82

  1. 2006 - 2010
  2. Why I still shun passkeys
  3. Almost everyone misunderstands Chrome extension manifest version 3
  4. macOS Golden Gate is a buggy mess
  5. More details about how macOS 26.4 changed the login keychain
  6. Meta Muse Mac first run experience
  7. I’m leaving Reddit because of RSS
  8. App Store: a few bad apples or one bad Apple?
  9. App Store review allowed a Meta Muse copycat
  10. Files access bug in iOS
  11. Book review: Steve Jobs in Exile by Geoffrey Cain
  12. macOS 26.4 silently enabled login keychain data protection
  13. Apple release candidate unfixed bugs
  14. macOS Tahoe silently sabotaged the login keychain
  15. Liquid Glass disfigured the Safari status bar
  16. Chrome again exempts Google from user site data settings
  17. Copycats in Apple Books
  18. I beg the news media to talk to me before publishing stories about my blog posts
  19. More incredible tales of App Store curation
  20. Apple’s statements about its developer program in the Epic trial
  21. hdiutil is deprecated in macOS 27 Golden Gate
  22. App Store allows developers to spam the submission and review process
  23. Not Raising the Gates
  24. Spicy tale of an App Store fraud
  25. A fortuitous decade as an indie software developer
  26. Apple unpublished old Mac OS X release notes
  27. Why does Mail app contact iCloud when sending a non-iCloud email?
  28. The obligatory AI post
  29. Apple should be ashamed of its hostile App Store rating system
  30. No, you curate the App Store
  31. macOS Files & Folders System Settings Confusing UI
  32. macOS App Management protection is still a joke
  33. Mac App Store: What’s in a name again?
  34. Apple account email address disclosure via Mail app
  35. I like pancakes. So I hate debates.
  36. I found a workaround for an App Store Connect bug
  37. How to hide an update in the Mac App Store
  38. Apple again black-holed my App Store Connect bug report
  39. Liquid Glass obscures macOS volume changes
  40. Analyzing Apple financial statements: products vs. services
  41. Apple Hide My Email bug, possibly related to disclosure vulnerability
  42. Safari sidebar silently loads all your bookmarks
  43. Can iCloud remotely enable Protect Mail Activity on your Mac?
  44. WebKit always enables the Copy menu item in every app
  45. Can you reproduce this App Store Connect bug?
  46. Reddit RSS feeds recent rate limiting and solution
  47. Safari Technology Preview’s self-destructive macOS support policy
  48. My URL/NSURL bug in the OS 27 release notes
  49. Misguided JavaScript API: Origin Private File System
  50. The Mythical App Store Reviewer Month
  51. Mac App Store: What’s in a name?
  52. Apple 0-dayed Safari on macOS Sequoia and Sonoma
  53. Prevent cross-site tracking in Safari breaks Cloudflare challenges
  54. App Store Curation 2: The Scammer Strikes Back
  55. The browser extension API setUninstallURL violates user privacy
  56. Small ways the App Store could be improved for developers
  57. App Store Connect analytics missing platform versions
  58. Apple randomly closes bug reports unless you “verify” the bug remains unfixed
  59. App Store developers: suggest your small ideas for improvement
  60. macOS Tahoe bloats the Safari Picture-in-Picture window
  61. The incentives of online attention
  62. Safari web browser bugs: A year in review
  63. If computers are the future, why are computer users expected to be permanently illiterate?
  64. The evolution of Mac app window corners
  65. MacBook Neo
  66. Investigation complete - Unable to diagnose with current information
  67. macOS Tahoe windows have different corner radiuses
  68. The myth and reality of Mac OS X Snow Leopard revisited
  69. More macOS 26.3 Finder column view silliness
  70. Why is DuckDuckGo so much worse than Bing?
  71. I’m in the Epstein files
  72. Apple’s MacBook Pro DFU port documentation is wrong
  73. How do you comparison shop in the App Store?
  74. My collected App Store critiques
  75. macOS 26.1 new feature: Resize columns to fit filenames
  76. Mobile Safari web pages are severely limited by memory
  77. My way to prevent the macOS Tahoe update with Little Snitch
  78. macOS Tahoe broke Finder columns view
  79. A sternly worded blog
  80. The news media blew it again: iOS 26 adoption measured only third-party browsers
  81. Myths about Logitech Developer ID certificate expiration
  82. My hope for Safari extensions in 2026

2025 66

  1. Mac app notarization: The ghost of Xcode past?
  2. I foretold that Mac app notarization is security theater
  3. Belated Liquid Glass on iPhone first impressions
  4. UserDefaults footgun
  5. A critique of mathematical objectivity
  6. Reaching 10 million App Store users
  7. Feedback Assistant app mysteriously triggers IMTransferAgent
  8. Web browser status bars are nuts
  9. Why iOS Safari does not open App Store app links
  10. Web development tip: disable pointer events on link images
  11. Apple Messages app violates tracking number privacy
  12. Stop The Mac App Store is not obsolete
  13. URL/NSURL double-encodes characters unnecessarily
  14. Safari 26 advanced fingerprinting protection: A confusing feature
  15. GitHub-hosted copycat Mac app malware scam proliferates
  16. Safari 26 changed address bar copying
  17. The psychology of fixing bugs, Part 2: Google
  18. The psychology of fixing bugs
  19. A critique of philosophical objectivity
  20. Apple wants a sysdiagnose for a feature request
  21. iOS simulator Files app broken by symlink
  22. Academic philosophy: my quixotic quest
  23. icloud.com email users can send but not receive malicious links
  24. Tim Cook vs. Steve Jobs
  25. Book review: Apple in China by Patrick McGee
  26. Some third-party Mac apps I use
  27. Liquid Crass
  28. Apple in China, Ripoff in Amazon
  29. App Store search is not a user feature
  30. Safari web app strange connection behavior
  31. macOS Tahoe forces all app icons into iOS squircles
  32. Why does Apple make a minority of developers finance the entire App Store?
  33. Insane web design on apple dot com
  34. Stop The Mac App Store minor update
  35. Apple Turntable
  36. Apple is not blocking Epic Games from updating Fortnite in the European Union
  37. A look at a Mac App Store top grosser
  38. Making my app worse because of macOS privacy protections
  39. Free with In-App Purchase is a sham
  40. Why some Mac apps launch slowly: A follow-up
  41. Google Chrome 136 automatically upgrades your accounts to use passkeys
  42. The weirdest HTML feature (or bug?): display your head
  43. Gatekeeper change in macOS 15.4
  44. App Store Curation
  45. UIApplication delegate deprecation coming in iOS 19 SDK
  46. Inaccessible .bnnsir files on macOS Sequoia, Part 3
  47. Inaccessible .bnnsir files on macOS Sequoia, Part 2
  48. NSURLComponents changed in macOS 15.4
  49. Why is macOS syslogd listening for UDP connections?
  50. Apple Software Update dark pattern
  51. For sale: 16-inch M1 MacBook Pro with new battery
  52. Why are macOS security updates re-running the Setup Assistant?
  53. iCloud remotely triggers iMessage sign-in and sync
  54. Xcode constantly phones home
  55. Inaccessible .bnnsir files on macOS Sequoia
  56. Apple software update "bug" enables Apple Intelligence
  57. How Safari search engine extensions work
  58. Apple Mail app bugs finally pushed me to MailMate
  59. YouTube problem in macOS Safari
  60. Image Creation Tools Are Here
  61. New secure note on macOS Sequoia
  62. Little Snitch feature nobody knows about
  63. Apple Passwords is hostile to backups
  64. macOS Sequoia iCloud Photos configuration profile bug
  65. Help? Reset AirDrop identity hash
  66. Technology is never a substitute for consent

2024 48

  1. The internet is full of experts
  2. Apple Photos phones home on iOS 18 and macOS 15
  3. Deep dive into a macOS default web browser bug
  4. How Safari 18.2 https upgrade works
  5. How Safari (insanely) displays app extension icons
  6. Apple continues to dismiss bug reports
  7. Apple rejected my Vision Pro app update
  8. Apple silently uploads your passwords and keeps them
  9. How Safari can improve extensions: Redux
  10. Mac App Store receipt validation problem on Sequoia
  11. Safari 18 randomly appearing sidebar
  12. More annoying macOS 15 Sequoia prompts: Bluetooth
  13. Stop macOS 15 Sequoia monthly screen recording prompts
  14. Can't change security policy or disable SIP with macOS 15 Sequoia
  15. Passkey privacy issues
  16. Safari missing feature: auto-clear website data
  17. macOS firewall slows DNS queries
  18. How I git push from my laptop to my website
  19. New macOS bug: Updates Available notification with no updates
  20. Apple memory holed its broken promise for an OCSP opt-out
  21. Smart App Banners don't appear in private browsing
  22. Has Apple underpaid App Store developers AGAIN?
  23. Fix Safari Private Window Empty Page
  24. Deluge of Fake Mac App Store Reviews
  25. Amazon Web Services dark patterns
  26. Safari bookmarklet permissions
  27. Advanced tracking and fingerprinting protection breaks Safari extensions
  28. Stop iCloud Keychain with a profile
  29. macOS Sonoma Mail bug: spam bypasses Block All Remote Content
  30. WWDC Boycott of Feedback Assistant
  31. Follow-up on developer payments for App Store bundle purchases
  32. Apple silicon MacBook Pro batteries can't be replaced under warranty by third parties
  33. Verify Your Recovery Key?
  34. macOS Sonoma bug: Can't create disk image containing locked file
  35. macOS Sonoma silently enabled iCloud Keychain despite my precautions
  36. Updating from macOS Ventura to Sonoma silently enables iCloud Keychain
  37. Apple started cheating me out of App Store bundle purchases
  38. YouTube video quality bug in iOS Safari
  39. Show passwords as they're typed in Terminal
  40. Funny story of how I recovered the password of an encrypted Mac disk image
  41. Stop The Mac App Store improved for Sonoma and Ventura
  42. Safari Search Settings spacing
  43. Mac app launches slowed by malware scan
  44. How to stop Upgrade to macOS Sonoma notifications
  45. The HTML dialog element API is a mess
  46. Abandonware featured in iOS App Store
  47. Beware of App Store app bundles
  48. How Safari can improve extensions

2023 51

  1. StopTheMadness Pro postmortem: crApp Store still crappy
  2. iOS 17 App Store screenshots caveat
  3. iOS 17.2 shows the wrong Safari extension icons
  4. macOS Sonoma increases NSControl font size
  5. Disabled Safari extensions are not fully disabled, and other problems
  6. NSFileManager error messages lie
  7. The myth and reality of Mac OS X Snow Leopard
  8. Mac App Store receipt validation revisited
  9. Feedback Assistant boycott web page and participants list
  10. Apple developer boycott of Feedback Assistant
  11. This Feedback will no longer be monitored, and incoming messages will not be reviewed
  12. Safari share menu now violates privacy
  13. Why I disabled advanced tracking and fingerprinting protection in Safari
  14. Safari 17 hidden feature: Always allow this website to open an app
  15. How to fix the disastrous new Xcode 15 console
  16. LaunchServices and Spotlight
  17. Xcode 15 logs nil as an empty string, not (null)
  18. Your Mastodon archive omits DMs sent to you
  19. Mastodon instance admin deleted all of our DMs after 15 days
  20. How did Apple get all of my email addresses?
  21. Mysterious disappearing Apple ID 2FA codes
  22. The most wonderful new hidden feature in iOS 17 and macOS 14
  23. Another Google Search bug in iOS Safari
  24. Safari Un-Intelligent Tracking Prevention: Data loss by design
  25. Threads.net can go to hell
  26. macOS App Management vulnerability illustrated
  27. macOS 0day: App Management
  28. How do I report a Google Search bug?
  29. Follow-up to Firefox 115 can silently remotely disable my extension on any site
  30. Reflections on my 7th Twitter anniversary
  31. Firefox 115 can silently remotely disable my extension on any site
  32. My thoughts on Apple Vision Pro
  33. Little Snitch "denied" connections leak your IP address: Developer response
  34. Safari 17 Link Tracking Protection Details
  35. macOS Sonoma sandbox security
  36. macOS: Attribute Not Found?
  37. Passkeys: A loss of user control?
  38. Follow-up to Little Snitch "denied" connections leak your IP address
  39. Little Snitch "denied" connections leak your IP address
  40. What Apple doesn't get about Feedback
  41. Mac Messages: Can't I show my email address?
  42. Race to the bottom: App Store peer benchmarks
  43. I do want to go back to social media
  44. Ventura or Vista? Cancel or Allow in Mac Preview app
  45. App Store Review continues to delay updates for no reason
  46. Mastodon postmortem
  47. Mastodon instance mstdn.plus with over 4K users suddenly broke
  48. NSURLSession connection leak
  49. Universal Links Revisited
  50. Bing and DuckDuckGo removed my business web site AGAIN
  51. The App Store does not protect consumers

2022 57

  1. App Store Connect is the worst web site ever made, Part 4: Works as currently designed
  2. I posted my Safari extension issues on GitHub. Post yours too!
  3. How to restore the Preferences menu item to macOS Ventura, Part 2
  4. macOS removes and reinstalls Rosetta after every update
  5. Mac OS X analogue for Node.js?
  6. macOS Monterey still vulnerable to CVE-2022-40303
  7. Hide System Preferences Dock badge
  8. I don't want to go back to social media
  9. App Store Connect is the worst web site ever made, Part 3
  10. App Store Connect just got worse. But I made it better.
  11. I'm starting a company blog and Slack
  12. Blogging without a blogging engine
  13. Why does this chart just go down? 0 once again marks the spot.
  14. Safari annoyingly announces reader and translation
  15. macOS 27.2 fixed 263 CVE, credited 262. Who was uncredited? Me, I think.
  16. Design the interface for functionality not familiarity
  17. How to regenerate Xcode managed provisioning profiles
  18. How macOS Ventura App Management works and doesn't work
  19. Mac indie dev alliance
  20. Works as currently designed
  21. Check your App IDs for unused capabilities
  22. Every unsandboxed app has Full Disk Access if Terminal does
  23. iOS 16 text view breakage
  24. How to restore the Preferences menu item to macOS Ventura
  25. Web pages can overwrite your system clipboard without your knowledge
  26. Safari updates reset your Experimental Features preferences
  27. Extensions API broken in Mac Safari
  28. iOS dictation is dickish
  29. Why macOS Ventura Share menu is bad
  30. Twitter crypto spam bots copy real tweets to appear real
  31. Apple re-enables Bluetooth on every OS update on purpose
  32. NSURL is relatively bad
  33. More disappearing Safari extensions
  34. Thoughts on Swift and Objective-C
  35. macOS Monterey Dock watches /Users/Shared/
  36. macOS Monterey unannounced security misfeature
  37. Link Unshortener enhancements
  38. Stop Safari from switching your Twitter timeline
  39. Bing and DuckDuckGo removed my business web site
  40. Apple reneged on OCSP privacy
  41. Why Ventura System Settings is bad, Part 2
  42. Why Ventura System Settings is bad
  43. Apple's director of App Review emailed me
  44. My bug fix update is stuck in App Store review
  45. On App Store pricing inflexibility
  46. Safari <img> solving the wrong problem
  47. The App Store Improvements process makes no sense
  48. Google Chrome 101 removed Fill passwords on account selection
  49. How do I backup my new MacBook Pro?
  50. Impressions of the new MacBook Pro
  51. Why is /AppleInternal factory installed on new Macs?
  52. Mac Pro historical perspective
  53. App Store Connect is the worst web site ever made
  54. Do you want me to leave the Apple ecosystem?
  55. Misinformation from… Stephen Fry?
  56. How to make a home page bookmark to Twitter in Mobile Safari
  57. Siri may phone home with Ask Siri disabled

2021 40

  1. iOS 15.2 broke Safari extension preferences storage
  2. You always had the power to PiP on YouTube and everywhere
  3. Safari bug: background tabs reactivate
  4. Safari forgets your history
  5. DNSServiceNATPortMappingCreate was quietly killed in macOS Monterey
  6. Mass confusion and dislike over Safari extension icon tinting
  7. Apple vandalized my icon in the latest betas
  8. Did iOS 15 kill Google AMP?
  9. StopTheScript
  10. The Safari extension blues
  11. Where are the Safari extensions in the iOS App Store?
  12. Google Chrome to remove detailed cookie and site data controls
  13. Why Xcode tools are slow after reboot
  14. The color purple
  15. Dark menu bar and Dock on Big Sur
  16. Disappearing Safari extensions
  17. Mac OS update failed for the first time in 19 years
  18. Twitter locked my account (again) for an obvious joke
  19. Stop the Medium
  20. Safari extension development: icons
  21. iOS Safari extensions bug
  22. StopTheMadness for iOS
  23. Disable Safari Preload Top Hit
  24. Mac trustd high CPU
  25. Porting your Chrome extension to Safari
  26. StopTheMadness: Hovering near greatness
  27. Mac App Store review folly
  28. NSURL is a bad host
  29. Distributing unnotarized Mac apps in a text file
  30. How to stop Mac App Store notifications
  31. Closing web browser windows doesn't close connections
  32. TRY THE NEW SAFARI
  33. Distributing Mac apps without notarization
  34. New app: Default web browser
  35. How to use multiple search engines in Safari
  36. Mac App Store updates failing on Mojave, Part 2
  37. Xcode code signing madness
  38. Deleting DerivedData the right way
  39. New app: Stop The Mac App Store
  40. How to change your default web browser on Big Sur

2020 59

  1. Mac App Store updates failing on Mojave
  2. Undocumented NSShadow change on Catalina
  3. Disclosure: Yet another macOS privacy protections bypass
  4. Some BS AppKit notes
  5. Safari bugs me
  6. Apple Developer ID OCSP
  7. Developer ID certificate revocation
  8. Chrome exempts Google sites from user site data settings
  9. Stop animated GIFs in Safari
  10. Can't you just right click? Yes, with a workflow.
  11. macOS Containers and defaults
  12. Safari web extension bug
  13. Stop Facebook click tracking
  14. Your Honor, what about the Mac?
  15. Can't you just right click?
  16. App Store is neither console nor retail but jukebox
  17. News+ privacy on Big Sur
  18. PSA if you ever ran my SafariPrivacyTest sample app
  19. Stop the Swift 2.0
  20. App Store Connect and StopTheMadness
  21. Stop the Swift
  22. macOS Recovery: Bug or Feature?
  23. Introducing the free Safari extension FindTheMadness
  24. Disclosure: Another macOS privacy protections bypass
  25. Better disassembly on macOS Big Sur
  26. Objective-C disassembly on macOS Big Sur
  27. Extract the system libraries on macOS Big Sur
  28. Stop DuckDuckGo clickjacking
  29. StopTheMadness can now stop mouse tracking
  30. Logging https requests and responses of Apple system processes
  31. Software Update changes in the latest macOS releases
  32. The Mystery of the Phantom App Updates, Part 2
  33. Catalina is checking notarization of unsigned executables
  34. Link Unshortener for iOS
  35. __kindof useful?
  36. Stop the Daring Fireball?
  37. Stop 'Open in the Twitter app' in Safari Catalina
  38. Stop Gmail click tracking
  39. Reflections on the Mac sandbox escape
  40. Mac sandbox escape
  41. NSFormatter allows invalid values
  42. Working without a nib, Part 12: NSWindow memory management
  43. Bad Safari extensions bug with context menus
  44. Introducing Link Unshortener
  45. Xcode indexing tip
  46. Resources for learning Objective-C and AppKit
  47. Underpass is back (though it never left)
  48. Safari bug: can't enable extensions on Catalina
  49. Safari no longer runs disabled extensions
  50. Mac App Store in a nutshell
  51. PayPal Me
  52. Resolve rip-relative addresses from otool
  53. The decimation of Safari extensions
  54. StopTheMadness for Mac adds Chrome, Edge, and Brave!
  55. Safari runs disabled extensions
  56. Swift fatalError is a fatal error
  57. Questions about the Apple Security Bounty
  58. The security of Safari extensions
  59. How to stop Safari for Mac disk caching

2019 31

  1. Revisited: The true and false security benefits of Mac app notarization
  2. Undocumented Catalina file access change
  3. Hardened Runtime and XPC Services
  4. NSAssert considered harmless
  5. Hardened Runtime and Sandboxing Revisited
  6. Disclosure: macOS privacy protections bypass
  7. What happened to the Mac bug bounty program?
  8. The Safari Extensions Gallery is no longer available
  9. Important Information Regarding the Safari Extensions Gallery
  10. A problem worse than Zoom
  11. Stop Safari from autosubmitting login forms
  12. Private browsing in Safari with StopTheMadness
  13. Catalina app compatibility
  14. My Twitter account has been locked for a third time
  15. We believe that what’s in our store says a lot about who we are
  16. Introducing StopTheNews
  17. StopTheMadness First Anniversary
  18. Google Chrome can no longer disable hyperlink auditing
  19. The true and false security benefits of Mac app notarization
  20. More madness stopped: beacons
  21. The madness stopped: anchor ping
  22. Postmortem: iTunes Affiliate for apps
  23. Some thoughts on anchor ping
  24. Safari link tracking can no longer be disabled
  25. NetService NutHouse
  26. My Twitter account has been locked again
  27. Finally credit from Apple Product Security
  28. Spying on Safari in Mojave
  29. Still no credit from Apple Product Security
  30. Stop Google Search Results Tracking
  31. StopTheMadness for Firefox

2018 23

  1. The Mac App Store Safari Extensions Experience
  2. Text view adventures, Part 4
  3. Text view adventures, Part 3
  4. Mac app notarization and customer privacy
  5. Text view adventures, Part 2
  6. Text view adventures, Part 1
  7. Hardened Runtime and Sandboxing
  8. macOS 10.14.1 Privacy: What's fixed and what's not
  9. Mac App Store Bundles
  10. Rickroll Resurrected
  11. Mac Mail with Google 2-step and Yubico
  12. Another hole in Mojave privacy protection
  13. No cookie for you!
  14. Prevent App Nap Programmatically
  15. Race to Under the Bottom
  16. Stop The Mad Icon
  17. Ode to a MacBook Pro
  18. NSOnState is deprecated
  19. Debugging on Mojave
  20. App Translocation and Safari App Extensions
  21. My Twitter account has been locked
  22. Stop The Madness
  23. A Record 13 Weeks

2017 23

  1. A holiday gift
  2. Key difference between Dictionary and NSDictionary
  3. The Mystery of the Phantom App Updates
  4. Working without a nib, Part 11: Why?
  5. Local variables are still free, in Swift
  6. Free as in app
  7. NSStringEncoding Considered Harmful
  8. Go all in with xcconfig
  9. NSNotificationCenter is thread-safe NOT NOT
  10. Working without a nib, Part 10: Mac Main Menu
  11. I was on a podcast
  12. Porting Objective-C to Swift
  13. Problems with Objective-C annotations
  14. Not just the Mac Pro
  15. Twitter only mutes 100 keywords
  16. Autoresizing UITextView
  17. Whither Swift?
  18. Follow-up on a Record 14 Weeks
  19. Slow Week?
  20. A Record 14 Weeks
  21. 70 Cents Put Me on the Mac App Store Charts
  22. Working without a nib, Part 9: Shipping without a nib
  23. Inaugurating Underpass

2016 17

  1. Preannouncement
  2. Textured Tabbed Windows
  3. We don't need no stinking badges
  4. Working without a nib, Part 8: The nib awakens
  5. Translocate Relocated
  6. Distributing Outside the Mac App Store
  7. Caveat Formatter
  8. Symmetric Encryption
  9. Keychain Sync
  10. MIA: SecTranslocate
  11. Detect App Translocation Without the 10.12 SDK
  12. Trust
  13. In Memoriam
  14. Undo
  15. Zero Day?
  16. App Translocation
  17. What's Wrong With Twitter

2015 4

  1. SecTransformExecuteAsync Considered Confusing
  2. The OpenSSL Blues
  3. Checking for El Capitan
  4. Validate Project Settings: Never!

2014 7

  1. Lack of Communication
  2. Breaking the resource rules
  3. NSNotificationCenter is thread-safe NOT
  4. Cancel WWDC
  5. Dispatch Queues and Run Loop Modes
  6. Mark Not All as Read
  7. Winter is Coming

2013 2

  1. The Definitive Guide to Installing Xcode 3 on Mountain Lion (Without Kernel Panics)
  2. SDK vs. Deployment Target