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.
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.
http://accessories.ap.dell.com/sna/sna.aspx?c=au&cs=aubsd1&l...
Windows 10 does all of this.
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.
Do you have any advice on how to keep the memory footprint low?
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 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.
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.
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.
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 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 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).
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.
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.
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.
- 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.
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 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
- 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.
Not really sure what you want to know re: configuration.
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.
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.
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.
Generally agreed, except that SSDs are a major exception which should always be purchased new.
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 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
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.
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 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 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.
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.
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.
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.
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.
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.
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...
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.
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.
- 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.
- iterm2 with tmux and oh-my-zsh
- mostly vim / clion / intellij based on what I am coding atm.
With these tools I can do basically anything. Better put, I have yet to find something I CAN'T do. Maybe someday...
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/
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 systemAlso, what do you have on 7 monitors?
I do miss having more than dual core cpus...
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
To load dev environments I use vagrant.
I hook that up to a nice keyboard/mouse/monitor setup when at my work desk.
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.
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.