As developers we have had to set up our development environment from scratch at least once.
Whether it's after getting a new machine or switching your operating system (as I have done a couple if times 😂) could you share
The first tool/software you setup?
your must-have tools and environment variables?
Top comments (63)
I was so tired to set up dev environment because I was switching computers, changing os, ... that I now use remote workspace solutions.
Pick a server. Something light with 4g of ram and 64g of ssd should do the trick. Install on it docker and docker compose (to create tailored dev environment related to a dev project), portainer (to manage the containers), nginx-swag (to reverse proxy the containers to clean urls), micro (a cool text editor in the command line), fish (to have a better cli with autocompletion and stuff), and then your favorite editors. It could be code-studio, if you are a visual studio user. Or the whole jetbrains suite thanks to jetbrains projector (mind that 4g of ram might not be enough as jetbains IDE are resource black holes).
Now, you have the same dev environment accessible from anywhere, from any device. Laptop, desktop, smartphone, tablet, xbox one x, you name it. As long as it has a wifi connection and a browser.
If you don't want to open source it and handle all of that yourself, you could use external solutions like gitpod.
That's interesting! Never thought of that...remote workspace solutions
It's developping quite quickly recently. Thanks to covid and remote working. You can even build a whole remote workspace (and not only for development) with solutions like kasm. But it's more tailored towards big companies. There you will have a full ubuntu experience directly from the browser
Awesome! Thanks for sharing. Would definitely give it a try
Intriguing!
Ikr
Yeah your coding environment completely "in the cloud" and accessible from anywhere with a thin/dumb terminal (can be almost anything - desktop, laptop, tablet, phone - although the last one is probably not very practical) - that's the holy grail ... doesn't VSCode already have a complete "spaces" solution for this?
I think you are refering to coder.com ?
Hadn't heard about code.com, no I meant Gitbhub Codespaces github.com/features/codespaces
Oh yeah. I haven't tried it yet, as it was (is still ?) in beta
Well that probably means it's free lol, so that's good :) ... if it would be alpha then I'd think twice (typically you're then constantly busy working around problems and issues), but most of the time "beta" means it's almost perfect :)
Seems like a good solution! The experience is the same as using a local machine? You don't notice any delay or screen resolution issues?
The experience is the same. From times to times, projector is a bit laggy because of how heavy it is compared to code-server. But otherwise, 99% of the time you won’t feel a difference
Making sure to take account of relatively recent changes to Docker's licensing model :-)
Things to clean your keyboard and screen!
Maybe it's not what folks were looking for, but if you're starting fresh, you have a chance to keep this one clean.
😂 not what I was expecting for sure
I use a keyboard lock program so I can lock the keys when I clean the keyboard can’t stand a dirty laptop.
My keyboard lock program is the power button
I do wsl2 backup ... and then just restore ;)
VOALA :+)
More info :
I am using Windows yes but all development is inside wsl2.
so I just do :
C:> wsl.exe --export Ubuntu c:\data\ubuntu.tar
copy the ubuntu.tar to the other machined and just do
C:> wsl.exe --import UbuntuOrOtherName d:\wsl\UbuntuDataFolder c:\data\ubuntu.tar
thats all :)
That’s awesome i was unaware you could do that but this year has been the first Microsoft company I’ve worked for in 25yrs. I’m very impressed with Microsoft compared to say XP or Vista. They are really spending some money to become dev platform of choice
The first tool or software that i setup is ofcourse operating system. There's no better tool than it. Setting it up as per my needs is what I first do. And it also helps knowing it better.
Must have tools
Language specific tools
Linux specific
This is neatly laid out.
I have to ask. You're not a fan of chrome browser or Firefox?
Also why'd you pick out Vivaldi? (first time hearing it 😂)
Ehhh it's just i had to install too many extensions for debugging css then the customizations were not enough for me. Accidentally came across Vivaldi. It's got all the css debugging tools i need, got inbuilt screenshot, note taking, emails tracking, great deal of customizations and on top of that, it comes with a nice tab stacking feature which i really love a lot.
Since I’m working for a windows company now it took me awhile to find the tools that give me similar experiences as Mac. I would also add Powertools, Windows Terminal Preview Edition, WSL2, VSC with Tabnine extension and RemoteSSH
I actually love the process of setting up a new dev computer. It’s the perfect time to dump old apps and try new apps.
this
I wrote an article about it How I setup my Development Environment on macOS 2022 Edition
Just went through it. It's a great write up thanks for sharing.
I couldn't help but notice you use a lot of browsers
Yes I have a lot installed but really i'm only using Brave each day and for testing Firefox, Chrome and Safari usually.
And honestly speaking I sometimes have to make a list for the rest but still forgot some tools. My must-haves are usually
I'm sure I've forgotten some but they come as the need arises 😂
I actually use Vagrant to manage my dev environments. I have a repo for my different dev environments that has my Vagrantfile. So any time I reinstall Windows or reset my Macbook I only need to install Vagrant and VMWare Workstation Pro.
Thanks for sharing. First time hearing about Vagrant.
I have a lot to learn!
git
not only for repository project but also for repository software configuration / setting file such as dotfiles in *nix term.
this is make set up more easier, just store your configuration as a git repository and upload on git hosting like GitHub and just clone on your new system / machine.
stow
stow is symlink farm manager, managing dotfiles symlink folder.
simple yet powerful.
docker
for me docker is like lightweight and fast virtual machine or local VPS, with docker I can make Dockerfile (basically just bunch of command to install dependency and pack it into an image file) and I don't need to worry about missing any dependency.
just need to binding port and project folder and you ready to develop and testing.
pretty much my workflow is using docker.
tmux
tmux is a terminal multiplexer, tmux allow you to create split pane, window, and many more without depend on your terminal.
I also install tmux on docker image.
neovim
my text editor of choice, run on terminal, simple, lot of feature such as plugin and LSP.
I also install neovim and LSP (depending on project stack) on docker image and run from docker container.
lazygit
simple terminal UI for git commands.
work great in tmux by setting shortcut to popup lazygit and I install lazygit in docker too.
alacritty
just a simple terminal emulator, nothing more.
great to combine with tmux.
firefox
my browser of choice, not resource intensive and pretty good for reading (documentation for most of the time) and keep connect with people.
using firefox with difference profile just to make it easy to organize.
pretty much my workflow is on terminal.
Fantastic list! stow is essential for setting up a new machine!
The first tool/software you setup?
Probably Homebrew!
your must-have tools
Hard to say but VSCode or Chrome!