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
[ 3.2 ms ] story [ 168 ms ] threadI do miss having more than dual core cpus...
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.
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.
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
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.
https://usesthis.com/categories/developer/
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?
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.
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.
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...
I hook that up to a nice keyboard/mouse/monitor setup when at my work desk.
Just as important as the machine though is the software/ shortcuts I have put on it.
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.
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.
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.
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.
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/
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
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.
- iterm2 with tmux and oh-my-zsh
- mostly vim / clion / intellij based on what I am coding atm.
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.
- 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.
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
Specs:
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.
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.