Fixing “MACHINE CHECK ERROR”

If you’re running Windows 10 on a Macbook Pro 2013 (Early), and constantly stumble upon an awesome Machine Check Error screen whenever you reboot, you shoooould try:

  1. Open the device manager
  2. Locate you GeForce GT 650M
  3. Uninstall the 2017 Driver
  4. Reboot
  5. Let Windows install the system’s driver

For the record, this is the driver you’d want:

Manual Symbolication

I keep loosing this snippet, over an over, apparelty.

If you ever need to symbolicate (manually) a memory address, you’ll just need the dSYM file:


xcrun atos -l LOAD_ADDRESS SYMBOL_ADDRESS -o dSYMs/APP-NAME.dSYM/Contents/Resources/DWARF/APP-NAME

🔥🔥🔥

NSPredicate: Filter multiple entity kinds


let predicate = NSCompoundPredicate(orPredicateWithSubpredicates: [

    NSCompoundPredicate(andPredicateWithSubpredicates: [
        NSPredicate(format: "entity = %@", Note.entity()),
        NSPredicate(format: "content CONTAINS[cd] %@", "1")
    ]),
   
    NSCompoundPredicate(andPredicateWithSubpredicates: [
        NSPredicate(format: "entity = %@", Tag.entity()),
        NSPredicate(format: "name CONTAINS[c] %@", "tag")
    ])
])

Now, this yields another problem: there is no API to limit the number of entities to fetch “per group”.

If you do need this feature, you’re probably better of with multiple NSFetchRequest(s).

Fixing Macbook Brightness Keys in Windows 10

Scenario: You’ve installed Bootcamp on your mac (shame on you), AND updated AMD’s graphic cards, to deal with stability issues.

If, for some reason, your MacBook’s special keys (Brightness, Volume, etc) stop working:

  1. Boot into your macOS partition
  2. Open BootCamp Assistant
  3. Click over Action > Download Windows Support Software
  4. Save the package to a flashdrive
  5. Boot back into Windows
  6. Run BootCamp > Drivers > Apple > AppleKeyboardInstaller64
  7. Reboot
  8. Think closely, why, in the name of Satan, you’d need Windows

Embedding NSTokenField inside NSScrollView

In order to get NSTokenField (or NSTextField) play well with a ScrollView, you should:

  1. Pin the fixed edges (in my case: Top / Bottom / Left)
  2. Leave alone the edges that can grow (again, in my case: Right)
  3. Set a placeholder Intrinsic Size, to keep IB happy
  4. Override intrinsicContentSize

Notes:

  • Pinning the TokenField to every single edge simply causes the container view to assume the actual TokenField’s size (and thus, kills the scrolling behavior).
  • Sample code available here!