Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
macOS Developer Setup (chrisatmachine.com)
53 points by olzhasar on June 29, 2023 | hide | past | favorite | 43 comments


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).


asdf is the best. it's as big a game changer as brew was when it started.

there's also rtx (asdf clone but in rust) if someone wants that.


What’s wrong with python on Mac? I’ve mostly dabbled with it via Ubuntu in the past


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.

asdf helps quite a bit now.


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.

https://www.raycast.com/store


Was there any other reason for switching to Raycast other than it being 'snappy' compared to Alfred?

Asking as a long time Alfred user. I've looked at Raycast, but can't really figure out what it does that Alfred doesn't.


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 use Mackup to sync Raycast settings, so I guess the cloud service is only useful if you want the other paid features.

Config is stored at ~/Library/Preferences/com.raycast.macos.plist

Everything else is at ~/Library/Application Support/com.raycast.macos


So Raycast picks up where Quicksilver left off? Wei wu wei.


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.

[0] https://github.com/caleb531/open-conference-url


I've got shortcuts for stuff I need

'rpg <autofilled list of games>' opens up roll20 for a specific game + a bunch of PDF rule books related to it

'gg <name of service on my own network>' opens the web page for that service or a directory on my NAS

I can look up and copy any emoji by typing 'emoji <part of the name>' and press enter to copy it to my clipboard

Bunch of small things that take 10-15 minutes to set up and then just work forever without any intervention


A few things I use:

1) File system browser: I just type "/" and can start navigating anywhere

2) Google search without opening a browser first

2) Workflow to toggle dark and light mode just by typing "dark".

3) On Ventura, I use Alfred to search System Settings, because the System Settings app itself is trash.


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?


How often do you use different machines?


Random remote machines? A lot. Somebody else’s laptop/desktop? Not that often any more, of course, but sometimes.


I have a minimal chezmoi setup for this, it pulls a few basic config files from github and makes sure software is correctly installed.

It all works by downloading the chezmoi binary and saying 'chezmoi init --apply <my github username>'


Raycast looks interesting. I’ll have to poke around that app. Spotlight has been giving me headaches lately.


> 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.


iTerm2 is an astonishingly good piece of software. This article is garbage.


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.


> brew install blender # video editing

People use 3d modelling and animation software for video editing? Is that common?


I've seen it enough times to believe its kind of common. Blender is a pretty decent video editor ..


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


Why (and how) would you do kernel programming on macOS when you’re not employed by Apple?


I'm not talking about macOS kernel programming, though. Instead: Linux, BSD, or any other open source OS...


I would assume that is always (or very often) easier on the target platforms. At least as long we’re not talking about embedded platforms.


I also used scrollreverser in the past, but it’s no more necessary in newer macOS versions. You can do the same from regular settings


The initial parts around bumping up the key repeat and many others can be automated as well.


I feel like I’m one of the only people who actually like the built in macOS terminal app.


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.


What’s the deal with making caps lock escape? Why not use the esc key?


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.


And some Macs don't even have an escape key.


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.


I use it as both. Control when held and escape when tapped.

setxkbmap -option ctrl:nocaps

xcape -e 'Control_L=Escape'


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).


So afraid of movie night now.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: