Ask HN: What's your dev machine setup?
It's time to replace my PC. I'm curious about your setups - for a dev machine, what kind of hardware do you use/recommend? How do you configure your machine to keep it running nicely? Any other thoughts configurations/setup for a dev machine?
82 comments
I run a multi-headed desktop, running Ubuntu 16.10 + Windows 10 simultaneously.
Specs:
Highly recommended setup, but your CPU and motherboard must support VT-D virtualization. Most hardware does not support this. Look into /r/vfio.
Specs:
* CPU: i7-3820
* Motherboard: Asus p9x79 deluxe
* Memory: 32GB DDR3
* Graphics: EVGA GTX 680 SSC + ASUS GTX 970 SSC
* 1tb Samsung SSD + 2x1TB WD Black HDD
The net result is that I can have both windows 10 and ubuntu running at the same time, with native performance and native graphics, native inputs for both operating systems. The 680 is dedicated to running the Ubuntu 16.10 graphics, and the 970 is dedicated to running the Windows 10 output. I have both cards outputting to multiple inputs for each monitor, so I usually run Windows 10 with 1 display and Ubuntu with my other 2, but I can use any combination, giving either OS all monitors. I can game in windows 10, press a key, and be surfing on Ubuntu 16 while windows does some pesky updates.Highly recommended setup, but your CPU and motherboard must support VT-D virtualization. Most hardware does not support this. Look into /r/vfio.
GPU pass-through seems like a huge headache, how are you finding it?
I have a 2013 MacBook Air. I used to develop Django apps on a Windows PC and was perfectly satisfied. I had to switch because of a off-hand promise. I've never been happier.
I made a lighthearted promise one day, many moons ago, to my client. We were running our service on CodeIgniter in PHP. I found it difficult to move quickly. I was gently trying to convince them to move to Django. My client jokingly remarked that if we ever do change to Django I will need to start developing on a Mac. Knowing that it is not smart to just change languages and frameworks for the heck of it, I agreed to the promise. I did not really want to get a Mac. Some time passes and we need to do a ground-up rebuild for various other reasons. Other people recommend Django to him out-of-band and bam!
Promise made, promise kept. We switch to Django. I get a Mac. Both decisions turned out very well.
The main thing, as silly as it may be, my favorite thing is the multiple desktop and the three-finger touchpad sweep to change between them. I had a brand new 3 monitor set up, with plans of going to 6. All of a sudden I have as many "monitors" as I want in a super-portable package!
I like the Mac. It took about two weeks to get used to it, but it is nice. It feels very natural. I may go back to a PC one day, but not before I can have virtual screens and a multi-touch sweep to change between them.
I made a lighthearted promise one day, many moons ago, to my client. We were running our service on CodeIgniter in PHP. I found it difficult to move quickly. I was gently trying to convince them to move to Django. My client jokingly remarked that if we ever do change to Django I will need to start developing on a Mac. Knowing that it is not smart to just change languages and frameworks for the heck of it, I agreed to the promise. I did not really want to get a Mac. Some time passes and we need to do a ground-up rebuild for various other reasons. Other people recommend Django to him out-of-band and bam!
Promise made, promise kept. We switch to Django. I get a Mac. Both decisions turned out very well.
The main thing, as silly as it may be, my favorite thing is the multiple desktop and the three-finger touchpad sweep to change between them. I had a brand new 3 monitor set up, with plans of going to 6. All of a sudden I have as many "monitors" as I want in a super-portable package!
I like the Mac. It took about two weeks to get used to it, but it is nice. It feels very natural. I may go back to a PC one day, but not before I can have virtual screens and a multi-touch sweep to change between them.
Do you have to obsolete (not produced) thunderbolt displays? I have a macbook air and am trying to figure out how to do a two (external) display set up but have had trouble figuring out which monitors/set up would work for this. If you do use thunderbolt displays I'll keep looking for other solutions, but if you have a set up with another brand of display and could post your set up that'd be super helpful!
I have a Dell UltraSharp Monitor [1] attached to my Air when I use it, the monitors come with the correct display port cables to connect to a Mac. You can also daisy-chain (MST) these monitors so technically if you'd use two you only have to use one port on your Air. However, the Air doesn't support more than one monitor at the time, at least I can't get it to work on my Air (I think it has to do with the bandwidth in pixels that the GPU can process, or something like that). I think the Pro is capable of supporting more than one display at once. The screens are pretty good for the price charged.
http://accessories.ap.dell.com/sna/sna.aspx?c=au&cs=aubsd1&l...
http://accessories.ap.dell.com/sna/sna.aspx?c=au&cs=aubsd1&l...
I was not very clear when I wrote the original comment. I had a PC with multiple monitors. My MacBook has no external monitors. I use the virtual desktops and three-finger swipes, and could not be happier.
> I may go back to a PC one day, but not before I can have virtual screens and a multi-touch sweep to change between them.
Windows 10 does all of this.
Windows 10 does all of this.
Late 2013 MacbookPro, 16gb ram, 512gb ssd. I do all my development in a VirtualBox 5.1 Ubuntu VM. I keep my host OS 100% free of any development stuff now. Just SSH in and let rip.
macOS seems to be more stable under this setup, and if I need any tools I'd normally get from homebrew on the host (say, I want to download a Youtube video using youtube-dl) I just do it in the VM into a shared folder.
I'll probably replace this laptop when it dies with the HP Z2 Mini which was on HN a week or two ago running Linux directly since I want more than 16gb ram and Apple doesn't think that's worth supporting.
macOS seems to be more stable under this setup, and if I need any tools I'd normally get from homebrew on the host (say, I want to download a Youtube video using youtube-dl) I just do it in the VM into a shared folder.
I'll probably replace this laptop when it dies with the HP Z2 Mini which was on HN a week or two ago running Linux directly since I want more than 16gb ram and Apple doesn't think that's worth supporting.
That is interesting since I do almost the exact opposite of what you do. I hate VMs and SSH sessions for dev work with a passion.
I have a powerful linux desktop box that I run my builds on, and a light weight 13" 2015 Macbook Pro to connect to it. I check-out the code onto my linux box and scp it down to my Mac (ignoring source control folders) and subsequently use rsync to keep both the boxes in sync (there's an Atom plug-in that rsyncs every time you save).
I get native OSX performance as I edit code and I get to run fast builds on my desktop, so it's a pretty nice win-win scenario as far as I'm concerned.
I have a powerful linux desktop box that I run my builds on, and a light weight 13" 2015 Macbook Pro to connect to it. I check-out the code onto my linux box and scp it down to my Mac (ignoring source control folders) and subsequently use rsync to keep both the boxes in sync (there's an Atom plug-in that rsyncs every time you save).
I get native OSX performance as I edit code and I get to run fast builds on my desktop, so it's a pretty nice win-win scenario as far as I'm concerned.
That's funny! I do all my dev work in emacs so it doesn't matter to me if I'm working locally or using SSH. :) I was very against running VMs for development until I tried it again a few months ago.
Have you considered just keeping your code on the desktop and mounting it to your OSX host via NFS? I was doing this up until recently (was running Atom instead of emacs) and it worked really well. Might be an option if your latency is low enough.
I actually tried "desktop Linux" last weekend to see if I could just ditch OSX entirely. The first experience I had was that the mouse cursor in 16.10 does not move in the installer and livecd boot. I installed 16.04, played with a bunch of the desktop environments, and was ultimately unhappy with the feel of them. They're just too alien and inconsistent compared to OSX.
I'm probably just going to keep the current setup until this MBP dies, then I'll get whatever the best Mac Mini equivalent is (HP Z2, Intel Skull Canyon, etc.) and switch to Linux finally.
Have you considered just keeping your code on the desktop and mounting it to your OSX host via NFS? I was doing this up until recently (was running Atom instead of emacs) and it worked really well. Might be an option if your latency is low enough.
I actually tried "desktop Linux" last weekend to see if I could just ditch OSX entirely. The first experience I had was that the mouse cursor in 16.10 does not move in the installer and livecd boot. I installed 16.04, played with a bunch of the desktop environments, and was ultimately unhappy with the feel of them. They're just too alien and inconsistent compared to OSX.
I'm probably just going to keep the current setup until this MBP dies, then I'll get whatever the best Mac Mini equivalent is (HP Z2, Intel Skull Canyon, etc.) and switch to Linux finally.
We're in the process of harmonizing our entire team (9) to use Vagrant in a VirtualBox. For the most part it works, but we run into issues regarding VB memory consumption crashing machines. Minimum 8gb ram machine.
Do you have any advice on how to keep the memory footprint low?
Do you have any advice on how to keep the memory footprint low?
Are you using 5.1.x? It had a ton of performance improvements over 5.0.x and earlier.
I regularly run 30-40 VMs at once on my dev server at work (40 cpus, 384gb ram), and I haven't had any problems like this there or at home...
I regularly run 30-40 VMs at once on my dev server at work (40 cpus, 384gb ram), and I haven't had any problems like this there or at home...
Amazing, we are using 5.0.x
I'll see if that helps.
Thank you!
Another random thing I just remembered: if you're doing work in the VMs that is heavy on network I/O, try turning GRO off. We saw a big performance increase by doing this: https://github.com/contiv/volplugin/blob/master/Vagrantfile#...
One other thing: VirtualBox 5.1 is only supported by Vagrant 1.8.5 and newer, but 1.8.5 has a 100% showstopper bug where the SSH key inserted into the VM is not chmod'd correctly and OpenSSH refuses to look at it. Use 1.8.6 or newer instead.
2015 Macbook Pro, which has been the best machine I have ever owned.
Just as important as the machine though is the software/ shortcuts I have put on it.
Contexts.co resolved a lot of my problems but not by itself. For all you dev's who use Chrome and extensions or apps. If you're more than frustrated with how osX handles switching between chrome and your extensions (hangouts, keep, postman, etc.) try removing the app version and find the extension for whatever you are looking for. It's not perfect, but with context.io and the extension version of hangouts, when I cmd+tab to hangouts, it now actually takes me there.
Just as important as the machine though is the software/ shortcuts I have put on it.
-homebrew
-iterm2 mapped to a global hot key of cmd+shift+space (get to the terminal in a hurry)
-contexts.co is also a great tool that has almost resolved all of my window managment issues
-chrome mapped to cmd+1
-various other tools mapped to cmd+2 - cmd+5
-visual code studio. Nothing important to add. I just enjoy it. (not my ide though)
A note on osx window management,Contexts.co resolved a lot of my problems but not by itself. For all you dev's who use Chrome and extensions or apps. If you're more than frustrated with how osX handles switching between chrome and your extensions (hangouts, keep, postman, etc.) try removing the app version and find the extension for whatever you are looking for. It's not perfect, but with context.io and the extension version of hangouts, when I cmd+tab to hangouts, it now actually takes me there.
I'm doing frontend (react) on a MacBook Pro 15' late 2008 (8go ram, SSD) plugged to a 27' monitor.
Code editor on the Mac screen, terminals, web browsers and Slack on the external monitor. No external keyboard nor mouse.
I'm also looking to get a new machine: I would love to hear the feedback of owners of MBP 15' with touchbar. My dilemma: get a 2015 version or 2016 with touchbar?
Code editor on the Mac screen, terminals, web browsers and Slack on the external monitor. No external keyboard nor mouse.
I'm also looking to get a new machine: I would love to hear the feedback of owners of MBP 15' with touchbar. My dilemma: get a 2015 version or 2016 with touchbar?
The keyboard on the new MBP is an improvement from the new MacBooks, but it still doesn't feel as good as the keyboard from the 2013 MBPs IMO. On the other hand, the larger trackpad is fantastic and makes a big difference when browsing, etc.
The touchbar is a wash for me, not having a real ESC is kinda weird, but it's not a deal-breaker for me (although I don't use terminal-based editors often.)
The biggest frustration for me is the dongles, I have to carry around 4 of them in order to maintain my workflow and device connectivity. I get the argument that Apple is nudging us forward on this, but they sacrificed a lot of usability and convenience in getting rid of the current gen ports, and I notice this daily.
The touchbar is a wash for me, not having a real ESC is kinda weird, but it's not a deal-breaker for me (although I don't use terminal-based editors often.)
The biggest frustration for me is the dongles, I have to carry around 4 of them in order to maintain my workflow and device connectivity. I get the argument that Apple is nudging us forward on this, but they sacrificed a lot of usability and convenience in getting rid of the current gen ports, and I notice this daily.
I received a maxed out 2016 15" MBP on Tuesday and so far am happy with it. The ESC key (or physical lack thereof) was only a mild irritant at first and I've already adapted.
Have you looked into BetterTouchTool?
I have a mid-2014 Macbook Pro which I love (although given Apple's direction I may switch to linux). I haven't found any hardware that really compares with Apple's products on build quality and just the pleasure of use (from the screen quality to the responsiveness of the trackpad and everything in between).
I normally have it plugged into a 24" Dell monitor but got rid of my Apple wireless keyboard and magic mouse because actually prefer having my laptop in front of me and the larger (primary) monitor above it so I don't have to move my neck/eyes along the horizontal rotation.
As for an environment, I mostly programme with node.js and use docker to contain my databases, rabbitmq, etc.. All my config is stored in my dotfiles [1] anyway so setup is easy (and I basically live in my terminal so homebrew + zsh + tmux + vim sorts my life out perfectly).
[1]: https://github.com/gfarrell/dotfiles
I normally have it plugged into a 24" Dell monitor but got rid of my Apple wireless keyboard and magic mouse because actually prefer having my laptop in front of me and the larger (primary) monitor above it so I don't have to move my neck/eyes along the horizontal rotation.
As for an environment, I mostly programme with node.js and use docker to contain my databases, rabbitmq, etc.. All my config is stored in my dotfiles [1] anyway so setup is easy (and I basically live in my terminal so homebrew + zsh + tmux + vim sorts my life out perfectly).
[1]: https://github.com/gfarrell/dotfiles
Interesting response when you state that you may give Linux a try given Apple's direction and then you list what you like about Apple's laptop. I wonder why you're thinking that other then the recent 'post' by some complaining about the new Notebooks. I recently purchased a new MBP 15 (up from a 2011 MBP 13) and the build quality is still there, the design of the new laptop is really nice and the screen quality is excellent.
To top it off the new MBP have a awesome trackpad and are very quiet (least mine is I have the 2.6GHZ 16GB 256GB SSD model) and even while playing videos on Google Chrome (which use to really heat up my 13 inch) my 15 inch is quiet and cool.
To top it off the new MBP have a awesome trackpad and are very quiet (least mine is I have the 2.6GHZ 16GB 256GB SSD model) and even while playing videos on Google Chrome (which use to really heat up my 13 inch) my 15 inch is quiet and cool.
My feeling is that Apple have basically decided to pursue a "fashionable" path, rather than actually considering design as they used to (and also have abandoned their professional market). (1) getting rid of magsafe is a PITA; (2) USB-C is a PITA; (3) I think my MBP is the last one in which I can replace the hard-drive (or take it out if my logic board fails).
I agree on the build quality - they are still really nice laptops, but the price increase and trajectory of bad design in general (I think that without Steve Jobs steering him, Jonny Ive is incapable of producing genuinely groundbreaking work, and is instead coming up with some really egregious rubbish) are making me feel like jumping ship.
Likewise with OSX: the main reason I use OSX (oh, sorry, macOS) is not the OS itself anymore (which I used to love) but more the apps I can't really do without (basically just Alfred and 1Password) - for everything else I spend most of my time in the terminal.
I agree on the build quality - they are still really nice laptops, but the price increase and trajectory of bad design in general (I think that without Steve Jobs steering him, Jonny Ive is incapable of producing genuinely groundbreaking work, and is instead coming up with some really egregious rubbish) are making me feel like jumping ship.
Likewise with OSX: the main reason I use OSX (oh, sorry, macOS) is not the OS itself anymore (which I used to love) but more the apps I can't really do without (basically just Alfred and 1Password) - for everything else I spend most of my time in the terminal.
I use a 2011-vintage 17" Macbook Pro. I'll maintain it as long as I can. Memory is maxed out and it has an SSD. It performs about as well as a new one would, plus it has a full suite of ports. Besides programming, I also use it for music recording and photo editing, so the generous screen real estate is very helpful. (Useful fact for those who love their old MBPs... Apple will do an "anything" repair for $300. They'll fix anything and everything they find wrong. I had my motherboard replaced last year that way.)
For the development itself, I do everything in Vagrant. That way, I get my nice Mac and nice editor (Textmate), with a predictable and repeatable build and test environment. I could just check out my code onto a different computer with Vagrant installed, and pick up where I left off.
For the development itself, I do everything in Vagrant. That way, I get my nice Mac and nice editor (Textmate), with a predictable and repeatable build and test environment. I could just check out my code onto a different computer with Vagrant installed, and pick up where I left off.
Web dev here, 60% server side and 40% front end most of the time.
I can't ever go back to a single screen for dev any more. REALLY working on a simple laptop with one screen has become this phobia I now have.
- Windows 10 + Ubuntu (but never really use Ubuntu any more)
- 2600k CPU
- 16GB RAM
- GTX 970
- two 27" monitors
I used to have a Macbook Pro and a beefy iMac until this spring, grew to hate them, then the iMac was stolen from the office and the MBP I swapped for a 9550 Dell XPS 15" laptop which is better than the MBP but not something I want to work on really, it's just for excursions.I can't ever go back to a single screen for dev any more. REALLY working on a simple laptop with one screen has become this phobia I now have.
Currently on a 2012 Retina Macbook Pro 2.6Ghz i7 with 16GB RAM, and 2 thunderbolt mirrors... I mean displays ;)
I run OSX for my day-to-day dev work, but am noticing I'm drawn more and more towards tiling window managers (like i3), so I'm exploring options to switch back to Ubuntu (which I used on my Dell laptop before I got the MBP).
The previous gen rMBP is hands down the best laptop I've ever owned. I haven't used the new 2016 model yet.
At my office we use the (ridiculously cheap) iiyama prolite x4071 40" 4K displays, which I absolutely fell in love with. Once you go 4k, everything else feels like a step back. I'll probably upgrade my setup somewhere in near future to a high end laptop + 2x 32" 4K displays. 32" because 2x40" is too big (you'll need to turn your head constantly) and 'high end laptop' because I'm not quite sure about the new MBP.
My 2 cents: Invest in a high end laptop and an external monitor/keyboard/mouse, instead of a desktop. That way you'll have an ergonomic setup at your office/house but still be able to carry your work anywhere you want.
I run OSX for my day-to-day dev work, but am noticing I'm drawn more and more towards tiling window managers (like i3), so I'm exploring options to switch back to Ubuntu (which I used on my Dell laptop before I got the MBP).
The previous gen rMBP is hands down the best laptop I've ever owned. I haven't used the new 2016 model yet.
At my office we use the (ridiculously cheap) iiyama prolite x4071 40" 4K displays, which I absolutely fell in love with. Once you go 4k, everything else feels like a step back. I'll probably upgrade my setup somewhere in near future to a high end laptop + 2x 32" 4K displays. 32" because 2x40" is too big (you'll need to turn your head constantly) and 'high end laptop' because I'm not quite sure about the new MBP.
My 2 cents: Invest in a high end laptop and an external monitor/keyboard/mouse, instead of a desktop. That way you'll have an ergonomic setup at your office/house but still be able to carry your work anywhere you want.
4th gen lenovo carbon x1, 16gb ram, 512 gb pcie-nvme, i7-6600U, running fedora 24(currently)
i mainly develop for python, go, and javascript, also using a bunch of cloud platform stuff with kubernetes and openshift
in terms of keeping it running nicely, for me that means using fedora server edition with a custom selected Xorg stack and regular updates.
when not on the road i like to attach a 24" 1080p monitor for some extra real estate
i mainly develop for python, go, and javascript, also using a bunch of cloud platform stuff with kubernetes and openshift
in terms of keeping it running nicely, for me that means using fedora server edition with a custom selected Xorg stack and regular updates.
when not on the road i like to attach a 24" 1080p monitor for some extra real estate
I work in game development writing c++. All our workstations are 32GB ecc DDR3 ram, dual 8/10-core Xeon processors with hyperthreading (so 32/40 cores per machine) and at least GTX 970s. Would absolutely recommend a machine with this much parallelism if you're compiling c++ regularly. We all run Windows 10, with 3/4/5 instances of visual studio open at anytime.
Just picked up a 32" 4K monitor, and I think it's about the perfect size for dev.
- 140 DPI is about perfect IMO. It's "almost-retina" for a 2 foot viewing distance. Yes, there are benefits from having a higher DPI, but once you hit retina you definitely hit the point of diminishing returns. The DPI is also low enough so that if you very occasionally use an app that doesn't scale, it's still moderately usable.
- it's a good height. A lot of coding tasks really benefit from a reasonable amount of vertical height, and the shift to 16:9 screens has really hurt that. But too much height gives you a crick in your neck if you use the full height. I think the 16" of a 32" monitor is about right.
Unfortunately 32" UHD is quite expensive. 40" UHD is inexpensive because it has the volume of crappy TV panels, and 27/28" is inexpensive because it seems to be the volume point right now. To get a reasonably priced one you need to get a Korean model from EBay. I have the QNIX UHD3216R.
- 140 DPI is about perfect IMO. It's "almost-retina" for a 2 foot viewing distance. Yes, there are benefits from having a higher DPI, but once you hit retina you definitely hit the point of diminishing returns. The DPI is also low enough so that if you very occasionally use an app that doesn't scale, it's still moderately usable.
- it's a good height. A lot of coding tasks really benefit from a reasonable amount of vertical height, and the shift to 16:9 screens has really hurt that. But too much height gives you a crick in your neck if you use the full height. I think the 16" of a 32" monitor is about right.
Unfortunately 32" UHD is quite expensive. 40" UHD is inexpensive because it has the volume of crappy TV panels, and 27/28" is inexpensive because it seems to be the volume point right now. To get a reasonably priced one you need to get a Korean model from EBay. I have the QNIX UHD3216R.
I have an "old" MBP 13'' from 2013. Works just fine for me, I'm sure I can get another 2 or 3 years with it. If I had to replace it now I would go either with a new System76 Lemur, or a Dell XPS 13. I'm a big fan of 13 inch screens since I'm always on the move.
Not really sure what you want to know re: configuration.
Not really sure what you want to know re: configuration.
I'm also using an "old" 13 inch MBP. I was hooking it up to two 27" 1080p monitors using a Matrox "Dual Head to Go," with Divvy hotkeys to make that easy to use. (Basically, I just had hotkeys to move windows to the left or right side of either monitor.)
I think I'm going to wait until next year to buy a laptop. I really want to see what Apple and Microsoft can do with a Pascal GPU.
I think I'm going to wait until next year to buy a laptop. I really want to see what Apple and Microsoft can do with a Pascal GPU.
A 2011 i5, 12GB RAM, 128GB SSD +2x 1TB HDD with two 24" 16:10 monitors. Using Sublime Text since 2012? (best software buy ever) for quick PHP fixes, Go micro services and scripting mikrotiks and lately Android Studio which runs very fast compared to my 2015 13" Macbook Air which, I'm using for all the above except the Android part.
Oh and btw, I'm running Debian 8.2 and Gnome and I couldn't be happier. Some day I will be installing onto the mac as well; though I really like the macos ui and everything it is starting to get ever more difficult to opt out from various updates etc.
EDIT: re-reading your post, I would definitely recommend dual monitors with 16:10 ratio for 24" size or less. I also recommend an SSD m.2 for swap, root, /usr partitions, specifically the expensive NVMe ones from samsung. I can't emphasize enough on how big of a difference they make even compared to sata SSD's.
Oh and btw, I'm running Debian 8.2 and Gnome and I couldn't be happier. Some day I will be installing onto the mac as well; though I really like the macos ui and everything it is starting to get ever more difficult to opt out from various updates etc.
EDIT: re-reading your post, I would definitely recommend dual monitors with 16:10 ratio for 24" size or less. I also recommend an SSD m.2 for swap, root, /usr partitions, specifically the expensive NVMe ones from samsung. I can't emphasize enough on how big of a difference they make even compared to sata SSD's.
Quad-Core Haswell Xeon, 32 GB ECC RAM (server RAM is ridicously cheap second-hand). 27" 1400p, 19" 1280x1024 (not a good match, not used very often). Arch Linux, KDE.
Paid about 250 € for CPU/MB/RAM.
Previously: Phenom X6 1055T, 16 GB non-ECC RAM. The X6 was a pretty decent CPU for parallelized work, due to it's six cores, but pretty poor in most other regards. The Haswell quad is "only" 50 % or so faster on average in thread-heavy work, but much, much faster in anything single threaded and has a much more recent ISA (the X6 doesn't include AES-NI, for example).
Mobile: X200 bastardized with a X201 board. Qubes, KDE. Formerly Arch and i3. Didn't like i3's handling in Qubes.
My recommendation: don't buy hardware new. Especially since in the last years there is no real difference anymore between Intel generations. No need to pay a 100+ % premium to get Skylake, if Haswell performs essentially the same.
Paid about 250 € for CPU/MB/RAM.
Previously: Phenom X6 1055T, 16 GB non-ECC RAM. The X6 was a pretty decent CPU for parallelized work, due to it's six cores, but pretty poor in most other regards. The Haswell quad is "only" 50 % or so faster on average in thread-heavy work, but much, much faster in anything single threaded and has a much more recent ISA (the X6 doesn't include AES-NI, for example).
Mobile: X200 bastardized with a X201 board. Qubes, KDE. Formerly Arch and i3. Didn't like i3's handling in Qubes.
My recommendation: don't buy hardware new. Especially since in the last years there is no real difference anymore between Intel generations. No need to pay a 100+ % premium to get Skylake, if Haswell performs essentially the same.
> don't buy hardware new
Generally agreed, except that SSDs are a major exception which should always be purchased new.
Generally agreed, except that SSDs are a major exception which should always be purchased new.
I think drives in general should be bought new, at least for production use (ie. were it is a hassle to replace it). I've got quite a few second-hand rust-spinners, but I only use them for backup purposes, ie. they are all replaceable with no loss.
Worth checking out - https://usesthis.com/
Every six months or so I start to wonder about my setup and how it compares to others and I try hunting down this site. It's surprisingly tricky to find if you don't remember the URL.
Yeah, I guess I've made it tricky by not matching the name and the URL.
nice one, took me a while to find the developer category:
https://usesthis.com/categories/developer/
https://usesthis.com/categories/developer/
Ha, really? What made it not obvious? Genuinely curious so I can improve the discoverability etc.
Coming back to this today (2nd visit) it's a lot easier to find my category. I guess part of the reason I was confused at first is that I wasn't sure of what I was looking at! Good thinking on you for making it, nice work :)
Curious to why you're sorting categories by name as I'm guessing the majority of people using/viewing it are developers. Scrolling down searching for 'd' would be easier if the first char was somewhat bigger?
Curious to why you're sorting categories by name as I'm guessing the majority of people using/viewing it are developers. Scrolling down searching for 'd' would be easier if the first char was somewhat bigger?
I built a desktop with a quad core i5, 16gb ram, a GTX970, an Intel SSD, and around 2tb of spinning disk storage. The whole build cost around $700 and it's a very fast machine. I also have 2x 1440p 25" monitors, a mechanical keyboard, and recently added a (normal looking) gaming mouse. I use it primarily for programming/research and occasionally games/oculus rift. Also makes a great web server.
I run Ubunutu, with i3 window manager. I really like this combo after some personalization. It's very stable, and lightweight. I also have two Windows versions and a secondary Linux installation which come in handy.
I also have a 2013 15" rMBP of which I think very highly. I can mount my 2tb of desktop storage, and my SSD as a network drive on the MacBook for sharing files. I also use SSH to run intensive scripts (sometimes GPU stuff) on the desktop.
10/10 would recommend this setup
I run Ubunutu, with i3 window manager. I really like this combo after some personalization. It's very stable, and lightweight. I also have two Windows versions and a secondary Linux installation which come in handy.
I also have a 2013 15" rMBP of which I think very highly. I can mount my 2tb of desktop storage, and my SSD as a network drive on the MacBook for sharing files. I also use SSH to run intensive scripts (sometimes GPU stuff) on the desktop.
10/10 would recommend this setup
for the past few years my main computer has been a self-built 3930k 6-core 64gb ram linux box with a couple of SSDs, lately running pretty much everything in i3 under virtualbox VMs (see my profile for my blog describing how I set it up, basically debian based with networking running over pfSense to firewall individual VMs) with 3 monitors,only upgrade would be to move to 3x1440p, but I am doing ok with only the center being that resolution and the side ones being smaller.
Works amazingly well to have everything in VMs, very easy to maintain and to use. Giving up a little bit of speed compared to bare metal but hasn't been an issue up to now and is worth the peace of mind to run everything virtualized.
This of course would not work for games development and/or GPU-based development in general, but for general back-end dev work it's been great.
Works amazingly well to have everything in VMs, very easy to maintain and to use. Giving up a little bit of speed compared to bare metal but hasn't been an issue up to now and is worth the peace of mind to run everything virtualized.
This of course would not work for games development and/or GPU-based development in general, but for general back-end dev work it's been great.
Home 1: 4k TV with a Macbook Pro 13" running OSX
Home 2: 1080p TV with an 8G/8 core Acer running Solaris 11.1
Home 3+: various laptops running as servers with Linux
Work 1: 15" Macbook Pro with a 27" Mac Monitor Work 2: 17"? Dell Laptop with 32G/8 cores
Keeping configurations sane is something that I've been unable to keep track of yet with the variety of OSs I'm running. Mostly I use emacs and pass around a .emacs.d git repository but that still seems to have problems.
Most machines run 'nicely' without too much configuration. Solaris is about as rock solid as they get if you don't mind running 10 year old software...but it screams and with running a simple WM and it's almost too fast and could be considered 'twitchy'.
Keyboards are a combination of builtin on the laptops and Unicomp Model M keyboards.
Throwaway mice.
Work 1: 15" Macbook Pro with a 27" Mac Monitor Work 2: 17"? Dell Laptop with 32G/8 cores
Keeping configurations sane is something that I've been unable to keep track of yet with the variety of OSs I'm running. Mostly I use emacs and pass around a .emacs.d git repository but that still seems to have problems.
Most machines run 'nicely' without too much configuration. Solaris is about as rock solid as they get if you don't mind running 10 year old software...but it screams and with running a simple WM and it's almost too fast and could be considered 'twitchy'.
Keyboards are a combination of builtin on the laptops and Unicomp Model M keyboards.
Throwaway mice.
I run a Mac Pro 5,1 (2010). It's a fantastic piece of hardware and I doubt we'll see anything quite like it anytime soon. It's ancient in a sense, but it's very fast and it runs OS X 10.12. I wanted the pre-2013 model (the large aluminum box) specifically for the 4 HDD bays.
I sync most of my dot files to Dropbox (symbolic-linked). I use software you've heard of: Sublime, Karabiner, Moom, Brew, Omni stuff, f.lux, &c. Sometimes I run acme.
I use a Topre keyboard, a Deathadder, and a 2007FPB 1600x1200. I like the Deathadder but it's a bit too large. Peripherals are very personal choices, so I won't make generic recommendations, but having a good middle-click is very important (esp. for acme).
I sync most of my dot files to Dropbox (symbolic-linked). I use software you've heard of: Sublime, Karabiner, Moom, Brew, Omni stuff, f.lux, &c. Sometimes I run acme.
I use a Topre keyboard, a Deathadder, and a 2007FPB 1600x1200. I like the Deathadder but it's a bit too large. Peripherals are very personal choices, so I won't make generic recommendations, but having a good middle-click is very important (esp. for acme).
Macbook Pro 10,1, early 2013. Still a very speedy machine, although I do covet the new SSDs that are almost an order of magnitude faster. Apple bluetooth keyboard, and some random mouse and an external 24" monitor. Ruby on Rails, iOS, web dev.
I use a Macbook Air from 2013 driving 2 24'' monitors at work. I have to use a USB 3.0 to DisplayPort adapter. It's not ideal. At home I use a 27'' monitor.
I would like to upgrade but the Macbook Pro that came out is expensive for what you get. I would like 32 GB of Ram. I probably will pretty soon.
Also, I have 2 desktops at home which I SSH into. One is a Haswell Xeon machine with 8 cores, 128GB of ram, 2 GPUs. I have another i7 machine, 4 cores, 32GB of ram, and a GPU. I do machine learning and data processing on them.
I would like to upgrade but the Macbook Pro that came out is expensive for what you get. I would like 32 GB of Ram. I probably will pretty soon.
Also, I have 2 desktops at home which I SSH into. One is a Haswell Xeon machine with 8 cores, 128GB of ram, 2 GPUs. I have another i7 machine, 4 cores, 32GB of ram, and a GPU. I do machine learning and data processing on them.
2014 13" Retina Macbook Pro on a Rain mStand alongside my Thunderbolt display. On the desk I also have a mechanical keyboard with cherry blue switches, Logitech G502 mouse and Apple desktop trackpad.
Not machine related, but very important to my setup, I have a Herman Miller Mira chair and Ikea motorised sit/stand desk, although I don't stand nearly as often as I should!
I think generally as long as you have a suitably powerful computer for your job, the peripherals and desk environment are most important.
Not machine related, but very important to my setup, I have a Herman Miller Mira chair and Ikea motorised sit/stand desk, although I don't stand nearly as often as I should!
I think generally as long as you have a suitably powerful computer for your job, the peripherals and desk environment are most important.
I have a Lenovo Thinkpad W550s (i7-5500U and 16GB of RAM). I dock it and use two 1920x1080 monitors (and not the monitor on the computer) with a bluetooth mouse and a Microsoft ergonomic keyboard. It's provided by my company's IT department who keeps up security, though I do much of my development in an Ubuntu VM. If I was providing my own machine, I'd probably do similarly but use Ubuntu as my main OS and have Windows for the few Windows-specific tools I need.
Main machine is a custom built: 6700k, 32gb ram, gtx1080, win 10.
Laptop: 2016 MacBook fully spec'd out.
On both I use atom and docker. I mount my files from a network share so I can always access them.
Laptop: 2016 MacBook fully spec'd out.
On both I use atom and docker. I mount my files from a network share so I can always access them.
For me I actually spent a fair bit of time trying to decide what machine to get, after my iMac died. What I went with is a docked 15 inch MBP (16gb ram, 2.5ghz i7)
Display's on desk are an HP 32-inch envy (main) and portrait 24 inch dell p2414 (secondary)
Mouse is logitech m705, keyboard corsair mechanical keyboard
dev done in virtualbox linux VM, which i definitely recommend doing if you can get away with it.
I will likely move to a linux machine next time around, short of apple surprising us with a new release.
Display's on desk are an HP 32-inch envy (main) and portrait 24 inch dell p2414 (secondary)
Mouse is logitech m705, keyboard corsair mechanical keyboard
dev done in virtualbox linux VM, which i definitely recommend doing if you can get away with it.
I will likely move to a linux machine next time around, short of apple surprising us with a new release.
If you're using a Linux VM, is there a difference between using a Mac vs Windows?
Yes, for me I have a lot of stuff still in OSX, and a few hard-to-leave apps.
When my iMac died, i moved my VM to my PC and was able to get back to work with minimal downtime. But even within my VM, I found windows managed to interrupt the experience enough that I went and bought a mac sooner than later. Which is a shame, because my VM gets about twice the performance on the PC.
So for me it's now Mac for leisure, Windows for gaming, Linux VM for work.
But I will move to Linux for leisure, linux VM for work, and (maybe) windows for gaming. I may end up getting a low-end Mac and using VNC or RDP for the few mac apps I really want, if I can't find alternatives.
When my iMac died, i moved my VM to my PC and was able to get back to work with minimal downtime. But even within my VM, I found windows managed to interrupt the experience enough that I went and bought a mac sooner than later. Which is a shame, because my VM gets about twice the performance on the PC.
So for me it's now Mac for leisure, Windows for gaming, Linux VM for work.
But I will move to Linux for leisure, linux VM for work, and (maybe) windows for gaming. I may end up getting a low-end Mac and using VNC or RDP for the few mac apps I really want, if I can't find alternatives.
I've got a Thinkpad X1 Carbon (2015) that I run hooked up to two external 27" 1080p monitors along with the 14" 1080p laptop screen itself. My host OS is Windows 8.1 with my Chrome/Word stuff, some Visual Studio, and then I have an Ubuntu VM I run for all other types of development.
The portability and battery life of this laptop are what I love most.I can go to a coffee shop for 9-10AM and work through to 5PM without needing my charger.
The portability and battery life of this laptop are what I love most.I can go to a coffee shop for 9-10AM and work through to 5PM without needing my charger.
Does it overheat with three monitors? Have an x220 (older notebook but with 16gb and SSD) and it is impossible to use it with two external 1080p monitors without cpu throttling.
No it seems fine. How would I test for CPU throttling?
That said, I do find 8GB RAM restrictive for the number of tabs/VM I have open and wish I had 16GB. Also, I think the SSD might be slowly dying because it's had many, many writes on it by now (reformats, VMs, videos, etc.) and sometimes Windows takes ages to open Explorer to show me my files.
> How would I test for CPU throttling?
Use https://www.hwinfo.com/ it will show you the CPU multiplier, if you experience throttling the multiplier will be low and never go up. Look at the following picture: http://cdn.ultrabookreview.com/wp-content/uploads/2014/03/hw...
Use https://www.hwinfo.com/ it will show you the CPU multiplier, if you experience throttling the multiplier will be low and never go up. Look at the following picture: http://cdn.ultrabookreview.com/wp-content/uploads/2014/03/hw...
Thinkpad W541 (i7, 32gb RAM, SSD), running Fedora, often connected to an external monitor, mouse and keyboard.
For travel, I use Thinkpad X1 Carbon (3rd gen), also running Fedora.
Nowadays I mostly work on native Android dev, so environment is primarily just AndroidStudio, vim, terminal (Guake) and what seems like hundreds of open tabs.
It used to be all Macbooks for many years though. I still have a 2012 tricked out Air and a 2013 rPro, which I need to sell off.
For travel, I use Thinkpad X1 Carbon (3rd gen), also running Fedora.
Nowadays I mostly work on native Android dev, so environment is primarily just AndroidStudio, vim, terminal (Guake) and what seems like hundreds of open tabs.
It used to be all Macbooks for many years though. I still have a 2012 tricked out Air and a 2013 rPro, which I need to sell off.
I'm using an ASUS Ultrabook that is 4ish years old. I got it as a free hand-me down from my father-in-law. It has an i3 processor, 8GB ram (it started with 4 but I upgraded and maxed it out) and 500GB hard drive. My favorite part is that it is a 15" screen, which I absolutely love and could not go back to a smaller laptop.
I use a ThinkPad T410 (2010) with i5, 8 GB RAM, and 7200 RPM HDD and a headless Debian server running on an Intel Atom (also circa 2010) with 2 GB RAM and 7200 RPM HDD.
Most of my development is done on the headless server using ssh + tmux + vim, though I will use Visual Studio or gvim on the ThinkPad if my current development is targeting Windows.
Most of my development is done on the headless server using ssh + tmux + vim, though I will use Visual Studio or gvim on the ThinkPad if my current development is targeting Windows.
Build a computer on Newegg. Today is black Friday. Get an i7, some SSDs, an NVidia 1080, 32GB of RAM. Full power!
An old Acer which I didn't even care about specs. What's important to me:
- Works with LXDE, Sublime Text, Terminator and Chromium at same time without problems
- Doesn't run games very well
- Enough HD
That's it. Fast for work only. Unless I want to use some IDE or emulate some mobile, but that's not my case.
- Works with LXDE, Sublime Text, Terminator and Chromium at same time without problems
- Doesn't run games very well
- Enough HD
That's it. Fast for work only. Unless I want to use some IDE or emulate some mobile, but that's not my case.
- 13" 2015 Macbook pro with 2 external monitors (34" and 24")
mostly used to ssh to a powerful 16 core ec2 instance (amazon linux), which is where I do all my development
- iterm2 with tmux and oh-my-zsh
- mostly vim / clion / intellij based on what I am coding atm.
- iterm2 with tmux and oh-my-zsh
- mostly vim / clion / intellij based on what I am coding atm.
Chromebook that I boot elementaryos on, vscode, azure, redis, jupyter notebooks, and Julia language.
With these tools I can do basically anything. Better put, I have yet to find something I CAN'T do. Maybe someday...
With these tools I can do basically anything. Better put, I have yet to find something I CAN'T do. Maybe someday...
headless machine with a low-wattage i5, 32g of ram, evo ssd, and an r9 200 gpu. I can leave it on 24/7 and ssh in from either my gaming desktop or my ultra light laptop or my android tablet. gradle / java / Android builds take about 12s on a warm package cache; the process is still storage limited, not cpu. the gpu has more than enough grunt to prototype and test ML apps. plenty of memory to keep a full ngnix / jetty / Maria / memcache running for client demos and still work on other stuff.
i3 window manager - it has a fantastic optimized workflow that I love. I also pair it with a nice mechanical keyboard that has Cherry MX blue switches.
Arch Linux - I don't have to re-install or distro-upgrade my laptop every 6 months, or year. I just keep it up-to-date on a continuous basis. Arch Linux lets me keep things simple and clean.
I also regularly perform system maintenance, like removing packages I don't use anymore. I also never make install software, or use CPAN, or npm global install, or what have you, to screw up Arch Linux/
Arch Linux - I don't have to re-install or distro-upgrade my laptop every 6 months, or year. I just keep it up-to-date on a continuous basis. Arch Linux lets me keep things simple and clean.
I also regularly perform system maintenance, like removing packages I don't use anymore. I also never make install software, or use CPAN, or npm global install, or what have you, to screw up Arch Linux/
my stack of free windows progamms:
http://www.ninite.com installer for the basic bunch of stuff (browsers, skype, thunderbird and many more)
And these things (names of the installer in my download dir):
http://www.ninite.com installer for the basic bunch of stuff (browsers, skype, thunderbird and many more)
And these things (names of the installer in my download dir):
ddmsetup1800.exe //some dell monitor tool to control brightness on my external monitor (with an AHK script for hotkeys)
AutoHotkey_1.1.24.03_setup.exe //keyboard shortcuts and clicking with the keyboard against stress injury from testing apps XD
HexChat 2.12.3 x64.exe //IRC client
tsetup.0.10.19.exe //Telegram messenger
AstroGrep_Setup_v4.4.5(1).exe //grep for windows
Wox-1.3.183.exe //alt+space launcher
Everything-1.3.4.686.x64.Multilingual-Setup.exe //indexed search
neo20(1).exe //my german esotherical keyboard layout (www.neo-layout.de)
OpalCalcSetup(1).exe //best calculator, sadly just a demo, will need to buy this
Ampps-3.6-setup.exe //local server for wordpress stuff
TeamViewer_Setup(1).exe
qutebrowser-0.8.4-amd64.msi //keyboard driven browser, experimental state still
SetupProjectTimer(2).exe //time tracking
koala_2.0.4_setup(1).exe //SCSS compiller
setuploopbe1(1).exe //virutal midi cable (lol)
flux-setup(1).exe //tints the monitor at night
EqualizerAPO64-1.1.2.exe //global equalizer (I measured my room with "room EQ wizard" and correct a bit)
DisplayCAL-3.2.0.0-Setup.exe //for monitor calibration with calibration hardware (using an old spyder 3)
calibre-64bit-2.72.0.msi //ebook management
ownCloud-2.2.4.6408-setup.exe //storing and syncing my personal markdown/flatfile wiki
MouseSpeedSetup(1).exe //lowering mouse speed for my high-dpi external mouse
LeapdroidVMInstallerFull.exe //last release of this android emu
RATM_Mouse_7_0_47_1_x64_Software(1).exe //mouse driver
AtomSetup(1).exe //Atom text editor
vs_community_ENU(1).exe //VS
kodi-16.1-Jarvis.exe //for watching suff in bed
vtuploader2.2(1).exe //virus total scans via right-click in the explorer
SlackSetup(1).exe //for team chat
Monotype_SkyFonts_Winx64_5.7.0.0.exe //hate this, but still the easiest way to get some google fonts on your systemI use two thinkpads T560(win) & L450(linux) and just dock them when using either one for more monitors
I do miss having more than dual core cpus...
I do miss having more than dual core cpus...
x230 with 16GB RAM and a 256GB SSD from 2013 - and I see absolutely no need to upgrade.
These are my "pain" points:
- RAM: with too many VirtualBox VMs running (e.g. Clusters for testing) I have to close some other applications, but 32GB is so hard to get in a laptop, not worth it I guess
- CPU is fine unless I'm in a hangout. Seriously, WTF Google
These are my "pain" points:
- RAM: with too many VirtualBox VMs running (e.g. Clusters for testing) I have to close some other applications, but 32GB is so hard to get in a laptop, not worth it I guess
- CPU is fine unless I'm in a hangout. Seriously, WTF Google
2015 MacBook Pro, connected to a 43" 4K TV. I can spread so many windows on that screen it's ridiculous.
iMac 27inch i5 mid-2011. Upgraded to 32GB of RAM. Just added a 1TB SSD drive and boot from this and it is now like a brand new machine. The existing 1TB drive is used for cold storage.
To load dev environments I use vagrant.
To load dev environments I use vagrant.
thinkpad t460 with 32gb of ram and 1tb ssd (upgraded from the minimum options)
I hook that up to a nice keyboard/mouse/monitor setup when at my work desk.
I hook that up to a nice keyboard/mouse/monitor setup when at my work desk.
I am continually amazed that so many people that I know (and everybody posting here so far, as I write this) use notebook computers as primary. Do you all really need to do real work at continuously-changing locations?
I do have a notebook for airplane/offsite work. But in my case, a desktop workstation is absolutely more productive.
Right now I use a Mac Pro, which I guess I bought in 2013 since that's when it came out. It was kind of expensive, but I've been using it for years, and it is still much faster for my workflows than any notebook (save 17" monsters, perhaps?). It has 64GB of RAM, so I can run Windows and Linux VMs without getting loaded. Since it's stationary and connected to full-time power (and UPS) I can augment the internal 1TB SSD with a big external 10TB RAID5 rig (a Pegasus2 thunderhole box, not as fast as the internal SSD but still does a respectable 900MB/sec or so).
It drives a 27" 5K display, and could drive another one, which I would totally do if macOS multi-monitor support hadn't gotten so shitty over the recent few releases. It could theoretically drive 3, but in my case I'm using some of the thunderholes for other purposes.
Plus: ECC memory. For me it has always just been a gut feeling, it makes machines more stable. But over the years, several helpful posts on this very internet forum (including a few recent ones) have been made by people who track the "cosmic ray" memory errors that will flip a bit from time to time. Nice not having those.
As for configuration, the best time-saver is to do a lot of development work in VMs, which tend to have great snapshotting capabilities. Automate setup of the dev environment, then nuke and rollback often. (I even do this every morning for some projects; with a Linux VM in VMWare Fusion, it's truly painless.) With guest-host filesystem sharing mechanisms, you can still use all the great Mac development tools, while running your code on Linux and using the tools there too. (Or even Windows, I've had to do that a few times and it works great. Or at least, better than on a physical Windows PC.)
The biggest pain point is actually maintaining the host macOS. I fantasize about moving off the Mac, and instead running Linux on a much beefier and less expensive workstation. But I estimate that's still about 20 or 30 years away from viability as a day-to-day workstation-class OS.
I do make a point to nuke and clean install my macOS every few months, though. That's the only way I've found to ensure that your dev setup is reasonably automated and reproducible.
Beyond the computer, I second the fellow in this thread who said the desk is a top priority. I use a GeekDesk motorized frame (with a slab of wood desktop I attached). Sitting desks are bad, standing desks are bad, but sit/stand desks are good.
Finally, I gave up on wireless input devices a few years back. That sucks in some ways, but I found wireless mice in particular to be flaky with like... 99% or 99.5% reliability. Which meant my mouse didn't work 0.5-1.0% of the time.
I use a Code Keyboard and a wired gaming mouse (even though I don't use the computer for games). Made my life easier, and like the Mac Pro itself, these devices seem to have a 5-10 year service life, not the 1-1.5 year service life I get out of a MacBook Pro before I have to buy a new one.
I do have a notebook for airplane/offsite work. But in my case, a desktop workstation is absolutely more productive.
Right now I use a Mac Pro, which I guess I bought in 2013 since that's when it came out. It was kind of expensive, but I've been using it for years, and it is still much faster for my workflows than any notebook (save 17" monsters, perhaps?). It has 64GB of RAM, so I can run Windows and Linux VMs without getting loaded. Since it's stationary and connected to full-time power (and UPS) I can augment the internal 1TB SSD with a big external 10TB RAID5 rig (a Pegasus2 thunderhole box, not as fast as the internal SSD but still does a respectable 900MB/sec or so).
It drives a 27" 5K display, and could drive another one, which I would totally do if macOS multi-monitor support hadn't gotten so shitty over the recent few releases. It could theoretically drive 3, but in my case I'm using some of the thunderholes for other purposes.
Plus: ECC memory. For me it has always just been a gut feeling, it makes machines more stable. But over the years, several helpful posts on this very internet forum (including a few recent ones) have been made by people who track the "cosmic ray" memory errors that will flip a bit from time to time. Nice not having those.
As for configuration, the best time-saver is to do a lot of development work in VMs, which tend to have great snapshotting capabilities. Automate setup of the dev environment, then nuke and rollback often. (I even do this every morning for some projects; with a Linux VM in VMWare Fusion, it's truly painless.) With guest-host filesystem sharing mechanisms, you can still use all the great Mac development tools, while running your code on Linux and using the tools there too. (Or even Windows, I've had to do that a few times and it works great. Or at least, better than on a physical Windows PC.)
The biggest pain point is actually maintaining the host macOS. I fantasize about moving off the Mac, and instead running Linux on a much beefier and less expensive workstation. But I estimate that's still about 20 or 30 years away from viability as a day-to-day workstation-class OS.
I do make a point to nuke and clean install my macOS every few months, though. That's the only way I've found to ensure that your dev setup is reasonably automated and reproducible.
Beyond the computer, I second the fellow in this thread who said the desk is a top priority. I use a GeekDesk motorized frame (with a slab of wood desktop I attached). Sitting desks are bad, standing desks are bad, but sit/stand desks are good.
Finally, I gave up on wireless input devices a few years back. That sucks in some ways, but I found wireless mice in particular to be flaky with like... 99% or 99.5% reliability. Which meant my mouse didn't work 0.5-1.0% of the time.
I use a Code Keyboard and a wired gaming mouse (even though I don't use the computer for games). Made my life easier, and like the Mac Pro itself, these devices seem to have a 5-10 year service life, not the 1-1.5 year service life I get out of a MacBook Pro before I have to buy a new one.
Everyone else seems to be recommending laptops, me, I don't have that sort of lifestyle and prefer desktops and the superior keyboards you can get for them (https://elitekeyboards.com/products.php?sub=special&filter=s...), a mouse which least aggravates my RSI (Scope Node, curiously enough, since I think it was designed to more be cool than ergonomic), and a big high quality screen (currently a NEC with a 4 year warranty), my eyes are getting old (and this does double duty for watching DVDs and Blu-rays from a conventional player), etc. etc., so, as of 2014 (last time I built one):
Supermicro server or workstation motherboard that supports ECC.
Xeon processor to support the ECC, either the near cheapest or the fastest one before the knee in the price/speed curve hits, each generation was getting me another 100Mhz for "free". Arctic Silver heat sink compound, stock CPU fans (which I'm not sure they're shipping anymore). Arctic fluid bearing fans in general, BTW, and I use a non-contact thermometer to make sure there's no hot spots on the steadily fewer chips on these motherboards.
Cheapest Intel enterprise SSD for the system (e.g. 80GB SATA, only 1/3 the capacity in writes for 5 years but that's enough; I expect my next motherboard will use a more serious PCIe one, though).
Seagate Constellation "Enterprise" SATA hard disk for media, distribution software and other "cool" or cold storage (that might buy you better firmware, it will buy you a 5 year warranty, which you will statistically end up using).
Seasonic higher quality power supply.
Cases, well, I really liked a Lian-Li model they don't sell any more, I bought a bunch of those for myself and my parents and just cycle through them for each new build.
For my development (and media watching) purposes, Intel's on chip GPU is entirely satisfactory, and as of late, Supermico has a line of what are clearly workstation motherboards, plenty of slots including 1-2 for GPUs, no IPMI management port, HDMI output which covers video and sound output (I use a Turtle Beach USB analog dongle for Skype), really very little is on the board anymore.
And the systems I've been building with these parameters for 2 decades, and always run on a power conditioner or since 1999 an APC Smart-UPS, have yet to die in service, besides some of the Seagate hard drives (and I used to build, and still have in service, 15K SAS drives before I trusted SSDs enough).
But that'll be put to the test now, since there's no major speedup available from a newer system besides e.g. PCIe SSD support which I don't need, and 32 GiB of Kingston memory (lifetime warranty, which I've had to use once for a stick on a non-ECC Mini-ITX board) "ought to be good enough for anyone" ^_^. Although I note that Ubuntu 14.04 + BackupPC full backups actually consume all and more of my DRAM....
Last time I priced such a system, it weighed in around 1,000 US$, note of course I'm recycling the case and external peripherals.
Supermicro server or workstation motherboard that supports ECC.
Xeon processor to support the ECC, either the near cheapest or the fastest one before the knee in the price/speed curve hits, each generation was getting me another 100Mhz for "free". Arctic Silver heat sink compound, stock CPU fans (which I'm not sure they're shipping anymore). Arctic fluid bearing fans in general, BTW, and I use a non-contact thermometer to make sure there's no hot spots on the steadily fewer chips on these motherboards.
Cheapest Intel enterprise SSD for the system (e.g. 80GB SATA, only 1/3 the capacity in writes for 5 years but that's enough; I expect my next motherboard will use a more serious PCIe one, though).
Seagate Constellation "Enterprise" SATA hard disk for media, distribution software and other "cool" or cold storage (that might buy you better firmware, it will buy you a 5 year warranty, which you will statistically end up using).
Seasonic higher quality power supply.
Cases, well, I really liked a Lian-Li model they don't sell any more, I bought a bunch of those for myself and my parents and just cycle through them for each new build.
For my development (and media watching) purposes, Intel's on chip GPU is entirely satisfactory, and as of late, Supermico has a line of what are clearly workstation motherboards, plenty of slots including 1-2 for GPUs, no IPMI management port, HDMI output which covers video and sound output (I use a Turtle Beach USB analog dongle for Skype), really very little is on the board anymore.
And the systems I've been building with these parameters for 2 decades, and always run on a power conditioner or since 1999 an APC Smart-UPS, have yet to die in service, besides some of the Seagate hard drives (and I used to build, and still have in service, 15K SAS drives before I trusted SSDs enough).
But that'll be put to the test now, since there's no major speedup available from a newer system besides e.g. PCIe SSD support which I don't need, and 32 GiB of Kingston memory (lifetime warranty, which I've had to use once for a stick on a non-ECC Mini-ITX board) "ought to be good enough for anyone" ^_^. Although I note that Ubuntu 14.04 + BackupPC full backups actually consume all and more of my DRAM....
Last time I priced such a system, it weighed in around 1,000 US$, note of course I'm recycling the case and external peripherals.