Running Drupal (and other CMSes) Natively via Apache in macOS 10.13.x High Sierra

    Coolestguideontheplanet.com always has been my go-to spot for macOS upgrades and I'll be borrowing for some of the steps as it'll get you about halfway to enabling localhosts.

    You'll need to either use a CLI utility like Nano or BBEdit. If using BBEdit, you will need to click the "Show Everything" box to view invisible files.

    Step 1: Modify the httpd.conf

    Open the httpd.conf

      sudo nano /etc/apache2/httpd.conf
      

    Uncomment the following lines by removing the # in front of the line

      Include /private/etc/apache2/extra/httpd-vhosts.conf
      LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
      LoadModule rewrite_module libexec/apache2/mod_rewrite.so
      LoadModule php7_module libexec/apache2/libphp7.so
      

    Step 2: Modify the Vhosts.conf

    Open the vhost.conf (Note if you've upgraded, macOS should have the httpd-vhosts.conf~previous in the same directy) configuration

      sudo nano /etc/apache2/extra/httpd-vhosts.conf
      

    Entries are added by using the following pattern.

      <VirtualHost *:80>
      ServerAdmin webmaster@dummy-host2.example.com
      DocumentRoot "/usr/docs/dummy-host2.example.com"
      ServerName dummy-host2.example.com
      ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"
      CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common
      </VirtualHost>
      

    Here's an example of a working entry ported from macOS (OS X) 10.12.x

      <VirtualHost *:80>
            DocumentRoot "/Users/MYUSER/Development/website"
            ServerName mysite.lvh.me
    
        <Directory  "/Users/MYUSER/Development/website">
                    AllowOverride All
                    Require all granted
        </Directory>
          </VirtualHost>
    
        

    Step 3: Map Localhost to hosts

    Open the hosts file:

      sudo nano /etc/hosts
      

    Important, this next step can vary quite a bit based on how you've mapped your vhosts URLs. I decided I want all instances of localhost AND lvh.me (lvh being the acrnynom many developers use for local virtual host and the dot me suffix to reinforce that it is local). This is super common.

        127.0.0.1	localhost
        127.0.0.1 lvh.me
      

    Step 4: Restart Apache

    Regardless if you were using a GUI editor like BBEdit, you'll need to restart Apache via the command line

      sudo apachectl restart
      

    Safari and FireFox to block trackers

    I've seen a few sources calling trackers the new "pop-up", although I find it's more insidious than that, considering the plethora of privacy implications that tracking can have.

    Mozilla announced it'd be blocking trackers and 3rd party cookies by default and Adweek reports that Apple is moving to block 3rd party trackers. Unsurprisingly, Google has not.


    Thoughts on Front End Development in mid 2018

    Every now and again, I type up a short list of thoughts on front-end development, and it's become a yearly affair despite my best intentions. Here are my thoughts in 2015, 2016 and 2017. Year after year, it's interesting to collect my thoughts and pen them down.

    • 2018 is the year FireFox became good again, it's live inspection of React states, accessibility view and JS map support is nice, but more so it's the consumery features like containers for FaceBook that has me using it more and more.
    • Once you go ES6+ you can't go back.
    • Chrome's CSS / JS coverage makes you feel bad.
    • Anyone remember post-CSS? Does anyone use it for anything outside of browser prefixing? Does anyone use CSSNext?
    • I've more or less abandoned grunt for gulp and webpack. I still occassionally use CodeKit 3.
    • I don't like Bootstrap 4.
    • Flutter looks like Google being Google. Consider me unexcited.
    • I've finally had to grow up and start learning software design.
    • WILL WE EVER GET CSSGRIDS?
    • Cordova WebView apps are pretty much past-tensed in the era of the React Native, Native Script, Flutter and so on...
    • IE11 still haunts us.
    • CSS Typed Object Model looks great. Too bad we won't be able to use for years or at least until there's polyfills...
    • Google Pagespeed lacks commonsense and is irrelevant. At least we now have Google Chrome Audits via Lighthouse which still spits out some irreverent bullshit.
    • Vue JS looks fun.
    • The term front-end developer is probably going to fracture. I've been saying this for four years. UI Developer has arisen over the years although that term is problematic since we do not have a "web" UI developer. Generally, this applies more to application design.

    Getting your Instagram User ID + Auth Key

    Due to API changes, most articles and utilities are out of date for getting a user ID and auth key, useful for utilities like instafeed.js.

    Step 1: sign into Instagram Developer

    Got to instagram.com/developer

    Step 2: Create Register an application

    Click your "Register an application and then Register new Client ID

    • Application Name:: This can be named anything (sans insta’, ‘gram’, ‘IG’ or ‘Instagram’
)
    • Description: Description for personal use
    • Company Name: This can be your website or name
    • Website URL: URL of the website you intend to place your feed on
    • Valid redirect URIs: Used for application after sign in
    • Privacy Policy URL: URL to your privacy policy
    • Contact email: developer's email

    Step 3: Get your user ID

    Load instagram feed in question with your developer tools open and run the following command in the console:

    window._sharedData.entry_data.ProfilePage[0].graphql.user.id

    (if it doesn't work, hit reload and try again).

    Step 4: Get your AuthO Key

    There's a few ways but the easiest hands down is going to PixelUnion's utility and using it.


    Pure Sass CSS3 Responsive Subtle Water Ripple & Wave animation

    On my company's website, I've slowly been introducing subtle CSS3 animations over the past few months. One of the requests was for a "wave" animation for a background image. After a few false starts, our designer found the following codepen.

    The hack is simple and effective; the original author relied on background images. His trick was overlaying portions of the original image in divs that contained pieces of the original image with random heights. Once the divs were overlaid, he used a very simple animation to alter the heights of the divs with randomly applied intervals using a Scss for loop. The downside? It used a background-position: fixed, meaning if you scrolled, the effect would break and it wasn't responsive. Still, it was rather genius in its simplicity, so I give hats off to Art Carvajal Impressed with the effect, I decided to fork it and make it responsive, and not break upon viewport scrolling.

    Below is the end result, complete with simple Scss Vars to make hacking this into your own project even easier. It's only roughly 50 lines of Scss, and exceptionally performant as it looks great phones or desktops

    See the Pen Moving Water (responsive Hack) by Greg Gant (@fuzzywalrus) on CodePen.


    The age old Apple-doesn't-care-about-professionals rant

    Rather than attempting to wow the world with “innovative” new designs like the failed Mac Pro, Apple could and should simply provide updates and speed bumps to the entire lineup on a much more frequent basis. The much smaller Apple of the mid-2000s managed this with ease. Their current failure to keep the Mac lineup fresh, even as they approach a trillion dollar market cap, is both baffling and frightening to anyone who depends on the platform for their livelihood. - RogueAmoeba Blog

    I identify with this too much. I hope that more than a few high profile Mac developers echo this battle cry.

    For frequent hardware purchasers, this is a constant state of ire. I'm still using a MacBook Retina 2015 because there's not a huge incentive to upgrade, ThunderBolt 3 is certainly of interest but the touch bar isn't a feature care about and actually a net negative for me personally. Apple is highly restrictive on their tiering but I still don't know why I can't get a dedicated GPU in a 13-inch laptop, why did the SD Card slot go away and why can't I get 32 GB of ram in ANY laptop? Why can't I have PCIe slots in a desktop? Why can't we have Mac Mini updates? Why must we drop 32-bit support?

    Apple's "Father knows best" has been wonderful for consumer devices, but professionals have hard requirements that can't be eliminated. A large chunk of professionals just want a box with a ton of cores, user serviceable RAM/Storage, and PCIe slots. Just put in the latest I/O and CPU, update it every 9-12 months and call it a day. It's telling that the most popular blog post I've written is about maintaining classic Mac Pros from 2013. I worry I won't be able to rely on Apple in the future as a developer.


    Download old version of macOS / OS X

    Step 1: Install Homebrew

    Go to brew.sh and download and install HomeBrew. HomeBrew is a Mac OS package manager, a CLI utility for downloading and installing binaries for Mac OS.

    Step 2: Install Macintosh App Store CLI (Command Line Interface) utility via HomeBrew

    From your terminal, run the following command, brew install mas

    This will only take a minute or so for the application to download and install.

    Step 3: Download old macOS via the mas-cli utilty

    The Mas CLI will let you download anything that you have purchased in the past. The way it works is running the command followed by the app store ID number. The following code would be used to download 10.7.

    Example: mas install 444303913

    Below is a list of Mac Store IDs for older versions of OS X. Note: you'll need a valid Apple Store ID that "purchased" older Mac OS versions via the App store You can see your purchases and their IDs using mas List.

    • OS X 10.7 Lion:444303913
    • OS X 10.8 Mountain Lion:537386512
    • OS X 10.9 Mavericks:675248567
    • OS X 10.10 Yosemite:915041082
    • OS X 10.11 El Capitan:1018109117
    • macOS 10.12 Sierra:1127487414
    • macOS 10.13 High Sierra:1246284741

    Even real Amazon Reviews can be manipulated...

    Bezos-owned Washington Post published a large story on Amazon fake reviews, but that's just the beginning. Years ago I bought an Anker Bluetooth Keyboard. I gave it three stars despite its rock-bottom $20 price, as I couldn't imagine using it beyond the lightest use cases as the feel was abysmal (keys were squishy and wobbly). It technically "worked" but even if I were given one for free, I'd still would have not like the product. Price and value are interconnected, but there's a floor where simply the value of an object ceases increase regardless of how low price as my affinity for the product will not increase.

    What followed was Anker harassing me to change my review. I admired they wanted to "fix" the situation but the product worked as advertised so there wasn't anything to fix. Had they left at that, then this would have been the end of the story.

    Anker spams me

    Anker e-mailed several times, although I deleted a few of the e-mails. I believe the count was roughly 5 emails, near daily. I grew tired of it and contacted Anker, and they inferred that they were willing to give me at least more Anker products (it wasn't entirely clear) beyond a second keyboard to reconsider my review. Anker crossed a narrow ethical line. They didn't offer me money, but they were willing to sweeten the pot for me to reconsider under the implication I'd consider changing my star rating. Long story short, I did not change my review nor did I take Anker up on offers. The keyboard was mediocre and short of re-engineering it, there was nothing more to say. Giving a second mediocre keyboard, wouldn't have equated to one good keyboard.

    Anker spams me

    I'm willing to bet Anker didn't violate any of the terms of service for Amazon and the value of a real customer (me) changing my review, in exchange for some bonus swag (cables? I'm speculating) they, essentially buy a review without "buying" a review. This struck me as insidious behavior and a general mistrust of "Amazon" brands, products that seem to exist entirely in the Amazon ecosphere.

    I realize I'm singling out Anker but it's also the company I've had first-hand experience with. Even in 2013, fake reviews were a problem but this alerted me to a new form of review inflation. I've been far more skeptical of the "Amazon" brands since, those companies that seem entirely exist in the Amazon eco-sphere, usually selling cheap electronics or knock-offs of more popular products with strikingly high reviews, like popular Symphonized, selling stylish headphones at cheap prices.

    Does Symphonized pay reviewers or harass negative reviewers? I don't know and that's problematic.


    Cubase - Error Changing permissions when Installing (for any version of Cubase, Cubase Artist, Cubase Essentials) Fix

    I recently ran into a problem trying to install the latest version of Cubase. Below are a few of the errors I encountered:

    Error changing permissions in 0755 in /System/Library/Extensions/AuthenticationSupport.plugin
    Error changing permissions in 0755 in /System/Library/Extensions/AuthenticationSupport.plugin

    Error changing permissions in 0777 in /System/Library/Extensions/AuthenticationSupport.plugin/Contents.plist
    Error changing permissions in 0777 in /System/Library/Extensions/AuthenticationSupport.plugin/Contents.plist

    Error changing permissions in 077 in /System/Library/Extensions/AuthenticationSupportEnabler.plugin
    Error changing permissions in 0777 in /System/Library/Extensions/AuthenticationSupportEnabler.plugin

    My initial inclination, being a developer, was to use the terminal and sudo chmod the permissions which didn't work. If the previous statement doesn't mean anything to you, chmod is a unix utility that's part of macOS but only accessible by the terminal, that can change the permissions of files (edibility) of files.

    This, of course, did not work as I encountered the same problem when attempting to update drivers on my Mac Pro for a nVidia graphics card.

    macOS post 10.10, features System Integrity Protection, which prevents various system files from being modified by other software. This is a good idea except when it creates a problem like trying to update Cubase from versions. For me, I was upgrading from Cubase Pro 7.5 to Cubase Pro 9.5, but this could happen with Cubase 8, Cubase 8.5, Cubase 9 and the various versions of Cubase like Cubase Artist and Cubase Elements.

    The process is as follows: Disabling the System Integrity Protection, installing the software and re-enabling System Integrity Protection. The steps are outlined in my nVidia post but below are the same instructions.

    Step 1

    Verify you have System Integrity Protection enabled. Go to the terminal (the macOS terminal is located in applications/utility) and type the following command into the window. This should return "enabled".

        csrutil status
      

    Step 2

    Restart your Mac and hold down the Command-R keys during startup to boot into recovery mode. (alternately, hold the option and select the recovery partition). The recovery partition will take longer to boot than normal.

    Step 3

    You should see the macOS installer prompt screen. Ignore it and go to the Utility menu and select the terminal option. Run the following command in the terminal.

    p> Ignore the installer prompt and select from the Utility, Terminal and run:</p>
        csrutil disable
      

    Step 4

    Reboot normally. Install the Cubase software, even if the rest of the software installed successfully.

    Step 5

    Reboot again into Recovery mode and go to the terminal. Run the following to re-enable System Integrity Protection.

        csrutil enable
      

    Now you can reboot normally and start using your software!


    Rise of the backlink spammers

    Recently I've been hit in the past week or so two separate requests to fix broken links on old blog posts, each 4 years old or older. The first is a "Nice try" for for a rather crappy tech blog. Comparitech seems to a form spammer. Comically, the example I found is from the FreeBSD Pipermail mailing list about an archived article from 2002, about VNC portal mail configging. The bot suggests linking to an article explain the difference between VNC and a VPN.

    Ellen Fisher <ellen@comparitechmail.net>
    3:50 AM (9 hours ago)
    Hi Greg,

    I found a link that isn’t working on one of your pages and thought you’d want to know.

    I landed here - http://blog.greggant.com/posts/2013/10/17/53-mac-only-design-development-utilities-apps.html, and noticed you have a link to the Webgraph Facebook Blocker tool (http://webgraph.com/resources/facebookblocker/) which seems to have been discontinued.

    We have a guide to help people stop Facebook tracking them across the web - SPAM URL removed

    If you are updating your page, perhaps you could point people to our guide instead?

    I hope this helps!

    Thanks,
    Ellen
    -----
    Ellen Fisher
    Comparitech

    Yeah, I'm not going to do that. The guide was very so-so, and a bit out of date to boot.

    The second instance is interesting for the persistence, three separately e-mails spaced out. The link in question, was to a website offering a pirated flash version of Plants vs Zombies. As I do not have flash installed, I couldn't comment onto the quality but likely it was advertisement loaded.

    Jessica Bridges <jessycatbridges@gmail.com>

    Mar 15

    to blog
    Hey there,

    Are you able to please update something on your website?

    You were linking to the Plants vs Zombies game on this page of your website - http://blog.greggant.com/posts/page8/
    The link was going to this game - http://www.popcap.com/games/pvz , but I guess since popcap sold PVZ to EA they took the game away....

    Here is a secure working version I found on Google - SPAM URL REMOVED

    Hope it helps! Classic game =)

    ----
    Jessica Bridges
    Digital Artist & Illustrator @ Jess Creative

    The spammer tries to engage again.

    Jessica Bridges <jessycatbridges@gmail.com>
    Hey again,

    I emailed a few days ago about the Plants vs Zombies broken link on your site, wondering if you had the chance to update it yet?

    Don't mean to pester you, just my OCD talking =)

    Best,
    Jess

    Last try...

    Jessica Bridges <jessycatbridges@gmail.com>
    Hey again,

    Last email I promise =) Just wondering if you've received my emails below about the broken link? I don't mean to be a nag, I'm just kind of a nerd for these things =)

    Cheers
    Jess

    My guess is these are bots pre-programmed with to search the bowels of google for links or broken links as an angle to target small websites to correcting URLs as a way to gain standing via backlinking to gain page weight in Google. The Jessica bot is interesting for the follow ups. My theory is it'd spammed me repeatedly even if I had changed the link.


    Finally, a headphone jack that works for the iPhone 7 / 8 - Incipio OX case Review

    Let's just say I'm not a fan of Apple's decision to remove the headphone jack. Rather than recant my entire rant, the long and short is Apple removed the headphone jack to sell it's W1 headphones, knowing the shortcomings of Bluetooth. The W1 headphones provide a better user experience than Bluetooth alone can provide, and Apple has yet to license the W1 technology outside its own Beats headphones. While the iPhone audio isn't "closed", as any Bluetooth headphones will work off the shelf, it has placed Apple/Beats headphones with an advantage. Any argument pro-headphone jack removal has to contend with this reality that Apple is nudging consumers is placing a squeeze on 3rd party headphones, and the headphone jack represented a port that Apple had no way to subjugate. Pundits cheered as the noose tightened.

    Fuze Case vs iPhone
    Pictured: The bulky Fuze case was the first case that offered a headphone jack.

    Since owning the iPhone 7, I've owned several failed products, the most significant let down being the Fuze case, a half-baked product that provided a janky non-MFI headphone jack and questionable battery case. It was bulky. Worse, it just didn't work well. It didn't support headphone controls or headphones with microphones. The battery case required to be powered up and down, and if the case was out of battery, then the headphone port would fail to work. Also, the case occasionally failed to be recognized. The company turned out to be a bit of a scam too, closing up shop only to re-appear as powerpluscases.com, selling the same crappy case.

    My second try was a Veniveta iPhone 7 case, which was simply a bluetooth headphone port stuck to a case. Ironically this half-baked case was far more viable than the Fuze, despite the shortcomings. Again, headphone controls didn't work. The case required independent charging, and its Bluetooth experienced was glitchy, often failing to connect the first time I fired it up. I was able to put up with it as it had the same problems as the Fuze, without the bulk and a bit more reliably crappy performance.

    Veniveta case

    Pictured: The veniveta lasted about a year before failing to hold a charge.

    Looming forever has been the Incipio OX, a case made by a reputable case maker. Every few months since its announcement, I'd e-mail Incipio about the status. Finally, when I went to check on the mythical case, I found it was shipping. I ordered. It's somewhat pricey at $69.99, but I used a 15% off coupon I found with a little google-fu bringing it down to $59.50. The order shipped the day I ordered it (with free shipping) and only took three days to arrive via USPS.

    The Review

    OX case - top
    Pictured: The Veniveta lasted about a year before failing to hold a charge.

    The OX is low profile, akin to the sort of cases iPhone users have been used to since it's inception, a rubberized plastic modeled case that fits snuggly to the iPhone. Unlike the Fuze or the Veniveta, it functions as a protective case, provides razor-thin margins to keep the camera lens from protruding beyond the case and a scant millimeter lip around the screen, providing protection from the screen resting on surfaces. It's soft to the touch and reminds me of the official Apple iPhone cases. This will protect your phone and feels as impact resistant as any high-quality low-profile case. It's stylish in the way any case is. Nothing beats the look of an uncased iPhone, but if you're wrapping it up, you won't be visually offended by the Incipio.

    Snapping on the case is pretty simple, and requires little effort, it only requires lining up the lightning port and plugging it in. I was a bit unnerved when I received "Unsupported Device" messages from the case, but I'll get to that in a minute. The volume and power buttons are covered but remain easily accessible and easy to press. Lastly, the case adds a bit of a chin to the iPhone, with two ported sections to project the internal speaker. It'snovel as it makes the iPhone speaker directional and more effective.These are the little things that separate Incipio from Indiegogo would-be case makers.

    After plugging the case in, and receiving the device not supported I was worried. I plugged in my headphones, pressed the play/pause button and.... it worked. I then proceeded to plug my phone into my car charger and plug it into my deck. My iPhone was charging AND playing music at the same time. Subsequent case fittings, I haven't seen the message since so I'll chalk it up to user error.

    OX case - bottom

    I tested it with multiple sets of headphones, (Massdrop x NuForce, 1more Triple Driver, Symphonized NRG, Klipsch X11is, Beyerdynamic DT-990s & DT-770s, Sennheiser HD-650s) and every last one worked. Pulling out the headphone jack paused the audio as expected. The only minor hiccup is I didn't seem to have discrete volumes for the jack detecting the difference between headphones that included controls vs. standard headphones, something that iPhones with headphone jacks were able to do. I guess this feature is gone.

    The audio quality also was the same as the Apple dongle cables which have haunted me the past year and a half, much better than the Fuze which sounded soft and distance or the sometimes gravelliness of the cheap Bluetooth on the Veniveta.

    OX Case vs Apple's case
    Pictured: iPhone 7 with OX case vs iPhone 6 with Apple case. The OX slightly is thinner.

    Final Thoughts

    It took too long to hit the market but THIS IS THE CASE FOR ANYONE WHO WANTS A HEADPHONE JACK ON THEIR IPHONE. It works, and it works well. It's light, well made, oh and it works. After being burned twice now, I've found new harmony in my life. I'm listening to my earbuds and charging my phone as I type this. It's everything that I've missed from the iPhone 6. I just wish I could have had this case for longer. I haven't had a chance to test it with the iPhone 8, but seeing as the iPhone 8 other than the 0.2mm thickness, my gut says yes. (edit: users confirmed it works with the 8)

    Right now, as far as I know, it only comes in iPhone 7/8 size and not the plus. The only other game in town is yet-another, IndieGogo campaign, this time by Encased, for their product called the "AudioMod", another bulky battery case with a headphone jack, advertising versions fo the iPhone X and Plus variants. It looks more promising than the faceless brand behind Fuze. Personally, The Incipio is exactly what I want as I'm not fond of battery cases but at least iPhone X and Plus owners can join the party. Here's hoping to that Incipio continues the OX line. (Edit: I bought this case. It's alright, but I don't like battery cases.)

    Price: $69.99

    Incipio OX

    9/20/18 Update - After using this case for almost 6 months, it's still my go to case for daily usage. It protects my phone and the camera bump. It's supper light and makes the phone easier to grip. The only issue I've experience is one in a great while first plug in with my headphones will get sound out of only one ear bud, all it takes is unplugging the headphones and plugging them back in. I'm unsure what causes this issue: headphones or the case. As someone who's pretty active, (I bike to work, hike, run and go to the gym about 3 times a week, and went on trips to the Redwoods, Canadian Rockies and Iceland and logged August where it rained on every single trip) this case has survived my lifestyle and has no visible scuffs or damage. I'm not rough on my phone as I rarely drop it or bang it, but it also gets a fair amount of jostling and foul weather. I haven't submerged my phone in water with this case. I bought the Encase battery case to compare against it but, the Incipio works slightly better. The Encase sometimes will "lose" sync and require me to reseat the phone into the case.

    The only minor annoyance with the cases is that if you want to plug your phone into a car or carplay system you must remove the phone. It will sync via iTunes and other operations but will not allow you to play audio via the port. It's strange but that's it.

    Also like any case that connects via the lightning port (like battery cases), the speaker phone performance degrades a bit. This isn't any specific to this case, but anything that requires covering the bottom portion of your phone will adversely affect your speaker phone performance, most notably the mic pickup. The mic performance suffers as its no longer able to function as an omnidirectional microphone.

    I've seen on amazon some negative reviews but the Incipio from my personal experience is amazing. I roll around using my favorite wired earbuds and able to unplug them and my phone reverts instantly to its internal speakers. It even pauses the audio if I unplug my headphones just like the dongle or iPhones with headphone jacks. I love this case and I hope they make an iPhone X/XS variant.


    Added HTTPS for Inaudible Discussion

    It's been on my to-do list but as out-of-site, out-of-mind problems go, I hadn't gotten around to it prior. Now I have. There'll be a day or so of a "self signed" security error and after this blog should then be 100% HTTPS friendly.


    On the subject of the Mac Pro 2019...

    "Where I think this whole saga gets very frustrating for a lot of current and potential Mac Pro customers is that Apple is describing a product — a powerful, professional-grade, modular desktop computer — that already exists: it’s the tower-style “cheese grater” Mac Pro. While Apple is working away to reinvent one of the most critical components of a professional user’s workflow, those users are stuck with product choices that may not quite fit." - Nick Heer, Pixel Envy.

    This should be embossed onto Apple's Professional Workflow's HQ. To paraphrase Paul Haddad, just throw some Xeons in a box. This should be the easiest product release in Apple's entire lineup. Pros just want a box that can house multiple storage devices, PCIe slots, the latest I/O (even thunderbolt is entirely optional when you have PCIe) and lastly, user serviceable. That's really it. They could literally reuse the case from the Power Macintosh 9600 and we wouldn't care.

    Apple envisioned the 2013 as a Mac that could be carted onto the set of a Hollywood style shoot and edit dailies on the spot with Final Cut Pro X, but conceptualizing it entirely in a vacuum. While Apple takes the approach the customer doesn't know what they want, that's true in the consumer market but a massive mistake when you're dealing with professional. They know exactly what the want.

    If you want evidence of the demand for such a mythical device: search "12 core Mac Pro" in eBay and try and name another computer from 2010 that fetches over 1000. Many cost more than the current 5k iMac, new from Apple.


    Installing a GeForce GTX 1060 / 1070 / 1080 into a Mac Pro 2010/2012

    Updated 04/03/19: When I wrote this guide, NVidia drivers were still being released for the current version of macOS, 10.12-10.13. Sadly, Apple and NVidia relations have seemed to have come to a head. NVidia states that it is actively being blocked from releasing drivers for its GeForce cards for 10.14.x+. I highly recommend AMD video cards over NVidia as this seems unlikely to change. My GPU section of the Definitive Mac Pro Upgrade Guide contains more info on this spat, as well as current information. For posterity, I've left the upgrade guide below largely intact with a few minor edits to help reflect more current information.



    Years ago, I posted a guide on how to install a GeForce 760 or 770 into a 2008 Mac Pro. I included a fair amount of benchmarks to boot. It's lasted me well over three years and made the jump to a 2010 Mac Pro, but I finally pulled the trigger on a 1060. You can install a 10x0 series into a 2008 Mac Pro as well, but this guide specifically focuses on the 2010-2012 Mac Pros. The main differences between the two are the PCIe power port positions and the lack of the annoying PCIe bar hanger latch. Upgrading only took me a few short minutes, the longest part of the process was plugging/unplugging all my connected devices. There's hardly any special skills or knowledge needed.

    Lastly, I've created the Definitive Mac Pro upgrade guide, which includes a lot of information about GPUs (and plenty more) not covered in this article. I suggest taking a look at the GPU section as it covers AMD chipset cards and flashable cards.

    Before you get started, there are a few things one should be aware of:

    MSI GeForce GTX 1060 6 GB

    1. Important! There are currently no drivers for the off-the-shelf GeForce GPUs for MacOS 10.14.x. When I wrote this guide, a year ago in 2018, this was before Apple stonewalled NVidia from releasing drivers for Mojave. If you want to run 10.14+, it is AMD or bust. I cannot recommend purchasing an NVidia GPU if you have any desire to run 10.14+.
    2. Both AMD and NVidia make EFI compatible graphics cards that will work on OS X. NVidia cards (GeForce 700 through 1000 series) only require installing the web drivers whereas the Sapphire PULSE Radeon RX 580 8GB is (so far) is the only RX 580 that works without any hacking/flashing.
    3. The NVidia drivers currently require 10.12 Sierra or above to use the 1000 series cards.
    4. The NVidia (nor the AMD RX 580) card will not allow you to see the EFI boot screen with the card plugged in (the screen you see if you hold down the option key and the Apple logo). If this is important, I highly recommend keeping an original card around (or flashed). I personally use an ATI Radeon HD 2600 XT (so old that it's not AMD) that shipped with my 2008 Mac Pro computer since its modified to be fanless, but any will do, flashed or factory as long as it can display the Apple logo on boot. You can operate the computer without a card capable of displaying the EFI boot screen. However, you’ll have to manage booting using Start Up Disk in OS X and use the bootcamp tools in Windows to switch boot drives, and you will not see any picture until the login screen.
    5. The RX 580 and GTX 1060 are fairly evenly performant, but as of writing this, the 1060 is cheaper since any model will suffice, and requires less power and can be found to be significantly quieter in some models. (edit: the part about price was true, now RX 580s are cheap.)
    6. Modern graphics cards require additional cabling and rarely do the graphics card ship with additional power cables. You'll need to purchase the power cables separately. Also, the Mac Pros require mini PCIe to PCIe power cables.
    7. Modern GPUs are quite performant (still) on Mac Pros. A 2010 Mac Pro with a GeForce 1080 eats an iMac 5k alive in GPU tests (unsurprisingly).
    8. Not every GPU port may work with the NVidia drivers depending on the card config. In the case of my GeForce GTX 760, all ports worked sans one of the DVI ports. As a general rule, count on most but not all ports working and do diligent research. The best places to check are MacRumors and TonyMacX86 forums.

    Step 1:

    If you're upgrading from a stock card, you may be unaware that the PCIe bus doesn't deliver enough power thus PCIe power additional cables are required. The Mac Pros include two power ports for PCIe power but use special low profile cabling often referred to "Mini PCIe" located on the motherboard. To effectively power your GPU, you need to draw power from BOTH ports. To reiterate, you cannot simply use a Y cable from a single motherboard PCIe power port. This seems to be the biggest point of confusion for users.

    The GeForce 1060 / 1070 / 1080 require external power. Also, the 1060 requires an 8 pin power cable, the Mac Pro defaults are 6. You'll need a 6 to 8 pin power adapter. I ordered the following: two of the mini PCIe to PCI-e Power Cable (disregard the G5 mislabeling) and a 6 to 8 pin PCIe power adapter, which are much more easily found. Users have informed there are 6 pin mini PCIe to PCI-e Power Cable to 8 pin cables as well.

    If you are looking to run cards that draw exceptionally high power (more than 250 watt), please visit House of Moth's Pixlas Mod instructions. This is a modification that allows GPUs to draw more power from the PSU in the Mac Pro. Fortunately, the Mac Pro has a pretty beefy PSU, and users have been known to run dual 1080 Tis or Vega 64s using this modification.

    Cable requirements

    This may differ between card manufacturer, but the following is true for the base models.

    • GTX 1060: Power ports: 6 pin + 8pin power ports
    • GTX 1070: 6 pin + 8pin power ports
    • GTX 1080: two 8pin power ports

    You will likely need to purchase the appropriate cabling as the GPUs will not come with it as the Mac Pros use the mini-PCIe power standard. If you card has two ports: 6 pin and an 8 pin power, you will need to provide both a 6 and 8 pin power cable.

    MSI GeForce GTX 1060 6 GB in handThe MSI GTX 1060 is massive, roughly 11 in x 5.5 in x 1.5 in thanks to the oversized cooler.

    Next any off the shelf GeForce GTX 1060 or GTX 1070 or GTX 1080 will do. Personally, I picked up the GTX 1060 MSI Gaming X 6 GB, which is regarded as one of the least noisy cards on the market. With bitty coins wrecking pricing, I just wasn't willing to pay for the 1070. I hope all cryptocurrency fails so we can go back to normal pricing, but I digress. I paid $355, which isn't great but many of GTX 1060s makes are going for more. Update: GPUs seem to have normalized pricing wise again.

    Step 2:

    Pre-install the NVidia drivers, especially if you do not have a Mac EFI card. TonyMacX86 has a nice handy guide to what version based on OS 10.13 High Sierra or 10.12 Sierra or alternately.

    Plug in your power cables first! The GeForce 1060 is big; it dwarfs my 760. Fortunately, the Mac Pro 2010 / 2012 ports are much easier to access than in a 2008 Mac Pro.

    Mac Pro 2010 PCIe Power cables with PCIe cards

    The low profile mini PCIe power cables are located in the bottom back of the PCIe chamber.

    Step 3:

    Do the usual remove slot thumb screws, remove/move old GPU, etc. The Mac Pro 2010/2012s have a PCIe rail hanger, originally when I installed this, I didn't realize the latch sets and unsets the hanger as it was my first time installing a card into a Mac Pro 5.1. I originally was able to install the card without it using a bit of muscle then shortly thereafter, I discovered the latch but didn't bother updating the guide. Later, Several readers took time to point out that the latch for the PCIe chamber (a few with a bit of a condensing tone, as nothing seems to make some people happier than telling other they're wrong). Rather than save face, here's how you avoid being a dumb dumb like I was. If you're finding it difficult to install the card, the PCIe chamber latch is located on the grey plastic assembly. Press the button the assembly and slide it back. Use the bottom-most slot as the card is dual height.

    If you're looking for more information on how to install a PCIe card in a Mac Pro, everymac.com has plenty of information including videos.

     GeForce GTX 1060 6 GB running in Mac OS X Sierra

    Benchmarks

    I haven't spent much time with the card, but I did fire up on OS X Tomb Raider (2013) via Steam. At 2560 x 1440 with all settings maxed (16x Anisotropic filter etc.), I managed an average frame rate of 57.6 FPS on a 12x 2.9 GHz 2010 Mac Pro with 32 GB of RAM.

    It's no secret that there's always been a gaming performance gap, macOS sadly scores quite poorly compared to its Windows counterpart, so it's only fair to compare Mac to Mac or Windows to Windows and not Mac to Windows when considering the gains. Rather than benchmarking Windows, which isn't my daily driver, I'm more interested in how the GPU affects macOS. Below are my Uniengine v4 benchmarks vs. when I ran them against my 2008 Mac Pro. Despite the low marks when compared to running Uniengine in Windows, The Mac Pro 2010 is twice as fast by the benchmarks as my previous setup of a 2008 Mac Pro running a GeForce 760. One of the more fascinating things I learned when trying my hand at a Hackintosh was that the 3rd generation 3770k i7 wasn't quite enough to completely best the over-engineered Mac Pro despite having a faster bus / CPU, but merely matched it. If/when I have more time, I may swap the GPUs to see if the scores are as GPU dependent as they seem.

    Uningine Benchmarks

    OpenGL 2560 x 1440 8xAA FullScreen Quality:Ultra Tessellation: Extreme

    Mac Pro 2010 (Xeon X5670 2x 2.93Ghz) + GeForce GTX 1060 + 32 GB RAM + Samsung 840 750 GB SSD

    FPS: 33.2

    Score: 837

    Min FPS: 7.4

    Max FPS: 72.1

     

    Mac Pro 2008 (Xeon E5462 2x 2.8 Ghz) + GeForce GTX 760 + 14 GB RAM + Samsung 840 750 GB SSD

    FPS: 16.1

    Score: 405

    Min FPS: 5.8

    Max FPS: 37.4

     

    Hackintosh (i7 3770k 3.5 GHz) + GeForce GTX 760 + 16 GB RAM +  Samsung 840 750 GB SSD

    FPS: 15.7

    Score: 396

    Min FPS: 6.9

    Max FPS: 37.3

     

    Hackintosh (i7 3770k 3.5 GHz) + GeForce GTX 770 + 16 GB RAM +  Samsung 840 750 GB SSD

    FPS: 18.8

    Score: 474

    Min FPS: 7.6

    Max FPS: 47.5

    Mac Pro 2010 GeForce 1060 vs eGPU setups

    I used benchmarks provided by a thread on eGPU.io, credit goes to the forum posters for the comparisons. There aren't any perfect comparisons so here's a run of the GTX 1060 in my Mac Pro 2010 vs. Thunderbolt 3 Mac running the considerably better 1070 and an iMac 2011 running a 1060. Depending on perspectives, the eGPUs do quite well, or the Mac Pro 2010 is fairly viable. The big difference in eGPU vs. internal.

    OpenGL  1920 x 1080 8xAA FullScreen Quality:Ultra Tessellation: Extreme

    Mac Pro 2010 (Xeon X5670 2x 2.93Ghz) + GeForce GTX 1060 + 32 GB RAM + Samsung 840 750 GB SSD

    Score: 1306

    FPS: 51.5

    Min FPS: 19.3

    Max FPS: 106.5

     

    iMac 2011 27 inch (3.4 GHz) + GTX 1060 6GB

    Score: 1226

    FPS: 48.7

    Min FPS: 8.4

    Max FPS: 96.9

     

    MacBook Pro late 2016 13 inch (2.9 GHz) + MSI GTX 1070 6GB Aero OC

    Score: 1825

    FPS: 72.4

    Min FPS: 9.8

    Max FPS: 138.8

     

    macOS vs Windows

    As previously mentioned, this shouldn't come as any sort of surprise, but Windows 10 gaming is still quite a bit of ahead of Apple, although Metal shows promise. As of right now, DX11 is the king regardless of your opinion on it in performance. Windows performs a full 10 FPS faster, or about 24% faster. in the same benchmark with the same settings.

    OpenGL  1920 x 1080 8xAA FullScreen Quality:Ultra Tessellation: Extreme

    macOS 10.12.6

    Score: 1306

    FPS: 51.5

    Min FPS: 19.3

    Max FPS: 106.5

     

    Windows 10, 64 bit, Direct 3D 11

    Score: 1609

    FPS: 63.9

    Min FPS: 21.7

    Max FPS: 135.3

     

    I plan to update the benchmarks in time. I may bring in the GeForce 760 for a reference when I have more time and possibly test in a 2008 Mac Pro in the future.

    Troubleshooting

    It's a good idea for the first boot to keep around an EFI card, as you may have to enable the web drivers. Also, I encountered the error of Mac NVidia Web Drivers fail to update or cannot remove Kext files" when updating my OS recently; you'll want to follow the instructions I posted to deinstall the drivers if this happens to you.

    Final Thoughts

    Upgrading GPUs isn't something I'd normally wax philosophical on, but we're post-golden era for OS X, and the Mac Pro is a relic.

    Ever since NVidia has shipped it's web drivers, gone are the sketchy days of flashing a 6970 and using a rom creator. Installing off-the-shelf GPUs has gone from tribal knowledge to common knowledge for the Mac Pro user since I wrote my "how to" guide for the 760. Ironically, it wasn't until Apple killed upgradability that the dream of off-the-shelf GPUs could be bought without the infamous Apple-tax. I debated even not calling this article a "how to". The downside is despite the EFI compatible ROMs preloaded on the 700+ GeForce cards; they're not EFI boot screen compatible on OSX sadly. The only game in town is macvidcards.com which according to all accounts on MacRumors is a legit source, but I find the idea of hoarding an EFI hack a little irksome. It's hard to complain too much as NVidia has quietly kept the Mac Pro and Hackintosh community happy, self-included. There's no specialized knowledge needed to upgrade your GPU or abnormal risks of a bad firmware flash. The only caveat is you'll want to keep an EFI card around for major OS updates.

    Upgrading the GPU is probably second best thing outside of an SSD to make an old Mac Pro feel young if you desire to run 4k and/or use any sort of motion graphics software, play games, etc. It's hard not to recommend upgrading as there's a strong case to be made for removable GPUs. A Mac Pro with armed with a higher end GPU will best even the mighty iMac Pro handedly in GPU related benchmarks.

    eGPUs are viable but not as performant. There's just simply no topping a PCIe card slots although we're probably coming to the end of the Mac Pro era if/when Thunderbolt gets an update. Thunderbolt 3 is fast but still has a lot of room for improvement. It's 40 gigabits 5.1 GB/ is approximately the speed of a PCIe 3.0 4x slot. If/when Thunderbolt gets an upgrade (Thunderbolt 4?) Bumping it up two-fold would bring it to roughly 8x PCIe 3.0 or shy of a 4x PCI 4.0. 8x PCIe currently offers roughly 95-99% of the performance for gaming, even with a GeForce GTX 1080. That said, PCIe 4.0 coming out very soon, and PCIe 5.0 may be only a year and change out, boosting PCIe 16x to a truly mind-boggling 63 GB/s a sec (504 gigabits per second). Thunderbolt won't be catching up PCIe any time soon, but it could be for practical purposes concerning consumer GPUs.

    Also to add to the end of the cheese-grater era is the ever-looming Mac Pro. The word "modular" has been tossed around recently quite a bit to describe the next iteration. The Mac Pro flames have been stoked yet again with the very curious mention in Bloomberg's rumor-filled article Apple is said to plan to move from Intel to own Mac chips. It's highly unlikely Apple has anything in the pipeline that's even near the iMac's i9 configurations but will sport the same Bridge2,1 ARM A10 CPU that's found in the iMac Pro. Also, the new Mac Pros are at least out to 2019 and will be shaped by workflows.

    The Bridge chipsets allow for some truly unexciting features like "Hey Siri" to be always on even when the computer shut down and/or to manage graphical keyboards like the one found in the MacBook Pros.

    My gut feeling is if the iMac Pro is any sort of indicator, the next Mac Pro will be absurdly expensive and my guess is it'll sport less upgradability than the 2006-2012 "Cheese grater" Mac Pros but more than the abysmal 2013 "trash can" Mac Pro. Floating rumors around ARM CPUs seems a step away from modularity but a step closer to iOSifying Macs to annual upgrades, stopping the Hackintosh community and locking users out of OS upgrades after five years. I am not optimistic about the future of the Mac Pro or the Macintosh.

    The Mac Pro has been a bit of an outlier. I used a 2008 Mac Pro for ten years. When I bought it, I was still in a 3-year upgrade cycle, going from G3 -> G4 -> G5. I used my Mac Pro 2008 longer than all three computers combined and only did I recently replace it with a 2010 Mac Pro. That's a significant reduction in computer sales Apple, to engineer a computer that can be used viably for ten years and I worry they understand that too well. All for the cash, man...

    For now, Mac users have only three choices: eGPUs, old Mac Pros, and the elusive Hackintosh. Any path will get you serious gains. My guess is the 1000 series is likely the last stop for most cheese grater users as we're at a crossroads: Thunderbolt is almost fast enough for GPUs (and PCIe enclosure are becoming more popular), and Apple may yet give us a modular computer.

    04/3/19 Update

    I've been meaning to update this guide, but all my energy has gone into the Definitive Mac Pro upgrade guide which covers much of the ground in here. I've added notes about the Pixlas mod, Mojave compatibility and some minor editing.

    08/2/18 Update

    Minor Editing update, thanks to Stuart K for spotting a typo.

    04/2/18 Update

    Some minor proofing and added in a lot more benchmarks. Kids love benchmarks.

    04/5/18 Update

    Final Thoughts ended up long-winded.


    Mac nVidia Web Drivers fail to update or cannot remove Kext files

    With the nVidia graphics cards, in a Mac Pro (for those of us who refuse to let go) or PCIe Thunderbolt brethren, you probably by now are used to updating the drivers with every OS X version. However, sometimes when trying to update the nVidia drivers will give an installation failed after appearing initially to install correctly, ending with generic a "contact manufacturer" error. This error isn't exactly telling the full story, OS X post 10.10 has feature called System Integrity Protection, which protects certain system files from being modified by even the root user, which stops malicious installers/rootkits from tampering with macOS. This error also can adversely sometimes affect no longer used files such as items placed in the "incompatible items" folder, and when the user tries to delete them, will receive a "can't be modified or deleted because it's required by macOS" error message.

    It's very important to understand that you should only do this with installers from a valid source before proceeding, such as directly downloading drivers from nVidia and using its certificate check or to remove offending drivers or files. After performing necessary changes, re-enable System Integrity Protection.

    Step 1

    First to make sure you have System Integrity Protection, go to the terminal and run

        csrutil status
      

    This should return a status of enabled.

    Step 2

    Restart your Mac, and hold down Command-R keys during startup. This should boot your computer into recovery mode (alternately, you may be able to hold option and select the recovery partition). This may take a few minutes to boot.

    Step 3

    Ignore the installer prompt and select from the Utility, Terminal and run:

        csrutil disable
      

    Step 4

    Reboot. Perform the necessary change boot back into recovery mode as before.

        csrutil enable
      

    Reboot. You can now check using the csrutil status to see if the csrutil is working.