Moving to MacOS from Linux

Hi guys,

Apologies if this is off-topic, please feel free to change the category from programming to social if you deem appropriate.

I just got given a new Macbook Pro from my work. My background is generally Windows but I have been working solely on Linux (Xubuntu) for the last year. I really got hooked on the feeling of ‘closeness’ with what’s going on under the hood that you get with Linux. However having access to some apps only available on Mac/Windows has made the switch necessary.

Does anyone have any general advice on MacOS programming/setup? I would love to hear you opinions!

Thank you for taking the time to read (and hopefully respond to) my post! :smiley:

I switched from Linux to Mac a few years back, and I love the change :slight_smile:

You can’t maybe get as close to the OS, but you can get pretty close still compared to how something like Windows feels. I’d definitely recommend getting Homebrew installed and running everything through that. Set up a Brewfile for yourself etc.

Beyond that, I guess it comes down to what your Linux setup looked like and what you want to replicate?

I maintain a personal TODO list for myself when setting up a new machine in the README of my dotfiles repo - maybe it’ll be helpful to you: GitHub - iHiD/dotfiles: My Dotfiles :slight_smile:

3 Likes

Hi Jeremy!

Thank you for your quick response. I’ll definitely look into Homebrew more, I used it yesterday to setup the Exercism CLI on my machine but haven’t done anything more with it yet.

Thank you for your response and link to your TODO, just having a read of it now!

1 Like

Hi Jeremy,

I know you have already responded but I was particuarly interested in the reasons behind you saying ‘I love the change’.

Would you be kind enough to expand upon this a little please?

Cheers,

Alex.

1 Like

Its been a while now (~8yrs) since I’ve used Linux as a desktop machine day-to-day, so read this with that in mind. But also I used Linux as a desktop machine for over a decade, and still have a Linux machine that I use sporadically (normally for Machine Learning things requiring GPUs)

I loved Linux for the level of customisation etc I could get. I was a Gentoo user for a while so I took that bit seriously, but also spent a long time using more normal distros. It felt powerful and freeing and fun. But it also meant things broke reguarly. Where breaking sometimes meant little annoyances but often meant major issues.

Mac took away some of the freedom, but instead gave me stability. I think it made me feel less like the super-powerful geek and more like a joyful user of a computer. At stages in my life, I’d rather be the super-powerful geek, but day-to-day, coding and running businesses, stability and ease outweighs the other feelings for me.

Also, I think to get the most of out Linux you have to invest time into it. I probably stopped having the time (or the desire to spend my time on this) and so as a result was getting more pain and less pleasure.

There were small tangible things as well. At the time there were Mac-specific apps that I really wanted to use, which made me more productive etc (I can’t remember specifics off the top of my head). Again, that landscape will have changed now, but back then it made a big difference to me.

So lots of small reasons, and many of them were maybe related to how my relationship with my OS changed. Definitely no absolute “Mac is better than Linux” or anything, but I definitely feel more settled, calm and joyful using Mac than Linux now-a-days :slight_smile:

1 Like

Thank you for your insightful response :smiley:

1 Like

I am a Windows user and have to work a lot with Linux machines. There are some activities where I can directly sign the “joyful user” aspect. Surprisingly it is on both sides of the aisle. Especially for programming related tasks, the joy is often with Ubuntu and the solution is as easy as sudo apt install xy, while Windows is some undocumented third party mess that has not been updated since 2004.

1 Like

My context: I used Linux last in 2012; Windows last in 2008 thereabouts. So it’s been a while. I don’t remember Windows, but I remember the joy of having to configure my Linux from scratch and knowing what exactly is going on when something-breaks™

My first foray into OS X was during the skeuomorphism era. So I was hooked on the look and feel. But since 2017 thereabouts, I don’t remember when last I heavily depended on the App Store, or Mac apps in general. There’s always a way to get stuff done in the Terminal (preferably “iTerm 2”) that can be done in an app.

