rglullis

joined 2 years ago
MODERATOR OF
[–] rglullis@communick.news 1 points 7 months ago (12 children)

Bsky’s growth slowed quite a bit

What a silly remark. Yeah, of course (percentage-wise) they slowed down. Do you think that would see 190% growth every month?

The main reason it’s much more successful than Mastodon is content discoverability

You are talking about the symptoms, but you are ignoring the diagnostic. The reason that Bluesky has a superior product at the moment is because they HAVE MONEY. They can go and hire people, they can invest in infrastructure, they can spend on marketing, they can go cut out deals with other service providers.

Meanwhile, the Mastodon devs are all sharing the belief that they are saints who are working "for the community". Sorry, it's not enough. We are not going to amount to much if our ambitions are that low.

And the problem Reddit and Lemmy solve is becoming a niche issue

It doesn't matter the format. This is not (specifically) about Reddit, or Twitter, or Instagram or TikTok.

This is a discussion about a model that can keep sustainable development and operations of an open web. ActivityPub as whole allows us to think in much broader terms than "replacing Reddit" or "replacing Youtube. The format of "popular social media" may change, but the fact that people will always have an interest in consuming, creating and sharing content will always be there.

[–] rglullis@communick.news 0 points 7 months ago* (last edited 7 months ago) (6 children)

My local library has been been run by volunteers for 50 years.

Bad analogy. A library in isolation can still exist and it does not require the network to have value to its community. An instance in isolation is useful, but the real value comes from its ability to participate in the larger network.

Libraries also are not the drivers of content generation. The motivation for an author to write a book is not "oh, I really want to get my book in the local library!". They want to reach an audience. They rely on a whole cottage industry of agents, publishers, marketing, distributors, etc. The same for Hollywood movies.

To their credit, what tech companies did was to remove a lot of these middlemen. But to their fault, the main reason they were so successful at doing this is that they managed to do that by taking their revenue from their "main business" and running these operations at a loss, forcing their competitors out of existence.

[–] rglullis@communick.news 1 points 7 months ago* (last edited 7 months ago) (3 children)

I'm not asking people to stop doing things for free or to have hobbies. What I am saying is, simply, if we really want to get rid of the Elon Musks and Zuckerbergs of the world, we need to get rid of corporate-controlled social media for everyone and all of this "Fediverse" thingy will need a lot more resources than a handful of people doing it "for fun" and the users will have to understand that everyone needs to support them with more than "just enough to cover hardware costs".

Also, I want to say that I really believe in the Nassim Taleb's "Skin In The Game" principle: you can only take someone's opinions seriously when they are willing to take all the risks themselves that comes with it. I solemnly ignore anyone that just complains and/or asks for systemic changes without accepting to pay the price required for those changes. This includes anyone here that keeps talking about "Evil Corporations" and promoting the Fediverse without putting their money where their mouths and paying the full sticker price.

IOW, I'm not upset at the admins that are willing to put a lot of work and time to do things for free, but I'm upset at the majority of users who think that just because someone is willing to work for free that they should not take initiative to help as much as they can. And I know that the majority of Fediverse users have the means to support the admins with more than "just enough to cover hardware costs".

[–] rglullis@communick.news 1 points 7 months ago

Hello from the Lemmy side of the Fediverse! Just a little hint: posts to Lemmy groups (such as !nfl@nfl.community) work better if you make them in a thread. Otherwise, all we are going to be seeing from you is a string of random one-liners (usually what comes from before the mention to the group).

Can you please stick any posts you make about the game to the same thread?

[–] rglullis@communick.news 1 points 7 months ago

Great! When can I start?

[–] rglullis@communick.news 1 points 7 months ago* (last edited 7 months ago)

You are definitely not speaking for the billions of people that are still in the large networks. Do you think they prefer to use Twitter/Facebook/Instagram/TikTok because it's somehow better, or because of network effects?

[–] rglullis@communick.news 1 points 7 months ago (14 children)

Isn’t that the point of federation?

