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

          and its p7zip backend

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

          1. 1

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

        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. 7

                  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.

                          1. 15

                            This is (related to) one of the most frustrating parts of working with Kotlin for me: no package visibility.

                            Kotlin chose to abandon Java’s package visibility modifiers, arguing that it didn’t really “protect” your code because anybody else could trivially write code under the same package name and then see all of your package-private code.

                            But that’s missing the point. We don’t usually write “private” because we’re afraid of people seeing or using the code. We write it so that they don’t have to see the code. Having an interface that is as small as possible reduces the cognitive load of someone consuming your library/package/class.

                            I feel like the cognitive load aspect is something not discussed as much.

                            Aside: In Kotlin, the suggestion is to just use “modules” instead of packages if you want that kind of protection, since it offers “true” protection from consumers accessing the private parts of your sub-code. I hate that because it’s more effort to move pieces around between modules, to change the public/private interface of a module, etc.

                            1. 4

                              Historically, languages have been poor at dealing with levels of abstraction above the class. When they do deal with them, they often aren’t first class constructs. It’s a shame. One could argue that micro-services (and many other things like OSGi) came from the absence of these abstractions in languages. My sense is that language designers don’t want to commit to a deployment model. Sadly, protection loses too.

                              1. 3

                                Yes. It is a shame. I feel like Rust modules are pretty nice, but then, I also don’t mind Java’s packages at all, either.

                                What I find uncomfortable is this recent trend of the language acknowledging the concept of a file when it comes to privacy/visibility (e.g., Swift and Kotlin). That just feels weird and wrong to me…

                              2. 2

                                Kotlin chose to abandon Java’s package visibility modifiers, arguing that it didn’t really “protect” your code because anybody else could trivially write code under the same package name and then see all of your package-private code.

                                Interesting. My tendency would be to go the other way and eliminate private and protected, but keep package. Anything in the same package as a class that depends on implementation details of that class is easy to refactor at the same time as a change to my implementation, so I don’t gain anything much from private and protected that I don’t have from package.

                                If you add a new class in my package, then you are effectively forking my package. That’s fine, it’s up to you to decide that the maintenance burden of doing so is worth it for the change that you want to make. If I refactor my package and break something that your class depends on, that’s your problem because you have a downstream fork of my package, not just something using the package.

                                1. 2

                                  We write it so that they don’t have to see the code.

                                  I didn’t mention it in the article, but the “scissor test” is a concept that I like in regard to this. The idea is that if you were to print out a file of code on to paper, there should be a line that you could cut through with a pair of scissors that separates the interface from the implementation details. So if you want to use the class, you only need to read up until the scissor line, but if you want to understand how it works under the hood you can continue reading further. The scissor line is basically where private starts.

                                  1. 2

                                    Exactly! Every namespace is a precious resource to be maintained as neatly as possible.

                                    1. 1

                                      Kotlin, as you mentioned, has internal visibility to hide things between modules. I find it nicer than package-private since you don’t need to have one package with many classes inside (subpackages’ classes can’t access the package-private members of a class in a parent package)

                                      1. 2

                                        I forgot that Java has no concept of subpackages, which is also disappointing. Rust modules seem to be the winner, then, from my experience.

                                    1. 18

                                      IMO, give up on the bizarrely macho idea that hjkl is uniquely amazing and use the arrow keys.

                                      1. 18

                                        To me the advantage of using hjkl instead of the arrow keys is that I don’t have to move my fingers away from the home row to move the cursor around. I don’t see how that is a “bizarrely macho idea”.

                                        1. 1

                                          I cannot imagine how that helps. Can you explain?

                                          1. 7

                                            You can keep your fingers in the middle of the typing area (home row) instead of going over to the cursors.

                                            1. 0

                                              Oh, hi ane!

                                              You can keep your fingers in the middle of the typing area (home row) instead of going over to the cursors.

                                              I cannot imagine how that helps. Can you explain?

                                              1. 4

                                                Hi!

                                                I cannot imagine how that helps. Can you explain?

                                                You… move around less? It saves time. Like a keyboard shortcut or macro does, basically. It depends on the form factor of the keyboard, but usually the arrow keys are further away from the regular text input keys.

                                                1. 1

                                                  Perhaps 10 years of active piano practice makes this a moot point for me but not so much for others. Or I’m just being an asshole. Could be both ;)

                                                2. 2

                                                  What I find helpful about it, is that I don’t have to look away from the screen to see where the arrow keys are, and likewise when going back to the home row. If there’s a lot going on on your screen it’s easy to lose your place, especially when reading lots of text.

                                                  Also it avoids the physical motion of moving your hand, it just feels more comfortable I think.

                                          2. 16

                                            I use a 60% keyboard without arrow keys

                                            1. 1

                                              By choice, though?

                                              1. 2

                                                Yes, it’s more portable and means i don’t have to reach as far for my mouse

                                            2. 10

                                              I used to think this way. Then I learned hjkl. Now I am in the cult of the ancient keyboard warriors

                                              1. 2

                                                Ancient keyboard warriors who didn’t have arrow keys? I used arrow keys, learned hjkl, thought it was nice, moved to dvorak, ditched hjkl for arrow keys. Nothing is magic about it. Why contort yourself to use hjkl on non-qwerty? Would hjkl be dhtn if the standard were dvorak at the time? Probably, but you can’t just remap dhtn now.

                                                1. 5

                                                  There was once a really good reddit thread of a guy playing counter-strike with zqsd movement keys on a qwerty keyboard cause he copied a French (AZERTY) player’s keybinds. He did not realize this and posted about how much better these movement keys made him.

                                                  1. 5

                                                    Pedantic note: ScreaM is a Belgian, not French, player. The keyboard layout is still French though

                                                  2. 1

                                                    Would hjkl be dhtn if the standard were dvorak at the time? Probably, but you can’t just remap dhtn now.

                                                    If you’re using Dvorak in the “suggested sense”, even dhtn would be awkward since you’d be using your right index finger for both d and h. Maybe htns (or QWERTY jkl;) would be better.

                                                2. 9

                                                  How did you come to the conclusion hjkl is “bizarrely macho”?

                                                  1. 8

                                                    Why is that macho?

                                                    I mean some people tried it, liked it and share the good experience of how great it feels when you get used to it.

                                                    1. 3

                                                      I used to use hjkl. Then I started getting RSI. Now I appreciate the break my fingers naturally get every time I have to move my hands to the arrow keys.

                                                      I can still use hjkl at a pinch, and probably use them many times a day without noticing. But yeah, it’s not worth getting worked up about.

                                                      1. 8

                                                        I can see this being the case, but I think it’s worth noting that RSI covers a large number of distinct problems, and that most RSI would only get worse by more frequently moving your hands away from the home position.

                                                    1. 3

                                                      I don’t have any constructive commentary but I like the pridecat cameo here :D

                                                      I installed NixOS the other day on a machine I rarely use, but I’ve yet to play around.

                                                      1. 2

                                                        and yet you still HIJACK MY SCROLLBAR

                                                        1. 2

                                                          I don’t see any scroll-jacking JS on the page, but there is a scroll-behavior: smooth declaration in CSS.

                                                          1. 3

                                                            I suppose that’s the lesser of 2 evils. At least this prompted me to add scroll-behavior: auto !important; to my user stylesheet.

                                                        1. 3

                                                          Disclaimer: I have only used Jami, for a short time, back when it was called Ring.

                                                          The linked site does not inspire confidence about the quality of the software:

                                                          • There’s a large fixed nav that takes up a significant portion of vertical screen real estate (a lack of UX concern on the web might translate to using the app, too),
                                                          • a picture that’s been grown from its original size, leading to some weird compression artifacts (is the application going to be flexible enough to support everyone’s hardware, if the website hasn’t done enough to throw a multi-size <picture> element in there?),
                                                          • and a seemingly-infinite load icon replaces the favicon for the site (until I press the ‘stop’ button in my browser.)

                                                          I also get a bad vibe from the social media share buttons, but it’s hard to qualify in words. I understand that there are probably separate teams on the browser and on the application, but the website is really screaming ‘just another corporate tool’ at me, with little regard for the average user’s .

                                                          I wish the project luck, though. Centralised communication platforms are my major gripe with the current state of internet communications. I am really hoping we can get something that can feasibly replace Discord, with a lighter (native?) client and less trust in the servers.

                                                          1. 2

                                                            Another Windows + Korean fun fact! The default font on a Korean version of Windows has the backslash (\) symbol made to look like the Korean Won currency symbol (₩, often 원), so you get funny looking paths in cmd.exe, with path elements delimited by Won.

                                                            1. 3

                                                              Same with ¥ on Japanese locales.

                                                            1. 6

                                                              Happy 한글 day! Korean characters decompose to individual jamo under unicode normalisation NFD and compose back up to whole syllable characters with normalisation NFC :)

                                                              As a Korean learner, it was really interesting seeing how the (seemingly simple!) alphabet is implemented under Unicode. I wrote a Minecraft mod for Korean input too!

                                                              1. 6

                                                                Probably gonna do some art of cute sharks and try to finish version 0.3.0 of my homebrew tabletop RPG system.

                                                                1. 1

                                                                  I have been watching twitch.tv/ster while he creates a tabletop RPG. (It’s more art, than programming) I don’t know what systems he’s using, though.

                                                                1. 4

                                                                  I remember getting a world to be decently popular (~1 million visits) back when I was very young in like 2008-2009.

                                                                  I’ve always had a soft spot for Lua since Roblox is where I learned to program.