Software engineer, functional programming enthusiast.

  • 0 Posts
  • 9 Comments
Joined 3 years ago
cake
Cake day: April 27th, 2021

help-circle
  • I would go with Guile, because it is built-in to the Guix Package Manager which is a really good general-purpose package manager.

    It ticks several of your boxes:

    • has a CLI interpreter
    • is a general purpose language, Scheme, amd compliant with revisions 5, 6, and 7 of the language standard
    • allows writing in a functional style (it is one of the original functional programming languages)
    • small disk footprint, but still large enough to be “batteries included”
    • decent documentation, especially if you use Emacs
    • simple setup: not so much, unless you are using Guix to begin with. The standard distribution ships with lots of pre-built bytecode files, you need an installer script to install everything.

    It also has pretty good libraries for system maintenance and reporting:


  • I’m a communist but I suddenly realised that American conservatives should all be hardcore Linux enthusiasts. Why is this not already the stereotype?

    Libertarians and conservatives in the US demand liberty only for the already wealthy and powerful upper class, the liberty to enslave and exploit whomever and whatever they choose. They believe the ultra-wealthy have somehow earned the right to do so. On the contrary, the socialists, especially the anarchists, are opposed to unjust hierarchies, and the hierarchy created by wealthy and politically powerful classes are the most unjust of all – quite the opposite of the libertarians and conservatives.

    Libertarian (Liberal) propaganda appropriates the more popular socialist ideologies while conflating liberty for only the wealthy/powerful versus liberty for all people. One can see appropriation done in the same way in the very name of the National Socialist (Nazi) party of Germany. These tactics that were used by the Nazis are still used by various American conservative and libertarian parties, who mostly align under the umbrella of the Republican Party. Just look at what the Trump cult weirdos are all saying nowadays. It is pure KKK and Nazi ideology resurrected, under a thin veil of euphemisms.

    So if you take at face-value what libertarian and conservative politicians in the US say publicly about freedom, small government, civil liberties, etc., then they ought to be very enthusiastically in favor of Linux, but it is all just propaganda. They don’t care about freedom, only freedom for the elite clique of their supposed “supermen,” the wealthy elites, the freedom to exploit groups of people who they hate most — take your pick: foreigners, black people, women, gay and trans, Jews, Muslims, the “woke,” the “leftist,” etc. The libertarians and conservatives hate things that benefit society at large, because what benefits society also benefits these people they hate.

    Linux is pretty authentically a community project for the good of society, and it is truly subversive to the authority of the corporations and elites. So the various libertarians and conservatives of the US recognize Linux as a threat. Only that small group of privileged, middle-class libertarians stupid enough to be duped by the wealthy elite propaganda believe that free software is aligned with their ideology.


  • both can be installed side by side if you have enough disk space.

    Yeah, this is exactly what I do using QEMU and Aarch64 Debian. I suppose I could try the Asahi Linux in QEMU but that actually might be more difficult since I don’t think QEMU can emulate the MacBook hardware, as far as I know. And I can’t do dual boot, I want to be able to switch back and forth between Mac OS and Linux without rebooting anything.



  • I switched to Linux permanently in 2008. Last OS I used before Linux was Mac OS X version 10.4 “Tiger” (if I recall correctly) which is what came with the Macintosh PowerBook that I had bought roughly in the year 2004. I have never used Microsoft software unless someone was paying me to, but at the time, Windows XP was still all the rage even though Microsoft was trying to get everyone to switch to Windows Vista. (Vista got a lot of well-deserved hate too, sort of similar what we see with Windows 11 right now, actually.)

    Anyway, I was a die-hard Apple fanboy, but getting more and more into free software and I kept on using Macports/Homebrew to build Linux stuff I found online, but back in those days a lot of apps I wanted to try did not have good support for the Darwin kernel build of GCC which was pretty old compared to what Linux was using at the time. Occasionally a build would fail, and I would try to port the software on my own, with the idea of maybe submitting a package to Macports. But after a while I realized, “if I want to use Linux software, why not just use Linux?”

    So I bought a Netbook (Dell Inspiron Mini 10) with Ubuntu pre-installed. I really loved that little computer, I used it for a good 5 years until I needed a more powerful computer. I still have it, actually. I never went back to Apple until this year when I took a new job where they wanted me to use a MacBook Pro. (Again, not using proprietary software unless I am well paid.)

    I can say with confidence that Linux is considerably better than Apple’s operating systems. I use Aarch64 Debian 12.5 in a QEMU on that MacBook for most things, only switching over to Mac OS when I really need to.


  • Ramin Honary@lemmy.mltoLinux@lemmy.mlOpenSUSE is the best
    link
    fedilink
    English
    arrow-up
    4
    ·
    2 months ago

    Never tried it, but everyone I know who has tried it says its the most stable rolling release OS ever. That is pretty cool. Btrfs support is cool too, copy-on-write, deduplication, and whole-disk snapshot and rollback capability, its great for keeping your data safe.

    I don't care about rolling releases, I get my stability from Debian, or sometimes Mint. If I want the latest software I’ll install Guix packages or FlatPaks. And I can still use Btrfs on Debian.


  • Ramin Honary@lemmy.mltoLinux@lemmy.mlNot really sure I get Wayland
    link
    fedilink
    English
    arrow-up
    97
    arrow-down
    1
    ·
    edit-2
    2 months ago

    I can explain the difference between X11 and Xorg with an analogy to the web and web browsers: X11 is like HTTP, Xorg is like the Chrome browser. X11 is the protocol, Xorg is software that implements that protocol.

    X11 is old, it was designed back in the 1980s and includes messages for drawing lines and circles and fonts on the screen. Also, back then there were a lot of “thin clients”, computers that were basically nothing but a browser, since graphics were computationally expensive and could not be done on the client computer, graphics rendering was done server side. There are lots of messages in the protocol for handling screen updates over a computer network.

    Nowadays, all personal computers are powerful enough to render their own graphics, and no one needs the display server to draw individual lines or circles on screen. Vector graphics and fonts are done at the application level, not over the network. So these these messages specified in the X11 protocol are hardly ever used. Really, most of X11 (let’s say 90% of it) is not used at all, only the parts where the keyboard and mouse are defined, and how you can allocate memory to buffer a graphic and copy that buffer to the display. But you still need to maintain the Xorg software to handle everything that X11 specifies, and this is just a waste of code, and a waste of time for the code maintainers.

    So basically, they decided about 10-15 years ago that since no one uses most of X11, let’s just define a new protocol (called Wayland) that only has the parts of X11 that everyone still uses, and get rid of the 90% of it that no one ever uses. Also, the protocol design takes into account the fact that most modern computers do all of their own rendering rather than calling out to a server to render for them. Also the Wayland protocol design takes into account that a lot of computers have graphics cards for accelerated graphics rendering.

    Since the Wayland protocol is much simpler, it is easier for anyone to write their own software which implements the protocol, these software are called “compositors.” Finally, 10 years after some of the first implementations of Wayland, the protocol and compositors are becoming mature enough that they can be used in ordinary consumer PCs.


  • Emacs.

    Emacs is an app platform in and of itself, and the vanilla installation comes with dozens of its own apps pre-installed. Like how web apps are all programmed in JavaScript, Emacs apps are all programmed in Lisp. All Emacs apps are scriptable and composable in Lisp. Unlike on the web, Emacs encourages you to script your apps to automate things yourself.

    Emacs apps are all text based, so they all work equally well in both the GUI and the terminal.

    Emacs comes with the following apps pre-installed:

    • a text editor for both prose and computer code
    • note taking and organizer called Org-mode (sort of like Obsidian, or Logseq)
    • a file browser and batch file renamer called Dired
    • a CLI console and terminal emulator
    • a terminal multiplexer (sort-of like “Tmux”)
    • a process manager (sort-of like “Htop”)
    • a simple HTML-only web browser
    • man-page and info page browser
    • a wrapper around the Grep and Find CLI tools
    • a wrapper around SSH called “Tramp”
    • e-mail client
    • IRC client
    • revion control system, including a Git porcelain called “Magit”
    • a “diff” tool
    • ASCII art drawing program
    • keystroke recorder and playback

    Some apps that I install into Emacs include:

    • “Mastodon.el” Mastodon client
    • “Elfeed” RSS feed reader
    • “consult” app launcher (sort-of like “Dmenu”)

  • Ramin Honary@lemmy.mltoLinux@lemmy.mlWhat are your opinions of Guix?
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    8 months ago

    So I think Guix (and Nix) is the most technologically advanced package manager in existence, and I hope someday all package managers work like Guix.

    One other very interesting feature about Guix (which I don’t think Nix is doing yet) (which Nix also does) is that they have implemented a fully verifiable bootstrap, meaning every step of building the kernel, including the steps taken to build the C compiler toolchain, are produced by code that is simple enough for a group of humans to check for correctness and safety. Also, every step of the build process exists in the package repository, with no reliance on externally built binaries for anything, not even the C compiler toolchain. They accomplish this with a multi-phase bootstrap process, where a smaller, simpler C compiler is used to build GCC.

    Do I use Guix? Well, no. Simply put, it is not quite to the point where it just works on a lot of the computer hardware that I own. With a bit more work, with a few more developers, and a bit more money invested, Guix could pretty soon become as reliable and useful as Debian or Fedora. But it is not quite there yet. And frankly, I have other more important things to do than worry about debugging problems with the operating system I am using.