No. Being able to move is an advantage compared to centralized platforms, but it is not the "point" of it. It makes the system overall more robust, but it doesn't guarantee or protect the individuals that are part of it.

Do you think that the world wide web would reach the size that it has today if websites had such a short shelf-life? Of course not. It would remain just a geeky curiosity, just like Lemmy or Mastodon. There is a reason why Bluesky is adding one million users per week while we are here counting the same dozen of active people since summer 2023. People generally do not care about how the system works, they just want to something that helps them achieve their goals or solves their problems.

[–] rglullis@communick.news 0 points 7 months ago (8 children)

Again, if some server admins need help with money, they should definitely ask, but I haven’t seen such request ever.

Do you realize the issue with this reasoning? Here's a hint.

Survivorship Bias

You don't see admins "asking for money" to help because there are not that many admins that are willing to put up all the work that is required to run an instance upfront. Let's normalize the idea that admins and moderators should get paid for their work, and you can bet that there will be a lot more people showing up.

[–] rglullis@communick.news 1 points 7 months ago (5 children)

What do you mean? Even non-profits have income and pay salaries to the people working there.

[–] rglullis@communick.news 1 points 7 months ago (2 children)

maybe small instances, ran by volunteers for the community is a viable concept.

We are talking about different things. Very different things.

I am not saying that small communities are not viable. I am saying that without substantial financial support, all we are going to get is small communities, and we are not going to be able to compete with the corporate mainstream.

If your ambition is just to keep some obscure corner of the internet, fine. If you want to take back the internet away from Google/Facebook/Microsoft/Reddit, then we need to get a lot more help than just a dozen people pitching in to cover server bills. It will require work. It will require coordination. It will require resilience. It will require sacrifices.

Being upset at Zuckerberg, or making campaigns to "Boycott Threads" is not going to do anything if our side is orders of magnitude smaller than theirs. They will still be exploiting their users. And even if you personally don't use it, or your "community" doesn't use it, there are still plenty of people that I care about that do.

[–] rglullis@communick.news 1 points 7 months ago (21 children)

In the grand scheme of things, community members are individually easier to replace than those keeping the service running. E.g, take any community with more than a few hundred users and lose half of them, randomly. Now, take half of the instance admins. More likely than not, the instance will simply stop existing.

[–] rglullis@communick.news 2 points 7 months ago (17 children)

Your question is as short-sighted as "If global warming is real, then why is it snowing in Southern Europe?"

No, a system that is not sustainable does not imply that all the ecosystem dies simultaneously. It just means that it relies on a continuous stream of idealistic people coming in, willing to help, only to collapse eventually later.

0
submitted 2 years ago* (last edited 2 years ago) by rglullis@communick.news to c/emacs@communick.news
 

b'\n \n

\n

\n Triton Famme logo\n \n \n

\n

\n

\n

\n

\n \n \n

\n

\n \n \n

Compiling GNU Emacs 30 on Debian 12

\n \n \n

\n

\n

\n

\n \n

\n

\n \n \n

Prologue

\n\t

\n\t In this blog, I'll show you how to compile Emacs on\nGNU/Linux Debian 12. But the procedure is of course easily adaptable\nto any GNU/Linux OS, since we'll only be installing a few packages\nusing their package manager. To make everything tutti , we will also\n\t add a native compiler and tree-sitter.\n
\n

Native compilation

\na€¦in Emacs is the process of translating and converting Emacs Lisp source code to machine code, which allows Emacs Lisp to run more efficiently and faster each time it is run.\n
\nNative compilation in Emacs is not a new feature; it was introduced in version 28.1.\n
\nThe result of native compilation is a binary blob that (can) be subsequently loaded when Emacs starts.\n
\n
\n

Tree-sitter