Now, most of my time is spent in the terminal (iTerm) and the browser (Arc) — just like my Linux days.

  • HomeBrew is a good start
  • Spend some time on AskDifferent — the StackOverflow site
  • Get a Spotlight replacement: Alfred 4 is battle-tested, RayCast is the new kid on the block (preferred for power users)

If you have any questions or doubts, I am willing to help share some OS X-perience :slight_smile:

1 Like

Hi igbanam!

Thank you so much for taking the time to respond. I’m glad you mentioned iTerm 2, I was not aware of this terminal replacement, it already feels superior to the stock terminal.

The fact you spend most of your time between terminal and browser now is particularly interesting. Would you be kind enough to expand upon some of the common tasks/things you do in the terminal, or perhaps your suggestions for how people can improve their workflow/computer usage via the terminal.

Also, why do you suggest replacing Spotlight? From my limited (5 days) experience, it seems quite good. A few other people I know who use mac are big fans of it.

1 Like

From my perspective:

  1. It breaks lots. It’s constantly out of date and I’ve had numerous indexing issues with it over the years. This of course might now have been fixed by as of a couple of years back, it has a tendency to randomly become terrible
  2. Alfred is just really good - really customisable etc. So even if Spotlight was good, I’d still want to go with Alfred as it being a step up (you’ll notice it in my README above :wink:)
1 Like

Sure!

For context: I’m a dev, and I work in a dev shop. Most of what I do day to day are

  • write code
  • contribute to the collective repository
  • read and respond to emails (and Slack)
  • write and vet documentation
  • meetings

Write code

My setup here is Vim + TMux. My dotfiles are online if you want to take a peek. Challenges like 12in23 help me build out a better editor for multiple scenarios. iTerm is a TMux wrapped in a GUI. So you may not worry about TMux for now.

Repository Contributions

We use GitHub (I also use JIRA as well; but not BitBucket). The GitHub CLI — brew install gh — is the tool I use to interact with Github without going to the browser. PRs, issues, and all that is done from my CLI.

For JIRA, there’s the go-jira package — brew install go-jira. It may take some setting up, and is not as robust as gh, but it also brings JIRA to my terminal.

Team Communications

This one, I resorted to using the GUI apps. So Slack for Slack, and GMail for email. I find this works better for my productivity. + the amount of work these two products have put into making themselves usable is IMHO unmatched.

That said, I did dabble into CLI options for both of these at some point

  • Slim for Slack: It brings Slack into Vim, and
  • Mutt for email — which I would use if GMail did not exist in this world

Documentation

I prefer markdown here. This is easy to write in Vim, easy to translate to PDF using pandoc — brew install pandoc — and easy to share with Github Gists. I recently published my personal framework for note-taking, WorkDiary. I recommend it :slight_smile:

I’ve worked in shops which use different products to manage their documentation. In the end, documentation is just text. In the “advanced” mode, it’s “embellished text”.

Vetting documentation is similar to the PR process in “Repository Contributions”.

Meetings

It would be crazy if I had something to meet via the CLI, wouldn’t it :sweat_smile:

For this I use the run-of-the-mill Zoom, Meet, Teams, …or whatever everyone likes.

But… I do use Google Calendar to schedule the meetings, and for that, there’s MeetingBar which does a fantastic job is not allowing me miss meetings when neck deep in the terminal.


If there’s more tips you’d like to learn about, I am willing to share. These are the ones which rushed to top of mind when I read your question

1 Like

For this one, I had to take a picture of RayCast doing something I really found cool, to share with you. This is the downtime a system would have if it had 5 9s availability.

In summary, you can write your own custom scripts — just like the paid version of Alfred — to do stuff around your computer.

1 Like

Apologies on the delay on coming back to you, it’s been a busy week.

Thank you so much for your response, there is so much value here. I have setup MeetingBar, doing this also had the added benefit of making me centralise all of my calendar’s into Apple’s default calendar app, nice :+1:

I also really appreciate you publishing your WorkDiary. This has given me some ideas about automating the creation of the MD file for meetings using MeetingBar and AppleScript!

I am still some way to be able to work in terminal as much as someone like yourself but these are some great pointers to get started! I’m going to give the GitHub CLI a go!

1 Like