1. 1

    I wrote something similar a while back: https://github.com/zimbatm/h

    It also has a URL to folder heuristic, but more importantly, it also hooks into Bash so it automatically changes directory into the cloned repo. So technically, h <owner>/<repo> or h <URL> is idempotent and takes you to that project.

    1. 1

      Nice! I like the shell hook for changing directory. I had done a bit of research on how to achieve a directory change without launching a new shell, and it seemed a shell function was the only sane way.

    1. 7

      PHP being more popular than Perl is not hard to explain: PHP had properties that made it easy to host a large amount of it (especially by being an Apache Mod and being written for web pages specficially), so a lot of hosts did that. Perl, on the other hand, is no where nearly as designed for HTML output as PHP.

      Python vs Ruby is a bit harder, but I’d say it’s mostly down to Python having a reputation for being “Easy”, where Ruby can be easy, but is known more for being part of a counter culture. Python tends to be like Pop, where Ruby is either Jazz or Punk (if you’d excuse the mixed metaphors). Of course, both Ruby and Python expose rather large amounts of complexity as you start writing larger programs.

      1. 11

        IIRC Python, with some weird backing from Google, ended up as the de-facto teaching language. I think that’s what is responsible for its comparative popularity. Now the same thing is happening/has happened with Go.

        I think a lot of people are ignorant about the role evangelism plays in shaping language ecosystems.

        1. 2

          Indeed, evangelism definitely plays a large role in how popular languages end up. Thanks for pointing that out.

        2. 5

          PHP was also much easier to get into for beginners. I still remember not knowing what I was doing at all, and successfully programming something in PHP. All it took is some persistence a lot of F5-reloads. This instant feedback property is so valuable to beginners.

          1. 3

            Python vs Ruby is a bit harder, but I’d say it’s mostly down to Python having a reputation for being “Easy”, where Ruby can be easy, but is known more for being part of a counter culture.

            I started with Perl (doing apps with HTML::Template, mod_perl and the likes) then moved to Ruby on Rails during its hype (I did learn Ruby proper, outside of rails though). What got me moving from Ruby to Python was essentially the standard library and I think many people went a similar path. It was just easy to get stuff running and all the modules seemed good quality and worked out of the box. I still prefer Ruby over Python (but that is mostly because I like Smalltalk and Ruby draws much more from it) but back then it was simply more pragmatic to reach out for python when doing anything except a Rails web app. I think this xkdc pretty much nailed it: https://xkcd.com/353/

            1. 3

              Python vs Ruby is a bit harder, but I’d say it’s mostly down to Python having a reputation for being “Easy”, where Ruby can be easy, but is known more for being part of a counter culture. Python tends to be like Pop, where Ruby is either Jazz or Punk (if you’d excuse the mixed metaphors). Of course, both Ruby and Python expose rather large amounts of complexity as you start writing larger programs.

              Ruby was driven by the popularity of rails, and I’d argue Python was driven by scientific computing. Python only really went stratospheric this decade with the rise of data science and ML.

              1. 3

                Python was driven by scientific computing.

                Was this historically true though? Clearly, today’s popularity of Python is due to the fact that everyone uses ML for everything. But I would think that the niche of scientific computing was much smaller when Python already was more popular than Ruby?

                1. 2

                  I think you’re right. Python was a successful back-end web language back when “data science” was just statistics and scientific computing had never heard of (and couldn’t afford) these newfangled “high-level” “scripting” languages. On the other hand, the numpy/scipy stack has been around quite a while. I think it’s more like Python was already prevalent in education as ML was starting to expand, had decent ergonomics, and the ecosystem was fairly robust due to (web-driven) industry adoption.

                  1. 1

                    I would even bend this to my theory: the reason why Python won ML is numpy, and the reason why Python has numpy is a runtime which can easily be extended with native modules.

                    The fact that Python exposes the guts of the interpreter is oft cited as drawback (“that’s why every implementation converges to CPython design”), but it also is an explanation of the popularity.

                    1. 3

                      I agree NumPy is Python’s strategic advantage, but I disagree it has anything to do with CPython runtime. NumPy is mostly historic accident: it took three tries to get right (Numeric, Numarray, and then NumPy), and it basically burned out two extraordinary programmers (Jim Hugunin and Travis Oliphant).

                      In other words, I agree with “runtime matters” theory, but “runtime that matters” credit goes to NumPy itself, not CPython.

                      1. 1

                        Oh, interesting! Do you have some link to read about the history of NumPy by any chance?

                        1. 3

                          Travis Oliphant published a book titled “Guide to NumPy”. Its first chapter is titled “Origins of NumPy” and is probably the most definite account. It should be easy to find but I don’t think it’s appropriate to link to the web version of the published book.

                  2. 1

                    I certainly used Python much more than Ruby before ML became a thing. These days though, I don’t use a lot of either.

              1. 4

                While I’m glad to see progress on this integration, I don’t see whether the hardest parts have been figured out. In particular, folklore is that IPFS lacks the bandwidth, and possibly the space, to host Nix’s entire public binary cache. Reading the grant proposal, those hard parts are tucked behind “stretch goals”. Has IPFS gained capacity recently?

                1. 5

                  It depends on what is considered the hardest part I guess. Addressing all of the problems at once is the best way to achieve nothing. Even if this experiment doesn’t succeed, the work already brought a lot of Nix internals cleanup and will likely result in the addition of CA-derivations.

                  IPFS itself doesn’t really store anything permanently. It’s missing content duplication and reward mechanisms that allow objects to outlive individual bridge failures. I think it’s what led to the creation of Filecoin. In order to publish the whole existing binary cache, the NixOS project would have to create a new kind of bridge that exposes all those files onto the IPFS network. Hopefully by lazily-fetching them from S3 when they get addressed.

                  1. 3

                    IPFS lacks the bandwidth, and possibly the space

                    IPFS is a protocol. Bandwidth and space come from the hosts, just like with HTTP (and bandwidth can be temporarily added by everyone who fetches over the protocol, just like with BitTorrent).

                  1. 2

                    Building AMIs is even simpler (and faster) with nixos-generators. The only remaining bit is to push them to a S3 bucket and get them registered on AWS.

                    1. 1

                      Neat, I was looking at https://github.com/Robertof/nixos-docker-sd-image-builder for building some sd card images for an rpi 4 spiel. And to look at getting a build for a nano pi m4 v2 going too.

                      Will give this a go over the weekend thanks!

                      1. 1

                        Interesting project. How can it be simpler and faster if it’s calling the same amazon-image.nix module that nixpkgs provides? If I needed a single nix configuration upstream of several images (EC2, Azure, GCP, etc.) then it’s definitely worth considering. Otherwise, I think using packer to build atop the NixOS AMI is faster because you’re not making a disk image, then sending it to S3, then waiting for VM Import.

                        I will probably edit in a link to the nixos-generators project, because it is still pretty cool. Thank you.

                        1. 2

                          I would have to measure to sustain my claim. I think that it’s faster than packer but you are right, it’s pretty much a packaged version of amazon-image.nix.

                      1. 3

                        MQTT Doesn’t Work For Battery Backed Devices

                        This is what QoS levels 1-2 are for. The broker queues the messages, and the device receives them when it finally logs on.

                        I mean, there’s plenty of things wrong with MQTT, but this article is pretty weak, imo

                        1. 1

                          The first point was also pretty weak imo. The author basically wants MQTT to adopt a structured format instead of bytearray, which is going to expand the spec massively. And schema conflicts are still possible. There is no magic bullet to data interop.

                        1. 3

                          Single-tenant SaaS software that scales to zero.

                          The software industry it too geared towards Google-scale. Self-hosted software is often PHP with some database that needs to keep running in the background. Backup is never mentioned in the installation manual.

                          If I had the time I would:

                          • Build a new kind of flat-file database that handles streaming updates and syncs to S3.
                          • Build a suite of tools that run on top of it and can scale to zero when not used.
                          • Some simple scheduler that is not Kubernetes.
                          1. 1

                            I don’t recommend trying to build a database on top of something without transactions and with only eventual consistency.

                            1. 1

                              Like a hard disk drive with its own firmware?

                              1. 1

                                Hard disk drives should provide immediate read after write consistency of all data. S3 does not.

                                1. 1

                                  As far as I know, some HDD firmware will buffer & reorder writes for performance reasons; meaning a power outage can (rarely) cause an ext4 “journaled write complete” to get written without the actual content.

                                  1. 2

                                    Well, at least most of them mostly honour write barriers, and at least we have grounds to call drives that lie about barriers lying garbage that they are (no-barrier sequences of writes are fair game to reorder, though). Lying is an important part here, of course. With S3 the normal mode of operation is officially expected to have temporary inconsistencies even in the best case, which is fine for many use cases, but maybe even more annoying than the modern hard drive behaviour in this specific one.

                                    1. 1

                                      That may be, I have no idea. I’ve definitely read that writing a database backend on modern file systems and drives is a nightmare.

                                      On S3, you wouldn’t even need a power outage in order cause consistency issues, though. Hence why I suggest not trying write a database that stores data in it. It’s really not designed for that.

                            1. 11

                              A CRM for personal relationships

                              1. 2

                                I have read about https://www.monicahq.com/ as an example. Never tried it. Have you tried it?

                                Personally I find the concept a bit … autistic/creepy, but still have considered it as possibly useful tool.

                                1. 9

                                  Personally I find the concept a bit … autisti

                                  Well, yeah, that’s me. Thanks for the link.

                                  1. 5

                                    If you think it might be useful, but found a dedicated CRM app a bit much, have you tried using the notes field in your phone’s address book? I use it to jot down names of kids & spouses and things like “vegan”, “teetotal”, “pronounced […]” etc. They’re synced everywhere automatically and they’re searchable in a hurry from your phone.

                                    1. 4

                                      I think it may seem creepy because of associations with corporations and marketing.

                                      However, when I actually think about it… Would my life be richer and better if I was more consistent about staying in touch with people? Almost certainly!

                                      1. 1

                                        I tried this but had difficulty getting the self hosted version to work. As far as creepy, I think of it as just a memory extension. It isn’t anything someone with a good memory couldn’t do, just helps mortals to remember birthdays, peoples’ interests, etc.

                                      2. 1

                                        …the more I think about this the more I want it

                                        1. 1

                                          I found this one a while ago: https://www.monicahq.com/ (not affiliated)

                                          It needs a lot more automation to become useful IMO.

                                          1. 1

                                            Thanks

                                          2. 1

                                            Why do you need this, if I my ask?

                                            1. 1

                                              Help me follow up with my friends and family

                                          1. 19

                                            A mostly text-based shell Interface to my computer, which is not stuck in the last century: https://matklad.github.io/2019/11/16/a-better-shell.html

                                            1. 7

                                              Interesting things happen with arcan-tui and userland. Powershell and powershell-a-likes are not the answer.

                                              1. 1

                                                Userland is really nifty and definitely breaks some new ground in UINX user/computer interaction.

                                              2. 4

                                                Pretty much agree with your post. Removing the distinction between shell and terminal emulator would allow new and interesting modes of operation. One of them could be pausable and introspectable pipes. Another one could be remote SSH sessions that have access to the same tools as the local one.

                                                1. 3

                                                  Try power shell

                                                  1. 3

                                                    First paragraph of the post explains that I am not looking for powershell. It indeed is a big improvement over bash, but in areas I personally don’t care about.

                                                    1. 1

                                                      If you read the post this isn’t what the OP is going for. Powershell brings some excellent new capabilities to the table with object pipelines, and has some nice new ideas around things like cmdlets and extensability, but his post goes into much more detail about user experience aspects Powershell doesn’t even come close to providing.

                                                    2. 3

                                                      Why cargo test blocks my input? Why can’t I type cargo test, Enter, exa -l, Enter and have this program to automatically create the split?

                                                      What I really want is an extensible application container, a-la Emacs or Eclipse, but focused for a shell use-case.

                                                      I would like Oil to be able to support this kind of thing, and at least in theory it’s one of the most promising options.

                                                      And ironically because I’m “cutting” the interactive shell, it will should be more possible than with bash or other shells, because we’re forced to provide an API rather than writing it ourselves.

                                                      I had a discussion with a few people about that, including on lobste.rs and HN. The API isn’t very close now, but I think Oil is the best option. It can be completely decoupled from a terminal, and only run child processes in a terminal, whereas most shells can only run in a terminal for interactive mode.

                                                      Related comment in this thread: https://lobste.rs/s/8aiw6g/what_software_do_you_dream_about_do_not#c_fpmlmo

                                                      Basically a new “application container” is very complementary to Oil. It’s not part of the project, but both projects would need each other. bash likely doesn’t have the hooks for it. (Oil doesn’t either yet, but it’s has a modular codebase like LLVM, where parts can be reused for different purposes. In particular the parser has to be reused for history and completion.)

                                                      1. 3

                                                        Amusingly, using :terminal in neovim changed a lot of things for me. I could then go to normal mode and go select text further up in the ‘terminal’. Awesome!

                                                        1. 2

                                                          I mapped it to CTRL-Z to get a consistent behaviour between terminal and non-terminal Neovim

                                                          1. 2

                                                            Yeah, this speaks to some of the power he references in his post that emacs brings to the table. IMO one of the things that makes neovim so impressive is that it takes the vim model but adds emacs class process control.

                                                            I’d love it if people would do more with the front end / back end capabilities neovim offers, beyond just using it for IDE integrations and the like.

                                                          2. 2

                                                            You’re basically describing a regular computing environment.

                                                            1. 1

                                                              Sounds like your idea and my idea have some interesting possibilities when combined :)

                                                            1. 1

                                                              The funny thing is that I agree with almost everything the author has said. Yet I still enjoy writing programs in Go quite a lot. Maybe I am not a real programmer :)

                                                              1. 1

                                                                Yes, Go is definitely not perfect, but I still very much enjoy using it. It’s relatively easy to predict how Go will behave in a number of cases and there aren’t too many surprises. The opinionated formatting and error handling makes it quite easy to pick up someone else’s code and follow it.

                                                                1. 1

                                                                  Another aspect that I enjoy is its fast compilation. Languages that have more complicated types tend to be much slower to compile and I don’t like to wait around.

                                                              1. 14

                                                                Given the same task, two developers often come up with solutions that differ in an order of magnitude in size, complexity, dependency count and resource consumption.

                                                                I have witnessed that over and over.

                                                                1. 4

                                                                  I code for approximately an hour a day after my kids have gone to bed. (I’m a manager these days, so my job doesn’t involve day-to-day coding.) During that time I can be shockingly productive, cranking out a solid chunk of performant, safe, well-factored code in an amount of time that would have been an extended coffee break back in my “code-slinging” days.

                                                                  So, have I discovered the Nirvana of 10x-ness? Could I jump back in to coding and be massively more effective than I was in my 20s or the portion of my 30s where I still considered myself a professional software developer?

                                                                  No, and no. I’ve just found a comfortable niche where the problem domain, freedom to choose the tools I want, and lack of 50 competing demands on my time let me go head-down and code and consider only that time when I measure my production.

                                                                  In my experience there’s a very strong correlation between “10x coders” and people who are given the space to work, control over their tools, and trust to architect systems as they choose.

                                                                  Whether they earn that because of demonstrated, sustained performance or learn to do it after thrashing around in the deep end for a few years is kind of a chicken-and-egg problem, but studies and surveys (sorry to not have links handy, I’m typing this on my phone) show consistently that developers are happiest and feel most effective when offered those freedoms.

                                                                  1. 3

                                                                    In what kind of setting do two developers have to produce the exact same thing at the same time, without talking to eachother about it? And is it always the case that developer A produces something that’s objectively 10x better than developer B, or are the roles sometimes reversed. For instance, does it depend on experience in a certain niche?

                                                                    1. 4

                                                                      That happens all the time when discussing the scope of new projects.

                                                                      A recent example I have in mind is, the employer wants a place to collect and analyze data that is being generated by their product.

                                                                      • Developer A’s proposal was to build a full data warehouse with SMT, CMT, ETL, Timeseries DB, …
                                                                      • Developer B’s proposal was to ingest the data into an S3 bucket in a regular format, and then plug whatever DB we need when we need it.

                                                                      Without judging which proposal is the most appropriate, which varies on the context. It’s quite obvious to me that the first proposal is at least 10x bigger.

                                                                      1. 2

                                                                        One example are test-work situations. Multiple developers who are considered for longer term projects do the same small project.

                                                                        I did not say objectively better. But 10x difference in size, complexity, dependency count and resource consumption. Personally, I think this leads to even more then 10x slower progress when the code evolves. But opinions on this differ widely.

                                                                        1. 2

                                                                          But 10x difference in size, complexity, dependency count and resource consumption.

                                                                          I would probably call that objectively better. But maybe that’s my own biased thinking.

                                                                          For instance, did the developers know that optimizing for these things was a goal? Did the other developers produce something in shorter time? Were they equally experienced?

                                                                          1. 2

                                                                            did the developers know that optimizing for these things was a goal

                                                                            No, because development is a tradeoff between so many goals that stating something like “size is important” would lead to absurd constructs. In my experience, every developer has their style and you cannot change it much. For example a dev who prefers to think in “business objects” over “sql queries” will struggle if you force them to change that type of thinking. Even if their approach creates code that needs ten million times more resources.

                                                                            Did the other developers produce something in shorter time?

                                                                            I would say usually coding time is shorter for the smaller, leaner, less resource hungry solutions with less dependencies.

                                                                            Were they equally experienced?

                                                                            In my experience there is a strong correlation betwen experience and the type of solutions a developer comes up with. And the time they need to implement them. More experienced developers tend to come up with leaner solutions and need less time to implement them.

                                                                            1. 2

                                                                              In my experience there is a strong correlation betwen experience and the type of solutions a developer comes up with. And the time they need to implement them.

                                                                              This would seem to fit well with other types of jobs. I think the myth is that there are people who are “magically” 10x better somehow, which makes very little sense to me.

                                                                              1. 5

                                                                                It’s not that they’re magically better. There are practices you can follow that get you those results, but people just don’t seem interested in following them:

                                                                                • Understand the business reasoning behind the project…look for ways of exploiting that knowledge to minimize the amount of work done.
                                                                                • Less code is always easier to debug…or if you can’t debug, throw out and replace.
                                                                                • Clearly defined project goals and constraints and milestones make development fast and visible.
                                                                                • Throwaway prototypes are faster than big projects and teach you more–and may be good enough for the business.
                                                                                • Understanding, deeply, the tools you use and the basic principles of computer science and engineering help you prune solution spaces a lot better.
                                                                                • Identify whether or not the framework/third-party app is actually delivering value over just implementing a smaller bespoke solution yourself. Color picker? Almost certainly. Database extension? Probably. Container orchestration for a static blog? Probably not.
                                                                                • Pseudocode and stepwise refinement of the solution to a problem. If you can’t explain something with bullet points, you don’t understand it, and if you don’t understand it, you’re slow.

                                                                                There are more I think, but that’s a start.

                                                                                Somewhat grumpily: there may not be 10x software engineers, but there sure as hell are 10x embedded AWS salesfolk.

                                                                                1. 2

                                                                                  I think your third point is the most important one. Perhaps a 10x developer is gifted at recognizing the business priorities even when the Product folks don’t see how much size/complexity matters?

                                                                              2. 2

                                                                                I would like to think that my style has some flexibility to it, though I’ve definitely landed on the SQL queries side of that divide in the past.

                                                                                Of course, everyone struggles with a new way of thinking at first. Which is why, for me at least, I seek out new ways of thinking, so I can get the struggle done with.

                                                                                1. 1

                                                                                  I would say usually coding time is shorter for the smaller, leaner, less resource hungry solutions with less dependencies

                                                                                  I’m not sure I agree, here. Maybe if you take “coding time” (as opposed to “dev time”) very strictly, but even then…

                                                                                  My anecdata includes a bunch of hackathon projects that, when polished up for production, amounted to far less code. Reducing duplication, refining design for smaller code, replacing bespoke with off-the-shelf libraries, etc, all benefit from taking time.

                                                                        1. 2

                                                                          It’s a good weekend project, nothing to be embarrassed about.

                                                                          I remember having the same issue and selected Asciidoc as a format. The format gives better control over layout, such as placing the headshot on the top-right corner. And the Asciidoctor tooling outputs PDF by default. Unfortunately, the resume contains too much private information to be open-sourced right now.

                                                                          1. 4

                                                                            I use LaTeX for mine. One word of warning:

                                                                            placing the headshot on the top-right corner

                                                                            This is generally a really bad idea. Companies are starting to care about implicit bias in their hiring process and if the first thing you see is a photo then that maximises the likelihood of implicit bias influencing shortlisting decisions. To avoid this, someone in HR will do a pass over the CV and strip out things like this. The hiring manager will see a mangled version of your CV.

                                                                            If you want to avoid this, don’t put age, ethnicity, citizenship, or a photo anywhere on your CV. Companies may request this information (particularly for right-to-work checks) separately, but that goes through HR not to the person making the hiring decision. In some jurisdictions, taking any of this information into account in the hiring process is illegal. The simplest way of avoiding legal risk is to just throw away any CVs that include this information into the bin.

                                                                            1. 1

                                                                              Do you know if they are also stripping the name from the CV?

                                                                              With Asciidoc it’s quite easy to customize the CV with conditionals so it’s not necessarily a problem if they want the document with just the body of the content.

                                                                              1. 1

                                                                                I’ve only rarely seen that done. There is research showing that it’s a good idea, but humans aren’t good at remembering candidate numbers, so going though a stack is quite tricky.

                                                                              2. 1

                                                                                I wonder whether this is a US thing…

                                                                                I just checked several large companies in my area (in Germany) and their application forms all have an explicit field for a photo. It wasn’t marked as required, though.

                                                                                1. 1

                                                                                  If it’s a separate field then it may only be used for identifying candidates when they come in for interview and not presented to the hiring manager.

                                                                              3. 1

                                                                                It’s a good weekend project, nothing to be embarrassed about.

                                                                                For anyone wondering what this is about, it’s in response to my description on this post, which I guess should have been a comment: “I feel kind of embarrassed submitting this trivial weekend project but it was an itch of mine that nobody else had scratched and perhaps someone other that me will find it useful.”

                                                                                The format gives better control over layout, such as placing the headshot on the top-right corner.

                                                                                If you’re happy with the control of asciidoc then no worries, but just in case you were interested in dropping down to Markdown source: I was surprised by how easy it was to format the plain HTML output (no classes or ids) with CSS. E.g. in the example resume.md, the line of contact details below the name is a <ul> that I style with the h1 + ul CSS selector. Not having the ability to apply classes etc. to specific elements makes styling a particular instance a little fragile, and I wouldn’t play tricks like this across an entire website, but for a single page resume I think it’s fine.

                                                                                So, for example, you could put the <img> immediately before (or after) the <h1> and then select it uniquely in CSS with h1 + img and shift it up to the corner with the usual tricks.

                                                                                That said, I agree with the advice that you should not include a headshot in a resume in 2020! And I especially wouldn’t use Europass format, if that’s where you’re getting this idea from. (See, e.g. https://twitter.com/brkzkn/status/1283785183187988482).

                                                                              1. 34

                                                                                This will be good for Wayland, musl, and clang support for all their supported packages. Typically a distro that goes out of the beaten paths will bring a few patches to the upstream projects that make them more generic and resilient to diverse environments.

                                                                                It’s not super clear to me what the appeal for the distro itself is, as a user. They seem to be focused on a set of technologies to use and it’s unclear what capabilities this will bring that aren’t available elsewhere.

                                                                                1. 1

                                                                                  capabilities this will bring that aren’t available elsewhere

                                                                                  In my opinion, the challenge of a distribution/os is how software is brought to users (which might be admins or end-users), not what is bundled.

                                                                                  But I agree that there might be facilities that the OS provide.

                                                                                  “just doing it right” is a good enough selling point to me, while some might look for “extra features”… All about tastes.

                                                                                1. 3

                                                                                  The article would have been a lot more constructive if it gave some examples of better alternatives for the various projects mentioned.

                                                                                  1. 18

                                                                                    Are you suggesting they should say something like

                                                                                    What To Use Instead?

                                                                                    To replace GPG, you want age and minisign.

                                                                                    To replace GnuTLS or libgcrypt, depending on what you’re using it for, you want one of the following: s2n, OpenSSL/LibreSSL, or Libsodium.

                                                                                    which they said at the bottom of the article?

                                                                                    1. 2

                                                                                      Except Age/Minisign is not a GPG replacement?

                                                                                      1. 5

                                                                                        Age replaces file encryption. Minisign replaces signatures.

                                                                                        Read https://latacora.micro.blog/2019/07/16/the-pgp-problem.html

                                                                                        A Swiss Army knife does a bunch of things, all of them poorly. PGP does a mediocre job of signing things, a relatively poor job of encrypting them with passwords, and a pretty bad job of encrypting them with public keys. PGP is not an especially good way to securely transfer a file. It’s a clunky way to sign packages. It’s not great at protecting backups. It’s a downright dangerous way to converse in secure messages.

                                                                                        Back in the MC Hammer era from which PGP originates, “encryption” was its own special thing; there was one tool to send a file, or to back up a directory, and another tool to encrypt and sign a file. Modern cryptography doesn’t work like this; it’s purpose built. Secure messaging wants crypto that is different from secure backups or package signing.

                                                                                        You may think you want some cryptographic Swiss Army knife that “truly” replaces GPG, but what you really want is secure, single-purpose tools for replacing individual use cases that use modern cryptography and have been extensively reviewed by cryptography and security experts.

                                                                                        1. 2

                                                                                          What tool handles the identity and trust mechanism that GPG providing?

                                                                                          With the multi-tool approach, the user has to re-establish the web of trust every time and learn about each disconnected tools as well.

                                                                                          1. 2

                                                                                            What tool handles the identity and trust mechanism that GPG providing?

                                                                                            I hear webs of trust don’t work. Not sure why, but I believe it has to do with the difficulty of changing your root key if it ever becomes compromised.

                                                                                            Otherwise, maybe something like minisign, or even minisign itself, could help?

                                                                                            1. 1

                                                                                              Trust in what context?

                                                                                              For code-signing, I designed https://github.com/paragonie/libgossamer

                                                                                      2. 1

                                                                                        Totally agreed. But hey, a blog article poo-pooing a thing is much easier to write than one constructively criticizing it and offering solutions. And who has the time these days?

                                                                                        On a related note, it was once a guaranteed way to get your latest blog article to the top of the orange site if the title contained something like, “Foobar: You’re Doing it Wrong” or “We Need Talk About Foobar”. Phrases like this are the equivalent of “One Weird Trick” headline clickbait for devs.

                                                                                        1. 8

                                                                                          Pretty sure the article offers solutions. It’s at the very bottom though.

                                                                                      1. 3

                                                                                        Being against testing is a bit like being against automation. But automation is why we write software in the first place. The first application for software was to automate calculations for us and this is the general trend of the industry.

                                                                                        I think a more pertinent question is whenever the automation cost, the time it takes to write and run the test, will pay off. Obviously it’s really hard to predict the future and some level of disagreement can come from different interpolation models, but this is really the issue at hand.

                                                                                        So I agree, writing tests blindly, just for the sake of writing tests, it not worth it. It makes the code-base larger and harder to change in some regard. It also potentially slows down iteration speed. But no test is also not the right approach. The right approach is somewhere in the middle, as usual.

                                                                                        Consider all the times that the program is executed manually to test, manually, that everything works as expected. This is something that can be automated. And by doing that, it also helps increase the build & test iteration speed. Software is a force multiplier, but only when applied properly.

                                                                                        1. 1

                                                                                          Wouldn’t it be fun if, because of the prevalence of the hamburger menu, keyboards started getting a new “hamburger” key? A key that opens the menu of the current context.

                                                                                          1. 2

                                                                                            Menu keys seeing a new purpose close enough?

                                                                                            1. 1

                                                                                              My keyboard has a menu key. It even looks like the hamburger menu, with three identical bars in a box, and no mouse cursor.

                                                                                              And, according to the keycode tester, JavaScript can get at it with keycode 93 / ContextMenu. If you wanted to, I think you could configure your web page to open its hamburger menu on this button. I’m not sure if you’d want to do that, though.

                                                                                              1. 1

                                                                                                Pretty good :-)

                                                                                            1. 9

                                                                                              The .xyz domains are also compatible with the Ethereum Name Service.

                                                                                              1. 32

                                                                                                Objectively speaking, RuboCop is the less racist and fairest cop out there. It doesn’t care about your syntax highlighting background color or origin. :-D

                                                                                                It’s sad to see that people feel entitled to bully somebody for a totally unrelated issue. There is a lot of anguish in social media and this feels like a misdirected spill-over. It has nothing to do with actually fixing police brutality or racism, unfortunately.

                                                                                                1. 6

                                                                                                  In the issue comments I found repeatedly a proclamation that „All software is political“.

                                                                                                  This is generally not true. There might be some „political“ software, but usually software is simply a tool. It is not good or bad* – it can be used for good or bad or neutral purposes, just depending on who and how is using that software.

                                                                                                  And there is also software or development style that is explicitly apolitical – Sane software manifesto says:

                                                                                                  In order to contribute, it must not be required: … to sign any political, religious or other proclamation or agree with it.

                                                                                                  P.S. Yes, free software has some political undertone, or I would rather say ethical, but it is very strictly defined and there are clear boundaries that prevent bending and misusing this term. Free software can be used by anyone for any purpose.

                                                                                                  *) now I am not talking about code quality, but about the ethical dimension

                                                                                                  1. 13

                                                                                                    The inception of the Free Software movement was inherently political, and the recuperation of that movement into a more business-friendly Open Source movement was also political. Licensing software using a FLOSS license is a political act.

                                                                                                    1. 2

                                                                                                      Yet the success of the open-source movement in relation to the failure of the free software movement (at least, according to their goals) is almost 100% due to the FSF’s politics. Companies would rather use open-source software rather than free software because there’s less legal bullshit to go through. Additionally, companies have been less inclined to license their own software with the GNU GPL and have chosen alternative licenses that are more permissive and don’t place so much burden on the author to “give credit where credit is due”.

                                                                                                      I love the FSF, GNU, and the movement it all stands for. But in my opinion, the world has mostly left that concept of “freely available software that you have total control over” behind. Especially in the current “rental” climate where less software is actually owned by a user.

                                                                                                      1. 5

                                                                                                        Companies would rather use open-source software rather than free software because there’s less legal bullshit to go through.

                                                                                                        You use company adoption as the yardstick for success here but I would counter that it is entirely irrelevant to the political goals of Free Software.

                                                                                                        (P.S. my use of the word recuperation above was deliberate.)

                                                                                                        1. 3

                                                                                                          Open source is hardly a success. It’s companies struggling over control of software for their own interest (that very often is not aligned with the interest of the community) or bright people working for free for companies and be happy about the theft of time and energy. Corporate adoption and investments for control is their own metric of success but arguagly one that reflects the wellbeing of the commons.

                                                                                                          1. 4

                                                                                                            hardly a success

                                                                                                            What? This makes very little sense. Most of the software running the Internet is open source. Throw a dart at the list of top 100 tech companies, they’ve probably open sourced major libraries that have gone on to spawn entire industries.

                                                                                                            The Linux kernel, ffs.

                                                                                                            I’m confused at your argument. What is it you define as “success?” Adoption? Growth? Longevity? Monetary return?

                                                                                                            1. 3

                                                                                                              Be useful to people, solve problems in the real world (ideally problems that aren’t created other open source software), make the world a better place.

                                                                                                          2. 0

                                                                                                            ‘Free’ and ‘open source’ are synonyms. Companies don’t use open source software instead of free software. Using open source software is using free software. Using free software is using open source software.

                                                                                                            Copyleft and permissive software licenses are all both free software licenses and open source software licenses.

                                                                                                            1. 2

                                                                                                              No, they are not synonyms. Free software does no need to be gratis, nor does open source software imply that you have the freedom to change and distribute that software - even in exchange for money - like free software gives you. This distinction has been made clear so many times by now that it is surprising to see the claim that these two are synonyms.

                                                                                                              1. 1

                                                                                                                No, they are not synonyms. Free software does no need to be gratis

                                                                                                                Nor does open source software.

                                                                                                                nor does open source software imply that you have the freedom to change and distribute that software

                                                                                                                Yes it absolutely does imply that you have the freedom to change and distribute that software. The Open Source Definition requires:

                                                                                                                “The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.”

                                                                                                                This distinction has been made clear so many times by now that it is surprising to see the claim that these two are synonyms.

                                                                                                                It’s been stated over and over again by everyone from the FSF to the Open Source Initiative that, ignoring some very idiosyncratic edge cases, ‘free software license’ and ‘open source software license’ are synonyms. The cases where the FSF approves and the OSI doesn’t or vice versa is generally because one of the them considers it too vague to be a valid license, such as with the Artistic License v1 or some issues with public domain licenses in Europe. Or to put it another way: if you put the FSF people in charge of evaluating licenses under the OSI definition and the OSI people in charge of evaluating licenses are free or not, they’d come to the reverse conclusions. The requirements for something to be a free software license are virtually identical to the requirements for something to be an open source software license.

                                                                                                                RMS: The term “open source” software is used by some people to mean more or less the same category as free software. It is not exactly the same class of software: they accept some licences that we consider too restrictive, and there are free software licences they have not accepted. However, the differences in extension of the category are small: nearly all free software is open source, and nearly all open source software is free.

                                                                                                                1. 1

                                                                                                                  “The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.”

                                                                                                                  If the original licence says the software can not be used for or distributed by individuals and companies who work in a certain industry - defence is an example which has come up several times, police would be another - that software is not free software.

                                                                                                                  1. 1

                                                                                                                    Nor would it be open source software.

                                                                                                                    Have you ever actually read the open source definition?

                                                                                                                    “The license must not discriminate against any person or group of persons.”

                                                                                                                    “The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.”

                                                                                                                    1. 0

                                                                                                                      OK, if that clause is part of the open source licence (there are many) the distinction gets less clear. This used to be a problem back in the day when ‘open source’ and ‘free software’ started to be recognised as two possibly distinct licence types. It still is for some licences (e.g. [1], “The license above does not apply to and no license is granted for any Military Use of the Licensed Patents.” but they do seem to be getting more rare.)

                                                                                                                      [1] https://www.cs.ucdavis.edu/~rogaway/ocb/license2.pdf

                                                                                                                      1. 1

                                                                                                                        OK, if that clause is part of the open source licence (there are many) the distinction gets less clear.

                                                                                                                        That clause is a restriction on what constitutes an open source license. It applies to all open source licenses by definition.

                                                                                                                        1. 2

                                                                                                                          Ah, but that is where the shoe wrings. Open source has become a generic term which is applied to any and all software for which the source is not hidden. The OSI has tried - and, as far as I can see, failed - to rein in the term to only encompass those licences which abide to the directions set forth in their licence, other software should be called ‘source-available’ or similar such constructs.

                                                                                                                          1. 1

                                                                                                                            the shoe wrings

                                                                                                                            I love this translation of “där skon klämmer”, but I think a better English is idiom is “there’s the rub”.

                                                                                                                            1. 2

                                                                                                                              It is actually a translation of “daar knelt de schoen”, an idiom which exists in many Germanic languages (the one cited being Dutch), English being one of them. Proverbs citing shoe-related woes have been used for many centuries, Shakespeare and his contemporaries were rather fond of these expressions which can be found scattered around their proze: I feare me theres s shooe wrings her i’th instep, of my yong [sic] Shooemakers making was a way of referring to a pregnant woman in a play from 1540.

                                                                                                                            2. 1

                                                                                                                              Open source has a definition and is still being used according to that definition. I have never seen anyone refer to anything that isn’t open source as ‘open source’ without having many comments pointing out the incorrect use of language and then usually an apology.

                                                                                                            2. 1

                                                                                                              Most developers who write open source (or free, if you will) software either aren’t very familiar with the politics of Free Software, or explicitly reject it. A well-known example of this is Linus Torvaldus, but there are many more.

                                                                                                              Many who use the GPL simply want to ensure people contribute code back, nothing more. I think Free Software as a political concept is not particularly common, even among people who contribute to it, and even less common outside of it.

                                                                                                              1. 2

                                                                                                                Torvalds doesn’t reject Free Software, he rejects the tivoization clause(s) in GPLv3.

                                                                                                                1. 2

                                                                                                                  He’s been pretty critical of the concept of Free Software, and sharply critical of Stallman and the FSF, and not just about the GPL3. He’s often said that he mostly sees open source and the GPL has a simple practical matter (“it just works best, and sending back your patches is just basic fairness”), and has also said that he doesn’t really mind that proprietary software exists (which is quite different than the political position of the FSF).

                                                                                                            3. 17

                                                                                                              Nothing is apolitical, because nothing can exist outside of the political (social) climate in which it is created or consumed. Calls to keep politics out of X are political, however, because they distill down to a tacit defense and support of the status quo.

                                                                                                              1. 9

                                                                                                                This argument has no merit, as you could equally apply it to the choice of condiments you put on a hotdog.

                                                                                                                1. 5

                                                                                                                  It’s political in a very narrow scope; the one of producing the software. The reverse conclusion that some seem to make is that it is a justification to throw even more politics into software development. It is used as a strong-arming argument that disrespects the intent of the author.

                                                                                                                  1. 8

                                                                                                                    Calls to keep politics out of X are political, however, because they distill down to a tacit defense and support of the status quo.

                                                                                                                    You have to be trolling. Some people are just sick of everything being a political discussion.

                                                                                                                    1. 13

                                                                                                                      I think the counter here would be that, if you are sick of discussing a political issue, it is likely because the issue does not affect you, which is in some cases due to what might be described as social/cultural/whatever privilege: hungry people don’t often become “sick of” talking about food.

                                                                                                                      I’m a straight white upper class American male and I both empathize somewhat with your sentiment and do often get tired of every discussion becoming political (hence why I read lobste.rs 100x as often as the orange site) but I must concede some validity to the argument that my position in society is what lets these political discussions be just “boring” to me instead of terrifying and immediately relevant.

                                                                                                                      1. 13

                                                                                                                        I think the counter here would be that, if you are sick of discussing a political issue, it is likely because the issue does not affect you

                                                                                                                        And sometimes, you are powerless to affect it.

                                                                                                                        Racism exists everywhere in the world, but the form it takes in Bulgaria and elsewhere in the world is unlikely to line up with the American discourse. Imagine how you’d feel if people vehemently demanded you pick a side about the Indian citizenship law, and saw your unwillingness to comply as an indirect endorsement of the other side’s position? Because this is what the internet is like for non-Americans, at the moment.

                                                                                                                        1. 6

                                                                                                                          if you are sick of discussing a political issue, it is likely because the issue does not affect you

                                                                                                                          Bear in mind that even activists and volunteers need to decompress.

                                                                                                                          One can’t be 24/7 involved in the same thing or you will burn out. Not every conversation can be about the same topic, over and over again.

                                                                                                                      2. 3

                                                                                                                        Nothing is apolitical

                                                                                                                        It’s not true. The action itself can be apolitical at the same time when analyzing the results of the same action can be political. If I stare at a tree because I find it relaxing, it’s not political. But the realization that I’m at the park staring at the tree instead of vandalizing public monuments in a name of some idea, can be political.

                                                                                                                        It’s similar to mathematics. If I eat an apple because I’m hungry, the action itself is not mathematical. But the number of apples in the area I live in will decrease by 1, so it will be a mathematical result only if you use mathematical reasoning when interpreting the situation.

                                                                                                                        1. 3

                                                                                                                          Maybe this would help you understand:

                                                                                                                          … People are different and have various opinions on various topics. But the pure free software ideas are a common interest which leads people from different groups and with different backgrounds to cooperation and shows them the way how to talk each other and eventually build a friendly and respectful community. It is much better than if people from different groups stay in their own bunkers and just bark at each other.

                                                                                                                          Future of the Free Software Foundation

                                                                                                                          1. 2

                                                                                                                            If you want to make something political you can, not matter what it is. Eating a peanut butter sandwich can be political. Washing your hair can be political. Walking to your work can be political. Washing your hands can be political.

                                                                                                                            That does not mean these things are political, only that you choose to make them political. This is a personal choice which does not need to - and often does not - transfer to others who get to make their own choices about what they consider to be political and what not.

                                                                                                                            That last statement is political, it is the freedom of thought and expression which is one of the pillars most of our societies are built on. Think well before you demolish this pillar, it was built for a good reason.

                                                                                                                            1. 0

                                                                                                                              Let’s suppose, for the sake of argument, someone came into your supermarket and demanded you change the labels on the white pepper and black pepper (to, say, retted and unretted pepper, or pepperseed spice and peppercorn spice, or any other term that didn’t mention colours) because the words ‘white’ and ‘black’ are racist and political.

                                                                                                                              You respond ‘no that’s ridiculous, there’s nothing political about white and black pepper’. They respond ‘everything is political’.

                                                                                                                              Ponder that.

                                                                                                                              1. 4

                                                                                                                                You think you’re making a point, but you’re not.

                                                                                                                                1. 3

                                                                                                                                  Well, for example, electron recently changed whitelist/blacklist to allowlist/blocklist, and Chromium did the same some time ago.

                                                                                                                                  1. 5

                                                                                                                                    A blacklist is literally a list of bad things, which are clearly bad because they have the ‘black’ quality.

                                                                                                                                    Black pepper is a tasty spice.

                                                                                                                                    1. 1

                                                                                                                                      Nonsense. Bookkeepers and accountants rejoice when the numbers are ‘in the black’ but shudder to see them go red. Here, black is good, red is bad. Is this a different black from the one used in the blacklist?

                                                                                                                                      1. 1

                                                                                                                                        A blacklist is a list of bad things which are bad because the colour black is associated with negativity in our culture, while white is associated with good. That has nothing to do with skin colour. It’s honestly pretty cringe to try to force an association between the word ‘black’ and black people everywhere the word exists. ‘Blacklist’ has nothing to do with black people and black pepper has nothing to do with black people. Black MTG cards have nothing to do with black people. Whitelist has nothing to do with white people, white pepper has nothing to do with white people, white MTG cards have nothing to do with white people.

                                                                                                                                        1. 1

                                                                                                                                          white pepper has nothing to do with white people

                                                                                                                                          No shit.

                                                                                                                                          It’s honestly pretty cringe to try to force an association between the word ‘black’ and black people everywhere the word exists.

                                                                                                                                          Sure.

                                                                                                                                          ’Blacklist’ has nothing to do with black people

                                                                                                                                          Nothing wrong with disagreeing with the majority of linguists if you’ve got an informed opinion.

                                                                                                                                          Perhaps demonstrating some familiarity with the relevant literature (or maybe even linked a source for this unfounded claim) would help people be a little more charitable in their reading of your ideas.

                                                                                                                                          1. 2

                                                                                                                                            Nothing wrong with disagreeing with the majority of linguists if you’ve got an informed opinion.

                                                                                                                                            It’s been used in the English language for hundreds of years (as far back as the mid 1600s, if I remember correctly), rarely, though its first popular use was in the 20th century in reference to blacklists of union members. It’s a blacklist in the sense that the list itself is black. A blacklist was originally two words (as with many compound words) and its first usages are in a more poetic sense: a ‘black list’ where ‘black’ is used poetically to mean dark or evil. ‘His black list’ i.e. ‘his evil list’. It is not a list of ‘blacks’, never has been. Its use far predates modern American conceptions of race.

                                                                                                                                            Now you might respond by saying that using a term that has its popular origins in the suppression of unionism to be ‘problematic’, but etymology is not the same as meaning. Words do not mean precisely what they were coined to mean, and it would be absurd to expect everyone to inspect the etymology of every word they speak to make sure it isn’t associated too closely with whatever topic has fallen under the gaze of the keyboard warriors on Twitter and is now considered ‘problematic’. There are probably heaps and heaps of completely normal terms people use all over the place that have their origin in something that, under close inspect without the proper context, might seem ‘problematic’.

                                                                                                                                            Should one not use the word bugger? Or hysterical? Are no can do and long time, no see racist? What about uppity or hooligan? Grandfather clause? Call a spade a spade? What about gypsy or Eskimo or American Indian where despite the popular view among white Americans that they’re racist or outdated terms, they’re actually preferred by many of the people they’re meant to describe over Romani (lots of whom aren’t Romani at all) or Inuit or native American?

                                                                                                                                            Maybe instead of being offended on behalf of others, you just leave it to them to raise issues if they are actually offended? Getting offended by the origins of terms that have been free of offensive connotation for decades or centuries because a couple of keyboard warriors on Twitter decided that the best way to solve an issue like systemically racist police violence in the USA is to police what variables people use on GitHub…

                                                                                                                                            Perhaps demonstrating some familiarity with the relevant literature (or maybe even linked a source for this unfounded claim) would help people be a little more charitable in their reading of your ideas.

                                                                                                                                            If you’re going to make such a significant claim you should back it up with sources from the relevant literature. Language is not problematic-by-default. The onus is on you to prove that the term was coined in reference to race if you wish to claim that it is “problematic”. I’m not telling people what to do or calling anyone racist. I’m not making any extraordinary claims. I don’t see why any burden of proof falls on me.

                                                                                                                                            1. 2

                                                                                                                                              its first popular use was in the 20th century in reference to blacklists of union members

                                                                                                                                              Says who? (The wikipedia page for an active political controversy is not a source).

                                                                                                                                              Maybe instead of being offended on behalf of others, you just leave it to them to raise issues if they are actually offended?

                                                                                                                                              Firstly, I’m not offended by it; secondly, what idea would you have whether it was on someone elses behalf or my own if I were.

                                                                                                                                              I’m offended by longwinded, unsourced, nonsensical arguments on an otherwise-good-SNR technical forum.

                                                                                                                                              I don’t see why any burden of proof falls on me.

                                                                                                                                              You’ve asserted, without evidence, that ‘Blacklist’ has nothing to do with black people, which is sort-of the crux of the discussion. Not only are you raising flat assertions without a source, you’ve the gall to demand anyone who points out this is low-effort do the legwork for you. Generating bullshit is much easier than refuting it, and all that.

                                                                                                                                              EDIT: Oh. It’s you, but you’ve changed your username again. I’ll update my killfile, as usual.

                                                                                                                                              For anyone else as uninterested as I am in this inanity, a handy ublock rule is:

                                                                                                                                              lobste.rs##:xpath(//div[contains(concat(' ', normalize-space(@class), ' '), ' comment ')][.//a[contains(@href,'/u/mrr')]])

                                                                                                                                              1. 2

                                                                                                                                                You are a nasty piece of work.

                                                                                                                                    2. 3

                                                                                                                                      He is making a point though, even if you choose not to see it. You might not agree with it but that does not imply the point doesn’t exist. In other words, a single person or a group does not get to be the purveyor of truth in an open society which allows freedom of thought and freedom of expression.

                                                                                                                                  2. -2

                                                                                                                                    Excellent. Now these monsters who support the status quo have no place to hide.

                                                                                                                                1. 6

                                                                                                                                  Where is the benchmark?

                                                                                                                                  Pretty much every Linux distros use relatime nowadays which is good enough. I bet that the difference between writing both atime and mtime, or just mtime in the inode is negligible compared to the actual write() on the file.