1. 71
  1.  

  2. 8

    It seems Jordan Hubbard has offered some advice even: https://github.com/helloSystem/hello/issues/37#issuecomment-729283970

    1. 5

      My first question was indeed “why not Linux”. This is also the thread that answers that: The author made AppImage and did not feel that the Linux community accepted this.

      1. 5

        Been there: Got constant sh*t from the Linux community for pushing the idea of application bundles, err, AppImages (think .app inside a .dmg).

        And yet, the whole premise of Fedora Silverblue is: you get a lean immutable base system, install applications through Flatpak containers, do development in containers.

        The Linux community is large and has many different subcommunities. Many dislike the idea of application bundles/images, but the Red Hat, Fedora, and GNOME folks (which are partially overlapping) seem to be actively pushing this idea. I am sure once they get this going there are also FreeBSD conservatives who will say that application bundles are not the way of Unix.

        Just pick the technology that is best for your vision and ignore the critics.

        1. 2

          FWIW FreeBSD had app bundles years ago in form of AppCafe.

      2. 2

        something Linux lacks for the most part because everything is so encapsulated and “distro-ified “that it’s not even clear how to build your own images, much less random pieces of the kernel and userland from one convenient, browsable location like FreeBSD still has

        Guix and NixOS like to have a word with him ;).

      3. 7

        This is something that would make me consider switching away from MacOS as my main operating system. I switched to MacOS after years of having to be my own sysadmin while running Linux on my laptop, and it’s been a breath of fresh air. If hello could get to similar levels of “it just works”, I’d be very interested in trying it out.

        1. 6

          I agree with many of hello’s ideas. However, I came across this point on their GitHub wiki that I do not understand:

          “ Run as root the whole time; or, at the bare minimum, have root-equal rights for the user”

          On macOS, I can do all my work without root privileges. Sure, to manage some parts of my system I do need admin privileges. However, I’m more often asked for my credentials by 1Password than I am by the operating system.

          1. 4

            On my Mac, I run with an “Admin” account, which in Unix terms is a user account that’s a memeber of the “admin” group, but in practice it makes life a lot easier on MacOS; for one thing /Applications is writeable for me without elevating privileges. When I do need to elevate privileges it’s more often than not as easy as putting my finger on the fingerprint scanner. Even though I don’t actually run as root, it doesn’t feel like the system is in the way. Try changing something in /usr/local/ from a Linux or *BSD.

            Hello seems to have it as a goal to make it easy to install software. Running everything as root is one way of doing that… I would prefer if they choose a more secure way to do that, but on the other hand I see the difficulty in matching Apple’s permission system where I as a user have nearly full reign of my machine while an app I download from the internet cannot even sniff around my home directory without begging me for permission, even though it is running with my uid.

            Obligatory XKCD: https://xkcd.com/1200/

            1. 4

              I mean, I think it’s questionable whether running an interactive session as non-root is more secure than running it as root. A virus could just modify ~/.profile or whatever to hijack su/sudo and thus get superuser privileges. I think the sudo dance is a bit annoying and most likely unnecessary.

              1. 4

                It’s worth noting that, on macOS, everything installed from the app store runs sandboxed and so can’t modify ~/.profile. When an app presents an open or save dialog box, that box actually runs as a separate process and the sandbox framework updates its access control lists based on what’s selected. Applications can’t access anything in the file system that they aren’t explicitly allowed to. If anything running in the sandbox is compromised or malicious, there’s a fairly limited amount of damage that it can do.

            2. 4

              Code running as my user can read (or destroy) all my private files, emails, ssh keys, passwords, use my web sessions & access my git repositories, etc.

              If it also has root access, it can also fix my printer drivers.

              At least for me, a separate root user offers no protection that I find meaningful or useful.

            3. 5

              This is more interesting than I thought it would be, especially from someone I thought didn’t tend to have good real-world ideas, but I have some reservations:

              • Where’s the ecosystem? Consistent developer stack? If you want applications, and you want them to be consistent (what I assume this environment wants), you should be consistent with toolkits, APIs, conventions, etc.
              • What’s not communicated is why any of this is better.

              As of now, it reads like all of this is just personal neurosis, just polished; not any sort of vision or gestalt that made things like the Mac tick.

              1. 4

                I hear the “applications should be consistent” sentiment at lot of time… and yet even on OS X, there are lots of wildly popular applications, even Apple-made ones, that invent their own UI.

                Same on Windows. Some most popular programs ever, like Winamp, got popular in part because they could be made to look nothing like the default UI. Most “professional” applications also invent their own UI and no one complains. And when it comes to “Metro”, “inconsistent with old apps” isn’t a complain I hear often either.

              2. 4

                I’m behind it 100%. FreeBSD is very appealing and satisfying to me, so long as I stick to the shell. And then when it comes to windowing systems, I don’t know where to being finding something that feels as smooth and straightforward as the base system.

                Mac philosophy is about using the mouse to achieve everything.

                Maybe I’m reading too much into this, but I think the Mac UI is less about the old singular mouse button and more about progressive disclosure — showing only the essential functions to the user up front, and hiding more just around the corner. Mac apps are not necessarily less complex than Windows or Linux apps, but they do tend to focus on the main thing and aggressively hide the advanced bits. That feeling of simplicity on macOS is just user confidence gained from a smooth learning curve and uniform behavior. It’s a result of developers guiding users to understand the basics first by hiding everything else, and then showing them a further landscape of functions they can learn at their own pace.

                For Hello’s purposes, such guidance and uniform behavior is in the hands of app developers. That’s true on macOS too, but Apple offers their Human Interface Guidelines to set a standard and explain their methods. I think Hello could use a set of these.

                1. 1

                  “where to begin finding something” is what I meant to say.

                2. 3

                  Mac philosophy is about using the mouse to achieve everything.

                  This is of course subjective, but IMO the most important part of the “Mac philosophy” is that things work and keep working without you having to think about it (mostly).

                  I have a Mac and a PC, and I mostly use UNIX tools (Linux containers/VMs and the MacOS command line), but I have not switched to Linux (and I rarely use the PC) because the Mac is quite stable and has rarely required me to interrupt my actual job to get it working. I prefer Linux for most things and have been meaning to switch to some Linux distribution for years, but the fact is I’d be taking time away from work for little marginal benefit to install it and find workaround for missing non-linux apps; I’ll probably only really switch when I get a new laptop and can make sure a decent linux is preinstalled and functioning.

                  The reasons are varied (and not always attributable directly to the OS itself), but in my experience MacOS gets out of my way better than anyone else. I’m counting a few separate things together here:

                  • good drivers
                  • availability of desired applications (I know I can run photoshop, word, etc. if needed)
                  • good default config
                  • system stability with rare reboots
                  • easy backups
                  • many scientists have macs, so i can easily learn/teach new things that have any OS dependence
                  • durable hardware design (a little unfair, since Apple gets to control both hardware and OS)
                  • a proper UNIX terminal plus a proper modern GUI
                  1. 2

                    Am I the only person around who doesn’t find MacOS particularly intuitive?

                    My wife has a Mac and every time I have to figure something out for her, it never seems any simpler than any other system, and it definitely has it’s own particular opacities.

                    1. 3

                      Its probably that Mac OS 6 was really simple and it went south after that …

                      Here:

                      http://www.hampa.ch/pce/pics/mac-os/pce-mac-macos-6.0.7-about.png

                      1. 2

                        Am I the only person around who doesn’t find MacOS particularly intuitive?

                        I mean, how “intuitive” as an inherent property can a visualisation of the though process of a piece of silicon operated by > 100 keys and movable piece of input can be?

                        What I like(d) about macOS was a certain drive to consistency. E.g. pulling an image from the file system to an app worked the same as pulling an image out of a website to an app. Shortcuts are usually the same everywhere, especially around window handling. The terminal had similar keybindings for fast navigation as input fields in the UX.

                        The reason I’m speaking half in the past is because I left macOS when those things slowly stopped being true (e.g. the latest photo app does not allow me to pull a photo into an upload field of a browser).

                        None of that is intuitive though. Every operating system requires a substantial amount of getting used to.

                        1. 1

                          Agreed, which is why I included the sentence that you omitted in your quote, respecting the relative simplicity of OSes. All must be learned. I just don’t know how MacOS gained a reputation for ease of use.

                        2. 2

                          If you only use it occasionally, you probably won’t see the difference. Here’s a very simple example: On the Mac, every single dialog box has the go-back button on the left, the go-forwards button on the right, cancel to the left of the go-forwards button, and verbs on the buttons. On Windows and *NIX DEs, that’s not even consistent within a single application. On the Mac, you can build motor memory to do the right thing when presented with a dialog, on Windows you have some cognitive load just to figure out which button to press even if you know which action you want to perform.

                          Part of this comes from good API design. With OpenStep, the dialog box APIs don’t let you specify the order of the buttons, they let you specify the intent. This was done because SunOS, NeXTSTEP, and Windows had different conventions and they wanted to ensure that applications were source-compatible across all targets but it has the side effect on the Mac of ensuring that everything written with Cocoa presents consistent dialog boxes.

                          1. 2

                            I was trying to search for a study as a counterpoint, but it seems one cannot do studies comparing operating systems that different.

                            But I found this very nice article in Fast Company from Don Norman, who was designing UX guidelines in the 80es. He seems to agree with you.

                          2. 1

                            I’d be interested to know how the global menu system works

                            1. 2

                              Probably like Ubuntu’s (former) Unity’s global menu.

                              And this menu has superpowers: You can search its content, allowing for very quick navigation through applications with large menus like GIMP, Scribus, Krita, and the like.

                              Unity’s HUD was a genius idea of using that menu with the keyboard. This article sounds like a hodge podge of GoboLinux’s reïmagined filesystem, Ubuntu’s Unity, elementaryOS’s “minimalism”., and a FreeBSD core.

                              1. 1

                                The same (or very similar) to:

                                • macOS
                                • SerenityOS
                                • Vala Menu used for example in Ubuntu Mate with Cupertino layout
                                1. 3

                                  I think the question is how it’s implemented. Is this using the DBUS menu protocol or something else?

                                  1. 1

                                    I did not checked which way is used, you may check it here:

                                    https://github.com/helloSystem/Menu

                                    1. 1

                                      Looks like it’s a DBUS menu implementation. It’s been a while since I looked at that spec, but last time it couldn’t express things like the macOS search box in the help menu.

                              2. 1

                                Kudos and best of luck!

                                Speaking for your future users googling solutions to problems – in a world where search prominence is perhaps more important than domain names, I recommend a more unique name like helloOS.

                                1. 1

                                  This is great. I was trying to set up FreeBSD on my 2011 MacBook Pro yesterday but gave up because there seemed to be no WiFi support. Any chance of this working on actual Macs, specifically the BCM4331?

                                  1. 2

                                    BCM4331

                                    I just checked and it seems that this chip works in FreeBSD 12.0-RELEASE and later without additional patches :).

                                    We have 12.2-RELEASE now so it should still work.

                                    1. 1

                                      Oh great, thank you for checking! I wonder why it didn’t work for me, I must have messed something up during setup. Will try again.

                                      1. 1

                                        Well, no luck unfortunately. In the hello live disk, if I click “Configure WiFi,” a popup says “No wlan devices found,” but if I run pciconf -lv, I can see device = 'BCM4331 802.11a/b/g/n'.

                                        1. 2

                                          What you get from this command?

                                          # sysctl net.wlan.devices
                                          
                                          1. 1

                                            Don’t have it front of me but when I ran that command on the live disk (and, separately, on a FreeBSD installation), it was just net.wlan.devices: and then a newline.

                                            1. 1

                                              BCM4331

                                              There is chance that a module needs to be loaded for this card.

                                              Its not present in the 12.2-RELEASE kernel:

                                              % kldstat -v | grep bhnd
                                              % (no results)
                                              

                                              But modules for it exist in usual /boot/kernel dir:

                                              % ls -1 /boot/kernel/bhnd*
                                              /boot/kernel/bhnd_pci_hostb.ko
                                              /boot/kernel/bhnd_pci.ko
                                              /boot/kernel/bhnd_pcib.ko
                                              /boot/kernel/bhnd.ko
                                              /boot/kernel/bhndb_pci.ko
                                              /boot/kernel/bhndb.ko
                                              

                                              Here is the man page for it:

                                              https://man.freebsd.org/bhnd

                                              Hope that helps.

                                              1. 1

                                                Thank you. I’m a novice at this, but I think I’m following what you’re saying. I have FreeBSD 12.2 installed on the MacBook and I see:

                                                root@freebsd:~ # kldload bhnd
                                                kldload: can't load bhnd: module already loaded or in kernel
                                                

                                                Running kldstat -v | grep bhnd returns several lines.

                                                1. 2

                                                  Sorry, maybe I was wrong.

                                                  I saw a thread at FreeBSD Forums stating that BCM4331 chips are supported and working since 12.0-RELEASE.

                                                  I even tried to search FreeBSD source for BCM4331, here are the results: https://freshbsd.org/search?q=BCM4331&project=freebsd

                                                  I am not sure how to help you. Maybe BCM4331 is not that well supported or some partial support exists?

                                                  1. 2

                                                    Okay, thank you anyway for trying!

                                                    1. 2

                                                      I can only recommend small USB WiFi like that one as alternative:

                                                      https://vermaden.wordpress.com/2020/10/30/realtek-usb-wifi-review/

                                                      1. 1

                                                        I do have one like that, and confirmed that it works with the live disk. Unfortunately, as I went to install hello, I was warned that it would wipe my entire disk, and I need to dual-boot MacOS still.

                                    2. 1

                                      Honestly, this reminds me a lot of older PC-BSD, with the app bundles being reminiscent of PBI. I know that PBIs ended being a consistent source of problems for PC-BSD users, so hopefully these app bundles don’t go the same way.