Show HN: We open sourced our new Mac developer setup script

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • mac-dev-playbook

    Mac setup and configuration via Ansible.

  • https://github.com/geerlingguy/mac-dev-playbook

    There's a well loved and maintained ansible playbook for macs.

    Just FYI

  • setup-new-computer-script

    This script will help with the quick setup and installation of tools and applications for new developers at Vendasta.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • dotfiles

    A cross-platform, modular dotfiles installer for my personal setup (by spywhere)

  • I did the same with my dotfiles setup, but it's for my personal preferences.

    Moreover, I think I have more options to skip particular part / packages while also try to be idempotent as much as it can.

    https://github.com/spywhere/dotfiles

  • puppet-boxen

    Discontinued Boxen's fundamental modules and types.

  • Boxen (https://github.com/boxen/puppet-boxen) used Puppet to achieve this. It worked, but it was quite opinionated and of course you needed to know Puppet so the learning curve was steep. It's since been superseded by Homebrew which I find is a far better experience.

  • dotfiles

    Mirror of https://git.sr.ht/~sirn/dotfiles (by sirn)

  • Ha, I also have something similar[1], but I use a mix of profiles and flavors. I have two profiles: pkg for installing packages and user for configuring user profiles. Profiles are then broken down further with flavors: dev for development packages, desktop for desktop packages and configurations, and so on.

    I found it highly amusing that we're taking similar approaches for a lot of things: a wrapper function for sudo and fetch, and OS detection (especially the appending WSL suffix part). Mine is not as idempotent as yours, and having a per-package definition is still in my TODO list, though.

    [1]: https://github.com/sirn/dotfiles

  • laptop

    A shell script to set up a macOS laptop for web and mobile development.

  • Nice work! I’ve used a similar script for Ruby dev (actually I use it as a reference rather than just running it, but still useful): https://github.com/thoughtbot/laptop

    The oldest commits on this script are 11 years old and nothing in the last year, which seems quite stable. At the same time I was able to ask an intern to just run it, and bam! they have everything they need installed.

    One use for it that surprised me was hearing a colleague saying that he reinstalls his OS after every change of client and runs the setup script again so there’s no fear of IP theft but also no downtime from having an unconfigured machine.

  • dotfiles

    :wrench: .files, including ~/.macos — sensible hacker defaults for macOS

  • Mathias Byens' dotfiles repo is a bit like this - https://github.com/mathiasbynens/dotfiles. It's highly opinionated, but I found it extremely useful as a starting point for setting up my own dotfiles. This repo seems simliar to me - the point is the sharing, not necessarily that you'd blindly run it without reading through it.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • install-computer

  • I made something similar. Whenever I install a new workstation that runs Linux, I run this script:

    https://github.com/pkrumins/install-computer/blob/master/ins...

    This script installs all packages that I use, links all the dotfiles, all dockerfiles, all services, setups all virtual hosts, and the new workstation is ready to use in 5 minutes. Before it would take weeks to properly set it up as I'd always forget something (missing file or configuration option).

  • computer.setup

    Ansible to get set go faster

  • I as well attempted to structure such tasks better with Ansible, https://github.com/rounakdatta/computer.setup. :)

  • direnv

    unclutter your .profile

  • Nice! I was thinking about something like that too. E.g. building symlinks for all the deps into a local directory and use it as PYTHONPATH. I tried it with your example on GitHub and it worked. And then if all the developers are using something like direnv[1] this PYTHONPATH variable could easily be set for everyone.

    How do you manage dependencies for the fine-grained Bazel targets (like py_library)? Do you write them manually or using some language-specific tools like Gazelle? If you do use the tool, do you have anything in place to automate it?

    Couple years ago I had a pretty bad experience with people complaining about having to execute Gazelle manually. In my ideal world view I'd want to add an import statement in code and just run `bazel build`. So I ended having a wrapper that would run Gazelle before running Bazel all the time, but it slowed thing down quite a bit, because it was doing a lot of unnecessary work.

    [1]: https://direnv.net

  • rules_pyvenv

    Bazel rules for creating Python virtual envs.

  • We currently manage the dependencies manually, although I'm pretty sure work is being done to bring gazelle to rules_python (maybe it's already landed).

    For what it's worth, our venv stuff is at https://github.com/cedarai/rules_pyvenv

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Is there a way to save system preferences?

    5 projects | /r/MacOS | 14 Aug 2022
  • C and Lua FFI for a better gF: jump to file at line and column

    1 project | /r/neovim | 22 Nov 2023
  • The first conformant M1 GPU driver

    5 projects | news.ycombinator.com | 22 Aug 2023
  • How do you change the titles of tabs to display filenames?

    1 project | /r/wezterm | 17 Jun 2023
  • How to create a dotfile for all your Mac system preferences

    1 project | /r/dotfiles | 19 May 2023