\n\nTree-sitter is a syntax tree analysis library used to parse code as it\nis manipulated. It is a tool that allows you to analyze the syntax\nstructure of a programming language and provides an interface to\nperform various operations such as code refactoring, dependency\nvisualization, or documentation generation.\n\nTree-sitter supports different programming languages and allows users\nto define their own "recipes".\n\nNormally, when working with code (meaning highlighting it, folding it,\nmoving it to definitions,a€¦) some kind of parser working with regular\nexpressions was used.\n\nTree-sitter (supposedly) provides better parsing than a regular\nexpression parser. Regular expressions work with characters or a group\nof characters, and these must appear in the displayed text in a\ndefined order. However, a tree-sitter is capable of parsing and\nrecognizing more complex patterns of structured language, including\nsyntax.\n\nThe regular expression parser requires that the entire input text be\nread and processed at once, which is memory and computing power\nintensive when dealing with large files. Tree-sitter works\nincrementally and performs parsing without the need to load the entire\ntext at once.\n\nThe regular expression parser only works with the linear structure of\nthe text and cannot capture its hierarchy. Tree-sitter is able to\nunderstand the hierarchical structure of the text and provide\ninformation about different levels of structure - such as nested code\nblocks and so on.\n
\n
\n

Installation

\n
\n

Installing the necessary tools and libraries

\n\nTo successfully compile GNU Emacs, we will need some additional tools\nand libraries that may not be present in a normal OS installation.\n\n \n\nThese are:\n\n

\n| git              | tool for storing, managing and tracking changes to project source code                                |\n| autoconf         | (simplified) used to generate a Makefile file for compilation                                         |\n| texinfo          | tool for working with and converting documentation                                                    |\n| gnutls-bin       | libraries for using SSL/TLS protocols (if we want to use Emacs as a mail client)                      |\n| libgccjit-12-dev | library containing the language independent JIT (Just-In-Time) compiler needed for native compilation |\n| gcc              | is probably not necessary to introduce the C compiler                                                 |\n| libgtk2.0-dev    | GTK libraries if Emacs is to run in its own rendered window and not in the terminal                   |\n| libgnutls28-dev  | libraries for compiling for gnutls-bin                                                                |\n| libxpm-dev       | libraries to support xpm graphics filesknižnice pre podporu xpm grafických súborov                    |\n| libgif-dev       | a€¦ and detto for gif                                                                                   |\n| libtinfo-dev     | transition package for libncurses                                                                     |\n

\n
\nWithout hesitation or second thoughts 😏, we copy the command:\n

\n  sudo apt install git autoconf make texinfo gnutls-bin libgccjit-12-dev gcc libgtk2.0-dev libgnutls28-dev lib libxpm-dev libgif-dev

\n

\n\n

Tree-sitter

