[HN Gopher] M1 dev setup with a virtual Linux box
       ___________________________________________________________________
        
       M1 dev setup with a virtual Linux box
        
       Author : kristiandupont
       Score  : 187 points
       Date   : 2021-04-11 08:50 UTC (14 hours ago)
        
 (HTM) web link (kristiandupont.medium.com)
 (TXT) w3m dump (kristiandupont.medium.com)
        
       | Toutouxc wrote:
       | Everyone is talking about running a separate Linux dev
       | environment, but I'd actually love to run a separate macOS dev
       | environment in a clean way (i.e. without messing with partitions
       | for dualboot, especially on the M1).
       | 
       | I get my stuff from Homebrew, just Rails + MySQL, no Docker, no
       | fancy stuff. I'd love to have a fast macOS VM to run software I
       | don't trust like Zoom or Skype and a second one to run my work
       | projects, so they don't spill over my personal stuff, but AFAIK
       | the virtualization story is still pretty incomplete on the M1 (or
       | is there a way to run an arm64 macOS VM without a gigantic
       | performance hit?).
        
         | kitsunesoba wrote:
         | If I recall, VMWare Fusion and Parallels can run macOS VMs with
         | little or no speed hit, _under Big Sur_. Big Sur added GPU
         | virtualization support so VMs aren't slow, previous macOS
         | versions lacked this.
        
           | alsetmusic wrote:
           | Just tested Parallels latest beta on M1 and it couldn't find
           | an OS on a Big Sur ISO that I'd just created. Doesn't appear
           | to support virtualizing macOS on M1 yet.
        
             | erwincoumans wrote:
             | Parallels only supports arm images on M1, such as Ubuntu
             | arm and Windows arm. No MacOS arm image as client.
        
             | sscotth wrote:
             | Correct.
             | 
             | Pinned tracking thread:
             | 
             | https://forum.parallels.com/threads/big-sur-
             | installation.351...
        
           | 0x426577617265 wrote:
           | Fusion doesn't work on M1s.
        
             | coopreme wrote:
             | I've been looking for this for a while, not sure when or if
             | it will get done. X86 emulation on an M1... I wonder if
             | there will be a massive hit
        
               | aidos wrote:
               | Been dealing with this this week. It's about a 40x
               | performance hit to run x86 via qemu in our estimates.
        
               | my123 wrote:
               | Qemu isn't representative of anything else perf-wise. You
               | may want to use user-mode emulation too.
        
               | aidos wrote:
               | I don't entirely understand your comment (actively
               | looking for solutions for these issues so all info is
               | good).
               | 
               | My initial attempt at getting a running system was to
               | install an x86 VM via qemu / utm. It worked but was about
               | 1 /4 speed of my old MacBook.
               | 
               | Round 2 was to an arm64 VM via qemu / utm (utm is using
               | qemu here, but I guess it's almost running purely on the
               | M1?). That's blazing fast but I don't have everything I
               | need compiled for it. So I'm recompiling what I can and
               | whatever I can't I'm then using qemu user mode within the
               | arm VM to run the x86 binaries. The VM itself is really
               | fast, the x86 code, obviously isn't, but I've at least
               | minimised the times I need the emulation.
               | 
               | Not sure of a better approach, but as I say, definitely
               | open to hearing what else I can do.
        
               | my123 wrote:
               | You should try running an Arm64 OS and then using ExaGear
               | (Linux VM) or just run your x86_64 app (Windows).
               | 
               | Forget about full system emulation, especially with
               | Qemu's approach which doesn't leverage the host MMU.
               | Emulating an MMU alone is very costly perf-wise. That
               | means that you should use an arm64 OS and then use an x86
               | compat layer on it.
               | 
               | For Qemu's user mode emulation, it doesn't exactly
               | provide good performance either. But it is still much
               | better than full system emulation.
        
               | aidos wrote:
               | Isn't that what I'm doing?
               | 
               | Mac OS is arm64, with an arm64 Ubuntu VM, then I'm
               | running qemu in that for specific single x86 processes.
               | 
               | To clarify, I'm using UTM to run the VM, so it's using
               | qemu - but it looks like that doesn't give you a
               | performance cost in itself.
        
               | my123 wrote:
               | Yes that's what you do, you might want to look at options
               | other than Qemu though for more performance.
               | 
               | (I assumed FSE from your 40x worse perf figure, which is
               | a very bad case)
        
             | kitsunesoba wrote:
             | Ahh, so it's just Parallels then. Don't yet own an M1 Mac
             | myself, but saw Parallels had made the jump an assumed
             | VMWare followed.
        
           | erwincoumans wrote:
           | Yes, Parallels runs great for Ubuntu arm on M1, both headless
           | terminal and X11, since December 2020.
        
           | AzN1337c0d3r wrote:
           | IMO the graphics performance when running macOS Big Sur VMs
           | under Fusion is better but still atrocious. Not anything like
           | a native experience.
           | 
           | Not sure about Parallels.
        
             | Qerub wrote:
             | 3D acceleration is not enabled by default for macOS Big Sur
             | in VMware Fusion because it's not considered stable yet.
             | It's possible to activate by tweaking the vmx file:
             | https://kb.vmware.com/s/article/81657
             | 
             | In Parallels it's on by default but you need to allocate a
             | lot of RAM to the VM:
             | https://kb.parallels.com/en/125105#section6
        
         | mixmastamyk wrote:
         | Homebrew is sending analytics as well, FYI.
        
           | jamroom wrote:
           | "brew analytics off" from your terminal.
        
         | balloneij wrote:
         | I still haven't tried it, but what if you downloaded the iOS
         | apps on the M1? Wouldn't it be more containerized if you ran
         | those apps from the phone "emulator"
        
           | philistine wrote:
           | You're absolutely right, but I would assume Zoom has
           | disallowed its iOS client from being installed on macOS.
           | Since Apple closed the loophole allowing sideloading, we're
           | out of luck on that front.
        
             | saagarjha wrote:
             | Just decrypt the app and run it.
        
       | tlhunter wrote:
       | > Working keyboard. And the feature of not having a touch bar is
       | not only included but it's the cheaper option -- I would have
       | paid money for that!
       | 
       | I've been using Linux development laptops for the past decade and
       | have had all of these benefits!
        
       | fpoling wrote:
       | The article author uses VSCode remote support to work with VM.
       | This is not ideal from a security point of view. VSCode is huge,
       | typically uses a lot extensions and all that has access to all
       | local files and ssh keys. So for this reason I run VSCode inside
       | a VM or a container with VNC server to provide X session. This
       | works OK without GPU even on 4K screen while providing much
       | better isolation.
        
         | [deleted]
        
       | okamiueru wrote:
       | I'm curious what the author means by
       | 
       | > I had two requirements for developing that I wanted to achieve:
       | macOS UI, Linux-based dev environment
       | 
       | What exactly is meant by a linux-based dev environment? Seems
       | like the idea is to run the whole dev environment is in a virtual
       | disk in a VM. I'm puzzled, but ok. It then goes on to set up
       | Ubuntu Server in this VM, which is then used to host the dev
       | environment.
       | 
       | Wouldn't simple running a docker instance both be less
       | cumbersome, far more resource efficient, and quick to iterate,
       | than literally installing an OS on a virtual disk?
       | 
       | ---
       | 
       | To summarize, unless I missed something, this looks to explain
       | that it is possible to run a VM on a MacOS. Add "M1" and it's the
       | top post on hacker news? What's going on here?
        
         | lawik wrote:
         | "but the upside is that there is no noticeable IO latency
         | issues like when running Docker for Mac"
         | 
         | Docker on Mac can be dog slow. This is appealing to me.
        
         | ccouzens wrote:
         | > Wouldn't simple running a docker instance both be less
         | cumbersome, far more resource efficient, and quick to iterate,
         | than literally installing an OS on a virtual disk?
         | 
         | On Mac, docker works by installing a VM- so the two aren't so
         | different.
         | 
         | I (not the author) prefer using a VM as a development
         | environment, because at some point I'll want to run a container
         | and nested containers are tedious.
        
         | icoder wrote:
         | That this is 'M1' is relevant for me personally, as my current
         | Mac is dead old, I 'need' a Mac for iOS development, the Intel
         | ones are a dead end and seem to run hot often, and it is
         | unclear if all my dev needs will be met by the M1.
         | 
         | Any piece of information that untangles this mess is helpful to
         | me. Of course this may not be the same for others, but it could
         | be 'what's going on here'.
        
           | aidos wrote:
           | We're going through the transition at the moment - tried to
           | find info online but decided the only route was to try it on
           | a real machine to see what works / doesn't work.
           | 
           | Have built an Ubuntu 18 environment running through UTM
           | (https://getutm.app/ - running qemu). Took a bit of
           | tomfoolery where I had to install using a console only
           | display and then flick back to full graphics to get the
           | machine to boot.
           | 
           | Use port forwarding to talk to the machine - haven't figured
           | out a way to do bridge mode like I can with virtual box.
           | 
           | We've got a bunch of crazy dependencies that I'm in the
           | process of rebuilding. Most seem to be ok. There's a third
           | party one we're a bit trapped with but we're running that
           | emulated x86 within the vm. You can also use docker the same
           | way within the vm.
           | 
           | Performance wise the arm vm is blazing fast. Seems to be
           | about 20x faster than an x86 vm on my old MacBook 2015. It's
           | about 2x the speed of an 8 core graviton2. When running
           | emulated x86 code, the speed drops to about 1/4 the speed of
           | my old 2015 MacBook. Not ideal but in our case we've only got
           | a single non arm dependency and it's not used often, so it
           | works for us.
           | 
           | It's a bit of a leap, and if you have more crazy binary
           | dependencies like we do, you will have do to a little work to
           | get things running.
           | 
           | Having said that, the machine itself is _amazing_. It's a
           | real joy to be on a machine with this level of
           | responsiveness.
        
           | goonogle wrote:
           | I weep for you.
           | 
           | As an alternative could you use React Native and borrow an
           | Apple product during compile day?
        
             | [deleted]
        
             | madeofpalk wrote:
             | Rebuilding your app in a completely different technology
             | that you may or may not know seems like overkill for short-
             | term computer woes.
        
               | goonogle wrote:
               | Fair point. I find Front End theraputic so it doesn't
               | seem daunting to me.
               | 
               | It's definitely a long term strategy, but people love
               | eating Candy even if it gives you a stomach ache.
        
         | oblio wrote:
         | Docker isn't portable. Docker runs on Linux and only on Linux.
         | 
         | All the Docker pseudo-ports just run a Linux VM on the host OS
         | and set up Docker inside it, for you.
        
           | cromka wrote:
           | Think you forgot about Windows:
           | https://hub.docker.com/_/microsoft-windows-base-os-images
        
             | oblio wrote:
             | No. Can you run those images on Linux? :-)
             | 
             | Docker images are not portable, they run on Linux or on
             | Windows, but they can never run on both.
        
               | okamiueru wrote:
               | Is this because you consider WSL2 to be Linux, and not
               | Windows?
        
               | oblio wrote:
               | > Windows requires the host OS version to match the
               | container OS version. If you want to run a container
               | based on a newer Windows build, make sure you have an
               | equivalent host build. Otherwise, you can use Hyper-V
               | isolation to run older containers on new host builds. You
               | can read more on Windows Container Version Compatibility
               | in our Container Docs.
               | 
               | https://hub.docker.com/_/microsoft-windows-base-os-images
               | 
               | And WSL2 is Linux running in a VM on Windows.
        
         | kristiandupont wrote:
         | > Seems like the idea is to run the whole dev environment is in
         | a virtual disk in a VM
         | 
         | Pretty much.
         | 
         | I had bad experiences running Docker directly on MacOS. The IO
         | latency was unbearable. I know they are working hard on it so
         | maybe it's better now, but this setup works well for me.
        
           | throwaway4good wrote:
           | I run Oracle DB (which is a scary piece of software) inside
           | Docker on an Intel Mac. It runs perfectly fine.
           | 
           | What exactly are you guys running that causes it to be
           | "unbearable"?
        
             | ccouzens wrote:
             | Are most of the database's files within the container's
             | filesystem (as opposed to a volume mount)?
             | 
             | Most of the performance issues with Docker on Mac happen in
             | setups where source code or other files are volume mounted
             | from the Mac filesystem into the container filesystem.
        
               | throwaway4good wrote:
               | As far as I can see everything goes into the massive
               | ~/Library/Container folder. No volumes.
        
       | hopsoft wrote:
       | I recently Dockerized a Rails development environment for working
       | on an M1. It's gone well so far and may provide some guidance for
       | other development workflows (YMMV).
       | https://gist.github.com/hopsoft/c27da1a9fda405169994a0049575...
        
       | ccouzens wrote:
       | I think running your dev environment in a VM is the future on all
       | platforms.
       | 
       | As developers we trust so many different libraries. And it is
       | important that they are safe when used in production code.
       | 
       | But we shouldn't have to worry about accidentally installing a
       | library which uploads our emails or our browser data. By working
       | from a VM we can prevent that.
       | 
       | The worst a malicious library can do from a VM is upload our SSH
       | keys or source code (which is still bad).
        
         | the_duke wrote:
         | The need for VMs or containers for security (on end user
         | machines) is the fallout of insufficient OS security
         | mechanisms.
         | 
         | A better solution would be a desktop OS with proper application
         | sandboxing. Mac OS is taking many steps in that direction.
         | 
         | Linux - as usual - has a multitude of solutions, all of them
         | problematic. (AppArmor, SeLinux, Firejail, Snap, Flatpak)
        
           | millerm wrote:
           | I believe the real problem is that devs install random
           | binaries, or modules, without any real concern for what
           | malicious activities, even if unintentional, these artifacts
           | may perform. Forget the fact that it's on the dev's machine,
           | they move this stuff into production without proper security
           | vetting.
           | 
           | Many devs just blindly install things from npm, copy random
           | snippets from GitHub gists, execute remote shell scripts via
           | curl that they just copy and paste into the terminal because
           | they read it in some blog post, and on and on.
           | 
           | Anyway, just my worthless < 2 cents.
        
           | wongarsu wrote:
           | Microsoft tried to push for a better model in the Windows
           | Store apps. But the world reacted with apathy. Now they seem
           | to try to leverage their built-in hypervisor instead, for
           | example with Sandbox [1] for temporary VMs with minimal
           | overhead.
           | 
           | 1: https://docs.microsoft.com/en-us/windows/security/threat-
           | pro...
        
           | m463 wrote:
           | I believe VMs are not just for security - it might be the
           | only way to run completely different operating systems (like
           | macos on linux, or linux on windows, etc)
           | 
           | Additionally, VMs might be a great help to complicated
           | debugging. You can crash a VM without taking down your
           | desktop. I'm not sure about things like kernel debugging, but
           | it might be easier in a VM.
        
         | fpoling wrote:
         | A properly secured unprivileged Linux container is not
         | particularly worse than VM from a security point of view, but
         | its impact on performance is very minimal. The drawback is that
         | one cannot use Mac or Windows as a host, but as long as one is
         | OK with running Linux on machine and accessing, say, Windows
         | occasionally via VM, this is a very nice setup.
        
           | ccouzens wrote:
           | My first attempt at this configuration was using a podman
           | container (my laptop runs Fedora).
           | 
           | It worked well, except that I occasionally want to run a
           | container within my dev-environment. Running a container
           | inside a container is possible, but not easy.
           | 
           | I settled on running a Vagrant Libvirt VM. I do not know what
           | the performance impact is- but I have not noticed either my
           | laptop or the VM being slow.
        
           | j1elo wrote:
           | I'm just now learning about the container technologies that
           | are alternatives to Docker. More precisely, LXC, in case you
           | had it in mind in your comment.
           | 
           | Do you know of a set of settings or tips to follow for making
           | containers as safe as a VM?
        
         | hiq wrote:
         | I started doing exactly that.
         | 
         | I've been reluctant to contribute to nodejs (e.g. electron)
         | projects for some time, because I just don't want to run npm on
         | a computer with any kind of remotely private data.
         | 
         | Lately there were just too many itches to scratch, so I went
         | for a VM replicating my normal setup (dotfiles etc.), and I
         | just use x2go, locally. Quick and dirty setup which is good
         | enough when used infrequently.
         | 
         | My ideal setup would probably be closer to
         | https://blog.jessfraz.com/post/docker-containers-on-the-
         | desk..., but it's more setup than I could be bothered with at
         | the time. Maybe one day.
        
         | m463 wrote:
         | I was going to say container or vm, but maybe ...
         | 
         | Are containers a hack that will go away as VMs become
         | lightweight or will containers replace VMs?
         | 
         | I run proxmox, and when I first set things up I used VMs, but
         | over time I moved most server kinds of things to containers.
         | 
         | EDIT: docker is a special thing - creating an entire
         | environment from one Dockerfile is pretty powerful.
        
           | mikewhy wrote:
           | I've been playing with this stuff on and off for the past few
           | weekends, getting an environment set up on my M1 air.
           | 
           | I ended up going with a VM, as it still allows (IIRC) the
           | thin client to be thinner. There's definitely bits of
           | containers I miss, like I'm back to keeping notes in a
           | markdown file for commands that would be added to a
           | Dockerfile, but I'm also not having to do weird things to get
           | something like my shell history to persist.
        
         | rowanG077 wrote:
         | Actually I think VMs for dev are evil. I hope it's a stop gap
         | measure until tooling like nix catches up enough. Running an
         | entire seperate OS just for development is completely bonkers
         | to me.
        
           | ccouzens wrote:
           | I don't know much about nix.
           | 
           | Does it solve the security problem by preventing access to
           | the majority of your home directory?
           | 
           | Or solve it by only allowing you to install vetted libraries?
        
             | rowanG077 wrote:
             | You cannot access the home directory at all during a nix
             | build.
        
               | mixmastamyk wrote:
               | Interesting, what about when your software runs? Is it
               | still in a chroot or similar?
        
               | rowanG077 wrote:
               | It's not running in a sandbox. That's not the goal of
               | nix. It's only a package manager/build system.
        
           | linspace wrote:
           | Running desktop applications inside a web browser is bonkers
           | too. And the cloud. It's better to embrace the madness. I
           | recommend watching Dr Strangelove.
        
           | FpUser wrote:
           | I have it an easy way I think. My development for Linux
           | except some RPi projects is strictly limited to some high
           | performance business servers. I use C++ with a couple of
           | multiplatform libraries for such development. So I simply
           | develop and do main testing on Windows using Microsoft Visual
           | Studio C++. The big one, not VS code. When the time comes for
           | release I just check out project on Linux, run build and
           | tests and that is it. I do have Linux VM on my development
           | computer (VMware, full Linux OS with the GUI and dev
           | environments) in case Linux tests fail due to some compiler
           | differences / whatever. During last 3 years I had to use like
           | it twice for that purpose. I mostly use Vm's to test my
           | server setup from scratch scripts.
        
           | mpweiher wrote:
           | I'd phrase it this way: it is completely bonkers that this
           | _isn 't_ bonkers.
        
           | mcny wrote:
           | If you think that's bonkers, I'll give you an even worse
           | idea: a dedicated desktop machine. I have a dell optiplex
           | running Intel i3-2100 with 8GB RAM and 1TB Samsung 860 Evo
           | SSD. No display. Fedora runs like a dream with dnf automatic.
           | Use cockpit if you'd like.
           | 
           | You can use your windows or Mac laptop with visual studio
           | code to do web development. ng serve works as if you ran it
           | from your laptop.
           | 
           | The biggest drawback I can think of is if you ever needed to
           | leave the house. Thankfully, I have no life so I don't have
           | this problem.
        
             | cassianoleal wrote:
             | > The biggest drawback I can think of is if you ever needed
             | to leave the house.
             | 
             | Add ZeroTier to the equation and as long as you have
             | Internet connection when you're outside the house you'll
             | probably not even notice it.
        
             | Tsiklon wrote:
             | Having both your laptop and desktop on a WireGuard vpn with
             | the gateway on your choice of cloud host would solve that
             | problem, also it would solve having to deal with wandering
             | IP addresses as you may find with a home internet
             | connection
        
             | rovr138 wrote:
             | I see WireGuard and ZeroTier mentioned.
             | 
             | I just use ssh. SSH to a VPS and map 22 to a port on the
             | VPS.
             | 
             | I have a really small VPS for this.
        
               | mcny wrote:
               | I think the reason they mentioned more complicated setups
               | is because I'm using an actual old machine at home and
               | unless you know what you're doing you don't want to
               | expose it to the world.
               | 
               | I think poking a hole on port 22 is mostly ok if you only
               | allow key authentication and no password authentication
               | but I don't know enough to give advice on security.
        
               | rovr138 wrote:
               | Just posting alternatives.
               | 
               | I use a VPS with SSH. I have to ssh in, then I can ssh
               | into the machine at home.
               | 
               | For safety, key authentication and fail2ban would cover a
               | lot. I mainly have the 1 port.
               | 
               | If I need to expose another SSH port to the internet, I
               | can do it, but yes, it would need extra protection since
               | logs are coming from the machine ssh'ing in.
        
               | hiq wrote:
               | > For safety, key authentication and fail2ban would cover
               | a lot. I mainly have the 1 port.
               | 
               | Changing the port from the default 22 to something else
               | is also recommended, if only because it makes fail2ban
               | logs way less verbose.
        
         | StreamBright wrote:
         | I agree. We need something like Firecracker and quick boot
         | times and something like Bottlerocket (immutable os) as the
         | host. That woukd help my workflows very much.
        
         | josephg wrote:
         | I hear what you're saying, but the last time I worked through a
         | linux VM on my mac laptop, everything got much slower. Our
         | nodejs service took 2-3x longer to start up or to build. I
         | think the issue was filesystem overhead for some reason. The
         | future might involve working from a VM when we have CPU cycles
         | to spare. But right now I need every iota of speed my computer
         | has for my rust compiler.
         | 
         | I'd much rather we solve the security problems using better
         | local sandboxing for software, like how it works on our phones.
         | That would help end users as well, and it would stop crypto
         | ransomware and all sorts of other attacks. Or alternatively,
         | run my dev tools from a solaris zone or a freebsd jail or
         | something, both of which have no performance impact.
        
           | the8472 wrote:
           | Did you use a native filesystem inside the VM or a host
           | filesystem remoted into the VM?
        
           | JimDabell wrote:
           | > the last time I worked through a linux VM on my mac laptop,
           | everything got much slower. Our nodejs service took 2-3x
           | longer to start up or to build. I think the issue was
           | filesystem overhead for some reason.
           | 
           | Docker on Mac has a lot of IO overhead. This is mentioned in
           | the article:
           | 
           | > The way I made it work is by having a full "dev
           | environment" running virtually. That means that I check out
           | repositories on the virtual disk and run everything from
           | there. This has the slight inconvenience that I can't easily
           | access those files with Finder, but the upside is that there
           | is no noticeable IO latency issues like when running Docker
           | for Mac.
           | 
           | If you just want improved performance with bind mounts
           | instead, you can use :cached or :delegated flags.
        
             | bdcravens wrote:
             | Since the earliest days of Docker for Mac, I've found
             | docker-sync to be very effective. (I've haven't done much
             | follow-up over time to see if using those flags matches
             | performance) To gain more speed, add folders you really
             | don't care about to docker-sync's ignored folders,
             | especially if they are high churn.
        
             | wdb wrote:
             | I have been wondering if using VMWare Fusion docker
             | compatible solution that even comes with their free version
             | of Fusion has better IO/disk performance when running
             | containers https://blogs.vmware.com/teamfusion/2020/05/fusi
             | on-11-5-now-...
             | 
             | I think Fusion comes with a driver for Docker
        
           | lovelyviking wrote:
           | >I need every iota of speed my computer has for my rust
           | compiler
           | 
           | If so, why do you _need_ rust compiler in the first place?
           | May be you don 't? May be it's _wrong_ compiler?
        
           | tbrock wrote:
           | This is why running something like VSCode on your Mac with
           | the remote ssh dev setup is the best of all worlds.
           | 
           | https://code.visualstudio.com/docs/remote/remote-overview
           | 
           | Virtualized Linux on x86 AND being able to run VSCode on your
           | Mac for great fonts, WiFi, screen etc without having to fuss
           | with drivers.
           | 
           | Of course ssh and tmux also work well for this purpose.
        
             | dijit wrote:
             | Ugh, I don't want to descend into "that thread" again, but
             | Wifi/Screen have not been an issue on linux (as long as you
             | don't use nvidia) in over 10 years.
             | 
             | Mixed scale DPI screens are not a problem if you use
             | Wayland, which is basically the default now.
             | 
             | Font rendering though? YMMV.
        
               | josephg wrote:
               | Linux generally works great. I'm typing this on a linux
               | mint, using mixed scale DPI screens and generally it all
               | works pretty well. I think all my hardware is fully
               | supported - I haven't had to mess with drivers at all.
               | ... Well, not recently. There were some zen3 bugs in the
               | stable kernel releases a few months ago, but it all works
               | fine _now_.
               | 
               | And thats sort of the theme everywhere. Its super fast
               | and I love it, and its mostly stable and mostly great.
               | But tiny bugs shine through all over. I've been totally
               | spoiled by Apple's spit and polish.
               | 
               | For example, I get random graphics bugs after waking from
               | sleep sometimes. Sometimes my mouse cursor is either
               | invisible or for some reason duplicated, so I see a
               | second stationary cursor hovering over my windows. And
               | for some reason my second display doesn't vsync, so I get
               | obvious tearing when I scroll or move windows around.
               | 
               | I use a trackpad, and smooth scrolling works properly in
               | most apps. But Firefox needs an obscure XInput
               | environment variable to make it work. (That trick is only
               | mentioned deep some a bug tracker). Smooth scrolling
               | doesn't work at all in IntelliJ. Intellij also doesn't
               | let me use the Meta key (Cmd / Start) as a shortcut
               | modifier - so my muscle memory for navigation is all
               | messed up and I can't rebind keys to fix it. I hate how
               | Ctrl+C is copy everywhere except the terminal, which
               | needs me to Ctrl+Shift+C instead. Etc etc. Forever.
               | 
               | Its unbelievably responsive compared to my 2016 MBP
               | though. If you haven't upgraded in awhile and you can
               | afford it, its a fantastic time to get a new system. But
               | linux on the desktop still isn't entirely pain free. Way
               | better than it was a few years ago though.
        
               | pta2002 wrote:
               | Do you know what that firefox variable is? It's the only
               | reason I'm not using firefox right now.
        
               | callahad wrote:
               | Probably MOZ_USE_XINPUT2=1 (note the '2' at the end)
               | 
               | ...or use Wayland where smooth scrolling should work by
               | default
        
               | barrucadu wrote:
               | Wayland is "basically the default now"? Since when?
        
               | eknkc wrote:
               | Nope, you people are living in a fairy tale. I'd love to
               | have a decent linux desktop installation. I spent hours
               | yesterday and gave up.
               | 
               | I have a laptop running Ubuntu and connected to my 4k
               | monitor in front of me. Has an Intel gpu. I do not even
               | want to use multiple displays, I'm gonna go with the
               | external only.
               | 
               | Wayland can do fractional scaling but then VsCode,
               | Firefox, Discord and whatever apps I tried became blurry
               | shit. Firefox has an environment variable to fix it.
               | VsCode has an experimental build and command line flags.
               | I have no idea about Discord. I don't care if its the app
               | developers fault. It is just plain bad.
               | 
               | X11 can do fractional scaling but fonts are a little
               | blurry for some reason and I have the worst screen
               | tearing I've ever seen in my life. It is unusable.
               | 
               | macOS and Windows do this perfectly. It is not something
               | you think about. Windows has some weird looking apps here
               | and there but the shittyneas is not even close.
        
               | dijit wrote:
               | I don't know what to tell you, maybe I won the lottery on
               | hardware. (though, admittedly I buy computers with linux
               | support in mind). Everything works completely flawlessly
               | for me (even nice font rendering, though idk if I did
               | something manual for that).
               | 
               | For context, I have (currently) a precision 5520 laptop;
               | 
               | I run arch with sway, I have a big USB-C 4k at work and
               | 2*16:10 FHD Dell USB-C monitors at home.
               | 
               | The only issues I have with linux is that I don't have
               | Microsoft Office, and Zoom+Wayland is buggy as hell.
        
               | [deleted]
        
               | devit wrote:
               | Don't use fractional scaling.
               | 
               | Use the closest integer scaling and adjust default font
               | sizes (and if needed other sizes like window title height
               | or panel height).
               | 
               | It's also best if you just don't buy monitors that have
               | dpis that are not close to integer multiples of 96.
        
               | eknkc wrote:
               | Yeah I tried this but I used 1x ui scaling + 1.5x font
               | scaling. It works but then all the buttons and stuff are
               | tiny.
               | 
               | Maybe I should try 2x gui scaling and 0.75 font size?
               | Never occured to me that I could go below 1 on the
               | scales, it might work.
               | 
               | edit: 2x on wayland is still blurry. 1x + 2x font works
               | but as I said, tiny buttons and stuff.
               | 
               | Still, my point is; why the fuck am I dealing with this?
        
               | whatever1 wrote:
               | Because it's free and nobody is willing to put the effort
               | (and pay the cost) to make a pleasing UX for desktop
               | users.
               | 
               | In mobile where there is market, Google did it.
               | 
               | I stopped trying a couple of years ago (after I got a 4K
               | monitor) to convince myself that desktop Linux is
               | workable.
               | 
               | Linux for desktop = console
        
               | vetinari wrote:
               | > Wayland can do fractional scaling but then VsCode,
               | Firefox, Discord and whatever apps I tried became blurry
               | shit.
               | 
               | X11 apps do that. Firefox can run in Wayland mode, so run
               | it in Wayland mode. vscode and other electron apps do not
               | support wayland yet, so until they do (yes, they are
               | taking their sweet time), you either need to run with
               | integer scaling, or tolerate them being blurry.
               | 
               | In Windows, the shittyness is much worse. Basically any
               | Qt app is unusable with hidpi in Windows.
        
               | Kwpolska wrote:
               | > In Windows, the shittyness is much worse. Basically any
               | Qt app is unusable with hidpi in Windows.
               | 
               | In my experience, it isn't. On my setup (200% + 100%
               | screens, Retina MacBook Pro in Boot Camp) KeePassXC,
               | qBitTorrent, Qt Designer all look great on both screens;
               | VLC has slightly weird fonts on the HiDPI screen but
               | still works fine.
        
               | vetinari wrote:
               | Native Windows 10 on a threadripper machine; display at
               | 175%. QGIS, FME completely unusable.
        
               | mixmastamyk wrote:
               | Ubuntu Mate just works, been using with two 4k monitors
               | for over five years.
        
               | derriz wrote:
               | Not according to my experience with a top-spec Dell XPS
               | "developer edition" with Ubuntu pre-installed about 2
               | years ago. Not only did I have intermittant Wifi
               | connection drops but I was never able to get multi-
               | monitor mixed DPI to work at all with or without Wayland.
               | Even closing the lid/entering sleep mode was broken - the
               | battery would continue to be drained (at about half the
               | rate of non-sleep mode but still unusable).
        
               | chestervonwinch wrote:
               | Was the sleep issue not resolved by a BIOS update?
               | 
               | Tangentially, I want to mention that the archlinux wiki
               | is a terrific catalog of machines and their known quirks
               | (and sometimes, fixes for the quirks!).
        
               | acdibble wrote:
               | If you use fractional scaling on Wayland, Chromium-based
               | applications will render blurry. Obviously it's a
               | Chromium issue but it's been around for a while and is a
               | bad experience.
        
               | rathboma wrote:
               | This just got patched, so electron apps are slowly able
               | to update and fix this. VSCode has a beta version with
               | the fix already
        
               | seabrookmx wrote:
               | > Wayland, which is basically the default now
               | 
               | In Fedora maybe. Not in most distros. And recall many
               | apps have to run under xwayland for compatibility so all
               | of those apps won't support scaling properly.
               | 
               | It's still not there yet.
               | 
               | Battery life also takes a huge hit on the Dell XPS and HP
               | Elitebooks I've tried, even after trying to apply some
               | tweaks (not that I should need to). For this reason I use
               | Windows+WSL on laptops even though I'd prefer Ubuntu.
        
             | vehemenz wrote:
             | This is pretty neat, but I think the overhead saved with
             | complete remote development might be cancelled out by using
             | VSCode instead of a JetBrains IDE.
             | 
             | People are advocating remote development heavily, so there
             | must be some *huge* benefit that I don't understand. So
             | much so that people are willing to give up amazing features
             | of an IDE. To get VSCode to a usable state requires 16
             | third-party plugins, and you're left with about 1/3 of
             | JetBrains functionality, in which the features aren't quite
             | as good. YMMV I guess?
        
               | fossuser wrote:
               | I hope IntelliJ eventually figures out remote dev.
               | 
               | Benefits are more obvious on massive code bases that take
               | a long time to build, test (or really just do anything).
               | 
               | IntelliJ will get stuck indexing forever and can be
               | frustrating to use - having the code live on beefy
               | servers that can run the computationally expensive bits
               | faster can make a big difference.
        
               | dangoor wrote:
               | I think Jetbrains IDEs can do the same thing:
               | 
               | https://www.jetbrains.com/help/go/creating-a-remote-
               | server-c...
        
               | fossuser wrote:
               | I think what you linked to is different, but they
               | recently announced working on a real remote dev option:
               | https://blog.jetbrains.com/blog/2021/03/11/projector-is-
               | out/
               | 
               | Their old server config is just pointing to a repo I
               | think, but isn't remote dev.
               | 
               | I looked into this last year before their recent
               | announcement and at the time they said it wasn't on their
               | roadmap, but looks like that thankfully changed.
        
               | cpbotha wrote:
               | I've been paying for the JetBrains toolbox for a few
               | years now, I'm a huge fan.
               | 
               | However, JetBrains unfortunately has nothing coming close
               | to the transparency and speed of the VSCode remote
               | connection, with your source living only on the remote
               | side.
               | 
               | In cases where being able to work on remote, for example
               | very particular configurations, or docker containers, or
               | WSL2, this makes a huge difference.
               | 
               | For me this is mostly Python and TypeScript these days,
               | where VSCode has grown particularly strong in terms of
               | IDE features.
        
               | ak217 wrote:
               | The huge benefit comes in when your project involves
               | loading large datasets or talking to cloud APIs. Both
               | cases can be a non-starter on a local Mac (no local disk
               | space, no bandwidth, or the latency overhead of a 100 ms
               | RTT vs. 5 ms RTT adding up over thousands of requests). I
               | would also point out that Docker on Mac is far less
               | efficient than Docker on Linux, since it runs a separate
               | VM.
               | 
               | VS Code Remote is a game changer. It's how IDEs should
               | work. It allows you to run all the GUI chrome locally for
               | responsive editing, while letting the remote do all the
               | heavy lifting (including building, debugging, testing,
               | and deploying). It finally overcomes the latency and
               | other usability issues of using a wimpy local box to
               | connect to a powerful remote box to write software.
               | 
               | I never used VS Code much and otherwise prefer JetBrains
               | myself. But the remote development extension changed my
               | workflow permanently, and I now recommend it to all my
               | colleagues who develop cloud/data intensive code.
        
               | oblio wrote:
               | And Jetbrains is working on a solution:
               | https://blog.jetbrains.com/blog/2021/03/11/projector-is-
               | out/
               | 
               | It's still beta so they have a lot of work to do.
        
               | GordonS wrote:
               | Oh wow, I'm a JetBrains fan, but didn't know about this -
               | if it delivers in the same way as the remote extensions
               | for VSCode, it's going to be great!
               | 
               | Have you tried the Projector beta yet?
        
               | oblio wrote:
               | Yes. It's based on toolkit remoting. Think RDP.
        
               | crummy wrote:
               | I have. It's very impressive but not ready for daily use
               | IMO. (I tested it with IntelliJ).
               | 
               | However, the 2012.1 releases now support running code on
               | via WSL2 or SSH, which is closer to VS Code's setup.
               | https://blog.jetbrains.com/idea/2021/02/intellij-
               | idea-2021-1...
        
               | stef25 wrote:
               | > To get VSCode to a usable state requires 16 third-party
               | plugins
               | 
               | You mean this literally? It took just that one plugin for
               | me, when experimenting with using another machine on my
               | network as the dev environment.
        
               | j1elo wrote:
               | Believe them, VS Code is a strange beast in that it's
               | really powerful and has a very flexible extension
               | system... but that's a double edged sword because it lets
               | the devs easily ignore features with the excuse that they
               | should be done with a 3rd party extension.
               | 
               | EDIT - child comment is right, the following paragraph is
               | not true! I was writing from my phone and remembered
               | installing this extension [0] but now that I've checked
               | it is for counting _offsets_ from the beginning of the
               | file, not lines and columns. Which I 'd concede is not so
               | much of a basic functionality expected in any editor.
               | 
               | [0]: https://marketplace.visualstudio.com/items?itemName=
               | ramyarao...                 And I mean *really* basic
               | stuff... like a status bar label        that shows the
               | line and column numbers where the cursor       is! Yes,
               | you already need an extension just for that.
        
               | jaredmosley wrote:
               | I mean, that's just not true. The basic VS Code install
               | will tell you the line and column numbers in the status
               | bar without any plugins.
               | 
               | Usually, the only plugins I need to install is the
               | language server plugin for whatever language I'm using.
               | At least, that works for Go and Python while Node and
               | JS/TS work right out of the box.
        
               | j1elo wrote:
               | You're right. I've since arrived home and could check my
               | VSCode, which led me to edit my comment above.
        
               | vehemenz wrote:
               | I meant to get VSCode to work as a decent development
               | environment, more generally.
        
               | hasmolo wrote:
               | would you expand on this? i'm curious what i've been
               | missing, and what possibilities there are!
               | 
               | for me, a TS using node nerd, vs code does these things
               | well:                 1. ts language server       2.
               | decent plugins (that i can commit to scm)       3. yarn 2
               | support        4. nice debugger interaction
               | 
               | is there more for me to have? is the core difference i
               | use so much m$ stuff?
        
               | vehemenz wrote:
               | There are too many to list. I'd recommend using a
               | JetBrains IDE to see what it has.
               | 
               | Off the top of my head, VSCode lacks a decent code
               | formatter and a "search everywhere"-type command palette.
               | And the Git and database support is not good either, but
               | that's kind of a given.
        
               | aryik wrote:
               | I love the gitlens extension personally - I find it to be
               | a big productivity boost when navigating a complex/legacy
               | codebase.
        
           | danieldk wrote:
           | Fedora Toolbox is quite interesting from this perspective. It
           | does not provide a proper security boundary, since it shares
           | the home directory, but it is really nice to make ad-hoc
           | development environments. Since it is built on
           | podman/buildah, it does not require the Docker daemon and can
           | be used by regular users.
        
         | ttiurani wrote:
         | Personally pushing the edit, compile, run cycle time as low as
         | possible has always been the reason I have stayed away from dev
         | VMs. For 99% of computer uses a VM is fast enough but
         | unfortunately for many programming tasks, it is not.
        
         | nickjj wrote:
         | > I think running your dev environment in a VM is the future on
         | all platforms.
         | 
         | We probably have a long ways to go before we get there and it
         | does come with its own sets of challenges and usability quirks
         | even if the technical implementation is good.
         | 
         | For example, 8 years ago I used to run Windows 7 with xubuntu
         | running in a graphical vmware VM using Unity mode[0]. Basically
         | a way to seamlessly run graphical Linux apps in Windows. Each
         | GUI app you launched from the Linux VM would have its own
         | floating window that you could move around like any other
         | Windows window. As an aside, this feature has been removed from
         | vmware for years now when it comes to Linux guests.
         | 
         | It worked well enough for then, and I spent 99% of my time in
         | that VM (browser, code editor, everything) and I only used
         | Windows for recording / editing videos and playing games to
         | avoid having to dual boot.
         | 
         | But even with vmware's really good disk performance there were
         | performance issues at times, you're also splitting your memory
         | up between your main system and your VM, it's not that
         | efficient. Then there's little quirks like your main OS not
         | really fully being able to integrate with files and apps from
         | the VM, so you have to do hacky things to get apps to launch
         | from a taskbar, search doesn't work because your stuff is in a
         | VM, etc.. Plus you always feel like you're split between 2
         | worlds, the main OS and the VM. It doesn't feel really nice and
         | cohesive.
         | 
         | To a lesser extent nowadays we have WSL 2 on Windows which is
         | what I use. It solves a lot of the VM problems from above and
         | running an X-server lets you run graphical apps very well, but
         | you still feel like you're running 2 operating systems and the
         | user experience suffers because you don't feel like you're
         | running 1 streamlined OS.
         | 
         | A prime example is having to put all of your files in WSL 2's
         | file system to get good performance but having certain types of
         | files there is an inconvenience or you may not want to do it
         | because it doesn't make sense to put 100GB of storage files on
         | your SSD. That happened to me because I have a podcast site
         | which is mostly code, except for a ton of raw wav file
         | recordings + mp3s. Instead of just having a git ignored
         | directory in my project, I had to create a 2nd directory
         | outside of WSL to store these files. There's many other
         | examples like this too.
         | 
         | I don't know what the Mac story is like, but I would imagine at
         | minimum you're dealing with files being split into 2 worlds and
         | will experience the unfriendly split OS feeling overall. Does
         | Parallels let you seamlessly run floating windows across your
         | VM and macOS?
         | 
         | [0]: Here's a really old video of that set up
         | https://nickjanetakis.com/blog/create-an-awesome-linux-devel...
        
           | ccouzens wrote:
           | It's a shame it didn't work out for you.
           | 
           | > we have WSL 2 on Windows which is what I use
           | 
           | My new work laptop runs Windows, so I'm interested in WSL2. I
           | gather that it has good integration with Windows (eg you can
           | type notepad and notepad will open)- which is convenient but
           | removes any security boundary.
           | 
           | > Does Parallels let you seamlessly run floating windows
           | across your VM and macOS?
           | 
           | I don't use Parallels, or Mac. But I believe so- they call it
           | Coherence https://kb.parallels.com/4670
           | 
           | I agree that not everything is as convenient. My papercuts
           | were not being able to type `code .` to make a new VSCode
           | window. And not being able to use the new tab shortcut in my
           | terminal to make a new tab in the current directory.
           | 
           | I've made a little project to solve both those issues for me
           | https://github.com/ccouzens/ssh-nicety It works, but is
           | fairly bespoke to my setup. It uses Unix Domain sockets
           | (which probably excludes Windows). The only new terminal it
           | can launch atm is gnome-terminal.
        
             | nickjj wrote:
             | I still do use WSL 2 btw. It's pretty good for general
             | development. It's just not ideal due to the split file
             | system concerns.
             | 
             | If you decide to use it, I have another more up to date
             | video with my whole WSL 2 / Docker / all the tools I use /
             | etc. set up at: https://nickjanetakis.com/blog/a-linux-dev-
             | environment-on-wi...
        
       | sylens wrote:
       | So he's basically recreating WSL but on an Apple Silicon Mac?
        
         | hu3 wrote:
         | > That means that I check out repositories on the virtual disk
         | and run everything from there. This has the slight
         | inconvenience that I can't easily access those files with
         | Finder, but the upside is that there is no noticeable IO
         | latency issues like when running Docker for Mac.
         | 
         | Yes. Except on Windows it is easy to access WSL files.
        
           | seabrookmx wrote:
           | I used to use a setup similar to this before WSL was a thing
           | (Hyper-V VM). The "accessing your files" issue trips people
           | up but there's a trivial solution.. install Samba in your dev
           | VM and mount it on the host.
           | 
           | Unsurprisingly, WSL2 does something similar (it uses the 9p
           | protocol instead of SMB though).
        
       | fallenhitokiri wrote:
       | To give an additional data point for people who are interested
       | how a setup like this performs for daily use:
       | 
       | I am currently running Parallels Tech Preview on the MacBook Air
       | M1 and primarily use PyCharm (remote interpreter and deployment
       | to the VM). The whole thing works better than expected
       | considering it's still a preview release. Battery lasts around 12
       | hours, sometimes an hour or so more depending on what else I run.
       | 
       | I am currently working on a Django app. When saving while the
       | debug server is running I can command tab to my REST client and
       | make an API request and the change was already deployed and the
       | server restarted. Despite dealing with a VM the whole thing is
       | just fast.
        
         | tbrock wrote:
         | If you don't absolutely need a local VM I've found it much
         | nicer to have a beefy ec2 instance be the Linux vm that you
         | connect to in order to work in Linux on x86.
         | 
         | Recently I've been doing this with VSCode which has a remote
         | dev mode that works amazingly well. Before that I was just
         | using ssh and tmux/screen which, as we know, also works and has
         | worked for decades.
        
           | fallenhitokiri wrote:
           | I am curious what you find ,,much nicer" using an EC2
           | instance than a local VM.
           | 
           | When running remote VMs I usually run them on my ESXi box in
           | the basement and VPN back home when traveling. This is
           | especially nice when a project needs more resources than
           | whatever device I'm working on has to offer. But beside this
           | very specific use case I haven't personally found any
           | advantage of this setup.
        
           | aidos wrote:
           | In our basic testing on M1 performance this week we've found
           | that an arm vm on the M1 runs about 2x as fast as a
           | c6g.2xlarge graviton2 instance. So you're probably looking at
           | about $0.50 / hr to compete with the Mac.
        
       | sdevonoes wrote:
       | Does vagrant + virtualbox work on the M1s?
        
         | lloeki wrote:
         | There is some official claim somewhere in the vbox forums that
         | vbox will never support ARM, so you might just as well consider
         | it dead.
         | 
         | I'm currently using Docker for Mac but will move to UTM (a.k.a
         | a nice UI atop qemu-hvf) when I have some time at hand.
         | 
         | Vagrant I only used for some other OS VMs (e.g smartos) but the
         | base images are x64 so there's no chance it works well (if
         | ever) on ARM either.
        
           | varispeed wrote:
           | > vbox will never support ARM,
           | 
           | Is it because some kind of beef with ARM or they think it is
           | technically impossible?
        
             | my123 wrote:
             | It's strictly x86 only, and wasn't written with other
             | platforms in mind at all.
             | 
             | A port to Arm wouldn't be really a port but a rewrite.
        
         | [deleted]
        
         | tmiller02 wrote:
         | Vagrant works great on Macs with M1, the issue is finding a
         | compatible 'provider' (VirtualBox, VMWare etc).
         | 
         | For my personal projects I've been able to switch from using
         | VirtualBox to Docker as a Vagrant provider, and it works well
         | enough for what I need it to do.
         | 
         | I created a cookiecutter template for Django projects at
         | https://github.com/tmiller02/cookiecutter-django-react-ansib...
         | that I use for development on my M1 mac using Vagrant + Docker.
        
           | stef25 wrote:
           | Docker makes things really slow, VirtualBox much better on my
           | Intel Mac.
           | 
           | Any idea if Parallels would work better on the M1?
        
           | djs55 wrote:
           | (I work for Docker on the M1 support) I'm glad it's working
           | for you! There's a bug in the recent Docker Desktop on Apple
           | Silicon RC build which affects some users of vagrant at the
           | provisioning stage when the new ssh key is copied into the
           | machine. It turned out that the permissions of `/dev/null`
           | inside `--privileged` containers were `0660` (`rw-rw----`)
           | instead of `0666` (`rw-rw-rw-`) In case you (or someone else)
           | runs across this there's an open issue with a link to a build
           | with the fix: https://github.com/docker/for-
           | mac/issues/5527#issuecomment-8...
        
             | tmiller02 wrote:
             | Hey, thanks for all your hard work, it's much appreciated!
             | 
             | Thanks for the tip, that's good to know. I'm running RC2
             | and haven't come across any issues like that, although I
             | don't run my Docker containers in 'privileged' mode when
             | using Vagrant.
        
       | varispeed wrote:
       | I am looking for a quiet and fast machine for development. I've
       | been trying to find a reasonable AMD laptop but all are out of
       | stock and I think these will still have fans buzzing under
       | heavier load. I personally hate Apple practices and I never
       | clicked with macOS (was forced to work with it for many years),
       | but if I could install Linux on M1 it would be hard to swallow,
       | but I may consider using it. My Intel laptop has fans buzzing now
       | even when it is idle. It drives me crazy.
        
         | fanatic2pope wrote:
         | Do you absolutely have to have a laptop? I realized years ago
         | that I spend 99% of my time in a single place and have since
         | built custom desktop systems for my primary development
         | machine. They are faster than any laptop I ever owned, quieter
         | and much easier to live with. And because I can put together a
         | system to my own specifications I can end up with something
         | that works perfectly with Linux. I haven't bought a Mac in
         | years and even with their new ARM hardware I don't see enough
         | of a benefit to go back.
        
         | ansible wrote:
         | Unless you are doing Linux GUI development, you have several
         | options.
         | 
         | 1. Low-end Chromebook (good battery life), remote server, VPN.
         | 
         | 2. High-end Chromebook (there are a few i3 and i5 models with
         | 8GB RAM), Linux environment.
         | 
         | Are you often in locations where you don't have Internet
         | access?
        
           | phonethrowaway wrote:
           | High end Chromebooks have i7 and 16 gb RAM fwiw, and run
           | Linux VMs just fine.
        
         | CoastalCoder wrote:
         | I'm in a similar situation. I want a new x86 laptop for
         | development, but it's not super urgent.
         | 
         | Some laptop built around the new Ryzen 9 5900HS cpu [0] seemed
         | like an obvious choice. But although it seems like AMD has
         | released it, I'm having trouble finding any actual laptops that
         | have it as an option. Maybe I'm just not looking hard enough?
         | 
         | [0] https://www.amd.com/en/products/apu/amd-ryzen-9-5900hs
         | 
         | UPDATE: Maybe I just needed to wait a little longer: [1]
         | 
         | [1] https://www.ultrabookreview.com/35985-amd-ryzen-9-laptops/
        
         | gpanders wrote:
         | You may already know this, but there is active work happening
         | now to port Linux to the M1: https://asahilinux.org/
        
           | rovr138 wrote:
           | Initial support was also just merged a couple? days ago.
           | 
           | https://news.ycombinator.com/item?id=26746983
        
       | ThinkBeat wrote:
       | There are plenty of ways to mount a filesystem via SSH.
       | 
       | Then the author could access the files via Finder.
        
         | mikewhy wrote:
         | Ah, echoes of the "why use this new Dropbox thing when I can
         | use FTP, SVN, and some FTPFS" attitude. You're right, what
         | you've suggested works.
         | 
         | It would still result with VS Code running more on your client
         | than it would when using VS Code Remote.
         | 
         | Port tunnelling, while totally possible with an SSH command in
         | a new terminal, is something VS Code just sets up automatically
         | (and makes it easy to add your own).
        
       | rcarmo wrote:
       | I've been doing this with minor variations for a while now (from
       | my iPad, from my Mac, my netbook, etc.) towards VMs in various
       | places (your favorite flavor of cloud, my favorite closet, etc.).
       | 
       | It has become remarkably seamless and trivial to switch any of
       | the local/remote pairs over time, and definitely cleaner than
       | managing various app runtimes on my local machines (I have cloud-
       | config templates to bootstrap fresh Go, Java and Node boxes as
       | required).
       | 
       | edit: forgot to mention I'm posting this from another of those
       | combos, a Windows VM I remote to from my iPad whenever I need a
       | desktop browser
        
         | dchuk wrote:
         | Can you explain more about your setup, in particular the iPad
         | part? What apps are you running on your iPad to facilitate dev
         | work? And when talking remote instances, do you mean something
         | like a droplet/vps?
         | 
         | My dream is to code web apps from my iPad from the couch/bed as
         | I sit at a big desk and monitor all day for work and I just
         | want to chill in the evenings on something smaller and more
         | comfortable.
        
           | maxioatic wrote:
           | Not OP but I use an iPad occasionally to remote in to a linux
           | box and work on projects.
           | 
           | I use blink for the terminal app and connect using mosh
           | instead of ssh. I found that mosh handles the connection
           | (reconnection) way better since iPadOS is pretty aggressive
           | in killing the terminal app if I switch to a different app. I
           | use also tmux on the server and just detach it when I'm done
           | in case I want to work on it on my laptop or desktop. Overall
           | works great, my only issue is that the 10.9" iPad screen is a
           | _little_ bit too small for my liking so I don't do work like
           | this that much. If I had the 12.9" iPad it would probably be
           | something I use daily.
        
             | rcarmo wrote:
             | Well, I have an iPad mini :)
             | 
             | https://taoofmac.com/space/blog/2016/11/06/1930
        
           | pojntfx wrote:
           | I wrote pojde[1] a while back to solve that exact usecase,
           | using my iPad (or any device with a web browser) to code from
           | anywhere. It creates multiple isolated code-server instances
           | on a remote server and handles toolchain installs, updates,
           | authentication and TLS for you :)
           | 
           | [1] https://github.com/pojntfx/pojde
        
           | rcarmo wrote:
           | Sure. I use Jump Desktop for RDP/VNC over SSH (with a Citrix
           | X1 mouse) and Blink/Prompt for tmux sessions. A typical setup
           | of mine has a remote container with Xrdp, Firefox, VS Code
           | and barely enough window management to do full-screen windows
           | and workspaces (typically blackbox).
           | 
           | Remotes can be anything: I have a KVM host at home (that I
           | remote to from my Mac for Docker dev) and plenty of Azure
           | VMs.
        
       | shoulderfake wrote:
       | I dont understand this HN infatuation with apples new chip
       | laptops. Ppl are doing everything under the sun to make it work
       | in random ways that arent supported yet etc.
        
         | sim_card_map wrote:
         | The chip is insanely fast, runs without a cooler, consumes very
         | little power.
        
         | culopatin wrote:
         | Who do you think turn unsupported things to supported?
         | Developers. Developers who also happen to hang out at HN and
         | like to talk about new developments around this chip.
        
         | stef25 wrote:
         | Personally I can't wait to upgrade my iMac to the one with the
         | new chips as soon as they come out, but the fact that setting
         | up a dev env is still a pain (whether it's Docker or a VM)
         | makes me hesitant.
         | 
         | I want to run multiple VMs at the same time and my current quad
         | core iMac struggles. So I was thinking of getting a beefy
         | Lenovo Workstation to use as a dev environment and use the
         | VScode remote ssh thing. But in that case I don't really to
         | upgrade my iMac.
        
         | coldtea wrote:
         | > _I dont understand this HN infatuation with apples new chip
         | laptops. Ppl are doing everything under the sun to make it work
         | in random ways that arent supported yet etc._
         | 
         | (a) HN has people who like new technology.
         | 
         | (b) This particular new technology is also very good.
         | 
         | What's difficult to understand about it?
         | 
         | People have been tinkering with WSL and Linux to have all kinds
         | of things working "in random ways that arent supported yet
         | etc", M1 is not that different...
        
         | rograndom wrote:
         | It's almost like the same people that try to make things work
         | in random ways are the same ones who frequent sites like
         | these....
        
         | JoBrad wrote:
         | It's new tech with a lot of promise, in a decent laptop.
         | Experimenting to see what you can do with it is very solidly
         | within HN's typical audience.
        
       ___________________________________________________________________
       (page generated 2021-04-11 23:00 UTC)