NVIDIA Web Driver Broken After OS X Update

NVIDIAs alternate drivers for OS X usually break after a minor system update. You can fix this most of the time by modifying the following file:


Change the NVDIARequiredOS to your current system version which can be found in the app System Information. The version number should look something like this:


Write it into the file and save it (sudo access is needed).

Bildschirmfoto 2015-10-23 um 07.54.24 Kopie

You should now rebuild your kext cache:

sudo kextcache -system-prelinked-kernel
sudo kextcache -system-caches

Reboot. Select the NVIDIA web drivers in your system settings and reboot once more. Done.

Building a Hackintosh in 2015

So today I have installed OS X 10.10.4 on my computer that I did not buy from Apple, which essentially means that I have built myself a Hackintosh. Here is what I learnt during that process.

Update October 15: Updating to 10.10.5 was no problem at all through the Mac Appstore.

  1. Buy hardware that TonyMacx86 advises you to buy.
  2. Read the complete guide on how to install it on that page too.
  3. If you plan on installing multiple operating systems, get a separate hard drive for each. You are going to save yourself so much time.
  4. Unplug your card reader if you encounter any issues during the installation.
  5. At some time during the installation you will probably need bootflags. Here is what helped me install OS X with my GTX 960 G1 Gaming:
    nv_disable=1 GraphicsEnabler=No maxmem=4096
  6. If you have a GTX graphics card, see if you can install the Web Drivers provided by Nvidia.
  7. Do not screw around and select Mac Pro 6,1 in Multibeast. You will not get any benefits and your Nvidia Web Drivers will stop working. Use the nv_disable=1 bootflag if that has happened to you.


After quite some time and furiously purchasing another SSD since I couldn’t get OS X to install on my partitioned Windows SSD, here is what I achieved:

Screen Shot 2015-07-31 at 23.12.58


Complete list of working parts:

  • Intel Core i5 4690K (LGA 1150, 3.50GHz, Unlocked)
  • HyperX Fury Black (2x, 8GB, DDR3-1866, DIMM 240)
  • Gigabyte GTX 960 G1 Gaming (GM206, 2GB)
  • Corsair Builder Series CX600 V3 (600W)
  • TP-LINK TL-WDN4800, Wireless N Dualband (PCI-E x1, 450Mbit/s)
  • Cooler Master Silencio 550 Matt (Midi Tower, Black)
  • be quiet! Dark Rock 3 (16cm)
  • AOC u3477Pqu (34”, 300cd/m², 3440 x 1440 Pixel, Black)
  • Samsung 850 EVO Basic (250GB, 2.5″)
  • HyperX Fury (120GB, 2.5”)

Mongoose: Cannot read property ‘paths’ of undefined

When working with Mongoose, make sure you never ever name a property “type”, since it’s reserved for declaring datatypes on fields. Take a look at this:

permissions: {
  type: String,   // this will throw an error
  userGroups: [
      group: { type: mongoose.Schema.Types.ObjectId, ref: 'UserGroups' },   // correct use of "type"
      permission: String

This will throw an uncaught exception. I’m writing this post so I can save you 20 minutes of debugging. Here’s the correct approach:

permissions: {
  permissionType: String,   // correct usage
  userGroups: [
      group: { type: mongoose.Schema.Types.ObjectId, ref: 'UserGroups' },
      permission: String 


Smoother/Faster CSS Animations

If you have ever experienced slow/”buffering” CSS animations then it’s probably because you don’t know about this article. Basically, instead of animating the position properties “top”, “right”, “bottom” and “left”, you animate “transform: translate”. On most browsers this activates hardware acceleration, meaning it will use the computers graphic chip instead of the CPU and will therefore produce smoother animations.

How we fixed the -webkit-overflow-scrolling: touch; bug on iOS

When working with the overflow: scroll; attribute, the -webkit-overflow-scrolling: touch; attribute can be very useful on mobile sites. It basically changes the awkward scrolling behavior into the normal, expected behavior.

When you dynamically add content to a div with -webkit-overflow-scrolling: touch; that exceeds the div in height, it becomes broken and unscrollable. You can fix this by constantly having an inner div, that triggers the scrollbar because its 1px higher than the outer div:

.outer {
  overflow: scroll;
  -webkit-overflow-scrolling: touch;
  /* More properties for a fixed height ... */

.inner {
  height: calc(100% + 1px);