\n\nAccording to the tutorial on [Mastering Emacs: How to Get Started with Tree-Sitter](https://www.masteringemacs.org/article/how-to-get-started-tree- sitter):\n
\nDownload the latest version of tree-sitter:\n\n

\n  git clone https://github.com/tree-sitter/tree-sitter.git

\n
\nAnd compile the program using the familiar three-line magic:\n
\n

\n  cd tree-sitter/\n  make\n  sudo make install\n

\n
\nAnd (if we haven't already) if we define one more variable so that Emacs doesn't fiddle during starting up:\n

\n  export LD_LIBRARY_PATH=/usr/local/lib/\n

\n
\n\n

GNU Emacs 30

\n\nFrom the savannah repositories we'll download the Emacs source code:\n

\n  git clone -b master git://git.sv.gnu.org/emacs.git\n

\n
\nNext up:\n

\n  cd emacs\n

\n
\nRun autogen.sh , which is used to generate configuration files and scripts for compilation and installation\n
\n

\n  ./autogen.sh\n

\n
\nAnd then we run configure , with parameters\nfor tree-sitter support and native compilation. \n\n
\n

\n  ./configure --with-tree-sitter --with-native-compilation --with-mailutils --with-pop\n

\n\n( --with-pop - if we also require POP3 protocol when downloading emails)\n
\n \nFollowed by the classic:\n

\n  make\n  sudo make install\n

\n
\n

Tree-sitter setting

\n
\n\nSomewhere in the initialization file, we put a list of addresses from where the rules for that language can be downloaded:\n

\n  (setq treesit-language-source-alist\n    \'((bash "https://github.com/tree-sitter/tree-sitter-bash"))\n     (cmake "https://github.com/uyha/tree-sitter-cmake")\n     (c "https://github.com/tree-sitter/tree-sitter-c")\n     (css "https://github.com/tree-sitter/tree-sitter-css")\n     (elisp "https://github.com/Wilfred/tree-sitter-elisp")\n     (go "https://github.com/tree-sitter/tree-sitter-go")\n     (html "https://github.com/tree-sitter/tree-sitter-html")\n     (javascript "https://github.com/tree-sitter/tree-sitter-javascript" "master" "src")\n     (json "https://github.com/tree-sitter/tree-sitter-json")\n     (make "https://github.com/alemuller/tree-sitter-make")\n     (markdown "https://github.com/ikatyang/tree-sitter-markdown")\n     (python "https://github.com/tree-sitter/tree-sitter-python")\n     (toml "https://github.com/tree-sitter/tree-sitter-toml")\n     (tsx "https://github.com/tree-sitter/tree-sitter-typescript" "master" "tsx/src")\n     (typescript "https://github.com/tree-sitter/tree-sitter-typescript" "master" "typescript/src")\n     (yaml "https://github.com/ikatyang/tree-sitter-yaml")))\n

\n
\nAnd run the\n

\n  M-x treesit-install-language-grammar\n

command.\n
\n
\n\nWell, we have compiled Emacs in versiona€¦ well, last version, for me it was testing version 30.\n\nBut I haven't deployed it to full operation yet.\n\n\t

\n\t
\nA couple of pictures at the end:\n

\n

\n![Fig. 1: Installed version 30](https://famme.sk/blog- obr/emacs29/00-emacs_30.png) Fig. 1: Installed version 30 \n

\n\n![Fig. 2: ts-c-mode](https://famme.sk/blog-obr/emacs29/01-treesiter- pre-c.png) Fig. 2: ts-c-mode \n\n\n\n\t\n

\n

\n \n

\n

\n \n

\n

\n \n \n

O našej spoločnosti

\n NaÅ¡a firma TRITON FAMME s.r.o., ako nasledovník firiem TRITON\n a FAMME pôsobí na trhu od roku 2005 (firma FAMME od roku\n 1996). Orientujeme sa na predaj poľnohospodárskej, lesníckej a\n komunálnej techniky, na návrhy, realizáciu prípadne\n rekonÅ¡trukcie technologických liniek na pozberovÃ(C) spracovanie\n zemiakov spolu so skladovými technológiami na Slovensku i v\n zahraničí.
\n Vykonávame tiež servisnú činnosÅ¥ technologických liniek, nielen\n na Slovensku, ale aj v okolitých krajinách, a v krajinách\n bývalÃ(C)ho Sovietskeho zväzu. \n

\n \n

\n

  • ObchodnÃ(C) meno spoločnosti:
    \n

\n

  • IČO: \n

  • DIČ / IČ DPH \n

\n \n \n

\n

  • Triton Famme s.r.o.
    \n

\n

  • 48 320 404 \n \n

    • 2120129781 / SK2120129781 \n \n

\n \n

\n \n

\n

\n \n \n

Kontaktujte nás

\n pre viac informácií a poradenstvo \n

\n

  • Sídlo Levočská 862/28,
    \n 058 01 Poprad

\n \n

* Kancelária JilemnickÃ(C)ho\n 307/77  

\n 059 51 Veľká Lomnica

\n \n

  • E-mail triton (zav.)\n famme.sk \n

  • Telefóny Richard Fabo:\n +421 905 829 763
    \n Miroslav Fabo: +421 905 381 924

\n

\n \n

\n

\n \n

Design: TEMPLATED\n Images: Unsplash (CC0)\n

\n

\n

\n

Pocitadlo.sk

\n \n'

0
submitted 2 years ago* (last edited 2 years ago) by rglullis@communick.news to c/emacs@communick.news
 

cross-posted from: https://programming.dev/post/1699017

So the issue that I'm having wasn't entirely noticeable at first, so I didn't realize that I might need to revert something until I went ahead and made a lot more changes to my install. I've learned something here about the value of a GitHub repo to store my configurations.

So as of five days ago, I had a perfectly functional KDE Plasma NixOS daily driver. I recall having an issue with Discord and crackling audio that resulted me toggling some pulse audio and pipewire options to avoid a conflict. It seemed to work. Then on the next day, I did nix-channel --update and nixos-rebuild switch --upgrade just because I wanted to update since it'd been awhile.

We then had a situation where we had to adopt a dog for re-homing, so I didn't spend long with these changes. A few days later, I've finally been able to settle down and use my computer again, but I'm noticing that SO MUCH of my UI is being ridiculously slow to respond. Mostly my Application Launcher and the password prompt to login. But it's pervasive through most apps except Firefox (thankfully, so I can post this).

If I load the generation from the 8th, everything behaves just as expected. But unfortunately, I do not have the configuration.nix from that day or any day prior to now. But I have a decent recollection of what I've changed in the configuration file since. Regardless, nothing I do seems to resolve it. I'm not sure if the channel and package upgrades did something that isn't under the configuration.nix file's control.

Any help is appreciated. I will post my sanitized configuration.nix below. Any other feedback for optimizations is more than welcome. Thanks.

# Edit this configuration file to define what should be installed on
# your system.  Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘nixos-help’).

{ config, pkgs, ... }:

{
  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
    ];

  # ====================
  # User
  # ====================

  # Define a user account. Don't forget to set a password with ‘passwd’.
  users.users.userguy = {
    isNormalUser = true;
    description = "userguy";
    extraGroups = [ "networkmanager" "wheel" ];
    packages = with pkgs; [
	unzip
    	git
    	dotnet-sdk
	rustup
	go
    	brave
	vivaldi
    	librewolf
    	firefox
    	kate
    	neovim
    	vscodium
	obs-studio
    	krita
    	discord
	element-desktop
    	spotify
    	spectacle
    ];
  };

  # Enable automatic login for the user.
  services.xserver.displayManager.autoLogin.enable = true;
  services.xserver.displayManager.autoLogin.user = "userguy";

  # ====================
  # System Packages
  # ====================

  # Allow unfree packages
  nixpkgs.config.allowUnfree = true;

  # List packages installed in system profile. To search, run:
  # $ nix search wget
  environment.systemPackages = with pkgs; [
    #  vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
    wget
    ntfs3g
    exfat
    gcc
    ncurses
    gnumake
    direnv
    steam
    steam-run
    protontricks
    # support both 32- and 64-bit applications
    wineWowPackages.stable
    # support 32-bit only
    wine
    # support 64-bit only
    (wine.override { wineBuild = "wine64"; })
    # wine-staging (version with experimental features)
    wineWowPackages.staging
    # winetricks (all versions)
    winetricks
    # native wayland support (unstable)
    wineWowPackages.waylandFull
    lutris
    (lutris.override {
        extraLibraries =  pkgs: [
          # List library dependencies here
        ];
         extraPkgs = pkgs: [
           # List package dependencies here
         ];
      })
  ];

  # ====================
  # Games
  # ====================

  programs.steam = {
    enable = true;
    remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
    dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
  };

  # ====================
  # Display
  # ====================

  # Enable the X11 windowing system.
  services.xserver.enable = true;

  # Enable the KDE Plasma Desktop Environment.
  services.xserver.displayManager.sddm.enable = true;
  services.xserver.desktopManager.plasma5.enable = true;

  # Configure keymap in X11
  services.xserver = {
    layout = "us";
    xkbVariant = "";
  };

  # ====================
  # Nvidia
  # ====================

  # nvidia setup
  # Make sure opengl is enabled
  hardware.opengl = {
    enable = true;
    driSupport = true;
    driSupport32Bit = true;
  };
  # Tell Xorg to use the nvidia driver
  services.xserver.videoDrivers = ["nvidia"];
  hardware.nvidia = {
    # Modesetting is needed for most wayland compositors
    modesetting.enable = true;
    # Use the open source version of the kernel module
    # Only available on driver 515.43.04+
    open = true;
    # Enable the nvidia settings menu
    nvidiaSettings = true;
    # Optionally, you may need to select the appropriate driver version for your specific GPU.
    package = config.boot.kernelPackages.nvidiaPackages.stable;
  };

  # ====================
  # Fonts
  # ====================

  fonts.fonts = with pkgs; [
    noto-fonts
    noto-fonts-cjk
    noto-fonts-emoji
    liberation_ttf
    fira-code
    fira-code-symbols
    mplus-outline-fonts.githubRelease
    dina-font
    proggyfonts
    source-code-pro
    roboto
    roboto-mono
  ]; 

  # ====================
  # Sound
  # ====================

  # Enable sound with pipewire.
  sound.enable = true;
  hardware.pulseaudio.enable = true;
  security.rtkit.enable = true;
  services.pipewire = {
    enable = false;
    alsa.enable = true;
    alsa.support32Bit = true;
    pulse.enable = true;
    # If you want to use JACK applications, uncomment this
    #jack.enable = true;

    # use the example session manager (no others are packaged yet so this is enabled by default,
    # no need to redefine it in your config for now)
    #media-session.enable = true;
  };

  # Enable touchpad support (enabled default in most desktopManager).
  # services.xserver.libinput.enable = true;

  # ====================
  # Bootloader
  # ====================

  boot.loader.systemd-boot.enable = true;
  boot.loader.efi.canTouchEfiVariables = true;

  # ====================
  # Networking
  # ====================

  networking.hostName = "nixos"; # Define your hostname.
  # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.

  # Configure network proxy if necessary
  # networking.proxy.default = "http://user:password@proxy:port/";
  # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";

  # Enable networking
  networking.networkmanager.enable = true;
  networking.nameservers = ["94.140.14.140" "94.140.14.141"];

  # ====================
  # System
  # ====================

  # Set your time zone.
  time.timeZone = "America/Los_Angeles";

  # Use local time to keep windows and nixos in sync
  time.hardwareClockInLocalTime = true;

  # Select internationalisation properties.
  i18n.defaultLocale = "en_US.UTF-8";

  i18n.extraLocaleSettings = {
    LC_ADDRESS = "en_US.UTF-8";
    LC_IDENTIFICATION = "en_US.UTF-8";
    LC_MEASUREMENT = "en_US.UTF-8";
    LC_MONETARY = "en_US.UTF-8";
    LC_NAME = "en_US.UTF-8";
    LC_NUMERIC = "en_US.UTF-8";
    LC_PAPER = "en_US.UTF-8";
    LC_TELEPHONE = "en_US.UTF-8";
    LC_TIME = "en_US.UTF-8";
  };

  # ====================
  # Printing
  # ====================

  # Enable CUPS to print documents.
  services.printing.enable = true;

  # Some programs need SUID wrappers, can be configured further or are
  # started in user sessions.
  # programs.mtr.enable = true;
  # programs.gnupg.agent = {
  #   enable = true;
  #   enableSSHSupport = true;
  # };

  # List services that you want to enable:

  # Enable the OpenSSH daemon.
  # services.openssh.enable = true;

  # Open ports in the firewall.
  # networking.firewall.allowedTCPPorts = [ ... ];
  # networking.firewall.allowedUDPPorts = [ ... ];
  # Or disable the firewall altogether.
  # networking.firewall.enable = false;

  # This value determines the NixOS release from which the default
  # settings for stateful data, like file locations and database versions
  # on your system were taken. It‘s perfectly fine and recommended to leave
  # this value at the release version of the first install of this system.
  # Before changing this value read the documentation for this option
  # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
  system.stateVersion = "23.05"; # Did you read the comment?
}

 

I guess that my user needs to be part of some group, but I am not sure which.

view more: ‹ prev next ›