4/21/2021 | StopTheMadness: Hovering near greatness |
4/19/2021 | Mac App Store review folly |
4/10/2021 | NSURL is a bad host |
4/2/2021 | Distributing unnotarized Mac apps in a text file |
3/29/2021 | How to stop Mac App Store notifications |
3/17/2021 | Closing web browser windows doesn't close connections |
3/8/2021 | TRY THE NEW SAFARI |
3/7/2021 | Distributing Mac apps without notarization |
3/5/2021 | New app: Default web browser |
3/2/2021 | How to use multiple search engines in Safari |
2/26/2021 | Mac App Store updates failing on Mojave, Part 2 |
2/23/2021 | Xcode code signing madness |
1/31/2021 | Deleting DerivedData the right way |
1/12/2021 | New app: Stop The Mac App Store |
1/6/2021 | How to change your default web browser on Big Sur |
12/29/2020 | Mac App Store updates failing on Mojave |
12/18/2020 | Undocumented NSShadow change on Catalina |
12/1/2020 | Disclosure: Yet another macOS privacy protections bypass |
11/27/2020 | Some BS AppKit notes |
11/18/2020 | Safari bugs me |
11/13/2020 | Apple Developer ID OCSP |
10/29/2020 | Developer ID certificate revocation |
10/7/2020 | Chrome exempts Google sites from user site data settings |
10/1/2020 | Stop animated GIFs in Safari |
9/27/2020 | Can't you just right click? Yes, with a workflow. |
9/22/2020 | macOS Containers and defaults |
9/17/2020 | Safari web extension bug |
9/11/2020 | Stop Facebook click tracking |
8/27/2020 | Your Honor, what about the Mac? |
8/18/2020 | Can't you just right click? |
8/15/2020 | App Store is neither console nor retail but jukebox |
8/11/2020 | News+ privacy on Big Sur |
7/31/2020 | PSA if you ever ran my SafariPrivacyTest sample app |
7/29/2020 | Stop the Swift 2.0 |
7/23/2020 | App Store Connect and StopTheMadness |
7/14/2020 | Stop the Swift |
7/9/2020 | macOS Recovery: Bug or Feature? |
7/6/2020 | Introducing the free Safari extension FindTheMadness |
6/30/2020 | Disclosure: Another macOS privacy protections bypass |
6/27/2020 | Better disassembly on macOS Big Sur |
6/25/2020 | Objective-C disassembly on macOS Big Sur |
6/24/2020 | Extract the system libraries on macOS Big Sur |
6/15/2020 | Stop DuckDuckGo clickjacking |
6/1/2020 | StopTheMadness can now stop mouse tracking |
5/31/2020 | Logging https requests and responses of Apple system processes |
5/26/2020 | Software Update changes in the latest macOS releases |
5/25/2020 | The Mystery of the Phantom App Updates, Part 2 |
5/22/2020 | Catalina is checking notarization of unsigned executables |
5/19/2020 | Link Unshortener for iOS |
5/17/2020 | __kindof useful? |
5/11/2020 | Stop the Daring Fireball? |
5/8/2020 | Stop 'Open in the Twitter app' in Safari Catalina |
5/6/2020 | Stop Gmail click tracking |
4/30/2020 | Reflections on the Mac sandbox escape |
4/27/2020 | Mac sandbox escape |
4/25/2020 | NSFormatter allows invalid values |
4/21/2020 | Working without a nib, Part 12: NSWindow memory management |
4/20/2020 | Bad Safari extensions bug with context menus |
4/14/2020 | Introducing Link Unshortener |
4/12/2020 | Xcode indexing tip |
4/1/2020 | Resources for learning Objective-C and AppKit |
3/30/2020 | Underpass is back (though it never left) |
3/25/2020 | Safari bug: can't enable extensions on Catalina |
3/24/2020 | Safari no longer runs disabled extensions |
3/23/2020 | Mac App Store in a nutshell |
3/18/2020 | PayPal Me |
3/8/2020 | Resolve rip-relative addresses from otool |
3/2/2020 | The decimation of Safari extensions |
2/13/2020 | StopTheMadness for Mac adds Chrome, Edge, and Brave! |
1/26/2020 | Safari runs disabled extensions |
1/15/2020 | Swift fatalError is a fatal error |
1/13/2020 | Questions about the Apple Security Bounty |
1/8/2020 | The security of Safari extensions |
1/6/2020 | How to stop Safari for Mac disk caching |
12/21/2019 | Revisited: The true and false security benefits of Mac app notarization |
12/18/2019 | Undocumented Catalina file access change |
11/9/2019 | Hardened Runtime and XPC Services |
11/8/2019 | NSAssert considered harmless |
11/7/2019 | Hardened Runtime and Sandboxing Revisited |
10/9/2019 | Disclosure: macOS privacy protections bypass |
10/8/2019 | What happened to the Mac bug bounty program? |
9/4/2019 | The Safari Extensions Gallery is no longer available |
8/27/2019 | Important Information Regarding the Safari Extensions Gallery |
7/11/2019 | A problem worse than Zoom |
7/2/2019 | Stop Safari from autosubmitting login forms |
6/10/2019 | Private browsing in Safari with StopTheMadness |
6/7/2019 | Catalina app compatibility |
6/6/2019 | My Twitter account has been locked for a third time |
5/30/2019 | We believe that what’s in our store says a lot about who we are |
5/4/2019 | Introducing StopTheNews |
4/30/2019 | StopTheMadness First Anniversary |
4/23/2019 | Google Chrome can no longer disable hyperlink auditing |
4/21/2019 | The true and false security benefits of Mac app notarization |
4/17/2019 | More madness stopped: beacons |
4/13/2019 | The madness stopped: anchor ping |
4/10/2019 | Postmortem: iTunes Affiliate for apps |
4/8/2019 | Some thoughts on anchor ping |
4/3/2019 | Safari link tracking can no longer be disabled |
3/14/2019 | NetService NutHouse |
2/24/2019 | My Twitter account has been locked again |
2/18/2019 | Finally credit from Apple Product Security |
2/9/2019 | Spying on Safari in Mojave |
2/8/2019 | Still no credit from Apple Product Security |
1/17/2019 | Stop Google Search Results Tracking |
1/16/2019 | StopTheMadness for Firefox |
12/21/2018 | The Mac App Store Safari Extensions Experience |
12/14/2018 | Text view adventures, Part 4 |
12/12/2018 | Text view adventures, Part 3 |
12/6/2018 | Mac app notarization and customer privacy |
12/5/2018 | Text view adventures, Part 2 |
12/1/2018 | Text view adventures, Part 1 |
11/16/2018 | Hardened Runtime and Sandboxing |
11/2/2018 | macOS 10.14.1 Privacy: What's fixed and what's not |
11/1/2018 | Mac App Store Bundles |
10/26/2018 | Rickroll Resurrected |
10/16/2018 | Mac Mail with Google 2-step and Yubico |
9/26/2018 | Another hole in Mojave privacy protection |
9/20/2018 | No cookie for you! |
8/22/2018 | Prevent App Nap Programmatically |
8/7/2018 | Race to Under the Bottom |
7/26/2018 | Stop The Mad Icon |
7/12/2018 | Ode to a MacBook Pro |
7/1/2018 | NSOnState is deprecated |
6/11/2018 | Debugging on Mojave |
5/21/2018 | App Translocation and Safari App Extensions |
5/16/2018 | My Twitter account has been locked |
4/30/2018 | Stop The Madness |
2/1/2018 | A Record 13 Weeks |
12/27/2017 | A holiday gift |
12/4/2017 | Key difference between Dictionary and NSDictionary |
11/24/2017 | The Mystery of the Phantom App Updates |
10/20/2017 | Working without a nib, Part 11: Why? |
10/14/2017 | Local variables are still free, in Swift |
10/9/2017 | Free as in app |
9/1/2017 | NSStringEncoding Considered Harmful |
8/23/2017 | Go all in with xcconfig |
7/24/2017 | NSNotificationCenter is thread-safe NOT NOT |
6/29/2017 | Working without a nib, Part 10: Mac Main Menu |
6/27/2017 | I was on a podcast |
6/19/2017 | Porting Objective-C to Swift |
4/15/2017 | Problems with Objective-C annotations |
4/4/2017 | Not just the Mac Pro |
4/2/2017 | Twitter only mutes 100 keywords |
2/28/2017 | Autoresizing UITextView |
2/14/2017 | Whither Swift? |
2/4/2017 | Follow-up on a Record 14 Weeks |
2/2/2017 | Slow Week? |
2/1/2017 | A Record 14 Weeks |
1/31/2017 | 70 Cents Put Me on the Mac App Store Charts |
1/25/2017 | Working without a nib, Part 9: Shipping without a nib |
1/18/2017 | Inaugurating Underpass |
12/12/2016 | Preannouncement |
12/5/2016 | Textured Tabbed Windows |
10/31/2016 | We don't need no stinking badges |
10/17/2016 | Working without a nib, Part 8: The nib awakens |
10/7/2016 | Translocate Relocated |
10/6/2016 | Distributing Outside the Mac App Store |
9/26/2016 | Caveat Formatter |
9/24/2016 | Symmetric Encryption |
9/17/2016 | Keychain Sync |
8/16/2016 | MIA: SecTranslocate |
7/26/2016 | Detect App Translocation Without the 10.12 SDK |
6/30/2016 | Trust |
6/17/2016 | In Memoriam |
6/16/2016 | Undo |
6/15/2016 | Zero Day? |
6/14/2016 | App Translocation |
4/18/2016 | What's Wrong With Twitter |
12/29/2015 | SecTransformExecuteAsync Considered Confusing |
10/3/2015 | The OpenSSL Blues |
8/2/2015 | Checking for El Capitan |
4/3/2015 | Validate Project Settings: Never! |
9/23/2014 | Lack of Communication |
8/5/2014 | Breaking the resource rules |
4/21/2014 | NSNotificationCenter is thread-safe NOT |
4/13/2014 | Cancel WWDC |
4/7/2014 | Dispatch Queues and Run Loop Modes |
4/6/2014 | Mark Not All as Read |
4/5/2014 | Winter is Coming |
5/5/2013 | The Definitive Guide to Installing Xcode 3 on Mountain Lion (Without Kernel Panics) |
5/4/2013 | SDK vs. Deployment Target |