Hacker News new | ask | show | jobs
by tbrock 1981 days ago
I have the M1 MacBook Air and it’s best computer I’ve ever owned, hands down. Brought me back to Mac from my X1 carbon 6th gen running Linux (arch btw).

The machine itself?

     - Faster than blue blazes
     - Dead silent
     - Cold to the touch (even when cranking)
     - Has excellent screen and keyboard
     - No touchbar
     - Has bonkers battery life
     - Comes with tiny a/c adapter that charges it quickly
When I say fast I mean desktop processor fast. It hauls ass.

I do all of my development remotely via ssh and local forwards so the different platform doesn’t affect me at all.

Kinda bummed that I can only hook one LG5k display in at a time but whatever, that is kind of a fringe desire anyway. If there was a 14/16" version I'd throw money at Apple again.

Once I compared zoom using 120% cpu on my intel Mac to 30% cpu on my apple silicon Mac it was game over. The processors are just more efficient in so many ways. I've been pretty jaded on hardware recently but this made me sit up and go "holy crap" everything else just became obsolete.

Unless you have something x86 specific you need to be doing locally or need a huge screen do not hesitate to buy this machine. Apple has knocked it out of the park.

3 comments

Can you elaborate on this?:

> I do all of my development remotely via ssh and local forwards

I do a little with SSH tunnels, but not much. Do you mean you have it set up so that on your Mac you can go to localhost:8080 (or whatever) in your browser and it will actually go to the remote machine?

Yes, just set up a localforward in your .ssh/config like this:

    Host dev
        HostName <ip_of_dev_box>
        User <my_username>
        ForwardAgent yes
        AddKeysToAgent yes
        IdentityFile ~/.ssh/id_m1_air
        LocalForward 8443 localhost:8443
        LocalForward 8080 localhost:8080
        LocalForward 8065 localhost:8065
        LocalForward 3000 localhost:3000
        ...
Those line's effectively mean forward my local port 8443 to the remote host's 8443. The local port + remote port (and even the remote host) don't need to be the same.

Since it’s forwarding a TCP port your aren’t limited to forwarding just the web traffic either. I forward:

    - Database ports (run mysql or psql locally for example)
    - Docker socket
    - Backend api ports
    - Redis port
    - Webserver port
And more...

Then you just use local clients as if those things were all running on your local machine

Just one more step missing for a fully remote docker setup: have you ever tried combining this with a sshfs mount so you can also develop an app running in a remote container?
Visual Studio has [this](https://code.visualstudio.com/docs/remote/ssh) which is quite painless to use
Maybe I'll try that
Thanks! This sounds like a great setup.
It’s worth reading a bit about sshuttle. It basically leverages ssh into a simple one way VPN as far as ergonomics and user experience go (but the underlying implementation is closer to opening LocalForward connections on demand).

Highly recommended.

Almost as easy: just setup a point to point WireGuard tunnel. I used sshuttle for remote Docker dev for a while, but found that WireGuard way outperforms it.
sshuttle is definitely no efficiency daemon - however, it only requires being able to ssh to the other side, amd run Python there, and that’s it - whereas for Wireguard you need root on the other side, a sufficiently new kernel (or building an out of kernel module) - it’s way better if you can use it but IME it isn’t “almost as easy” - sshuttle usually just works if you can ssh.
Hey do you miss using Arch linux when you moved to m1 Mac
Yes I do. I love my Linux setup but I was getting sick of my computer performing like dogshit when I needed to be on a video call screen share AND do something at the same time.
I see I have been using Arch on my Dell XPS 13 running i3wm I’m kinda hesitant to switch to mac as I would loose the power to customize my environment compared to linux
> i use arch btw

:)))