Making the cite tag sane

    While writing a long-form retrospective on how Microsoft lost the browser wars, I realized managing a citation list is a royal pain the ass. With 50+ sources, I want a very simple light-weight way to manage a source list. The requirements were as follows for my auto-citation list generate:

    • Generate a list from all the citations found within the article.
    • Detect multiple instances of the same source.
    • Number each <cite> instance, if used before, use the correct number.
    • Use anchor tags to link to the source at the bottom of the page.

    I opted to use jQuery although I might kill the dependency as the biggest thing I used it for was queries, each, appending and writing HTML. All easier to write with jQuery but in the era of wide support for querySelectorAll() hardly necessary. If I go that far, I might just package it up into an ultra-lightweight javascript plugin with a few basic configuration options: a target for the list of citations, what information to collect, and maybe one or two citiation options. For now, it's a very simple citation script meant for non-academic purposes.

    The process was pretty easy, the script creates an array of objects based off of the jQuery object, iterates through the array each time a new item is added to make sure there isn't a duplicate URL, and if there isn't already a duplicate, it's that entry to the list. The assembled array is iterated through so its data can be written the DOM. Duplicates are detected using the source URL.

    I styled it after Wikipedia and may add in the link to the instance of the citation in the article like Wikipedia. It'd be easy to add additional information to the citation if needed such as "data retrieved", but in the case of my blog post, that'd be the date written.

    See the Pen Simple Auto-generated citations using <cite&rt; and javascript by Greg Gant (@fuzzywalrus) on CodePen.


    Edge comes to the Mac... sorta

    Today we’re announcing that we intend to adopt the Chromium open source project in the development of Microsoft Edge on the desktop to create better web compatibility for our customers and less fragmentation of the web for all web developers.
    -----
    Microsoft Edge will now be delivered and updated for all supported versions of Windows and on a more frequent cadence. We also expect this work to enable us to bring Microsoft Edge to other platforms like macOS. Improving the web-platform experience for both end users and developers requires that the web platform and the browser be consistently available to as many devices as possible. To accomplish this, we will evolve the browser code more broadly, so that our distribution model offers an updated Microsoft Edge experience + platform across all supported versions of Windows, while still maintaining the benefits of the browser’s close integration with Windows. - Joe Belfiore , Microsoft Blog

    In a two-in-one announcement, MS is finally abandoning Trident (forked to EdgeHTML), the once iron-fist scourge of the web. Edge was too little, too late, and still too broken. Browser engines though come and go, with names like KTHML (Konqueror) and Presto (Opera), to be replaced with WebKit, Blink (once fork of WebKit), and the obscure like Goanna (a fork of Gecko). Granddaddy, Gecko still stands tall and gets the last laugh as Netscape's ghost did the unthinkable: outlast both Internet Explorer and Edge.

    It's entirely unsurprising MS is bringing Edge to MacOS as its a pretty low-lift with Chromium but doubtfully will gain any market share, as it joins the hoards of Webkit/Chromium reskins: Opera, Vivaldi, Yandex, Brave, Comodo Dragon, Amazon Silk, Samsung Internet, Torch, Slimjet, Steam's internal browser and so on.

    It makes my life easier but makes Edge effectively uninteresting and forgettable.


    Right To Repair Law Should Be The Rally Call Every Mac / iPhone User



    The CBC's report 'Complete control': Apple accused of overpricing, restricting device repairs is a must read/watch although imperfect as it's a sample size of 1. There's a few reads from my estimation and none of them are particularly good:

    • Apple purposely recommends fixes that users do not need like a scandelous mechanic. I find this unlikely but it isn't implausible.
    • Apple's genius techs have degraded in quality due to shortcomings with Apple as an employer and. I find this compelling, I emailed this story to Nick Heer of Pxlnv and he replied with this, so credit to him.
    • Apple keeps a tight lease on it's repairs, and will only perform certain operations due to volume of repairs it makes and is uninterested in low hanging fixes. Apple has a paint-by-numbers repair shop that doesn't account for things like replacing a single cable, but rather an entire display as these are "known" fixes that reliably fix a host of problems, eliminating the guesswork and downplays the individual tech's required diagnosis. This acheives a few goals: problems are fixed with impunity. Techs are required to do little to no guesswork. Techs can be trained to do several big tasks instead of potentially hundreds of small tasks. Apple maintains a steap profit margin by selling the expensive-yet-effective service (or selling a new computer). This is personal theory (and probably corrolates with the above.).
    • Lastly, the CBC encountered an edge-case/outlier, and the tech who proposed the fix was in error or a sub-standard tech. That said, the CBC isn't the first person to make this argument, plenty of bloggers/youtubers and techs have accused Apple of proposing ludicrous fixes.

    This all compounded by the fact Apple purposely makes its devices and computers non-userserviceable, going as far as to engineer non-standard screws, using glue to seat components, not provide 3rd parties with any manuals and the clamping down on authorized Apple service locations, and making user hostile designs. While the complexity of the ever increasing desire to shrink designs has stressed component placement, Apple takes extra steps to discourage users from exerting control on their own devices. This is where the CBC's report picks up. Instead of a simple hit piece on only Apple, as the world's most profitable company and arguably the most popular electronics maker, they are used as the canary in a coalmine and a segue to the right to repair.

    If you haven't heard of right-to-repair, I suspect it's going to be a larger movement it extends far beyond just consumers and their gadgets, look no further than John Deere's war against farmers and in 2014, a minor victory occurred when pledged to honor right to repair, although Tesla seems less inclined to do so.

    I feel my stake as someone who's written an 11,000+ word guide on upgrading/fixing/maintaining Mac Pros and have often lamented planned obsolescence and the death of modular computing.

    If you have a minute, I suggest taking up the cause. It's easy, the following three organizations all have comprehensive ways to take political action and links to legislation.

    Right to Repair Action


    Five years and change

    I just had the epiphany that five years of blogging came and went without me noticing. I've only done one respective after two years of blogging, back when this blog was still on Tumblr.

    On April 9th of 2013, I launched this blog on Tumblr of all places as a way to help obtain a better career. I was under the impression, all good developers have a social media presence but I never wanted to use Twitter, and in hindsight, I'm happy I never did. Instead, I decided to eschew social media for something more thoughtful, and somewhat impersonal as I like my privacy. I lived in a different city, had a different job, and was a homeowner. I suppose it helped, my initial blog posts mostly consisted of hot takes on tech news, inspired by Daringfireball and Pxlnv but it didn't benefit anyone.

    In 2013, shortly after landing my current job, I realized that long-form posts mattered. I drastically reduced the frequency of blog posts, from near daily to only a few a week, and eventually trickled down roughly 1-4 a month post-2016. In 2016, I moved out of Tumblr to Jekyll as I didn't care for the Tumblr community and never interacted with it. Tumblr added bloat where I didn't need any, I already had customized my Tumblr theme to hide community interaction. With Jykell, I was able to more create an even more minimalist blog, hyper-focused on the reading experience, so much so as to avoid using images except when helpful.

    Instead of creating a thoughtful retrospective and wax philosophical on this extended project, (one of the longest in my life), I'll cop out and make a few uninspired statements about the future: I'll probably change the fonts on this blog. The font stack is "ok" but its googlely font bs. I may add a dark mode. There will probably be more javascript posts in the future. I'll post a lot of opinions about Apple and the Mac Pro when the redesign happens (if it ever does). There will never be a comments section on this blog. I'll add a /rss and yet I still won't have a regular audience.

    The Best of this blog...

    Not all my blog posts are equal, some require hours upon hours of writing and effort. Below are just a few standouts, and posts that are representative of the evolution of this blog.

    Top Ten Blog posts of the past five years (as per google analytics)

    All page-views are cumulative from dated posted to Oct 18th, 2018. For a blog that's entire strategy is to toss web posts out into the ether, my blog now averages roughly 15k page-views a month as per google analytics (19k if you go by my server stats, + a fraction in RSS). It's surprising as I don't have any sort of compensation, or motivation to post as I haven't made a cent from this, and if you consider the web hosting fees, it's actually cost me money. I do not advertise this blog, nor post about it elsewhere, nor try and drum up traffic for it and my SEO strategy is limited to "put alt tags on images". I'm not part of any online community either thus the entirety of my audience is good ol' organic searches and other people linking my blog.

    1. Setting up MAME Arcade emulation & NeoGeo via OpenEmu on macOS (OS X) - 12/15/2016 - 25.5k page-views
    2. How to fix Far Cry 4 Common Glitches - Black Screen - Uplay stopped working - Save Game will not save - 2014/12/15 - 24.1k page-views
    3. Getting the PPP Username / Password for CenturyLink Zyxel C1000Z Modem - 10/7/15 - 20.7k page-views
    4. Installing PPSSPP on iOS 11 without a jailbreak - 10/16/17- 17.6k page-views
    5. Adding Ringtones - text tones to - iOS using iFile - 12/12/2014 - 15.2k page-views
    6. The Definitive Classic Mac Pro (2006-2012) Upgrade Guide - 05/07/2018 - 12.5k page-views
    7. Converting .bin .cue to ISO with OS X using free and commercial utilities - 01/03/16 - 11.2k page-views
    8. Recommended Mac Pro upgrades & hacks - 05/07/2018 - 11.7k page-views
    9. Mockup Prototyping - Wireframing Utility - App Roundup 2013 - 05/30/13 - 11.0k page-views
    10. Installing a GeForce GTX760 (GeForce GTX770/GTX780) into a 2006-2008 Mac Pro - 10/04/14 - 10.7k page-views

    Gaming isn't a regular feature of this blog, three of the top ten (four if you count the GeForce post) dominate my top posts. I did my penance with gamers, having every pejorative to slander ones sexuality tossed at me when I ran a video game cheats site (as it paid the bills in college) and while I play video games occasionally, I'm not a gamer. That experience was LONG before, the rise of "gamergate" in the early 2000s and the only thing that's change is the toxicity has been weaponized. My gaming posts, generally tie into emulation, which is far removed from current events and holds a delicate balance of nostalgia and technical challenge.

    Better, there are three posts related to the Mac Pro (four if you count the GeForce post). My blog is ostensibly about macOS, so I'm happy to see those in the mix. Notably, none of my web development posts crack the top ten, although my Pure Scss Circle Progress Bar is number 12 and rising.

    So will this blog be around in 5 years? I don't know, but hopefully, I've helped people along the way with annoying problems. That's been the goal, and I seem to be reaching far more people than if I were to do this via social media. I'm proud of that.


    Drawing an SVG line between multiple DOM objects

    HTML offers the <canvas>, but with some limitations, it's pixel based but can use SVGs but generally meant as "viewport" as opposed to DOM spanning. Rather than go into the "whys," Canvas doesn't quite fit what I'm after to create. SVGs can be positioned via absolute positioning anywhere on the viewport (just like any DOM object). Unlike other image types, the content inline SVGs can easily be altered via the DOM as they're XML data. This means I can easily change the color, or size, even shape of objects.

    Hopefully, this tutorial is understandable for novices, more seasoned devs may want to skip the bottom for the codepen example. I've written my tutorial using only ES5 syntax although my codepen has some ES6 syntax.




    Our Goals

    • Draw an SVG line between objects on the screen.
    • On resize change the SVGs position in objects on the screen have changed.
    • Allow to have lines between multiple objects, and do this dynamically.



    SVGs can be quite complicated, and drawing them with javascript is quite an art. There are plenty of libraries designed simply for manipulating SVGs and animating them but drawing a line is pretty easy.

    <svg>
      <line stroke-width="1px" stroke="#000000"  x1="0" y1="0" x2="100" y2="100" id="mySVG"/>
    </svg>

    The above will create a black line 1px wide that starts at 0 pixels and span 100 pixels to the right and 100 pixels down, to create a diagonal line.

    simple diagonal SVG line

    Pictured: simple SVG line using the above code

    Offset

    It's 2018, but jQuery still has its place, offset reliably can get us the absolute positioning of elements on the screen to the document as its base even if they aren't absolute positioned. This isn't a complete win for our goal of drawing a point between two objects as this only gets us the top-left corner of our a <div>. We need the center of that a <div>.

    So with a bit of simple math, we can figure out the center position of a <div> by querying the width and height of the div and dividing by 2, then adding it to the offset position. This will measure diagonally to the center.

    how to calculate the center of a div

        var centerX = $("myPoint").offset().left + ($("myPoint").width()/2);
        var centerY = $("myPoint").offset().top + ($("myPoint").height()/2);
      

    Now to draw an SVG, we need two sets of center coordinates. X1, Y1 and X2, Y2.

    var x1 = $("myPoint").offset().left + ($("myPoint").width()/2);
    var y1 = $("myPoint").offset().top + ($("myPoint").height()/2);
    var x2 = $("myPoint2").offset().left + ($("myPoint2").width()/2);
    var y2 = $("myPoint2").offset().top + ($("myPoint2").height()/2);

    Now if we just apply this to #mySVG, we can draw a line that goes between the center of these two hypothetical DOM objects. We want to place the SVG in our body tag and then give it some really basic styling in CSS so it can occupy any space on the viewport.

    #mySVG{
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100vh;
    }
      $("#mySVG").attr('x1',x1).attr('y1',y1).attr('x2',x2).attr('y2',y2); //svg attributes

    Resizing Event

    Not bad right? What happens if we resize? Our hypothetical DOM objects on the screen might move, thus we'd need a window resize event. We better make this a function now, and clean up the legibility first.

    function drawSVG(target, div1, div2) {
      var x1 = div1.offset().left + (div1.width()/2);
      var y1 = div1.offset().top + (div1.height()/2);
      var x2 = div2.offset().left + (div2.width()/2);
      var y2 = div2.offset().top + (div2.height()/2);
      $(target).attr('x1',x1).attr('y1',y1).attr('x2',x2).attr('y2',y2);
    }
    drawSVG($("#mySVG"), $("myPoint"), $("myPoint2") )

    Adding resizing is pretty easy now:

    $(window).resize(function() {
      drawSVG( ($("#mySVG"), $("myPoint"), $("myPoint2") )
    }

    More objects!

    Pretty nifty right? Now that we've covered the basics of drawing and redrawing the SVG, we can use jQuery's clone to duplicate our line within our SVG and call our drawSVG multiple times.

      function drawSVG(target, div1, div2) {
        var x1 = div1.offset().left + (div1.width()/2);
        var y1 = div1.offset().top + (div1.height()/2);
        var x2 = div2.offset().left + (div2.width()/2);
        var y2 = div2.offset().top + (div2.height()/2);
        $(target).attr('x1',x1).attr('y1',y1).attr('x2',x2).attr('y2',y2);
      }
      drawSVG($("#mySVG"), $("myPoint"), $("myPoint2") )
      $("#mySVG").clone().addClass("clone").insertAfter(this);
      drawSVG($(".clone"), $("myPoint2"), $("myPoint3") )
      $(window).resize(function() {
        drawSVG( ($("#mySVG"), $("myPoint"), $("myPoint2") );
        drawSVG($(".clone"), $("myPoint2"), $("myPoint3") );
      }

    This isn't very dynamic as we're assuming we always know that we want to draw a line between 3 things on our screen. We're getting close but this isn't dynamic. It's time to break out .each and convert what we have into an object to cut down on our mess. We're going to do a few changes. First let's simplify our SVG.

    Refactoring

    Now that we're going to copy and paste our SVG, we don't need any co-ordinates. In fact, we do not want them at all until. A line without the required x1, x2, y1, and y2 won't be rendered to the screen. This works for us as we want to use this as a template for future lines but do not want our original to display.

      <svg>
        <line stroke-width="1px" stroke="#000000" id="mySVG"/>
      </svg>
      

    Also, for legibility, we can turn the messy code above into something more readable and hopefully maintainable.

    drawBetweenObjects = {
      drawSVG: function(target, div1, div2) {
        $("#mySVG").clone().addClass("clone").insertAfter(this);
        var x1 = div1.offset().left + (div1.width()/2);
        var y1 = div1.offset().top + (div1.height()/2);
        var x2 = div2.offset().left + (div2.width()/2);
        var y2 = div2.offset().top + (div2.height()/2);
        $(target).attr('x1',x1).attr('y1',y1).attr('x2',x2).attr('y2',y2);
      }
    }

    Let's also assume all our hypthetical myPoints use the class .myPoint and not IDs. We can now call our function drawBetweenObjects.drawSVG($(".myPoint"), more paramets)

    .

    Each()

    If you're not familiar with iterating over arrays, now would be a grand time to learn. There are far better people who can explain it than I can. The long and short is using jQuery, we can create a variable that contains an array of objects based on our query. This way we can apply our drawSVG function to each entry in our array. This is where for newer javascript developers some of the lines of code might look confusing.

    drawBetweenObjects = {
      drawSVG: function(target, div1, div2) {
        $("#mySVG").clone().addClass("clone").insertAfter(this);
        var x1 = div1.offset().left + (div1.width()/2);
        var y1 = div1.offset().top + (div1.height()/2);
        var x2 = div2.offset().left + (div2.width()/2);
        var y2 = div2.offset().top + (div2.height()/2);
        $(target).attr('x1',x1).attr('y1',y1).attr('x2',x2).attr('y2',y2);
      },
      iterateOverObject: function(object) {
        $(object).each(function(index, el){
         drawBetweenObjects.drawSVG($("#mySVG"), $(this), object.eq(index + 1));   //args order - line, div1 and div2 - the next div.
       }
      }
    }

    iterateOverObject has some funky stuff, such as $(this) which you have probably seen before. jQuery's $(this) and javascript's this aren't quite the same, What's the difference between '$(this)' and 'this'? but in the array of objects, it will use the current entry. Next we will need to select the next item in our query, eq creates a new a query to the specific entry on the array of objects. So if I ask for var myLi = $("li"), and there are four <li>s on the page, myLi.eq(2) would only require the data for the second <li>. Using our index, we ask next in the list, using index + 1.

    Now we can update our script resizing.

      iterateOverObject($(".myPoint")); //init
    
      $(window).resize(function() {
        iterateOverObject($(".myPoint"));
      }

    Removing old clones

    If you run the code, you'll be able to redraw the points, but the problem is our old lines are still in the DOM. So the best place to remove them is before we re-iterate over the object. So before we create new lines, we delete the old ones. Time to add a simple jQuery remove to the iterateOverObject.

    drawBetweenObjects = {
      drawSVG: function(target, div1, div2) {
        $("#mySVG").clone().addClass("clone").insertAfter(this);
        var x1 = div1.offset().left + (div1.width()/2);
        var y1 = div1.offset().top + (div1.height()/2);
        var x2 = div2.offset().left + (div2.width()/2);
        var y2 = div2.offset().top + (div2.height()/2);
        $(target).attr('x1',x1).attr('y1',y1).attr('x2',x2).attr('y2',y2);
      },
      iterateOverObject: function(object) {
        $(".clone").remove(); //remove any clones
        $(object).each(function(index, el){
         drawBetweenObjects.drawSVG($("#mySVG"), $(this), object.eq(index + 1));   //args order - line, div1 and div2 - the next div.
       }
      }
      iterateOverObject($(".myPoint")); //init
      $(window).resize(function() {
        iterateOverObject($(".myPoint"));
      }
    }

    Now we should have an SVG line that will draw between any DOM objects with the class of .myPoint and redraw the lines on a window resize.

    Below is the hyper spiffy version that has a config file and the ability to delay rerenders on resize. To make this work for pages larger than 100vh, the SVG height of the #svg would need to set the height as $(document).height();

    It'd be feasible to make this without jQuery, by replacing jQuery with Document.querySelectorAll() and removing the offset with techniques such as offsetLeft and offsetTop.


    Animating SVG path d attribute in late 2018

    SMIL, CSS animation and a bag of hell

    It's late 2018, and if you're like me, you've probably been tasked to animate an SVG and now left to wonder, "What's the state of SVG animation? Isn't SMIL dead? Does CSS work?"

    Long ago, SVG was boxed with its OWN animation specification, called SMIL ( Synchronized Multimedia Integration Language) which origins date back to 1999 and was adopted by the W3C in 2001 with SVG 1.0. Despite its spec, it never was adopted by Microsoft in IE or Edge, and its continued support is in question. Google announced in 2015 it's intent to depreciate SMIL support. This has been the proverbial nail in the coffin, but SMIL still works in Chrome, Safari, and Firefox (for now). There's no timeline for when SMIL will be dropped.

    Rather than recant all of SVG animation, I highly (and I stress) highly recommend CSS-Tricks's SMIL is Dead, long live SMIL, which outlines SMIL and alternatives. The cliff notes are as follows:



    The SVG Path d and points attribute and CSS

    CSS animations are the supposed heir to SVG animation. However, there's a lot of issues that arise. It's quite easy to use CSS to animate SVG fill properties, opacity, and even positions and basic shape using CSS transforms and using declarations such as:

        svg #mypath:hover {
          fill: #333333;
        }
      

    See the Pen Basic SVG hover by Greg Gant (@fuzzywalrus) on CodePen.

    CSS animations extend to many, (if not most) SVG properties except path "d", animations paths and points. This creates an issue; you can warp, move and filter your SVG to your heart's content but not actually manipulate the points with CSS. There's a bit of reasoning here, as it'd be easy to pollute a CSS file with 100 of kilobytes if not megabytes for animation frames but without SMIL, we're left to javascript to carry the burden.

    Chris Coyer wrote a pretty interesting post Randomizing SVG Shapes, and the codepen demo is pretty nifty although he fails to mention one thing: it doesn't work in any browser other than Chrome.

    So to tabulate the score: SMIL isn't supported in IE or Edge, and its fate isn't looking good. CSS doesn't a complete replacement as FireFox/Safari/Edge will not animate via CSS transition SVG point changes.

    Greensock to the rescue

    Greensock is pretty much the beginning and end to SVG animation (if you couldn't tell by the CSS tricks summary), there's SVG.js, Snap.svg (which seems to be mostly forgotten), Anime JS, and somewhat feature-limited Raphael (and a few one-off effects like Vivus, kute.js/SVG Morpheus) but none offer the power, flexibility, and ease of use of Greensock. Greensock makes cross-platform animation easy and compatible. It's also performant. Downside? It's a paid library.

    Below is my hastily written test animation. Each point on the animation is given random values to move to, to create a jittering effect.

    See the Pen Arrow test v2 by Greg Gant (@fuzzywalrus) on CodePen.

    So here we are in 18, and the most reliable way to animate an SVG is via a paid library. I have to say though, Greensock's multiple SVG libraries are easy to use and impressive. I was hoping for a little more diversity, but with CSS motion paths and transitions only under consideration by other browsers, things aren't looking too great for SVG animation.



    Recommended Reading


    Removing inline Transforms from an SVG while preserving point positions and/or Install Inkscape Plugins on macOS

    So you're probably here since there's not much info on the web on how to remove inline transforms from an SVG without wrecking it or perhaps you're unsure how to install Inkscape extensions on MacOS. Either way, hopefully this short tutorial should help. SVGs are a complex mish-mash of XML that can include CSS transform which can be undesirable for various reasons. Occasionally, converting formats like EPS to SVG in Illustrator will litter an SVG with transforms. Below is how to remove them.

    Step 1: Download and install Inkscape

    Go to Inkscape and download the release, macOS users will need to nab the OS X x11 release. If you haven't used an X11 app you may need to install xQuartz. XQuartz (x11) is a GUI library for cross-platform applications to run in macOS.

    Step 2: Download and install the Apply Transforms plugin for Inkscape

    Nab inkscape-applytransforms. You can download the .zip directly. Unzip the file once downloaded.

    Next, go to Inkscape applications, and right click and "Show Package contents".

    The plugin for is in Contents/Resources/share/inkscape/extensions, drag both the .inx and .py files into this directory.

    Step 3: Use Inkscape to apply the transforms

    Launch Inkscape and open your SVG (Note X11 app UIs will look a little shoddy and the menus will be attached to the app window). Select all points. (Note: Inkscape will use windows/linux control key instead of command key).

    Inkscape: Apply Transforms

    This wasn't perfect for me, but was able to process and make my SVG 95% correct, just requiring me to move a few elements.


    iPhone XS & iOS 12 impressions

    Last time, I wrote an Initial Reactions to the iPhone 7. Something strange happened to me this go around. My iPhone 7 felt "good enough" for almost all my daily usage, and I nearly didn't buy my 2-year upgrade cycle on my iPhone that started with an iPhone 3G, then 4, 5, 6, and 7... what sold me was finally getting a dual camera on a smaller phone factor. I pulled the trigger.

    iPhone XS

    • The iPhone XS is the first time I didn't buy the maximum storage option. I use my camera a lot, but I also have a fair amount of my old photos on iCloud. My iPhone 7 had about 90 GB free when it came time to upgrade. It's the first phone I wasn't struggling with storage, and that includes my massive photo library and keeping about 20 GB of music locally on my device.
    • I miss the headphone jack, and I found a case that offers one. I'll write a review as I have for the Incipio.
    • I miss the home button, but I like FaceID. It allows for some futuristic features like not displaying text message contents before looking at the phone. It seems a little less finicky than TouchID, but I miss unlocking my phone without having to look at it.
    • Not sure what the hell of having a glass-backed iPhone is. The iPhone 4 had it, and it was a mistake. Fortunately, I was able to replace the back with an aluminum back as the iPhone 4 was somewhat user serviceable. This is not. The glass is wonderful at picking up fingerprints but is less slippery that iPhone 6 or 7.
    • Oleophobic tech hasn't drastically improved.
    • The screen is amazing, and truetone is much less so. Going back to the iPhone 7 feels boxed in.
    • Organizing folders in iOS is still as annoying as it was in iOS 5. It's slow and cumbersome. Even a desktop app for managing the phone would be preferable.
    • The iPhone XS doesn't feel that much faster than an iPhone 7 out of the box.
    • The camera is a massive upgrade. I want to default photos to 56mm instead of the wide angle lens. The low light performance is much improved.
    • I'm not sure what sort of significant upgrades can be applied to the iPhone, you have gigabit LTE, 4 GB of RAM, optional 512 GB storage, Bluetooth 5.0, dual cameras, a 10 bit OLED screen, stereo speakers, much faster GPU, IPX68. The only display upgrade I can think of is 120 Hz like the iPad Pro, and possibly a 3rd camera lens. The other updates: CPU/RAM/GPU isn't going to wow consumers. Speed is great but at this point what I wouldn't give for LONG battery life and durability.
    • Giant phones are here to stay. I really miss the iPhone 5 form factor. If I could have that with dual cameras, I'd eschew the iPhone XS form factor.
    • The phone is heavy, like uncomfortably so for holding long periods.
    • I haven't had any social media apps (unless you count untappd and goodreads) on my iPhone since my iPhone 6. I'll be curious to track my usage on Screentime. I've managed over the years to dial back my phone addiction, limiting my notifications, removing social media and such although its omnipresent. The downside of screen time is it counts non-interactive experiences like listening to audiobooks, NPR, podcasts and music all the same. I'm not looking at the screen and usually engaged in biking, driving, running, exercise, chores, shopping, cooking. I don't consider this as "usage" as its not interrupting my life, but rather complimenting it like my iPod did.
    • I'm a bit worried about the durability of the iPhone XS. I'm active: I bike to work, go the gym 2-3 times a week, hike weekends, occassionally skateboard, cross country & downhill ski, kayak, paddleboard, and tried downhill mountain biking this summer. My iPhone 5 was the perfect size and I never used a case. I also went caseless with my iPhone 4, and managed to break it's voice attenna (but not wifi or even the screen) after a big longboarding crash that had me rolling on pavement. My iPhone 6 I broke twice, once with a case. My iPhone 7 I never broke but it felt delicate. I worry about the XS.
    • Animojo and Memoji are gimmicks. Do people use these more than a few times? It's a lot of effort to make one for not much gain.
    • Tranfering to my iPhone XS was pain free whereas my iPhone 6 to iPhone 7 was a nightmare. iOS 12 appeared to download recently apps first as apps like Gmail, Audible, Google Maps, Untappd, banking app, LA Fitness, HBO and a few recently played games downloaded first. That was pretty spiffy, especially when you have about 300 apps to download. You can read about my iOS upgrade issues with the iPhone 7 in Initial Reactions to the iPhone 7 .
    • The iPhone 7 feels more premium without a case than the iPhone XS in hand, it's thinner and more importantly lighter.
    • After a week, I kinda have a love/hate with the notch. the extended space for home screen and portrait apps looks fine but its pronounced as hell. It's an ugly concession.
    • The camera bump. Where do I start? It's awful.

    iOS 12

    • Screentime is my new favorite feature.
    • It felt zippy on my iPhone 7 and thus feels the same on my XS.
    • Why can't I display battery percentage in the rabbit ears? What sort of Johnny Ive bullshit is this?
    • ARkit could be big, but I still haven't found a daily or even weekly use for it.
    • Siri suggestions seem nice but I really only use Siri to text while driving, sometimes change music while driving, and directions while driving. I don't use it in any other circumstance.
    • I'd uninstall Animojo/Memoji if I could, its wasted space for me.
    • I have so few notifications, (only I only allow Gmail and messages) that I didn't know notifications weren't grouped but that seems huge.
    • Password management is nice but it ain't 1password.
    • Apple's photo app is really an unsung hero,and its gradual improvements are fantastic. I love Highlights.
    • iOS 12 isn't hyper exciting, but smartphones updates are pedestrian.
    • I miss the iOS7 app switcher still.

    Things I was wrong about

    Looking back on my impressions of the 7, I figure it's fair I should self evaluate and self actualize. I'm hardly infalliable, and likely as wrong as I am right.

    • Force Touch isn't the equivilent of the right click. It's unpredictable as its so under utilized and not the easiest.
    • The Touch button the iPhone 7 was errie how well it simulated a click. I grew to love it, it wasn't really a gimmick.

    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>
        

    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

    The Definitive Classic Mac Pro (2006-2012) Upgrade Guide

    Mac Pro Face
    v071719



    Contents




    The Cheese Grater's last stand

    The success of this upgrade guide has been because of failure of Apple, why would anyone choose to make a hobby of writing a guide that's 18,000+ words on a set of computers that are 7-13 years old? It's been an interesting experience, that's for sure. This guide started out in 2013 when I was upgrading my Mac Pro 3.1 and wrote a simple list of upgrades, then decided to rewrite it over a year ago after purchasing a 2010 Mac Pro. I was pretty sure that the Mac Pro 2012 was going to be the last Mac that shipped with PCIe slots and was easily user-serviceable. Well, I was wrong. Very wrong.

    Sometimes it feels good to be wrong. My old intro to this guide was a world-weary, cynical outlook, standing on the edge of a precipice of planned obsolescence. I felt, perhaps better worded, we (the community of professionals) felt modular computing was being killed-off despite endless temper-tantrums that it was still necessary. I was convinced Apple's next Mac Pro would be some bizarre conceptual piece, made to wow journalists and not users. I was wrong. Apple's presentation was filled with numbers, big numbers, lots of numbers, the kind of numbers that make average-people glaze over in boredom: 8k, 6k, 3.0 16x PCI-e, billions of pixels, 2000 audio tracks. There was a surreal moment when Apple showed how the case opened. They invited you inside and look. There are slots! So many slots. What-in-the-name-of-Ive was going on? (Edit: I wrote that last line before Ive announced his departure.)

    The Mac Pro 2019 is the computer I dreamed of... but at a large price. I imagine we'll be using our cMPs for a while longer. The future looks good, albeit very expensive. If you'd like to read the old intro, just click the show old intro.

    Like many, I had quite a few thoughts about the Mac Pro 2019. While the 2019 Mac Pro is relevant, this guide will remain focused on the 2006-2012 Mac Pros. If you want my personal take, you can read it here.

    Show old intro

    A hearty thanks to all the communities and websites where Mac power users still exist: MacRumors, Netkas, XL8yourmac, TonyMacx86, EveryMac, Ars Technica and to The Mac Pro Upgrade group on FB (users Gianluca M, Jean-Paul R., John C, Martin L, Jay V) and Mac Pro Users on FB, (Eric Z.) for providing feedback, and many users who've taken the time to email me to correct any errors. Even MacVidCards chimed in to correct this guide.




    Special Announcements

    I've written a follow-up article, The Definitive Trashcan Mac Pro (2013) Upgrade Guide to commemorate the first anniversary of this blog post on April 7th of 2018!

    Support Right To Repair!: Since you are here, it's probably a safe bet you believe in the right to repair your computer (and phone, car, etc.). CBC had a great piece on Apple, and I suggest checking out my take Right To Repair Law Should Be The Rally Call Every Mac / iPhone User, replete with the original report and links to organizations supporting the right to repair.




    Mini-Glossary of Terms / About this guide

    Jumping into the world of Mac OS can be daunting as there's a lot assumed tribal knowledge and history. I try to avoid unnecessary shorthand, but there are a few unavoidable terms. I like to write for as many people as possible and to remain accessible. For sanity sake, there is a base assumption for understanding but hopefully a low-enough bar that novice users can follow along and learn. Examples of assumed knowledge would be like the fundamental difference between an SSD and Hard Drive is or what CPU cores are. I try to provide links to anything more complicated than installing a PCIe card. If you feel that something is unclear or never adequately explained, please reach out to me and let me know as my readers are a global audience and of all walks of life. If I can doSee the Changelog for more details on how to reach out to me. We all start somewhere, and I frequently question my own aptitude when I see how much heavy lifting others have done to make this guide a reality. For my more technical users, I depend on you for accuracy. This is truly a community effort.

    APFS - Short for Apple File System, a proprietary file system used on Mac OS and iOS. File systems define how data is stored and retrieved in an operating system. File Systems, like all software, has limitations, and APFS was used to fix many of the shortcomings of HFS+. The transition to APFS was (relatively) smooth, but Apple chose not to support certain older hardware when it moved to APFS.

    Cheesegrater - Slang for the classic Mac Pros. I did not invent this term but use it frequently. This term arose to describe the billet metal on the front/back of the Mac Pros that resembles a "cheesegrater" although functionally it'd be more appropriate to use it as a pasta press.

    EFI - Short for Extensible Firmware Interface, a specification designed by Intel to replace BIOS as the method to interface between an operating system and the platform firmware. This former isn't important to understand as much as the following: Apple adopted EFI on Intel Macs, and this is the interface that allows selecting a boot drive before OS X begins booting (by holding down the option), among other pre-OS loading functionality. I use the term EFI slightly loosely as I'll refer to the boot screen as the EFI even though this isn't all that EFI is providing for the Mac. Also, it is important to understand that the UEFI (Universal Extensible Firmware Interface) which is now industry standard for PCs isn't the same as Apple's EFI. They are similar, but Apple's implementation varies partly due to age and partly due to the closed nature of Mac OS.

    32 Bit EFI - It's a common mistake on the internet to refer to certain Macs as "32 Bit" as most Intel Macs (sans the Core Duo Models) have had 64-bit CPUs. However, some of the older Macs, like the 2006-2007 Mac Pros used 32 Bit EFI. Apple dropped support for 32 Bit EFI with Mac OS 10.12.

    DosDude1 - the handle of a prodigious Mac OS scripter who makes Mac OS installable on a large swath of older Macintoshes, under the same name, generally referred to as some variation of DosDude1 Patcher Tool for Unsupported Macs. In this guide, I refer to DosDude1 not as the person but as the scripts he has written.

    Firmware - a term you probably have heard and already possess some understanding of, the standard definition is a program that is written into Read-Only Memory (ROMs), and requires a specialized process to change (if it can be changed at all) called Flashing.

    Flash/Flashing - The act of writing over data that exists in an otherwise in Read-Only Memory (ROM) or space (Firmware).

    Hackintosh - Any non-Apple hardware that is running any version of Mac OS, generally standard PCs using a lot of workarounds.

    HFS+ - Short for Hierarchical File System but also referred to as "Mac OS Extended" a proprietary file system used on Mac OS, released with Mac OS 8.1 in 1998. It remained the default file system for Apple for nearly two decades, used on Mac OS 8/9, OS X, the iPod, early versions of iOS but lacked some core features found on file systems developed later.

    Mac OS / OS X - Mac OS X was rebranded to Mac OS, I use these interchangeably as I have a tough time accepting Mac OS as OS X is still OS X to me. Generally, Apple writes macOS, but I find this annoying, so you’ll see Mac OS littered through this guide. Mac OS is not to be confused with Mac OS classic (Mac OS 7.x - 9.x).

    Metal - Previously, Apple's default graphics library for graphics acceleration was OpenGL (Open Graphics Library), used on iOS and Mac OS. Over time, OpenGL fell behind in performance and features when compared to a library like Microsoft's DirectX. Without an ideal candidate to replace it (OpenGL's successor, Vulkan, was not out yet), Apple created it's own graphics library called Metal and shipped it in 2014 on iOS 8 first. Mac OS 10.14 Mojave uses Metal to now power Mac OS. The new API does not support many old GPUs as their drivers were not updated.

    SIP - System integrity protection, a feature of later Mac OS introduced in OS X El Capitan, that walls off portions low-level features of Mac OS in order to protect it from malware. However, sometimes, when performing certain hacks, it requires disabling during installation and then can be re-enabled.

    Trashcan - While Mac OS has a trash can for deleting files, in the context of this guide, this used to poke fun of the Mac Pro 2013 for its looks and lack of functionality compared to the almighty classic Mac Pro. Despite its shortcomings, I wrote a The Definitive Trashcan Mac Pro (2013) Upgrade Guide.




    Know your Mac Pro's Model

    A good portion of this guide (and others) uses terminology such as "Mac Pro 2008" or Mac Pro 4.1 or Mac Pro 6,1 when referring to what upgrades are feasible. The classic Mac Pros come in five iterations. You can find out a Mac Pro's version by going to "About this Mac" under the Apple menu. All classic Mac Pros share a base level of specifications: Four full length PCIe Slots, 1 mini PCIe slot for an Airport/Bluetooth card, four SATA2 3.5 drive bays, two 5.25 inch Optical drive bays (ATA on 3.1 and lower Mac Pros, SATA2 on Mac Pro 4.1+) dual Gigabit Ethernet, five USB 2.0 ports, two Firewire 400 ports, two Firewire 800 ports, and optical digital audio in/out. The differences pertain to the bus/RAM/CPUs and tray designs for RAM and CPUs. Visually from the exterior, these computers are the same and difficult to identify from each other without opening them up. Internally the 1.1/2.1s, and 4.1/5.1s are nearly identical. A 1.1 Mac Pro can be firmware flashed to a 2.1 Mac Pro, and a 4.1 can be flashed to a 5.1 Mac Pro. The best way to verify what the original computer's version was is via using its model number (or serial number). For more info see EveryMac's Mac Pro specification section and EveryMac.com's Ultimate Mac Lookup.

    • Mac Pro 1.1 aka 2006 aka Woodcrest (CPUs) - the first iteration of Mac Pros. The firmware can be upgraded to 2.1, uses 32 Bit EFI. Can run macOS 10.11.6 with hacks.
    • Mac Pro 2.1 aka 2007 aka Clovertown (CPUs)- The 2.1s were released only in dual quad-core CPU configurations, 2006 dual 2x Core Mac Pros sold used the 1.1 firmware whereas the 2.1s use a slightly updated firmware. Like the 1.1 before, uses 32 Bit EFI. Can run macOS 10.11.6 with hacks. Due to the hard limitation of OS upgrades, the Mac Pro 1.1/2.1s are not very popular.
    • Mac Pro 3.1 aka 2008 aka Harpertown/Penryn (CPUs) - The Mac Pro 2008s are the odd man out as there are little CPU options compared to the 1.1/2.1 Mac Pros and the 4.1/5.1 Mac Pros, 64 Bit EFI, can use modern macOS with minimal hacking. The 2008 Mac Pros lack SSE 4.2 instruction set on the CPUs as well as EPT/VT-x support, which aids greatly in virtual machine related tasks. For the most part, neither are required although the SSE 4.2 support means using modified drivers for modern AMD GPUs. The lack of later CPU instructions means some software isn't as performant.
    • Mac Pro 4.1 aka 2009 aka Nehalem (CPUs) - The firmware can be upgraded to 5.1, uses 64 Bit EFI. When flashed, they are natively supported for Mojave 10.14, depending on GPU. 4.1s tend to be the budget upgrader's choice (as they can be had for cheaper than a 5.1 Mac Pro). There is no performance difference between a flashed 4.1 -> 5.1 and a computer that shipped with the 5.1 firmware. However, the Mac Pro 4.1 requires delidded CPUs (see the CPU section).
    • Mac Pro 5.1 aka 2010/2012 aka Westermere (CPUs)- natively supported for Mojave 10.14, depending on GPU The Westermere CPUs are the highest end CPUs supported by LGA 1366 Sockets. *Note, there were 2012 Mac Pros sold with a single Nehalem CPU, although somewhat uncommon. There is no difference between 2010 and 2012 Mac Pros beyond the CPUs and GPUs options Apple offered at the time of the sale. The Mac Pro 5.1s (or 4.1s flashed to 5.1s) have enjoyed several major firmware updates for Mojave enabling the ability to boot NVMe which previously required workarounds/hacks to do.
    • Mac Pro 6,1 2013, also known as the "Cylinder" or "Trash can." These are radically different than the classic Mac Pro models and will not be covered in this guide. For information about this model, please visit The Definitive Trashcan Mac Pro (2013) Upgrade Guide.

    PCIe and you

    Mac pro 1.1/2.1- PCIe layout (uses PCIe 1.0)

    PCI Express Slot Slot Speed
    4 x4
    3 x4
    2 x1
    1 x16

    Note: The Mac Pro 1.1/2.1 allowed for lane configuration using Expansion Slot Utility


    Mac pro 3.1/4.1/5.1 - PCIe layout (uses PCIe 2.0)

    PCI Express Slot Slot Speed
    4 x4
    3 x4
    2 x16
    1 x16

    Not all PCIe slots are the same, since its inception, PCIe 1.0, 2.0 and 3.0 have been released with the very first 4.0 PC motherboards demoed in 2018. Each iteration of PCIe radically increases the speed. Also to add a minor bit of confusion different chipsets a have different amount of total "lanes," the measurement of speed for a PCIe slot. In the case of the Mac Pros, all have a maximum of 40 lanes and, thus, the lanes are distributed among the PCIe slots. Not all PCIe slots have the same amount of lanes; thus, not all are the same speed. The amount of lanes a PCIe slot has access to is expressed numerically as follows: 1x (1 lane), 2x, (2 lanes), 4x (4 lanes), 8x (8 lanes) and 16x (16 lanes). The maximum speed of each lane depends on the version of PCIe a computer has. A 1.x PCIe 1x slot has access 250 MB/s. Thus a 4x has a maximum of 1 GB/s and 8x has a maximum of 2 GB/s and so on. Each generation of PCIe effectively doubles the speed of a lane. A PCIe 2.0 lane is 500 MB/s and PCIe 3.0 lane is 1 GB/s. Generally, PCIe speeds are expressed in bytes, not bits. A PCIe 2.0 16x speed (8 GB/s) would be 64 Gbps (64000 Mbps).

    To reiterate the dramatic speed increases of PCIe based on generation: A 16x port in PCIe 1.x has a maximum of 4 GB/s, whereas a 2.x 16x port can handle 8 GB/s, 3.x is almost 16 GB/s. All PCIe slots are backward compatible however the caveat is that PCIe cards may not be (this is not common). Also, not all PCIe cards will operate at the maximum speed of the port, and will work in any PCIe slot but will be limited by the port's maximum speed. For example, you could use a GeForce 1080 Ti in the Mac Pro's 4x slot but with a bit of a performance penalty. Also, the port will be limited by the card's maximum speed as well. The Mac Pros support PCIe expansion but do not support bifurcation. This is important when considering PCIe NVMe cards, see the PCIe NVMe sleds/blades portion of this guide for more info on bifurcation.

    Lastly, all Mac Pros sport a dual height PCIe 16x slot meant for a graphics card. This is still uncommon on PC motherboards.

    For more information on the Mac Pro's PCIe slots, see EveryMac's guide and the archived article from developer.apple.com: PCI Product-Specific Details.

    Identifying a Mac Pro visually

    Mac Pro 1.1 vs. 3.1 vs. 4.1/5.1

    The easiest way to distinguish a powered off Mac Pro is taking the side panel off. The Mac Pros, note the RAM configurations on the right-hand corner. The other sure-fire method is looking up the Serial Number.




    Firmware upgrades/hacks

    The Mac Pro line has had a history of Firmware updates, depending on the model, there's quite a wide gamut of potential upgrades or hacks for your Mac Pro.

    The Mac Pro 2006s (1.1) and 2009s (4.1) occupy a special place as both can be updated to enable a wider range of CPU configurations with a software update. The Mac Pro 1.1 to 2.1 enables later CPU (Clovertown) support. The 4.1 gets the bigger boost the firmware update enables Westmere Xeon CPUs, faster bus/RAM and allows the 4.1s to use the 5.1 firmware updates that enable quite a few goodies like APFS booting, native NVMe support and such. This is one of those times where a software upgrade makes all the difference. See the CPU upgrades section for more details on CPU configurations. There is no performance difference between a flashed firmware Mac Pro vs. a Mac Pro that shipped with later firmware assuming the hardware configurations are the same.

    Ars Technica reported on the success of the 2009 Mac Pros being flashed by Netkas forum members.

    2006 1.1 Mac Pro

    The Mac Pro 1.1 flash allows for later CPU models to be used.

    Note: Sometimes it is incorrectly reported that the 1.1/2.1 Mac Pro cannot run 64-bit applications (such as Pindelski's upgrade guide) which is untrue, they are limited to a 32 Bit EFI ROM. 64-bit Applications run natively as this is independent of the EFI ROM. For reference, the G5 was the first Macintosh to support 64 bit, which mostly enabled them to address more than 4 GB of Maximum RAM. Every Intel Mac outside of the original Core Duos (not to be confused with the Core 2 Duo) is 64-bit.

    2008 3.1 Mac Pro

    The Mac Pro 2008 remains a bit of the odd man out when it comes to firmware. With the DOSdude1 High Sierra patcher, this computer can boot AFPS volumes but not from encrypted AFPS volumes.

    Clever hardware hackers discovered how to enable bootable NVMe on Mac Pro, it requires making a custom firmware using ROMtool and EXEinject on the 3.1.

    Note: this hack was originally performed on Mac Pro 5,1s but is unnecessary as Apple has released NVMe compatible bootROMs for them. Below is a collection of links related to the bootROM procedure.

    2009 4.1 Mac Pro

    2010-2012 5.1 Mac Pro Firmware

    Despite the obvious age of the Mac Pro 5.1s, someone or at least a group of someones are/is still throwing bones to the community at large by providing updates for the Mac Pros 8 years after their release, an unprecedented olive branch. Developer Previews often carry updates both good and bad, so I recommend most users not use the Developer Previews of Mojave. Both 10.13 and 10.14 have been welcome surprises for Mac Pro 5.1 users including firmware updates to enable APFS support, and later NVMe booting. Forum member, Tsialex of MacRumors (one of the experts on Mac Pros on the interwebs) has compiled and maintained a list of Firmware versions for the Mac Pro 5.1. I highly recommend this blog post as I've directly lifted his notes from it, but there's more info at his original blog post. I credit his work below. The BootROMs are distributed as part of the Mac OS upgrades.

    * Mac OS 10.13 (High Sierra), comes bundled with a new EFI update for AFPS bootablility and works with any 5.1 Mac Pros (including previously upgraded 4.1) Mac Pros but requires an EFI bootable graphics card as reported by MacRumors forum posters.

    Clever hardware hackers discovered how to enable bootable NVMe on Mac Pro, it requires making a custom firmware using ROMtool and EXEinject on the 3.1.

    Note: this hack was originally performed on Mac Pro 5,1s but is unnecessary as Apple has released NVMe compatible bootROMs for them. Below is a collection of links related to the bootROM procedure. However, this hack falls into adventure territory, see the Mac Pro 3.1 NVME Drive Natively Booting post below. It’s highly recommended to stay with AHCI SSDs with the Mac Pro 3,1s.

    *** The Mac Pro Firmware upgrade v142.0.0.0 included in the developer preview 4 of MacOS Mojave 10.14.4 (20190304) and 10.14.5 DP1 included a bad BootROM which not part of the regular releases. Users at MacRumors are reporting that the update bricks Mac Pro 5.1s with W3xxx Xeon CPUs. See check your CPU model.

    Useful Links




    OS upgrades

    macOS Mojave Logo

    OS upgrades might seem obvious but the 2006-2007 (1.1 - 2.1) Mac Pros only have 32 Bit EFI and 2008 (3.1) Mac Pros are officially unsupported. The 2009 Mac Pros can be firmware flashed to become 5.1 Mac Pros. The 2010-2012 can run modern OS X natively without nearly the hacking. The 2008 Mac Pros are relatively easy to upgrade although (and this is important), the airport card that the Mac Pro 2008 shipped with is unsupported. You can upgrade the wireless chipset or use PCIe or USB solutions.

    2008-2012 Mac Pros and Catalina

    The Mac Pro 5.1 may finally be dropped from Apple's support list (this is subject to change as the first beta of Mojave did not include 5.1 support). Never one to be stopped, DosDude1's Catalina beta enables Mac OS 10.15 Catalina support, or you can follow the MacRumors: What you need to do to make Catalina work with MacPro5,1 for a more nuts and bolts approach.

    2006-2007 Mac Pro

    The Mac Pro 2006s can run 10.11.6, but there are some hoops to jump through, notably a video card with at least 512 MB of VRAM and you'll need Captain Pike's Script which takes a lot of the leg work out. Also, wifi will be unsupported with the old chipset, but the Airport can be upgraded.

    2008 Mac Pro 3.1s And 10.13/10.14/10.15

    The Mac Pro 3.1s do not need the 32 bit EFI workaround which means mostly a native experience. The default wifi chipset isn't supported, but the Airport cards can be replaced, see Bluetooth/Wireless upgrades for details.,/p>

    10.14 Mojave: The AMD drivers for off-the-shelf cards (like the Vega and Radeon 5xx series) do not support the Mac Pro 3.1 in Mojave, but can be used with Netkas patched AMD METAL drivers. Off-the-shelf NVidia cards also aren't supported in Mojave. Thus the Mac Pro 3.1 means tracking down a Metal compatible GPU or using the AMD drivers by netkas. The current favorite GPU for Mojave and Mac Pro 3.1s is a GeForce GTX 680, which has native Mojave support, can be flashed and works with the Mac Pro 3.1 although the Radeon 580x is now gaining traction.

    Upgrade to High Sierra without APFS

    For many pros using legacy apps, High Sierra can wreak havoc on support. Many users have chosen to continue using HFS+ as it ensures compatibility with some legacy applications. Note: for Mac Pro 5,1 users, this can interfere with later firmware updates, MacProUpgrade group members for instance, report that Updating to 10.4.5 firmware won't install with HFS+ on the boot drive.

    2010-2012 Mac Pro 5.1s And Mojave

    The Mac Pro 5.1s (including 2009 Mac Pros updated to a 5.1) can install 10.14 Mojave with one major caveat; they require a Metal compatible GPU and strangely will not allow installation to occur if there are any GPUs that aren't Metal compatible, such as the GT120. Updating requires pulling non-Metal accelerated GPUs (they can be installed after the update and will still output video). Apple published a partial list Metal-Capable Cards Compatible With macOS Mojave on 2010 and 2012 Mac Pro Models, but this does not include the NVidia cards that work with web drivers. Currently, NVidia users are waiting for NVidia to release official drivers, but we're currently at statemate with NVidia suggesting the lack of driver updates is (unsurprisingly) Apple's fault. See Apple's official, Install macOS 10.14 Mojave on Mac Pro (Mid 2010) and Mac Pro (Mid 2012) article for more info.

    It's worth mentioning there is a petition for Apple to allow NVidia release drivers for Mac OS 10.14 Mojave. I signed it, but I can't say I'm hopeful.

    Warning About Developer Previews in 10.14.x: Firmware updates are distributed with Developer previews for the Mac Pro 5.1s, one version of the firmware bricked Mac Pros running a fairly uncommon CPU configuration. See the Firmware Upgrades section for more info.

    Stop the "Upgrade to MacOS..." banners

    Apple in the past few years has moved to nagware for OS updates, often pestering users running non-compatible configurations to upgrade (such as running a non-Mojave compatible GPU). You can disable the notifications following osxdaily's handy guide.




    CPU Upgrades

    Xeon 5690

    I sourced the information from MacRumors, so all credit goes to the community there and forum member ActionableMango for compiling this list, this is truncated to the most important bits of information. Also, 4.1/5.1 Mac Pro 1x to 2x CPU upgrades requires a CPU tray capable of housing two CPUs which often cost as much as the computer itself.

    Mac Pro 2009 / 2010 / Mac Pro 2012 (4.1, 5.1)

    Mac Pros maximum RAM depends on the CPU configuration in a Mac Pro. Dual CPUs enable more than 2x the maximum RAM. Not all Xeons sold are dual CPU compatible thus cannot be pair with another CPU. i7 CPUs cannot be paired together. The CPUs must be the same, and installing a single CPU causes an error state. Also, go to the original thread to read up on 4.1 Mac Pro dual CPU upgrades.

    • 56GB in a single-processor Mac Pro using a single-processor-compatible Xeon
    • 64GB in a single-processor Mac Pro using a dual-processor-compatible Xeon
    • 160GB in a dual-processor Mac Pro

    ✔️* = Requires Mac Pro 4.1 -> 5.1 firmware upgrade. 4.1 dual CPU -> 5.1 Dual CPU upgrades require the process of delidding the CPUs to deal with the height difference. 5.1 Mac Pros use regular CPUs. The process of delidding can be performed manually or bought pre-delidded. Most users elect to delid the CPUs themselves based on forums.

    🚫 = The X5687 despite being socket compatible does not work with the Mac Pro 4.1/5.1. Recently there's been interest in a few Mac Pro communities, but it's already been confirmed by a bold Mac Rumors poster. There's some misinformation on a few other sites like pindelski.org's guide (a dated early attempt at a comprehensive Mac Pro upgrade guide) so be careful.

    Architecture Cores Grade CPU-Model GHz Turbo RAM Watt MP4,1 MP5,1
    Westmere 6 core Dual Xeon X5690 3.46 3.73 1333 130W ✔️* ✔️
    Westmere 6 core Dual Xeon X5680 3.33 3.60 1333 130W ✔️* ✔️
    Westmere 6 core Dual Xeon X5679 3.20 3.60 1066 115W ✔️* ✔️
    Westmere 6 core Dual Xeon X5675 3.06 3.46 1333 95W ✔️* ✔️
    Westmere 6 core Dual Xeon X5670 2.93 3.33 1333 95W ✔️* ✔️
    Westmere 6 core Dual Xeon X5660 2.80 3.20 1333 95W ✔️* ✔️
    Westmere 6 core Dual Xeon X5650 2.66 3.06 1333 95W ✔️* ✔️
    Westmere 6 core Dual Xeon E5659 2.53 2.80 1333 80W ✔️* ✔️
    Westmere 6 core Dual Xeon E5645 2.40 2.67 1333 80W ✔️* ✔️
    Westmere 6 core Dual Xeon L5639 2.13 2.67 1333 60W ✔️* ✔️
    Gulftown 6 core Xeon W3690 3.46 3.73 1333 130W ✔️* ✔️
    Westmere 6 core Xeon W3680 3.33 3.60 1333 130W ✔️* ✔️
    Westmere 6 core Xeon W3670 3.20 3.46 1066 130W ✔️* ✔️
    Gulftown 6 core Consumer i7 990X 3.46 3.73 1066 130W ✔️* ✔️
    Gulftown 6 core Consumer i7 980X 3.33 3.60 1066 130W ✔️* ✔️
    Gulftown 6 core Consumer i7 970 3.20 3.46 1066 130W ✔️* ✔️
    Westmere 4 core Dual Xeon X5687 3.60 3.86 1333 130W 🚫 🚫
    Westmere 4 core Dual Xeon X5677 3.46 3.73 1333 130W ✔️* ✔️
    Westmere 4 core Dual Xeon X5672 3.20 3.60 1333 95W ✔️* ✔️
    Westmere 4 core Dual Xeon X5667 3.06 3.46 1333 95W ✔️* ✔️
    Westmere 4 core Dual Xeon X5647 2.93 3.20 1066 130W ✔️* ✔️
    Westmere 4 core Dual Xeon E5640 2.66 2.93 1066 80W ✔️* ✔️
    Westmere 4 core Dual Xeon E5630 2.53 2.80 1066 80W ✔️* ✔️
    Westmere 4 core Dual Xeon E5620 2.40 2.66 1066 80W ✔️* ✔️
    Westmere 2 core Dual Xeon X5698 4.40 4.54 1333 130W 🚫 🚫
    Nehalem 4 core Dual Xeon W5590 3.33 3.60 1333 130W ✔️ ✔️
    Nehalem 4 core Dual Xeon W5580 3.20 3.46 1333 130W ✔️ ✔️
    Nehalem 4 core Dual Xeon X5570 2.93 3.33 1333 95W ✔️ ✔️
    Nehalem 4 core Dual Xeon X5560 2.80 3.20 1333 95W ✔️ ✔️
    Nehalem 4 core Dual Xeon X5550 2.66 3.06 1333 95W ✔️ ✔️
    Nehalem 4 core Dual Xeon E5540 2.53 2.80 1066 80W ✔️ ✔️
    Nehalem 4 core Dual Xeon E5530 2.40 2.66 1066 80W ✔️ ✔️
    Nehalem 4 core Dual Xeon E5520 2.26 2.53 1066 80W ✔️ ✔️
    Nehalem 4 core Xeon W3580 3.33 3.60 1333 130W ✔️ ✔️
    Nehalem 4 core Xeon W3570 3.20 3.46 1333 130W ✔️ ✔️
    Nehalem 4 core Xeon W3565 3.20 3.46 1066 130W ✔️ ✔️
    Nehalem 4 core Xeon W3540 2.93 3.20 1066 130W ✔️ ✔️
    Nehalem 4 core Xeon W3530 2.80 3.06 1066 130W ✔️ ✔️
    Nehalem 4 core Xeon W3520 2.66 2.93 1066 130W ✔️ ✔️
    Nehalem 4 core Consumer i7 975 3.33 3.60 1066 130W ✔️ ✔️
    Nehalem 4 core Consumer i7 965 3.20 3.46 1066 130W ✔️ ✔️
    Nehalem 4 core Consumer i7 960 3.20 3.46 1066 130W ✔️ ✔️
    Nehalem 4 core Consumer i7 950 3.06 3.33 1066 130W ✔️ ✔️
    Nehalem 4 core Consumer i7 940 2.93 3.20 1066 130W ✔️ ✔️
    Nehalem 4 core Consumer i7 930 2.80 3.06 1066 130W ✔️ ✔️
    Nehalem 4 core Consumer i7 920 2.66 2.93 1066 130W ✔️ ✔️

    Mac Pro 2008 (3.1)

    The 2008 Mac Pros have the least CPU options, and with the base CPU configuration from Apple, the 2x quad core 2.8 GHz Mac Pro makes for exceptionally modest gains in the benchmark department.

    Architecture Cores Grade CPU-Model GHz RAM Watt MP3,1
    Harpertown 4 core Dual Xeon X5482 3.2 800 150W ✔️
    Harpertown 4 core Dual Xeon X5460 3.16 667 120W ✔️
    Harpertown 4 core Dual Xeon E5472 3.0 800 80W ✔️
    Harpertown 4 core Dual Xeon X5472 3.0 800 120W ✔️
    Harpertown 4 core Dual Xeon X5450 3.0 667 120W ✔️
    Harpertown 4 core Dual Xeon E5450 3.0 667 80W ✔️
    Harpertown 4 core Dual Xeon E5440 2.83 667 80W ✔️
    Harpertown 4 core Dual Xeon E5462 2.8 800 80W ✔️
    Wolfdale 2 core Dual Xeon X5272 3.40 800 80W ✔️
    Wolfdale 2 core Dual Xeon X5260 3.33 667 80W ✔️

    Mac Pro 2006-2007 (1.1, 2.1)

    The Mac Pro 1.1s with a firmware upgrade can use a wide array of CPUs, making it the second most upgradable in the series of Mac Pros.

    Architecture Cores Grade CPU-Model GHz RAM Watt Min
    Firm-
    ware
    Clovertown 4 core Dual Xeon X5365 3.0 667 150W 2.1
    Clovertown 4 core Dual Xeon X5365 3.0 667 120W 2.1
    Clovertown 4 core Dual Xeon X5355 2.66 667 120W 2.1
    Clovertown 4 core Dual Xeon X5355 2.66 667 120W 2.1
    Clovertown 4 core Dual Xeon X5355 2.66 667 120W 2.1
    Clovertown 4 core Dual Xeon E5345 2.33 667 80W 2.1
    Clovertown 4 core Dual Xeon E5345 2.33 667 80W 2.1
    Clovertown 4 core Dual Xeon E5345 2.33 667 80W 2.1
    Clovertown 4 core Dual Xeon E5340 2.4 533 80W 2.1
    Clovertown 4 core Dual Xeon E5340 2.4 667 80W 2.1
    Clovertown 4 core Dual Xeon L5335 2.0 667 50W 2.1
    Clovertown 4 core Dual Xeon L5320 1.86 533 50W 2.1
    Clovertown 4 core Dual Xeon L5320 1.86 533 50W 2.1
    Clovertown 4 core Dual Xeon L5320 1.86 533 50W 2.1
    Clovertown 4 core Dual Xeon E5320 1.86 533 80W 2.1
    Clovertown 4 core Dual Xeon E5320 1.86 533 80W 2.1
    Clovertown 4 core Dual Xeon E5320 1.86 533 80W 2.1
    Woodcrest 2 core Dual Xeon 5160 3.0 667 80W 1.1
    Woodcrest 2 core Dual Xeon 5160 3.0 667 80W 1.1
    Woodcrest 2 core Dual Xeon 5160 3.0 667 65W 1.1
    Woodcrest 2 core Dual Xeon 5150 2.66 667 65W 1.1
    Woodcrest 2 core Dual Xeon 5150 2.66 667 65W 1.1
    Woodcrest 2 core Dual Xeon 5150 2.66 667 65W 1.1
    Woodcrest 2 core Dual Xeon 5130 2.0 667 65W 1.1
    Woodcrest 2 core Dual Xeon 5130 2.0 667 65W 1.1
    Woodcrest 2 core Dual Xeon 5130 2.0 667 65W 1.1

    Check your Exact CPU Model

    You can check your CPU Model number using the terminal command:

    sysctl -n machdep.cpu.brand_string  

    Guides on Upgrading CPUs

    Microarchitectural Data Sampling (MDS) vulnerabilities

    A vulnerability Intel CPUs was discovered, called MDS which targets hyperthreading (the ability to address two instructions in a single CPU cycle under stress loads). It affects CPUs from 2008+. Intel issued a microcode fix for CPUs designed in 2013 and up, leaving out the classic Mac Pros. Apple has updated Safari to prevent drive-by Javascript attacks. Using general safe browsing habits, makes it not very likely that this exploit will affect users despite very sensational headlines like Wired's Meltdown Redux: Intel flaw lets hackers siphon secrets from millions of PCs.The only way to ensure total safety is to disable Hyper-Threading (a significant performance hit), and Apple issued the article How to enable full mitigation for Microarchitectural Data Sampling (MDS) vulnerabilities.




    GPU upgrades

    GeForce GTX 1080

    Thanks to PCIe, the Mac Pros have remained relevant as GPUs can be swapped out with ease. GPUs are probably the most annoying of the upgrades (due to the required research) yet one of the most commonly performed. There's no modern GPU you can buy for macOS that supports an EFI boot screen (the screen you see when you turn on the computer with the Apple logo or boot manager before the login screen) and macOS Mojave that is aftermarket. This could change but has not yet. When I originally wrote my first Mac Pro Upgrade guide four years ago, readers found it surprising that one could use off-the-shelf Nvidia cards. I tested a GeForce 760 Hackintosh vs. my Mac Pro outlined the installation process 2008 Mac Pro Full Instructions and benchmarks here, and an upgrade guide outlining how to install a GeForce 1060 into a Mac Pro 5.1. This, in the long run, has been a mistake, now that the only off the shelf cards supported in 10.14.x are AMD.

    Dividing Up The GPU landscape

    GPUs are routinely one of the most common upgrades to Mac Pros. There are roughly three classes of GPUs. Thus I've divided the bulk of the GPU Guide to discussing GPUs based on the following distinctions.

    • OEM EFI Bootable Cards / Aftermarket EFI Bootable: GPUs that are Mac Native - GPUs that out-of-the-box will display the Mac OS boot screen and do not require additional drivers if the minimum OS is met.*
    • Flashable to EFI compatible cards: These are graphics cards that shipped as a PC graphics card but require a ROM flash to display the EFI Boot screen, some may not work at all without first installing the Mac compatible ROM on them.
    • Non-EFI Bootable Cards: Graphics cards that can be used in macOS but will not display the boot screen and may require (in the case of Nvidia) additional drivers to output video

    After that, we have two more sub-classes of GPU based on support for Metal, Apple's replacement for OpenGL.

    • GPUs with Metal drivers for 10.14.x+
    • GPUs that do not support Metal

    To summarize, a GPU can be, OEM EFI compatible, flashable to EFI compatible or not EFI compatible but still work under Mac OS, and it may or may not be Mojave compatible.

    *The NVidia RTX series will output the EFI bootscreen but do not have drivers. If this ever is sorted, we might have an aftermarket EFI bootscreen card.

    There's some overlap between the last two types of cards. Generally, anyone running a non-EFI compatible boot screen will want to keep an EFI compatible card around for OS upgrades as OS upgrades can stop an NVidia card that isn't Mac OS native from displaying video until the proper drivers are installed. This might sound undesirable but, with the gains of the NVidia cards, most users are willing to forgo the inconvenience, self-included. I've been in all camps, originally using a GeForce GTX 8800, flashing an ATI Radeon HD 6870 to Mac Native EFI and then landing on the GeForce 760 and 1060.

    Lastly, the superpower hungry GPUs (the GeForce 1080 Ti, AMD Vega 64) can be powered by the Mac Pro PSU but require the Mac Pro Pixlas Mod (also covered in the Other mods section of this guide). Users have successfully powered two GeForce 1080 TIs using the Pixlas mod and (possibly upgraded) internal PSU.

    OEM EFI Bootable Cards / Aftermarket EFI Bootable

    EFI compatible cards that have a native Mac version: Mostly OEM cards although with a few notable aftermarket cards that included EFI Roms on the cards. The PC versions do not have EFI support.

    DL DIV - Dual Link DVI
    SL DIV - Single Link DVI
    DP - Display Port
    * Pirated Mac Vid Cards ROM, see changelog for details

    NVidia
    NVIDIA GeForce 7300 GT 256 MB GDDR2 1 SL DVI 1 DL DVI
    NVIDIA GeForce GT 120 512 MB GDDR3 1 Mini DP 1 DL DVI
    NVIDIA GeForce 8800 GT 512 MB GDDR3 2 DL DVI
    NVIDIA Quadro FX 4500 512 MB 1 DL DVI 1 DP
    NVIDIA Quadro FX 4800 1.5 GB GDDR5 2 DL DVI
    NVIDIA Quadro 4000 2 GB GDDR5 1 DL DVI 1 DP
    NVIDIA Quadro FX 5600 1.5 GB GDDR3 2 DL DVI Stereo 3D
    EVGA GeForce GTX 680 2 GB GDDR5 1 HDMI 1 DP 1 DVI-I 1 DVI-D
    PNY NVIDIA Quadro K5000 4 GB GDDR5 2 DVI 2 DP
    NVIDIA Quadro K4200 (Mac Edition) 8 GB GDDR5 2 DVI 2 DP?
    NVIDIA Quadro K5200 (Mac Edition) 4 GB GDDR5 2 DVI 2 DP?
    NVIDIA GeForce GTX 780 * 3 GB / 6 GB GDDR5 1 DL DVI, 1 HDMI, 1 DP
    NVIDIA GeForce GTX Titan * 6 GB GDDR5 1 DL DVI 1 HDMI 1 DP
    NVIDIA GeForce GTX Titan X * 12 GB GDDR5 1 DVI 1 HDMI 1 Triple DP
    ATI/AMD

    ATI was purchased by AMD in 2006 and in 2010 retired the ATI name.

    ATI Radeon HD 2600 XT 256 MB GDDR2 1 SL DVI 1 DL DV
    ATI Radeon X1900 XT 512 MB GDDR3 2 DL DVI
    ATI Radeon HD 4870 512 MB GDDR5 1 Mini DP 1 DL DVI
    ATI Radeon HD 5770 1 GB GDDR5 2 Mini DP 1 DL DVI
    ATI Radeon HD 5870 1 GB GDDR5 2 Mini DP 1 DL DVI
    Amd Firepro S10000 6 GB GDDR5 1 DP 1 DL DVI

    Flashable to EFI compatible cards

    The most commonly flashable video cards are ones that have a Mac equivalent that was either sold by Apple as OEM or aftermarket, and the ROMs then were distributed on the open market, a few cards require physical modification. The advantage is once the ROM is installed, the card acts/behaves like a native card, but means some additional functionality might be lost (cards that have extra video output ports may not work). Below are software-only flashable cards. I used for years an ATI Radeon 6870.

    Non-EFI Bootable Cards

    NVidia has chosen to write drivers (labeled "web drivers" as macOS is distributed with NVidia drivers for Mac EFI cards) for their video cards so that off the shelf cards can be used in Mac Pros . However, without a Mac compatible EFI ROM, they cannot display video at boot and do not output video until the driver has loaded. With the NVidia video cards, even security updates can require a web driver update, meaning if you update, next boot will not output video until the driver has been updated. All the GTX 700-1000 series are supported by web drivers but are limited to 10.13.x as NVidia has stated Apple is refusing to sign its drivers. Also, some of the AMD cards are plug and play, specifically the Sapphire RX PULSE series, meaning that even after OS updates, the cards will output video without any driver updates, unlike Nvidia cards. However, neither AMD or NVidia cards will output video at the EFI boot screen, and video will not start until the drivers have loaded (roughly right before the login screen).

    image

    Photo Credit: Amazon.com

    For the best info on recommended versions of AMD cards, visit AMD Polaris & Vega GPU macOS Support.

    Recently in Mojave, updates have enabled hardware acceleration for video codecs on the RX580. You can read about it here and find full instructions to Activate AMD hardware acceleration. (Thanks for Martin L. aka h9826790).

    AMD Vega loud idling

    Some of the Vega GPUs suffer loud idling speeds under older versions of Mac OS although that may not resolve it. Many of the cards can be flashed to different bios. See the first post in the thread (down towards the bottom) MacRumors: AMD Polaris & Vega GPU macOS Support.

    Petitioning for drivers

    With the advent of 10.14 Mojave, OpenGL has been deprecated and replaced with Apple's Metal library for GPU acceleration. This now means Mojave requires (to some degree), Metal compatible GPUs, AMD's modern Radeons and select NVidia cards both make the cut. Apple published an official list but did not list all compatible GPUs for Mojave. Notably, NVidia's line up of GTX 700-1000 and RTX series aren't Mojave compatible.

    Currently, NVidia blames Apple for not approving its drivers for Mojave.

    As an act of desperation, fans have created a petition for Apple to allow NVidia to release drivers for Mac OS 10.14 Mojave. I've signed it, and I suggest others do too, even if non-NVidia users as options matter. I doubt it'll shift the tide, but a long-shot is better than no-shot. One of the rumors was that this was fought is over the Volta GPU drivers. This rumor gained a lot of traction since the last released version of the NVidia drivers, 387.10.10.15.15.108 were pulled (for 10.13), and on December 10th, NVidia posted an update for 10.13 (not Mojave) for the last release of 10.13 marked version 387.10.10.10.40.113 that MacRumors readers are confirming do not contain the Volta drivers.

    NVidia RTX series: as of writing this, users are reporting that the RTX NVidia cards are displaying bootscreens in macOS. That said, without Mojave support for off-the-self NVidia cards, this severely limits the impact and do not currently have drivers for the macOS. (They will show up as a generic VGA output).

    NVidia Webdriver Manual Installation

    NVidia driver installation is a little more tricky than one would expect, first off NVidia does not list what cards are currently supported on its web pages. Secondly, you need to download the correct version of the drivers for whatever version of Mac OS you have.

    TonyMacX86 forums do an excellent job of direct linking to the NVidia installers for driver version number by OS version. Currently, 10.14.x (Mojave) is not supported. The NVidia RTX series is also currently unsupported.

    Note about SLI: Currently, there isn't any SLI support under macOS, and this seems unlikely to change. Windows, however, will support SLI in a Mac Pro.

    NVidia Driver Automatic Installation

    Seeing the above mess of information and the corresponding versions of drivers, Benjamin Dobell wrote a CLI utility to install the Mac NVidia drivers that work for your system, as described as "This script installs the best (not necessarily the latest) official NVidia web drivers for your system." Go to GitHub: NVidia Update.

    Useful Links

    AMD GPUs and Mac Pro 3.1s and below

    Several MacRumors forum members have found that Mac Pro 3.1s cannot use the AMD RX580 due to the drivers requiring SSE4.2 instruction set requirements for Mojave. However, and this is a big one, Netkas has been able to get the RX560 working in a Mac Pro 3.1 by adding in inline emulation for the SSE4.2 instruction for the drivers. Any of the AMD Polaris cards now are Mac Pro 3.1 compatible See the full list here.

    HDMI (and Display Port) Audio

    Many modern graphics cards have HDMI and thus capable of outputting audio. There's a very long thread of intrepid hackers at Mac Rumors.

    Custom Flashed Cards: Depending on how much time you've spent researching upgrades, you may have read about the website/business, MacVidCards. MacVidCards sells custom flashed EFI NVidia cards (the 1000 series), but I hesitate to link directly to their site as several FaceBook/MacRumors posts have been lukewarm. The cards do work but the turn-around times are long, communication infrequent and the prices are high, but they appear to be legitimate, with many testimonials floating around message boards from longtime members that they do indeed work as promised. MacVidCards claims to have written a custom EFI ROM. Rather than collaboratively explain how said hack was done (Unlike previous releases TonyMacX86 / MacRumors / Netkas), MacVidCards chooses to be a monopoly. (Note: Dave of MacVidCards notes he did contribute on previous AMD card hacks) I'd rather not weigh too much on the ethics on it, but software developers do deserve compensation, and depending on the actual work performed on the EFI ROM, it may very well be truly custom. As of writing this, they are the only game in town when it comes to making the NVidia 1000 series cards Mac EFI compatible. I suggest googling for them, and let you be the judge if its worth the cost. Update: Also, I have to note that, after reading the previous statement, Dave of MacVidCards reached out to me and also corrected on errors found on this page. So if nothing else, my experience with MacVidCards has been fair in my limited dealings with them considering my hesitation in recommending them.

    Which card should buy?

    There isn't a "best card" for any computer, rather how much money you're willing to spend and if the money could be better spent elsewhere. This is an arbitrary metric as even a 3.1 Mac Pro will see significant gains in GPU tasks, with a GeForce 1080 Ti over lesser cards (for example, a GeForce 1070). Consider this: GeForce 1080 Ti sells for many times more than a Mac Pro 3.1 itself. Commonly, forums and groups will mention "pairs well," or "bottleneck" but any high-end GPU will "pair well," the question is more about where a user can see more performance gains. I'd argue buying a 4.1 Mac Pro, and mid-range GPU would be better money spent as it'd feel faster for many day-to-day experiences and is very upgradable and requires fewer hacks to run later OSes, but that's just my personal opinion.

    The next question is, do you want an EFI native card? There are few cards that support the EFI boot screen, and they are all older generation cards. Most users elect to hold onto an older card as a backup, for the EFI screen. I personally have a GT120 in my Mac Pro at all times for this reason.

    Lastly, there's Mojave to contend with. According to NVidia, Apple is blocking NVidia from releasing drivers for Mojave. This means its AMD or bust. AMD Saphire RX 580x Pulse is well regarded, and so are the Vega series for Mojave users, however, neither have EFI support, but the drivers for the AMD cards do not support Mac Pro 3.1s

    • Mac Pro 1.1/2.1 users are limited to a maximum of running Mac OS 10.11.x, thus do not have to worry about the lack of NVidia support in Mojave. 1.1/2.1 users should consider the GeForce 680 for EFI boot screen support or GeForce 7xx or 9xx series.
    • Mac Pro 3.1 users should consider GeForce 680 For Mojave. They are one of the few cards that can be flashed for EFI support and support Metal and the Mac Pro 3.1. Notably: The AMD cards with a hack can be enabled by special drivers that enable SSE 4.2 emulation.
    • Mac Pro 5.1 users should consider the AMD 580x or Vega series. The 580x is relatively inexpensive and does not require any modifications to power the GPU, whereas the top tier Vegas are power-hungry but the most performant GPUs supported in Mojave.

    Installing a GPU

    GPUs are straight forward to install except two minor "gotcha"s, they use Mini PCIe power adapters on the motherboard and for exceptionally power-hungry 250+ watt GPUs (GeForce 1080 Ti, Radeon Vega 64, Radeon VII, etc.), require modification to power the cards. See the Mac Pro Pixlas PSU Mod or External Power Supplies sections of this guide for more information.

    As mentioned above, the Mac Pro has two 6 pin mini-PCIe power ports, which require mini-PCIe to PCIe power cables. For reference, here are examples of a mini PCIe 6 pin to PCIe Power cable and a mini PCIe 6 pin to PCIe 8 pin cable. These are likely required to power your GPU. Example, a GPU that has an 6 pin power port and an 8 pin power port would require one of each cable.

    I wrote two guides blog.greggant.com: Installing GeForce GTX 760/770/780 on a Mac Pro 3.1 and blog.greggant.com: Installing GeForce GTX 1060/1070/1080 on a Mac Pro 5.1 which both detail the installation process.




    I/O Upgrades

    USB 3.0 Card

    The Mac Pros can support many more cards than listed here, but these are all common cards, NewerTech and Sonnet are reliable. Not all cards are equal, some are more performant, in the case of USB 3.0/3.1 offering full-duplex per port instead of shared bandwidth. Also, some non-listed cards have issues. I had an off-brand Inateck PCI-E to USB 3.0 which worked but also caused a reboot loop when trying to shut down. The only way to turn off my Mac Pro was to hold down the power key forcibly. I personally use an SYBA SY-PEX40039 SATA card as my bootable SSD for my Samsung Evo. I've elected not to include USB 2.0 only or Gigabit Ethernet-only or SATA II only cards as all are found natively on all versions of the classic Mac Pros.

    Note: This is not to be taken as a complete list, but rather a list of known working cards that users have confirmed. If you know of a card that's supported by macOS, please reach out to me.

    USB 3.0

    • Sonnet Allegro USB 3.0 / Sonnet Allegro Pro
    • Inateck KT4004
    • RocketU 1144D / HighPoint RocketU 1144C
    • HighPoint RocketU 1144E
    • CalDigit FASTA-6GU3 Pro (Discontinued)
    • HighPoint RocketU 1144CM -
    • Inateck PCI-E to USB 3.0 - (Caused Reboot loop in 2008 Mac Pro)
    • Sonnet Technologies Tempo Duo PCIe (2x eSATA / 2x USB 3.0) - (discontinued)
    • Newer Technology MAXPower 2 port eSATA 6/GBs & 2 Port USB 3.0

    SATA/eSATA

    Note: Not all SATA cards are bootable on OS X. Currently, the list is expanding, non-bootable cards will be listed as such. Known bootable cards will be listed as such. If no notes appear, it's because I haven't researched this yet.

    • NewerTech MAXPower PCIe eSATA 6G Controller - Bootable
    • MAXPower 4-port eSATA 6G PCIe 2.0 - (bootable)
    • MAXPowereSATA 6G PCIe 2.0 RAID 0/1/5/10
    • MAXPower RAID mini-SAS 6G-2e2i
    • Sonnet Technologies Tempo SATA Pro - Bootable
    • Sonnet Technologies Tempo SATA E2P
    • Sonnet Technologies Tempo SATA 6Gb/s PCIe 2.0 - (discontinued)
    • Sonnet Technologies Tempo SATA Pro 6Gb PCIe 2.0 - (discontinued)
    • SYBA SY-PEX40039 SATA III
    • HighPoint Rocket 620 2 SATA
    • ORICO PFU3-4P 3 Port
    • ATTO ExpressSAS H680 Low-Profile x8-External Port
    • ATTO ExpressSAS H644 Low-Profile 4-Internal/4-External Port
    • ATTO ExpressSAS H6F0 16-External

    Firewire

    • Sonnet Technologies Tango Express Combo FireWire 400/USB 2.0 Card
    • Sonnet Technologies Allegro FireWire 800 PCIe
    • Sonnet Technologies Allegro FW400 PCIe - (discontinued)

    USB 3.1

    • MAXPower 4-Port USB 3.1 Gen 1
    • Sonnet Technologies Allegro USB-C
    • StarTech 4-Port USB 3.1 (10Gbps) Card PEXUSB314A2V
    • Aukey B01AAETL6Y 2 port USB 3.1
    • CalDigit FASTA-6GU3 Plus (USB 3.1 / 2x eSATA)
    • Sonnet Technologies Allegro™ Pro USB 3.1 PCIe
    • Sonnet Technologies Allegro USB-C 4-Port PCIe

    Ethernet (10 Gigabit)

    Useful Links




    Thunderbolt?

    In the unlikeliest turn of events, Thunderbolt has landed on the cMac Pro... sort of. PCIe Thunderbolt cards were exclusively for PCs that have compatible motherboards with specialized chipsets, generally requiring a pass-through jumper connection. The original speculation started at eGPU.io.

    Shortly after, MacRumors Forum members started testing the Gigabyte GC-TITAN RIDGE and getting promising results. Since then, a member of Mac Pro Upgrade and MacRumors posted a screenshot of ThunderBolt working on a cMac Pro using a digital audio interface and posted two YouTube videos Part 1 and Part 2 demoing his setup using Windows 10.

    The only way currently to use a Thunderbolt 3 card is to cold-boot to Windows 10. Initialize the Thunderbolt 3 card, then reboot to Mac OS. If you shut down/reboot your computer, you will have to repeat the process. Also, only some Thunderbolt 3 devices work, such as audio interfaces.

    Right now, it isn't very viable for all but tinkerers to purchase a Thunderbolt card, but this may change. As notable progress unfolds, this section will be updated to reflect it. For now, it's best to see the action on MacProUpgrade and MacRumors' forums.

    That said, the Mac Pros can be upgraded to USB 3.1c without any complicated work-arounds, and some of the Thunderbolt 3 devices on the market are also backwards compatible with USB3.1c.




    Storage Upgrades

    The classic Mac Pros carried onboard only SATA 2 and (ATA for 1.1-3.1) which has a limit of 300 MB/s, which far less than what modern SSDs can tap. The Mac Pros can use SATA SSDs without any special modifications, with the caveat that read/write speeds are significantly lower than their potential max speeds. SATA2 still won't be fully saturated even by performant 3.5 spinning disk drives the current gen 3.5 drives like the Western Digital Black drives. For those looking to sacrifice ports, OWC made a series of multi-mounts to go inside the dual 5.25 drive bays for 3.5 and 2.5-inch drives. SATA HDDs are still the best value price-per-gigabyte, and I highly encourage all users to use Time Machine.

    SSDs come in multiple flavors: SATA, AHCI and NVMe

    PCIe SATA + SSD Sleds

    Historically, The most popular upgrades are PCIe sleds for SATA SSDs, which often feature two trays for RAID0 configurations, bringing up the speeds to the 1 GB/s range. These are essentially a SATA 3 card with two mounting ports for 2.5-inch SSDs, making it more convenient than using a regular SATA 3 card. That said, users can still use PCIe SATA 3 cards + SATA SSD drives.

    The 1.1, 2.1 and 3.1 Mac Pros also have two extra SATA ports hidden on the motherboards, which while a royal pain in the ass to access, can be routed up to the optical bay for modders looking for more SATA storage or replace optical bays with SATA variants. 4.1/5.1 Mac Pros removed ATA and thus have SATA accessible. Newer Technology made an eSATA Extender Cable Adapter specifically for users looking to make eSATA ports out of the hidden ports, but blocking off a PCIe port in the process.

    Also worth noting both OWC and Newer Technology make 2.5 -> 3.5 speeds for the drive bays found in Mac Pros although I can attest for two years of not using a sled that they are optional if you rarely move your Mac Pro.

    • Sonnet Technologies Tempo SSD (2x 2.5 SSD) - bootable
    • OWC Accelsior series - bootable *
    • OWC Accelsior S: PCIe to 2.5" 6Gb/s SATA SSD Host Adapter * Not APFS compatible
    • Sonnet Technologies Tempo SSD 6Gb/s SATA PCIe 2.5" SSD Host Adapter
    • Sonnet Technologies Tempo SSD Pro Plus 6Gb/s eSATA / SATA PCIe 2.5" SSD Host Adapter

    Useful Links

    PCIe AHCI SSD

    Without any firmware modification, OS X can boot AHCI SSDs which faster than the standard SATA drives via PCIe sleds offering significantly faster speeds, often double that of SATA SSDs but tend to cap out at 1500 MB/s (usually more roughly in the 1 GB/s mark). Many of the NVMe cards can accept AHCI. However, due to the speed limitations, there aren't many models on the market, and the price per GB tends to be high.

    AHCI (Advanced Host Controller Interface) is what the SATA standard is based on although, PCIe AHCI interfaces can exceed SATA3 speeds.

    Credit goes to MisterAndrew for doing the original compiling of this list here.

    • Angelbird Wings PX1 PCIe - (Bootable only with AHCI or Fusion drive if using NVMe)
    • Lycom DT-120 (bootable, not AHCI specific)
    • Sintech Apple PCIe
    • Kingstone Predator Ahci SSD
    • Amfeltec SQUID series (4x AHCI or NVMe M.2) - Must be Gen2
    • Highpoint 7101a (M.2)

    PCIe NVMe sleds/blades

    NVMe (Non-Volatile Memory Express) is currently the holy grail of storage due to its extreme performance. For example, the 970 Evo by Samsung attains incredible 2237 MB/s reads, and 1405 MB/s writes, roughly triple to quadruple the read/writes of SATA (and often nearly double of AHCI PCIe SSD), and NVMe tends to sport faster 4k Random read/write times. NVMe was constructed to work only via the PCIe standard; thus it's speed advantage over AHCI.

    NVMe wasn't always supported under OS X. NVMe (NVM Express) support started with the appropriate PCIe sleds under 10.13 with the glaring issue of only being read/writable but not bootable. Clever users found workarounds. They discovered that creating a Fusion Drive with NVMe, with only the boot record on the AHCI storage (it can be a thumb drive) allowed for NVMe boots allowing Mac Pros attain the incredible speeds of NVMe (See Fusion Drives section). Then users found using firmware hacking. They could enable NVMe booting by using a firmware hack upgrade. See the entire thread here. Notably, this firmware hack appears to work for 3.1/4.1/5.1 Mac Pros. The latest Mac Pro 5.1 bios have NVMe support. See below for more details.

    PCIe NVMe sleds aren't all created equal as the performance is limited on the PCIe max slot speed (and which slot the card is placed in the Mac Pro) (see the PCIe and You portion of this guide for more info). Also, some cards can host multiple NVMe SSDs. To make matters more confusing, many PCIe NVMe SSD adapters use bifurcation, which is a technology for later gen PCIe not supported on the Mac, which allows a PCIe slot to be split, example: One 16x port becomes two 8x ports. The Mac Pro is limited 1500 MB/s on a card unless the card uses a PCIe switch. A PCIe 3.0 switch will take a PCIe 2.0 port (the Mac Pros only have 2x), and instead of falling back to PCIe 1.0, swap it to PCIe 2.0, enabling much faster speeds (The 16x port will operate at the equivalent of a 4x PCIe 3.0 slot).

    • Lycom DT-120
    • Angelbirds Wings PX1
    • Aqua Computer kryoM.2 Evo PCIe 3.0 x 4, adapter
    • IO Crest IO-PCE2824-TM2 (aka Syba SI-PEX40129
    • Amfeltec Squid: Amfeltec x16 PCIe
    • Highpoint 7101a

    Not all NVMes are Mac OS compatible, rather than list all that are compatible, here’s a short list of incompatible models as they are few and far between.

    • Samsung 950 PRO
    • Samsung 970 EVO Plus*
    • Samsung PM981

    * The Evo and Evo Pro variants fo the 970 are Mac compatible. There is a firmware update for the Evo Plus that may fix issues.

    Useful Links




    Fusion Drives

    The Fusion Drive once was Apple's solution to mitigating the high cost/low storage space of SSD. The Fusion drive was an OS level pairing between a standard spinning disk SATA drive and an SSD. These days the idea of creating a Fusion drive might seem strange with SSD prices continuing to drop, where the economics of TB sized SSDs are much more attainable.

    Fusion Drives have become en vogue once again thanks to the partial support that earlier version fo MacOS had regarding NVMe. NVMe isn't natively bootable prior to the 140.0.0.0.0 firmware update for the Mac Pro 5.1s, but Fusion drives are.

    Note the following hack is no longer necessary, I'm leaving the information up for posterity and Mac Pro 3.1 users. The hack goes as follows: Disable SIP / Install the hacked NVMe driver for 10.12, (you may still need it for specific brands in 10.13), then a string of installation commands... Rather than re-outline them, the following links are useful.

    Useful Links

    OWC Aura and Accelsior SSDs and APFS

    OWC appears to make the only SSDs that are incompatible with APFS, the default file system for 10.13+. According to the MacRumors forum posters, OWC Aura owners have been offered a rebate on Aura Pro SSDs. The Aura series is unlikely to be found in a cMac Pro setup as it'd require an external case. Users report that Accelsior SSDs work with HFS+ with 10.13.




    Display Upgrades

    The Mac Pro's display limitations are a factor of graphics cards and whatever monitor you can afford. There's a minor caveat that flashed 7950s and 7970s booting with 60 Hz 4k displays will hang, thus must run at 30 Hz at the boot screen. Most 79xx cards have dual ROM so day-to-day the UEFI ROM can function as the card's default which bypasses the boot-screen video output. Also, 4k supported wasn't official until 10.9.3. Forum members at MacRumors have confirmed that 144 Hz 4k displays do work. Notably, older NVidia GPUs with the web drivers will not support 10-bit color, but the latest GPUs do, and the same goes for AMD's. Most displays (especially budget) use Frame Rate Control (FRC) to achieve simulated 10-bit instead of true 10-bit panels, by parsing the 10-bit color stream, and for colors that fall outside the 8-bit range, cycling between near shades of colors within the 8-bit spectrum. This visually creates a simulated 10-bit experience. This is acceptable for many purposes, but film editors and graphic designers may require the accuracy of true 10-bit color.

    Lastly, Mac OS currently does not support Freesync. I can attest that enabling Freesync on a freesync display cause the monitor to stop outputting video in 10.13.x with a GeForce 1060. Also, both tonymacx86 and MacRumors forum members have experienced the same sort of issues. The workaround is to disable the G-sync and freesync if the monitor does not produce any video output.

    Depending on setup 4k @ 60 Hz via HDMI may require workarounds whereas DisplayPort tends to be far more reliable. I've personally used a few 4k displays with my Mac Pro at 60 Hz via DisplayPort.

    Notably, there are users with 5k displays and Mac Pros, including a user confirming two 5k displays working perfectly fine on his Mac Pro.

    Some 4k displays will not report all scaled resolution. To display all the scaled resolution options:

    1. Open preferences and click the Displays
    2. If the option "Default for display" is selected, option-click Scaled
    3. If scaled is already selected, click the "Default for display," then option-click "Scaled."



    Bluetooth / Wireless Upgrades

    The Mac Pros 1.1 - 5.1 all include one mini PCIe slot for Airport cards. The advantage is that you do not have to sacrifice a PCIe slot and upgrade Bluetooth and 802.11 in one upgrade. Any Mac Pro can be upgraded to 802.11 a/b/g/n/ac + Bluetooth 4.0+. I bought a card from osxwifi.com and outlined my experiences here.

    Vendors like OSXWifi sell a mini PCIe to Apple Airport adapter + the Apple Airport BCM94360CD. Each can be bought separately or packaged together. However, more intrepid users have noticed that you can buy for much cheaper, theBroadcom BCM94331CD Mini PCIe to wireless wifi card Adapter Bracket adapter for a Mac Pro 4.1/5.1 and the Mini PCIe Adapter.

    Installing the cards isn't much harder than regular PCIe cards.

    Mac Pro 3.1s looking to keep wifi support for unsupported OSes can keep native wifi / Bluetooth with the BCM94360CD.

    • Apple Broadcom BCM94360CD - 1.1 / 5.1 Mac Pros (The Mac 1.1-3.1s have a Bluetooth antenna that's attachable via USB data lines, the 4.1/5.1s antennas are located off the logic board thus an extension cable is needed)

    Useful Links




    Ram Upgrades (Memory)

    As many users probably are already aware, the Mac Pros can address more RAM than Apple officially lists and depends on the CPU configuration. If for some reason you intend to run pre-10.9, OS X pre-Mavericks had a maximum of 96 GB of RAM.

    Mac Pro 5.1 (2010/2012)

    The 5.1 Mac Pro depending on CPU config may run 1333 MHz ram at 1066 MHz. Any CPU config can use the slower clocked memory; there is some debate on performance effects Mac Performance Guide tests for information. Users also report mixed ECC/non-ECC ram bootable on the Mac Pro 5.1. Lastly, OWC and EveryMac generally report the maximum ram on the 5.1 as 128 GB, but users have confirmed that 160 GB is possible. The Mac Pro will not boot with more than 160 GB of RAM.

    The Mac Pro 5.1 can run in both Dual and Triple channel memory modes. Channel modes are dependent on how many matched pairs of RAM is placed into the Mac Pro. A Mac Pro can 5.1 can run in triple channel mode with six paired DIMMs, whereas if 2,4 or 8 DIMMs are used, the Mac Pro will run in dual channel mode. Notably, memory performance is increased roughly 50% by running a Mac Pro in triple channel mode but result in small real-world performance tests equate to 3% speed increase in, and other applications may perform better than the ones tested here. Also, see "Is Tri Channel functionality maintained when 4th memory stick used?" for further info.

    Maximum DIMM size: 32 GB

    Maximum RAM:

    • Single Processor Xeon: 56 GB
    • Dual Processor Capable Single Xeon: 64 GB
    • Dual Processor Xeon: 128 (8x16) 160 GB (5x32)
    • Dual Channel configuration: 2, 3, 4, 5 or 8 DIMMs
    • Triple Channel: 6 DIMMs

    Apple's Recommended DIMM type:

    • PC3-10600E, 1333 MHz, DDR3 SDRAM UDIMMs
    • 72-bit wide, 240-pin ECC modules
    • 36 ICs maximum per ECC UDIMM
    • Error-correcting code (ECC)

    It's also worth noting that the Mac Pro 5.1 may end up supporting more than 160 GB of RAM due to a few factors: Mac OS 10.9 Mavericks increased the maximum RAM in OSX above 96 GB. The Mac Pro supports 32 GB DIMMS. The latest iMac Pros now have larger RAM configurations. Windows can support 192 GB in the Mac Pro.

    Mac Pro 4.1 (2009)

    Maximum DIMM size: 16 GB

    The 4.1 Mac Pros can be firmware upgraded to 5.1, which changes the RAM support and maximum RAM. Like the Mac Pro 5.1, it can run in dual and triple channel modes.

    Maximum RAM:

    • Single Processor Xeon: 48 GB
    • Dual Processor Capable Single Xeon: 64 GB
    • Dual Processor Xeon: 128 GB

    Apple's Recommended DIMM type:

    • PC3-8500, 1066 MHz, DDR3 SDRAM UDIMMs
    • 72-bit wide, 240-pin ECC modules
    • 36 ICs maximum per ECC UDIMM
    • Error-correcting code (ECC)

    Mac Pro 3.1 (2008)

    Maximum RAM: 64 GB

    Maximum DIMM size: 8 GB

    RAM must be installed in pairs, and Apple recommends Apple approved heatsinks to keep fans at a minimum. Can use 667 MHz FB-DIMMs as found in the 1.1/2.1 but with a speed penalty. Also, XLR8yourmac's mixed speed pairing tests.

    Apple's Recommended DIMM type:

    • 800 MHz, DDR2, FB-DIMMs
    • 72-bit wide, 240-pin modules
    • 36 memory ICs maximum per DIMM
    • Error-correcting code (ECC)

    Mac Pro 1.1/2.1 (2006/2007)

    The Mac Pro 1.1/2.1s Mac RAM depends on the firmware. OWC/Everymac reports the 2.1 Mac Pro with a maximum of 32 GB, which is incorrect. Users have confirmed using 8 GB DIMMs in 2.1s.

    RAM must be installed in pairs, and Apple recommends Apple approved heatsinks to keep fans at a minimum.

    Maximum RAM:

    • Mac Pro 1.1: 32 GB
    • Mac Pro 2.1: 64 GB

    Maximum DIMM size:

    • Mac Pro 1.1: 4 GB
    • Mac Pro 2.1: 8 GB

    Apple's Recommended DIMM type:

    • 667 MHz, FB-DIMMs
    • 72-bit wide, 240-pin modules
    • 36 devices maximum per DIMM
    • Error-correcting code (ECC)

    Useful Links

    Buying RAM

    RAM can be purchased rather cheaply if you know where to look, for example aliexpress.




    Other Upgrades

    Blu Ray / Blu Ray Writer

    The Mac Pro can use any SATA or USB 3.0 Blu-Ray Drive as Blu-Ray is ISO compliant, thus no special drivers are needed, but macOS does not have native support for Blu-Ray disc creation or watching Blu-Ray movies. VLC supports Blu-Ray playback in all its HD glory, and Roxio Toast can burn Blu-Ray disks. There’s also plenty of software for ripping Blu-Rays for macOS. If you’re wondering why you’d want a Blu-Ray, see House of Moth (Jay)’s blog post on reasons why. Notably, VLC has 4k and 8k hardware decoding, HDR10 support, and Blu-Ray Java menus. The LG Black 12X BD-ROM 16X DVD-ROM 48X CD-ROM SATA Internal Blu-ray Burner is a popular model with several reviews confirming Mac OS X support and in Classic Mac Pros.

    Fan Control

    Macs Fan Control takes the champion of the best fan control software, allowing users to use different thermal sensors to control fan clusters or other values. The best parts are the application is free, and there's both a Mac and Windows port.

    Macs Fan Control

    Mojave has it's own share of users experiencing fan rev ups. A forum user at MacRumors wrote a simple app Airout to stress the GPU quickly to cause the fans ro rev back to a normal speed.

    PCIe expansion

    While the classic Mac Pros do not have Thunderbolt, they do support PCIe expansion chassis. Specialty companies like Cubix and Dynapower USA Netstor series make macOS compatible PCIe expanders, generally taking a 16x PCIe slot as a host and dividing its bandwidth into more PCIe slots. These do not come cheap as they're uncommon.

    Mac Pro Pixlas PSU Mod

    The Pixlas mod is a power supply specific modification to draw taps directly from the PSU as opposed to using the standard PCIe power cables, which are only six pins instead of 8 pins thus unable to make the full power draw needed for the 250 watts required for extreme-end GPUs. Mac-build specialist, Big Little Frank has run 2x GeForce 1080 Ti + NVMe successfully using the Pixlas modification with a possibly upgraded PSU.

    External Power Supplies

    To mitigate the stress on the Mac Pro's power supply (tallying in at 980w of power), some users use external PSUs for their GPUs, especially if they have two high-end GPUs such as the GeForce GTX 1080 as they peak at 250w power.

    Replacing the Battery

    Over the years, batteries can go bad and cause errant behaviors (generally resolved temporarily by zapping the PRAM, holding down command-shift-p-r). The Mac Pro uses a 3 volt, BR2032, located on most models above the bottom PCIe slot.

    NorthBridge High-Temperature fix

    The NorthBridge chipset runs typically hot, to begin with, around 65C/150F but there have been a few owners who've had extraordinarily high temps (120C/250F). Fortunately, users have tips for fixes.

    Fan / Heat Sink / other case part Replacement

    Shops like dvwarehoues, wellovemacs, and macpartsonline carry parts for classic Mac Pros. eBay also tends to be popular grounds for finding classic Mac Pro replacement pieces.

    Replacing the Mac Pro fans with 3rd party fans is not very popular as your computer will lose the ability to control the fans. This means using custom fan thermal monitoring and/or manual controls to adjust the fans speeds. There's a MacRumors post detailing a few users experiences.

    Boot Managers

    Due to the nature of Metal requirements of Mojave, many users have had to eschew their old GPUs for Metal compatible CPUs that do not display the EFI boot screen. There's a few options available to Mac users

    Look up serial Number

    This may seem like an odd thing to do, but if you're buying a used Mac Pro 5.1, you may want to see a computer's stock information to see if the Mac was originally a 4.1 Mac Pro. This can be done at sites like appleserialnumberinfo.com.

    Linux on 2006 Mac Pros

    Running Linux on 32-bit EFI Macs takes more effort than 64-bit EFI Macs to run the 64-bit distros. Below are guides on running Linux on older Macs.

    Windows 10 on Mac Pros

    Officially Apple does not support Bootcamp with Window 10, but that shouldn't stop anyone. I've personally used Windows 10 on both a 3.1 and 5.1 Mac Pro, albeit at one concession: it was on a separate drive. Apple, as of late as well as Microsoft, seems less interested in supporting bootcamp. I highly recommend using a separate drive and using a native install of Windows 10 vs. using the Bootcamp partitioner as it can create a host of issues.

    See the Boot Managers section for more information related to managing Windows 10 / Mac OS booting with an EFIless GPU (a graphics card incapable of displaying video before drivers are loaded).

    Enabling Handoff/Continuity

    Enabling handoff requires a Broadcom BCM94360CD, (which is available for the 3.1, 4.1, 5.1 Mac Pors). Once the hardware has been installed or if you already have it installed, you'll need to download the Continuity-Activation-Tool. See the guide below for a complete rundown.

    Enabling Apple Watch Auto Unlock with the Mac Pro

    Officially Apple does not support Bootcamp the classic Mac Pros for Apple Watch Auto Unlock. Of course, enterprising users have figured out how to enable it, but it requires disabling SIP and a few terminal commands. Notably, you'll need a Mojave compatible Airport card.

    Upgrading from a single CPU to dual CPU on a 2009 - 2012

    It is possible to upgrade any 4,1/5,1 from a single CPU to dual CPU, but this requires a dual CPU tray, which are uncommon and often cost as much as an entire used Mac Pro. They occasionally do pop-up when someone parts out a non-functional Mac Pro. Notably, you cannot use the trays from Mac Pro 5.1 in a 4.1 even if the Mac Pro is flashed to 5.1. The trays have slightly different SMC, which confuses the fans, causing them to go into full leaf blower mode, and the same occurs if trying to use a 4.1 tray in a 5.1.




    Service Manuals

    All the support manuals can be found at Apple.com - Manuals - Mac Pro, but for ease of use, I've organized them in this section. Notably, the 4.1/5.1 Mac Pros (2009, 2010-2012) are very similar internally thus any 2009/2010 manual works for the 2012.

    Note: All the manuals are linked are PDFs.

    User Guide Manuals

    Instruction Manuals




    Buying Used Mac Pros on eBay

    Seeing as the Mac Pros are no longer made, used markets are the only places to find Mac Pros. I bought my 2008 Mac Pro from Apple but bought my 2010 from eBay. I had a good experience.

    If you're here, I assume you already are a capable user, but it bears repeating the Mac Pro might not be the best buy for some users. The Mac Pro is a tinkering box and ideal a certain class of users. It's by far the best computer Apple has ever engineered, and possibly any computer maker has ever produced for its sheer longevity and insane upgradability. That said, Used iMac 5ks 2017 iMacs often go for prices similar to Mac Pro 5.1s, have upgradable ram (up to 64 GB) and have Thunderbolt 3 making it eGPU viable and the 2019 iMacs have 128 GB max RAM and better benchmarks when outfitted with a top of the line CPU. The single-core score of an iMac 5k 2017 i5 is nearly double the best Mac Pro 2012 making for better Photoshop performance. With the 5k monitor built-in and support for years to come and the ability to drop in an i7-7700k (for the adventurous) which bests all but the 12-Core Mac Pros in multi-core performance, I'd suggest considering an iMac as in many tasks it'd be noticeably faster if you are not planning to make use of the PCIe slots.

    • If considering a single CPU Mac Pro, Dual CPU trays for Mac Pro 4.1/5.1s are hard to come by, and often cost nearly as much as the computer itself (sometimes more).
    • The Dual CPU 2009 (4.1) Mac Pro is considered the upgraders choice as they're very hackable, as it only takes a firmware flash to convert them to a Mac Pro 5.1. The only caveat is upgrading the CPUs requires delidding.
    • Used CPUs can be found on quite a few sites for reasonable deals. The X5690 is the fastest CPU money can buy for the Mac Pro 4.1/5.1, but the X5680 is roughly half the price making it the bargain upgrade.
    • Some sellers sell 5.1 Mac Pros that are formerly 4.1s upgraded. If you're unsure or the seller is, the serial number can tell you when the computer was manufactured or it's model type. Also, you can request a photo of the computer with the panel removed.
    • Mac Pro 1.1/2.1s so far haven't been able to run later than OS X 10.11, which limits their longevity or utility. Consider the Mac Pro 3.1.
    • The Mac Pro 3.1 can run the latest OS X with minor hacks, making them bargains but are limited in upgrades and performance. Mojave requires a metal GPU but, the latest AMD drivers for recent cards do not support the 3.1 in Mojave without hacks.
    • 2010 and 2012 Mac Pros are virtually the same. There are no performance differences other than the base configurations.
    • Markets vary quite a bit based on geo-location. Based on my limited observation, North America is considerably cheaper than the rest of the world.
    • A few resellers still exist like OWC (other world computing) and Big Little Frank.
    • As tempting as a Mac Pro 2013 may be, the thermals are terrible, often leading the Mac Pro 2013s to fry their GPUs. There has been speculation that the D700 GPUs are destined to fail after a certain threshold of usage and there isn't any real way to prevent it. Others have gone to buying cooling pads meant for laptops in hopes of preventing a GPU failure. The worst part of the GPU problem is the only way to get a replacement GPU is to take the computer to Apple, which carries a hefty price tag. Despite the GPUs actually being replaceable, Apple has never sold the GPUs separately. Consider a modern Mac mini if the Mac Pro 2013 is of interest as the CPU performance is nearly the same, the computer isn't at risk of frying itself, and likely much cheaper. You can buy an eGPU with the money saved, and get better GPU performance than a Mac Pro 2013 as it has Thunderbolt 3.



    Collected Articles on classic Mac Pro and the 2019 Mac Pro




    Communities & Blogs

    You're not alone. There are more people out there than you'd think who still love the classic Mac Pro.

    • MacRumors Mac Pro Forum - The center of the Mac Pro universe, if it's happening, it's probably here. My go-to for sourcing information as one can gather by reading this guide.
    • MacProUpgrade - The premier facebook group, very international with Mac Pro users across the globe. It requires requesting access, but they let anyone in, I'm there. Also, it is a strangely friendly and nice community. They are always willing to answer questions from the obscure to novice and has a lot of high tier creative professionals who can answer your questions about AVID, Premier, FCPX (and etc.) related to your Mac Pro.
    • Mac Pro Users - The another major FaceBook group for Mac Pro users, smaller but still helpful and it has the benefit of being public too (no sign up process and can be browsed without a facebook account). Helpful and friendly community, with a lot of creative professionals too.
    • House of Moth - Jay's mac related blog, it's not explicitly Mac Pro related but has probably the best guide on the Pixlas mod.
    • eGPU.io - Not classic Mac Pro related in the slightest but where I go for Thunderbolt information
    • Netkas - Blog related to GPU flashing and hacking
    • forums.netkas.org - The original group of firmware flashers for GPUs.
    • blog.greggant.com/topics/#macpro - I've written for 6 years now infrequent Mac Pro related blog posts.



    Mac Pro 2013 Upgrade guide

    Looking for information about the cylinders? It started out as a joke, but it is real! The Definitive Trashcan Mac Pro (2013) Upgrade Guide




    Changelog

    Due to the ever-evolving list of possible upgrades and hacks, this guide is a living document, and thus the information contained may change, I've included a robust log of recent changes to help repeat visitors discover new content. Making and maintaining this guide takes a fair amount of work, and feedback from users is greatly appreciated to make this the most accurate/best guide possible. If you have new information not included here, suggestions, corrections or edits, please feel free to contact me at: blog@greggant.com. I get a fair amount of questions, and I try to answer them to best I can. I'd recommend asking the MacRumors forum or MacProUpgrade group first as I'm just one person vs. the collective intelligence of a community.

    07/17/19 - Added more info on Wifi chipsets (where to buy), and continuity. Added note on buying RAM. A few minor edits.

    07/10/19 - Fixed bad URL thanks to reader. Noticed I had two boot manager sections and consolidated them.

    07/05/19 - Added more info about Bootcamp and Windows 10, more editing, typo fixes. Hid old intro by default. Updated Intro. Added notes on THunderbolt 3. Added info about Vega chipset fans.

    06/26/19 - Added more notes about the Radeon 580s in Mac Pro 3.1s and the first notes on 10.15 Catalina. Also added notes on Mac Pro Processor trays. Minor clarification on Know your Mac Pro, and added DosDude1 as a definition

    06/03/19 - Fitting just north of the 1 year anniversary, the Mac Pro 2019 has been announced, and it is a beast. Those specs are beyond what I hoped for, and thus the price is beyond what I hoped for too, 2x the price of the 2006-2012 Mac Pros.

    06/03/19 - Happy WWDC day, let's see if we're all disappointed. Added info about the RX560 in Mac Pro 3.1s.

    05/17/19 - Editing, and clarity, Added how to install GPU section.

    05/18/19 - Linked Jay’s article on Blu-Ray and added notes about VLC and Blu-Ray drive, added better recommendation against 3.1s and NVMe, added incompatible NVMe list.

    05/13/19 - 10.14.5 notes on GPU AMD Radeon VII and added notes on enabling AMD video codec acceleration. Editing (typos + punctuation + corrections)

    05/11/19 - Now that this guide has matured. The new focus is organization. More cleanup. I noticed a few typos. Reordered things a little more in the GPU section and other places. I dislike to make executive recommendations on hardware, but I ended up bowling it down in the GPU section. If you disagree with me, do e-mail me.

    05/08/19 - Biggest update in a long time. Massive cleanup around the Firmware upgrades and OS upgrades sections as it annoyed me that the information wasn't organized well, better notes about Mojave on Mac OS 3.1s, better placement about 3.1s and NVMe, and lastly added a list of the firmware updates to the Mac Pro 5.1s. I tried to reduce redundancy. Reduced the GPU recommendation section to be less verbose and made it clearer. Removed warning about firmware and issued a general recommendation. Added a mini-glossary, added a few more anchors to sections. Still plenty more clean up to happen in the future.

    05/07/19 - One year anniversary! Added links to The Definitive Trashcan Mac Pro 6.1 (2013) Upgrade Guide.

    05/03/19 - Hey, it's almost been one year for this blog post! Added notes about custom fans on Mac Pro and RX 580 drivers. Added links to articles on Mac Pro 3,1s and NVMe. Also, as always few grammar/editing corrections.

    03/29/19 - Added the link the AMD Polaris/Vega GPU thread, added note about 3.1s and Mojave GPU support. Minor typo corrections.

    03/11/19 - Reader Benjamin R noted I was missing the Quadro K5200 and sure enough there's a Mac version as well as K4200. Also listed the Firepro S10000 to list of natively compatible GPUs.

    03/05/19 - Added CPU check terminal command. Added version number, using the date, since this guide has evolved quite a bit and this gives repeat visitors a quick reference for when the guide was last updated. Updated Fusion drive section. Updated NVidia driver section only list TonyMacX86's latest drivers rather than versions, and clarified RTX series. Added link to Expansion Slot Utility for Mac Pro 1.1/2.1s. Also, saw two FB users wondering if Apple bricked computers with the 142 firmware on purpose. I can assure you they did not. The W3xxx series aren't nearly as common, and if Apple wants to drop support, they can do so at any time. They do it frequently with major OS updates for both macOS and iOS. Why bother to play a cloak and daggers game and open themselves up to a potential class action lawsuit? Not everything is conspiracy (most things aren't in fact, youtube and social media is making us stupid), Occam's razor says this was an edge case that wasn't tested. As a developer, I can tell you this happens more than you ever want to know.

    03/04/19 - Created the Special Announcements, as the DP4 of Mojave 10.14.4 has a new firmware the bricks the higher end CPUs. Added more notes to firmware section. Minor copy edits/grammar-y corrections are littered through this update.

    02/27/19 - Wow, this guide is about 10 months old now has had nearly 50k visits. Added link to Mac Pro Users, added tables to PCIe section, clearer explanations on PCIe, linked a user confirming dual 5k displays and added a few lines to the Ebay buying. Also took off a little of the AppleInsider slandering. It's not my favorite site but doesn't really add anything of value.

    02/01/19 - Added new Sonnet USB 3.1 cards to compatibility, Added link to Delidding cleanup.

    01/24/19 - Added image to illustrate the Mac Pro generations under know your Mac Pro and subsection. Added RX580 Mac Pro 3.1 compatibility note.

    01/23/19 - Moved the Thunderbolt info into its own section as it's moved beyond speculation. I'll track this best as I can. Added a communities section. Added an anchor to the changelog. Minor copy edits.

    01/18/19 - Just when you think you've considered pretty much any upgrade feasible, there's a new one. It looks like there's been progress made on the Apple Watch Auto Unlock for the cMP, so I added it to the guide. I added minor corrections to grammar and punctuation as it'd been a while since I've proof-read this entire monster of an article. Fun fact, this article is 12,500+ words now, which is 24 pages, single-spaced 12-point text (48 double-spaced). For reference, a novel is generally considered to be 40,000+ words. Apple Insider, the apologist trash rag, seems to think that PCIe 5.0 might be in the 2019 Mac Pro. Why? Because it was ratified as a standard. I find this incredibly silly as PCIe 4.0 first motherboards were demoed in June and there aren't many floating around right now nor hardware. PCI 4.0 was finalized on Oct 26, 2017, and took roughly a year for the first devices to ship. With the extreme lack of PCIe 4.0 hardware, let alone 5.0, this is extremely dubious.

    01/17/19 - Reader Arif pointed out an error on my guide, and I didn't have a check mark next to the X5675 on the Mac Pro 5.1, also looks like more progress on thunderbolt and added it. First, update for 2019 and 7 months running of updates.

    12/21/18 - Added a note about the X5687 since recently there's been a few posts on Mac Pro communities again. It's incompatible, and this guide lists it as incompatible. I linked a forum poster's attempt at getting it to work (despite knowing it was listed as incompatible). Hopefully, this saves a few people the heartache and money. Added notes about UI scaling to monitors and freesync

    12/14/18 - Thanks to reader Ian for confirming the RX 590 works in the cMPs. I hadn't even noticed it had been released. He even created a video. You can watch it here. Also, added info about the latest in NVidia driver updates as NVidia released new drivers for 10.13, but without Volta support, lending a lot of weight to the previous rumor that the drivers were pulled over a dispute with Apple's AMD contract. The issue has landed itself in Forbes under the blistering headline Apple Turns Its Back On Customers And NVIDIA With macOS Mojave. Hopefully, this helps Mac Pro users out, such as myself. I've had my NVidia GeForce 1060 less than a year. Oh, and this blog now supports Dark Mode for Mojave users using Safari Tech Preview 68 or higher.

    11/28/18 - With the stalemating fo NVidia drivers, I've added a link to the petition for drivers and updated the GPU section a bit to reflect better that it's AMD or bust right now for Mojave.

    11/05/18 - Bad news on the Mojave front for NVidia users, NVidia blames Apple for not approving its drivers. Added links to the said article.

    11/02/18 - Updated intro, Apple released Mac Minis, minor clarification in the intro and call to the right to repair.

    10/29/18 - Big reworking of storage section (now ordered by ATA, AHCI, and NVMe), Added direct links to NVMe firmware.

    10/26/18 - lots of copy editing on new (and some old) sections. Also thanks to Pressure G on Mac Pro Users (on Facebook) for spotting an error. This guide is now roughly 40 pages long! Added to Contents list of the "other upgrades."

    10/25/18 - first draft of NVMe section, and editing to more accurately reflect NVMe status, plus added first draft PCIe, and You section to explain PCIe ports. Both will require editing.

    10/22/18 - 2018 is the year of the cMac Pro. In the space of not updating for a month, we have native NVMe support, bootscreens on RTX cards and the craziest of them all: promising ThunderBolt results. Added notes in relevant sections. Added Boot manager to both GPU and it's own section under other upgrades. Also, I was mentioned in a podcast a while back Brograph Podcast - Episode 134 (at the 33:05 mark). Added a TechRadar link. Added more AppleInsider insults. Why? It's apologist fanboy propaganda.

    9/26/18 - It's Mojave time! Added notes on 10.14 Mojave installation, Metal, Mojave patcher for Mac Pro 3.1s, and OWC APFS problems.

    9/19/18 - Added link to After Effects GeForce 1080 vs.Radeon 580

    9/04/18 - Mild copy edit + driver downloader.

    8/27/18 - Added note about DynaPower USA to PCIe expanders, full list of AMD cards and some minor copy editing.

    8/3/18 - Added eBay purchasing notes, Minor copy editing to new content

    8/2/18 - Special thanks to reader Geo B. for sending me info about the FASTA-6GU3 and Amfeltec SQUID. Added notes on Triple channel memory. Also, Big list of corrections (typo spot, correction about language around UEFI, 2006 Mac Pro OS compatibility, and other bullet points), thanks in part to Dave @ MacVidCards for his very-direct but informative e-mail (Dont'worry, we're cool, or at least I assume we are). As per request, any reference was changed to from "Mac Vid Cards" to "MacVidCards." Notably, Dave mentions that the Mac 780/Titan/Titan X EFI compatible cards use a pirated version of his custom/hacked ROM. While I haven't verified this, as I don't really have means or time to do so (this page is for fun and to help other people like me), I see no reason to doubt this claim.

    6/13/18 - Added Know Your Mac Pro, link to Pixlas dual GPU mod by Big Little Frank, added HDMI Volume control Lifehacker link.

    6/12/18 - Minor update to GPUs list, also added firmware update info, finally added a blur about delidding, xlr8yourmac fixed.

    6/1/18 - NVMe is now bootable with firmware hacks, added info in NVMe and firmware sections.

    5/27/18 - Added link to Netkas Mac Pro 1.1 -> 2.1 firmware utility and StarTech 4-Port card to USB list.

    5/23/18 - Added link to wifi install guide for 5.1 Mac Pros, link cleanup so links consistently open blank page, minor proofing.

    5/22/18 - Added HDMI Audio links, Mac Pro 5.1 Update for 10.13, Also, time for some proofing: Fixed quite a few typos, grammar blunders, and punctuation.

    5/21/18 - Added Mac Pro manuals from Apple.com

    5/17/18 - Added Linux on 2006 Mac Pros links

    5/16/18 - 5770 Error correction info

    5/15/18 - Minor copy editing, fixed bad link to anchor tag for CPU upgrades, a note about SLI.

    5/14/18 - Reworked the intro, it's wordy now. Minor copy editing, more PCIe sled info, more 4.1 firmware upgrade links.

    5/13/18 - Added Pixlas mod info, Classic Mac Pro gone but certainly not forgotten.

    5/11/18 - Added Upgrade to High Sierra without APFS, added NVIDIA Quadro FX 5600, AMD FirePro W7000 to flashable cards, AMD Radeon 770/5780 Roms link, mac-pixel-clock-patch-V2 link, How to Boot to Windows without a Boot Screen link, NVMe links, Disable internal Bluetooth (for USB dongles), note about pre-10.9 RAM, serial number lookup, note about 64-bit on 1.1/2.1 mac pros.

    5/10/18 - Links to EveryMac for RAM instructions, quick thoughts on graphics cards purchases, and links to NVidia web drivers.

    5/9/18 - Copy Editing + Responsive CPU tables + links open new windows.

    5/8/18 - Images + feedback from users (added Replacing battery + memory) + restructure so contents supercedes intro.

    5/7/18 - Guide launch, first published


    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:

        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.


subscribe via RSS