1. 21

    This is a sad day. It’s quite a shame, uMatrix is always the first addon I install. It’s 100% essential for me.

    I know it’s still usable, but now the addon is unmaintained and unsupported.

    At least I now have a reason to learn JS.

    1. 2

      uMatrix is always the first addon I install

      Same here. Actually, I just checked, and it’s the only one I have installed.

      1. 2

        I have been using uMatrix daily for a few years now. I’ll make sure to contribute to any fork that gets more attention.

      1. 7

        Lets get back to FreeBSD audio then. What FreeBSD offered? A whooping 256 OSS channels mixed live in kernel for low latency. Everything audio related just worked out of the box – and still works today.

        This is literally the exact opposite of my experience with OSS on BSD. Terrible audio quality, lagging and crackling, audio distortion. OSS was complete garbage every time I’ve tried and I could never get audio to work properly ever.

        1. 3


          which FreeBSD version and which hardware was that?


          1. 2

            I’ve tried FreeBSD 11.4, 12.1, and 13.0.

            I’ve also tried various versions of NetBSD, OpenBSD, and HardenedBSD.

            I really want to use BSD. There is so much about it that I really like about it. But as someone who listens to music almost 24/7, I just can’t do it when the audio is like this. Nothing I ever tried would fix the audio, I had literally given up after a certain point.

            And my speakers are: Logitech Z-2300 Computer Speakers

            1. 1

              I don’t think speakers have much to do with it - the OS talks to the sound card.

              As a counter example, for me, audio has worked as well under FreeBSD as it does in Linux. Which is to say, it’s not the easiest to configure, but once that’s out of the way it works fine.

              I mainly use a Roland UA-25EX external USB sound card, and sometimes also an ancient Creative SBLive! Value “CT4780” PCI card. I’m not doing anything fancy, though, they’re going into boring, $100 Bose stereo speakers.

              My only real complaint about audio on FreeBSD is poor Spotify support. The TUI isn’t that great, and spotifyd crashes a lot.

              1. 3

                I don’t think speakers have much to do with it - the OS talks to the sound card.

                If they’re USB speakers, then it does, because it has to talk to it as a USB device, ignoring the computer’s sound chip in favour of the speakers’.

                1. 2

                  I run FreeBSD as a deskop, and my solution to Spotify is to run Mopidy with the Iris frontend and the spotify plugin in a linux virtual machine with Icecast outputing a radio stream. It sounds hopelessly complicated, but in practices is not more than a few config files and setting up a VM with some flavor of modern linux on it (I use debian).

                  I can create a how to blog post if you’re interested.

                  The bonus here is anything with a web browser and a stream player can interface with this.

                  1. 1

                    Yeah, for a while I was using the Spotify app on my phone as a remote control to spotifyd running on the desktop, but spotifyd had a bug where it crashed on songs shorter than 60 seconds. So I tried building from source, thinking I’d try fixing it myself. The bug seems to be fixed in the Git repo, but I was getting so many other crashes I gave up.

                    For now I’m running the spotify app on my macbook and plugging the speakers into that. :-/

                2. 1

                  Speakers are not important here - what is your sound card/chipset?

                  1. 1

                    Oh, uh… according to lspci -v | grep -i audio I’m using:

                    00:1b.0 Audio device: Intel Corporation 7 Series/C216 Chipset Family High Definition Audio Controller (rev 04)
                            Subsystem: Dell 7 Series/C216 Chipset Family High Definition Audio Controller

                    And according to ALSA, my card is HDA-Intel - HDA Intel PCH

                    1. 1

                      I have similar/same audio chipset here:

                      # pciconf -lv | grep -A 4 hdac
                      hdac0@pci0:0:27:0:	class=0x040300 card=0x21cf17aa chip=0x1c208086 rev=0x04 hdr=0x00
                          vendor     = 'Intel Corporation'
                          device     = '6 Series/C200 Series Chipset Family High Definition Audio Controller'
                          class      = multimedia
                          subclass   = HDA

                      … and sound is nothing less then great here.

                      I do not know how else I can help you :(

            1. 1

              Learning scala and clojure, re-watching some anime, lazing about.

              1. 1

                Why both? They both seem to fill “better JVM language than Java”

                1. 1

                  Simply because I can.

                  I’ve been trying various languages because while I love Rust to death, it gets boring using the same 1 or 2 languages all the time.

                  I love Scala because of how it feels very similar, yet different, to Rust.

                  Clojure is nice because of lisp but not gonna lie it has awful error messages.

                  1. 2

                    it gets boring using the same 1 or 2 languages all the time.

                    oh, you’re one of those ;)

                    1. 1

                      I understand the sentiment but… how is this comment a good contribution?

                      It’s a shitty thing to say to a person you don’t know. Can we not do that?

              1. 8

                The biggest change is, as pointed out by Ghack’s Martin Brinkmann, the introduction of an add-ons block list. Unstable, unsavoury, and privacy-invading add-ons lodged on this Mozilla-maintained block-list will be unable to run in Firefox 80. This practice, though heavy-handed, will ensure that Firefox runs as well as it can for all users, whilst protecting them too.

                I really don’t like the sound of this, it has a very high potential to be abused.

                Is it possible to disable this “add-ons block list”?

                1. 20

                  Yes. As a savvy developer you’re probably not going to run into the credential-stealing ad-injecting extensions that consumer desktop software often tries to sideload unless one of your extensions changes maintainers, and then it’s an enormous disaster.

                  1. 5

                    “Unsavory” addons could very easily mean addons that the bulk of the developers at Mozilla find politically unacceptable. Or that a group of motivated activists finds politically unacceptable, given that one of the ways an extension can make it onto the block list is via user reporting.

                    1. 27

                      I think rather than meaning a conspiratorial possibility with no evidence of ever occurring, it’s more likely it means the problem of malicious addons that has publicly occurred thousands of times and affected millions of users.

                    2. 4

                      I mean, you can always patch it out at least. If they abuse it I assume distros will patch out.

                      1. 2

                        You’ll also always be able to run unsigned add-ons. If there’s a legit add-on you wanna run which Mozilla blocks, you will always be able to get Firefox Developer Edition and load the add-on from source.

                        1. 4

                          Yes, but the point is that mozilla’s giving themselves this capability represents their trusting themselves to restrict the sort of content that will be consumed by most of their users. Is it mostly harmless, and likely to work as implemented? Yes, probably, but it’s still worrying. I have similar concerns about these settings, which are turned on by default

                          Block dangerous and deceptive content

                          Block dangerous downloads

                          Warn you about unwanted and uncommon software

                          (I can’t recall if the last two are on by default, but the first definitely is.)

                          Chrome does this too FWIW, and they both use the same blocklists.

                    1. 8

                      I’m surprised bitmap fonts survived for so long. They should have been removed from everything ages ago! The presence of this ancient technology is still causing unpleasant surprises sometimes.

                      1. 11

                        As somebody who exclusively uses bitmap fonts (Misc Fixed in particular is my absolute favorite), this comment pains me.

                        1. 3

                          Can you describe the OS, desktop environment, browser, text editor, IDE, etc. you’re using? I love bitmap fonts because of their enhanced clarity and design, but most software is unable to handle them properly. I have yet to find a setup that lets me use bitmap fonts across the board, from desktop environment all the way to the applications. SerenityOS seems to do really well on this front.

                          1. 5
                            • Distro: Gentoo
                            • Environment: no DE (I use bspwm or openbox as my WM)
                            • Browser: Pale Moon
                            • Editor: Emacs
                            • Graphical Toolkits: Athena (Emacs), Gtk (everything else)

                            I’ve gotten almost everything to work with Misc Fixed, with the exception of Discord.

                            Even with BBD (Bandaged Better Discord) I still can’t get it to use the Misc Fixed font. -_-

                            1. 1

                              Try using Ripcord https://cancel.fm/ripcord/ for Discord. It supports any font you like, and additionaly it’s a fully native Qt application, not an Electron crap.

                        2. 4

                          Fonts more than many other things in normal graphics depends on the ‘context of use’ and what price you must pay versus the price you can tolerate paying. It’s your cycles and all that but the vector step is a big and pricey complexity leap – rough incremental cost (anything non-printer):

                          • bitmap ascii-set? font in cache and straight masked bitblt (< 100loc range)
                          • bitmap hdpi / color? multiple caches, fetch/add per pixel (< 500loc range)

                          (arguably hershey vector font set kind of things fit in here somewhere, but mainly embedded use?)

                          • bitmap to intermediate-vector->bitmap? fetch+mul per pixel, heavy format parsing+intermediate buffer+glyph cache+device dependent shaping+raster cache and complex data formats (multiple support libs and years of work)
                          • cursive/kerned? picking / selection operations require LTR/RTL sweep (mouse motion gets pricey)
                          • shaped/substitutions/ligatures? all string and layouting operations more complex, table preprocessor/lut
                          • gpu drawing context? atlas packing cache management, reduced feasible set of active use glyphs
                          • ZUI? mipmap levels and filtering..
                          • 3D/VR? offline (m)SDF gen, manual fixups for troublesome glyphs..

                          I use most of that range daily, whenever possible though, bitmap for the win (and cycles).

                          The thing with that discussion though is like, while bitmap fonts may have some space optimization weirdness that makes parsing a little bit of work, for what they are, it doesn’t register on the complexity scale. Heck, those fun emojis are embedded PNGs forcing both bitmap management and pixel-scaling to be there anyhow..

                          Given two particular names in that thread, I’d go with ‘obstinate’..

                        1. 1

                          Nice! I’ve had to write a lot of these functions for a project I’m working on so it’ll be convenient to use this in the future.

                          Just a note: I got a panic when I tried to get the window manager (I use sway on NixOS). Returning an io::Result for nixinfo::environment() and an Option for nixinfo::env() could work a lot better, especially for headless or strange systems.

                          1. 2


                            Returning a Result<String> was actually the next thing I had listed for nixinfo. :)

                            And I’ll look into Option. I’ve never worked with Options before and this crate was the first time I really started working with Result.

                            Thanks for the note.

                            Edit: Result<String> and Option<String> have been implemented for environment() and env() respectively.

                          1. 8

                            I was a little sad that this had nothing to do with nix the distribution/package manager/language. :)

                            1. 5

                              same here… It is probably good warning the author that choosing a name starting with nix, while there is a NixOs distribution, and a Nix language, with tools like nix repl, nix-build, nix-shell, nix-store, nix-env, nix-doc… that such a name may create confusion.

                              Just my two cents.

                              On the other side, while the *nix acronym was already used in the 2000s, instead of Nix/NixOs, they could have chosen Nyx (the goddess of the Night).

                              That makes three cents.

                              1. 4

                                Better yet, there literally is a nix-info command, generally used for people to include information alongside issue reports.

                                $ nix-info -m
                                 - system: `"x86_64-darwin"`
                                 - host os: `Darwin 19.5.0, macOS 10.15.5`
                                 - multi-user?: `no`
                                 - sandbox: `yes`
                                 - version: `nix-env (Nix) 2.3.4`
                                 - channels(abathur): `"darwin, nixpkgs-20.09pre237891.f9eba87bf03"`
                                 - nixpkgs: `/Users/abathur/.nix-defexpr/channels/nixpkgs`
                              2. 2

                                Exactly! I came across this crate when I was looking for Nix store support functions, and sadly it was not it. Also, it didn’t support FreeBSD, if I recall correctly, so the crate might be misnamed.

                                1. 1

                                  Not misnamed, just not implemented yet. I feel like for the most part I have the Linux side covered, I still need to implement the BSD side of things.

                                  I’ve been very busy lately juggling around multiple projects and in real life things, I just haven’t found the time to implement it yet.

                              1. 2

                                Very cool!

                                Might be worth noting that this won’t work at all on any non-Linux systems though (many don’t have /proc, and on some UNIX systems, files in /proc are not plaintext, many don’t have /sys). Would you be interested in advice on how to structure it to be more multi-platform friendly? Or do you want to keep it Linux-specific?

                                1. 1

                                  Thank you.

                                  I plan on supporting BSDs as well for sure! Otherwise nix (as in *nix) would be a misleading title. I know mostly what I need to do to get them supported, I just haven’t gotten around to implementing it yet. I’m juggling around multiple projects right now, along with various in real life things.

                                  If there are any other *nix operating systems that people use and would like support for, I’d be more than happy to add it.

                                  And yeah, advice would be great! :)

                                1. 3

                                  This is my first lib crate in Rust. I feel like enough work has been put into it to warrant it’s own post. Please let me know what you all think, I would really love to make this better!

                                  It’s a crate which provides functions that output various system info in *nix such as cpu, distro, environment (de/wm), package counts, etc.

                                  It was initially a part of my rsfetch (neofetch alternative in Rust) rewrite, but I felt like the info gathering functions would go great in a lib crate. And I’m quite happy with the results so far. I feel like this is going quite well for my first lib crate.

                                  1. 2
                                    • Learning Scala, because it someone recommended it and it seemed really interesting. From my little usage of it so far, it feels like Java meets Rust.
                                    • Sleep. A lot. I am running purely on caffeine right now.
                                    • Probably play some more Skyrim and Diablo III.
                                    • Work more on my nixinfo crate, I managed to get quite a bit of work done on it. Now most functions will output to a Result<String> instead of a String, and I managed to slim it down some.
                                    • Probably test out a bunch of more programming languages. I love Rust and all, but using the one same language all the time can get… ugh. Too bad it’s hard to find languages I haven’t already tried:
                                      • I don’t like C, C++, Dart, Go, JS, Python, Ruby, nor Swift.
                                      • Fortran, OCaml, Lisp, Nim, Pascal, and Perl are ok, but not something I’d prefer.
                                      • Zig is interesting but confusing.
                                      • I like PHP, but I have no use case for it.
                                    1. 2

                                      I find your list of programming languages very interesting! How much Scheme have you tried? If you’ve only tried Common Lisp, I’d give Scheme a chance on its own. They’re philosophically quite different.

                                      Also, what about PHP is up your alley? Most of your other language preferences make sense to me in context, but PHP is confusing to me, especially given that you like Rust. I feel like PHP and Rust are philosophical opposites of one another in nearly every way, but I might be missing some aspect that’s important to you.

                                      I love how programming languages are just as much tools for the mind as they are tools for the computer, so two different people might have radically different preferences.

                                      1. 2

                                        How much Scheme have you tried?

                                        Not very much. Though I do know of it. I’ll have to look into it.

                                        Other lisp I’ve used are indeed Common Lisp and Emacs Lisp.

                                        I was going to try Clojure as well, but at the time the Java requirement was throwing me off (I’m a little picky about what gets put on my system). That’s not quite an issue right now, obviously, since I’m using Scala. But at the time it was enough for me to avoid it.

                                        Also, what PHP is up your alley?

                                        Ok, this might sound a little weird, but hear me out. I really like shell scripting, like a lot. I’m always creating shell scripts all the time. PHP, to me, feels like the shell scripting of the web. There’s something about PHP that came just as naturally to me as bash scripting.

                                        I love how programming languages are just as much tools for the mind as they are tools for the computer, so two different people might have radically different preferences.

                                        Oh 100% I agree. I have one friend who swears left and right Python is the way the way to go, they can implement like anything in it. But at the same time I have another friend who hates Python with a passion and wouldn’t touch it with a 10 foot pole unless he was being threatened under death or something.

                                        I am really sorry about the late response by the way. Like an hour or so after posting my reply, I crashed right at my desk and I just woke up a few minutes ago.

                                      2. 1

                                        Get into Haskell! It’s very rewarding. Rust and Haskell are good friends.

                                        1. 2

                                          I really should. I used Haskell for a time when I was on XMonad a long time ago, but when I left it I also left Haskell.

                                          I like Haskell, though I do remember it having a bit of steeper learning curve when I tried it.

                                          Though I do think there was something about Haskell that really threw me off. Just not sure what it was because it was so long ago.

                                          Anyways yeah, I’ll have to get back into Haskell at some point.

                                      1. 2

                                        Playing lots of Diablo III and Skyrim, working on my nixinfo crate (used for getting system info on *nix such as distro, kernel, cpu, environment, etc) and rsfetch (neofetch alternative in Rust) rewrite, and doing some cleaning up / refactoring of my dotfiles. Just finished cleaning up my Emacs init (it was a complete mess), planning on moving to my bashrc next.

                                        1. 1

                                          Replaying Skyrim for a while, working on my nixinfo crate, and working on the undeprecated overlay for Gentoo which fixes some of the mistakes that Gentoo has been committing such as forcing libglvnd and removing consolekit and any way to keep it without following the standard procedure of deprecating (but still allowing the usage of) the package.

                                          1. 3

                                            Working on rewriting rsfetch (an information displaying utility – think neofetch, but in Rust) from scratch. The previous codebase just wasn’t fun to work with anymore, and there was a lot of stuff that I wanted to do, but couldn’t, because of how confusing the code was. Everything was implemented in a way which made it quite difficult to expand upon without spending hours figuring out what is safe to add in or move around.

                                            I’m almost 100 commits in now, I’ve been on a roll lately. I don’t really have much left to do with it, besides exapanding on the current features and testing in different enviornments. I wish I could figure out how async worked though, I could not implement that properly for the life of me. And the way I had it implemented previously was really only doing more harm than good.

                                            Besides that, I’ve been gaming a bit more. Lots of Diablo III, DBZ Budokai 3, Oblivion, and Skyrim. I haven’t been able to play my Xbox 360 in a long time due to lack of an HDMI display. Imagine how much of an idiot I felt, when I’ve found that I had an HDMI->VGA cable sitting next to me this whole time on my desk.

                                            1. 6

                                              Note: This and this are important to see.

                                              1. 2

                                                Specifically this is a note about the original author of Invidious deciding he wants to step away from the project, and a github issue about what the future of Invidious will be. Thanks for linking this in this thread.

                                                I’m currently a user of Invidious, and I’ve been running an instance on my personal infrastructure for a couple of months for my own use. I’ve noticed that the Invidious process tends to get into a state where it stops responding to requests and needs a restart, and also sometimes stops updating YouTube channels I’m following. I haven’t spent much time yet investigating exactly why this happens, and it might well be due to configuration errors on my infrastructure. Hopefully development on it will continue in some form, since other than these issues I’m generally pretty happy with the software.

                                              1. 2

                                                Looks interesting! I’m curious to try it out, though I’m wondering something.

                                                I assume “*” denotes required for signing up right? I can understand requiring an email, but why is a first name required? (Provided that my assumption is correct, of course.)

                                                I mean sure, I could just use a fake name. But I’m genuinely curious of why it’s required, and not optional.

                                                Because giving a name should be optional in my opinion.

                                                On an unrelated note, I love the terms section in the about page. Really had a laugh when I saw it.

                                                1. 6

                                                  Ever since I’ve gotten the Windows PC + GPU along with the KVM switch set up, I’ve been playing more games.

                                                  Portal, Portal 2 with a friend, Arena, Oblivion, Diablo II, Age of Empires II.

                                                  I’ve also decided to replay DOOM 3 for the first time in years. I feel like that game is so underrated, almost criminally so. Personally, I think it’s a much better game than the 2016 remake of DOOM or DOOM Eternal could ever be.

                                                  I’ve almost done re-re-re-watching Dexter, it’s one of my favorite live action TV shows.

                                                  I’m also working on fixing up my setup right now. Well not fixing, but making it better. The only ethernet cord I could find for the 2nd PC is extremely long so it’s just sitting all bundled up on my desk since my router is right on the desk as well. I’m glad I managed to get ethernet set up for both PCs though. Now instead of one getting ~200 mbps and one getting ~10 mpbs, they get around ~90 mpbs each. And that’s with a VPN and decentralized+encrypted DNS.

                                                  1. 6

                                                    Counter-proposal: Please allow us to link to an external image or something. I don’t want to have to sign up for an external service (Gravatar) just to have a profile picture on a different site. I still can’t even figure out how the hell to use Gravatar in the first place, their website is so counter-intuitive.

                                                    1. 1

                                                      Issue 547 explains why we don’t allow links (privacy) and why we use an external service (security).

                                                      1. 1

                                                        As much as it bothers me, it makes sense and I understand why you guys chose your method of handling avatars.

                                                        Personally though, it’s just not for me. I hope someday you guys change it, at least so that an external account isn’t needed.

                                                        Because I still can’t figure out how to make a Gravatar account in the first place, much less actually use it. Something about making a WordPress account and connecting that to Gravatar, but then the only options I had for making a WordPress account was through Apple or Google but that doesn’t make any sense.

                                                        1. 1

                                                          Their site has gotten significantly more complicated since we integrated them and they realized that Gravatar might drive signups to their commercial products. And to reiterate the issue: totally open to not using them at all, it’s a matter of when someone puts in the work to replace them.

                                                    1. 3

                                                      Still working on gzdoom-discordrpc.

                                                      I’ve restructured it, added support for LZDoom, and changed around quite a bit of code.

                                                      Once I figure out how the heck regex works, I could eliminate a significant amount of the codebase, as well as all positional args. Because I currently search for specific strings based on the positional args given to the program (e.g. engine and game).

                                                      I also need to get around to renaming it to zdoom-discordrpc that way it actually makes sense since it supports more than just GZDoom now.

                                                      Besides that, I’m trying to figure out what cord I actually need for an old GPU. I just got a new Windows PC along with a KVM switch, however I found out the Windows PC has no GPU in it. I have an old 512MB AMD one from around a decade ago, but the port it uses is really weird and I can’t find any info on it. Still, any GPU is better than no GPU. So once I figure it out I’ll buy whatever cords I need. I’m really loving this setup though. I feel like a hacker from television or movies that have those awesome setups where they can click a button and switch between stuff. I may or may not have pressed the button like 300 times by now.

                                                      Update: I have found the cord needed sitting on a shelf next to me. Sometimes I feel like I’m blind, specifically to what I’m looking for at the time. Still have no idea what type of port it uses though. It’s like some type of weird DVI.

                                                      Update 2: Turns out the port is called DMS-59. It’s like some sort of weird proprietary DVI I think.

                                                      1. 5

                                                        I plan to continue working on gzdoom-discordrpc.

                                                        I’m really excited with the progress I made. I managed to make it cross-platform (before it was using wmctrl so it was specific to X on Linux), and it shouldn’t have any external dependencies.

                                                        A quick synopsis of what it is for those that don’t want to click the link: It’s a Discord Rich Presence for GZDoom that’ll display the game, level, and icon. And it’s written in my favorite language, Rust!

                                                        Besides that, I’m working on purging accounts. I’ve gotten sick and tired of Reddit and quite a few other sites. I don’t even know why I’ve stayed on them for as long as I have.

                                                        1. 2

                                                          I unfortunately have had to use Discord for messaging my (nontechnical, so no IRC etc) friends during the quarantine, but I have been able to use elcord to show off emacs to them. I really enjoy Doom (through GZDoom + project brutality/brutaldoom), so I might go ahead and try your project out. It looks cool so far, keep it up!

                                                          Also with purging accounts, I just so happened to delete my Reddit account a week ago. I don’t regret it, but know I spend more time staring at the frontpage of Lobsters and the orange site, wasting even more time reading articles that are really interesting, but they aren’t actually relevant/useful to me. I am quite susceptible to nerd-sniping I guess.

                                                          Edit: Markdown is hard

                                                          1. 2


                                                            I really need to try that out sometime. I’m currently using a different Discord rich presence for Emacs and it’s quite limited. You can’t even turn it off, which is not good when you’re trying to actively develop a Discord rich presence application.

                                                            GZDoom + project brutality

                                                            Same! I love Project Brutality, it’s probably my favorite mod of all time.

                                                            Did you know that there’s a 3.0 actively being developed on Github with a bunch of new stuff?

                                                            It looks cool so far, keep it up!

                                                            Thank you! It really means a lot to see people say that. Because when you code for yourself most of the time, it’s really easy to fall into a pit of boredom and just not feel like programming. Even if it’s something simple or quick to implement.

                                                            1. 2

                                                              The great thing about elcord is that it is just an M-x elcord-mode to toggle it on and off.

                                                        1. 3

                                                          Creating a DiscordRPC client for GZDoom.

                                                          Currently, it displays the game and level and has icons for DOOM, DOOM II, GZDoom, and Project Brutality (a modification/overhaul).

                                                          It should support any DOOM version as well as Project Brutality, though I’ve only tested on DOOM and DOOM II.

                                                          It updates information every 15 seconds.

                                                          I’m making this for a few reasons:

                                                          • I could not find any pre-existing DiscordRPC client for GZDoom
                                                          • It’s something I would actively use, making development that much more enjoyable
                                                          • I could actually visualize how I would go about it, instead of feeling as blind as a bat like I do in most projects

                                                          Links: github, codeberg, sourcehut

                                                          1. 2

                                                            Love this! So cool to see this old game continue to get more and more love over time :)

                                                            1. 2

                                                              Thanks! Nice to know somebody else likes it. :)