1. 2

    I would suggest adding Javascript support. Lots of people in web dev would love such a tool.

    1. 1

      It’s supported by TreeSitter, so I’m guessing the exclusion is explicit.

      1. 2

        You would need to grab the JavaScript grammar for tree-sitter and declare it in build.rs, but then it should just work.

    1. 3

      I have always thought “I should get into NixOS”, but people seem to have gripes with the Nix configuration language and I am really comfortable running Alpine on the small boxes I have.

      Do you think the tools that are made available are worth the learning curve? ilo Alpine li pona

      1. 20

        I used NixOS for a while on my laptop. It’s certainly worth trying, and not very difficult to install.

        Setting up services, tinkering with the main config, is easy enough.

        But if you want to go deeper than that, you’ll spend hours searching other people’s configuration because the documentation is poor.

        1. 4

          Ugh, yes, this is my single #1 complaint with the infrastructure by far. The poor documentation. I need to start taking notes and contributing back to the wiki.

          1. 2

            Seems like Guix might be an option. At least they didn’t create a brand new configuration language..

            1. 15

              At least they didn’t create a brand new configuration language..

              Note that although Guix didn’t create new syntax (they use lisp), you’d still need to learn the “language” defined by the Guix libraries. In the end, most of your time is spent figuring out Nix/Guix libraries, and very little time is spent on programming-language things like branching and arithmetic

              1. 5

                The biggest annoyances I’ve run into with Nix-as-a-language are the lack of static types and the fact that it doesn’t really have good support for managing state. The latter doesn’t usually present a problem, but occasionally if you want to generate a config file in a certain way it can be annoying.

                But I think it helps that I already knew Haskell, so all the stuff like laziness and the syntax are super familiar.

                1. 1

                  There really isn’t much of a “language” to learn. Guix configurations use scheme records for about 90 of any configuration a user will do and the rest is in g-expressions which is something like a new syntax that takes the place of embedded shell scripts in nix.

            2. 8

              On one hand, Nix is terrible. On the other hand, isn’t everything else worse? Guix is the only decent comparison, and personally I think Nix’s technical decisions are better. (So do they, given that they borrow the Nix store’s design wholesale!)

              1. 2

                How can they be better, if they are the same?

              2. 6

                NixOS is amazingly good for writing appliances. It also can be made to barf out docker images, which is nice.

                1. 6

                  Coming from Void Linux, NixOS on a desktop machine… ilo NixOS li pona ala, la pali mute. It’s a lot of work for a functioning desktop, I think. But on the server NixOS is killer and fun, and makes configuration suuuuper simple. I only need my /etc/nixos and /src folders to migrate my server anywhere (though I’d have to bring along /data to keep my state).

                  1. 1

                    This is basically what I do. When I got my new laptop I considered Nix, but decided to stick with Arch because it was easier. I use NixOS for my Digitalocean nodes and am very glad I did.

                  2. 1

                    tl;dr: No, I went back to Void on the desktop and Alpine/Ubuntu on servers in almost all contexts

                    Purely anecdotal: I was all-in on Nix, both at home and at work, and drank copious amounts of the kool-aid.

                    As of today, it still runs on a few machines I’m too lazy to reformat, but it’s gone from all my interactive machines, and from all functions (be it NixOS on EC2, or Nix shells for developer workstations) at work.

                    My takeaway was basically: Nix(OS) makes 90% of things absolutely trivial, the next 8% significantly more difficult, and the remaining 2% anywhere from nightmarish to downright impossible. That latter 10% made it “cost” significantly more than, say, investing in other version locking tooling for developer workstations at work. At home, that remaining 10% just meant that I didn’t do some things (like play many Steam games) that I would otherwise have enjoyed doing, because I didn’t have the energy to dive in.

                  1. 4
                    $ touch '--no-preserve-root / foo' 'foo'
                    $ rm $(ls | grep foo)
                    
                    1. 3

                      This thread is making me feel very young - I was born in 2000, so I think the earliest presence I have on the web are some bamzooki [niche UK children’s tech … thing?] forum postings that I made when I was about 7, or early Roblox games that I made when I was 8. I don’t really want to see that stuff again.

                      It’d be between ’06 and ’09, which is, like, recent.

                      1. 5

                        I daily-carry both an iPhone 12 mini and a OnePlus 8 Pro.

                        The iPhone:

                        • fits in my (tiny) womens’ clothes pockets, whereas the big Pro Android phone goes in a bag,
                        • works fantastically with my AirPods,
                        • could support an Apple Watch if I decide to buy one - It seems like a major convenience boost!
                        • lets me use iMessage (although, living in Europe, I haven’t, yet.),
                        • can run GarageBand for noting down rough-and-fleeting musical inspiration

                        The Android phone:

                        • has important things on it that I need to access when I’m out-and-about (2FA codes, mostly)
                        • takes nice photos from the selfie camera,
                        • can run Syncthing, and has a real filesystem.
                        • can run Conversations, but iOS doesn’t have any XMPP client that comes close,
                        • has actual web browser choice: Firefox is actually Firefox, and I can block ads.
                        • lets me develop custom software to automate daily stuff, really easily.

                        I wouldn’t say two phones provides two times the utility, but it really comes in handy to get around the tradeoffs & exclusivity sometimes.

                        1. 4

                          I’m gonna be playing with Android development. Gonna experiment with making an Android app for a self-made service that I use every day.

                          1. 5

                            Have fun and welcome to the hell of Android development :).

                            Some pro tips:

                            • You’re better off reading the latest docs from Google, not some outdated tutorial that absolutely will break under the latest SDK (it happens way too often)
                            • Get familiar with the Gradle build system
                            • Look into https://developer.android.com/jetpack once you get familiar with the SDK. It simplifies a lot of things.
                            • Use Kotlin instead of Java, the overhead is minimal (Kotlin runtime adds ~1MB to the apk size)
                            • If you want to look something up, do it on Github instead of Google, you’ll get much higher quality results
                            1. 3

                              I’ve been looking into using Flutter because I don’t have to piss around with XML to make UIs that way.

                                1. 1

                                  Good choice! I haven’t done much Flutter development (not very keen on Dart), but last time I tried it, it was very easy to set up and use.

                                  1. 1

                                    There is also Jetpack Compose if you want something native-to-Android but it’s… kinda finicky.

                              1. 7

                                Discord basically already serves this function with how easy it is to spin up and invite people to servers. Spawning channels within the server to focus on specific topics keeps the conversation focused. Sure, people frequently get invited to or join servers that are just too noisy to function, and they invariably get all traffic muted (and therefore fall into disuse) but I’m on a handful of servers that are just friends and they manage to keep my attention.

                                There’s stuff in this post that just doesn’t matter to people.

                                Per the post:

                                you control the computer that runs the site

                                you can modify the software that powers the site

                                you get to make the rules and policies

                                Nobody (at large) gives a shit about those first two things. Some of my friends might be convinced to get on some of the self-hosted social media options, but only because I bully them into it, not because they care that I would be the one administrating it. People really only need the third point, and discord already provides that agency. Any platform that lets you self-congregate does.

                                The main reason to run a small social network site is that you can create an online environment tailored to the needs of your community in a way that a big corporation like Facebook or Twitter never could.

                                You know what the needs of my community are? Posting text, links, and images. End of list. I’m sure there’s some communities out there with specialized needs, but I’d be interested to hear why existing solutions don’t meet them.

                                Your small social network site can have its own rules about, for example:

                                what speech is acceptable

                                what actions are considered violence

                                what actions are considered protected speech or expression

                                Ah. I see where this is going.

                                1. 6

                                  Discord basically already serves this function with how easy it is to spin up and invite people to servers.

                                  I read the Discord privacy policy when LLVM started talking about it and there’s absolutely no way that I’d agree to it. Discourse is a lot better in this regard: the privacy policy for hosted instances is pretty reasonable and the system is open source so you can run your own if you disagree with it.

                                  1. 9

                                    Ah. I see where this is going.

                                    And where’s that? I think that’s the best part about running your own social network. Discord on the other hand, is known to censor — both users, and entire communities that they deem as “bad”. They can literally nuke your “server” (that word still gets me) off the site without reason.

                                    1. 4

                                      I’m going to go out on a limb and guess the communities they deem “bad” aren’t “bad” in scare quotes, but actually bad and harmful communities.

                                      Like, say, this kind.

                                      1. 8

                                        If you want an example of the company’s moral code getting in the way of non-hateful communication, I have been personally affected by Discord’s ban on game hacking discussion & promotion.

                                        I would hardly call distributing trainer programs harmful.

                                        Ultimately, it’s their platform. I still use Discord regularly, and it’s easy to convince an already-technical group to switch to Matrix, which works just fine.

                                        1. 3

                                          Would you say most NSFW communities are bad and harmful? Because Discord censors them on iOS. (Telegram doesn’t, there is a switch on Telegram Web to enable this kind of content on iOS.)

                                    1. 5

                                      I remember a few domains with A records at the top level; I think dk had one at some point

                                      1. 3

                                        Correct. You used to be able to type “dk.” in a browser and you would then be redirected to the website of DK Hostmaster who manages the .dk TLD.

                                        I found it to be quite useful as a quick way to get to their site.

                                      1. 2

                                        Thanks for this, Raph. GPGPU, to me, has seemed fairly difficult to get into (especially with the fragmentation).

                                        I’ve been interested in the work done under the linebender umbrella for a while now, too. It’s nice to see some good lessons come out of some already-good development work.

                                        1. 11

                                          I am going to be doing a talk about systemd at AlpineConf. Tune in at noon EDT to rustle all the jimmies into orbit!

                                          1. 4

                                            Ooh, the lion’s den. Wear asbestos undergarments.

                                            1. 1

                                              I’m just sad I forgot to order popcorn from the grocery store.

                                            2. 1

                                              Do you know if there will be recordings of the talks? I’d love to check this out

                                              1. 2

                                                I know that my talk at least is already recorded and I’m going to push the slides and notes live as soon as the talk starts. I think the other talks are prerecorded as well. I’d suggest asking in #alpine-conf on Freenode for exact details though.

                                              2. 1

                                                Interesting. The majority of use cases of alpine I have seen was as a base for docker containers due to its size. Since you can’t run systemd inside a container, this does not matter much for that crowd. Do you see many people running alpine as the main OS on their servers?

                                                I ran an alpine/arm tor node for a while, but that was not the most stable machin I ever had. I may have been the hardware though.

                                                1. 2

                                                  I run Alpine as the main OS for my servers – The package management is blazing-fast, the init system is out of my way (I stick to the happy path, but I’m sure it’s flexible.), and I keep the system minimal.

                                                  When I need to run something that requires a heavier environment, I can stick it in a Docker container, and give it an image that’s based on another distro.

                                                  1. 2

                                                    I used to run Alpine as the main OS on my servers for many years. I even did a few production deployments with it. Docker certainly made Alpine a lot more popular overnight for bandwidth reasons though!

                                                1. 3

                                                  I love 7-zip for Windows, currently on Mac I use Keka and on Linux there was no nice alternative for 7z files. This is great news for the community!

                                                  1. 4

                                                    On Linux I have been getting by really nicely with file-roller (and its p7zip backend) – Is it inadequate for you in any way?

                                                    1. 2

                                                      It is worth noting that a first-party official GUI front-end for the CLI version isn’t available yet.

                                                      I find that a) p7zip works just fine for working with *.7z archives b) GUI frontends for multiple independent backends work well and suit the Linux philosophy much better than GUI monoliths bundled with archive format support libs.

                                                      Having the same GUI app for working with archived on Linux arguably could help more people migrate to Linux, but I find it hard to come up with a reason to care about an official tool for an open format when there are other tools already that work just fine.

                                                      Don’t get me wrong, I’m by no means against original 7zip authors porting their code to Linux, but as a user and a packager, I see no reason to install or package it.

                                                      1. 1

                                                        never tried it, I will download imediately! Thanks for the hint.

                                                        1. 1

                                                          and its p7zip backend

                                                          You don’t even need p7zip, the libarchive backend supports 7z just fine.

                                                      1. 10

                                                        I have had a nice experience with swaywm + Wayland. The only reason I’m using bspwm on X11 right now is because I chose to get an RTX 3090.

                                                        The points in the article don’t really affect me:

                                                        • OBS works fine with the wlrobs plugin for wlroots capture
                                                        • Screen sharing with multiple monitors on X11 is almost broken anyway, so I use a v4l2loopback virtual camera to share my screen instead.
                                                        • On Linux, I can do most of my automation through the shell, instead of by programatically clicking on GUI.
                                                        • I don’t use GNOME, KDE, or XFCE.
                                                        • gammastep is flag-compatible with redshift.
                                                        • Most programs run just fine under Xwayland.

                                                        And, using Wayland, you get to have:

                                                        • Almost zero screen-tearing (whereas in my experience X11 desktops have poor screen tearing even with a vsync-ed picom configuration)
                                                        • Multi-seat desktops (this is really gimmicky, but I find it quite fun)
                                                        • Headless displays (meaning you can turn a multi-device setup into a psuedo multi-screen setup with a VNC client)
                                                        • Proper HiDPI with per-monitor fractional scaling.
                                                        • The Wayland-native software I have found is really nice: I much prefer greetd with greetd-gtk-greeter running under cage to any Display Manager, wdisplays works much nicer than lxrandr or arandr, mako is a great replacement for dunst, et cetera.

                                                        As for support for nvidia GPUs, hopefully we see some progress that can branch out of wlroots’ Vulkan allocator efforts (I’m pretty sure there will still be a need for some driver-specific allocation code for the proprietary drivers, though.)

                                                        1. 2

                                                          Coming back after a day of thinking about this, and I’m reminded of a post at https://dustycloud.org/blog/identity-is-a-katamari/ .

                                                          The [Katamari Damacy no] ball at the center is much like an identifier. But over time that identifier becomes obscured, it picks up things [… which] metaphorically map to “associations”

                                                          I like this idea for thinking about Google’s circles (or, ‘identity facets’, as it’s put in the main article).

                                                          Our identity-katamari changes over time. It grows and picks up associations. Sometimes you forget something you’ve picked up that’s in there, it’s buried deep (but it’s wiggling around in there still and you find out about it during some conversation with your therapist). Over time the katamari picks up enough things that it is obscured. Sometimes there are collisions, you smash it into something and some pieces fly out. Oh well, don’t worry about it. They probably weren’t meant to be.

                                                          1. 12

                                                            Fantastic post. Programmers assume falsehoods all the time (I, myself, am still often bitten by required binary gender-selection boxes), and I don’t think any developer can be an exception to this.

                                                            Separating facets of one’s identity seems really cool to me, and I know that I’m going to be thinking about it in all of the systems I build from now on.

                                                            1. 1

                                                              Just the other week I had found myself looking for a digital alarm clock that would automatically re-arm itself on weekdays, and found myself beyond disappointed with the options on the market. I’d been considering making my own, and seeing how simple it was to put this solution together, this might be the push I need to get started.

                                                              1. 2
                                                                1. 1

                                                                  Are the files for the, like, circuit diagram and 3D printed box available? I don’t see them in the repo :)

                                                                  1. 1

                                                                    The circuit diagram isn’t there because it’s pretty trivial, you just connect the screen to I2C. I can send you the OnShape link for the box, if you like! (Or include it in the repo).

                                                              1. 8

                                                                The contents of the served X-About header (as of 2020-01-19 08:01 GMT), in case anyone’s on mobile and doesn’t have access to a curl or browser devtools:

                                                                This site provides a query interface over the public IP address range manifests published by a number of the large cloud providers and CDNs. The /search path provides a simple boolean lookup (with region if possible) to determine if the passed IP (or the IPs a domain name resolves to) is present in a given provider’s ranges, across all manifests. All other paths return the most specific logical blocks of the given provider’s manifest that contain the IPs passed or resolved. It is run by github.com/sampointer [and an email address, which I’ve omitted because scrapers]

                                                                1. 7

                                                                  Great job! Some feedback from me:

                                                                  • The “Get Started” button gets a bit lost in the gray. I tried changing the button’s background to black, and it stood out much better.

                                                                  • Also, I personally think the font size is a bit on the large side, especially the monospace font, but that’s a personal preference.

                                                                  1. 1

                                                                    The “Get Started” button gets a bit lost in the gray. I tried changing the button’s background to black, and it stood out much better.

                                                                    I also think it looks nice with the Zig Orange®™ colour that’s used elsewhere on the page

                                                                  1. 2

                                                                    h

                                                                    1. 11

                                                                      The ‘no third party / modified clients’ rule really makes me dislike Discord. It’s entirely possible that you could get banned for trying to fix an accessibility issue. :/

                                                                      1. 5

                                                                        Not sure why this is on the gov.uk website, but sharing it because it’s not something I’ve ever considered before (someone spoofing emails from a domain I don’t use for mails).

                                                                        1. 14

                                                                          This is probably something that Government Digital Services use as internal documentation, but GDS actually have a really good transparency policy (and open source!).

                                                                          GDS help a bunch of branches of government run their own *.service.gov.uk sites.