I noticed they installed version managers for Java, node, and directly installed Go. Never mind the nightmare that is Python on macOS.
I’ve become a big fan of ASDF (https://asdf-vm.com/) for managing language versions. It has plugins for most everything I work with on a daily basis (all those languages above plus Ruby).
Python on the mac is no bother. Like most Linux distros, you simply ignore the existence of any system python and install what you need yourself. You manage your python versions with pyenv and use virtual envs for everything. Problem solved.
I didn’t do that when I set up my dev machine, and got into quite a mess of differing brew install versions plus different repos having different dependencies.
I feel like I’m missing part of the picture. Everybody drags on Spotlight, I figured I must be missing something important so I installed Alfred. I press command+space, I type my application name, and boom. There it is. But I mean, I had that before, out of the box. Is this a power user thing? What great things could I be doing, that I’m apparently not, and that for this cat even Alfred isn’t scratching the itch?
I used (and paid for) Alfred for many years. It was okay, but switched to raycast about 6 months ago and couldn't be happier.
It's really snappy, unlike every other alternative I've tried, and has some good base capabilities, but the extensions store (and how easy they are to write) is the killer feature.
Raycast is free (unless you want cloud sync), and I prefer the UI/UX and menu system it uses. I also felt like many Alfred workflows required fiddling and/or were buggy. In general, Raycast's community ecosystem is a much more pleasant experience than Alfred's workflows (in my opinion).
The UX is just nice, and there's lots of little things to like. Result context menus, quick configuration changes, system control, window management, etc. I can type things into Raycast and can reasonably expect something nice to be suggested, e.g. "pi * 6", "1 month", "1 month from now", "sleep displays", "left half", "schedule", the list goes on.
I'd suggest trying it for a day. If you don't like it, switch back.
So Raycast configurations are hidden and can't be manually synced between machines?
I use Dropbox to sync my Alfred setup (Config, workflows and related files) between 3-4 computers and paying $8/month just for that is a complete no-go.
I like Alfred but I'm not a huge power user. It does have a bunch of other functionality. Out of the box it lets you do a bunch of stuff like filesystem manipulation, clipboard history management, a simple calculator, and stuff like that.
It's also extensible. For example there's a very useful add-on workflow [0] that makes it really quick to open up the next Zoom meeting you have scheduled in your calendar.
A few suggestions:
- You can use a Brewfile to group all of your “brew install” commands into a single command referencing that Brewfile.
- You can avoid manually installing Docker Desktop by installing via the cask (brew install --cask docker)
- You can automate all of the other settings by bringing in your one-off shell commands into a script and using something like dotbot which allows you to bring in dotfiles as well as system setup type scripts.
I’m running a relatively similar setup to you, if you want an example of what I’m talking about, you can check out my dotfiles repo at https://github.com/jonwest/dotfiles
I try to do as little customization as possible and use the default apps as much as possible. That way if I use a different machine (sit down at it or connect over the net) it's likely to already be close to my daily drive.
"as possible" is doing a lot of work here: I also make caps lock escape, have some packages installed with homebrew, have a few magic shell commands, but before I make any change I do stop to think: will this really be worth it?
> I know that iterm2 is a popular choice but it doesn’t have fontfallback which makes it garbage
iTerm2 is my daily driver; so I’m astonished to learn that it’s “garbage.” Maybe it’s just a rhetorical shortcut meant to catch the attention of readers; but why not just say that it doesn’t meet his usage needs?
Haven’t read the article yet, but no it’s not garbage. There’s literally not a single terminal app on linux that remotely comes close to it. ITerm2 is extremely flexible & powerful & well designed. I used to get beachballs w/ it though & I think that went away as I went from using tons of tabs to just 1-4 & tmux for the rest.
Closest I’ve come on linux is xfce4-terminal w/ devilspie2 to fill the gaps.
I received a M1 Mac for my most recent job a few years back after years of Windows at work. The window management drove me nuts on MacOS until I found rectangle. I don’t know how stuff like that is not native to the OS
Try telling some other developer that rectangle is the best window manager...
... you'll realize that a) it's great that these sorts of tools are good additions as apps, and b) why it's tough to please everyone when making something native to the OS.
I think the list is fine, assuming you write the usual user apps.
The tricky part is for doing kernel programming (not something I do for work anyway, just a hobby). Things just easier on Linux. So, add VirtualBox to the list :D
Yeah I like it too most other mac terminals have ugly text rendering, or are noticeably slow, or have a complex config DSL I don't want to learn. Stock terminal mangles ansi colors sometimes but is otherwise great.
Because it's further away. And lots of older applications (e.g. vim) were designed when most keyboards had the escape key placed in the same spot where the caps lock key is today.
I personally like to remap caps lock to control or use a keyboard that has that layout by default. I never use caps lock and it makes control-based shortcuts more ergonomic.
nice. I fight to keep any dev langs from being installed directly; docker keeps me from having to fight between versions. (exception: Terraform, using chtf for the win).
I’ve become a big fan of ASDF (https://asdf-vm.com/) for managing language versions. It has plugins for most everything I work with on a daily basis (all those languages above plus Ruby).